Ankündigung

Einklappen
Keine Ankündigung bisher.

Viessmann Plugin Neuentwicklung Python Hilfe

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

  • stoepf
    antwortet
    Ich hab das Plugin auch im Einsatz.
    Logge im Moment aber nur Temperaturen.
    Verwende den Original-Lesekopf bisher ohne Auffälligkeiten

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Das erste Foto kann ich nicht sehen. Der Kopf vom zweiten Foto ist nicht der, den ich im Hinterkopf hatte; da gäbe es das Problem aber nicht. Von daher wohl woanders suchen...

    Ich habe den da -> https://github.com/openv/openv/wiki/Bauanleitung-USB, mit dem FTDI-Chip.

    IMG_3273.jpeg
    Angehängte Dateien

    Einen Kommentar schreiben:


  • psilo
    antwortet
    psilo hatte noch Interesse. Kann aber nicht sagen, ob er das Plugin schon mal getestet hat
    Gib mir a) Zeit b) den Elan einen Tag bei meinem Vater im Keller zu verbringen.

    -> wird erstmal nix bei mir!

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Haben wir noch mehr Leute hier, die das Plugin schon verwenden oder vielleicht verwenden wollen?
    psilo hatte noch Interesse. Kann aber nicht sagen, ob er das Plugin schon mal getestet hat
    loeserman hatte das erste Plugin entwickelt. Vielleicht kann er auch mal das neue Plugin unterstützen. Ich hatte ihn schon mal angeschrieben.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Ob das ein "PC" oder ein Rpi ist, ist dabei egal ich hab nen RPi 4, das ändert aber nichts an der Physik
    Ist mir schon klar. Wollte es nur zur Sicherheit erwähnt haben.

    Zitat von Morg Beitrag anzeigen
    zumal du auch kein USB 3 brauchst. (Kann das der RPi 3 überhaupt schon?)
    Die USB3 Kabel sind besser geschirmt. Deshalb habe ich eines genommen.

    Zitat von Morg Beitrag anzeigen
    wenn der Viessmann-Kopf das große bananenförmige Teil ist - sitzt der fest, könnte der schief sitzen/hängen?
    Hab mal 2 Fotos gemacht. Da kann eigentlich nichts wackeln.
    IMG_20200614_125859_1.jpg

    Ich beobachte das mal.
    Wenn es wieder auftritt, nehme ich mal einen andere RPI. (Hab 2 eine Produktinstanz und eine Testinstanz).

    DANKE Dir!
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Haben wir noch mehr Leute hier, die das Plugin schon verwenden oder vielleicht verwenden wollen? Dann könnten die vielleicht beim Testen unterstützen, dann kämen wir auf eine breitere Basis als nur zwei verschiedene Leseköpfe.

    Dass es an der Heizung liegt, kann ich mir eigentlich nicht vorstellen.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Ob das ein "PC" oder ein Rpi ist, ist dabei egal ich hab nen RPi 4, das ändert aber nichts an der Physik Wenn möglich, dann probier es mal ohne das Verlängerungskabel - zumal du auch kein USB 3 brauchst. (Kann das der RPi 3 überhaupt schon?) Bei den Datenraten sollte das eigentlich kein Problem sein, meine USB-Verlängerung ist glaube ich 5 Meter lang, das weiß ich aber nicht genau.

    Solche Probleme hatte ich aber noch nicht. Ich denke immer wieder an Probleme bei der IR-Verbindung (wenn der Viessmann-Kopf das große bananenförmige Teil ist - sitzt der fest, könnte der schief sitzen/hängen?), aber die IO-Fehler scheinen für mich eher ein Problem zu sein, mit dem Kopf zu sprechen. IO-Fehler solltest du normalerweise nicht bekommen, auch wenn der Kopf nur auf dem Tisch liegt, dann gibt es eben nur keine Daten...

    Wenn du einen Ferritkern drum machst, dann mach auch eine Schleife ins Kabel, also Kabel durch den Kern, einmal rum und nochmal durch den Kern (können auch zwei Schlaufen sein). Schaden kann es eigentlich nicht...

    ...nochn Edit: mich wundert es trotzdem. "Vorher" (vor dem Ausschalten der Heizung) hattest du auch in längeren Betriebsphasen keine Probleme mit dem Kopf, oder? Vielleicht hat der ja doch eine andere Logik drin als meiner...
    Zuletzt geändert von Morg; 14.06.2020, 11:56.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Kommunikation zwischen deinem PC und dem Lesekopf (!)
    Der "PC" ist bei mir ein RPI3B. Der Lesekopf ein original Viessmann. Ich habe aber noch eine USB3 taugliche USB-Verlängerung von 3m dazwischen.
    Ich könnte da noch einen Ferritkern drum machen.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Grundsätzlich sieht das nach dem selben Problem aus wie vorher. Was mich aus den Socken haut:

    im Log warning die Zeilte "failed with IO error:...". Da scheint die Kommunikation zwischen deinem PC und dem Lesekopf (!) verloren gegangen zu sein. Darauf hin sollte er die Verbindung neu aufbauen (trying to reconnect, disconnect, connect). Ich habe den Eindruck, dass das nicht klappt, denn danach kommt auf das "send sync command" immer nur ein 0x05, aber kein 0x06. Ich weiß nicht, ob sich da nicht irgendwas verschluckt.

    Das habe ich hier nicht rekonstruieren können; wenn ich die Heizung einfach ausschalte, passier nix weiter, er meckert nur, dass er keinen Init hinbekommt. Sobald die Heizung wieder an ist, geht es wieder.

    Darum fragte ich auch nach deinem Kopf. Ich kann aber noch nicht genau sagen, wo da der Wurm drin ist...

    Lass mich mal morgen nochwas probieren und nachdenken, ich melde mich. Vielleicht fällt mir noch was ein.

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Hallo Morg ,

    ich habe die aktuelle Version von Deinem Git im Test. Heute kam es wieder zu einem Verbindungsabbruch. Die Verbindung wurde neu hergestellt, soweit so gut.
    Danach wurden aber keine zyklischen Abfragen mehr gesendet. Die Variable "Interface initialized" steht auf True. Sendet man einen Wert, springt die auf "False".
    Siehe Logs.

    log detail:
    Code:
    2020-06-13 12:46:34 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Error3
    2020-06-13 12:46:34 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Raumtemperatur_M2
    2020-06-13 12:46:35 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Heizkreispumpe_A1M1
    2020-06-13 12:46:35 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Relais_K12
    2020-06-13 12:46:35 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Systemtime
    2020-06-13 12:48:29 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Temp_Speicher_Ladesensor
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command send_command failed with IO error: IO Error: write failed: [Errno 5] Eingabe-/Ausgabefehler.
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command Trying to reconnect (disconnecting, connecting
    2020-06-13 12:48:29 INFO plugins.viessmann _disconnect Disconnected
    2020-06-13 12:48:29 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Abgastemperatur
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command Not connected, trying to reconnect.
    2020-06-13 12:48:29 INFO plugins.viessmann _connect Connecting ...
    2020-06-13 12:48:29 INFO plugins.viessmann _connect Connected to /dev/ttyUSB_optolink
    2020-06-13 12:48:29 WARNING plugins.viessmann _send_command Communication no longer initialized, trying to reestablish.
    2020-06-13 12:48:29 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 12:48:31 INFO plugins.viessmann _init_communication Communication initialized: True
    2020-06-13 12:48:31 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Kesseltemperatur
    2020-06-13 16:54:47 INFO plugins.viessmann update_item Update item: heizung.heizkreis_m2.raumtemperatur.raumtemperatur _soll_normal, item has been changed outside this plugin
    2020-06-13 16:54:47 INFO plugins.viessmann _send_command Communication timed out, trying to reestablish communication.
    2020-06-13 16:54:47 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 16:54:47 INFO plugins.viessmann _init_communication Communication initialized: False
    2020-06-13 16:54:47 ERROR plugins.viessmann _send_command send_command failed with error: Interface not initialized!.
    2020-06-13 16:54:52 WARNING plugins.viessmann _send_command Communication no longer initialized, trying to reestablish.
    2020-06-13 16:54:52 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 16:54:52 INFO plugins.viessmann _init_communication Communication initialized: False
    2020-06-13 16:54:52 ERROR plugins.viessmann _send_command send_command failed with error: Interface not initialized!.
    log develop:
    Code:
    2020-06-13 12:48:29 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Temp_Speicher_Ladesensor
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Got a new read job: Command Temp_Speicher_Ladesensor
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Command config: {'unit': 'IU10', 'set': False, 'len': 2, 'addr': '0812'}
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Preparing command Temp_Speicher_Ladesensor with packet to be sent as hexstring: 4105000108120222 and as bytes: bytearray(b'A\x05\x00\x01\x08\x12\x02"')
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command send_command failed with IO error: IO Error: write failed: [Errno 5] Eingabe-/Ausgabefehler.
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command Trying to reconnect (disconnecting, connecting
    2020-06-13 12:48:29 DEBUG plugins.viessmann scheduler_get scheduler_get: name = plugins.viessmann.cyclic
    2020-06-13 12:48:29 DEBUG plugins.viessmann scheduler_remove scheduler_remove: name = plugins.viessmann.cyclic
    2020-06-13 12:48:29 INFO plugins.viessmann _disconnect Disconnected
    2020-06-13 12:48:29 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Abgastemperatur
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Got a new read job: Command Abgastemperatur
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Command config: {'unit': 'IU10', 'set': False, 'len': 2, 'addr': '0816'}
    2020-06-13 12:48:29 DEBUG plugins.viessmann _send_read_command Preparing command Abgastemperatur with packet to be sent as hexstring: 4105000108160226 and as bytes: bytearray(b'A\x05\x00\x01\x08\x16\x02&')
    2020-06-13 12:48:29 ERROR plugins.viessmann _send_command Not connected, trying to reconnect.
    2020-06-13 12:48:29 INFO plugins.viessmann _connect Connecting ...
    2020-06-13 12:48:29 INFO plugins.viessmann _connect Connected to /dev/ttyUSB_optolink
    2020-06-13 12:48:29 WARNING plugins.viessmann _send_command Communication no longer initialized, trying to reestablish.
    2020-06-13 12:48:29 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 12:48:29 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 12:48:30 DEBUG plugins.viessmann _init_communication read_bytes: Read b''
    2020-06-13 12:48:30 DEBUG plugins.viessmann _init_communication send_bytes: Send reset command b'\x04'
    2020-06-13 12:48:31 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 12:48:31 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 12:48:31 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x06'
    2020-06-13 12:48:31 INFO plugins.viessmann _init_communication Communication initialized: True
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Successfully sent packet: 4105000108160226
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Trying to receive 11 bytes of the response.
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Received 11 bytes chunk of response as hexstring 06410701010816025b0185 and as bytes b'\x06A\x07\x01\x01\x08\x16\x02[\x01\x85'
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Response decoded to: commandcode: 0816, responsedatacode: 1, valuebytecount: 2
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Rawdatabytes formatted: 5b01 and unformatted: bytearray(b'[\x01')
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Corresponding Item: heizung.kessel.abgastemperatur; Corresponding commandname: Abgastemperatur
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Unit defined to IU10 with config {'type': 'integer', 'unit_de': 'INT unsigned 10', 'signed': False, 'read_value_transform': '10'}.
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Matched command Abgastemperatur and read transformed value 34.7 (integer raw value was 347) and byte length 2.
    2020-06-13 12:48:31 INFO plugins.viessmann send_cyclic_cmds Triggering cyclic read command: Kesseltemperatur
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_read_command Got a new read job: Command Kesseltemperatur
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_read_command Command config: {'unit': 'IU10', 'set': False, 'len': 2, 'addr': '0802'}
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_read_command Preparing command Kesseltemperatur with packet to be sent as hexstring: 4105000108020212 and as bytes: bytearray(b'A\x05\x00\x01\x08\x02\x02\x12')
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Successfully sent packet: 4105000108020212
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Trying to receive 11 bytes of the response.
    2020-06-13 12:48:31 DEBUG plugins.viessmann _send_command Received 11 bytes chunk of response as hexstring 0641070101080202220239 and as bytes b'\x06A\x07\x01\x01\x08\x02\x02"\x029'
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Response decoded to: commandcode: 0802, responsedatacode: 1, valuebytecount: 2
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Rawdatabytes formatted: 2202 and unformatted: bytearray(b'"\x02')
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Corresponding Item: heizung.kessel.kesseltemperatur_ist; Corresponding commandname: Kesseltemperatur
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Unit defined to IU10 with config {'type': 'integer', 'unit_de': 'INT unsigned 10', 'signed': False, 'read_value_transform': '10'}.
    2020-06-13 12:48:31 DEBUG plugins.viessmann _parse_response Matched command Kesseltemperatur and read transformed value 54.6 (integer raw value was 546) and byte length 2.
    2020-06-13 12:48:31 DEBUG plugins.viessmann send_cyclic_cmds cyclic command read took 2.5 seconds for 3 items
    2020-06-13 16:54:47 INFO plugins.viessmann update_item Update item: heizung.heizkreis_m2.raumtemperatur.raumtemperatur _soll_normal, item has been changed outside this plugin
    2020-06-13 16:54:47 DEBUG plugins.viessmann update_item update_item was called with item 'Raumtemperatur_Soll_Normalbetrieb_M2' from caller 'admin', source 'None' and dest 'None'
    2020-06-13 16:54:47 DEBUG plugins.viessmann update_item Got item value to be written: 4 on command name Raumtemperatur_Soll_Normalbetrieb_M2.
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Got a new write job: Command Raumtemperatur_Soll_Normalbetrieb_M2 with value 4
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Command config: {'min_value': 3, 'max_value': 37, 'set': True, 'unit': 'ISNON', 'addr': '3306', 'len': 1}
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Unit defined to ISNON with config{'type': 'integer', 'unit_de': 'INT signed non', 'signed': True, 'read_value_transform': 'non'}.
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Created value bytes for type integer as hexstring: 04 and as bytes: b'\x04'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Payload length is: 6 bytes.
    2020-06-13 16:54:47 DEBUG plugins.viessmann _send_write_command Preparing command Raumtemperatur_Soll_Normalbetrieb_M2 with value 4 (transformed to value byte '04') to be sent as packet 410600023306010446.
    2020-06-13 16:54:47 INFO plugins.viessmann _send_command Communication timed out, trying to reestablish communication.
    2020-06-13 16:54:47 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:47 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:47 INFO plugins.viessmann _init_communication Communication initialized: False
    2020-06-13 16:54:47 ERROR plugins.viessmann _send_command send_command failed with error: Interface not initialized!.
    2020-06-13 16:54:47 DEBUG plugins.viessmann update_item Attempting read after write for item Raumtemperatur_Soll_Normalbetrieb_M2, command Raumtemperatur_Soll_Normalbetrieb_M2, delay 5
    2020-06-13 16:54:52 DEBUG plugins.viessmann _send_read_command Got a new read job: Command Raumtemperatur_Soll_Normalbetrieb_M2
    2020-06-13 16:54:52 DEBUG plugins.viessmann _send_read_command Command config: {'min_value': 3, 'max_value': 37, 'set': True, 'unit': 'ISNON', 'addr': '3306', 'len': 1}
    2020-06-13 16:54:52 DEBUG plugins.viessmann _send_read_command Preparing command Raumtemperatur_Soll_Normalbetrieb_M2 with packet to be sent as hexstring: 4105000133060140 and as bytes: bytearray(b'A\x05\x00\x013\x06\x01@')
    2020-06-13 16:54:52 WARNING plugins.viessmann _send_command Communication no longer initialized, trying to reestablish.
    2020-06-13 16:54:52 INFO plugins.viessmann _init_communication Init Communication....
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication send_bytes: Send sync command b'\x16\x00\x00'
    2020-06-13 16:54:52 DEBUG plugins.viessmann _init_communication read_bytes: Read b'\x05'
    2020-06-13 16:54:52 INFO plugins.viessmann _init_communication Communication initialized: False
    2020-06-13 16:54:52 ERROR plugins.viessmann _send_command send_command failed with error: Interface not initialized!.
    log warning:
    Code:
    2020-06-13 04:07:23 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:07:24 WARNING lib.item Item heizung.brenner.starts.jahr: problem evaluating round((sh.heizung.brenner.starts() - sh.heizung.brenner.starts.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'int' and 'NoneType'
    2020-06-13 04:13:24 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:19:24 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:31:24 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:31:26 WARNING lib.item Item heizung.brenner.starts.jahr: problem evaluating round((sh.heizung.brenner.starts() - sh.heizung.brenner.starts.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'int' and 'NoneType'
    2020-06-13 04:37:24 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:43:25 WARNING lib.item Item heizung.brenner.oelverbrauch.jahr: problem evaluating round((sh.heizung.brenner.oelverbrauch() - sh.heizung.brenner.oelverbrauch.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 04:49:25 WARNING lib.item Item heizung.brenner.starts.jahr: problem evaluating round((sh.heizung.brenner.starts() - sh.heizung.brenner.starts.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'int' and 'NoneType'
    2020-06-13 04:54:23 WARNING lib.item Item heizung.brenner.betriebsstunden.jahr: problem evaluating round((sh.heizung.brenner.betriebsstunden() - sh.heizung.brenner.betriebsstunden.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 05:44:25 WARNING lib.item Item heizung.brenner.oelverbrauch.jahr: problem evaluating round((sh.heizung.brenner.oelverbrauch() - sh.heizung.brenner.oelverbrauch.db('max', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i', str(shtime.time_since(shtime.beginning_of_year(), 'im')) + 'i')), 2): unsupported operand type(s) for -: 'float' and 'NoneType'
    2020-06-13 12:48:29 ERROR plugins.viessmann send_command failed with IO error: IO Error: write failed: [Errno 5] Eingabe-/Ausgabefehler.
    2020-06-13 12:48:29 ERROR plugins.viessmann Trying to reconnect (disconnecting, connecting
    2020-06-13 12:48:29 ERROR plugins.viessmann Not connected, trying to reconnect.
    2020-06-13 12:48:29 WARNING plugins.viessmann Communication no longer initialized, trying to reestablish.
    2020-06-13 16:54:47 ERROR plugins.viessmann send_command failed with error: Interface not initialized!.
    2020-06-13 16:54:52 WARNING plugins.viessmann Communication no longer initialized, trying to reestablish.
    2020-06-13 16:54:52 ERROR plugins.viessmann send_command failed with error: Interface not initialized!.
    Wirst Du daraus schlau?

    Beste Grüße
    Michael

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Nö, das glaube ich nicht. An meinem RPi hängen vier Leseköpfe, alle an shng...

    Okay, dann schaue ich nochmal genauer in das Plugin rein. Aber gut, wenn wir das ausschließen können. Dann fokussiert sich die Fehlersuche

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Kannst du ggf. a) - c) prüfen?
    a) Kann ich ausschließen, denn A) hat sich nichts geändert und B) hat es nach Neustart von shNG gleich wieder funktioniert
    b) Wäre denkbar, aber ist das nicht nur "Elektronik" ohne Logik , also IR Dioden und ein USB Interface?
    c) kann ich auch ausschließen, da A) die restlichen Funktionen der Heizung da waren und B) hat es nach Neustart von shNG gleich wieder funktioniert

    Ich habe aber noch einen zweiten Lesekopf (für einen Stromzähler) an RPI. Kommen sich vielleicht die beiden seriellen Schnittstellen in die Quere?

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Ja, ist auf GitHub.

    Wenn ich das richtig im Kopf habe, sollte aber die Logik von _init_communication() passen für alle Betriebszustände - so wie du schreibt, sorgt ein 0x04 ja immer für "Reset" mit Senden von 0x05 / sync / 0x06...

    Fällt mir schwer, eine Situation zu konstruieren, in der das Plugin ständig 0x16 00 00 sendet und die Anlage ständig 0x05 sendet -- wenn nicht Kommunikationsprobleme existieren, z.B. dass der Lesekopf lesen kann, aber Probleme mit dem Senden hat.

    Oder... die Anlage hat seit einer Stunde 0x05 gesendet, und die müssen im Eingangspuffer alle abgearbeitet werden. Ich kann mich aber nicht erinnern, wo über mehrere Kommunikationsvorgänge (Sende-/Empfangszyklen) Eingangsdaten zwischengepuffert würden. Scheint mir also auch keine sinnvolle "Lösung".

    Wenn auf dem "Bus" (der IR-Schnittstelle) das passiert, was im Log steht (sync contra 0x05, aber kein 0x06), dann klingt das für mich am ehesten nach einem Problem a) in der IR-Verbindung, b) einem "aufgehängten" Lesekopf (blöd!), c) einer "hängenden" Heizungssteuerung oder d) einem nicht entdeckten Logikfehler in _init_communication()... die Reihenfolge ist dabei willkürlich. Ich schaue mir die _init_communication() nochmal genauer an. Kannst du ggf. a) - c) prüfen? Ggf. Heizung nochmal neustarten, Kopf trennen und neu verbinden (vom Computer) und den Sitz vom Kopf überprüfen?

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von Morg Beitrag anzeigen
    Hier kommt auf "sync" aber immer "0x05". Ich könnte mir vorstellen, dass die Verbindung gar nicht resettet war, sondern "offen", und er auf sync deshalb anders reagiert. Kannst du das im Protokoll nachvollziehen, was dann passieren soll? Gibt es eine Möglichkeit, in jedem Fall die Verbindung zu resetten?
    So sollte die Kommunikation initialisiert und beendet werden:
    Initialisierung der Kommunikation (alle Werte in Hex)
    • Vitotronic sendet periodisch (ca. 2s) 0x05
    • Senden von 0x04 (EOT) um einen definierten Ausgangszustand zu erhalten.
    • Erneutes 0x05 der Vitotronic abwarten
    • Darauf sofort Antwort geben mit der Synchronisierungssequenz 0x16 0x00 0x00 (diese Synchronisierungssequenz kann vom verbundenen Programm periodisch gesendet werden, um ein Timeout der Kommunikation zu verhindern).
    • Vitotronic antwortet mit 0x06
    • Das periodische Senden von 0x05 hört damit auf

    Beenden der Kommunikation
    • Durch Senden des Telegramm-Ende Steuerzeichens EOT 0x04 wird Vitotronic wieder zurückgesetzt und sendet wieder periodisch 0x05.
    • Es empfiehlt sich, auch beim Start einer Anwendung zunächst ein 0x04 zu senden um einen definierten Anfangszustand zu erhalten.
    Zitat von Morg Beitrag anzeigen
    Ich habe mal das Logging noch etwas erweitert, ggf. kannst du mit der neuen Version testen.
    Ist die in Deinem Git?

    Zitat von Morg Beitrag anzeigen
    Außerdem wäre es ggf. hilfreich, wenn du dein developer- und debug-Logging noch etwas modifizierst.
    Mach ich.

    DANKE

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Hm... das sieht seltsam aus. Wenn ich mir mal das letzte Log ansehe:

    Er stellt fest, dass er Sendefehler hat, in diesem Fall I/O, also bezogen auf den Lesekopf, nicht auf die Heizung. Wundert mich etwas, darum neulich meine Frage, welchen Kopf du hast. Ich habe in der ganzen Zeit noch nicht einmal erlebt, dass sich mein Lesekopf ausklinkt. Wasauchimmer...

    Er versucht zweimal, sich neu zu verbinden, was beim zweiten Mal klappt (Z. 8). Die folgen Initialisierung ist erfolgreich, und er startet die cyclic reads.

    Soweit auch in Bezug auf Fehlerkorrektur okay.

    Bei einem der nächsten Leseversuche stellt er wieder fest, dass die Initialisierung weg ist und versucht er neu. Ab da geht nix mehr. Es geht aus - diesem - Log nicht hervor, wieso.

    Im developer-Log stolpere ich in Zeile 78/79. Bis Zeile 78 ist alles gut gelaufen, die cyclic reads gehen durch und funktionieren. In Zeile 79 will er "plötzlich" initialisieren - entweder ist da was schiefgelaufen, oder ich habe irgendwo eine Logmeldung vergessen zu produzieren ("Verbindung nicht initialisiert", "Fehler gelesen" oder so... das schaue ich nochmal durch).
    Für die nächsten Logeinträge fehlt mir gerade das Protokoll - wenn ich weiter oben schaue, geht das
    out- sync 0x16 00 00. -> in 0x00
    out- reset 0x04 -> in 0x05
    out- sync 0x16 00 00 -> in 0x06

    Hier kommt auf "sync" aber immer "0x05". Ich könnte mir vorstellen, dass die Verbindung gar nicht resettet war, sondern "offen", und er auf sync deshalb anders reagiert. Kannst du das im Protokoll nachvollziehen, was dann passieren soll? Gibt es eine Möglichkeit, in jedem Fall die Verbindung zu resetten?

    Ich habe mal das Logging noch etwas erweitert, ggf. kannst du mit der neuen Version testen.

    Außerdem wäre es ggf. hilfreich, wenn du dein developer- und debug-Logging noch etwas modifizierst. Auf der Seite https://www.smarthomeng.de/user/konf...mple-formatter ist das ganz unten beschrieben; da wird der Name der Funktion mitgeloggt, die den Logeintrag erzeugt. Das habe ich bei mir umgesetzt, und es hilft, schneller zuordnen zu können, wo genau die Meldung entstanden ist.

    Einen Kommentar schreiben:

Lädt...
X