NEWS
EBus Adpater
-
Hi nochmal, nachdem ja jetzt MQTT bei mir funktioniert, hier ein kleines Skript um die regelmäßigen Statusupdates der Therme auszuwerten und auseinanderzudrößeln. Damit solltest Du jetzt die wichtigsten Parameter visualisieren können. Mit ebusd geht noch viel mehr, aber das ist wohl das Relevanteste. Es ginge auch noch Status02 und DateTime, aber das kann man analog machen - Du solltest die Parameter noch anpassen dass sie zu der Config Deiner Therme passen (ich hab hier eine VRC430):
var idStatus01 = "mqtt.1.ebusd.bai.Status01"; createState('vaillant'); function updateStatus01() { var Status01 = getState(idStatus01).val; createState('vaillant' + '.' + 'vorlaufTemp'); createState('vaillant' + '.' + 'ruecklaufTemp'); createState('vaillant' + '.' + 'aussenTemp'); createState('vaillant' + '.' + 'WWTemp'); createState('vaillant' + '.' + 'speicherTemp'); createState('vaillant' + '.' + 'pumpenStatus'); var tmp = Status01.split(';'); setState('vaillant' + '.' + 'vorlaufTemp', tmp[0]); setState('vaillant' + '.' + 'ruecklaufTemp', tmp[1]); setState('vaillant' + '.' + 'aussenTemp', tmp[2]); setState('vaillant' + '.' + 'WWTemp', tmp[3]); setState('vaillant' + '.' + 'speicherTemp', tmp[4]); setState('vaillant' + '.' + 'pumpenStatus', tmp[5]); } on(idStatus01, updateStatus01);
Die Werte tauchen dann bei mir in javascript.0.vaillant.xxx auf
-
Ich habe seit einiger Zeit (schon lange vor ioBroker) einen ebus-Adapter auf Basis eines Arduino Leonardo gebaut. Der liefert mir die Daten im xml-Format über's Netzwerk. Diese Daten hole ich mir jetzt mit dem ebus-Adapter https://github.com/rg-engineering/ioBro … ntrol_ebus in ioBroker. `
Kannst du uns mal was zu deiner Anbindung via Arduino Leonardo sagen!? Gibt es irgendwo eine Anleitung!?
Gruß
Adrian
Gesendet von iPhone mit Tapatalk Pro
-
Kannst du uns mal was zu deiner Anbindung via Arduino Leonardo sagen!? Gibt es irgendwo eine Anleitung!? `
Ich verwende
-
ebus-Adapter (derzeit nur read only, die Leiterplatte enthält beide Richtungen)
- Arduino Leonardo (Mega geht da sicher auch)
- Ethernet shield für Arduino (W5100)
Der ebus-Adapter ist so aufgebaut:
Die Leiterplatte enthält zwar auch noch den Schreib-Teil, den habe ich aber bisher noch nicht in Betrieb genommen.
Vorteil ist, dass ich sicher bin, dass keine ungewollten Kommandos auf dem ebus landen Nachteil ist, dass ich nicht aktiv
einen Parameter abfragen kann, sondern warten muss, bis ein Busteilnehmer die Daten abfragt. Für die meine Anwendung reicht es,
da mein Ziel war, im Flur zu visualisieren, ob die Heizung läuft oder einen Fehler hat…
Der Prototyp der Leiterplatte inkl. (deaktiviertem) Schreib-Teil sieht so aus (hier im TTL-2-USB-Adapter, der aber nicht benötigt wird):
Hier noch die zwei Arduino-Leiterplatten:
Die Software für den Arduino (als Atmel-Studio-Projekt) findet man hier:
https://github.com/rg-engineering/Leona … _Interface
Wichtig ist, dass auch das Arduino-Studio installiert ist, da auf Arduino-Bibliotheken zugegriffen wird.
Derzeit sind nur Basis-Kommandos für die Vaillant GeoTherm implementiert. Erweiterungen sind aber
einfach realisierbar.
Eine Testsoftware für Windows findet man hier
https://github.com/rg-engineering/ebus4Win
Dafür schliesst man den ebus-Adapter mit einem TTL-2-USB-Adapter an einen Windows-PC. Dies ist hilfreich, wenn
man weitere Kommandos implementieren will.
-
-
Hallo,
die Unterstützung von eBus in ioBroker ist sehr rudimentär. @Hoich hat zwei Skripte geschrieben, die jedoch mehr experimentell als produktiv eingesetzt werden können. Aus diesem Grund suche ich Leute, die Ihre Heizung über eBus abfragen/steuern um sich mit ihnen auszutauschen.
Ich danke für eure Unterstützung,
a200. `
Hallo,
ich versuche jetzt schon seit einigen Wochen eine vernünftige Lösung zu finden. Das ebusd-Projekt scheint mir am weitesten gediehen. Da ich ohnehin gerade von ccu.io auf ioBroker umsteige, wäre die Anbindung meiner Vaillant Eco mittels ioBroker die ideale Lösung. Es gibt ja offensichtlich schon etwas, was die Anbindung der Heizung an ioBroker mehr oder weniger bereits ermöglicht. Mir ist jetzt nur noch nicht ganz klar, was ich alles benötige. Könntest Du hier einen kurzen "Fahrplan" veröffentlichen ? Etwa so:
1.) ioBroker installieren und Grundkonfiguration
2.) eBus-Adapter installieren (und da scheitert es schon, den finde ich gar nicht in der Übersicht …)
3.) ...
lg.
TF
-
Die Installation war jetzt soweit erfolgreich. Hier die nötigen Schritte.
1.) Installieren einer eBus-Bridge Hardware. In meinem Fall ist das ein Seriell2USB Adapter nach https://www.mikrocontroller.net/topic/346833 der an einem RaspberryPi 1 hängt. Dort läuft der ebusd.
2.) Installieren des ebus adapter (iobroker läuft bei mir unter dem User iobroker, der sudo-Rerchte hat, davon geht das Beispiel aus).
2.1.) sudo -i -u iobroker
2.2) iobroker stop
2.3) cd Download/
2.4) wget https://github.com/lennycb/ioBroker.ebu … master.zip
2.5) unzip master.zip
2.6) sudo chown -R iobroker. *
2.7) sudo npm install ioBroker.ebus-master/
2.8) iobroker upload ebus
2.9) iobroker start
3.) Administrieren mittels WebUI (http://<iobroker>:8081/#adapters
3.1) ebus adapter ioBroker eBus Adapter ebus Vaillant Wolf Heizung -> klick [+]
3.2) konfiguriere IP-Adresse und Port des ebusd
Fenster [Adapterkonfiguration: ebus.0]
host 192.168.x.x
port 8888
[Speichern und schließen]
4.) Erfolgskontrolle (http://<iobroker>:8081/#objects)
ebus.0
-
370
-
bai
-
broadcast
-
general
-
memory
-
scan
5.) Status (http://<iobroker>:8081/#logs)
-> bei mir viele Errors im Log
host.iobroker 2017-05-01 14:37:53.166 info Restart adapter system.adapter.ebus.0 because enabled
host.iobroker 2017-05-01 14:37:53.166 error instance system.adapter.ebus.0 terminated with code 6 (uncaught exception)
ebus.0 2017-05-01 14:37:52.200 error TypeError: Cannot read property 'val' of null at /home/iobroker/node_modules/iobroker.ebus/main.js:119:18 at /home/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3864:61 at So
ebus.0 2017-05-01 14:37:52.199 error uncaught exception: Cannot read property 'val' of null
ebus.0 2017-05-01 14:37:42.083 info starting. Version 0.0.1 in /home/iobroker/node_modules/iobroker.ebus, node: v4.2.6
host.iobrokert 2017-05-01 14:37:41.514 info instance system.adapter.ebus.0 started with pid 1674
und einige mehr. Aber grundsätzlich kommen schon Werte an. Sehr gut.</iobroker></iobroker></iobroker>
-
-
Wundert mich das da überhaupt was geht. Den "Adapter" hatte ich mal angefangen, aber aus Zeitgründen nach hinten gestellt. Der funktionierte noch nicht. Hier sind hauptsächlich die scripte von "hoich" drin.
Gesendet von meinem SM-G925F mit Tapatalk
-
Das habe ich auch so verstanden. Leider reichen meine Kenntnisse nicht aus, um daran anzuknüpfen. Ich warte also (un)geduldig, ob vielleicht doch mal irgendwann wieder etwas passiert.
Danke schon mal für das, was da ist.
-
Ah, das sieht ja schon recht gut aus Das hatte ich mir auch mal vorgenommen die ebusd-Skripte in einen Adapter zu packen, aber leider keine Ahnung wie man einen Adapter schreibt (und auch meine Javascript-Kenntnisse sind sehr rudimentär, ich wende nur an, was ich von woanders her kann) und außerdem hat der ebusd-Autor gemeint, er würde jetzt eh auf MQTT umstellen. Aber die find-Skripte scheinen immer noch sinnvoll zu sein, weil über MQTT kommen nur ein paar regelmäßige Meldungen.
Mal sehen wie ich den installiert bekomm, vielleicht kann ich ja damit besser weiterarbeiten als mit den Skripten im Javascript-Adapter.
-
…die ebusd-Skripte in einen Adapter zu packen, aber leider keine Ahnung wie man einen Adapter schreibt ... ` und da sind wir schon 2 die es nicht können.
Ich habe auch nur "abgekupfert" und Hilfe aus dem Forum hatte ich auch.
Ist auch schon ein paar Tage her wo ich deine Scripte gesehen hatte. Ich meine mich zu errinnern, dass komplett alles angelegt wird was da ist. Quasi auch Sachen die nicht zum Heizungsmodell passen.
Meine Idee war, modelspezifisch zu suchen (find) und anzulegen. Danach nur noch die States zu aktualisieren.
Jetzt wird, glaube ich, bei jedem Durchlauf alles States neu angelegt.
-
Hallo,
es wird ja bereits ein find -f vom Adapter an den ebusd abgesetzt, wozu auch immer. Ich habe mich jetzt den ganzen Tag über mit dem Adapter beschäftigt. Leider bin ich nicht in der Lage, das Problem zu erkennen.
Das Hauptproblem im Moment ist, dass der Adapter nach jedem Durchlauf beendet wird (terminated with code 6 (uncaught exception)).
host.iobroker 2017-05-02 15:39:35.491 info Restart adapter system.adapter.ebus.0 because enabled host.iobroker 2017-05-02 15:39:35.490 error instance system.adapter.ebus.0 terminated with code 6 (uncaught exception) ebus.0 2017-05-02 15:39:34.463 debug cleaned everything up... ebus.0 2017-05-02 15:39:34.462 error TypeError: Cannot read property 'val' of null at /home/iobroker/node_modules/iobroker.ebus/main.js:119:18 at /home/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3864:61 at Socket. (/home/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:150:27) at Socket.onack (/home/iobroker/node_modules/socket.io-client/lib/socket.js:312:9) at Socket.onpacket (/home/iobroker/node_modules/socket.io-client/lib/socket.js:236:12) at Manager. (/home/iobroker/node_modules/component-bind/index.js:21:15) at Manager.Emitter.emit (/home/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) at Manager.ondecoded (/home/iobroker/node_modules/socket.io-client/lib/manager.js:332:8) at Decoder. (/home/iobroker/node_modules/component-bind/index.js:21:15) at Decoder.Emitter.emit (/home/iobroker/node_modules/component-emitter/index.js:134:20) ebus.0 2017-05-02 15:39:34.461 error uncaught exception: Cannot read property 'val' of null
Die Verwendung von mqtt ist leider auch keine Alternative. Der ebusd sendet an den Broker nur dann einen neuen Wert, wenn er selbst einen neuen Wert kennt. Dazu müsste jedoch jemand auf dem ebus nach einen neuen Wert fragen.
-
Hallo Hoich,
hast du dein mqtt Script noch im Einsatz? Habe Vaillant 430 auch im Einsatz und seit heute das ganze auch mit mqtt im Einsatz. Darum wollte ich fragen ob du eventuell dein Script erweitert hast?
@Hoich sagte in EBus Adpater:
Hi nochmal, nachdem ja jetzt MQTT bei mir funktioniert, hier ein kleines Skript um die regelmäßigen Statusupdates der Therme auszuwerten und auseinanderzudrößeln. Damit solltest Du jetzt die wichtigsten Parameter visualisieren können. Mit ebusd geht noch viel mehr, aber das ist wohl das Relevanteste. Es ginge auch noch Status02 und DateTime, aber das kann man analog machen - Du solltest die Parameter noch anpassen dass sie zu der Config Deiner Therme passen (ich hab hier eine VRC430):
var idStatus01 = "mqtt.1.ebusd.bai.Status01"; createState('vaillant'); function updateStatus01() { var Status01 = getState(idStatus01).val; createState('vaillant' + '.' + 'vorlaufTemp'); createState('vaillant' + '.' + 'ruecklaufTemp'); createState('vaillant' + '.' + 'aussenTemp'); createState('vaillant' + '.' + 'WWTemp'); createState('vaillant' + '.' + 'speicherTemp'); createState('vaillant' + '.' + 'pumpenStatus'); var tmp = Status01.split(';'); setState('vaillant' + '.' + 'vorlaufTemp', tmp[0]); setState('vaillant' + '.' + 'ruecklaufTemp', tmp[1]); setState('vaillant' + '.' + 'aussenTemp', tmp[2]); setState('vaillant' + '.' + 'WWTemp', tmp[3]); setState('vaillant' + '.' + 'speicherTemp', tmp[4]); setState('vaillant' + '.' + 'pumpenStatus', tmp[5]); } on(idStatus01, updateStatus01);
Die Werte tauchen dann bei mir in javascript.0.vaillant.xxx auf