NEWS
Viessmann Heizung mit ESP8266 auslesen und steuern
-
Hallo. Es gibt ja bereits einen Adapter der Daten aus vcontrold lesen und schreiben kann. Allerdings schein das ganze Projekt nicht mehr wirklich uptodate zu sein bzw ich bekomme es nicht ans laufen.
Grundsätzlich ist das Protokoll ja bekannt bzw im vcontrold schon fertig projektiert. Mein Gedanke war es jetzt ein Image für einen ESP8266 (NodeMCU) zu erstellen, welches die Daten zyklisch aus der Heizung ausliest und per MQTT an den iobroker (z.B. Sonoff) Adapter schickt.
Zum Lesen benötigt man einen Infrarot Schreib-/Lesekopf mit TTL Schnittstelle. Dazu habe ich mich beim Volkszähler Projekt bedient. Der Lesekopf funktioniert Hardwareseitig mit der Heizung. Den Abstand der Dioden sowie einen passenden Adapter (Viessmann-V) habe ich mit einem 3D- gedruckten Adapter realisiert. Funktioniert auch, hab ich mit FTDI Adapter und Hterm getestet.
Jetzt bin ich jedoch nicht wirklich Fit was coden angeht. Wenn jemand mit einer Viessmann Heizung Interesse hat den Code zu schreiben würde ich ihm einen NodeMCU mit TTL-Lesekopf für Viessmann-V kostenlos zur Verfügung stellen.
Würde mich freuen wenn wir das ganze realisiert bekommen.
Gruß Jaschkopf
-
Hallo @Jaschkopf
hast du schon jemanden gefunden?Ich hätte auf jeden Fall Interesse weiß aber nicht wie ich es Zeitlich hinbekomme.
Ich habe mir das Projekt zur Wiedervorlage für die kalten Monate vorgemerkt.Ich hatte mir auch schon einmal einen Adapter gebaut, der aber nicht funktioniert hat.
Bzw., war das ein fliegender Aufbau und ich bin mir nicht sicher wo dann der Fehler lag, könnte mein Code gewesen sein, der Aufbau oder meine Lötkünste ... ... oder doch meine Heizung, falsches Protokoll? (Einfach zu viele Unbekannte)
Wie hast du deinen Adapter getestet? Einfach die Rx/Tx am FTDI angeschlossen und über Hterm Daten geschickt/gelesen?
Was war das für eine Kommunikation?Hast du dir die beiden Repos schon mal angesehen:
https://github.com/Schnup89/OpenV_NodeMCU/blob/master/VitoWifi_NodeMCU.ino
https://github.com/bertmelis/homie-esp8266Einen NodeMCU brauche ich nicht, da habe ich genug aber einen Lesekopf könnte ich brauchen, am Besten einen getesteten und eine kurze Anleitung zum Testen.
Würde ihn dir natürlich auch abkaufen, was mir sogar am Liebsten wäre, dann würde ich keine Verpflichtung eingehen.
Welche Heizung hast du? Ich habe eine Vitola 100, mit einem Vitotronic 200 Typ KW1 Steuergerät.Grüße
Albert -
@albert Servus. Also den Lesekopf habe ich am FTDI mit hterm getestet. Da hab ich ein paar Kommandos geschickt und die zu erwartenden Antworten von meiner Vitocal 200 bekommen. Da der Adapter elektrisch ein " Volkszählung TTL" Lesekopf ist war zu erwarten das er funktioniert. Habe den selben an meinem Stromzähler und die Schnittstelle ist ja die selbe. Nur das Viessmann da eine andere Bauform (Viessmann V Stecker) verwendet. Die Repos von VitoWifi und Vcontrolled kenne ich bereits. Da findet man auch Infos zur Schnittstelle. Allerdings finde ich es unnötig den Umweg über eine zusatzsoftware zu gehen wenn der esp die Kommunikation übernehmen kann und die Daten dann direkt an iobroker übermittelt. Dachte da zuerst an mqtt per Sonoff Adapter. Außerdem habe ich die Software auf meinem esp nicht ans laufen bekommen.
Würde mich freuen wenn wir das zusammen ans Laufen bekommen da man die Alternative über die viessmann cloud in der pfeife rauchen kann.
Ein passendes Interface kann ich dir zur Verfügung stellen.
Gruß Jaschkopf -
Ich dachte da an https://github.com/bertmelis/esp8266-heating, das sollte bereits das machen was du dir vorstellst (mit VitoWifi).
Ansonsten dienen die anderen Repos als Referenz, ich hatte mir damals aus dem Source Code der Repos etwas zusammen kopiert, es aber auch mit esp8266-heating probiert.
Der Code würde komplett auf dem esp8266 laufen.
Der ESP holt sich die Daten von der Heizung, über die serielle Schnittstelle, und sendet sie dann an einen MQTT-Broker.
Dafür hatte ich den MQTT Adapter im ioBroker genutzt.
Ich konnte auch schon Daten im Broker sehen, der Inhalt war leider Mist.Ich musste aber gerade mit Erschrecken feststellen, dass der Autor das "TreeLight" Repo entfernt hat
Ich schau mal morgen ob ich den Code noch auf meiner Platte habe.Also wenn du so eine Lesekopf für mich hättest wäre das super. Danke! Löten kann ich auch selbst wenn es um Platinenbestückung geht.
Ich bräuchte aber dann deine Hilfe beim Testen, wozu ich keine Geduld habe ist ein fliegender Aufbau und nicht zu wissen ob es ein HW oder SW Problem ist, das ist auch der Grund warum das Projekt bei mir schon seit über einem Jahr liegt.Grüße
Albert -
@albert ja das war mein Problem. Ohne TreeLight habe ich es nicht zum laufen bekommen. Wegen dem Adapter kannst du mir ja mal eine PN schicken.
Gruß Jaschkopf
-
@Jaschkopf Ich habe dir die lib per Chat Nachricht geschickt, hoffe das ist angekommen.
Hab das Beispielprojekt inzwischen wieder bei mir am Laufen.
Lass mich wissen falls du Hilfe mit der lib brauchst. -
@albert ja die Nachricht ist angekommen. Habe jetzt gerade versucht aus den drei Repos etwas brauchbare zu basteln, aber da blicke ich nicht durch. Kannst du mir vielleicht das komplette Skript zukommen lassen damit ich es nur noch auf meinen ESP flashen muss? Was nutzt du dafür, ich hab das sonst immer mit VSCode gemacht. Ich schick dir nochmal ne PN, vielleicht hast du ja etwas Zeit mich per Telegram beim flashen zu unterstützen.
Gruß Jaschkopf
-
@Jaschkopf Ja mit VSCode mache ich das auch. Wenn ich dazu gekommen erstelle ich etwas und lade es auf Github hoch.
Ein Binary kann ich dir auch erstellen, aber da ist einiges an Konfiguration (WLAN, Pins) notwendig. -
@albert Wenn der komplette Code auf Github ist kann ich die restliche Konfig noch ergänzen. Kompilieren und flashen sollte ich dann hinbekommen. Ich hab auch noch einige D1 Mini hier rumliegen also könnte ich direkt testen.
-
@Jaschkopf
Ich habe einen Fork erstellt und so modifiziert das es bei mir baut:
https://github.com/adx-git/esp8266-heating
Das Paket das ich dir geschickt habe musst du in dein platformio lib Verzeichnis entpacken.
Bei mir ist das%USERPROFILE%\.platformio\lib
Nach dem clonen und hinzufügen in VSCode sollte das Projekt dann bauen.
-
@albert sehr gut ich werde das zeitnah probieren und nochmal berichten
-
@Jaschkopf
Ich habe das Binary bei mir auf einem NodeMCU aufgespielt, ohne Lesekopf, aber ich komme zumindest schon mal auf das Web Interface und sehe im MQTT Adapter des ioBrokers die Verbindung. -
@albert kannst du mir grade noch sagen wo ich den MQTT User und Passwort hinterlegen muss? IP und Port in der main.cpp sowie SSID und PASS ist mir soweit klar.
-
@Jaschkopf
Keine Ahnung ^^
Ich habe im Adapter beides gelöscht und dann ging die Verbindung auch ohne User und Passwort. -
@albert ok dann muss ich mich nochmal rein fuchsen. Zur mqtt library gibt es bestimmt auch irgendwo ne readme auf github. Wenn ich was rausgefunden hab werde ich berichten
-
@Jaschkopf
Die MQTT lib ist das TreeLight welches aus Github verschwunden ist. -
@albert
Ich antwort mir mal selbst
Die TreeLight Lib unterstützt keine Credentials, aber die darunterliegende MQTT Lib.
Ich habe die TreeLight Lib umgebaut so dass sie auch mit Credentials arbeitet, jetzt bin ich am überlegen ob es Sinn macht die Lib auf Git hochzuladen. -
@albert @Jaschkopf
Hi,
ich les hier gerade so mit, habe auch eine Viessmann mit einer Vitotronic 100 über den Viessmann-Api-Adapter am laufen, das funktioniert, aber wenn es ohne Cloud geht, ist mir das natürlich viel Lieber.NodeMCU/ESPs hab ich hier noch rumliegen, n TTL Lesekopf kann ich mir glaub ich mit vorhandenen Teilen basteln ( hab noch ein paar Fotodioden rumliegen von anderen Projekten ), mal schauen, ob die funktionieren. Alternativ könnte man natürlich auch den USB Adapter von der Vitotronic anpassen, ist ja seriell.
Also kurz gesagt, ich kann gerne testen, denke, es finden sich bestimmt einige, die daran interesse haben.
Daher wäre es schön, wenn du das Projekt auf Git hochladen würdest. -
@albert Vielleicht sollten wir dazu erst mit dem ursprünglichen Autor Kontakt aufnehmen. Es muss ja einen Grund geben wieso er es von github entfernt hat. Oder wir müssen alternativ das Projekt codeseitig nochmal komplett neu aufziehen. Ich hatte auch schon überlegt ob es nicht möglich ist das ganze als lib für tasmota zu schreiben?
Gruß Jaschkopf
-
Gute Nachrichten: Ich hab den Lesekopf am D1 Mini am laufen und erfolgreich die ersten Werte im Webinterface ausgelesen.
Dazu habe ich in der main.cpp folgendes angepasst:
Zeile 12-15: Wifi Credentials und MQTT Broker (Wenn ich im Sonoff Adapter die Credentials entferne verbindet sich der ESP, sendet jedoch keine Daten. Einziger DP ist Alive=True)Zeile 25-33: Anzeigenamen der Datenpunkte im Webinterface auf Deutsch übersetzt und unbenutzte auskommentiert
Zeile 36-43: Hier müssen die korrekten Speicheradressen der Heizungssteuerung hinterlegt werden. Diese sind hier zu finden: https://github.com/openv/openv/wiki/Adressen
Unbenutzte Werte auskommentiertZeile 46-52: Unbenutzte Werte auskommentiert
@albert ich mache dir jetzt deinen Lesekopf fertig und teste ihn. Sobald du deinen hast und die ersten Werte bei dir rein kommen packt dich hoffentlich das Fieber den Code weiter zu verbessern
Gruß Jaschkopf