NEWS
EBus - USB-Adapter # john30/ebusd # Vaillant ecoTEC # VRC 700 # MQTT
-
Bei mir werden die Werte in javascript nicht Dargestellt, habt ihr eine Idee woran das liegen kann? `
Hallo Robin,
Willkommen im Forum und bei ioBroker
versuche einmal das logging einzuschalten.
Die Zeile
var logging = false; // "true" oder "false" wenn nicht gewünscht
anpassen auf
var logging = true; // "true" oder "false" wenn nicht gewünscht
Danach bekommst du mehr Informationen im LOG
ich nutze eine PUTTY-Session um das log direkt anschauen zu können. (Dann brauche ich nicht immer im Browser hin und her schalten)
wenn du dich per SSH (Putty) verbunden hast:
tail -f /opt/iobroker/log/iobroker.2018-* ````eingeben. Dann bist du LIVE dabei ;-) Gruß Jürgen
-
! Hallo!
! Tolle Arbeit die ihr da leistet
! Bin neu hier und wage nun erste Schritte mit dem iobroker, habe bisher die Daten in FHEM dargestellt.
! Ich habe eine Ochsener Wärmepumpe die ich über EBUSD anbinde.
! Habe soweit euer Skript angepasst, bin leider kein Programmierer und kenne mich leider gar nicht mit Skripte aus.
! Bei mir werden die Werte in javascript nicht Dargestellt, habt ihr eine Idee woran das liegen kann?
! LG
! Robin `
Hi, habe zwar nicht direkt was mit dem Thema zu tun, aber ich sehe auf Anhieb in deinem Skript keine Anfrage "Elemente".Schau dir bitte die letzte verlinkte Version von der_Auge an.
-
Hallo!
Danke für die Unterstützung !!!
Habe das Neue Skript für die Mehrfach abfrage nun verwendet, es kommen nun auch schon werte an.
Aber übersetzt weden sie noch nicht, wenn sie nich als einzellne werte übertragen werden.
Anbei der Log und das Skript
ps: Ihr seit die Besten
`// ============================================================================= // --- Abfragen von Werten vom "ebusd" // ============================================================================= var logging = true; // "true" oder "false" wenn nicht gewünscht var HOST = '192.168.0.137'; // Hostname oder IP-Adresse auf dem der ebusd läuft var PORT = 8888; // Portnummer auf dem der ebusd hört var step = -1; var pfad = 'eBus.Waermepumpe.'; // Pfad innerhalb der Instanz wo die Daten gespeichert werden // ============================================================================= var net = require('net'); var client = new net.Socket(); // ============================================================================= var Elemente = ['wp HZ_energie_kw volume','temperature twv1','temperature twr1','temperature water','temperature outside','wp volumenstrom volume',]; var ElementeNamen = ['HZ_energie_kw','HZ_Vorlauf','HZ_ruecklau','Boiler','Aussentemp','WP_volumenstrom']; // ============================================================================= // ============================================================================= // Datenpunkte anlegen // ============================================================================= function anlegen(){ if (logging) log('--------> Start -> es gibt für ' + Elemente.length + ' Elemente einen Datenpunkt anzulegen'); for(var i=0;i <elemente.length;i++) {/createstate(pfad/+/elemente[i],/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/pfad/-="">' + ElementeNamen[i] + ' angelegt'); }} // ============================================================================= // ============================================================================= // --- function zum Abfragen der Werte // ============================================================================= function readElement(){ if (logging) log('--------> Start ->'); if (logging) log(' ---> Variable "step" = '+ step + ' für die Anzahle von ' + Elemente.length + ' Elemente'); if(Elemente.length < 1){ log('keine Elemente zum abfragen'); client.destroy(); return; } if(step < Elemente.length -1){ step++ ; if (logging) log('0.'+ step + ' ---> Neue Abfrage --------------------> Durchlauf : ' + step + ' von ' + Elemente.length ); // --- hier dann die function mit werten aufrufen var req = 'r -m 1 -c ' + Elemente[step]; // der Befehl wird zusammengesetzt var ele = Elemente[step]; var eleN = ElementeNamen[step]; client.write(req + '\n'); // hier wird der Befehl gesendet if (logging) log('1.'+ step + ' BEFEHL wurde gesendet : ' + req); } else{ step = -1; if (logging) log('0.'+ step + ' ---> keine weitere Abfrage nötig -----> Fertig'); setTimeout(readElement, 60000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute return; } } // ============================================================================= // --- Aufruf --- DATEN lesen // ============================================================================= client.on('data', function(data) { // if (logging) log('3 .'+ step + ' Daten werden empfangen : ' + data); // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) --- var datastr = data.toString(); // if (logging) log('3a.'+ step + ' RX-Daten (String) : ' + datastr); //------------------------------------------------------------------------------ var databuf = ''; var prev = 0, next; if (logging) log('3b.'+ step + ' Durchlauf : ' + step); while ((next = datastr.indexOf('\n\n', prev)) > -1) { databuf += datastr.substring(prev, next); if (logging) log('3c.'+ step + ' Funktion aufrufen mit : ' + databuf + " als Daten"); //--- SUB-Funktion aufrufen --- parse(databuf); databuf = ''; // Datenbuffer leeren prev = next + 1; } databuf += datastr.substring(prev); readElement();//Abfragen des nächsten Wertes //------------------------------------------------------------------------------ }); // ============================================================================= // ============================================================================= // Verbindungsabbau // ============================================================================= client.on('close', function(fertig) { if (logging) { if (logging) log('4\. -----> Verbindung geschlossen .'); client.destroy(); } }); // ============================================================================= // ============================================================================= // --- SUB-Funktion --- Daten-String aufteilen // ============================================================================= function parse(data) { var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt if (logging) log('3d.'+ step + ' Menge an Daten durch ; getrennt : ' + arr.length); var fields = data.toString().split('\;'); // hier wird auf den = getriggert if (logging) log('anzahl an Feldern : ' + fields.length); if(fields.length > 0) { // 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 + Elemente[step], WertVor); // Werte setzen if (logging) log('4.'+ step + ' im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert'); } } // ============================================================================= // ============================================================================= // --- Function --- Fehler abfangen und ausgeben // ============================================================================= client.on('error', function(err) { client.destroy(); if (logging) log(' Es ist ein Fehler aufgetreten : '+ err); }); // ============================================================================= // ============================================================================= // Verbindungsaufbau // ============================================================================= client.connect(PORT, HOST, function(){ readElement(); if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT); }); // ============================================================================= anlegen(); //States anlegen //setInterval(readElement, 60000);</elemente.length;i++)>` `~~[code]~~10:42:20.368 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:20.368 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 0 für die Anzahle von 6 Elemente 10:42:20.368 [info] javascript.0 script.js.Skript1: 0.1 ---> Neue Abfrage --------------------> Durchlauf : 1 von 6 10:42:20.369 [info] javascript.0 script.js.Skript1: 1.1 BEFEHL wurde gesendet : r -m 1 -c temperature twv1 10:42:20.557 [info] javascript.0 script.js.Skript1: 3b.1 Durchlauf : 1 10:42:20.557 [info] javascript.0 script.js.Skript1: 3c.1 Funktion aufrufen mit : 7;0;0d;02;1000;0;26.5 als Daten 10:42:20.558 [info] javascript.0 script.js.Skript1: 3d.1 Menge an Daten durch ; getrennt : 7 10:42:20.558 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:42:20.558 [info] javascript.0 script.js.Skript1: WertVor : 7 10:42:20.559 [info] javascript.0 script.js.Skript1: WertNach : 0 10:42:20.559 [info] javascript.0 script.js.Skript1: Feld 1 : 7 10:42:20.559 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:42:20.560 [info] javascript.0 script.js.Skript1: 4.1 im Datenpunkt "eBus.Waermepumpe." wird "7" gespeichert 10:42:20.560 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:20.560 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 1 für die Anzahle von 6 Elemente 10:42:20.561 [info] javascript.0 script.js.Skript1: 0.2 ---> Neue Abfrage --------------------> Durchlauf : 2 von 6 10:42:20.561 [info] javascript.0 script.js.Skript1: 1.2 BEFEHL wurde gesendet : r -m 1 -c temperature twr1 10:42:20.762 [info] javascript.0 script.js.Skript1: 3b.2 Durchlauf : 2 10:42:20.763 [info] javascript.0 script.js.Skript1: 3c.2 Funktion aufrufen mit : 8;0;0d;02;1000;0;26.4 als Daten 10:42:20.763 [info] javascript.0 script.js.Skript1: 3d.2 Menge an Daten durch ; getrennt : 7 10:42:20.764 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:42:20.764 [info] javascript.0 script.js.Skript1: WertVor : 8 10:42:20.764 [info] javascript.0 script.js.Skript1: WertNach : 0 10:42:20.765 [info] javascript.0 script.js.Skript1: Feld 1 : 8 10:42:20.765 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:42:20.766 [info] javascript.0 script.js.Skript1: 4.2 im Datenpunkt "eBus.Waermepumpe." wird "8" gespeichert 10:42:20.766 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:20.766 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 2 für die Anzahle von 6 Elemente 10:42:20.766 [info] javascript.0 script.js.Skript1: 0.3 ---> Neue Abfrage --------------------> Durchlauf : 3 von 6 10:42:20.767 [info] javascript.0 script.js.Skript1: 1.3 BEFEHL wurde gesendet : r -m 1 -c temperature water 10:42:20.968 [info] javascript.0 script.js.Skript1: 3b.3 Durchlauf : 3 10:42:20.968 [info] javascript.0 script.js.Skript1: 3c.3 Funktion aufrufen mit : 4;0;0d;02;1000;0;44.4 als Daten 10:42:20.970 [info] javascript.0 script.js.Skript1: 3d.3 Menge an Daten durch ; getrennt : 7 10:42:20.971 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:42:20.971 [info] javascript.0 script.js.Skript1: WertVor : 4 10:42:20.972 [info] javascript.0 script.js.Skript1: WertNach : 0 10:42:20.972 [info] javascript.0 script.js.Skript1: Feld 1 : 4 10:42:20.972 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:42:20.973 [info] javascript.0 script.js.Skript1: 4.3 im Datenpunkt "eBus.Waermepumpe." wird "4" gespeichert 10:42:20.973 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:20.973 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 3 für die Anzahle von 6 Elemente 10:42:20.974 [info] javascript.0 script.js.Skript1: 0.4 ---> Neue Abfrage --------------------> Durchlauf : 4 von 6 10:42:20.974 [info] javascript.0 script.js.Skript1: 1.4 BEFEHL wurde gesendet : r -m 1 -c temperature outside 10:42:21.218 [info] javascript.0 script.js.Skript1: 3b.4 Durchlauf : 4 10:42:21.218 [info] javascript.0 script.js.Skript1: 3c.4 Funktion aufrufen mit : 0;0;0d;02;500;-500;2.9 als Daten 10:42:21.219 [info] javascript.0 script.js.Skript1: 3d.4 Menge an Daten durch ; getrennt : 7 10:42:21.219 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:42:21.220 [info] javascript.0 script.js.Skript1: WertVor : 0 10:42:21.220 [info] javascript.0 script.js.Skript1: WertNach : 0 10:42:21.221 [info] javascript.0 script.js.Skript1: Feld 1 : 0 10:42:21.221 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:42:21.222 [info] javascript.0 script.js.Skript1: 4.4 im Datenpunkt "eBus.Waermepumpe." wird "0" gespeichert 10:42:21.222 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:21.223 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 4 für die Anzahle von 6 Elemente 10:42:21.223 [info] javascript.0 script.js.Skript1: 0.5 ---> Neue Abfrage --------------------> Durchlauf : 5 von 6 10:42:21.223 [info] javascript.0 script.js.Skript1: 1.5 BEFEHL wurde gesendet : r -m 1 -c wp volumenstrom 10:42:21.427 [info] javascript.0 script.js.Skript1: 3b.5 Durchlauf : 5 10:42:21.428 [info] javascript.0 script.js.Skript1: 3c.5 Funktion aufrufen mit : 130;10;0d;34;1000;0;19.7 als Daten 10:42:21.428 [info] javascript.0 script.js.Skript1: 3d.5 Menge an Daten durch ; getrennt : 7 10:42:21.429 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:42:21.429 [info] javascript.0 script.js.Skript1: WertVor : 130 10:42:21.429 [info] javascript.0 script.js.Skript1: WertNach : 10 10:42:21.430 [info] javascript.0 script.js.Skript1: Feld 1 : 130 10:42:21.430 [info] javascript.0 script.js.Skript1: Feld 2 : 10 10:42:21.430 [info] javascript.0 script.js.Skript1: 4.5 im Datenpunkt "eBus.Waermepumpe." wird "130" gespeichert 10:42:21.431 [info] javascript.0 script.js.Skript1: --------> Start -> 10:42:21.431 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 5 für die Anzahle von 6 Elemente 10:42:21.431 [info] javascript.0 script.js.Skript1: 0.-1 ---> keine weitere Abfrage nötig -----> Fertig 10:43:21.430 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:21.430 [info] javascript.0 script.js.Skript1: ---> Variable "step" = -1 für die Anzahle von 6 Elemente 10:43:21.431 [info] javascript.0 script.js.Skript1: 0.0 ---> Neue Abfrage --------------------> Durchlauf : 0 von 6 10:43:21.432 [info] javascript.0 script.js.Skript1: 1.0 BEFEHL wurde gesendet : r -m 1 -c wp HZ_energie_kw volume 10:43:21.594 [info] javascript.0 script.js.Skript1: 3b.0 Durchlauf : 0 10:43:21.595 [info] javascript.0 script.js.Skript1: 3c.0 Funktion aufrufen mit : 654.7 als Daten 10:43:21.596 [info] javascript.0 script.js.Skript1: 3d.0 Menge an Daten durch ; getrennt : 1 10:43:21.597 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 1 10:43:21.598 [info] javascript.0 script.js.Skript1: WertVor : 654.7 10:43:21.598 [info] javascript.0 script.js.Skript1: WertNach : undefined 10:43:21.599 [info] javascript.0 script.js.Skript1: Feld 1 : 654.7 10:43:21.600 [info] javascript.0 script.js.Skript1: Feld 2 : undefined 10:43:21.601 [info] javascript.0 script.js.Skript1: 4.0 im Datenpunkt "eBus.Waermepumpe." wird "654.7" gespeichert 10:43:21.601 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:21.602 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 0 für die Anzahle von 6 Elemente 10:43:21.603 [info] javascript.0 script.js.Skript1: 0.1 ---> Neue Abfrage --------------------> Durchlauf : 1 von 6 10:43:21.604 [info] javascript.0 script.js.Skript1: 1.1 BEFEHL wurde gesendet : r -m 1 -c temperature twv1 10:43:21.819 [info] javascript.0 script.js.Skript1: 3b.1 Durchlauf : 1 10:43:21.820 [info] javascript.0 script.js.Skript1: 3c.1 Funktion aufrufen mit : 7;0;0d;02;1000;0;26.4 als Daten 10:43:21.821 [info] javascript.0 script.js.Skript1: 3d.1 Menge an Daten durch ; getrennt : 7 10:43:21.822 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:43:21.823 [info] javascript.0 script.js.Skript1: WertVor : 7 10:43:21.824 [info] javascript.0 script.js.Skript1: WertNach : 0 10:43:21.825 [info] javascript.0 script.js.Skript1: Feld 1 : 7 10:43:21.826 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:43:21.827 [info] javascript.0 script.js.Skript1: 4.1 im Datenpunkt "eBus.Waermepumpe." wird "7" gespeichert 10:43:21.828 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:21.832 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 1 für die Anzahle von 6 Elemente 10:43:21.833 [info] javascript.0 script.js.Skript1: 0.2 ---> Neue Abfrage --------------------> Durchlauf : 2 von 6 10:43:21.834 [info] javascript.0 script.js.Skript1: 1.2 BEFEHL wurde gesendet : r -m 1 -c temperature twr1 10:43:22.235 [info] javascript.0 script.js.Skript1: 3b.2 Durchlauf : 2 10:43:22.235 [info] javascript.0 script.js.Skript1: 3c.2 Funktion aufrufen mit : 8;0;0d;02;1000;0;26.3 als Daten 10:43:22.236 [info] javascript.0 script.js.Skript1: 3d.2 Menge an Daten durch ; getrennt : 7 10:43:22.236 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:43:22.237 [info] javascript.0 script.js.Skript1: WertVor : 8 10:43:22.237 [info] javascript.0 script.js.Skript1: WertNach : 0 10:43:22.238 [info] javascript.0 script.js.Skript1: Feld 1 : 8 10:43:22.238 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:43:22.239 [info] javascript.0 script.js.Skript1: 4.2 im Datenpunkt "eBus.Waermepumpe." wird "8" gespeichert 10:43:22.239 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:22.240 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 2 für die Anzahle von 6 Elemente 10:43:22.240 [info] javascript.0 script.js.Skript1: 0.3 ---> Neue Abfrage --------------------> Durchlauf : 3 von 6 10:43:22.240 [info] javascript.0 script.js.Skript1: 1.3 BEFEHL wurde gesendet : r -m 1 -c temperature water 10:43:22.427 [info] javascript.0 script.js.Skript1: 3b.3 Durchlauf : 3 10:43:22.427 [info] javascript.0 script.js.Skript1: 3c.3 Funktion aufrufen mit : 4;0;0d;02;1000;0;44.4 als Daten 10:43:22.428 [info] javascript.0 script.js.Skript1: 3d.3 Menge an Daten durch ; getrennt : 7 10:43:22.429 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:43:22.429 [info] javascript.0 script.js.Skript1: WertVor : 4 10:43:22.430 [info] javascript.0 script.js.Skript1: WertNach : 0 10:43:22.430 [info] javascript.0 script.js.Skript1: Feld 1 : 4 10:43:22.436 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:43:22.437 [info] javascript.0 script.js.Skript1: 4.3 im Datenpunkt "eBus.Waermepumpe." wird "4" gespeichert 10:43:22.437 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:22.437 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 3 für die Anzahle von 6 Elemente 10:43:22.438 [info] javascript.0 script.js.Skript1: 0.4 ---> Neue Abfrage --------------------> Durchlauf : 4 von 6 10:43:22.438 [info] javascript.0 script.js.Skript1: 1.4 BEFEHL wurde gesendet : r -m 1 -c temperature outside 10:43:22.637 [info] javascript.0 script.js.Skript1: 3b.4 Durchlauf : 4 10:43:22.638 [info] javascript.0 script.js.Skript1: 3c.4 Funktion aufrufen mit : 0;0;0d;02;500;-500;3.2 als Daten 10:43:22.639 [info] javascript.0 script.js.Skript1: 3d.4 Menge an Daten durch ; getrennt : 7 10:43:22.640 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:43:22.641 [info] javascript.0 script.js.Skript1: WertVor : 0 10:43:22.641 [info] javascript.0 script.js.Skript1: WertNach : 0 10:43:22.642 [info] javascript.0 script.js.Skript1: Feld 1 : 0 10:43:22.643 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:43:22.643 [info] javascript.0 script.js.Skript1: 4.4 im Datenpunkt "eBus.Waermepumpe." wird "0" gespeichert 10:43:22.644 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:22.645 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 4 für die Anzahle von 6 Elemente 10:43:22.645 [info] javascript.0 script.js.Skript1: 0.5 ---> Neue Abfrage --------------------> Durchlauf : 5 von 6 10:43:22.646 [info] javascript.0 script.js.Skript1: 1.5 BEFEHL wurde gesendet : r -m 1 -c wp volumenstrom 10:43:22.840 [info] javascript.0 script.js.Skript1: 3b.5 Durchlauf : 5 10:43:22.841 [info] javascript.0 script.js.Skript1: 3c.5 Funktion aufrufen mit : 130;10;0d;34;1000;0;19.8 als Daten 10:43:22.842 [info] javascript.0 script.js.Skript1: 3d.5 Menge an Daten durch ; getrennt : 7 10:43:22.842 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:43:22.843 [info] javascript.0 script.js.Skript1: WertVor : 130 10:43:22.844 [info] javascript.0 script.js.Skript1: WertNach : 10 10:43:22.845 [info] javascript.0 script.js.Skript1: Feld 1 : 130 10:43:22.850 [info] javascript.0 script.js.Skript1: Feld 2 : 10 10:43:22.851 [info] javascript.0 script.js.Skript1: 4.5 im Datenpunkt "eBus.Waermepumpe." wird "130" gespeichert 10:43:22.852 [info] javascript.0 script.js.Skript1: --------> Start -> 10:43:22.853 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 5 für die Anzahle von 6 Elemente 10:43:22.853 [info] javascript.0 script.js.Skript1: 0.-1 ---> keine weitere Abfrage nötig -----> Fertig 10:44:22.842 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:22.842 [info] javascript.0 script.js.Skript1: ---> Variable "step" = -1 für die Anzahle von 6 Elemente 10:44:22.843 [info] javascript.0 script.js.Skript1: 0.0 ---> Neue Abfrage --------------------> Durchlauf : 0 von 6 10:44:22.843 [info] javascript.0 script.js.Skript1: 1.0 BEFEHL wurde gesendet : r -m 1 -c wp HZ_energie_kw volume 10:44:22.998 [info] javascript.0 script.js.Skript1: 3b.0 Durchlauf : 0 10:44:22.999 [info] javascript.0 script.js.Skript1: 3c.0 Funktion aufrufen mit : 654.7 als Daten 10:44:22.999 [info] javascript.0 script.js.Skript1: 3d.0 Menge an Daten durch ; getrennt : 1 10:44:22.999 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 1 10:44:23.000 [info] javascript.0 script.js.Skript1: WertVor : 654.7 10:44:23.000 [info] javascript.0 script.js.Skript1: WertNach : undefined 10:44:23.000 [info] javascript.0 script.js.Skript1: Feld 1 : 654.7 10:44:23.001 [info] javascript.0 script.js.Skript1: Feld 2 : undefined 10:44:23.001 [info] javascript.0 script.js.Skript1: 4.0 im Datenpunkt "eBus.Waermepumpe." wird "654.7" gespeichert 10:44:23.001 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:23.001 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 0 für die Anzahle von 6 Elemente 10:44:23.002 [info] javascript.0 script.js.Skript1: 0.1 ---> Neue Abfrage --------------------> Durchlauf : 1 von 6 10:44:23.002 [info] javascript.0 script.js.Skript1: 1.1 BEFEHL wurde gesendet : r -m 1 -c temperature twv1 10:44:23.194 [info] javascript.0 script.js.Skript1: 3b.1 Durchlauf : 1 10:44:23.195 [info] javascript.0 script.js.Skript1: 3c.1 Funktion aufrufen mit : 7;0;0d;02;1000;0;26.3 als Daten 10:44:23.196 [info] javascript.0 script.js.Skript1: 3d.1 Menge an Daten durch ; getrennt : 7 10:44:23.196 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:44:23.196 [info] javascript.0 script.js.Skript1: WertVor : 7 10:44:23.197 [info] javascript.0 script.js.Skript1: WertNach : 0 10:44:23.197 [info] javascript.0 script.js.Skript1: Feld 1 : 7 10:44:23.197 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:44:23.197 [info] javascript.0 script.js.Skript1: 4.1 im Datenpunkt "eBus.Waermepumpe." wird "7" gespeichert 10:44:23.197 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:23.198 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 1 für die Anzahle von 6 Elemente 10:44:23.202 [info] javascript.0 script.js.Skript1: 0.2 ---> Neue Abfrage --------------------> Durchlauf : 2 von 6 10:44:23.202 [info] javascript.0 script.js.Skript1: 1.2 BEFEHL wurde gesendet : r -m 1 -c temperature twr1 10:44:23.398 [info] javascript.0 script.js.Skript1: 3b.2 Durchlauf : 2 10:44:23.399 [info] javascript.0 script.js.Skript1: 3c.2 Funktion aufrufen mit : 8;0;0d;02;1000;0;26.3 als Daten 10:44:23.400 [info] javascript.0 script.js.Skript1: 3d.2 Menge an Daten durch ; getrennt : 7 10:44:23.400 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:44:23.400 [info] javascript.0 script.js.Skript1: WertVor : 8 10:44:23.400 [info] javascript.0 script.js.Skript1: WertNach : 0 10:44:23.401 [info] javascript.0 script.js.Skript1: Feld 1 : 8 10:44:23.401 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:44:23.401 [info] javascript.0 script.js.Skript1: 4.2 im Datenpunkt "eBus.Waermepumpe." wird "8" gespeichert 10:44:23.401 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:23.402 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 2 für die Anzahle von 6 Elemente 10:44:23.402 [info] javascript.0 script.js.Skript1: 0.3 ---> Neue Abfrage --------------------> Durchlauf : 3 von 6 10:44:23.402 [info] javascript.0 script.js.Skript1: 1.3 BEFEHL wurde gesendet : r -m 1 -c temperature water 10:44:24.030 [info] javascript.0 script.js.Skript1: 3b.3 Durchlauf : 3 10:44:24.031 [info] javascript.0 script.js.Skript1: 3c.3 Funktion aufrufen mit : 4;0;0d;02;1000;0;44.4 als Daten 10:44:24.031 [info] javascript.0 script.js.Skript1: 3d.3 Menge an Daten durch ; getrennt : 7 10:44:24.032 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:44:24.032 [info] javascript.0 script.js.Skript1: WertVor : 4 10:44:24.033 [info] javascript.0 script.js.Skript1: WertNach : 0 10:44:24.033 [info] javascript.0 script.js.Skript1: Feld 1 : 4 10:44:24.034 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:44:24.034 [info] javascript.0 script.js.Skript1: 4.3 im Datenpunkt "eBus.Waermepumpe." wird "4" gespeichert 10:44:24.034 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:24.035 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 3 für die Anzahle von 6 Elemente 10:44:24.035 [info] javascript.0 script.js.Skript1: 0.4 ---> Neue Abfrage --------------------> Durchlauf : 4 von 6 10:44:24.035 [info] javascript.0 script.js.Skript1: 1.4 BEFEHL wurde gesendet : r -m 1 -c temperature outside 10:44:24.475 [info] javascript.0 script.js.Skript1: 3b.4 Durchlauf : 4 10:44:24.476 [info] javascript.0 script.js.Skript1: 3c.4 Funktion aufrufen mit : 0;0;0d;02;500;-500;3.1 als Daten 10:44:24.476 [info] javascript.0 script.js.Skript1: 3d.4 Menge an Daten durch ; getrennt : 7 10:44:24.476 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:44:24.477 [info] javascript.0 script.js.Skript1: WertVor : 0 10:44:24.477 [info] javascript.0 script.js.Skript1: WertNach : 0 10:44:24.478 [info] javascript.0 script.js.Skript1: Feld 1 : 0 10:44:24.478 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:44:24.478 [info] javascript.0 script.js.Skript1: 4.4 im Datenpunkt "eBus.Waermepumpe." wird "0" gespeichert 10:44:24.479 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:24.479 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 4 für die Anzahle von 6 Elemente 10:44:24.480 [info] javascript.0 script.js.Skript1: 0.5 ---> Neue Abfrage --------------------> Durchlauf : 5 von 6 10:44:24.480 [info] javascript.0 script.js.Skript1: 1.5 BEFEHL wurde gesendet : r -m 1 -c wp volumenstrom 10:44:24.698 [info] javascript.0 script.js.Skript1: 3b.5 Durchlauf : 5 10:44:24.698 [info] javascript.0 script.js.Skript1: 3c.5 Funktion aufrufen mit : 130;10;0d;34;1000;0;19.8 als Daten 10:44:24.699 [info] javascript.0 script.js.Skript1: 3d.5 Menge an Daten durch ; getrennt : 7 10:44:24.699 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:44:24.700 [info] javascript.0 script.js.Skript1: WertVor : 130 10:44:24.700 [info] javascript.0 script.js.Skript1: WertNach : 10 10:44:24.700 [info] javascript.0 script.js.Skript1: Feld 1 : 130 10:44:24.701 [info] javascript.0 script.js.Skript1: Feld 2 : 10 10:44:24.701 [info] javascript.0 script.js.Skript1: 4.5 im Datenpunkt "eBus.Waermepumpe." wird "130" gespeichert 10:44:24.701 [info] javascript.0 script.js.Skript1: --------> Start -> 10:44:24.702 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 5 für die Anzahle von 6 Elemente 10:44:24.702 [info] javascript.0 script.js.Skript1: 0.-1 ---> keine weitere Abfrage nötig -----> Fertig 10:44:59.534 [info] javascript.0 Stop script script.js.Skript1 10:45:13.007 [info] javascript.0 Stop script script.js.Skript1 10:45:19.634 [info] javascript.0 Start javascript script.js.Skript1 10:45:19.635 [info] javascript.0 script.js.Skript1: --------> Start -> es gibt für 6 Elemente einen Datenpunkt anzulegen 10:45:19.635 [info] javascript.0 script.js.Skript1: 0.0 Datenpunkt: eBus.Waermepumpe. -> HZ_energie_kw angelegt 10:45:19.636 [info] javascript.0 script.js.Skript1: 0.1 Datenpunkt: eBus.Waermepumpe. -> HZ_Vorlauf angelegt 10:45:19.636 [info] javascript.0 script.js.Skript1: 0.2 Datenpunkt: eBus.Waermepumpe. -> HZ_ruecklau angelegt 10:45:19.636 [info] javascript.0 script.js.Skript1: 0.3 Datenpunkt: eBus.Waermepumpe. -> Boiler angelegt 10:45:19.637 [info] javascript.0 script.js.Skript1: 0.4 Datenpunkt: eBus.Waermepumpe. -> Aussentemp angelegt 10:45:19.637 [info] javascript.0 script.js.Skript1: 0.5 Datenpunkt: eBus.Waermepumpe. -> WP_volumenstrom angelegt 10:45:19.637 [info] javascript.0 script.js.Skript1: registered 0 subscriptions and 0 schedules 10:45:19.638 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:19.638 [info] javascript.0 script.js.Skript1: ---> Variable "step" = -1 für die Anzahle von 6 Elemente 10:45:19.638 [info] javascript.0 script.js.Skript1: 0.0 ---> Neue Abfrage --------------------> Durchlauf : 0 von 6 10:45:19.639 [info] javascript.0 script.js.Skript1: 1.0 BEFEHL wurde gesendet : r -m 1 -c wp HZ_energie_kw volume 10:45:19.639 [info] javascript.0 script.js.Skript1: 1\. Verbindungsaufbau zu : 192.168.0.137:8888 10:45:19.775 [info] javascript.0 script.js.Skript1: 3b.0 Durchlauf : 0 10:45:19.776 [info] javascript.0 script.js.Skript1: 3c.0 Funktion aufrufen mit : 654.7 als Daten 10:45:19.776 [info] javascript.0 script.js.Skript1: 3d.0 Menge an Daten durch ; getrennt : 1 10:45:19.776 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 1 10:45:19.777 [info] javascript.0 script.js.Skript1: WertVor : 654.7 10:45:19.777 [info] javascript.0 script.js.Skript1: WertNach : undefined 10:45:19.777 [info] javascript.0 script.js.Skript1: Feld 1 : 654.7 10:45:19.777 [info] javascript.0 script.js.Skript1: Feld 2 : undefined 10:45:19.777 [info] javascript.0 script.js.Skript1: 4.0 im Datenpunkt "eBus.Waermepumpe." wird "654.7" gespeichert 10:45:19.777 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:19.777 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 0 für die Anzahle von 6 Elemente 10:45:19.778 [info] javascript.0 script.js.Skript1: 0.1 ---> Neue Abfrage --------------------> Durchlauf : 1 von 6 10:45:19.778 [info] javascript.0 script.js.Skript1: 1.1 BEFEHL wurde gesendet : r -m 1 -c temperature twv1 10:45:19.971 [info] javascript.0 script.js.Skript1: 3b.1 Durchlauf : 1 10:45:19.971 [info] javascript.0 script.js.Skript1: 3c.1 Funktion aufrufen mit : 7;0;0d;02;1000;0;26.3 als Daten 10:45:19.971 [info] javascript.0 script.js.Skript1: 3d.1 Menge an Daten durch ; getrennt : 7 10:45:19.972 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:45:19.972 [info] javascript.0 script.js.Skript1: WertVor : 7 10:45:19.972 [info] javascript.0 script.js.Skript1: WertNach : 0 10:45:19.972 [info] javascript.0 script.js.Skript1: Feld 1 : 7 10:45:19.973 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:45:19.973 [info] javascript.0 script.js.Skript1: 4.1 im Datenpunkt "eBus.Waermepumpe." wird "7" gespeichert 10:45:19.973 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:19.973 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 1 für die Anzahle von 6 Elemente 10:45:19.973 [info] javascript.0 script.js.Skript1: 0.2 ---> Neue Abfrage --------------------> Durchlauf : 2 von 6 10:45:19.973 [info] javascript.0 script.js.Skript1: 1.2 BEFEHL wurde gesendet : r -m 1 -c temperature twr1 10:45:20.173 [info] javascript.0 script.js.Skript1: 3b.2 Durchlauf : 2 10:45:20.174 [info] javascript.0 script.js.Skript1: 3c.2 Funktion aufrufen mit : 8;0;0d;02;1000;0;26.2 als Daten 10:45:20.174 [info] javascript.0 script.js.Skript1: 3d.2 Menge an Daten durch ; getrennt : 7 10:45:20.174 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:45:20.174 [info] javascript.0 script.js.Skript1: WertVor : 8 10:45:20.174 [info] javascript.0 script.js.Skript1: WertNach : 0 10:45:20.175 [info] javascript.0 script.js.Skript1: Feld 1 : 8 10:45:20.175 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:45:20.175 [info] javascript.0 script.js.Skript1: 4.2 im Datenpunkt "eBus.Waermepumpe." wird "8" gespeichert 10:45:20.175 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:20.175 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 2 für die Anzahle von 6 Elemente 10:45:20.175 [info] javascript.0 script.js.Skript1: 0.3 ---> Neue Abfrage --------------------> Durchlauf : 3 von 6 10:45:20.176 [info] javascript.0 script.js.Skript1: 1.3 BEFEHL wurde gesendet : r -m 1 -c temperature water 10:45:20.378 [info] javascript.0 script.js.Skript1: 3b.3 Durchlauf : 3 10:45:20.378 [info] javascript.0 script.js.Skript1: 3c.3 Funktion aufrufen mit : 4;0;0d;02;1000;0;44.4 als Daten 10:45:20.379 [info] javascript.0 script.js.Skript1: 3d.3 Menge an Daten durch ; getrennt : 7 10:45:20.379 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:45:20.379 [info] javascript.0 script.js.Skript1: WertVor : 4 10:45:20.380 [info] javascript.0 script.js.Skript1: WertNach : 0 10:45:20.380 [info] javascript.0 script.js.Skript1: Feld 1 : 4 10:45:20.380 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:45:20.381 [info] javascript.0 script.js.Skript1: 4.3 im Datenpunkt "eBus.Waermepumpe." wird "4" gespeichert 10:45:20.381 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:20.381 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 3 für die Anzahle von 6 Elemente 10:45:20.382 [info] javascript.0 script.js.Skript1: 0.4 ---> Neue Abfrage --------------------> Durchlauf : 4 von 6 10:45:20.382 [info] javascript.0 script.js.Skript1: 1.4 BEFEHL wurde gesendet : r -m 1 -c temperature outside 10:45:20.586 [info] javascript.0 script.js.Skript1: 3b.4 Durchlauf : 4 10:45:20.588 [info] javascript.0 script.js.Skript1: 3c.4 Funktion aufrufen mit : 0;0;0d;02;500;-500;3.1 als Daten 10:45:20.588 [info] javascript.0 script.js.Skript1: 3d.4 Menge an Daten durch ; getrennt : 7 10:45:20.588 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 7 10:45:20.589 [info] javascript.0 script.js.Skript1: WertVor : 0 10:45:20.589 [info] javascript.0 script.js.Skript1: WertNach : 0 10:45:20.589 [info] javascript.0 script.js.Skript1: Feld 1 : 0 10:45:20.592 [info] javascript.0 script.js.Skript1: Feld 2 : 0 10:45:20.593 [info] javascript.0 script.js.Skript1: 4.4 im Datenpunkt "eBus.Waermepumpe." wird "0" gespeichert 10:45:20.593 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:20.593 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 4 für die Anzahle von 6 Elemente 10:45:20.594 [info] javascript.0 script.js.Skript1: 0.5 ---> Neue Abfrage --------------------> Durchlauf : 5 von 6 10:45:20.594 [info] javascript.0 script.js.Skript1: 1.5 BEFEHL wurde gesendet : r -m 1 -c wp volumenstrom volume 10:45:20.830 [info] javascript.0 script.js.Skript1: 3b.5 Durchlauf : 5 10:45:20.831 [info] javascript.0 script.js.Skript1: 3c.5 Funktion aufrufen mit : 19.8 als Daten 10:45:20.831 [info] javascript.0 script.js.Skript1: 3d.5 Menge an Daten durch ; getrennt : 1 10:45:20.832 [info] javascript.0 script.js.Skript1: anzahl an Feldern : 1 10:45:20.832 [info] javascript.0 script.js.Skript1: WertVor : 19.8 10:45:20.832 [info] javascript.0 script.js.Skript1: WertNach : undefined 10:45:20.833 [info] javascript.0 script.js.Skript1: Feld 1 : 19.8 10:45:20.833 [info] javascript.0 script.js.Skript1: Feld 2 : undefined 10:45:20.833 [info] javascript.0 script.js.Skript1: 4.5 im Datenpunkt "eBus.Waermepumpe." wird "19.8" gespeichert 10:45:20.834 [info] javascript.0 script.js.Skript1: --------> Start -> 10:45:20.834 [info] javascript.0 script.js.Skript1: ---> Variable "step" = 5 für die Anzahle von 6 Elemente 10:45:20.834 [info] javascript.0 script.js.Skript1: 0.-1 ---> keine weitere Abfrage nötig -----> Fertig 10:46:01.036 [info] javascript.0 Stop script script.js.Skript1 10:47:26.259 [info] javascript.0 Start javascript script.js.Skript1 10:47:26.259 [info] javascript.0 script.js.Skript1: --------> Start -> es gibt für 6 Elemente einen Datenpunkt anzulegen 10:47:26.259 [info] javascript.0 script.js.Skript1: 0.0 Datenpunkt: eBus.Waermepumpe. -> HZ_energie_kw angelegt 10:47:26.259 [info] javascript.0 script.js.Skript1: 0.1 Datenpunkt: eBus.Waermepumpe. -> HZ_Vorlauf angelegt 10:47:26.260 [info] javascript.0 script.js.Skript1: 0.2 Datenpunkt: eBus.Waermepumpe. -> HZ_ruecklau angelegt 10:47:26.260 [info] javascript.0 script.js.Skript1: 0.3 Datenpunkt: eBus.Waermepumpe. -> Boiler angelegt 10:47:26.260 [info] javascript.0 script.js.Skript1: 0.4 Datenpunkt: eBus.Waermepumpe. -> Aussentemp angelegt 10:47:26.260 [info] javascript.0 script.js.Skript1: 0.5 Datenpunkt: eBus.Waermepumpe. -> WP_volumenstrom angelegt 10:47:26.260 [info] javascript.0 script.js.Skript1: registered 0 subscriptions and 0 schedules 10:47:26.261 [info] javascript.0 script.js.Skript1: --------> Start ->[/code]` LG Robin [4953_op.png](/assets/uploads/files/4953_op.png) [/i][/i][/i]
-
Hallo!
Habe das Neue Skript für die Mehrfach abfrage nun verwendet, es kommen nun auch schon werte an.
Aber übersetzt weden sie noch nicht, wenn sie nich als einzellne werte übertragen werden. ` Das stimmt.
in diesem Script wird nur der erste Wert eingetragen.
Hintergrund: Bei meiner Heizung bekomme ich immer nur Einzelwerte.
wenn du aller aufgelisteten Werte speichern möchtest müssen diese in der Routine ausgewertet werden. Das ist (zur Zeit) nicht der Fall.
Dafür gibt es auch einen Script
! ```
`//------------------------------------------------------------------------
// --- Quelle = http://forum.iobroker.net/viewtopic.php?f=23&t=4205#p42405
// --- Autor = Hoich
// -----------------------------------------------------------------------
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 net = require('net');
! log('trying');var req = 'info';
! createState('eBus.info');
! var run=1;
function parse(data) {
log("run: " + run);
var arr = data.toString().split(/\r?\n/);
for(var i = 0; i <arr.length; i++)/{/var/line="arr[i];" fields="line.split(':" ');/if(fields.length="">1) {
log('Field=' + fields[0] + " Value=" + fields[1]);
fields[0] = fields[0].replace(' ','_');
if(run==1) {
createState('eBus.info' + '.' + fields[0], fields[1]);
} else if (run==2) {
var subfields = fields[1].split(', ');
var tmp = subfields[0].split('#');
var master = tmp[1];
createState('eBus.info' + '.' + master);
if(/^scanned/.test(subfields[1])) {
tmp = subfields[1].replace('scanned "', '');
tmp = tmp.replace('"', '');
tmp = tmp.split(';');
for(var j=0; j <tmp.length;j++) {/var/subfields2="tmp[j].split('=');" createstate('ebus.info'/+/'.'/master/subfields2[0],/subfields2[1]);/}/else/log('not/enough/fields:/'/line);/run++;/client="new" net.socket();/client.connect(port,/host,/function()/log('connected/to/ebusd/on/host/':'/port);/log('befehl/:/"'/req/'\n'/'"/wird/gesendet');/client.write(req/'\n');/});/databuf/;/client.on('data',/function(data)/prev="0," next;/datastr="data.toString();" 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');
});
! client.on('close', function() {
log('Connection to ebusd closed');
});</tmp.length;j++)></arr.length;>! Der bringt dann folgende Auswertung: ! >! ~~[spoiler]~~
~~[code]~~2018-01-04 11:26:44.391 - info: javascript.0 Start javascript script.js.ebusd.eBus_info
2018-01-04 11:26:44.397 - info: javascript.0 script.js.ebusd.eBus_info: trying
2018-01-04 11:26:44.401 - info: javascript.0 script.js.ebusd.eBus_info: registered 0 subscriptions and 0 schedules
2018-01-04 11:26:44.412 - info: javascript.0 script.js.ebusd.eBus_info: Connected to ebusd on RPi2-2:8888
2018-01-04 11:26:44.413 - info: javascript.0 script.js.ebusd.eBus_info: Befehl : "info
" wird gesendet
2018-01-04 11:26:44.422 - info: javascript.0 script.js.ebusd.eBus_info: run: 1
2018-01-04 11:26:44.423 - info: javascript.0 script.js.ebusd.eBus_info: Field=version Value=ebusd 3.0.595c7c0
2018-01-04 11:26:44.425 - info: javascript.0 script.js.ebusd.eBus_info: Field=update check Value=version 3.1 available, broadcast.csv
2018-01-04 11:26:44.426 - info: javascript.0 script.js.ebusd.eBus_info: Field=access Value=*
2018-01-04 11:26:44.426 - info: javascript.0 script.js.ebusd.eBus_info: Field=signal Value=acquired
2018-01-04 11:26:44.427 - info: javascript.0 script.js.ebusd.eBus_info: Field=symbol rate Value=24
2018-01-04 11:26:44.427 - info: javascript.0 script.js.ebusd.eBus_info: Field=max symbol rate Value=150
2018-01-04 11:26:44.427 - info: javascript.0 script.js.ebusd.eBus_info: Field=reconnects Value=0
2018-01-04 11:26:44.428 - info: javascript.0 script.js.ebusd.eBus_info: Field=masters Value=3
2018-01-04 11:26:44.428 - info: javascript.0 script.js.ebusd.eBus_info: Field=messages Value=213
2018-01-04 11:26:44.428 - info: javascript.0 script.js.ebusd.eBus_info: Field=conditional Value=3
2018-01-04 11:26:44.429 - info: javascript.0 script.js.ebusd.eBus_info: Field=poll Value=1
2018-01-04 11:26:44.429 - info: javascript.0 script.js.ebusd.eBus_info: Field=update Value=8
2018-01-04 11:26:44.429 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 03 Value=master #11
2018-01-04 11:26:44.430 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 08 Value=slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0204;HW=9602", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv"
2018-01-04 11:26:44.430 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 10 Value=master #2
2018-01-04 11:26:44.430 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 15 Value=slave #2, scanned "MF=Vaillant;ID=70000;SW=0419;HW=4603", loaded "vaillant/15.700.csv"
2018-01-04 11:26:44.431 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 31 Value=master #8, ebusd
2018-01-04 11:26:44.432 - info: javascript.0 script.js.ebusd.eBus_info: Field=address 36 Value=slave #8, ebusd
2018-01-04 11:26:44.442 - info: javascript.0 script.js.ebusd.eBus_info: run: 2
2018-01-04 11:26:44.458 - info: javascript.0 script.js.ebusd.eBus_info: Connection to ebusd closed
[/code]`[/spoiler]
! Bei der Mehfachabfrage habe ich mit auf die Umsetzung der Einzel-Elemente konzentriert
! Gruß
! Jürgen[/i] -
Hallo Jürgen.
Ich würde nur jeweils den letzten Wert benötigen.
Lg
Robin
-
Hallo Jürgen.
habe einwenig im skript herumprobiert, funktioniert nun das feld 7 angezeigt wird.
ob das nun sauber programiert ist entzieht sich meiner kenntniss
LG
Robin
4953_unbenannt.png -
Hallo Jürgen.
habe einwenig im skript herumprobiert, funktioniert nun das feld 7 angezeigt wird.
ob das nun sauber programiert ist entzieht sich meiner kenntniss
LG
Robin `
Hi Robin,
das sieht doch gut aus (Bis auf den einen Dreher im LOG)
Schön das du den Script verstanden hast. TOP
Gruß
Jürgen
-
Hallo Jürgen.
Das programmieren lernen dauert
welchen dreher meinst du?
Gibt es eine möglichkeit, die Daten im Skrip per UDP weiterzuleiten.
Ich habe einen Loxone Miniserver der UDP Daten emfängt.
In FHEM habe ich die Daten mit EBUSD eingelesen und per UDP weitergeleitet.
Habe einen code gefunden der mir das Wort "Hello" in einem eigenen Skript an den Miniserver schickt.
aber wie ich den in dein Skript einbauen kann verstehe ich noch nicht.
var dgram = require('dgram'); var message = ('Hello'); var client = dgram.createSocket('udp4'); client.send(message, 0, message.length, 1234,'192.168.0.2', function(err, bytes) { if (err) throw err; client.close(); });
LG
Robin
-
Hallo, habt ihr den EBus auf dem selben Raspberry laufen wo auch ioBroker läuft?
Oder brauche dafür ein separaten Raspberry?
Ich habe mir jetzt auch den USB EBus-Adapter von Esera bestellt und hoffe das ich damit meine Vaillant VRC420 Heizung auslesen kann.
-
Habe es jetzt auch geschafft meine Heizung auszulesen. bekomme jetzt von meine Vaillant Therme jede menge Werte.
Ich habe von Wolf noch ein SM1 Solarmodul parallel an den Bus- Adapter angeschlossen.
Ebusd erkennt auch das Modul mit dem Namen "Kromschroeder" nur dazu keine cfg Datei geladen?
Oder es wird nicht richtig erkannt.
Hat jemand evtl eine Idee? :roll:
root@All-in-One-Pi:/home/pi# ebusctl info
version: ebusd 3.0.595c7c0
update check: version 3.1 available, broadcast.csv: newer version available, vaillant/08.bai.csv: newer version available, vaillant/bai.308523.inc: newer version available, vaillant/broadcast.csv: different version available, vaillant/errors.inc: newer version available, vaillant/hcmode.inc: newer version available
access: *
signal: acquired
symbol rate: 20
max symbol rate: 187
reconnects: 0
masters: 5
messages: 217
conditional: 3
poll: 0
update: 8
address 03: master #11
address 07: master #16
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0518;HW=7401", loaded "vaillant/bai.308523.inc" ([PROD='0010004276']), "vaillant/08.bai.csv"
address 0c: slave #16
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=43000;SW=0215;HW=2002"
address 26: slave, scanned "MF=Vaillant;ID=43000;SW=0215;HW=2002"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 71: master #9
address 76: slave #9, scanned "MF=Kromschroeder;ID= ;SW=0227;HW=-"
-
Hallo Leutz
Ich habe da mal paar fragen.
Aber vorab. Ich habe ein EBusd RPi laufen und ein RPI mit Iobroker beides läuft wie gewollt. Es funktioniert auch alle werte die ich haben möchte mir im Iobroker anzeigen zu lassen mit hilfe dieses javascripts. Ist hier aus dem Forum.
`// ============================================================================= // --- Abfragen von Werten vom "ebusd" // ============================================================================= var logging = false; // "true" oder "false" wenn nicht gewünscht var HOST = '192.168.2.xxx'; // Hostname oder IP-Adresse auf dem der ebusd läuft var PORT = 8888; // Portnummer auf dem der ebusd hört var step = -1; var pfad = 'eBus.430.'; // Pfad innerhalb der Instanz wo die Daten gespeichert werden // ============================================================================= var net = require('net'); var client = new net.Socket(); // ============================================================================= var Elemente = ['DisplayedRoomTemp','Hc1OPMode','Hc1HeatCurve','Hc1ManualOPRoomTempDesired','Hc1QuickVetoTemp','HwcOPMode','HwcQuickVetoTemp','HwcManualOPTempDesired','DisplayedHwcStorageTemp','Hc1ActualFlowTempDesired','BMUFlowTempOrVF1']; var ElementeNamen = ['','','','','','']; // ============================================================================= // ============================================================================= // Datenpunkte anlegen // ============================================================================= function anlegen(){ if (logging) log('--------> Start -> es gibt für ' + Elemente.length + ' Elemente einen Datenpunkt anzulegen'); for(var i=0;i <elemente.length;i++) {/createstate(pfad/+/elemente[i],/0,/{name:/elementenamen[i]});/if/(logging)/log('0.'/i/'/datenpunkt:/pfad/-="">' + ElementeNamen[i] + ' angelegt'); }} // ============================================================================= // ============================================================================= // --- function zum Abfragen der Werte // ============================================================================= function readElement(){ if (logging) log('--------> Start ->'); if (logging) log(' ---> Variable "step" = '+ step + ' für die Anzahle von ' + Elemente.length + ' Elemente'); if(Elemente.length < 1){ log('keine Elemente zum abfragen'); client.destroy(); return; } if(step < Elemente.length -1){ step++ ; if (logging) log('0.'+ step + ' ---> Neue Abfrage --------------------> Durchlauf : ' + step + ' von ' + Elemente.length ); // --- hier dann die function mit werten aufrufen var req = 'read -f ' + Elemente[step]; // der Befehl wird zusammengesetzt var ele = Elemente[step]; var eleN = ElementeNamen[step]; client.write(req + '\n'); // hier wird der Befehl gesendet if (logging) log('1.'+ step + ' BEFEHL wurde gesendet : ' + req); } else{ step = -1; if (logging) log('0.'+ step + ' ---> keine weitere Abfrage nötig -----> Fertig'); setTimeout(readElement, 20000); //Wenn alle Werte abgefragt sind--> Neustart in 1 Minute return; } } // ============================================================================= // --- Aufruf --- DATEN lesen // ============================================================================= client.on('data', function(data) { // if (logging) log('3 .'+ step + ' Daten werden empfangen : ' + data); // --- die empfangenen Daten werden gewandelt und aufgeteilt (SUB-Funktion) --- var datastr = data.toString(); // if (logging) log('3a.'+ step + ' RX-Daten (String) : ' + datastr); //------------------------------------------------------------------------------ var databuf = ''; var prev = 0, next; if (logging) log('3b.'+ step + ' Durchlauf : ' + step); while ((next = datastr.indexOf('\n\n', prev)) > -1) { databuf += datastr.substring(prev, next); if (logging) log('3c.'+ step + ' Funktion aufrufen mit : ' + databuf + " als Daten"); //--- SUB-Funktion aufrufen --- parse(databuf); databuf = ''; // Datenbuffer leeren prev = next + 1; } databuf += datastr.substring(prev); readElement();//Abfragen des nächsten Wertes //------------------------------------------------------------------------------ }); // ============================================================================= // ============================================================================= // Verbindungsabbau // ============================================================================= client.on('close', function(fertig) { if (logging) { if (logging) log('4\. -----> Verbindung geschlossen .'); client.destroy(); } }); // ============================================================================= // ============================================================================= // --- SUB-Funktion --- Daten-String aufteilen // ============================================================================= function parse(data) { var arr = data.toString().split(/\r?;/); // wie viele Werte werden durch ";" getrennt if (logging) log('3d.'+ step + ' Menge an Daten durch ; getrennt : ' + arr.length); var fields = data.toString().split('\;'); // hier wird auf den = getriggert if (logging) log('anzahl an Feldern : ' + fields.length); if(fields.length > 0) { // 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 + Elemente[step], WertVor); // Werte setzen if (logging) log('4.'+ step + ' im Datenpunkt "' +pfad + '" wird "' + WertVor + '" gespeichert'); } } // ============================================================================= // ============================================================================= // --- Function --- Fehler abfangen und ausgeben // ============================================================================= client.on('error', function(err) { client.destroy(); if (logging) log(' Es ist ein Fehler aufgetreten : '+ err); }); // ============================================================================= // ============================================================================= // Verbindungsaufbau // ============================================================================= client.connect(PORT, HOST, function(){ readElement(); if (logging) log('1\. Verbindungsaufbau zu : ' + HOST + ':' + PORT); }); // ============================================================================= anlegen(); //States anlegen</elemente.length;i++)>` Zudem ist es mir auch möglich auf dem RPi mit dem EBus werte zu ändern. Nun zu meinen fragen... Kann man das Script ändern das es nur noch was schickt ohne auf Antwort zu warten oder geht es irgendwie auch über Blockly. Bin absolut nicht Javascript fähig und Blockly schlag ich mich irgendwie durch. Oder gibt es da noch einen einfacheren weg den ich nur nicht kenne , wie z.b. vom Rpi Iobroker per ssh den befehl auf den Rpi Ebusd zu schicken. Würde mich über hilfe echt freuen.[/i][/i][/i]
-
Guten Morgen!
Könnte man die Werte nicht auch über das Internetkommunikationsmodul VR900/VR920 auslesen/schreiben? Kann die App ja schließlich auch…
-
Guten Morgen!
Könnte man die Werte nicht auch über das Internetkommunikationsmodul VR900/VR920 auslesen/schreiben? Kann die App ja schließlich auch… `
Diese Frage würde ich gern nochmal aufgreifen.
Ich selbst besitze eine auroCOMPACT und möchte die jetzt auch anbinden. Ich bin mir nicht sicher, ob sich der Aufpreis des VR920 (ca. 300€) gegenüber dem eBus-Koppler (80-130€) wirklich lohnt. Allerdings ist der VR920 ja der offizielle Vaillant-Weg.
Findet sich vielleicht jemand, der das beantworten kann?
-
@B3ta Hallo.
Ich Probiere ach gerade mit den Skripten rum. Leider bisher ohne erfolg. Die Daten als solche greife ich per MQTT ab. Das hier veröffentlichte Skript zur Einzelabfrage erstellt die Verzeichnisstruktur, holt den Wert ab aber bekommt ihn nicht gespeichert.
18:10:05.727 info javascript.0 (4914) Start javascript script.js.Heizung.eBus.Einzelwert_test
18:10:05.764 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 1. Start trying eBus abfrage
18:10:05.788 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: registered 0 subscriptions and 1 schedule
18:10:05.793 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 2. Connected to ebusd on iobroker3:8888
18:10:05.795 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 3. TX-Befehl: "read -f Hc1FlowTemp" wird gesendet
18:10:06.584 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 4. RX-Daten : 23
18:10:06.586 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Menge : 1
18:10:06.587 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Felder : 23
18:10:06.619 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 4. RX-Daten : connection closed
18:10:06.620 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Menge : 1
18:10:06.622 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Felder : connection closed
18:10:06.637 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Connection to ebusd closed
18:10:08.680 info javascript.0 (4914) Stop script script.js.Heizung.eBus.Einzelwert_testUnter Objekten steht dann immer 0 als Vorlauftemperatur.
Weiß jemand wo der Fehler liegt?
-
Hallo Zusammen und ein gutes neues Jahr!
Ich nutze einen Pi3B mit dem eBus Adapter GPIO von John30 und eine Vaillant Multimatic 700f, VRC156 exclusive, 920 gateway.
Der Adapter blinkt grün und orange dauerleuchtet.
eBusD 21.3 ist installiert und die Global Data kommen im mqtt an.
Ich habe auch dei Configs installiert, einmal nach der Anleitung im GitHub und einmal nach der Anleitung weiter oben.
Wenn ich einen checkconfig mache, bekomme ich nur das:
pi@raspberrypi:/etc/ebusd $ sudo ebusd --checkconfig --scanconfig="full"
2022-01-03 14:46:38.101 [main notice] ebusd 21.3.v21.3 performing configuration check...
2022-01-03 14:46:38.313 [main notice] found messages: 11 (0 conditional on 0 conditions, 0 poll, 4 update)
2022-01-03 14:46:38.313 [main notice] ebusd stoppedDer eBUSDaemon startet "einwandfrei" nur ohne Vaillant-Antworten:
pi@raspberrypi:~ $ tail -f /var/log/ebusd.log
2022-01-03 14:30:29.390 [main notice] ebusd 21.3.v21.3 started with auto scan on device /dev/ttyAMA0
2022-01-03 14:30:29.627 [bus notice] bus started with own address 31/36
2022-01-03 14:30:29.635 [mqtt notice] connection established
2022-01-03 14:30:29.654 [bus notice] signal acquired
2022-01-03 14:30:53.024 [bus notice] max. symbols per second: 103
2022-01-03 14:32:12.001 [bus notice] max. symbols per second: 119
2022-01-03 14:32:34.786 [main notice] update check: OK
2022-01-03 14:37:33.773 [main notice] SIGTERM received
2022-01-03 14:37:39.236 [main notice] ebusd stopped
2022-01-03 14:48:22.879 [main notice] ebusd 21.3.v21.3 started with auto scan on device /dev/ttyAMA0
2022-01-03 14:48:23.090 [bus notice] bus started with own address 31/36
2022-01-03 14:48:23.098 [mqtt notice] connection established
2022-01-03 14:48:23.144 [bus notice] signal acquired
2022-01-03 14:48:38.028 [bus notice] max. symbols per second: 109Was mache ich falsch ?
Danke im Voraus !
Marcus -
Hallo Zusammen,
vielleicht kann jemand helfen... Ich habe das Problem das scheinbar der ebusd mit der Heizung kommuniziert und auch die vaillant/08.bai.csv, aber ich bekomme immer wieder Meldungen, dass Elemente 15... nicht geladen werden können. Ich kann auch keine Daten der Heizung abfragen. Ich vermute mir fehlt eine entsprechenden 15.emm.csv mit den entsprechenden Daten für meine Heizung. Es ist eine ecoTEC Plus VCW 20/26. Ich habe auf dem ebus kein weiteres Gerät außer das esera ebus/usb Interface. Sonst ist an der Heizung nur ein Außenfühler angeschlossen.
Vielen Dank im Voraus.
Hier das entsprechende Log
2022-04-20 17:52:59.124 [main notice] ebusd 22.2.p20220227 started with full scan on device /dev/ttyUSB0
2022-04-20 17:52:59.134 [bus notice] bus started with own address 31/36
2022-04-20 17:52:59.137 [bus notice] signal acquired
2022-04-20 17:53:03.615 [bus notice] new master 03, master count 2
2022-04-20 17:53:04.379 [bus notice] new master 00, master count 3
2022-04-20 17:53:04.448 [bus notice] new master 10, master count 4
2022-04-20 17:53:04.449 [update notice] received unknown MS cmd: 0015b50902280d / 0c0d000104810100454d4d3030
2022-04-20 17:53:09.134 [main notice] starting initial full scan
2022-04-20 17:53:11.550 [bus notice] scan 08: ;Vaillant;BAI00;0704;7603
2022-04-20 17:53:11.550 [update notice] store 08 ident: done
2022-04-20 17:53:11.551 [update notice] sent scan-read scan.08 QQ=31: Vaillant;BAI00;0704;7603
2022-04-20 17:53:11.552 [bus notice] scan 08: ;Vaillant;BAI00;0704;7603
2022-04-20 17:53:18.232 [bus notice] scan 15: ;Vaillant;EMM00;0104;8503
2022-04-20 17:53:18.233 [update notice] store 15 ident: done
2022-04-20 17:53:18.233 [update notice] sent scan-read scan.15 QQ=31: Vaillant;EMM00;0104;8503
2022-04-20 17:53:18.233 [bus notice] scan 15: ;Vaillant;EMM00;0104;8503
2022-04-20 17:53:19.981 [main error] scan config 05: ERR: read timeout
2022-04-20 17:53:22.008 [main notice] read common config file vaillant/scan.csv
2022-04-20 17:53:22.010 [main error] error reading common config file vaillant/broadcast.csv: ERR: element not found, vaillant/broadcast.csv:7: ERR: element not found, field type ONOFF in field 0
2022-04-20 17:53:22.018 [main notice] read common config file vaillant/general.csv
2022-04-20 17:53:22.021 [main notice] read common config file vaillant/memory.csv
2022-04-20 17:53:22.033 [main notice] read scan config file vaillant/08.bai.csv for ID "bai00", SW0704, HW7603
2022-04-20 17:53:22.709 [update notice] sent scan-read scan.08 id QQ=31:
2022-04-20 17:53:23.434 [update notice] sent scan-read scan.08 id QQ=31:
2022-04-20 17:53:24.169 [update notice] sent scan-read scan.08 id QQ=31:
2022-04-20 17:53:24.896 [update notice] sent scan-read scan.08 id QQ=31: 21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:24.898 [main error] error executing instructions: ERR: element not found, last error: error loading "vaillant/bai.308523.inc" for "08": ERR: element not found vaillant/bai.308523.inc:9: ERR: element not found, field type POWER in field 0, error including "vaillant/hcmode.inc" for "08": ERR: element not found vaillant/hcmode.inc:4: ERR: element not found, field type DCFSTATE in field 0
2022-04-20 17:53:24.898 [main notice] found messages: 13 (0 conditional on 25 conditions, 0 poll, 2 update)
2022-04-20 17:53:25.619 [update notice] sent scan-read scan.08 id QQ=31: 21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:26.335 [update notice] sent scan-read scan.08 id QQ=31: 21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:27.050 [update notice] sent scan-read scan.08 id QQ=31: 21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:27.765 [update notice] sent scan-read scan.08 id QQ=31: 21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:27.765 [bus notice] scan 08: ;21;21;36;0010022010;0001;008760;N9
2022-04-20 17:53:30.658 [update notice] sent unknown MS cmd: 3115b5090124 / 09003231323230373030
2022-04-20 17:53:31.361 [update notice] sent scan-read scan.15 id QQ=31:
2022-04-20 17:53:32.065 [update notice] sent scan-read scan.15 id QQ=31:
2022-04-20 17:53:32.771 [update notice] sent scan-read scan.15 id QQ=31: 21;22;07;0020274790;0082;009030;N1
2022-04-20 17:53:32.772 [bus notice] scan 15: ;21;22;07;0020274790;0082;009030;N1
2022-04-20 17:53:32.778 [main error] error reading scan config file vaillant/15.emm.csv for ID "emm00", SW0104, HW8503: ERR: element not found, vaillant/15.emm.csv:6: ERR: element not found, field type TEMPV in field 1
2022-04-20 17:53:32.779 [main error] scan config 15: ERR: element not found
2022-04-20 17:55:35.023 [main notice] update check: revision v22.2 available
2022-04-20 17:56:12.970 [update notice] received unknown BC cmd: 10feb5550406010001
2022-04-20 17:56:18.005 [update notice] received unknown MS cmd: 1008b5550100 / 0103
2022-04-20 17:56:25.242 [update notice] received unknown MS cmd: 0015b50902280d / 0c0d000104810100454d4d3030
2022-04-20 17:57:13.271 [update notice] received unknown BC cmd: 10feb5550406010001
2022-04-20 17:57:18.304 [update notice] received unknown MS cmd: 1008b5550100 / 0103
2022-04-20 17:57:29.934 [update notice] received unknown MS cmd: 0015b50902280d / 0c0d000104810100454d4d3030
2022-04-20 17:58:13.573 [update notice] received unknown BC cmd: 10feb5550406010001 -
@dirk99
Hat sich erledigt. Die Kommunikation läuft schon mal -
Seit der letzen Aktualisierung des ebus-Adapters auf die Version 3.0.2 habe ich folgende Warnmeldung zyklisch im Log „ instance system.adapter.ebus.0 already running with pid 29593“.
Kann mir vielleicht jemand erklären, woher diese Meldung kommt? -
Der Adapter läuft doppelt .
Entweder killst du den PID oder mal ein Neustart deines Systems machen ,was ich empfehlen würde . -
Das war mir schon klar, dass der Adapter doppelt läuft, ich wollte eigentlich nur die Ursache ergründen. Ein Neustart hat leider nichts gebracht.