NEWS
EBus - Adapter oder alternative Anbindung möglich?
-
Wow, es ist als könntet ihr meine Gedanken lesen.
Da ich gerade mit dem Auslesen und Auswerten meines Stromzählers fertig geworden bin, habe ich an meine Vaillant Heizung…. `
Wie liest du den deinen Stromzähler aus!?
Ich frage nur denn Ich lese meinen Gas und Stromzähler mit Volkszähler aus! Jetzt muss ich nämlich eine Möglichkeit finden um die Werte in IOBROKER zu bekommen
Also zB den Momentanen Verbrauch, den Tagesverbrauch usw.
Gruß
Adrian
Gesendet von iPhone mit Tapatalk
-
Wow, es ist als könntet ihr meine Gedanken lesen.
Da ich gerade mit dem Auslesen und Auswerten meines Stromzählers fertig geworden bin, habe ich an meine Vaillant Heizung…. `
Wie liest du den deinen Stromzähler aus!?
Ich frage nur denn Ich lese meinen Gas und Stromzähler mit Volkszähler aus! Jetzt muss ich nämlich eine Möglichkeit finden um die Werte in IOBROKER zu bekommen
Also zB den Momentanen Verbrauch, den Tagesverbrauch usw.
Gruß
Adrian
Gesendet von iPhone mit Tapatalk `
Ich nutze auch den Volkszähler.dazu habe ich kleines script geschrieben der mir minütlich den Status des Zählers ausgibt.
also: Momentane Last + Gesamtverbrauch diese Wert lese ich per Javascript in ioBroker ein. Dazu habe ich weitere scripte angelegt, die mir den stündlichen, täglichen, wöchentlichen und monatlichen Wert berechnen und per history-adapter speichern.
dadurch kann ich schöne Statistiken erstellen.
Melde dich, wenn du die scripte haben willst.
1597_bild_2.jpg
1597_bild_3.jpg -
Ahh über die Scripte würde ich mich riesig freuen! Bin da noch nIcht so bewandert was Scripte erstellen angeht [emoji12][emoji23]
Ich danke dir schon im Vorfeld dafür [emoji1360]
Gesendet von iPhone mit Tapatalk
-
Ahh über die Scripte würde ich mich riesig freuen! Bin da noch nIcht so bewandert was Scripte erstellen angeht [emoji12][emoji23]
Ich danke dir schon im Vorfeld dafür [emoji1360]
Gesendet von iPhone mit Tapatalk `
Habe meine Antwort nach http://forum.iobroker.net/viewtopic.php?f=21&t=4363 ausgelagert.
Lg a200
-
Kurzer Zwischenstand: Ich kann mich mittlerweile via Javascript zum ebusd verbinden und Kommandos absetzen. Das Parsen der Antworten ist noch etwas aufwendig, und ich brauch wohl noch etwas, aber zumindest habe ich schon die ersten Infos vom ebusd (der mit der Vaillant VRC430 verbunden ist) zu ibroker transferiert
Derzeit habe ich die Befehle 'info' und 'find' implementiert, ich denke es ist sinnvoll viele kleine Skripte zu machen um die dann regelmäßig je nach Bedarf aufzurufen. Hier der info-Code schonmal als Teaser:
`var root = 'eBus'; // root of state inside 'javascript.0' var host = 'pi1'; // set to your host running ebusd var port = 8888; // default ebusd port var net = require('net'); log('trying'); var req = 'info'; createState('eBus'); 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' + '.' + fields[0], fields[1]); } else if (run==2) { var subfields = fields[1].split(', '); var tmp = subfields[0].split('#'); var master = tmp[1]; createState('eBus' + '.' + 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'/+/'.'/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);/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;>` Den find-Befehl schiebe ich nach, sobald er stabil ist :) Hoich[/i]
-
Geilomat…. [emoji1360] ich warte immer noch auf den serial/ USB Adapter [emoji30] bis jetzt wurde dieser nämlich nicht geliefert!
Aber bei der Entwicklungsgeschwindigkeit seid ihr schon fertig bis ich den Adapter erhalte [emoji23][emoji6]
Gesendet von iPhone mit Tapatalk Pro
-
Geilomat…. [emoji1360] ich warte immer noch auf den serial/ USB Adapter [emoji30] bis jetzt wurde dieser nämlich nicht geliefert! `
moin,ich habe das hier: https://www.amazon.de/tinxi-FT232RL-Con … B01C2P9GD2 gekauft. wird sofort geliefert. Allerdings habe ich noch keine Zeit zum Löten gehabt.
Was hast du denn bestellt?
-
ich warte immer noch auf den serial/ USB Adapter `
Arduino Leonardo braucht den nicht. Hat USB an Bord. Da hängt meine EBUS-Platine dran und der Leonardo per USB an der CCU2. -
Hallo
ich habe seit gestern jetzt auch eine neue Heitzung (Wolf) ich habe zwar auch ein ISM8i und nutze den Wolf adapter
Aber ich habe mir auch schon das:
https://www.eservice-online.de/shop/ebu … r-ethernet
angeschaut.
wen jemand noch ne gute Hardware Idee hat am besten Ebus zu Lan dann kann ich da bestimmt schnell nen unniversal Adapter machen.
-
Was spricht gegen ebus zur Usb!? [emoji6]
Ist das schwieriger zum umsetzen!?
Gruß
Adrian
Gesendet von iPhone mit Tapatalk Pro
-
Was spricht gegen ebus zur Usb!? [emoji6]
Ist das schwieriger zum umsetzen!? `
Eher nicht! Wurde auch hier mehrfach besprochen:
https://wiki.fhem.de/wiki/EBUS
https://forum.fhem.de/index.php/topic,46098.630.html
Bin dabei es umzusetzen. Es wird noch ca. 1-2 Wochen dauern bis ich dazu komme, aber dann werde ich mich gerne melden und berichten.
a200.
-
Bin dabei es umzusetzen. Es wird noch ca. 1-2 Wochen dauern bis ich dazu komme, aber dann werde ich mich gerne melden und berichten.
Da ich im Moment noch zuviele andere Projekte habe würde ich mich freuen wenn du da was schönes machst. Wenn du Hilfe brauchst daraus einen Adapter zu machen helfe ich dir gerne.
-
Wenn du Hilfe brauchst daraus einen Adapter zu machen helfe ich dir gerne.
Gerne! Ich komme auf dich zu!
-
Ich habe ja noch eine "find"-Routine versprochen. Hier ist mein derzeitiges Zwischenergebnis, ich weiss noch nicht ob ich noch mehr dran machen will.
Was das Skript macht ist im Prinzip ein "find -f" an ebusd zu senden, was alle Objekte zurückliefert inklusive Format, Einheit, Beschreibung, etc. Danach lese ich dann alle Felder vom ebusd um jeden iobroker-Zustand mit den Werten zu füllen die über den eBus abgefragt werden können. Vieles davon ist bei mir leer oder sonstwie etwas sinnlos, aber es sind auch einige Perlen an Information von meiner Vaillant-Therme dabei
Was jetzt eigentlich noch fehlt ist ein Weg wie man bestimmte Werte pollt oder bei Veränderung bekommt. Schöner wäre es das gleich in einen richtigen Adapter zu packen, aber dazu bin ich im Moment noch zu unerfahren und mein persönlicher Fokus geht erstmal zu einer Visualisierung meines Heims.
! ```
`// ebusd find script
var root = 'eBus'; // root of state inside 'javascript.0'
var host = 'pi1'; // set to your host running ebusd
var port = 8888; // default ebusd port
! var net = require('net');
var fieldsToRead = [];
! log('trying');var req = 'find -f';
! createState('eBus');
! var run=1;
var lastFieldRequested='';
var closing=0;
! function parse(data) {
//log("run: " + run);
if(run == 1)
{
var arr = data.toString().split(/\r?\n/);
for(var i = 0; i <arr.length; i++)/{/var/line="arr[i];" idx="0;" tmp="line.split(',');" if(tmp.length="">7) {
var numfields = 0;
var TYPE = tmp[0];
var CIRCUIT = tmp[1];
var NAME = tmp[2];
var COMMENT = tmp[3];
var QQ = tmp[4];
var ZZ = tmp[5];
var PDSB = tmp[6];
var ID = tmp[7];
log("* TYPE:" + TYPE + " CIRCUIT:" + CIRCUIT + " NAME:" + NAME +
" COMMENT:" + COMMENT + " QQ:" + QQ + " ZZ:" + ZZ +
" PDSB:" + PDSB + " ID:" + ID);
while(tmp.length > (7 + ((numfields+1)*6)))
{
idx = 8 + (numfields)6;
var FIELD = tmp[idx];
var PART = tmp[idx+1];
var DATATYPE = tmp[idx+2];
var DIVIDER = tmp[idx+3];
var UNIT = tmp[idx+4];
var COMMENT_F = tmp[idx+5];
log(" * FIELD:" + FIELD + " PART:" + PART + " DATATYPE:" + DATATYPE +
" DIVIDER:" + DIVIDER + " UNIT:" + UNIT + " COMMENT:" + COMMENT_F);
if(FIELD === '')
createState('eBus' + '.' + CIRCUIT + '.' + NAME, undefined, {name: COMMENT, unit: UNIT, desc: COMMENT});
else
createState('eBus' + '.' + CIRCUIT + '.' + NAME + '.' + FIELD, undefined, {name: COMMENT_F, unit: UNIT, desc: COMMENT});
fieldsToRead.push(CIRCUIT + ',' + NAME + ',' + FIELD);
numfields++;
}// } else { //log("odd line: " + line, 'warn'); } } if(fieldsToRead.length > 0) { var tmp2 = fieldsToRead.shift(); var tmp3 = tmp2.split(','); var CIRCUIT = tmp3[0]; var NAME = tmp3[1]; var FIELD = tmp3[2]; if(FIELD === '') req = "read -c " + CIRCUIT + ' ' + NAME; else req = "read -c " + CIRCUIT + ' ' + NAME+ ' ' + FIELD; log('Sending: ' + req); lastFieldRequested = tmp2; client.write(req+'\n'); } } else { var arr = data.toString().split(/\r?\n/); if(arr.length == 2) { //for(var i = 0; i <arr.length; i++)/{/var/line="arr[1];" log("new/for/"/+/lastfieldrequested/+":/line);/tmp3="lastFieldRequested.split(',');" circuit="tmp3[0];" name="tmp3[1];" field="tmp3[2];" if(field="==" '')/setstate('ebus'/'.'/name,/else/field,/;/}/if(fieldstoread.length="">0) { var tmp2 = fieldsToRead.shift(); var tmp3 = tmp2.split(','); var CIRCUIT = tmp3[0]; var NAME = tmp3[1]; var FIELD = tmp3[2]; if(FIELD === '') req = "read -c " + CIRCUIT + ' ' + NAME; else req = "read -c " + CIRCUIT + ' ' + NAME+ ' ' + FIELD; log('Sending: ' + req); lastFieldRequested = tmp2; client.write(req+'\n'); } } run++; if(fieldsToRead.length == 0 && lastFieldRequested === '') { closing = 1; log('Sending: quit'); client.write('quit\n'); }
}
! var client = new net.Socket();
client.connect(port, host, function() {
log('Connected to ebusd on ' + host + ':' + port);
client.write(req + '\n');
});
! var databuf = '';
client.on('data', function(data) {
var prev = 0, next;
var 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');
});
! client.on('error', function() {
log('Error');
});
! client.on('end', function() {
log('End');
});</arr.length;></arr.length;>` [/i] -
Kleine frage kann ich die ebus Interface Platine irgendwo kaufen ? oder hat noch jemand eine über ?
-
Such mal unter wiki.fhem.de nach ebus. Dann ganz unten findest du links zum Forum. Morgen kann ich dir die Mail des Verkäufers schicken.
LG, a200.
-
Also ich habe meine bei eBay gefunden, gibt es aber momentan nicht
Habe aber den Verkäufer angeschrieben, warte auf eine Antwort!
Diese Links hat er mir aber damals geschickt
Links:
Bauteile: https://secure.reichelt.de/index.html?& … ROVID=2084
WIKI: http://www.fhemwiki.de/wiki/
EBUS
eBus Schaltung in Betrieb nehmen!: http://forum.fhem.de/index.php/topic,46098.0.html
Heizung mit eBus-Schnittstelle: http://forum.fhem.de/index.php/topic,29737.0.html
2. Sammelbestellung: http://forum.fhem.de/index.php/topic,45127.0.html
3. Sammelbestellung: https://forum.fhem.de/index.php/topic,49744.0.html
Gesendet von iPhone mit Tapatalk Pro
-
WIKI: http://www.fhemwiki.de/wiki/ `
Du meinst: https://wiki.fhem.de/wiki/EBUS hier sind alle Links, die man braucht.
LG, a200.
-
Hm danach hat keiner mehr welche. Dann muss ich mir wohl welche selber machen.
Brauch noch jemand eine ?
-
Also mein eBay Verkäufer hat noch genau zwei Stück
Wer will die haben!?
Dann würde ich das in die Wege leiten
Gruß
Adrian
Gesendet von iPhone mit Tapatalk Pro