Ich hab mal etwas rumgetestet, ich glaube das nämlich nicht so, wie es da steht.
An 00f8 liest man zwei Bytes für den Datentyp, bei der W01C ist das 20 4d. Wenn ich jetzt von 00f7 3 Bytes lese, bekomme ich 00 20 4d, also gehe ich davon aus, dass ich 00f7 00f8 00f9 lese.
Die Theorie, dass ich pro "Adresse" eine variable Anzahl von Bytes lesen kann, widerspricht der Bezeichnung als "Adresse" und nicht als "Code" oder so.
Das Beispiel mit (Speicher-)Adresse 00f8 und 00f7 würde das bestätigen.
In deinem Beispiel hieße das, dass du entweder an 350C oder 350B 2 Bytes lesen könntest, die mit IU10 den gewünschten Wert ergeben könnten. Probier das doch mal aus... übers WebIf kannst du ja recht freizügig testen. Lass nebenher das Debug-Log laufen, dann kannst du auch die Hex-Daten mitplotten.
Ich würde für diesen Testbetrieb den cyclic scheduler deaktivieren (geht leider nur über die Items, oder über die interaktive Konsole)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Viessmann Plugin Neuentwicklung Python Hilfe
Einklappen
X
-
Bei HK_AktuelleBetriebsartM2 klappt es deswegen, da wir hier nur das erste Byte auswerten...
Code:<EventType> <ID>HK_AktuelleBetriebsartM2~0x3500</ID> <DataType>Dropdown</DataType> <SDKDataType>Int</SDKDataType> <AccessMode>Read</AccessMode> <Conversion>NoConversion</Conversion> <ConversionFactor>0</ConversionFactor> <ConversionOffset>0</ConversionOffset> <Address>0x3500</Address> <FCRead>Virtual_READ</FCRead> <FCWrite>undefined</FCWrite> <Parameter>Byte</Parameter> <BlockLength>22</BlockLength> <BytePosition>1</BytePosition> <ByteLength>1</ByteLength> <BitPosition>0</BitPosition> <BitLength>0</BitLength> <OptionList>NoLogging;FMS</OptionList> <ValueList>0=Abschaltbetrieb;1=Reduzierter Betrieb;2=Normalbetrieb;3=Normalbetrieb</ValueList> <BlockFactor>0</BlockFactor> <MappingType>0</MappingType> </EventType>
Einen Kommentar schreiben:
-
Ich habe herausgefunden, was hier los ist.Zitat von TCr82 Beitrag anzeigenAber ich denke das mit der Adresse 2500 & 3500 hat sich erstmal erledigt, denn die ist in der Viessmann DB zu meiner Heizung Doppelt definiert... nämlich z.B. auch in der Betriebsart, weswegen der von mir genannte Fehler auch passt und nicht verwundern sollte!
Die Adresse ist zwar doppelt definiert, aber ich habe übersehen, dass von der Adresse nur ein Teil ausgewertet wird.
Hier z.B.
Um an die Daten von HK_RaumsolltemperaturaktuellM2 zu kommen, muss man also 22 Byte von Adresse 0x3500 lesen und von dem Wert 2 Byte von Position 12 auswerten.Code:<EventType> <ID>HK_RaumsolltemperaturaktuellM2~0x3500</ID> <SDKDataType>Double</SDKDataType> <Unit>°C</Unit> <AccessMode>Read</AccessMode> <Conversion>Div10</Conversion> <Address>0x3500</Address> <FCRead>Virtual_READ</FCRead> <FCWrite>undefined</FCWrite> <Parameter>Byte</Parameter> <BlockLength>22</BlockLength> <BytePosition>12</BytePosition> <ByteLength>2</ByteLength> <BitPosition>0</BitPosition> <BitLength>0</BitLength> <OptionList>NoLogging</OptionList> </EventType>
Das bedeutet wiederum, dass - selbst wenn wir das Plugin so anpassen, dass es von der Position die X Byte auswertet, dass er sich daran Aufhängen wird, sobald die Adresse ein weiteres Mal für einen anderen Namen (mit neuer Position) angegeben wird.Zuletzt geändert von TCr82; 08.01.2021, 21:48.
Einen Kommentar schreiben:
-
Achso. Nee, bei KW gibts als Antwort auf Schreiben "00" (OK) oder keine Antwort -> Fehler.
Den neuen Wert musst du so oder so nochmal extra lesen.
Aber dann bin ich ja beruhigt
Passt auch, denn alle aktuellen Änderungen sind schon im develop und gehen damit ins 1.8er Release
Einen Kommentar schreiben:
-
puuhh..
Das muss es gewesen sein.... das schreiben mit dem Plugin funktioniert *schäm*Zitat von TCr82 Beitrag anzeigenBin dann nochmal zur Heizung gelaufen und habe auch nachgesehen, ob das Lämpchen an/aus geht... und ja das tut es - allerdings brauchte es ein wenig Zeit.
Was mich wohl gestern in die Irre geleitet hat ist das hier:
Die Antwort vom schreiben ist 00 und ich habe das interpretiert als den Wert der Abfrage... gesendet hatte ich ja nämlich an.Zitat von TCr82 Beitrag anzeigenOk, der Fehler kommt nicht mehr, aber der Status ändert sich nicht an der Heizung:
Und da dann auch das Licht am Knopf sich nicht geändert hat, bin ich wohl vorschnell zum falschen entschluß gekommen.
Einen Kommentar schreiben:
-
Eigentlich ist das, was ich erwartet, aber auch befürchtet habe.
Die gesendeten - und empfangenen! - Bytesequenzen sind identisch. Beim Schreibversuch heißt das eigentlich, dass die Anlage den Schreibbefehl empfangen hat, und da sie ihn verstanden hat und umsetzen konnte, antwortet sie mit 0x00 (OK). Das tut sie auch beim Plugin, ist weiter oben im Log zu sehen.
Ich sehe zumindest, dass in der grundlegenden Logik der Kommunikation kein (offensichtlicher) Fehler steckt. Ich sehe auch, dass die Heizung der gleichen Meinung ist (sonst würde sie nicht OK geben).
Wieso das Geschriebene nicht (so) ankommt, kann ich so noch nicht sagen.
Wenn ich das bei mir mit 'KW' probiere:
Schreiben geht einwandfrei, Wert wird übernommen, anschließendes Lesen bestätigt das.Code:2021-01-03 12:08:36 INFO plugins.priv_viessmann Update item: d.heizung.betriebsart, item has been changed outside this plugin 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann update_item was called with item d.heizung.betriebsart from caller Visu, source 192.168.2.2:53900 and dest None 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Got item value to be written: Warmwasser on command name Betriebsart 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Got a new write job: Command Betriebsart with value Warmwasser 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Build write packet for command Betriebsart 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Unit defined to IUNON with config{'unit_de': 'INT unsigned non', 'type': 'integer', 'signed': False, 'read_value_transform': 'non'} 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Created value bytes for type integer as hexstring: 01 and as bytes: b'\x01' 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Payload length is: 1 bytes 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Created command Betriebsart to be sent as hexstring: 01f4b0000101 and as bytes: bytearray(b'\x01\xf4\xb0\x00\x01\x01') with value Warmwasser (transformed to value byte 01) 2021-01-03 12:08:36 DEBUG plugins.priv_viessmann Starting sync loop - attempt 1/5 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Starting sync loop - attempt 2/5 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Got sync. Commencing command send 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Successfully sent packet: 01f4b0000101 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Trying to receive 1 bytes of the response 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Received 1 bytes chunk of response as hexstring 00 and as bytes b'\x00' 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Response decoded to: commandcode: b000, responsedatacode: 2, valuebytecount: 1, responsetypecode: 1 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Rawdatabytes formatted: 00 and unformatted: bytearray(b'\x00') 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Write request of adress b000 successfull writing 1 bytes 2021-01-03 12:08:38 DEBUG plugins.priv_viessmann Attempting read after write for item d.heizung.betriebsart, command Betriebsart, delay 5 2021-01-03 12:08:43 DEBUG plugins.priv_viessmann Got a new read job: Command Betriebsart 2021-01-03 12:08:43 DEBUG plugins.priv_viessmann Build read packet for command Betriebsart 2021-01-03 12:08:43 DEBUG plugins.priv_viessmann Created command Betriebsart to be sent as hexstring: 01f7b00001 and as bytes: bytearray(b'\x01\xf7\xb0\x00\x01') 2021-01-03 12:08:43 DEBUG plugins.priv_viessmann Starting sync loop - attempt 1/5 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Starting sync loop - attempt 2/5 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Got sync. Commencing command send 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Successfully sent packet: 01f7b00001 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Trying to receive 1 bytes of the response 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Received 1 bytes chunk of response as hexstring 01 and as bytes b'\x01' 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Response decoded to: commandcode: b000, responsedatacode: 1, valuebytecount: 1, responsetypecode: 1 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Rawdatabytes formatted: 01 and unformatted: bytearray(b'\x01') 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Matched command Betriebsart and read transformed operating mode Warmwasser (raw value was 01) and byte length 1 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Corresponding item d.heizung.betriebsart for command Betriebsart 2021-01-03 12:08:45 DEBUG plugins.priv_viessmann Updating item d.heizung.betriebsart with value Warmwasser 2021-01-03 12:11:55 INFO plugins.priv_viessmann Update item: d.heizung.betriebsart, item has been changed outside this plugin 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann update_item was called with item d.heizung.betriebsart from caller Visu, source 192.168.2.2:53900 and dest None 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Got item value to be written: Heizen und Warmwasser on command name Betriebsart 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Got a new write job: Command Betriebsart with value Heizen und Warmwasser 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Build write packet for command Betriebsart 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Unit defined to IUNON with config{'unit_de': 'INT unsigned non', 'type': 'integer', 'signed': False, 'read_value_transform': 'non'} 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Created value bytes for type integer as hexstring: 02 and as bytes: b'\x02' 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Payload length is: 1 bytes 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Created command Betriebsart to be sent as hexstring: 01f4b0000102 and as bytes: bytearray(b'\x01\xf4\xb0\x00\x01\x02') with value Heizen und Warmwasser (transformed to value byte 02) 2021-01-03 12:11:55 DEBUG plugins.priv_viessmann Starting sync loop - attempt 1/5 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Starting sync loop - attempt 2/5 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Got sync. Commencing command send 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Successfully sent packet: 01f4b0000102 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Trying to receive 1 bytes of the response 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Received 1 bytes chunk of response as hexstring 00 and as bytes b'\x00' 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Response decoded to: commandcode: b000, responsedatacode: 2, valuebytecount: 1, responsetypecode: 1 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Rawdatabytes formatted: 00 and unformatted: bytearray(b'\x00') 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Write request of adress b000 successfull writing 1 bytes 2021-01-03 12:11:57 DEBUG plugins.priv_viessmann Attempting read after write for item d.heizung.betriebsart, command Betriebsart, delay 5 2021-01-03 12:11:59 INFO plugins.priv_viessmann Triggering cyclic command read 2021-01-03 12:12:02 DEBUG plugins.priv_viessmann Got a new read job: Command Betriebsart 2021-01-03 12:12:02 DEBUG plugins.priv_viessmann Build read packet for command Betriebsart 2021-01-03 12:12:02 DEBUG plugins.priv_viessmann Created command Betriebsart to be sent as hexstring: 01f7b00001 and as bytes: bytearray(b'\x01\xf7\xb0\x00\x01') 2021-01-03 12:12:02 DEBUG plugins.priv_viessmann Starting sync loop - attempt 1/5 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Starting sync loop - attempt 2/5 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Got sync. Commencing command send 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Successfully sent packet: 01f7b00001 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Trying to receive 1 bytes of the response 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Received 1 bytes chunk of response as hexstring 02 and as bytes b'\x02' 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Response decoded to: commandcode: b000, responsedatacode: 1, valuebytecount: 1, responsetypecode: 1 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Rawdatabytes formatted: 02 and unformatted: bytearray(b'\x02') 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Matched command Betriebsart and read transformed operating mode Heizen und Warmwasser (raw value was 02) and byte length 1 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Corresponding item d.heizung.betriebsart for command Betriebsart 2021-01-03 12:12:04 DEBUG plugins.priv_viessmann Updating item d.heizung.betriebsart with value Heizen und Warmwasser
Das heißt für mich im Moment:
entweder deine Heizung verhält sich anders als meine - dann müsstest du das bei dir testen, das kann ich offensichtlich hier nicht. Die Kommunikation läuft zumindest nach Logfiles aber bei beiden gleich ab.
oder es gibt noch irgendein anderes Problem mit dem Datenpunkt - das wäre aber auch unlogisch, solange vcontrold den Punkt schreiben kann und das Plugin nicht.
Ich weiß ich Moment nicht, wo ich suchen soll.
@Michael: wenn jetzt deine Partymodus-Problematik geklärt ist und sich schreiben (und lesen) lässt - würdest du dann mal bei dir ein Debuglog erzeugen, wo du Partymodus im KW-Protokoll liest, auf 1 setzt, liest, auf 0 setzt, liest - und gleichzeitig (so möglich) an der Anlage verifizierst, ob tatsächlich der Wert übernommen wurde?
Das wäre a) super
und b) die einzige Idee, die ich jetzt noch habe.
Oder fällt euch sonst noch was ein?
Einen Kommentar schreiben:
-
So, hier mal der Debug von vcontrold:
Code:vclient -c getBetriebPartyM1 getBetriebPartyM1: 1 [7226] Sun Jan 3 11:50:35 2021 : >SENT: 04 [7226] Sun Jan 3 11:50:35 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:50:35 2021 : Waiting for 05 [7226] Sun Jan 3 11:50:37 2021 : <RECV: 05 (1370.0 ms) [7226] Sun Jan 3 11:50:37 2021 : >SENT: 01 [7226] Sun Jan 3 11:50:37 2021 : >SENT: F7 [7226] Sun Jan 3 11:50:37 2021 : >SENT: 23 [7226] Sun Jan 3 11:50:37 2021 : >SENT: 03 [7226] Sun Jan 3 11:50:37 2021 : >SENT: 01 [7226] Sun Jan 3 11:50:37 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:50:37 2021 : <RECV: len=1 01 (20.0 ms) [7226] Sun Jan 3 11:50:37 2021 : <RECV: received 01 [7226] Sun Jan 3 11:50:37 2021 : 01 -> 1 [7226] Sun Jan 3 11:50:37 2021 : 1 [7226] Sun Jan 3 11:50:37 2021 : Command: quit [7226] Sun Jan 3 11:50:37 2021 : Process 7226 released lock [7226] Sun Jan 3 11:50:37 2021 : Closed connection (fd:6)
Code:vclient -c "setBetriebPartyM1 0" setBetriebPartyM1 0: OK [7226] Sun Jan 3 11:52:31 2021 : 0 -> 00 [7226] Sun Jan 3 11:52:31 2021 : >SENT: 04 [7226] Sun Jan 3 11:52:31 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:52:31 2021 : Waiting for 05 [7226] Sun Jan 3 11:52:32 2021 : <RECV: 05 (190.0 ms) [7226] Sun Jan 3 11:52:32 2021 : >SENT: 01 [7226] Sun Jan 3 11:52:32 2021 : >SENT: F4 [7226] Sun Jan 3 11:52:32 2021 : >SENT: 23 [7226] Sun Jan 3 11:52:32 2021 : >SENT: 03 [7226] Sun Jan 3 11:52:32 2021 : >SENT: 01 [7226] Sun Jan 3 11:52:32 2021 : >SENT: 00 [7226] Sun Jan 3 11:52:32 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:52:32 2021 : <RECV: len=1 00 (50.0 ms) [7226] Sun Jan 3 11:52:32 2021 : <RECV: received 00 [7226] Sun Jan 3 11:52:32 2021 : 00 -> OK [7226] Sun Jan 3 11:52:32 2021 : OK [7226] Sun Jan 3 11:52:32 2021 : Command: quit [7226] Sun Jan 3 11:52:32 2021 : Process 7226 released lock [7226] Sun Jan 3 11:52:32 2021 : Closed connection (fd:6)
Code:vclient -c getBetriebPartyM1 getBetriebPartyM1: 0 [7226] Sun Jan 3 11:53:37 2021 : >SENT: 04 [7226] Sun Jan 3 11:53:37 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:53:37 2021 : Waiting for 05 [7226] Sun Jan 3 11:53:39 2021 : <RECV: 05 (1990.0 ms) [7226] Sun Jan 3 11:53:39 2021 : >SENT: 01 [7226] Sun Jan 3 11:53:39 2021 : >SENT: F7 [7226] Sun Jan 3 11:53:39 2021 : >SENT: 23 [7226] Sun Jan 3 11:53:39 2021 : >SENT: 03 [7226] Sun Jan 3 11:53:39 2021 : >SENT: 01 [7226] Sun Jan 3 11:53:39 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:53:39 2021 : <RECV: len=1 00 (20.0 ms) [7226] Sun Jan 3 11:53:39 2021 : <RECV: received 00 [7226] Sun Jan 3 11:53:39 2021 : 00 -> 0 [7226] Sun Jan 3 11:53:39 2021 : 0 [7226] Sun Jan 3 11:53:39 2021 : Command: quit [7226] Sun Jan 3 11:53:39 2021 : Process 7226 released lock [7226] Sun Jan 3 11:53:39 2021 : Closed connection (fd:6)
Hoffe, das hilft weiter.Code:vclient -c "setBetriebPartyM1 1" setBetriebPartyM1 1: OK [7226] Sun Jan 3 11:55:39 2021 : <RECV: 05 (1330.0 ms) [7226] Sun Jan 3 11:55:39 2021 : >SENT: 01 [7226] Sun Jan 3 11:55:39 2021 : >SENT: F4 [7226] Sun Jan 3 11:55:39 2021 : >SENT: 23 [7226] Sun Jan 3 11:55:39 2021 : >SENT: 03 [7226] Sun Jan 3 11:55:39 2021 : >SENT: 01 [7226] Sun Jan 3 11:55:39 2021 : >SENT: 01 [7226] Sun Jan 3 11:55:39 2021 : >FRAMER: no preset result [7226] Sun Jan 3 11:55:39 2021 : <RECV: len=1 00 (40.0 ms) [7226] Sun Jan 3 11:55:39 2021 : <RECV: received 00 [7226] Sun Jan 3 11:55:39 2021 : 00 -> OK [7226] Sun Jan 3 11:55:39 2021 : OK [7226] Sun Jan 3 11:55:39 2021 : Command: quit [7226] Sun Jan 3 11:55:39 2021 : Process 7226 released lock [7226] Sun Jan 3 11:55:39 2021 : Closed connection (fd:6)
Gruß
Einen Kommentar schreiben:
-
Muss ich mir ansehen, wie das geht.Zitat von Morg Beitrag anzeigenKannst du beim vcontrold einen Debug-Modus mit Kommunikationslog erzeugen? Das wäre ggf. hilfreich.
Ja, das Log ist von dem Lesevorgang den ich über das Webinterface ausgelößt habe. Lesen tut er es ja, nur Meldet er es nicht zurück in das WebinterfaceZitat von Morg Beitrag anzeigenAuf was du mit dem WebIf hinauswillst, habe ich nicht verstanden. Ist das Log unter dem Bild auch von _dem_ Lesevorgang? Dann müsste ich jeweils noch mehr Infos vorher und hinterher haben.
Was es auch war, es war Temporär - jetzt kommt die Antwort wieder. Falls es nochmal auftritt, was kann ich dir genau liefern?
Ja, das funktioniert, das versuchte ich ja auch hier zu sagen:Zitat von Morg Beitrag anzeigenAchso, und wenn du den Partymodus manuell aktivierst - kannst du dann den Wert "True" per Plugin lesen?
Der Status wird korrekt abgefragt und ändert sich wenn ich es an der Heizung bzw deren Bedienteil ändere. Adresse muss somit richtig sein.Zitat von TCr82 Beitrag anzeigenDann mal noch ein weiterer Fehler den ich entdeckt habe, da ich testen wollte, ob sich der Status auch ändert, wenn ich ihn Händisch am Panel ändere. Nachdem ich den Status neu abgefragt habe, war er auch Aus (so wie ich es eingestellt habe).
Einen Kommentar schreiben:
-
@TCr82: an der Kommunikation mit der Heizung kann ich beim Schreiben und beim Lesen keine Fehler finden. Die Adresse 0x2303 wird korrekt erkannt, der Befehlsstring zusammengebaut, und es kommt auch jeweils ein Wert. Beim Schreiben "Fehler" wäre keine Antwort, beim Lesen kommt die 0 = False.
Kannst du beim vcontrold einen Debug-Modus mit Kommunikationslog erzeugen? Das wäre ggf. hilfreich.
Auf was du mit dem WebIf hinauswillst, habe ich nicht verstanden. Ist das Log unter dem Bild auch von _dem_ Lesevorgang? Dann müsste ich jeweils noch mehr Infos vorher und hinterher haben.
Achso, und wenn du den Partymodus manuell aktivierst - kannst du dann den Wert "True" per Plugin lesen?
@Jackhammer:
ich weiß nicht, worauf du hinauswillst.
Wenn du einen Wert lesen oder schreiben willst, definierst du ein Item und gibst in deinem Fall "Raumsolltemp" als viess_read bzw. viess_send an. Was willst du denn mit der Befehlsdefinition? Die ist doch schon vorhanden...
Einen Kommentar schreiben:
-
Ok, über vcontrold funktioniert es:
Bin dann nochmal zur Heizung gelaufen und habe auch nachgesehen, ob das Lämpchen an/aus geht... und ja das tut es - allerdings brauchte es ein wenig Zeit.Code:root@heizung:~# vclient -c "setBetriebPartyM1 0" setBetriebPartyM1 0: OK root@heizung:~# vclient -c getBetriebPartyM1 getBetriebPartyM1: 0 root@heizung:~# vclient -c "setBetriebPartyM1 1" setBetriebPartyM1 1: OK root@heizung:~# vclient -c getBetriebPartyM1 getBetriebPartyM1: 1
Aber die Abfrage über vclient geht sofort - scheint also was im Plugin nicht zu funktionieren.Zuletzt geändert von TCr82; 02.01.2021, 22:45.
Einen Kommentar schreiben:
-
Sisamiwe
Laut meiner vito.xml und auch der Viessmann DB gibt es bei mir nur eine Adresse. Genauso bringt die suche nach der Adresse 2330 nichts in der ViessmannDB (falls es unter einem Kryptischen Namen geführt wäre).
Hier aus der vito.xml
Könnte mal versuchen das mit dem vcontrold zu schreiben...Code:<command name='getBetriebPartyM1' protocmd='getaddr'> <addr>2303</addr> <len>1</len> <unit>RT</unit> <description>Betriebsart Party M1</description> </command> <command name='setBetriebPartyM1' protocmd='setaddr'> <addr>2303</addr> <len>1</len> <unit>RT</unit> <description>Setze Betriebsart Party M1</description> </command>
Einen Kommentar schreiben:
-
Ok, der Fehler kommt nicht mehr, aber der Status ändert sich nicht an der Heizung:
2021-01-02 21:59:25 INFO plugins.viessmann Update item: technik.heizung.HK1.Partybetrieb, item has been changed outside this plugin
2021-01-02 21:59:25 DEBUG plugins.viessmann update_item was called with item HK1 Partybetrieb from caller admin, source None and dest None
2021-01-02 21:59:25 DEBUG plugins.viessmann Got item value to be written: True on command name Partybetrieb_A1M1
2021-01-02 21:59:25 DEBUG plugins.viessmann Got a new write job: Command Partybetrieb_A1M1 with value True
2021-01-02 21:59:25 DEBUG plugins.viessmann Build write packet for command Partybetrieb_A1M1
2021-01-02 21:59:25 DEBUG plugins.viessmann Unit defined to IUBOOL with config{'unit_de': 'INT unsigned bool', 'type': 'integer', 'signed': False, 'read_value_transform': 'bool'}
2021-01-02 21:59:25 DEBUG plugins.viessmann Created value bytes for type integer as hexstring: 01 and as bytes: b'\x01'
2021-01-02 21:59:25 DEBUG plugins.viessmann Payload length is: 1 bytes
2021-01-02 21:59:25 DEBUG plugins.viessmann Created command Partybetrieb_A1M1 to be sent as hexstring: 01f423030101 and as bytes: bytearray(b'\x01\xf4#\x03\x01\x01') with value True (transformed to value byte 01)
2021-01-02 21:59:25 DEBUG plugins.viessmann Starting sync loop - attempt 1/5
2021-01-02 21:59:26 DEBUG plugins.viessmann Got sync. Commencing command send
2021-01-02 21:59:26 DEBUG plugins.viessmann Successfully sent packet: 01f423030101
2021-01-02 21:59:26 DEBUG plugins.viessmann Trying to receive 1 bytes of the response
2021-01-02 21:59:26 DEBUG plugins.viessmann Received 1 bytes chunk of response as hexstring 00 and as bytes b'\x00'
2021-01-02 21:59:26 DEBUG plugins.viessmann Response decoded to: commandcode: 2303, responsedatacode: 2, valuebytecount: 1, responsetypecode: 1
2021-01-02 21:59:26 DEBUG plugins.viessmann Rawdatabytes formatted: 00 and unformatted: bytearray(b'\x00')
2021-01-02 21:59:26 DEBUG plugins.viessmann Write request of adress 2303 successfull writing 1 bytes
Dann mal noch ein weiterer Fehler den ich entdeckt habe, da ich testen wollte, ob sich der Status auch ändert, wenn ich ihn Händisch am Panel ändere. Nachdem ich den Status neu abgefragt habe, war er auch Aus (so wie ich es eingestellt habe).
Ich hatte das allerdings über dass Viessmann Plugin Webinterface neu abgefragt, aber der Status wird dort nicht gemeldet (hatte die Seite auch schon neu geladen und in der Browser Konsole taucht auch kein Fehler auf),
Statusupdate.png
nur im Logfile sieht man, dass er den Wert abgefragt hat:
hast du da nochwas geändert?2021-01-02 21:53:42 DEBUG plugins.viessmann Attempting to read address 2303 for command Partybetrieb_A1M1
2021-01-02 21:53:42 DEBUG plugins.viessmann Build read packet for command Partybetrieb_A1M1
2021-01-02 21:53:42 DEBUG plugins.viessmann Created command Partybetrieb_A1M1 to be sent as hexstring: 01f7230301 and as bytes: bytearray(b'\x01\xf7#\x03\x01')
2021-01-02 21:53:42 DEBUG plugins.viessmann Starting sync loop - attempt 1/5
2021-01-02 21:53:44 DEBUG plugins.viessmann Starting sync loop - attempt 2/5
2021-01-02 21:53:46 DEBUG plugins.viessmann Starting sync loop - attempt 3/5
2021-01-02 21:53:48 DEBUG plugins.viessmann Starting sync loop - attempt 4/5
2021-01-02 21:53:48 DEBUG plugins.viessmann Got sync. Commencing command send
2021-01-02 21:53:48 DEBUG plugins.viessmann Successfully sent packet: 01f7230301
2021-01-02 21:53:48 DEBUG plugins.viessmann Trying to receive 1 bytes of the response
2021-01-02 21:53:48 DEBUG plugins.viessmann Received 1 bytes chunk of response as hexstring 00 and as bytes b'\x00'
2021-01-02 21:53:48 DEBUG plugins.viessmann Response decoded to: commandcode: 2303, responsedatacode: 1, valuebytecount: 1, responsetypecode: 1
2021-01-02 21:53:48 DEBUG plugins.viessmann Rawdatabytes formatted: 00 and unformatted: bytearray(b'\x00')
2021-01-02 21:53:48 DEBUG plugins.viessmann Matched command Partybetrieb_A1M1 and read transformed value False (integer raw value was 0) and byte length 1Angehängte DateienZuletzt geändert von TCr82; 02.01.2021, 22:09.
Einen Kommentar schreiben:
-
Hallo zusammen,
frohes neues Jahr!
wenn ich mit einer WO1C die Raumsolltemperatur übe die VISU ändern möchte muss ich dann nur:
{'addr': '2000', 'len': 2, 'unit': 'IS10', 'set': False},
Set auf True setzen? Ist die Angabe von Min und Max Val erforderlich?
Gruß
Jackhammer
Einen Kommentar schreiben:
-
Huch.. wo kommt das denn her? Schreiben ging bei mir schon in KW, ist aber tatsächlich ein Fehler.
Probier nochmal, neue Version ist oben.
Einen Kommentar schreiben:


Einen Kommentar schreiben: