diff options
Diffstat (limited to 'ebus')
-rw-r--r-- | ebus/__init__.py | 26 |
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': |