Ankündigung

Einklappen
Keine Ankündigung bisher.

Viessmann Plugin Neuentwicklung Python Hilfe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Morg
    antwortet
    So, Weihnachten ist nahe, ich will heute schonmal ein paar Geschenke verteilen:
    • Webinterface ist aktualisiert mit dritter Seite: alle (für Protokoll und Anlage) bekannten Adressen mit Definition und der Möglichkeit, jeweils einzeln manuell auszulesen. Das Ergebnis wird im WebIf angezeigt, aber nicht in die Items übernommen (nicht alle Adressen sind ja Items zugewiesen). Da das zum Testen gedacht ist, schreibt er gar nicht in die Items.
    • Die Plugin-Funktion 'read_addr(addr)' stößt das Lesen der (definierten) Adresse manuell an und gibt das Ergebnis als Rückgabewert zurück, None bei Fehler. Das wird intern vom WebIf für die o.g. Funktion genutzt, kann aber auch manuell verwendet werden.
    • Die Plugin-Funktion 'read_temp_addr(addr, len, unit)' stößt das Lesen beliebiger und v.a. nicht definierter Adressen an. addr ist die vierstellige Hex-Adresse, len ist die erwartete Länge der Antwort in Bytes (1-8) und unit ist das Unitkürzel für die Einheitenumwandlung. unit muss im unitset für das aktuelle Protokoll definiert sein, im Zweifelsfall erstmal 'IUNON' oder 'IUINT'.
      Wenn die Adresse bekannt ist, wird wie gehabt verfahren, wenn die Adresse nicht bekannt ist, wird ein temporärer Eintrag im commandset erzeugt und versucht, die Adresse zu lesen. Das Ergebnis wird zurückgegeben.
    Für die Plugin-Funktionen kann z.B. die folgende Logik verwendet werden:

    Code:
    #!/usr/bin/env python3
    # viess_test.py
    
    plug = sh.plugins.return_plugin('viessmann')
    
    if plug is not None:
        value = plug.read_temp_addr('0802', 2, 'IUINT')
        print(f'Wert: {value}')
    Die Daten müssen manuell eingetragen werden (Admin-UI...), das Ergebnis wird auf der Konsole ausgegeben. Sobald der Wert in value vorliegt, könnt ihr damit machen, was ihr wollt. Loggen, zuweisen, an andere Plugins senden, oder einfach ignorieren.

    Aktuelle Version ist in github

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Stimmt. Mea culpa, kommt davon, wenn man die Schleifenvariable in der for-Anweisung ändert, aber nicht im Innern der Schleife..

    ist in github gefixt. Ansonsten Zeile 351 in _send_cyclic_cmds(), statt _commandname_by_commandcode(commandcode) muss es _commandname_by_commandcode(addr) heißen.

    Einen Kommentar schreiben:


  • stoepf
    antwortet
    Hab heute auch mal ein Update auf die letzte Version gemacht. Seitdem geht das zyklische Update nicht mehr richtig.
    Laut Debugausgaben wird nur noch ein Item gelesen.

    Meine Plugin-Konfiguration
    Code:
    viessmann:
    protocol: P300
    plugin_name: viessmann
    heating_type: V200KO1B
    serialport: /dev/ttyUSB0
    Und hier das Log:
    Code:
    2020-12-21 22:58:47 INFO plugins.viessmann Triggering cyclic command read
    2020-12-21 22:58:47 DEBUG plugins.viessmann Triggering cyclic read command: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Got a new read job: Command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Build read packet for command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Created command Warmwasser_Temperatur to be sent as hexstring: 4105000108040214 and as bytes: bytearray(b'A\x05\x00\x01\x08\x04\x02\x14')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Successfully sent packet: 4105000108040214
    2020-12-21 22:58:47 DEBUG plugins.viessmann Trying to receive 11 bytes of the response.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Received 11 bytes chunk of response as hexstring 064107010108040201021a and as bytes b'\x06A\x07\x01\x01\x08\x04\x02\x01\x02\x1a'
    2020-12-21 22:58:47 DEBUG plugins.viessmann Response decoded to: commandcode: 0804, responsedatacode: 1, valuebytecount: 2, responsetypecode: 1
    2020-12-21 22:58:47 DEBUG plugins.viessmann Rawdatabytes formatted: 0102 and unformatted: bytearray(b'\x01\x02')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Corresponding Item: viessmann.Warmwasser.Temperatur; Corresponding commandname: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Unit defined to IU10 with config {'unit_de': 'INT unsigned 10', 'type': 'integer', 'signed': False, 'read_value_transform': '10'}.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Matched command Warmwasser_Temperatur and read transformed value 51.3 (integer raw value was 513) and byte length 2.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Updating item viessmann.Warmwasser.Temperatur with value 51.3
    2020-12-21 22:58:47 DEBUG plugins.viessmann Triggering cyclic read command: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Got a new read job: Command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Build read packet for command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Created command Warmwasser_Temperatur to be sent as hexstring: 4105000108040214 and as bytes: bytearray(b'A\x05\x00\x01\x08\x04\x02\x14')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Successfully sent packet: 4105000108040214
    2020-12-21 22:58:47 DEBUG plugins.viessmann Trying to receive 11 bytes of the response.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Received 11 bytes chunk of response as hexstring 064107010108040201021a and as bytes b'\x06A\x07\x01\x01\x08\x04\x02\x01\x02\x1a'
    2020-12-21 22:58:47 DEBUG plugins.viessmann Response decoded to: commandcode: 0804, responsedatacode: 1, valuebytecount: 2, responsetypecode: 1
    2020-12-21 22:58:47 DEBUG plugins.viessmann Rawdatabytes formatted: 0102 and unformatted: bytearray(b'\x01\x02')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Corresponding Item: viessmann.Warmwasser.Temperatur; Corresponding commandname: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Unit defined to IU10 with config {'unit_de': 'INT unsigned 10', 'type': 'integer', 'signed': False, 'read_value_transform': '10'}.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Matched command Warmwasser_Temperatur and read transformed value 51.3 (integer raw value was 513) and byte length 2.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Updating item viessmann.Warmwasser.Temperatur with value 51.3
    2020-12-21 22:58:47 DEBUG plugins.viessmann Triggering cyclic read command: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Got a new read job: Command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Build read packet for command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Created command Warmwasser_Temperatur to be sent as hexstring: 4105000108040214 and as bytes: bytearray(b'A\x05\x00\x01\x08\x04\x02\x14')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Successfully sent packet: 4105000108040214
    2020-12-21 22:58:47 DEBUG plugins.viessmann Trying to receive 11 bytes of the response.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Received 11 bytes chunk of response as hexstring 064107010108040201021a and as bytes b'\x06A\x07\x01\x01\x08\x04\x02\x01\x02\x1a'
    2020-12-21 22:58:47 DEBUG plugins.viessmann Response decoded to: commandcode: 0804, responsedatacode: 1, valuebytecount: 2, responsetypecode: 1
    2020-12-21 22:58:47 DEBUG plugins.viessmann Rawdatabytes formatted: 0102 and unformatted: bytearray(b'\x01\x02')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Corresponding Item: viessmann.Warmwasser.Temperatur; Corresponding commandname: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Unit defined to IU10 with config {'unit_de': 'INT unsigned 10', 'type': 'integer', 'signed': False, 'read_value_transform': '10'}.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Matched command Warmwasser_Temperatur and read transformed value 51.3 (integer raw value was 513) and byte length 2.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Updating item viessmann.Warmwasser.Temperatur with value 51.3
    2020-12-21 22:58:47 DEBUG plugins.viessmann Triggering cyclic read command: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Got a new read job: Command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Build read packet for command Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Created command Warmwasser_Temperatur to be sent as hexstring: 4105000108040214 and as bytes: bytearray(b'A\x05\x00\x01\x08\x04\x02\x14')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Successfully sent packet: 4105000108040214
    2020-12-21 22:58:47 DEBUG plugins.viessmann Trying to receive 11 bytes of the response.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Received 11 bytes chunk of response as hexstring 064107010108040201021a and as bytes b'\x06A\x07\x01\x01\x08\x04\x02\x01\x02\x1a'
    2020-12-21 22:58:47 DEBUG plugins.viessmann Response decoded to: commandcode: 0804, responsedatacode: 1, valuebytecount: 2, responsetypecode: 1
    2020-12-21 22:58:47 DEBUG plugins.viessmann Rawdatabytes formatted: 0102 and unformatted: bytearray(b'\x01\x02')
    2020-12-21 22:58:47 DEBUG plugins.viessmann Corresponding Item: viessmann.Warmwasser.Temperatur; Corresponding commandname: Warmwasser_Temperatur
    2020-12-21 22:58:47 DEBUG plugins.viessmann Unit defined to IU10 with config {'unit_de': 'INT unsigned 10', 'type': 'integer', 'signed': False, 'read_value_transform': '10'}.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Matched command Warmwasser_Temperatur and read transformed value 51.3 (integer raw value was 513) and byte length 2.
    2020-12-21 22:58:47 DEBUG plugins.viessmann Updating item viessmann.Warmwasser.Temperatur with value 51.3
    2020-12-21 22:58:47 DEBUG plugins.viessmann cyclic command read took 0.3 seconds for 4 items
    Zuletzt geändert von stoepf; 21.12.2020, 23:05.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Da ist aber irgendwas faul. Da hat sich der USB-Lesekopf bzw. so wie es aussieht der USB-Treiber aufgehängt. Warum, kann ich nicht sagen. Fehler im Treiber oder Fehler im Kopf. Das Kabel war dran, aber der PC konnte nicht mehr mit dem Kopf sprechen. Man sieht ja auch, dass der immer wieder ausgeworfen wurde (oder "rausgefallen" ist) und neu verbunden wurde.

    Er hat für die Neuerkennung nicht von 4 bis 7 gebraucht. Um 3:52 (erste Meldung) hängt der Treiber, der USB-Stack hat das Gerät rausgeworfen und wieder neu verbunden, gem. Log soll er wieder da gewesen sein.
    Um 7:08 war er auf einmal wieder weg und danach gleich wieder da.

    Solche Abbrüche sind aber vom Plugin aus kaum in den Griff zu bekommen. Erstens ist das Problem eines außerhalb der Reichweite von shng (weder kann shng den Stecker neu raus und reinstecken, noch einen Treiber ent- und neuladen). Solange der nicht stabil ist, wartet sich das Plugin tot; im schlimmsten Fall wartet er auf einen blocking call und bleibt "hängen".

    Probier doch mal nen anderen USB-Port, ggf. ein anderes Kabel, wenn das nicht fest am Lesekopf ist.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Zitat von Morg Beitrag anzeigen
    Vielleicht hat sich auch nur eine Komponente zwischen Plugin und serieller Schnittstelle verschluckt
    hab eben nochmal im Log nachgesehen und das hier gefunden:

    zgrep -e cp210x -e usb /var/log/syslog.2.gz
    Dec 19 03:52:26 heizung kernel: [719849.478843] cp210x ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
    Dec 19 03:52:26 heizung kernel: [719849.487125] cp210x ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
    Dec 19 03:52:26 heizung kernel: [719849.621867] usb 1-1.5: USB disconnect, device number 8
    Dec 19 03:52:26 heizung kernel: [719849.622760] cp210x ttyUSB0: failed set request 0x12 status: -19
    Dec 19 03:52:26 heizung kernel: [719849.629190] cp210x ttyUSB0: failed set request 0x0 status: -19
    Dec 19 03:52:26 heizung kernel: [719849.637579] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
    Dec 19 03:52:26 heizung kernel: [719849.637709] cp210x 1-1.5:1.0: device disconnected
    Dec 19 03:52:27 heizung kernel: [719849.862086] usb 1-1.5: new full-speed USB device number 9 using dwc_otg
    Dec 19 03:52:27 heizung kernel: [719849.966891] usb 1-1.5: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
    Dec 19 03:52:27 heizung kernel: [719849.966919] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Dec 19 03:52:27 heizung kernel: [719849.966938] usb 1-1.5: Product: CP2102 USB to UART Bridge Controller
    Dec 19 03:52:27 heizung kernel: [719849.966956] usb 1-1.5: Manufacturer: Silicon Labs
    Dec 19 03:52:27 heizung kernel: [719849.966974] usb 1-1.5: SerialNumber: 0001
    Dec 19 03:52:27 heizung kernel: [719849.980912] cp210x 1-1.5:1.0: cp210x converter detected
    Dec 19 03:52:27 heizung kernel: [719849.986434] usb 1-1.5: cp210x converter now attached to ttyUSB1
    Dec 19 07:08:14 heizung kernel: [731597.205886] usb 1-1.5: USB disconnect, device number 9
    Dec 19 07:08:14 heizung kernel: [731597.208884] cp210x ttyUSB1: cp210x converter now disconnected from ttyUSB1
    Dec 19 07:08:14 heizung kernel: [731597.209093] cp210x 1-1.5:1.0: device disconnected
    Dec 19 07:08:14 heizung kernel: [731597.433508] usb 1-1.5: new full-speed USB device number 10 using dwc_otg
    Dec 19 07:08:14 heizung kernel: [731597.543550] usb 1-1.5: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
    Dec 19 07:08:14 heizung kernel: [731597.543575] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Dec 19 07:08:14 heizung kernel: [731597.543593] usb 1-1.5: Product: CP2102 USB to UART Bridge Controller
    Dec 19 07:08:14 heizung kernel: [731597.543611] usb 1-1.5: Manufacturer: Silicon Labs
    Dec 19 07:08:14 heizung kernel: [731597.543629] usb 1-1.5: SerialNumber: 0001
    Dec 19 07:08:14 heizung kernel: [731597.547268] cp210x 1-1.5:1.0: cp210x converter detected
    Dec 19 07:08:14 heizung kernel: [731597.552039] usb 1-1.5: cp210x converter now attached to ttyUSB1
    das könnte vom Zeitpunkt hinkommen, denn er zeigte seit ca 2 Tagen keine Daten mehr an... Gibt es da eine Möglichkeit das im Plugin zu erkennen? Vielleicht einfach auf den I/O Error reagieren und den Serialport neu öffnen?

    Krass ist, dass er zur Neuerkennung von 4 bis 7 Uhr gebraucht hat.
    Zuletzt geändert von TCr82; 21.12.2020, 17:23.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    @TCr82:

    Das Log zum Input/Output-Error sieht wie erwartet aus. Ich vermute, dass die serielle Verbindung "hin" ist. Ich schau mal, ob ich da noch eine Prüfung einbauen kann.

    Mit "locker" kann z.B. ein USB-Stecker oder ein serieller (so verwendet) gemeint sein. Tatsächlich zwischen Rechner und Lesekopf eine unsaubere Verbindung. Dass der Lesekopf kaputt ist, ist selten - und ob er fest in der Heizung steckt oder nicht, ist für den Fehler völlig irrelevant. Vielleicht hat sich auch nur eine Komponente zwischen Plugin und serieller Schnittstelle verschluckt. Habe ich hier so noch nicht gehabt, aber wer weiß.

    Zu Mischerfehler bräuchte ich mehr Kontext, insbesondere die vorgehenden Zeilen. Am besten ab der Zeile mit "Triggering cyclic read command: MischerM2"... bis zum o.a. Ausschnitt.

    Zum WebIF: das ist doch mal eine schöne Idee. Schaue ich mir mal an...

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Ach ja, zum WebIF wollte ich nochwas sagen:

    Momentan zeigen die zwei Reiter ja eigentlich das selbe an?!

    Richtig cool wäre, wenn der erste Reiter so bleibt (die eingerichteten Items anzeigt) , aber der zweite Reiter alle definierten Adressen (also Alle Datenpunkte), mit der Aktion den Wert abzufragen/zu schreiben (wenn unterstützt) - also auch ohne shNG Item.

    Das wäre cool um schneller zu testen oder mal was zu programmieren.

    Zitat von Morg Beitrag anzeigen
    Wenn du an dem 100%-Wert zweifelst, dann mach ein Debug-Log, dann schaue ich, ob ich was finde.
    EDIT: habe eigentlich oben nochmal alles dazu ergänzt.

    Locker kann der nicht sein, ist das original von Viessmann und nach dem Restart von smarthome lief es auch wieder.
    Zuletzt geändert von TCr82; 21.12.2020, 11:08.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    TCr82 : Wenn du an dem 100%-Wert zweifelst, dann mach ein Debug-Log, dann schaue ich, ob ich was finde.

    Ein Input/Output-Error heißt eigentlich, dass er nicht mit dem Lesekopf sprechen kann. Stecker lose oder so? Kannst du identifizieren, welche Codezeile das ausgelöst hat? Wenn du hast, schick mir gerne mal ein Log. Vielleicht kann ich die Fehlerbehandlung da noch verbessern.

    @Michael:
    So, die Erweiterungen von Bernd sind drin, das sieht echt ganz pfiffig aus. Standardmäßig nach der ersten Spalte sortiert und wahlweise durch Klick beliebig.

    @Martin:
    da hast du natürlich Recht. Die Zeile mit dem items=sorted(...) haben alle nur aus dem Plugin-Beispiel fürs WebIF abgeschrieben (wobei ich nicht weiß, ob bei der Übergabe des dicts an das Template ggf. andere Regeln geben, dicts in JS oder so?)

    Aktualisierte Version ist auf github, Versionsnr. habe ich nicht geändert.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Mit der letzten Version vom 18.12.2020 hatte ich heute gesehen, dass er ab einer gwissen Zeit gar nichts mehr aktualisiert hatte. Das Log wurde geflutet mit folgenden Meldungen:

    2020-12-21 02:09:20 ERROR plugins.viessmann send_command failed with error: Exception while sending: (5, 'Input/output error').
    Ich habe jetzt nochmal die aktuelle Version ausgecheckt und teste nochmal.

    Das mit den % Werten sieht nicht schlecht aus... aber er zeigt immer 100% an - nur wollte ich nochmal versuchen, dass direkt an der Heizung abzufragen (am Panel) um das zu vergleichen.

    Die Adresse ist zwar laut Viessmann DB die richte... aber 100% sieht mir nicht ganz richtig aus.

    Hier mal noch ein Debug log:

    2020-12-21 07:36:21 INFO __init__ plugins.viessmann.cyclic Triggering cyclic command read -- (__init__.py:send_cyclic_cmds:323)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Brennerstufe -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Brennerstufe -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '551e', 'len': 1, 'unit': 'RT', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Brennerstufe with packet to be sent as hexstring: 01f7551e01 and as bytes: bytearray(b'\x01\xf7U\x1e\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Brennerstarts -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Brennerstarts -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '088a', 'len': 2, 'unit': 'ISNON', 'set': True, 'min_value': 0, 'max_value': 1193045} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Brennerstarts with packet to be sent as hexstring: 01f7088a02 and as bytes: bytearray(b'\x01\xf7\x08\x8a\x02') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Brennerstoerung -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Brennerstoerung -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '0883', 'len': 1, 'unit': 'RT', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Brennerstoerung with packet to be sent as hexstring: 01f7088301 and as bytes: bytearray(b'\x01\xf7\x08\x83\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Kesseltemperatur -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Kesseltemperatur -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '0802', 'len': 2, 'unit': 'IU10', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Kesseltemperatur with packet to be sent as hexstring: 01f7080202 and as bytes: bytearray(b'\x01\xf7\x08\x02\x02') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Warmwasser_Temperatur -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Warmwasser_Temperatur -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '0804', 'len': 2, 'unit': 'IU10', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Warmwasser_Temperatur with packet to be sent as hexstring: 01f7080402 and as bytes: bytearray(b'\x01\xf7\x08\x04\x02') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Vorlauftemperatur_M2 -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Vorlauftemperatur_M2 -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '080c', 'len': 2, 'unit': 'IU10', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Vorlauftemperatur_M2 with packet to be sent as hexstring: 01f7080c02 and as bytes: bytearray(b'\x01\xf7\x08\x0c\x02') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Speicherladepumpe -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Speicherladepumpe -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '0845', 'len': 1, 'unit': 'IUBOOL', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Speicherladepumpe with packet to be sent as hexstring: 01f7084501 and as bytes: bytearray(b'\x01\xf7\x08E\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Heizkreispumpe_A1M1 -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Heizkreispumpe_A1M1 -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '2906', 'len': 1, 'unit': 'IUBOOL', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Heizkreispumpe_A1M1 with packet to be sent as hexstring: 01f7290601 and as bytes: bytearray(b'\x01\xf7)\x06\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: Heizkreispumpe_M2 -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command Heizkreispumpe_M2 -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '3906', 'len': 1, 'unit': 'IUINT', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command Heizkreispumpe_M2 with packet to be sent as hexstring: 01f7390601 and as bytes: bytearray(b'\x01\xf79\x06\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Triggering cyclic read command: MischerM2 -- (__init__.py:send_cyclic_cmds:334)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Got a new read job: Command MischerM2 -- (__init__.py:_send_read_command:530)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Command config: {'addr': '354c', 'len': 1, 'unit': 'IUPR', 'set': False} -- (__init__.py:_send_read_command:534)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Preparing command MischerM2 with packet to be sent as hexstring: 01f7354c01 and as bytes: bytearray(b'\x01\xf75L\x01') -- (__init__.py:_send_read_command:558)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic Starting sync loop - attempt 1/5 -- (__init__.py:_get_KW_sync:724)
    2020-12-21 07:36:21 ERROR __init__ plugins.viessmann.cyclic send_command failed with error: Exception while sending: (5, 'Input/output error'). -- (__init__.py:_send_command:826)
    2020-12-21 07:36:21 DEBUG __init__ plugins.viessmann.cyclic cyclic command read took 0.1 seconds for 10 items -- (__init__.py:send_cyclic_cmds:340)
    EDIT 2:

    Hier mal noch ein Debug zum Mischer % der aktuellen Version:
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Corresponding Item: technik.heizung.HK2Mischer; Corresponding commandname: MischerM2 -- (__init__.py:_parse_response:1155)
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Unit defined to IUPR with config {'unit_de': 'INT unsigned 2.55', 'type': 'integer', 'signed': False, 'read_value_transform': '2.55'}. -- (__init__.py:_parse_response:1167)
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Matched command MischerM2 and read transformed value 100.0 (integer raw value was 255) and byte length 1. -- (__init__.py:_parse_response:1244)
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Updating item HK2 Mischer with value 100.0 -- (__init__.py:_parse_response:1247)
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Response decoded to: commandcode: 3904, responsedatacode: 1, valuebytecount: 1, responsetypecode: 1 -- (__init__.py:_parse_response:1143)
    2020-12-21 09:48:35 DEBUG __init__ plugins.viessmann.cyclic Rawdatabytes formatted: 00 and unformatted: bytearray(b'\x00') -- (__init__.py:_parse_response:1144)
    Zuletzt geändert von TCr82; 21.12.2020, 10:56.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Dicts zu sortiern funktioniert erst ab Python 3.6. Vorher ändrte sich die Reihenfolge von Elementen im dict beliebig.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Das wird immer noch sortiert - der Code in init_webinterface ist unverändert. Warum die Datenpunkte in der Reihenfolge der Auflistung in der items.yaml auftauchen, kann ich nicht genau sagen... in der Hinsicht ist der Code aber anscheinend gleich zum (z.B.) knx-WebIf...

    Ich probiere mal aus, wie das mit den datatables geht, die Bernd im knx-Plugin eingebaut hat, vielleicht weiß ich danach mehr.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Ich könnte mich nicht erinnern, dass es "vorher" sortiert war, habe aber auch nicht drauf geachtet.
    Ich glaube, dass ich das dict, welches dem WebIF zugrunde liegt, sortiert hatte.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Michael: an der "Funktionalität", insbesondere den Anteilen im Python-Code, habe ich eigentlich nichts verändert. Hauptsächlich habe ich in der HTML-Datei die ganzen Reste des Beispielcodes entfernt und generell "aufgeräumt", außerdem die ganzen Bezeichnungen in Deutsch eingebracht und die Übersetzungsdatei beigefügt.

    Ich könnte mich nicht erinnern, dass es "vorher" sortiert war, habe aber auch nicht drauf geachtet.

    Den Code von Bernd schaue ich mir mal an, wenn ich das verstehe, baue ich das mit ein, dann dürfte sich das ja eh erledigt haben.

    Einen Kommentar schreiben:


  • bmx
    antwortet
    Ich habe da im knx Plugin etwas im Webif eingebaut, vielleicht könntet ihr das auch nutzen? Damit lassen sich Spalten sortieren und eine Suche ist auch implementiert.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Der Code ist im Repo, probiert bitte nochmal aus
    Vielen Dank. Test läuft.

    Bzgl des WebIF hätte ich noch die Bitte, dass die Item und auch die Datenpunkte der Reihenfolge nach (Name oder Nummer) sortiert sind. (Ich glaube, dass hatte ich in das alte WebIF auch schon mal eingebaut).

    Beste Grüße

    Einen Kommentar schreiben:

Lädt...
X