summaryrefslogtreecommitdiff
path: root/ebus
diff options
context:
space:
mode:
authoryvesf <yvesf@d0e8fea9-7529-0410-93fb-d39fd5b9c1dd>2010-04-13 20:42:23 +0000
committeryvesf <yvesf@d0e8fea9-7529-0410-93fb-d39fd5b9c1dd>2010-04-13 20:42:23 +0000
commit224d5ec3684294189637cd5feb9a67319baa2b12 (patch)
tree91fec0bc3adf186fe8dcac1e9a45c20a3fb6fa9c /ebus
parentc5c54d4d6486d85a151c6fcd4c5dcdaf2dfbcaf6 (diff)
downloadebus-alt-224d5ec3684294189637cd5feb9a67319baa2b12.tar.gz
ebus-alt-224d5ec3684294189637cd5feb9a67319baa2b12.zip
"id" feld, debug optional
git-svn-id: http://10.2.2.13/svn/common/ebus@1653 d0e8fea9-7529-0410-93fb-d39fd5b9c1dd
Diffstat (limited to 'ebus')
-rw-r--r--ebus/__init__.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/ebus/__init__.py b/ebus/__init__.py
index 94b0b32..eadb397 100644
--- a/ebus/__init__.py
+++ b/ebus/__init__.py
@@ -91,10 +91,10 @@ class fields:
else:
return None
-
+#Pflichfelder: primary, secondary, name, id, format (auch leer)
packetDescription = [
# Service 0x05 (Brennersteuerbefehle)
- {'primary':0x5, 'secondary':0x3, 'name':'Betriebsdaten des Feuerungsautomaten an den Regler Block1','format': {
+ {'primary':0x5, 'secondary':0x3, 'name':'Betriebsdaten des Feuerungsautomaten an den Regler Block1','id':'betriebsdatenRegler1', 'format': {
'blocknumber':fields.Byte(0),
#('errorCode':fields.Byte(1),
'stellgradKesselleistung':fields.Byte(3),
@@ -109,7 +109,7 @@ packetDescription = [
#'gemeinsameVorlaufTemperatur':fields.Data1c(5)),
}},
- {'primary':0x5, 'secondary':0x7, 'name':'Betriebsdaten des Reglers an den Feuerungsautomaten','format': {
+ {'primary':0x5, 'secondary':0x7, 'name':'Betriebsdaten des Reglers an den Feuerungsautomaten','id':'betriebsdatenFeuerungsautomat','format': {
'betriebszustand':fields.ByteEnum(0, {
0x00:'Brenner Abschalten',
0x01:'Keine Aktion',
@@ -133,7 +133,7 @@ packetDescription = [
'brauchwasserSollwert':fields.Data1c(7)
}},
# Service 0x07 (Systemdatenbefehle)
- {'primary':0x7, 'secondary':0x0, 'name':'Datum/Zeit - Meldung eines eBUS Masters','format': {
+ {'primary':0x7, 'secondary':0x0, 'name':'Datum/Zeit - Meldung eines eBUS Masters', 'id':'datumZeit', 'format': {
'ausenTemperatur':fields.Data2b(0),
'sekunden':fields.Bcd(2),
'minuten':fields.Bcd(3),
@@ -143,10 +143,12 @@ packetDescription = [
'wochentag':fields.Bcd(7),
'jahr':fields.Bcd(8)}},
- {'primary':0x7, 'secondary':0x0, 'name':'Datum/Zeit - Meldung eines eBUS Masters'},
- {'primary':0x7, 'secondary':0x4, 'name':'Identifikation'},
+ {'primary':0x7, 'secondary':0x4, 'name':'Identifikation', 'id':'identifikation', 'format':{
+ }},
+
# Service 0x08 (Reglerbefehle)
- {'primary':0x8, 'secondary':0x0, 'name':'Sollwertübertragung des Reglers an andere Regler'},
+ {'primary':0x8, 'secondary':0x0, 'name':'Sollwertübertragung des Reglers an andere Regler', 'id':'sollwertÜbertragungRegler', 'format':{
+ }},
# Response
#p[0] = Einheit (1=>Liter, 2=>Kubik)
@@ -154,8 +156,10 @@ packetDescription = [
#p[2] = 10^2
#p[3] = 10^4
#p[4] = 10^6
- {'primary':0x3, 'secondary':0x8, 'name':'Gesamtbrennstoffmengenzähle lesen'},
- {'primary':0x50, 'secondary':0x17, 'name':'Solar Daten', 'format':{
+ {'primary':0x3, 'secondary':0x8, 'name':'Gesamtbrennstoffmengenzähler lesen', 'id':'brenstoffMengeLesen', 'format':{
+ }},
+
+ {'primary':0x50, 'secondary':0x17, 'name':'Solar Daten', 'id': 'solarDaten', 'format':{
'solarPumpe':fields.Bit(0),
'tempKollektor':fields.Data2c(2),
'tempWarmwasserSolar':fields.Data2c(4)}},
@@ -236,6 +240,7 @@ class EbusReader(asynchat.async_chat):
self.packetIndex = 0
self.buf = ""
+ self.debug = False
def collect_incoming_data(self,data):
for it in range(len(data)):
@@ -285,7 +290,8 @@ class EbusReader(asynchat.async_chat):
payloadLength = ord(data[4])
payload = data[5:5+payloadLength]
### DEBUG ###
- print "\033[1;31m%.2x %.2x\033[1;m \033[1;33m%.2x %.2x\033[1;m \033[1;30m%.2x\033[1;m \033[1;45m%s\033[1;m" % (source,destination,primaryCommand,secondaryCommand,payloadLength,formatHex(payload))
+ if self.debug:
+ "\033[1;31m%.2x %.2x\033[1;m \033[1;33m%.2x %.2x\033[1;m \033[1;30m%.2x\033[1;m \033[1;45m%s\033[1;m" % (source,destination,primaryCommand,secondaryCommand,payloadLength,formatHex(payload))
p = None
if sourceDevice[0]['type'] == 'master' and destinationDevice[0]['type'] == 'master':