Neues Modul EMONITOR - EnergieMonitor

Begonnen von Elektrolurch, 06 Dezember 2014, 17:11:34

Vorheriges Thema - Nächstes Thema

santalaus

#90
Hallo Elektrolurch,

schickes Modul, irgendwie hab ich aber kleine Verständnissprobleme beim Einrichten.
Aus versehen hatte ich auch die MessureDevices mit types definiert. Dann hab ich die PSA301 aus Types entfernt. Leider kommen aber keine Werte.
Muss ich dort von Hand trotzdem power-on power-off werte eintragen oder die Messung machen?
Da bei mir Geräte mit wechselndem Stromverbrauch dabei sind, wäre es schon nett die consumtion zu nutzen.

Beim messure muss ich dann PSA301 als Verbraucher + MessGerät eintragen?
Zudem habe ich ubiquiti mpower devices die Subdevices anlegen mit power angabe funktioniert das genauso?

Aktuell haben die PSA301 keine Einträge sondern nur die CUL_HM Geräte, die power-on/off definiert haben.

Nico

Elektrolurch

Hallo,

es gibt zwei Messverfahren:
1. Die Einheit schaltet ein und aus und über die Einschaltzeit und dem hinterlegten Attribut power-on wird der Verbrauch bestimmt.
2. Die Einheit liefert Verbrauchswerte. Dann bleibt der Schaltzustand einfach unberücksichtigt und die periodisch per Event eingehenden Verbrauchswerte werden vom EM aufsummiert. Zu solchen Einheiten zählt bspw. die DECT200 von AVM. Im Modul ist lediglich hinterlegt, mit welchem reading die Verbrauchswerte per notify von der Messeinheit generiert werden. power-on / power-off müsssen dann natürlich nicht definiert werden, es sind ja Verbraucher, die wechselnden Verbrauch haben, wie z.B. eine Waschmaschine.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

santalaus

#92
Danke für die Antwort.
Es lief schon richtig nur leider waren die Werte zu klein, weshalb sich nichts tat.

Also auch bei PCA301 muss ein UserReading eingefügt werden, da die Consumption in kWh angegeben wird.
Edit:
Könnte es sein, das das Modul u.U. falsch rechnet?
Ich habe bei HM Dimmern Power-on/off definiert. Wenn ich die mit set on-for timer anspreche wird aber der Verbrauch falsch berechet.
ggf weil der das on nicht findet?
Hier mal ein Logauszug:
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly: 4.92517069160938
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-daily: 27.2
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-weekly: 81.6
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-monthly: 81.6
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-yearly: 81.6
2015-04-16_10:58:57 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly-last: 4.9
2015-04-16_11:34:32 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX set_on-for-timer 65
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX deviceMsg: on (to ccu)
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX dim: stop:on
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX level: 100
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX overheat: off
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX overload: off
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX pct: 100
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX reduced: off
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX chn:on phys:0
2015-04-16_11:34:33 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX timedOn: running
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX deviceMsg: off (to ccu)
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX dim: stop:off
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX level: 0
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX overheat: off
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX overload: off
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX pct: 0
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX phyLevel: 0
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX reduced: off
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX chn:on  phys:0
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX off
2015-04-16_11:35:40 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX timedOn: off
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly: 9.56985548701551
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-daily: 36.8
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-weekly: 91.2
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-monthly: 91.2
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-yearly: 91.2
2015-04-16_11:58:58 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly-last: 9.6
2015-04-16_12:59:00 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly: 1.00072774668535
2015-04-16_12:59:01 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-daily: 37.8
2015-04-16_12:59:01 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-weekly: 92.2
2015-04-16_12:59:01 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-monthly: 92.2
2015-04-16_12:59:01 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-yearly: 92.2
2015-04-16_12:59:01 CUL_HM_HM_LC_Dim1TPBU_FM_XXXXXX power-hourly-last: 1.0


Nico

drdownload

Ich würde ja gerne meine Netzwerkgeräte über EM überwachen, das mache ich über PRESENCE, wie bringe ich dem Modul bei present und absent auszuwerten?

Die zweite Frage die ich hätte wären meine Home-Easy devices, die haben überhaupt neben on|off auch noch "level 0" bis "level 15"

Geht das ohne readingsproxys und dummies? Ich bin jetzt nicht so der Freund von unendlich vielen Dummies und Reading Proxys
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

Elektrolurch

Hallo,

Zitat:
ich dem Modul bei present und absent auszuwerten?

Ich würde mit eventMap das auf ein/aus mappen....
...und die Attribute power-on und power-off bei den Geräten hinterlegen.

Und dann beim EMonitor mit
types FS20,dummy,PRESENCE

den auszuwertenden Typ bekannt machen.

Zu den Level0...level15 fällt mir jetzt allerdings auch nichts ein.

Das wären so eine Art dim-Werte. Die unterstüze ich derzeit aber noch nicht, da ziemlich kompliziert.... (wegen Rampen, die auch ohne fhem ablaufen können usw.).

Elektrolurch
configDB und Windows befreite Zone!

drdownload

#95
Hi, den Gedanken mit eventmap hatte ich auch schon, hab dann allerdings die Datei gepatched. Nur beim Patchen für das Level X hänge ich noch ein wenig, je nach dem wie der Ursprungs-State der device ist funktioniert es einmal und mal nicht, muss wohl doch den Code genauer lesen und nicht einfach suchen und ersetzen ;)

edit: kann es sein, dass man keine Anzeige hat, wie hoch gerade die Leistung ist die durch das EMONITOR modul getrackt wird sprich die Momentanleistung und nicht der Verbrauch?

edit2: wenn ich es mir billig machen will könnte ich natürlich ein eventmap für die leveldevices machen: "level 0:dim0 level 1:dim7 level 2:dim14 [...] level 15:dim100"

edit3: nach ewig rumprobieren muss ich wohl konstatieren, dass ich keine ahnung habe wie perl regex auswertet....

edit4: scheint so als ob ich meine zeit verschwendet habe, auch in der originalversion kommt die zeitmessung bei states die es nicht kennt komplett durcheinander. bzw. 3x hintereinander off oder  dgl schicken, dann ein level 3 und dann wieder on oder off und die seit rennt vom ersten status weg. (das sollte nicht als kritik gemeint sein, ich hätte die testcases zuerst an deiner version durschspielen sollen)
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

SlrG

Hallo, ich habe seit einigen Wochen mehrere Homematic Schaltaktoren mit Leistungsmessung in Betrieb. Zusätzlich habe ich den EMonitor eingerichtet. Leider zeigt mir dieser andere Werte für den Jahresverbrauch (Gesamtverbrauch) der Aktoren, als diese in ihren eigenen Readings ausweisen.

Bsp:
Sensor 1:
eState E: 4495.2 P: 2.92 I: 64 U: 226.4 f: 49.99
energy: 4495.2
energyOffset: 366.2

power-daily: 36.7
power-daily-last: 0
power-hourly: 0
power-hourly-last: 0.0
power-monthly: 486.9
power-monthly-last: 0
power-weekly: 1036.3
power-weekly-last: 0
power-yearly: 4323.2

Sensor 2:
eState E: 2621 P: 0.08 I: 0 U: 226.7 f: 49.99
energy: 2621
energyOffset 0

power-daily: 0.7
power-daily-last: 0
power-hourly: 0
power-hourly-last: 0.0
power-monthly: 4.4
power-monthly-last: 0
power-weekly: 1067.29999999999
power-weekly-last: 0
power-yearly: 1572.29999999999

Was mich stutzig macht, sind dass die Stunden-Werte und die Last-Werte immer 0 sind. Außerdem halt falsche Werte im Gesamtverbrauch. Woran kann das liegen? Habe ich bei der Installation etwas falsch gemacht? Was kann ich tun, um das zu reparieren?

Liebe Grüße und vielen Dank für das tolle Modul.

SlrG

Elektrolurch

Hallo,

und das ist auch nicht plausibel:
power-monthly: 4.4
power-monthly-last: 0
power-weekly: 1067.29999999999
power-weekly-last: 0

Im Monat müsste ja mindestens das auch drin stehen, was in weekly steht.

Frage:
Ist Dir das System mal abgestürzt oder hast Du es öfters neu starten müssen?
Eigentlich gibt es da auch ein Attribut (autosave?), welches dafür sorft, dass bei der stündlichen Aktualisierung der Werte anschliessend die Werte per "save" in das statefile  geschrieben werden.

Die Differenz zwischen weekly und monthly lässt darauf schliessen, dass da was verloren gegangen sein muss.

Wenn alles ok geht, müssen die Werte immer so sein:

yearly > monthy > weekly > daily > hourly

Am besten, Du setzt mal die Werte alle zurück und beobachtest das mal.

Ich habe das jetzt seit mehreren Monaten mit FS20 und DECT200 in Benutzung und die Werte sehen alle ok aus.

Bei der Installation kann man eigentlich nichts falsch machen... :-)

Gruß

Elektrolurch

configDB und Windows befreite Zone!

SlrG

Hmm... Abgestürzt nicht, aber weil ich noch ziemlich am Basteln bin, habe ich öfter mal neugestartet. Daran könnte es also liegen.
Gibt es irgend eine Möglichkeit das Speichern vor einem "shutdown restart" automatisch oder manuell zu triggern?

Außerdem könnte man ein weiteres Reading total hinzufügen, das den Gesamtverbrauch anzeigt? Year/last Year funktioniert ja nur für zwei Jahre, oder? Bei allen Geräten, wie die Homematic Schaltaktoren, könnte man beim Reset dann immer energy + energy-offset da rein packen und hätte so immer den bisherigen Gesamtverbrauch?

Elektrolurch

Hallo,

wie schon geschrieben: das Attribut autosave (?) des EMonitors sollte nach der jweweiligen Berechnung je Stunde ein "save" an fhem senden.

Der Neustart löst ein globales Event aus, ob dies ein shutdown auch tut, weiß ich nicht. Ansonsten kann man ja auch ein at definiereren, welches in bestimmten Abständen ein "save" macht.

Im EMonitor ist der Verbrauch je Raum / Gruppe und der Gesamtverbrauch entsprechend der bekannten Zeiteinheiten in readings hinterlegt.

'Gruß

Elektrolurch
configDB und Windows befreite Zone!

SlrG

Ah! Okay. Jetzt habe ich es verstanden. :) Dann werde ich das mal versuchen umzusetzen. Vielen Dank für Deine Hilfe.

SlrG

Sieht soweit gut aus. Jetzt ist mir aber noch ein anderes Problem aufgefallen. Im Log sind Einträge:

2015.05.07 16:59:55 2: EMONITOR_Statistik: CUL_HM_HM_ES_PMSw1_Pl_2EAADB is type measuring, but no reading energy found!
Use "attr EM use-power-event 1"


Ich habe daraufhin use-power-event 1 gesetzt und die Meldungen scheinen weg zu sein. Sind durch die Einstellung irgendwelche besonderen Effekte zu erwarten?

Letztlich bleiben dann noch:

2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr rd energy energy 5692.4 !
2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr rd energy energy 5839.5!


Was will mir der EMONITOR damit sagen?

Elektrolurch

Hi :-)

Zitat:
2015.05.07 16:59:55 2: EMONITOR_Statistik: CUL_HM_HM_ES_PMSw1_Pl_2EAADB is type measuring, but no reading energy found!
Use "attr EM use-power-event 1"

Ich habe daraufhin use-power-event 1 gesetzt und die Meldungen scheinen weg zu sein. Sind durch die Einstellung irgendwelche besonderen Effekte zu erwarten?

Letztlich bleiben dann noch:
Code: [Auswählen]
2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr rd energy energy 5692.4 !
2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr rd energy energy 5839.5!

Was will mir der EMONITOR damit sagen2015.05.07 16:59:55 2: EMONITOR_Statistik: CUL_HM_HM_ES_PMSw1_Pl_2EAADB is type measuring, but no reading energy found!
Use "attr EM use-power-event 1"

Ich habe daraufhin use-power-event 1 gesetzt und die Meldungen scheinen weg zu sein. Sind durch die Einstellung irgendwelche besonderen Effekte zu erwarten?


Die Frage stellt sich jetzt: Ich kenne das device nicht. Kann es den Verbrauch messen oder nicht?
Offensichtlich ist es als device mit der Möglichkeit zum Messen eingetragen, hat aber das notwendige reading "energy" nicht, was der EM auslesen möchte.
Wenn Du das Attribut setzt, dann muss aber auch das Attribut power-on mit einem Wert befüll sein.
Genau das sagt der EM... :-)
Zitat:
Letztlich bleiben dann noch:
Code: [Auswählen]
2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2DBC3E_Pwr rd energy energy 5692.4 !
2015.05.07 19:28:56 3: EMONITOR_InitSingle: found new CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr with type CUL_HM
2015.05.07 19:28:56 2: EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2EAADB_Pwr rd energy energy 5839.5!

Was will mir der EMONITOR damit sagen?


Na, der EM wurde neu gestartet, aber die Verbrauchsmessgeräte fangen nicht mit 0 an. Nur ein freundlicher Tipp vom EM.

Wenn Du alle Werte im EMonitor auf 0 zurück setzt, wäre es natürlich auch der Ubersicht halber sinnvoll, die Verbrauchszähler (die eingebauten) zurückzusetzen.

Elektrolurch
configDB und Windows befreite Zone!

SlrG

#103
Das device CUL_HM_HM_ES_PMSw1_Pl_2EAADB ist ein Homematic Schaltaktor mit Leistungsmessung. Der channel pwr wird auch korrekt vom EMonitor erkannt und gezählt. Trotzdem scheint er beim device selbst auch ein energy reading zu erwarten, was es aber nicht hat. Für den anderen Schaltaktor vom gleichen Typ, kommt logischerweise die gleiche Meldung.

EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2EAADB rd energy energy 0
EMONITOR_InitSingle: Warning device CUL_HM_HM_ES_PMSw1_Pl_2DBC3E rd energy energy 0


Seit ich use-power-event 1 gesetzt habe, werden nun auch die hour Werte befüllt. Das war vorher nicht der Fall. Mag aber auch daran liegen, dass energy nur stündlich gesynct wird.

Ich verstehe den Hinweis, dass auch die Zähler der Aktoren auf 0 gesetzt werden sollten. Macht Sinn. Aber noch besser würde ich es finden, wenn es noch einen Wert Gesamtverbrauch(Total) gäbe, welcher mit der Summe aus energy und energyOffset befüllt wird, welches die Homematic Geräte liefern.

Mir ist natürlich klar, dass das für Dich schwierig zu debuggen ist, da Du selbst keine Homematic Geräte hast. Ich bin sehr dankbar, dass Du trotzdem versuchst zu helfen.

HolyMoly

Hallo Elektrolurch,

EMonitor hat Probleme mit meinen Hues

2015.05.08 04:59:52 3: EMONITOR_Statistik: tmpdevices abgearbeitet
2015.05.08 04:59:52 2: EMONITOR_Statistik: Error Wohnzimmer.StehLampe has wrong state unreachable
2015.05.08 04:59:51 2: EMONITOR_Statistik: Error Stehlampe has wrong state unreachable
2015.05.08 04:59:48 2: EMONITOR_Statistik: Error Nachtkastenlampe has wrong state unreachable
2015.05.08 04:59:46 3: EMONITOR_Statistiks (end): Calc next call - found 5 devices 40 59 4 8 4 115 5

obwohl ich deinen Tip zu Presence befolge:

die Hues haben ein Attribut eventMap unreachable:off
Monitor ein Attribut types HUEDevice

Stimmt der eventMap so?

FHEM auf Raspi2 & Radxa Rock