NEWS
EBus - USB-Adapter # john30/ebusd # Vaillant ecoTEC # VRC 700 # MQTT
-
Ich habe Daten in ioBroker !!!
Danke für eure Hilfe, werde mich morgen durch den Rest der Anleitung wühlen.
Hatte mich wegen der fehlenden "AA"`s verrückt gemacht.
Grüße Ingo
1519_2017-12-18__18_.png -
Cool und willkommen im Club! Der_Auge hat alles erklärt.
-
Glückwunsch
dann können wir ja nun zum nächsten Schritt kommen.
= javascript.0
Hier mal mein angepasster Script
// ============================================================================= // Auslesen von Einzelwerten vom eBusd // ============================================================================= var root = 'eBus'; // root of state inside 'javascript.0' var host = 'RPi2-2'; // set to your host running ebusd var port = 8888; // default ebusd port var logging = false; // "true" oder "false" wenn nicht gewünscht var net = require('net'); // var conn = false; // ============================================================================= var element = 'FlowTemp'; // ebusctl read -f FlowTemp // 51.19;ok var req = 'read -f ' + element; var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz // ============================================================================= // Datenpunkte anlegen // ============================================================================= createState(pfad, 0, {name: "Vorlauftemperatur" ,rolle: 'value.temperature' ,type: 'string',unit: '°C'}); // ---------------------------------------------------------- Start if (logging) log('1\. Start trying eBus abfrage'); var client = new net.Socket(); client.connect(port, host, function() { if (logging) log('2\. Connected to ebusd on ' + host + ':' + port); conn = true; client.write(req + '\n'); if (logging) log('3\. TX-Befehl: "' + req + '" wird gesendet'); }); // ============================================================================= // Funktion Daten abfragen // ============================================================================= function parse(data) { var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt if (logging) log("Menge : " + arr.length); var fields = data.toString().split('\;'); // hier wird auf den = getriggert if (logging) log('Felder : ' + fields); if(fields.length > 1) { // wenn mehrere Felder gefunden wurden if (logging) log('WertVor : ' + fields[0]); var WertVor =fields[0]; if (logging) log("WertNach: " + fields[1]); fields[0] = fields[0].replace(' ','_'); if (logging) log("Feld 1 : " + fields[0]); if (logging) log("Feld 2 : " + fields[1]); setState(pfad, WertVor); // Werte setzen } } // ============================================================================= // Daten abfragen // ============================================================================= var databuf = ''; client.on('data', function(data) { var prev = 0, next; var datastr = data.toString(); if (logging) log("4\. RX-Daten : " + datastr); while ((next = datastr.indexOf('\n\n', prev)) > -1) { databuf += datastr.substring(prev, next); parse(databuf); databuf = ''; prev = next + 1; } databuf += datastr.substring(prev); client.write('quit\n'); }); // ============================================================================= // ? Ende // ============================================================================= client.on('close', function() { conn = false; log('Connection to ebusd closed'); }); // ============================================================================= // Funktion aufrufen // ============================================================================= function getData() { client.connect(port, host, function() { if (logging) log('Connected to ebusd on ' + host + ':' + port); client.write(req + '\n'); if (logging) log('TX-Befehl: "' + req + '" wird gesendet'); }); } schedule('*/1 * * * *', getData);
Vielleicht funktioniert er auch bei euch
Gruß
Jürgen
-
Moin, Moin,
man, ich komme ja kaum nach.
Da ich noch nicht so richtig durchsehe, mal eine sicher unqualifizierte Frage:
Das Script, kommt das in ioBroker oder auf den Raspi ????
Grüße Ingo
-
Moin, Moin,
man, ich komme ja kaum nach.
Da ich noch nicht so richtig durchsehe, mal eine sicher unqualifizierte Frage:
Das Script, kommt das in ioBroker oder auf den Raspi ????
Grüße Ingo `
in ioBroker. Damit werden neue Datenpunkte erzeugt, in denen die Werte im Klartext stehen und die du dann z.B. Speichern kannst um sie als Grafik auszugeben/auszuwerten. -
Danke für die Hilfe,
das Script läuft und hat 1 Datenpunkt angelegt, FlowTemp.
Ich habe ja schon einige Datenpunkte, jedoch bei weitem nicht so viele wie ihr.
Mir würde für den Anfang ein lesender Zugriff auf Vor- und Rücklauftemperatur, Außentemperatur (sollten schon da sein) und den Wasserdruck reichen.
Später dann evtl. auch schreibend die Wunschtemperatur.
Ich muß mich mal in Ruhe durch den Trööt wühlen, bin noch nicht dazu gekommen.
Grüße Ingo
-
Hallo Ingo,
aus dem eBus werden nur die Werte gelesen, die auch über den eBus geschickt werden. D.h. du hast einige Werte die immer vorhanden sind. Andere Werte müssen von dir erst mal abgerufen werden und erst dann steh sie dir zur Verfügung. Das wird z.B. so: http://forum.iobroker.net/viewtopic.php … 22#p101558 gemacht.
-
Also du fragst deine Heizung/hc/hwc/… wie der aktueller Wert in FlowTempMin steht.
-
Dein Gerät antwortet dir.
-
Da der Wert über den eBus läuft, wird das durch den mosquitto-client gelesen und an ioBroker geschickt.
-
Im ioBroker erscheint der Datenpunkt FlowTempMin mit dem dazugehörigen Wert.
Welche Werte ausgelesen werden können, kannst du hier sehen: http://forum.iobroker.net/viewtopic.php … 22#p101616
Schau dir das mal an und dann können wir die Skripte von der_Auge um die interessante Punkte erweitern.
Gruß,
a200.
-
-
Hallo a200,
ich glaub, mir geht so sachte ein Lichtlein auf.
Vielen Dank,
Grüße Ingo
-
Mir würde für den Anfang ein lesender Zugriff auf Vor- und Rücklauftemperatur, Außentemperatur (sollten schon da sein) und den Wasserdruck reichen. `
-
Also du fragst deine Heizung/hc/hwc/… wie der aktueller Wert in FlowTempMin steht.
-
Dein Gerät antwortet dir.
-
Da der Wert über den eBus läuft, wird das durch den mosquitto-client gelesen und an ioBroker geschickt.
-
Im ioBroker erscheint der Datenpunkt FlowTempMin mit dem dazugehörigen Wert. `
wenn dich das mit dem ebusd richtig verstanden habe fragt er bei https://github.com/john30/ebusd/wiki/4. … figuration nach der Version des Senders (vaillant/08.bai.csv)
Danach wird ja nach Version eine weitere Datei geladen (vaillant/bai.0010002315.inc)
Dort gibt es dann die Objektnamen
r,,FlowTemp,d.40 Vorlauftemperatur,,,,"1800",,,tempsensor,,,Vorlauftemperatur r,,ReturnTemp,d.41 Rücklauftemperatur,,,,"9800",,,tempmirrorsensor,,,Rücklauftemperatur ... ... r,,WaterPressure,Wasserdruck,,,,"0200",,,presssensor,,,Wasserdruck
Wenn ich diese per script anfrage bekomme ich eine Antwort. Diese kann ich aber "nur" selber in einen Datenpunkt schreiben. Über MQTT kommt der nicht
wenn ich auf dem RPi2-2 vom Terminal eine Abfrage starte [ebusctl read -f FlowTemp] wird das über den eBus / MQTT an ioBroker gesendet.
Also scheid da noch ein unterschied bei unserer Installation zu sein.
Gruß
Jürgen
-
-
unsere Unterschiede:
Abgefragt mit
"ebusctl –port=8888 --server=192.168.28.144 i"
Heizung von derAuge:
update: 8 address 03: master #11 address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0204;HW=9602", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv" address 10: master #2 address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0419;HW=4603" address 31: master #8, ebusd address 36: slave #8, ebusd
"ebusctl info"
Heizung von a200:
update: 8 address 03: master #11 address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0604;HW=5502", loaded "bai.308523.inc", "vaillant/08.bai.csv" address 10: master #2 address 15: slave #2, scanned "MF=Vaillant;ID=UI ;SW=0508;HW=6201", loaded "vaillant/15.ui.csv" address 23: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/23.solsy.cc.csv" address 25: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/25.solsy.hwc.csv" address 26: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/26.solsy.hc.csv" address 31: master #8, ebusd address 36: slave #8, ebusd address 50: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/50.solsy.mc.csv" address ec: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/ec.solsy.sc.csv"
-
Servus,
mal nee generelle Frage, kann man mit dieser Config nur Werte abfragen oder auch schreibend zugreifen?
LG
-
Servus,
mal nee generelle Frage, kann man mit dieser Config nur Werte abfragen oder auch schreibend zugreifen?
LG `
Das ist noch eine offene Aufgabe.
zB: SollTemp einstellen oder " Tage abwesenheit"
Gruß
Jürgen
-
Hallo, ihr Spezialisten,
ich habe mich jetzt eine ganze Weile in ebusd hineingelesen und auch Verschiedenes ausprobiert.
Es bleiben jedoch zu viele Fragen.
Das Script von der_Auge (Auslesen von Einzelwerten…) habe ich in ioBroker laufen, sollte ja eigentlich einen Datenpunkt "Vorlauftemperatur"
erstellen. Passiert aber nicht, statt dessen gibt es jetzt den Datenpunkt "FlowTemp" mit Wert.
Die Abfrage von "ebusctl find -F circuit,name,comment" liefert sehr viele Daten, wovon ich die wenigsten mit "ebusctl read -f xxxxxxxx"
abfragen kann. Ein Beispiel wäre "Waterpressure".
In ioBroker unter "version" wird "ebusd 3.0.595c7c0" angezeigt. Was ich nicht kapiere, ist das die aktuelle Version ? Und welche csv-Dateien
benötige ich und wie installiere ich diese ?
Anbei ein Screenshot von Objekte.
Grüße und schöne Feiertage
Ingo
1519_objekte.png -
Hi Ingo,
lass uns das mal langsam durchgehen. 1. Was zeigt denn dein raspi, wenn du
ebusctl info
ausführst?
-
-
ok. d.h. dass deine csv Dateien nicht geladen werden. Hast du sie installiert? Eher nicht.
git clone https://github.com/john30/ebusd-configuration cd ebusd-configuration ./make_all.sh sudo dpkg -i --force-overwrite ebusd-configuration-2.1.XXXXX-de_all.deb ````Damit werden die csv Dateien an die richtige stelle kopiert. Dann ebusd restarten (Notfalls raspi rebooten). Danach sollte bei ebusctl info sowas wie das hier angezeigt werden:
root@raspberrypi:~# ebusctl info
version: ebusd 3.0pre.cc59b32
signal: acquired
symbol rate: 42
reconnects: 0
masters: 3
messages: 712
conditional: 12
poll: 1
update: 8
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0604;HW=5502", loaded "bai.308523.inc", "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=UI ;SW=0508;HW=6201", loaded "vaillant/15.ui.csv"
address 23: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/23.solsy.cc.csv"
address 25: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/25.solsy.hwc.csv"
address 26: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/26.solsy.hc.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 50: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/50.solsy.mc.csv"
address ec: slave, scanned "MF=Vaillant;ID=SOLSY;SW=0500;HW=6301", loaded "vaillant/ec.solsy.sc.csv"Versuchs es mal. Denn nur dann können deine Geräte erkannt werden.
-
sieht, glaube ich, nicht viel besser aus,
Grüße Ingo
1519_info.png
1519_2.png
1519_1.png -
Bei sudo````
dpkg -i --force-overwrite ebusd-configuration-2.1.XXXXX-de_all.debA nstelle der XXXX musst du deine Version eingeben also 58c7e6d
dpkg -i --force-overwrite ebusd-configuration-2.1.58c7e6d-de_all.deb
-
ich kriege es einfach nicht gebacken, siehe Bild.
Die XXX hatte ich natürlich ersetzt, siehe Bild 2 in meiner letzten Antwort.
Grüße Ingo
1519_3.png -
du musst dich in dem verzeichnis befinden wo du vorher warst, als du das hier gemacht hast:
git clone https://github.com/john30/ebusd-configuration cd ebusd-configuration ./make_all.sh sudo dpkg -i --force-overwrite ebusd-configuration-2.1.XXXXX-de_all.deb
Wahrscheinlich sowas wie:
cd cd ebusd-configuration dpkg -i --force-overwrite ebusd-configuration-2.1.58c7e6d-de_all.deb
ausserdem solltest du wenigstens die Grundlagen von Linux/Unix kennen!