NEWS
Einbindung FS20-Komponenten
-
Der Stift zeigt das was im log steht,
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug }
cul.0 2018-02-26 01:03:02.264 debug return prop;
cul.0 2018-02-26 01:03:02.264 debug if (this[prop] === value)
cul.0 2018-02-26 01:03:02.264 debug if (this.hasOwnProperty(prop)) {
cul.0 2018-02-26 01:03:02.264 debug for (var prop in this) {
cul.0 2018-02-26 01:03:02.264 debug , {"rssi":null} getKeyByValue=function (value) {
cul.0 2018-02-26 01:03:02.264 debug RAW: 1234
Ich habe das V mit \r\n ersetzt, dann sind die hyroglüfen weg und im log steht das 1234, das ergebniss von T01
das zeigt es fehlt die delay von 750ms. aus meinem letzten post.
zusammengefasst,
Öffnen der schnitt stelle ok
Baudrate ok, sonst käme kein RAW 1234 zustande.
Senden von V geht auch
aber durch sofortiges senden von weiteren befehlen kommt der cul durcheinander.
erst das T01 bekommt er wieder mit und quittiert es durch 1234.
Eigentlich sollte jetzt die Aufgabe klar sein.
V\r\n senden
delay(750ms) einbauen
V\r\n senden
X21 senden
hier könnten mann aufhören,
aber da der X21 keinen Quittung zurück gibt,
noch ein T01 zur Kontrolle hinterher.
darum ist dann die antwort 1234 vom cul unsere quittung.
Bitte entsprechen umbauen, ich teste es dann.
Gruß Mickbaer
-
Aaaaaaaaalso.
1.) "that.write" als Funktion hängt selbst das "/r/n" dran. Siehe: https://github.com/Apollon77/cul/blob/m … ul.js#L166
Also ist das kein Issue.
2.) Irgendwie hab ich das Gefühl das bei dir diese cul.js nicht aktualisiert wurde. Also bitte mal vergleichen ob der Teil ab https://github.com/Apollon77/cul/blob/m ... ul.js#L124 so ist die dort auf Github. Ist das identisch? Es sollten auch alle send-Kommandos mit "-> ..." geloggt werden.
Ich habe jetzt noch eine Wartezeit nach öffnen der Verbindung und dem "V" Kommando eingebaut von 2s und habe den zweiten Delay auch erhöht. Damit ist es jetzt noch mehr "in sync" mit dem maxcul Adapter. ALso vitte vorher nochmal vom Github updaten bevor Du vergleichst!
Wenn ja dann macht er folgendes:
-> Warten 2000ms
-> V/r/n senden
-> Warten das gesendet wurde
-> Warten 2000ms
-> X21/r/n senden
-> Warten das gesendet wurde
-> T01/r/n senden
-> Warten das gesendet wurde
-> er jetzt geht Adapter-Anpel auf Grün und er empfängt. Alles vorher wird auch nicht geloggt.
Und das ist EXAKT das was Du geschrieben hast was sein soll.
Ansonsten ist das Debug Log immer noch komisch. Quellcode sollte da nicht stehen.
Unter dem Objekt "system.adapter.cul.0" sollte etwas stehen wie (Beispiel bei mir von daikin.0):
{ "_id": "system.adapter.daikin.0", "type": "instance", "common": { "name": "daikin", "version": "0.2.3", "news": { "0.1.0": { "en": "Initial public test version", "de": "Initiale öffentliche Testversion", "ru": "Initial public test version" }, "0.1.12": { "en": "Initial public test version", "de": "Initiale öffentliche Testversion", "ru": "Initial public test version" }, "0.2.3": { "en": "Add control.lastResult to see if a change was successfull", "de": "control.lastResult hinzugefügt um zu sehen ob die letzte Änderung erfolgreich war", "ru": "Add control.lastResult to see if a change was successfull" }, "0.2.2": { "en": "Removed debug messages", "de": "Debug-Ausgaben entfernt", "ru": "Removed debug messages" } }, "title": "Daikin Adapter", "desc": "Control Daikin Air Conditioner devices", "platform": "Javascript/Node.js", "mode": "daemon", "messagebox": true, "subscribe": "messagebox", "stopBeforeUpdate": true, "icon": "daikin.jpg", "extIcon": "https://raw.githubusercontent.com/Apollon77/ioBroker.daikin/master/admin/daikin.jpg", "readme": "https://github.com/Apollon77/ioBroker.daikin", "license": "MIT", "npmLibs": [], "type": "hardware", "keywords": [ "iobroker", "daikin", "climate control" ], "loglevel": "info", "enabled": true, "restartAdapters": [ "daikin" ], "installedVersion": "0.2.3", "host": "nuc2" }, "native": { "daikinIp": "192.168.178.26", "pollingInterval": "60" }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "ts": 1519075415654 }
Wichtig ist der Teil bei "native" weil hier die Adapter-Einstellungen stehen.
Also bitte nochmal testen.
-
Hallo,
ich habe jetzt die Version von Heute morgen installiert und getestet.
Es funktioniert jetzt.
Ich habe noch die zeiten angepasst :
–-------------
serialPort.on('open', () => {
if (options.init) {
setTimeout(() => { // give CUL enough time to wakeup
that.write('V', err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
setTimeout(() => { // give CUL enough time to wakeup
that.write(options.initCmd, err => {
if (err) {
throw err;
}
});
serialPort.drain(() => {
if (modeCmd) {
that.write(modeCmd, err => {
if (err) {
throw err;
}
});
serialPort.drain(err => {
if (err) {
throw err;
}
ready();
});
} else {
ready();
}
});
}, 20);
});
}, 1500);
} else {
ready();
}
–-------------
Damit geht es gut und auch immer wiederkehrend ohne Fehler.
Danke für deine Mühe,
damit ist der CUL-Adapter jetzt auch für den nanoCul verwendbar.
Das wird bestimmt viele User freuen...
Gruß Mickbaer aus Berlin
-
Da jetzt der CUL-Adapter mit dem nanoCUL funktioniert,
kommt jetzt die nächste Frage.
kannst Du bitte das ESA wieder einbauen,
const protocol = { em: require('./lib/em.js'), fs20: require('./lib/fs20.js'), hms: require('./lib/hms.js'), moritz: require('./lib/moritz.js'), uniroll: require('./lib/uniroll.js'), ws: require('./lib/ws.js'), fht: require('./lib/fht.js') ==>> das war in der Version 0.2.0 hier drin esa: require('./lib/esa.js') <<== }; // http://culfw.de/commandref.html const commands = { F: 'FS20', T: 'FHT', E: 'EM', W: 'WS', H: 'HMS', => S: 'ESA', <= R: 'Hoermann',
das file esa.js gibt es ja unter dem Lib verzeichnis schon.
In den RAW daten sehe ich auch schon die von meinem Energiezähler gesendeten Nachrichten:
S263CF9011E0006C73B0004000000014B40
aber sie tauchen hier nicht auf.
esa.js
'use strict';
module.exports.parse = function (raw) {
const message = {
protocol: 'ESA',
raw
};
return message;
};
das wird irgend wo verhindert.(Ich konnte nicht finden wo das verhindert wird.)
Könntest Du das so einstellen das in dem Modul die RAW Daten ankommen.
Ich würde dann mal versuchen das zu parsen, so wie es auch bei FHEM geparst wird.
Wenn das gelingt, dann könnten auch die Energiezähler benutzt werden.
Danke für deine Hilfe
Gruß Mickbaer
-
Hallo,
ich habe jetzt die Version von Heute morgen installiert und getestet.
Es funktioniert jetzt.
Damit geht es gut und auch immer wiederkehrend ohne Fehler.
Danke für deine Mühe,
damit ist der CUL-Adapter jetzt auch für den nanoCul verwendbar. `
Ich bin frech (und ja darfst mich gern virtuell "schlagen" wenn wieder nix mehr geht) und würde dich bitten nochmal die neueste Version zu testen.Meine Vermutung ist das es reicht das X21 zusenden zum initialisieren … man muss nur nach der Verbindung halt warten! (nanoCul ist ja ein Arduino dahinter ... der muss erstmal hochfahren)
ich habe also jetzt das "V" und "T01" die unnötig sein sollten wieder rausgenommen, aber die Wartezeit vor dem X21 von 1500ms drin gelassen.
kannst Du bitte mal schauen ?!
kannst Du bitte das ESA wieder einbauen, `
Ist auch drin …
-
Hallo apollon77,
ich habe deine neue Version von Github getestet, wo nur noch die Verzögerung von 1500ms und nur noch das X21 drin ist.
Es funktioniert. :roll:
Ich habe jetzt mich gleich an das ESA ran gemacht.
Es gibt das Problem, das bei den S… Messages des Energiezählers, die letzten 3 Zeichen abgeschnitten und in den nächsten RAW
geschrieben werden.(siehe hier)
cul.0 2018-03-03 16:22:15.530 debug RAW: B2F , {"rssi":null}
cul.0 2018-03-03 16:22:15.519 debug RAW: S9D3CF9011E0006E5630003000000014, {"protocol":"ESA","device":"ESA2000","address":"3CF9","data":{"seq":"9D","dev":"3CF9","code":"011E","tictotal":451939,"ticact":3,"ticzeit":0,"tickwh":20,"cmd":1}
cul.0 2018-03-03 16:21:29.069 debug RAW: tAE66270276D8 , {"rssi":null}
damit fehlen mir hier die letzten Informationen zum Auswerten.
Kanst Du den CUL-Adapter so einstellen, das alle Zeichen bis /r/n in einem RAW ankommen, das wäre hilfreich.
Ansonsten habe ich die Rohdaten schon im iobroker drin.
Hier der Quelltext des ESA.js( warum der Browser hier die```
`Anweisungen nicht frisst verstehe ich nicht,
darum hier als plaintxt)'use strict';
// ESA2000 protocoll implementatation Michael Lorenz 3.3.2018 V0.1module.exports.parse = function (raw) {
//var message = {}
const message = {};
message.protocol = 'ESA';
let command = 'Test';message.device = 'ESA2000'; // Gerätetyp message.address = raw.slice(3, 7); // Device '3CF9' message.data = {}; message.data.seq = raw.slice(1, 3); // Sequenz message.data.dev = raw.slice(3, 7); // Device message.data.code = raw.slice(7, 11); // Code message.data.tictotal = parseInt((raw[11] + raw[12] + raw[13] + raw[14] + raw[15] + raw[16] + raw[17] + raw[18]), 16); message.data.ticact = parseInt((raw[19] + raw[20] + raw[21] + raw[22]), 16); message.data.ticzeit = parseInt((raw[23] + raw[24] + raw[25] + raw[26] + raw[27] + raw[28]), 16); message.data.tickwh = parseInt((raw[29] + raw[30] + raw[31] + raw[32]), 16); message.data.cmd = 1; return message;
};
// --------------- EXPORT FUNKTION ---------------------------------------------------
module.exports.cmd = function (code, address, command) {return 'S' + code + address + command;
};Für einen Tipp, wie ich eine Variable im Esa Modul anlegen kann, wo ich Werte aufsummieren kann, wäre ich auch dankbar. :roll:
Gruß Mickbaer`
5817_esa1.png -
Das mit dem zeilentrenner schaue ich mir an. Hatte schon do eine Vermutung … schaue heute Abend rein und melde mich mit einem Update.
Aufsummieren über mehrere requests würde ich in der Protokoll klasse nicht tun. Das dann in ioBroker per JavaScript.
Ich kann deine esa Klasse wenn fertig (und wirklich generisch!!) gern mit in die Library einkippen. Alternative: du nimmst den raw wert und nächstes in iobroker. Esa klasse für die Library muss komplett genetisch und für alle Nutzer der Library (nicht nur iobroker!!!) gehen.
-
Bitte Install vom Github versuchen … ungetestet ... entweder Kommunikation geht oder nicht
-
Moin
Eine kurze Zwischenfrage, da ich die FS20 und CUL Geschichte seit ein paar Tagen verfolge und selbst solch ein Gerät mein Eigen nenne. Ich habe den CUL Adapter (aus Github) installiert. Tastendrucke von den Schaltern werden auch hervorragend erkannt. Soweit unproblematisch.
Aber sehe ich das richtig, dass ich vom ioBroker aus Steckdosen etc. NICHT steuern kann?
Sehe ich das richtig, dass ich dafür einen FHEM Server aufsetzen und im ioBroker den FHEM Adapter installieren muss?
Ich hoffe, dass sich die direkte Steuerung vom ioBroker aus bald realisiert. Falls noch Tester nötig sind (die allerdings eher Hausfrauen-Tester als Experten-Tester sind): hier wäre noch einer!
Danke für Eure Arbeit sagt
Daniel
-
Bitte Install vom Github versuchen … ungetestet ... entweder Kommunikation geht oder nicht `
Ja läuft super, ( weiss nicht was du gemacht hast,)
aber egal es läuft, es kommt jetzt alle an.(siehe Bild im Anhang)
Ich habe deine Kosmetik in die ESA-Implementation übernommen und damit abgeschlossen.
Bei mir läuft es auf dem Test-System stabil und für mich ausreichend.
Wenn die Additionen wie in FHEM hier nicht rein sollen, dann bin ich hier fertig. :roll:
Kannst DU das bitte veröffentlichen.
:idea: Wäre schön wenn sich da andere User finden würden, die es Testen und oder Kommentieren. :!: :?: :idea: :lol:
Wenn Du es online gestellt hast, dann ziehe ich den nanoCUL auf das PRO-System um und teste es im Prod-Einsatz.
Ich berichte dann.
Gruß Mickbaer
5817_esa2.png
5817_my-esa3.js -
Alternative: du nimmst den raw wert und nächstes in iobroker.
Esa klasse für die Library muss komplett genetisch und für alle Nutzer der Library (nicht nur iobroker!!!) gehen. `
Da musst Du mir Einwenig auf die Sprünge helfen.
Die RAW-Werte haben wir jetzt im IOBROKER,
wäre aber schön, wenn aus Sachen wie:
Aktuelle Leistung in Watt,
Leistung Heute,
Leistung Yesterday,
die ja aus den RAW werten errechnet werden können, auch bereitgestellt werden könnten.
Das hat den Vorteil, nicht jeder braucht sich hier neu Reindenken
und kann die werte einfach zur anzeige, OHNE extra Script, selber erfinden zu müssen,
einfach benutzen.
Wenn Du mir den Rahmen dafür vorbereitetst, und sagst, welches File ich bearbeiten muss, (da reichen meine Kenntnisse noch nicht aus)
dann kann ich das auch noch machen.
Denn noch habe ich alles auf dem Schreibtisch und kann das dann einfacher testen.
Gruß Mickbaer
-
Aber sehe ich das richtig, dass ich vom ioBroker aus Steckdosen etc. NICHT steuern kann?
Sehe ich das richtig, dass ich dafür einen FHEM Server aufsetzen und im ioBroker den FHEM Adapter installieren muss?
Ich hoffe, dass sich die direkte Steuerung vom ioBroker aus bald realisiert. Falls noch Tester nötig sind (die allerdings eher Hausfrauen-Tester als Experten-Tester sind): hier wäre noch einer!
Danke für Eure Arbeit sagt
Daniel `
Hallo,Ich habe keine FS20 Steckdosen, darum kann ich es nicht Testen.
Ich habe nur eine ESA Steckdose, und die Lässt sich nur schwer Pairen, und verbindet sich bei Stromausfall nicht wieder von selber.
Darum liegt die seit Jahren in der Ecke und wird nicht benutzt.(war auch recht teuer, ca 50€ damals)
Warum steigst du nicht auf die OBI-Steckdosen um?(siehe Bild im Anhang)
Die kosten nur 9,99€.
Thomas Sebastian hat die Reviewed, hier ist der Facebook link
https://www.facebook.com/groups/9059297 … &ref=notif
Mit einwenig Geschick, läst sich die öffnen, mit tasmota flaschen, und schon ist die Dose aus Iobroker mit dem SONOFF Adapter
oder aus jedem Browser erreichbar.
Einfache geht es schon garnicht.
Wenn Du mehr wissen möchteste, PN.
Gruß Mickbaer
5817_obi2.png
5817_obi1.png -
Ja läuft super, ( weiss nicht was du gemacht hast,)
aber egal es läuft, es kommt jetzt alle an.(siehe Bild im Anhang) `
Cool, super!Ich habe deine Kosmetik in die ESA-Implementation übernommen und damit abgeschlossen. `
Hast Du jetzt ne andere Version als ich oder genau die ?! Wenn noch anders schick bitte nochmal. Weil nächstes update überschreibt ja immer wieder vom GithubWenn die Additionen wie in FHEM hier nicht rein sollen, dann bin ich hier fertig. :roll: `
Was genau meinst Du? Was hat FHEM noch?
Kannst DU das bitte veröffentlichen. `
Ich reiche die Änderungen heute Abend beim Library Entwickler ein. SObald der Sie akzeptiert und die Lib geupdatetet hat mache ich ein Update des Adapters.Ingo F
-
Da musst Du mir Einwenig auf die Sprünge helfen.
Die RAW-Werte haben wir jetzt im IOBROKER,
wäre aber schön, wenn aus Sachen wie:
Aktuelle Leistung in Watt,
Leistung Heute,
Leistung Yesterday,
die ja aus den RAW werten errechnet werden können, auch bereitgestellt werden könnten.
Das hat den Vorteil, nicht jeder braucht sich hier neu Reindenken
und kann die werte einfach zur anzeige, OHNE extra Script, selber erfinden zu müssen,
einfach benutzen.
Wenn Du mir den Rahmen dafür vorbereitetst, und sagst, welches File ich bearbeiten muss, (da reichen meine Kenntnisse noch nicht aus)
dann kann ich das auch noch machen.
Denn noch habe ich alles auf dem Schreibtisch und kann das dann einfacher testen. `
Such mal im Forum. Es gibt mehrere Skripte (ich suche heute abendauch mal und verlinke - es sei denn du bist schneller… ) die genau das tun. Die sind gut, werden aktiv supportet und weiterentwickelt.
Sie nehmen "Raw" Energie-Zählerstände und errechnen Differenzen, Verbräuche und all sowas.
Die Thematik ist ja die das es sooooo viele Quellen gibt wo man "Zählerstände" herbekommen kann. Wenn jede jeder wie er denkt eine verbrauchskalkulation bauen würde ist das unsinnig weil es jeder anders macht und so. Daher ist die Idee das die Adapter die Daten bereitstellen ... und in ioBroker gibt es mit Javascript alles was man braucht.
Und jeder kann sich auf das Konzentieren was er gut kann . also ein Adapter zur Geräteanbindung macht genau das und zwar super Und mit den Daten coole Dinge machen macht dann was anderes
Bzw auf meiner (aktuell zuuu langen) Ideenliste steht ein "Aggregator"-Adapter der sowas genrisch können sollte. Summen, Differenzen oder sonstwas dynamisch errechnen
Ingo
-
Aber sehe ich das richtig, dass ich vom ioBroker aus Steckdosen etc. NICHT steuern kann? `
Ja korrekt. Der Code Teil fehlt noch. Mach mal ein Github issue dafür auf, aber ich kann nichts versprechen wann/ob ich dazu kommt.
Ich denke viele hier haben halt noch Homematic und den CUl Stick da dran mit cuxd Das dann an ioBroker angebunden.
Ich weiss, nicht ideal, aber tut …
-
Also das mit den Obi-Steckdosen ist ja schon mal eine neue Info. Wusste ich gar nicht. Ich habe derzeit 9 Sonoff Steckdosen (mit Tasmota) in Betrieb. Dazu kommen gut 20 FS20 Schalter und Dimmer. Daher tue ich mich mit dem Ersetzen etwas schwer. SmartHome ist selten smart für den Geldbeutel!
Ich geb mein bestes mit GitHub. Bin da aber noch kein Mitglied, wird wohl also erst die Tage passieren.
Ich habe heute "mal eben schnell" einen FHEM Server aufgesetzt und dann ioBroker.FHEM genommen, um die FS20 Geschichten vom ioBroker aus zu steuern. Funktioniert (im Rahmen der Möglichkeiten von FS20) relativ gut. Dennoch wäre es natürlich galanter, wenn man den Zwischenhändler FHEM-Server überspringen könnte. Der Raspberry muss ja nicht unnötig rödeln.
Erst mal Dank & Gruß von
Daniel
-
Hast Du jetzt ne andere Version als ich oder genau die ?! Wenn noch anders schick bitte nochmal. Weil nächstes update überschreibt ja immer wieder vom Github `
An meinem ersten Post von Heute Nachmittag, hing doch eine Datei, MY-ESA3.js dran,das ist der letzte Stand, den Ich den ganzen Tag über getestet habe und das ist auch der,
den du veröffentlichen solltest.
Ich hänge die Datei hier nocheinmal dran.
5817_my-esa3.js -
Wenn die Additionen wie in FHEM hier nicht rein sollen, dann bin ich hier fertig. :roll: `
Was genau meinst Du? Was hat FHEM noch?
Ingo F `
das hier z.B. und noch viel mehr macht FHEM.
Aktuelle Leistung in Watt,
Leistung Heute,
Leistung Yesterday,
die ja aus den RAW werten errechnet werden können,
auch bereit zu stellen.
Das hat den Vorteil, nicht jeder braucht sich hier neu Reindenken
und kann die Werte einfach zur Anzeige, OHNE extra Script, selber erfinden zu müssen,
einfach benutzen.
Wenn Du mir den Rahmen dafür vorbereitetst, und sagst, welches File ich bearbeiten muss, (da reichen meine Kenntnisse noch nicht aus)
dann kann ich das auch noch machen.
Denn noch habe ich alles auf dem Schreibtisch und kann das dann einfacher testen.
Gruß Mickbaer
-
Version geupdatet und eingereicht.
https://github.com/hobbyquaker/cul/pull/16
Ok, wenn FHEM "Nur" solche Rechnungsaktionen macht, dann siehe http://forum.iobroker.net/posting.php?m … 6#pr130626
-