NEWS
Viessmann-Adapter
-
Wie kann ich eine bestimmte Byteposition abfragen?
<command name='getBetriebsartHK' protocmd='getaddr'> <addr>2500</addr> <len>22</len> <unit>BAHK</unit> <description>'00'='Abschalt'; '01'='Reduziert'; '02'='Normal'; '03'='Normal2'; Setze Betriebsart vom Heizkreis</description> </command>
<unit name='Betriebsart Heizkreis'> <abbrev>BAHK</abbrev> <type>short</type> <enum bytes='00' text='Abschalt'/> <enum bytes='01' text='Reduziert'/> <enum bytes='02' text='Normal'/> <enum bytes='03' text='Normal2'/> <enum text='?'/> </unit>
Wie kann ich genau bestimme BYTE Positionen abfragen und als enum auswerten?
41 1B 01 01 25 00 16 02 02 46 63 66 00 0E 02 02 00 00 01 D2 00 00 00 00 0E 02 00 D2 00 32
Hier z.b als antwort die BYTE Position 1
oder die BYTE Position 12
Von links nach rechts gezählt mit 0 angefangen.Ich denke das das mit icalc geht, aber ich brauche da den korrekten Ausdruck.
-
<command name='getBetriebsartHK' protocmd='getaddr'> <addr>2500</addr> <len>2</len> <unit>BAHK</unit> <description></description> </command>
<unit name='Betriebsart Heizkreis'> <abbrev>BAHK</abbrev> <type>uchar</type> <icalc get='B1'/> <enum bytes='00' text='Abschalt'/> <enum bytes='01' text='Reduziert'/> <enum bytes='02' text='Normal'/> <enum bytes='03' text='Normal2'/> <enum text='?'/> </unit>
<RECV: received 01 01 25 00 02 02 02 34
(INT) Exp:B1 [BP:255] [B0:02 B1:02 B2:00 B3:00 B4:00 B5:00 B6:00 B7:00 B8:00 B9:00 ]
Erg: (Hex max. 4Byte) 00000002
02 F3 -> ?
Warum bekomme ich Antwort : 02 F3 ???
Nach der 02 bekomme ich Irgendwelche Daten.
Die ich nicht will und nicht zuordnen kann.
Sobald ich in der vito.xml bei dem command die <len>2</len> höher setzte bekomme ich noch mehr Daten. -
@XerXes777 sagte in Viessmann-Adapter:
<command name='getBetriebsartHK' protocmd='getaddr'> <addr>2500</addr> <len>2</len> <unit>BAHK</unit> <description></description> </command>
<unit name='Betriebsart Heizkreis'> <abbrev>BAHK</abbrev> <type>uchar</type> <icalc get='B1'/> <enum bytes='00' text='Abschalt'/> <enum bytes='01' text='Reduziert'/> <enum bytes='02' text='Normal'/> <enum bytes='03' text='Normal2'/> <enum text='?'/> </unit>
<RECV: received 01 01 25 00 02 02 02 34
(INT) Exp:B1 [BP:255] [B0:02 B1:02 B2:00 B3:00 B4:00 B5:00 B6:00 B7:00 B8:00 B9:00 ]
Erg: (Hex max. 4Byte) 00000002
02 F3 -> ?
Warum bekomme ich Antwort : 02 F3 ???
Nach der 02 bekomme ich Irgendwelche Daten.
Die ich nicht will und nicht zuordnen kann.
Sobald ich in der vito.xml bei dem command die <len>2</len> höher setzte bekomme ich noch mehr Daten.Hast du vl überlesen, warst aber damals auch (im Thread) schon aktiv:
https://forum.iobroker.net/topic/2715/viessmann-adapter/355
Das Problem liegt im vcontrold code. Man kann mit dem Viessmann Diag Tool auch mehrere Werte auf einer Adresse lesen. Mit dem angepassten code funktioniert das auch....
-
Gibt es auch die Möglichkeit einen Fehler auszulesen. Meine Vitocal 222 mit Wärmepumpe schaltet ab und an mal auf störung wg dem Außenfühler. Ich würde das gern in iobroker gemeldet bekommen...
Vor- und Rücklauf Temp funktionieren sehr gut aber wie komme ich an die Fehler? -
Hallo zusammen.
Ich bin gerade dabei meine Viessmannheizung in ioBroker einzubinden.
vcontrold wurde auf einem raspi aufgespielt. Adapter verbindet sich mit der Heizung (leuchtet Grün).
Nur leider bekomme ich keine Werte von meiner Heizung angezeigt, liegt wohl an der xml-Datei.
Hat jemand zufällig eine LuftWärmepumpe (WO1B) erfolgreich in ioBroker eingebunden und könnte mir die xml-Datei zu Verfügung stellen?Gruß Matthias
-
Wenn ich meinen Raspi mit vcontrold neu starte, verliert der Viessmann-Adapter leider regelmäßig die Verbindung und geht auf Gelb. Kann man einen Adapter dazu bewegen, automatisch neu zu starten, wenn er z.B. 10 Minuten oder so auf Gelb steht?
-
@sveni_lee sagte in Viessmann-Adapter:
Gibt es auch die Möglichkeit einen Fehler auszulesen.
Ja, sofern du die entsprechenden Adressen in deiner vito.xml difiniert hast. Für unsere VScotH01 sieht das z.B. so aus:
<!-- STOERUNG --> <command name='getVitoStatusStoerung' protocmd='getaddr'> <addr>0A82</addr> <len>1</len> <unit>ES</unit> <description>Status Störung</description> </command> <command name='getVitoStoerung1' protocmd='getaddr'> <addr>7507</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 1</description> </command> <command name='getVitoStoerung2' protocmd='getaddr'> <addr>7510</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 2</description> </command> <command name='getVitoStoerung3' protocmd='getaddr'> <addr>7519</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 3</description> </command> <command name='getVitoStoerung4' protocmd='getaddr'> <addr>7522</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 4</description> </command> <command name='getVitoStoerung5' protocmd='getaddr'> <addr>752B</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 5</description> </command> <command name='getVitoStoerung6' protocmd='getaddr'> <addr>7534</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 6</description> </command> <command name='getVitoStoerung7' protocmd='getaddr'> <addr>753D</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 7</description> </command> <command name='getVitoStoerung8' protocmd='getaddr'> <addr>7546</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 8</description> </command> <command name='getVitoStoerung9' protocmd='getaddr'> <addr>754F</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 9</description> </command> <command name='getVitoStoerung10' protocmd='getaddr'> <addr>7558</addr> <len>9</len> <unit>EM</unit> <description>Störung Meldung 10</description> </command>
Anzeigen lasse ich mir das dann über ein entsprechendes Widget in vis.
-
Das macht er, allerdings nur bedingt. Mach doch mal bei github im adapter einen Wunsch auf, ich versuche das im Laufe der Zeit zu realisieren...
-
-
-
von github geladen, upload... ;Leider kein reconnect nach 5 Minuten...
EDIT: Nach ein paar minuten geht auch die zweite viessmann instanz ( Zwei Heizungen/zwei Instanzen) ohne restart des raspi auf gelb... Ich gehe zurück auf die vorherige Version...
-
@passuff sagte in Viessmann-Adapter:
von github geladen, upload... ;Leider kein reconnect nach 5 Minuten...
EDIT: Nach ein paar minuten geht auch die zweite viessmann instanz ( Zwei Heizungen/zwei Instanzen) ohne restart des raspi auf gelb... Ich gehe zurück auf die vorherige Version...
Kannst du mir den Log schicken, ich habe momentan nicht die Möglichkeit zu testen.....
-
Ich komme leider erst heute Abend zum Testen.
-
-
@blauholsten
Ich komme vermutlich auch erst heute Abend dazu. -
habe ich das richtig verstanden, Du hast den die "Fehlercode Abfrage" implementiert?
-
@sveni_lee sagte in Viessmann-Adapter:
habe ich das richtig verstanden, Du hast den die "Fehlercode Abfrage" implementiert?
Nein!
Der Adapter soll sich bei Verlust des vcontrold Client wieder selbst verbinden.
-
@blauholsten sagte in Viessmann-Adapter:
@sveni_lee sagte in Viessmann-Adapter:
habe ich das richtig verstanden, Du hast den die "Fehlercode Abfrage" implementiert?
Nein!
Der Adapter soll sich bei Verlust des vcontrold Client wieder selbst verbinden.
Könnte man zusätzlich auch einbauen dass der Adapter auf dem verbundenen raspi einen reboot macht.
Also so:
Verbindung ist gelb.
reboot auf dem verbundenen raspi
1 oder 2 min warten und dann adapter wieder starten. -
Macht das Sinn? Mein Raspi verliert eigentlich nie die Verbindung zum Optolink-Adapter. Das läuft super stabil mit vcontrold. Warum muss denn bei dir der Raspi neu gestartet werden?
-
@dtp sagte in Viessmann-Adapter:
Macht das Sinn? Mein Raspi verliert eigentlich nie die Verbindung zum Optolink-Adapter. Das läuft super stabil mit vcontrold. Warum muss denn bei dir der Raspi neu gestartet werden?
Der Raspi/vcontrold verträgt keine mehreren Verbindungen.
Nach meiner Erfahrung verliert iob immer mal wieder die verbindung und wird gelb.
Und wenn ich dann o.g. Workflow mache bleibt die Verbindung länger erhalten (zumindest bilde ich mir das ein).
Kann ich aber auch falsch liegen.