NEWS
Viessmann-Adapter
-
Bin gerade auf eine Viessmann API eines netten Franzosen gestoßen. Scheint als ob man damit recht einfach an alle Abfrage und Setzpunkte seiner Heizung gelangen könnte und zusätzlich noch die Vitoconnect 100 Box parallel laufen lassen könnte.
-
Ich hab mich nochmal an den Adapter ran gemacht. Ich hab diesmal folgendes gemacht. Ich hab unter der Lasche "Instanzen" den Adapter gelöscht.
Dann bin ich auf die Lasche "Adapter" gewechselt und musste dort lesen das scheinbar immer noch eine 0.8.3 Version installiert ist. Dann hab ich auch dort auf den "lösche Adapter" - Button geklickt. Nun schienen alle möglichen Viessmann-Adapter deinstalliert zu sein. Deshalb hab ich erstmal beide Raspis neugestartet. Daraufhin hab ich die neue Version 0.8.4 zur Installation angewählt.
Aber bei mir wird immer noch laut LOG-File die 0.8.2 ausgeführt, mit dem gleichen Fehlerbild. Kann mir mal bitte jemand sagen was ich falsch mache?
Liegt es überhaupt an mir?
viessmann.0 2018-11-17 12:16:03.732 warn cannot read vito.xml Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.viessmann/vito.xml' viessmann.0 2018-11-17 12:16:03.729 warn cannot read vcontrold.xml Error: EISDIR: illegal operation on a directory, read viessmann.0 2018-11-17 12:16:03.725 info starting. Version 0.8.2 in /opt/iobroker/node_modules/iobroker.viessmann, node: v8.11.3
-
Mal ne Frage. Wo hast du denn bei dir vcontrold laufen?
Läuft es auf demselben Host, wie der ioBroker? Falls nein, funktioniert dann der SSH-Zugang zu dem Host, auf dem vcontrold läuft? Und hast du die notwendigen SSH-Zugangsdaten im viessmann-Adapter eingegeben?
-
Ich hab mich nochmal an den Adapter ran gemacht. Ich hab diesmal folgendes gemacht. Ich hab unter der Lasche "Instanzen" den Adapter gelöscht.
Dann bin ich auf die Lasche "Adapter" gewechselt und musste dort lesen das scheinbar immer noch eine 0.8.3 Version installiert ist. Dann hab ich auch dort auf den "lösche Adapter" - Button geklickt. Nun schienen alle möglichen Viessmann-Adapter deinstalliert zu sein. Deshalb hab ich erstmal beide Raspis neugestartet. Daraufhin hab ich die neue Version 0.8.4 zur Installation angewählt.
Aber bei mir wird immer noch laut LOG-File die 0.8.2 ausgeführt, mit dem gleichen Fehlerbild. Kann mir mal bitte jemand sagen was ich falsch mache?
Liegt es überhaupt an mir?
viessmann.0 2018-11-17 12:16:03.732 warn cannot read vito.xml Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.viessmann/vito.xml' viessmann.0 2018-11-17 12:16:03.729 warn cannot read vcontrold.xml Error: EISDIR: illegal operation on a directory, read viessmann.0 2018-11-17 12:16:03.725 info starting. Version 0.8.2 in /opt/iobroker/node_modules/iobroker.viessmann, node: v8.11.3 ```` `
An sich machst du alles richtig. Ich habe das Phänomen Mal bei einem anderen Adapter gehabt.
Da hat dann nur das löschen des kompletten Ordner s geholfen.
-
@dtp:Mal ne Frage. Wo hast du denn bei dir vcontrold laufen?
Läuft es auf demselben Host, wie der ioBroker? Falls nein, funktioniert dann der SSH-Zugang zu dem Host, auf dem vcontrold läuft? Und hast du die notwendigen SSH-Zugangsdaten im viessmann-Adapter eingegeben? `
Hi dtp,
wie weiter oben beschrieben hab ich ein MultiHost System. Ich hab vcontrold auf dem Raspi laufen auf dem auch die Instanz des Viessmann-Adapters installiert ist. Somit wird meinem Verständnis nach kein Zugang über SSH benötigt.
-
Ich hab mich nochmal an den Adapter ran gemacht. Ich hab diesmal folgendes gemacht. Ich hab unter der Lasche "Instanzen" den Adapter gelöscht.
Dann bin ich auf die Lasche "Adapter" gewechselt und musste dort lesen das scheinbar immer noch eine 0.8.3 Version installiert ist. Dann hab ich auch dort auf den "lösche Adapter" - Button geklickt. Nun schienen alle möglichen Viessmann-Adapter deinstalliert zu sein. Deshalb hab ich erstmal beide Raspis neugestartet. Daraufhin hab ich die neue Version 0.8.4 zur Installation angewählt.
Aber bei mir wird immer noch laut LOG-File die 0.8.2 ausgeführt, mit dem gleichen Fehlerbild. Kann mir mal bitte jemand sagen was ich falsch mache?
Liegt es überhaupt an mir?
viessmann.0 2018-11-17 12:16:03.732 warn cannot read vito.xml Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.viessmann/vito.xml' viessmann.0 2018-11-17 12:16:03.729 warn cannot read vcontrold.xml Error: EISDIR: illegal operation on a directory, read viessmann.0 2018-11-17 12:16:03.725 info starting. Version 0.8.2 in /opt/iobroker/node_modules/iobroker.viessmann, node: v8.11.3 ```` `
An sich machst du alles richtig. Ich habe das Phänomen Mal bei einem anderen Adapter gehabt.
Da hat dann nur das löschen des kompletten Ordner s geholfen. `
Hey blauholsten,
kannst du mir sagen welcher Ordner genau gemeint ist? Welchen muss ich löschen?
Vielleicht ist es ja dann die Lösung.
gruß B4n4n3
-
Jetzt lese ich erst das du ein Multihost hast.
Genau solch ein Problem hatte ich mit irgendeinem Adapter auch schon Mal.
Probier doch Mal die Instanz auf den master zu installieren, und anschließend auf den Slave.
Vielleicht wird dann die richtige Version genommen.
-
Ok… das ist interessant! Viessmann-Adapter auf der Haupt-IoBroker-Installation installiert... steht im LOG:
viessmann.0 2018-11-22 17:14:18.291 info starting. Version 0.8.4 in /opt/iobroker/node_modules/iobroker.viessmann, node: v8.11.3
Dann die Instantz auf den anderen Host verschoben… steht im LOG:
viessmann.0 2018-11-22 17:17:20.455 info starting. Version 0.8.2 in /opt/iobroker/node_modules/iobroker.viessmann, node: v8.11.3
Also für mich sieht das nach einem BUG im ioBroker aus oder?
Kannst du mir sagen welchen Ordner ich zu löschen habe, damit die 0.8.2 vollständig weg ist?
-
ok ich habs… auf dem Slave musste ich den Ordner \opt\iobroker\node_modules\iobroker.viessmann\ löschen.
Dann Adapter neu und direkt auf den Slave installiert -> es wird der richtige Adapter gestartet. Soweit so gut.
Nun schau ich weiter.
-
Hi,
Also bei mir wird die Systemzeit trotz unit Off auch nicht angenommen.
Gibt es jemanden bei dem das klappt, bzw. Es von Nöten ist unit Off einzuschalten? Falls ja würde ich es versuchen im adapter einzubauen. `
Hallo blauholsten, dtp
habt ihr das setzen der Systemzeit mittlerweile lösen können.
Wäre schön wenn wir / jemand dies hinbekommen könnte.
mfg
Dieter
-
Hi,
Also bei mir wird die Systemzeit trotz unit Off auch nicht angenommen.
Gibt es jemanden bei dem das klappt, bzw. Es von Nöten ist unit Off einzuschalten? Falls ja würde ich es versuchen im adapter einzubauen. `
Hallo blauholsten, dtp
habt ihr das setzen der Systemzeit mittlerweile lösen können.
Wäre schön wenn wir / jemand dies hinbekommen könnte.
mfg
Dieter `
Ich habe wie vor einiger Zeit geschrieben, vieles ausprobiert und Internet gelesen, leider ohne Erfolg.
-
Ich habe mich ehrlich gesagt in letzter Zeit nicht mehr um das Thema Systemzeit gekümmert. Da gab es zu viele andere Baustellen. Leider hat sich daher an der bisherigen Situation nichts geändert.
Gruß,
Thorsten
-
@dtp:Die Adresse 2500 scheint schon richtig zu sein, jedoch bekomme ich immer nur den Status ( Normalberieb ( Schaltuhr ) angezeigt auch wenn die Anlage im abgesenkten Modus läuft.
Evtl. ist dieser Zustand dann gar nicht auslesbar zumindest nicht über Adresse 2500. `
Muss ich noch mal testen. Evtl. ist aber auch die Einheiten-Konvertierung in der vcontrold.xml falsch:
....
Was den Partymodus angeht, so funktioniert bei mir die Adresse 2303 sowohl für das Lesen als auch für das Setzen. Mit 2330 hatte ich es auch schon mal versucht, aber keinen Erfolg gehabt. Viessmann scheint da selbst für gleiche Geräte unterschiedliche Adressen verwendet zu haben, so dass es da wohl leider keine Universallösung gibt. Die Devise heißt also Try and Error. 8-)
Bis dann,
Thorsten `
Hallo zusammen, ich habe die gleich Steuerung und auch das Problem mit der Adresse 2500/3500.
Laut meinen Recherchen haben alle 20CB Nutzer das Problem. Im Vcontrold Github ist die Lösung beschrieben, allerdings fehlt mir die Programmierkenntnis für die Umsetzung.
Grundsätzlich könnenauf einer Adresse mehrere Informationen abgefragt oder geschrieben werden, je nach dem welches Byte man wählt. So auch für die Adressen 2500/3500 wie man den aktuellsten xml Konfigs der VItosoft 300 entnehmen kann:
[20CB-VScotHO1]
HK_RaumsolltemperaturaktuellM2~0x3500; HK_Frostgefahr_aktivM2~0x3500; HK_AktuelleBetriebsartM2~0x3500;
Erst bei näherer Betrachtung der Auswertung der Adresse wird der Unterschied sichtbar:
<id>HK_RaumsolltemperaturaktuellM2~0x3500</id> <address>0x3500</address> <blocklength>22</blocklength> <byteposition>12</byteposition> <bytelength>2</bytelength> <bitposition>0</bitposition> <bitlength>0</bitlength> <id>HK_Frostgefahr_aktivM2~0x3500</id> <address>0x3500</address> <blocklength>22</blocklength> <byteposition>16</byteposition> <bytelength>1</bytelength> <bitposition>135</bitposition> <bitlength>1</bitlength> <id>HK_AktuelleBetriebsartM2~0x3500</id> <address>0x3500</address> <blocklength>22</blocklength> <byteposition>1</byteposition> <bytelength>1</bytelength> <bitposition>0</bitposition> <bitlength>0</bitlength>
Wie schon gesagt, wurde die prinzipielle Umsetzung hier diskutiert: https://github.com/openv/openv/issues/59
-
Mal ohne Gewähr, da es bei mir problemlos mit der Adresse 2500 funktioniert. Meine Einträge in der vito.xml und der vcontrold.xml sehen dazu wie folgt aus:
vito.xml:
<command name="getVitoBetriebsartHK" protocmd="getaddr"></command> <addr>2500</addr> <len>1</len> <unit>ABA</unit> <description>Aktuelle Betriebsart des Heizkreises</description>
vcontrold.xml:
<units><unit name="Aktuelle Betriebsart"><abbrev>ABA</abbrev> <type>enum</type></unit></units>
Will man nun z.B. für die Adresse 3500 ab Byteposition 1 Werte auslesen, so müsste man es eigenltich wie folgt ändern:
vito.xml:
<command name="getVitoBetriebsartHK" protocmd="getaddr"></command> <addr>3500</addr> <len>1</len> <unit>ABA</unit> <description>Aktuelle Betriebsart des Heizkreises</description>
vcontrold.xml:
<units><unit name="Aktuelle Betriebsart"><abbrev>ABA</abbrev> <type>uchar</type> <icalc get="(B1 & (0x01<<BP))>> BP"></icalc></unit></units>
Ich bin mir aber im Moment nicht ganz sicher, ob unter "len" in der vito.xml die Blocklänge oder die Bytelänge eingegeben werden muss.
Gruß,
Thorsten
-
@dtp:Mal ohne Gewähr, da es bei mir problemlos mit der Adresse 2500 funktioniert. Meine Einträge in der vito.xml und der vcontrold.xml sehen dazu wie folgt aus: `
Hallo Thorsten,
die Heizkreise (2500/3500) sind laut ecnEventType.xml identisch aufgebaut, zumindest was BlockLength, BytePosition, ByteLength, BitPosition und BitLength angeht. Wenn du eine VScotHO1/20CB nutzt, sollte das eigentlich auch bei dir so sein. Sicher, dass du jemals eine reduzierte Raumtemp angezeigt bekommen hast? Ich lese mit deinen Einstellungen immer Normalbetrieb aus, selbst wenn sich die Anlage im reduzierten Betrieb befindet. Wenn das bei dir alles passt, würde mich mal deine SW Version interessieren. Hast du mal mit der Vitosoft 300 Demo genau deinen Softwareindex bestimmt? Ich habe eine VScotHO1****_4****.
Gruß
Michael
-
Hallo Michael,
das muss ich dann noch mal prüfen. Melde mich.
Gruß,
Thorsten
-
Also ich habe es gestern dann noch mal mit dem Umschalten der Betriebsart (Heizen und Warmwasser auf reduzierten Betrieb und umgekehrt) über meine Views getestet und es scheint soweit alles zu funktionieren. Die Solltemperaturen werden angepasst und die Pumpen sowie der Brenner umgeschaltet. Wird dann auch alles korrekt in meinem View angezeigt.
Ein Wunsch noch an @blauholsten:
Wäre es ggf. möglich, die einzelnen Datenpunkte zum Lesen und Schreiben sortierbar zu machen? Also z.B. nach einem bestimmten Suchbegriff, wie "Soll" oder "Temperatur", etc.? Das würde die Einstellung der Polling-Intervalle enorm erleichtern. Auch eine Sortierfunktion für die Polling-Intervalle wäre klasse.
Gruß,
Thorsten
-
@dtp:Also ich habe es gestern dann noch mal mit dem Umschalten der Betriebsart (Heizen und Warmwasser auf reduzierten Betrieb und umgekehrt) über meine Views getestet und es scheint soweit alles zu funktionieren. Die Solltemperaturen werden angepasst und die Pumpen sowie der Brenner umgeschaltet. Wird dann auch alles korrekt in meinem View angezeigt. `
Hmm.Das sind jetzt aber (in meinem Fall ) zwei verschiedene Adressen:
getVitoBetriebsart (2323)
- Abschaltbetrieb
Nur Warmwasser Heizen und Warmwasser Dauernd red. Betrieb Dauernd Normalbetrieb
getVitoBetriebsartHK (2500):
- Abschaltbetr. (Dauernd)
Red. Betrieb (Schaltuhr) Normalbetrieb (Schaltuhr) Normalbetrieb (Dauernd)
getVitoBetriebsart (2323) funktioniert bei mir auch wunderbar, nur getVitoBetriebsartHK bereitet mir Probleme.
Ich würde mich dennoch freuen, wenn du mit der Vitosoft mal den SW Stand deiner Heizung in Erfahrung bringen könntest.
Darüber hinaus habe ich gerade folgendes Problem. Der Ferienbetrieb der FBH hat sich, warum auch immer aktiviert. Ich wollte ihn eben verstellen, doch leider ist mir der Syntax nicht bekannt. Wie gebe ich das Datum ein?
Folgende Eingaben lieferten bisher keinen Erfolg:
setVitoEndeFerien 01.01.1970 00:00:00
setVitoEndeFerien 01.01.1970
-
Ach so. Da haben wir dann wohl teilweise etwas aneinander vorbei geredet. Meines Wissens nach kann die Adresse 2500 nicht gesetzt, sondern nur ausgelesen werden. Das Setzen erfolgt über die Adresse 2323 in Verbindung mit den Schaltzeiten.
Leider habe ich auch noch keine Lösung gefunden, wie man die Ferienzeiten setzt. Das dürfte analog der Systemzeit funktionieren, für die mir ebenfalls noch keine Lösung bekannt ist.
Es wäre echt toll, wenn man die Systemzeit der Heizung stündlich mit einem Zeitserver synchronisieren könnte. Denn so besonders genau ist der integrierte Quarz der Viessmann-Heizung nicht gerade. Und da uns nun die Zeitumstellung noch bis mindestens 2021 erhalten bleiben wird, würde man sich das lästige Umstellen zwei Mal im Jahr sparen.
-
OK, und ich glaube wir reden schon wieder aneinander vorbei.
Problem 1: zwei Get Adressen für Betriebsarten bei der VScotHO1_4:
Für die Betriebsarten gibt es zwei verschiedene Adressen mit teilweise verschiedenen, teilweise überlappenden Eigenschaften:
1. getVitoBetriebsart (2323)
- Abschaltbetrieb
- Nur Warmwasser
- Heizen und Warmwasser
- Dauernd red. Betrieb
- Dauernd Normalbetrieb
2. getVitoBetriebsartHK (2500):
- Abschaltbetr. (Dauernd)
- Red. Betrieb (Schaltuhr)
- Normalbetrieb (Schaltuhr)
- Normalbetrieb (Dauernd)
Nutzt du beide?
getVitoBetriebsart (2323) Funktioniert bei mir.
getVitoBetriebsartHK (2500): Funktioniert nicht, zumindest nicht mit dem Byte was ich auslese, denn dieses steht immer auf 02-> Normalbetrieb (Schaltuhr)
–----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problem 2.: Setzen der Ferienzeit. zB setVitoEndeFerien_A1 (2311)
Hier verstehe ich den Syntax nicht. Wie erwartet vcontrold das Datum/ die Uhrzeit? Keine meiner Eingaben wurden akzeptiert..
Sorry für das Durcheinander….