speters / vogod

vogod is a daemon which provides a high-level interface (currently a REST API) to a Viessmann® heating device via Optolink.
8 stars 2 forks source link

Will there be progress in this project? #1

Closed Ion3 closed 2 years ago

Ion3 commented 3 years ago

Hi, are there plans to develop this project? I could contribute by testing.

speters commented 3 years ago

vogodjust works for me, so I have no urgent plans for changes. ("don't touch a running system").

Possible improvements include

But still, the hardest part for other users is to get a thorough description of their system's addresses/event types/data points. There is plenty of information on OpenV Wiki and OpenV Issues, but I simply had the luck that my system was among the ones being included in the VitoSoft Demo.

Ion3 commented 3 years ago

Hallo Sönke, ich habe mich nur über folgendes Statement in der Readme gewundert "unreleased, alpha quality software, not ready for deployment. Do not use, do not ingest, do not stare into beam" ;-) Also als Medizin hätte ich es auch nicht eingenommen...

Dennoch hast du völlig Recht, der härteste Teil ist die Systembeschreibung. Ich habe zwar eine Vitotronic WO1C und hierzu scheint es viele Informationen zu geben, dennoch bin ich unsicher, ob ich der Kombination vcontrold / vclient gewachsen bin. Primäres Ziel ist es, die Daten aus der Viessmann Anlage in ein anderes System (z.B. openHAB, Home Assistant, etc.) zu überführen. Im Prinzip also eine MQTT-Schnittstelle oder etwas vergleichbares. Ich dachte, dein Projekt wäre vielleicht ein einfacherer Zugang.

Lieben Gruss, Timo

speters commented 3 years ago

Das Problem über alle Softwares hinweg ist das einer vernünftigen Beschreibung der Adressen und Daten. Da hatte ich einfach die XML-Konfigurationsdateien der VitoSoft-Demo als umfassendeste Beschreibung angesehen und verwendet. Problem ist dabei vor allem, dass die Informationsgewinnung aus unfreien Quellen stammt und nicht sonderlich aktuell ist.

Vogod's REST <--> MQTT mache ich über Node-Red mit Mosquitto als Broker. Das ist zwar etwas schwergewichtiger, als mir lieb ist (ich nutze für das ganze einen eher schwachbrüstigen OrangePiPC, der ungefähr mit Raspi3b vergleichbar ist), aber es funktioniert und damit ist das "gut genug" für mich. MQTT könnte man aber sicher auch nativ in Go dranhäkeln, da gibt es ja viele Libraries.

MIt vcontrold bin ich - obwohl ich da irgendwie als Maintainer wie die Jungfrau zum Kind gekommen bin - nie richtig warm geworden. Angesichts der relativ großen Verbreitung und der Flexibilität in den Protokollen ist es aber eine gute Wahl (und hinsichtlich Unterstützung in der Konfiguration ganz sicher die bessere). JSON-Support ist frisch drin, was die Anbindung an andere Softwares noch mal vereinfacht.

Ion3 commented 3 years ago

Vogod's REST <--> MQTT mache ich über Node-Red mit Mosquitto als Broker.

Das klingt doch super! Node-Red und Mosquitto laufen bei mir sowieso schon, um unabhängig von Viessmann per Modbus die Strom- und Wärmemengenerfassung für meine Wärmepumpe zu machen. Außerdem kann die Wärmepumpe basierend auf dem Solarstrom-Überschuss modulierend arbeiten. Dafür muss ich ihr jedoch einen Stromzähler vorgaukeln, weil ich zwei Unterverteilungen im Haus habe und Viessmann damit nicht umgehen kann. Ein weiteres Projekt, um das restriktive Datenmanagement von Viessmann auszuhebeln. Okay, ich will nicht abschweifen.

Wie wäre denn der Ansatz von Vogod? Gibt es eine Setup-Datei und wie bekomme ich den Go-Code lauffähig?

speters commented 3 years ago

Erstellung der Binaries mache ich im Umweg über ein Makefile, weil ich dadurch nur makeeingeben muss, anstatt erst überlegen zu müssen, wie das mit dem go build so geht.

Als Setup-Dateien dienen die ecnDataPointType.xml (Geräte mit Listen unterstützter Datenpunkte) und ecnEventType.xml (die Definitionen aller Datenpunkte) aus der VitoSoft-Demo. Die Dateien können hier wg. möglichen Urheberrechten nicht direkt im Repository abgelegt werden. Das zugrunde liegende XML Format ist quasi selbsterklärend; wer sein Gerät in der Demo nicht findet, kann sich die Konfig. mit ein paar bekannten Adressen selber zusammenbauen. Die Demo braucht man nicht zu installieren, es reicht die gewünschten Dateien mit 7zip o.ä. auszupacken.

Für den automatischen Start des Daemons per systemd liegt die vogod.service bei. Hier sind auch Portnummer und serielles Device einzutragen. Nach dem Start stehen dann unter http:\/\/localhost:8000 Webinterface und REST API zur Verfügung.