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
    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)

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    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:


  • TCr82
    antwortet
    Zitat von TCr82 Beitrag anzeigen
    Aber 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!
    Ich habe herausgefunden, was hier los ist.

    Die Adresse ist zwar doppelt definiert, aber ich habe übersehen, dass von der Adresse nur ein Teil ausgewertet wird.

    Hier z.B.

    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>
    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.

    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:


  • Morg
    antwortet
    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:


  • TCr82
    antwortet
    puuhh..

    Zitat von TCr82 Beitrag anzeigen
    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.
    Das muss es gewesen sein.... das schreiben mit dem Plugin funktioniert *schäm*

    Was mich wohl gestern in die Irre geleitet hat ist das hier:

    Zitat von TCr82 Beitrag anzeigen
    Ok, der Fehler kommt nicht mehr, aber der Status ändert sich nicht an der Heizung:
    Die Antwort vom schreiben ist 00 und ich habe das interpretiert als den Wert der Abfrage... gesendet hatte ich ja nämlich an.
    Und da dann auch das Licht am Knopf sich nicht geändert hat, bin ich wohl vorschnell zum falschen entschluß gekommen.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    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:
    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
    Schreiben geht einwandfrei, Wert wird übernommen, anschließendes Lesen bestätigt das.

    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:


  • TCr82
    antwortet
    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)
    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)
    Hoffe, das hilft weiter.

    Gruß

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Zitat von Morg Beitrag anzeigen
    Kannst du beim vcontrold einen Debug-Modus mit Kommunikationslog erzeugen? Das wäre ggf. hilfreich.
    Muss ich mir ansehen, wie das geht.

    Zitat von Morg Beitrag anzeigen
    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.
    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 Webinterface

    Was es auch war, es war Temporär - jetzt kommt die Antwort wieder. Falls es nochmal auftritt, was kann ich dir genau liefern?

    Zitat von Morg Beitrag anzeigen
    Achso, und wenn du den Partymodus manuell aktivierst - kannst du dann den Wert "True" per Plugin lesen?
    Ja, das funktioniert, das versuchte ich ja auch hier zu sagen:

    Zitat von TCr82 Beitrag anzeigen
    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).
    Der Status wird korrekt abgefragt und ändert sich wenn ich es an der Heizung bzw deren Bedienteil ändere. Adresse muss somit richtig sein.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    @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:


  • TCr82
    antwortet
    Ok, über vcontrold funktioniert es:

    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
    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.

    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:


  • TCr82
    antwortet
    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

    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>
    Könnte mal versuchen das mit dem vcontrold zu schreiben...

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    TCr82

    Schau mal ein paar Beiträge von mir weiter oben.
    Für Sparbetrieb und Partybetrieb hat die Heizung je 2 Datenpunkt, Beinen nur zum Lesen und einen zum Lesen und Schreiben.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    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:
    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 1
    hast du da nochwas geändert?
    Angehängte Dateien
    Zuletzt geändert von TCr82; 02.01.2021, 22:09.

    Einen Kommentar schreiben:


  • Jackhammer
    antwortet
    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:


  • Morg
    antwortet
    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:

Lädt...
X