NEWS
Adapter: ebus
-
Unter http://forum.iobroker.net/viewtopic.php?f=23&t=9322&hilit=ebus wird beschrieben, wie der ebusd von https://github.com/john30/ebusd mittels MQTT und javascript in ioBroker integriert werden kann. Mein Adapter nutzt ebenfalls den ebusd. Die Daten werden aber per HTTP abgeholt. Der Adapter parsed die Daten und stellt nur die in ioBroker zur Verfügung, die "value" oder "lastup" im Namen haben. Damit werden Daten, die zwar in der csv verfügbar sind, aber nicht auf dem Bus gelesen wurden, gar nicht erst als Datenpunkt angelegt. Der Adapter ist derzeit read only. Schreiben auf den Bus ist nicht implementiert.
Hier settings:
IP ist die Adresse des Systems, auf dem ebusd läuft.Port ist der Port, der in dem ebusd Konfigfile (z.Bsp. /etc/default/ebusd) als HTTP-Port eingetragen wurde.
z.Bsp.
EBUSD_OPTS = "-r -d /dev/ttyUSB0 -p 7777 -l --httpport=8889"
Wichtig ist, dass das Interface auf "ebusd" gestellt ist. Der Adapter unterstützt auch noch eine spezielle Arduino-Software, welche ich später vorstellen werde.
Der Adapter steht aktuell in Version 0.4.1. in github zur Verfügung: https://github.com/rg-engineering/ioBroker.ebus
-
Im github liegt die Version 0.5.0 für den https://github.com/rg-engineering/ioBroker.ebus.
Im Adapter gibt es folgende Änderungen:
- Pollen von Datenpunkten, die im ebusd nicht automatisch upgedatet oder dort gepollt werden.
Dafür einfach den Namen des Datenpunktes in der Admin eintragen:
Im Objektbrowser findet man die notwendigen Namen:
- beliebige ebusd-Kommandos können z.Bsp. per script auf den Datenpunkt "cmd" des Adapters gelegt werden. Das Ergebnis der Abfrage steht dann in "cmdResult" zur weiteren Verarbeitung zur Verfügung.
Für das ebus-History-Widget werden history-Datenpunkte angelegt. Die Konfiguration erfolgt ebenfalls über o.g. Namen im Admin:
das ergibt dann folgende Datenpunkte:
Außerdem habe ich das ebus-History-Widget für vis hinzugefügt.
Bei Änderung der Instanz werden die notwendigen OID's automatisch vergeben. Danach kann man Reihenfolge der Graphen wieder vertauschen…
Der Rest der Konfiguration sollte selbsterklärend sein.
Im NPM wird diese Version am Wochenende verfügbar sein...
-
Darf ich fragen was die "History Datenounkte" sind? Sammelt der Adapter selbst History Daten in eigenen States oder wie ? Oder kommen die immer aus dem ebus?
-
Der Adapter sammelt für die unter "list of datapoints for ebus history widget" konfigurierten Datenpunkte Werte und gibt sie als JSON wieder aus. Dieses JSON ist Input für das history widget zur Darstellung der Graphen.
-
Hm … wäre es nicht sinnvoller die vorhandenen History Adapter zu nutzen (da muss der Adapter nix tun) und lieber ein besseres History Widget zu bauen wenn das nötig ist?! Die History Adapter geben die Daten schon auf anfrage aus ... nur so ein Gedanke um keine insellösungen zu schaffen
-
Mit version 0.5.0 werden bei mir keine Datenpunkte aktualisiert (bzw. wenn ich ebusd.0 gelöscht habe auch nicht mehr angelegt)
ebusd funktioniert wie gehabt und loggt auch Daten auf dem Bus:
2018-03-06 09:20:31.957 [bus notice] poll ui YieldThisYear: 0;0;0;0;0;0;0;0;0;0;0;0 2018-03-06 09:20:32.092 [update notice] unknown MS cmd: 1008b513020508 / 00 2018-03-06 09:20:32.267 [update notice] update hc SumFlowSensor QQ=10: -13.94;cutoff 2018-03-06 09:20:32.451 [update notice] update mc Mode QQ=10: 19;auto;0;0;low;mixer;day 2018-03-06 09:20:32.614 [update notice] update mc Status QQ=10: 36;off;37.25;19 2018-03-06 09:20:32.780 [update notice] update hwc Status QQ=10: 0;off;55.38;55 2018-03-06 09:20:32.944 [update notice] update mc RoomTempOffset QQ=10: 0.00 2018-03-06 09:20:33.821 [update notice] update bai Status01 QQ=10: 38.0;35.0;-;-;-;on 2018-03-06 09:20:33.978 [update notice] unknown MS cmd: 1050b5050427005a00 / 00 2018-03-06 09:20:34.275 [update notice] unknown MS cmd: 1025b5040117 / 0101 2018-03-06 09:20:34.812 [update notice] update scan.23 QQ=10: Vaillant;SOLSY;0500;6301 2018-03-06 09:20:34.989 [update notice] unknown MS cmd: 1050b505082b0f010000000080 / 00 2018-03-06 09:20:37.594 [bus notice] poll ui YieldThisYear: 0;0;0;0;0;0;0;0;0;0;0;0 2018-03-06 09:20:37.827 [update notice] update scan.ec QQ=10: Vaillant;SOLSY;0500;6301 2018-03-06 09:20:40.997 [update notice] update bai SetMode QQ=10: auto;36.0;-;-;0;0;0;0;0;0 2018-03-06 09:20:41.843 [update notice] unknown MS cmd: 1008b513020508 / 00 2018-03-06 09:20:42.475 [update notice] update hc SumFlowSensor QQ=10: -13.94;cutoff 2018-03-06 09:20:42.788 [update notice] update hwc Mode QQ=10: 55;auto;off;hwc;00;day 2018-03-06 09:20:43.092 [update notice] unknown MS cmd: 10ecb504010d / 050000008000 2018-03-06 09:20:43.392 [update notice] update hwc Status QQ=10: 0;off;55.38;55 2018-03-06 09:20:44.017 [update notice] update bai Status01 QQ=10: 39.0;35.0;-;-;-;on 2018-03-06 09:20:44.493 [update notice] unknown MS cmd: 1025b5040117 / 0101 2018-03-06 09:20:45.007 [bus notice] poll ui YieldThisYear: 0;0;0;0;0;0;0;0;0;0;0;0 2018-03-06 09:20:45.145 [update notice] unknown MS cmd: 1026b5040101 / 09130300000585000100 2018-03-06 09:20:45.318 [update notice] unknown MS cmd: 1025b505082b0f010000000080 / 00 2018-03-06 09:20:47.046 [update notice] unknown MS cmd: 10ecb5040121 / 051a00003d00 2018-03-06 09:20:47.503 [update notice] update hc DateTime QQ=10: valid;09:20:47;06.03.2018;-0.625 2018-03-06 09:20:49.724 [bus notice] poll ui YieldThisYear: 0;0;0;0;0;0;0;0;0;0;0;0 2018-03-06 09:20:51.089 [update notice] update bai SetMode QQ=10: auto;36.0;-;-;0;0;0;0;0;0 2018-03-06 09:20:51.894 [update notice] unknown MS cmd: 1008b513020508 / 00 2018-03-06 09:20:52.070 [update notice] unknown MS cmd: 1023b505082b0f010000000080 / 00 2018-03-06 09:20:52.557 [update notice] update hc SumFlowSensor QQ=10: -13.94;cutoff 2018-03-06 09:20:52.741 [update notice] unknown MS cmd: 10ecb5040101 / 09000300000207000100 2018-03-06 09:20:52.905 [update notice] unknown MS cmd: 1026b504010d / 052300008013 2018-03-06 09:20:53.071 [update notice] update hwc Status QQ=10: 0;off;55.38;55 2018-03-06 09:20:53.999 [update notice] update bai Status01 QQ=10: 39.0;35.0;-;-;-;on 2018-03-06 09:20:54.461 [update notice] unknown MS cmd: 1025b5040117 / 0101 2018-03-06 09:20:55.338 [update notice] unknown MS cmd: 10ecb505082b0f010000000080 / 00
Objekte 0.5.0:
nach Downgrade auf 0.4.2 klappt es wieder:
Objekte 0.4.2:
-
was sagt denn das log im iobroker? Eigentlich habe ich an der Ecke zwischen 0.4. und 0.5. nicht viel geändert. Ich könnte mir aber vorstellen, dass Einstellungen von einer Version auf die andere verloren gegangen sind? Vielleicht mal die Adapter-Einstellungen zwischen den beiden Version prüfen?
Nutzt du die gepollten Werte vom Adapter aus oder ist diese Liste leer?
-
Die Datenpunkte-Liste bei 0.5 ist leer (siehe Screenshot)
Ich bin davon ausgegangen das er alle Broadcast werde automatisch übernimmt (so wie bei der Version 0.4.2)
Log 0.5
ebus.0 2018-03-09 17:11:01.550 warn force terminate ebus.0 2018-03-09 17:10:01.551 debug telnet connected ebus.0 2018-03-09 17:10:01.550 debug polled: ebus.0 2018-03-09 17:10:01.549 debug connect telnet to IP 192.168.5.6 port 8889 ebus.0 2018-03-09 17:10:01.540 debug _____ ctr 2 ebus.0 2018-03-09 17:10:01.540 debug init variables ebus.0 2018-03-09 17:10:01.539 debug start with interface ebusd ebus.0 2018-03-09 17:10:01.535 info starting. Version 0.5.0 in /opt/iobroker/node_modules/iobroker.ebus, node: v6.13.0 ebus.0 2018-03-09 17:10:01.491 debug statesDB connected ebus.0 2018-03-09 17:10:01.412 debug objectDB connected
Beim 0.4.2 Adapter:
Log:
[...] ebus.0 2018-03-09 17:15:02.126 debug Key : bai.messages.SetMode.fields.hwcflowtempdesired.value, Value : null ebus.0 2018-03-09 17:15:02.126 debug Key : bai.messages.SetMode.fields.hwctempdesired.value, Value : null ebus.0 2018-03-09 17:15:02.123 debug Key : bai.messages.SetMode.fields.flowtempdesired.value, Value : 31 ebus.0 2018-03-09 17:15:02.107 debug Key : bai.messages.SetMode.fields.hcmode.value, Value : auto ebus.0 2018-03-09 17:15:02.106 debug Key : bai.messages.SetMode.lastup, Value : 1520612094 ebus.0 2018-03-09 17:15:02.097 debug Key : bai.messages.Flame.fields.0.value, Value : off ebus.0 2018-03-09 17:15:02.091 debug Key : bai.messages.Flame.lastup, Value : 1520611870 ebus.0 2018-03-09 17:15:01.952 debug request data from http://192.168.5.6:8889/data ebus.0 2018-03-09 17:15:01.952 debug start with interface ebusd ebus.0 2018-03-09 17:15:01.950 info starting. Version 0.4.2 in /opt/iobroker/node_modules/iobroker.ebus, node: v6.13.0 ebus.0 2018-03-09 17:15:01.902 debug statesDB connected ebus.0 2018-03-09 17:15:01.790 debug objectDB connected
-
Ich bin davon ausgegangen das er alle Broadcast werde automatisch übernimmt (so wie bei der Version 0.4.2) `
ja, das ist die Idee. Ich schau mir das heute nochmal an…
-
Laut log liegt das Problem in der Telnet-Verbindung.
Eigentlich (und bei meinen Tests funktioniert das) sollte eine Telnet Verbindung aufgebaut werden, auch wenn keine Werte gepollt werden sollen. Dann kommt vom ebusd eine leere Meldung zurück und die triggert dann den Aufbau der HTTP-Verbindung zum eigentlichen Abrufen der Daten. Hier bleibt der adapter aber irgendwie hängen. Seltsam ist auch, dass in den settings der Telnet Port 8890 eingestellt ist, aber im log eine Verbindung zum Port 8889 aufgebaut werden soll. :?
Im github habe ich jetzt eine Version 0.5.1. In der Version baue ich gar keine Telnet-Verbindung auf, wenn die Liste der zu pollenden Werte leer ist. Damit sollte das ganze identisch zu 0.4.x funktionieren.
Außerdem habe ich eingebaut, dass ein Fehler vom Telnet nicht zum Abbrechen des Abrufes über HTTP führt. Damit sollten auch Werte abgerufen werden, wenn die Telnet - Verbindung nicht zu stande kommt.
-
Im github habe ich jetzt eine Version 0.5.1 `
Muss ich diese Version über die Github URL installieren?
-
ja,
über
https://github.com/rg-engineering/ioBroker.ebus
Wäre gut, wenn du es testen kannst bevor ich es auf npm stelle und dann offiziell release…
Danke.
-
Hallo,
ich hoffe ich bin hier richtig…
ich habe mir den Ebus Ethernet Adapter gekauft https://www.esera.de/produkte/ebus/142/ … r-ethernet
In der Hoffnung , dann mit dem ebus Adapter direkt per Netzwerk darauf zugreifen zu können…
Nach einigen Versuchen wird mir jetzt aber klar, dass das wohl doch nicht so funktioniert ?
Kann man den mit dem Ethernet-Adapter überhaupt was mit ioBroker machen, oder soll ich es besser zurückschicken und mir den USB Adapter holen ?
-
naja, direkt geht nicht. Der hier vorgestellte Adapter braucht zwingend den ebusd. siehe https://github.com/john30/ebusd
Wenn du den eBUS Koppler Ethernet aber am ebusd betreibst, sollte das gehen. Es gibt verschiedene Berichte, wonach beide zusammen arbeiten.
z.Bsp. https://knx-user-forum.de/forum/%C3%B6f … et-koppler
Ich selbst nutze einen ebus-Koppler Marke "Eigenbau" mit USB interface. (ist deutlich günstiger.. )
-
Danke für den Tipp…
scheint jetzt Daten zu liefern.. mal warten bis morgen, was da ankommt...
-
Hi,
im obigen Screenshot steht was von schreiben über Telnet… kann man damit wirklich Werte schreiben? Wir bauen gerade ein Haus mit Lüftungsanlage von Vaillant, wäre ja schön wenn die auf Volllast arbeitet, sobald die Luftfeuchtigkeit im Bad steigt.
-
An selbigen Problem hänge ich auch gerade. Wie würde das mit schreiben funktionieren? Einfach die Werte ändern, wäre zu einfach
-
ja, schreiben von Werten auf den ebus geht mit dem Adapter.
Einfach per script das ebusd-Kommando zusammenbauen und auf den Datenpunkt "cmd" des ebus-Adapters legen.
Ein ebusd-Kommando zum Schreiben sieht ungefähr so aus:
write -c ehp CirPump off
Details unter https://github.com/john30/ebusd/wiki/3. … t-commands
Dieses Kommando wird dann beim nächsten Aufruf des Adapters auf den ebusd geschrieben. Etwaige Antworten vom ebusd werden auf den Datenpunkt "cmdResult" gelegt.
<u>ABER</u>
1. man sollte genau wissen, was man da auf die Heizung schreibt. Ich übernehme keine Gewährleistung für Schäden…
2. o.g. Kommando geht zumindest bei meiner Vaillant Geotherm nicht, weil der Datenpunkt auf der Heizung nur ein read-only-Wert ist. Das macht auch Sinn, da die Steuerung z.Bsp. der Zirkuationspumpe zeitgesteuert auf der Geotherm implementiert ist. Ein Einschalten von extern ist so nicht vorgesehen. Das ist übrigens für viele Werte der Fall... Man könnte die Zeitsteuerung manipulieren, aber das wollte ich mir nicht antun. Ich habe der Zirkulationspumpe also einen Homematic-Aktor gegönnt... Man kann herausfinden, welche Parameter schreibbar sind, indem man im browser eingibt:
http://IP:port/data z.Bsp.: http://192.168.1.123:8889/data
wobei natürlich die IP die IP des Systems mit dem ebusd sein sollte, und der Port (hier 8889) der http-Port dieses Systems (also die gleichen Daten, die man in der ebus-Adapter-Konfiguration verwendet)
Dieser Aufruf liefert die Daten als json inkl. Information über read-only oder schreibbar:
{ "broadcast": { "messages": { "datetime": { "name": "datetime", "passive": true, "write": false, "lastup": 1525024511, "zz": 254, "fields": { "outsidetemp": {"value": 17.812}, "time": {"value": "19:55:02"}, "date": {"value": "29.04.2018"} } }, "error": { "name": "error", "passive": true, "write": false, "lastup": 0 } }
-
Man kann herausfinden, welche Parameter schreibbar sind, indem man im browser eingibt: `
Da war ich auch schonmal. Allerdings ist danach kein einziger Wert beschreibbar. (Steuerung: Vaillant auromatic620)
-
Hallo
Habe mir auch einen Ebus USB Adapter gekauft und auch erfolgreich installiert .Bekomme auch Daten abgerufen.
ebusctl r -f DisplayedOutsideTemp zeigt mir die Außentemperatur
Jetzt bekomme ich es einfach nicht hin den Ebusd mit http zu starten der adapter im IOBroker hat keine Verbindung zum Ebusd.
Das ist meine config:
EBUSD_OPTS1="–configpath=/etc/ebusd --latency=0 --receivetimeout=100000 --enablehex --scanconfig=15 -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A906RNA1-if00-port0 -p 8890 --httpport=8889 --htmlpath=/var/www -l /var/log/ebusd1.log"
kann mir vielleicht einer weiter helfen.
Edit
jetzt werden die Daten korrekt vom IOBroker eingelesen aber es werden keine Datenpunkte angelegt
ebus.0 2018-11-30 11:17:02.600 debug request data from http://127.0.0.1:8889/data
ebus.0 2018-11-30 11:17:02.600 debug all telnet done
ebus.0 2018-11-30 11:17:02.596 debug received 38675 for YieldTotal
ebus.0 2018-11-30 11:17:02.262 debug received 4.6875 for DisplayedOutsideTemp
ebus.0 2018-11-30 11:17:01.804 debug telnet connected
ebus.0 2018-11-30 11:17:01.804 debug connect telnet to IP 127.0.0.1 port 8888
ebus.0 2018-11-30 11:17:01.804 debug to poll ctr 2 vals: DisplayedOutsideTemp,YieldTotal org DisplayedOutsideTemp,YieldTotal org length 31
ebus.0 2018-11-30 11:17:01.804 debug init common variables
ebus.0 2018-11-30 11:17:01.804 debug init variables
ebus.0 2018-11-30 11:17:01.804 debug start with interface ebusd