NEWS
[Aufruf] G-Homa Adapter testen
-
Ich scheue mich ehrlich gesagt, Auswertungsfunktionen in Adapter zu integrieren. Streng genommen sollten Hardware-Adapter nur der Ansteuerung von Geräten dienen. Sonst stehen wir irgendwann an dem Punkt, dass jeder Adapter das gleiche berechnet, obwohl es zentral besser aufgehoben wäre.
Anscheinend kann das G-Homa Protokoll auch selbst Energieverbrauch übermitteln, die Steckdose scheint es aber nicht zu tun:
https://github.com/AlCalzone/node-g-hom … er.ts#L133
Die Auswertung wäre eher was für den History- oder einen (nicht existierenden) Statistik-Adapter. Hab dort mal ein Issue eröffnet: https://github.com/ioBroker/ioBroker.history/issues/25
Vorübergehend kannst du das mit einem eigenen Skript tun, das bei jeder Aktualisierung des States mit der Trapezregel die verbrauchte Energie seit dem vorherigen Wert berechnet:
Verbrauch += 0,5 * (neuer Wert + alter Wert) * (timestamp_jetzt - timestamp_vorher)
-
Danke… Per Skript würde mir ja auch erstmal reichen
Wäre das so machbar oder wäre das totaler Quatsch?
on({id:"g-homa.0.XXXXXX.power", change:"ne"}, function(obj) { var NewValue = obj.state.val; var OldValue = obj.oldState.val; var NewTime = obj.state.lc; var OldTime = obj.oldState.lc; var Verbrauch = getState("g-homa.0.XXXXXX.energie").val; Verbrauch += 0.5 * (NewValue + OldValue) * (NewTime - OldTime); setState("g-homa.0.XXXXXX.energie", Verbrauch); setState("g-homa.0.XXXXXX.oldTime", NewTime); setState("g-homa.0.XXXXXX.oldVal", NewValue); });
-
Sieht gut aus, aber:
-
oldTime und oldVal speichern macht IMO keinen Sinn.
-
Statt lc (last change, bezieht sich auf noch älteren Wert) solltest du die ts-Eigenschaft (timestamp, bezieht sich auf Schreiben des Wertes) verwenden.
-
change sollte "any" sein, dann wird auch bei gleichbleibender Leistung weitergerechnet.
-
-
- oldTime und oldVal speichern macht IMO keinen Sinn. `
jo sorry war noch ein Überbleibsel
@AlCalzone:- Statt lc (last change, bezieht sich auf noch älteren Wert) solltest du die ts-Eigenschaft (timestamp, bezieht sich auf Schreiben des Wertes) verwenden. `
wurde geändert
@AlCalzone:
- change sollte "any" sein, dann wird auch bei gleichbleibender Leistung weitergerechnet. `
wurde geändert
Hier mal das neue Skript:
var instanz = 'javascript.0' + '.'; var pfad = 'Strom.'; var idGHomaPower1 = 'g-homa.0.XXXXXX.power', idGHomaEnergie1 = pfad + 'XXXXXX.ENERGY_COUNTER'; createState(idGHomaEnergie1, 0, {name: 'Energie Counter XXXXXX', type: 'number', unit:'Wh'}); on({id:idGHomaPower1, change:'any'}, function(obj) { var Verbrauch = getState(idGHomaEnergie1).val; Verbrauch += 0.5 * (obj.state.val + obj.oldState.val) * (obj.state.ts - obj.oldState.ts); setState(idGHomaEnergie1, Verbrauch); });
Danke Dir. Der Verbrauch sind dann Wh oder?
-
Fast… Watt*Millisekunden, da der Timestamp Millisekunden sind. Teile den Wert durch 3600000, dann bekommst du Wh.
-
Funktioniert. Falls es auch jemand verwenden möchte, hier das endgültige Skript:
! ````
var instanz = 'javascript.0.';
var pfad = instanz + 'Strom.';
! var idGHomaPower1 = 'g-homa.0.XXXXXX.power',
idGHomaEnergie1 = pfad + 'XXXXXX.ENERGY_COUNTER'';
! createState(idGHomaEnergie1, 0, {name: 'Energie Counter XXXXXX', type: 'number', unit:'Wh'});
! on({id:idGHomaPower1, change:'any'}, function(obj) {
var Verbrauch = getState(idGHomaEnergie1).val;
Verbrauch += (0.5 * (obj.state.val + obj.oldState.val) * (obj.state.ts - obj.oldState.ts)) / 3600000;
setState(idGHomaEnergie1, Verbrauch);
});Danke für die Unterstützung @AlCalzone… vg
-
Ich habe für das Objekt Power die SQL-History aktiviert. Soweit so gut, nur der Log wird dadurch extrem belastet. Ich habe gelesen, dass die Ursache im Adapter liegen kann. Kannst Du bitte mal schauen/prüfen? viewtopic.php?t=8903
Diese Meldungen für meine 4 Steckdosen mit Verbrauchsanzeige werden so alle paar Sekunden in die LOG geschrieben…
sql.0 2018-06-16 21:58:34.589 info enabled logging of g-homa.0.XXXXXX.power
Danke & vg
Falk
-
Schaue ich mir an, danke für den Report
@schittl: Bitte mal von Github installieren, Instanz neu starten und testen, ob die Meldungen noch auftauchen.
-
@schittl: Bitte mal von Github installieren, Instanz neu starten und testen, ob die Meldungen noch auftauchen. `
Finde da nur Version 0.3.0, welche ich schon installiert habe oder wurde keine neue Version erstellt? -
Habe die Versionsnummer nicht erhöht, das mach ich dann beim Release auf npm wenn es funktioniert.
-
Ok probiere ich heute abend aus.
$ ./iobroker url "https://github.com/AlCalzone/ioBroker.g-homa/tarball/master" g-homa
Über iobroker.pro bin ich mir nicht sicher ob er korrekt aktualisiert wird. Ich werde hier berichten.
-
Den Knopf in der Adapterliste kennst du? Führt zu Dialog mit Dropdown, wo du mit 1-2 Klicks g-homa von Github installieren kannst.
Oder meintest du das?
-
Ja den kenne ich.
Habe ich über iobroker ausgeführt wobei ich mir dabei nicht sicher bin, ob das zum Erfolg führte, da die Meldungen immer noch erscheinen. Ich teste das heute abend nochmal -
Habe ich über iobroker ausgeführt wobei ich mir dabei nicht sicher bin, ob das zum Erfolg führte, da die Meldungen immer noch erscheinen. Ich teste das heute abend nochmal `
Upload und Instanzneustart nach der Installation gemacht? Kann natürlich auch sein, dass ich noch was übersehen hab. -
Upload und Instanzneustart nach der Installation gemacht? Kann natürlich auch sein, dass ich noch was übersehen hab. ` Sieht gut aus… Danke
-
Hallo,
Habe mir gestern auch eine Homa-Dose mit Verbrauchsmessung zugelegt. Woher bekomme ich den aktuellen Verbrauch. Adapter funktioniert und Dose lässt sich über iobroker schalten. Nur der Datenpunkt für den Verbrauch wird nicht angezeigt. Bei meiner TP-Link habe ich ein ähnliches Problem. Da wird zwat der Datenpunkt angezeigt - ist aber immer 0.
Bin langsam am verzweifeln.
LG Rainer
-
Nur der Datenpunkt für den Verbrauch wird nicht angezeigt. `
Bitte mal den Adapter auf Loglevel "debug" stellen (Instanzen-Liste/Expertenmodus) und den Log des Adapters hier posten. Im Optimalfall hast du einen Verbraucher an der Dose hängen.
-
Hallo AlCalzone,
mache ich heute Abend, wenn ich wieder daheim bin.
Liebe Grüße!
Rainer
-
Hallo AlCalzone,
anbei die Logs. Vielleicht ist da ja etwas dabei.
LG Rainer
! undefined2018-06-20 18:19:03.843 - info: host.raspberrypi object change system.adapter.g-homa.0
! 2018-06-20 18:19:03.850 - info: host.raspberrypi stopInstance system.adapter.g-homa.0
! 2018-06-20 18:19:03.851 - info: host.raspberrypi stopInstance system.adapter.g-homa.0 killing pid 6635
! 2018-06-20 18:19:03.873 - info: g-homa.0 terminating
! 2018-06-20 18:19:03.912 - info: host.raspberrypi instance system.adapter.g-homa.0 terminated with code 0 (OK)
! 2018-06-20 18:19:06.960 - info: host.raspberrypi object change system.adapter.g-homa.0
! 2018-06-20 18:19:06.992 - info: host.raspberrypi instance system.adapter.g-homa.0 started with pid 6691
! 2018-06-20 18:19:08.378 - debug: g-homa.0 objectDB connected
! 2018-06-20 18:19:08.450 - debug: g-homa.0 statesDB connected
! 2018-06-20 18:19:08.506 - info: g-homa.0 starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.g-homa, node: v6.14.2
! 2018-06-20 18:19:08.577 - info: g-homa.0 enumerating known plugs…
! 2018-06-20 18:19:08.647 - info: g-homa.0 found plug with id 4fb956 (online)
! 2018-06-20 18:19:08.649 - info: g-homa.0 starting server...
! 2018-06-20 18:19:08.672 - info: g-homa.0 server started on port 50000
! 2018-06-20 18:19:08.683 - info: g-homa.0 searching plugs
! 2018-06-20 18:19:43.100 - info: host.raspberrypi object change system.adapter.g-homa.0
! 2018-06-20 18:19:43.102 - info: host.raspberrypi stopInstance system.adapter.g-homa.0
! 2018-06-20 18:19:43.103 - info: host.raspberrypi stopInstance system.adapter.g-homa.0 killing pid 6691
! 2018-06-20 18:19:43.124 - info: g-homa.0 terminating
! 2018-06-20 18:19:43.171 - info: host.raspberrypi instance system.adapter.g-homa.0 terminated with code 0 (OK)
! 2018-06-20 18:19:45.642 - info: host.raspberrypi instance system.adapter.g-homa.0 started with pid 6718
! 2018-06-20 18:19:46.968 - debug: g-homa.0 objectDB connected
! 2018-06-20 18:19:47.032 - debug: g-homa.0 statesDB connected
! 2018-06-20 18:19:47.150 - info: g-homa.0 starting. Version 0.3.1 in /opt/iobroker/node_modules/iobroker.g-homa, node: v6.14.2
! 2018-06-20 18:19:47.255 - info: g-homa.0 enumerating known plugs...
! 2018-06-20 18:19:47.336 - info: g-homa.0 found plug with id 4fb956 (online)
! 2018-06-20 18:19:47.338 - info: g-homa.0 starting server...
! 2018-06-20 18:19:47.360 - info: g-homa.0 server started on port 50000
! 2018-06-20 18:19:47.372 - info: g-homa.0 searching plugs -
Hmm ich dachte, ich hätte mehr Logs eingebaut. Da muss ich nochmal ran. Melde mich, wenn du nochmal testen darfst.