FHEM Forum

FHEM - Hausautomations-Systeme => SlowRF => Thema gestartet von: heinemannj66 am 02 November 2013, 08:51:54

Titel: Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: heinemannj66 am 02 November 2013, 08:51:54
Die einzelnen Plots von DECT_16 und DECT_17 sind korrekt.
Der DECT_Gesamt Plot summiert jedoch nicht auf.

Gibt es da eine Lösung?

2013-11-02_08:43:16 FBDECT_17 power: 30.61 W
2013-11-02_08:43:29 FBDECT_16 power: 93.05 W
2013-11-02_08:46:16 FBDECT_17 power: 30.75 W
2013-11-02_08:46:29 FBDECT_16 power: 91.91 W
2013-11-02_08:48:16 FBDECT_17 power: 0.00 W
2013-11-02_08:49:16 FBDECT_17 power: 0.00 W
2013-11-02_08:49:29 FBDECT_16 power: 91.26 W


define FileLog_FBDECT_16 FileLog ./log/FBDECT_16-%Y.log FBDECT_16:power\x3a.*
attr FileLog_FBDECT_16 logtype power4:Power,text
attr FileLog_FBDECT_16 room hidden

define SVG_FBDECT_16 SVG FileLog_FBDECT_16:power4:CURRENT
attr SVG_FBDECT_16 label "FBDECT_16 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_FBDECT_16 room Plots

define FileLog_FBDECT_17 FileLog ./log/FBDECT_17-%Y.log FBDECT_17:power\x3a.*
attr FileLog_FBDECT_17 logtype power4:Power,text
attr FileLog_FBDECT_17 room hidden

define SVG_FBDECT_17 SVG FileLog_FBDECT_17:power4:CURRENT
attr SVG_FBDECT_17 label "FBDECT_17 Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_FBDECT_17 room Plots

define FileLog_FBDECT_Gesamt FileLog ./log/FBDECT_Gesamt-%Y.log FBDECT_16:power\x3a.*|FBDECT_17:power\x3a.*
attr FileLog_FBDECT_Gesamt logtype power4:Power,text
attr FileLog_FBDECT_Gesamt room hidden

define SVG_FBDECT_Gesamt SVG FileLog_FBDECT_Gesamt:power4:CURRENT
attr SVG_FBDECT_Gesamt label "FBDECT_Gesamt Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_FBDECT_Gesamt room Plots
Titel: Antw:Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: rudolfkoenig am 02 November 2013, 09:29:05
> Der DECT_Gesamt Plot summiert jedoch nicht auf.

Darueber bin ich froh, sonst muesste ich was fixen.

> Gibt es da eine Lösung?

Mir ist kein Kochrezept bekannt.
Mit notify/trigger/perl sollte es mit ein wenig Arbeit machbar sein.
Titel: Antw:Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: Puschel74 am 02 November 2013, 09:39:33
Hallo,

damit
Zitatdefine FileLog_FBDECT_Gesamt FileLog ./log/FBDECT_Gesamt-%Y.log FBDECT_16:power\x3a.*|FBDECT_17:power\x3a.*
schreibst du dir die beiden Werte ja nur getrennt in das FBDECT_Gesamt-2013.log
ZitatFBDECT_16:power\x3a.*|FBDECT_17:power\x3a.*
| bedeutet ODER
d.h. sobald FBDECT_16:power ODER FBDECT_17:power einen Wert liefert wandert der
a) in das jeweilige eigene Logfile UND
b) in das Gesamt-Logfile - aber getrennt und nicht summiert.
Wie soll es auch - die Werte werden ja nicht automatisch zusammen gezählt.
Das musst du schon selbst machen und das Ergebniss in das Gesamt-Logfile schreiben.

Wie Rudi schon geschrieben hat würde sich dafür ein notify anbieten.

Grüße
Titel: Antw:Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: heinemannj66 am 23 November 2013, 08:58:52
Ich habe mal einen virtuellen Stromzaehler definiert:

define Stromzaehler dummy
attr Stromzaehler alias Stromzähler
attr Stromzaehler comment Virtueller Stromzähler
attr Stromzaehler devStateIcon .*:toggle
attr Stromzaehler fp_0_Uebersicht 480,685,0
attr Stromzaehler group Verbrauch
attr Stromzaehler icon measure_power
attr Stromzaehler room Stromzähler
attr Stromzaehler userReadings 0_WerkstattUSVServer { Get_USV_Status("power") }, 1_WohnenSteckdoseFernsehschrank { ReadingsVal("FBDECT_16","power",0);; }, 0_HeizungsraumSteckdoseWarmwasserzirkulationspumpe { ReadingsVal("FBDECT_17","power",0);; }, 3_BueroSteckdoseSchreibtisch { ReadingsVal("FBDECT_18","power",0);; }, 3_BueroSteckdoseDrucker { ReadingsVal("FBDECT_19","power",0);; }, 3_BueroSteckdoseStereoanlage { ReadingsVal("FBDECT_20","power",0);; }, 2_SchlafenSteckdoseFernseher { ReadingsVal("FBDECT_21","power",0);; }, Gesamt { ReadingsVal("Stromzaehler","0_WerkstattUSVServer",0)+("Stromzaehler","1_WohnenSteckdoseFernsehschrank",0);; }

define n_StromzaehlerStatus notify (5min_check|global:INITIALIZED) {\
fhem "set Stromzaehler on";;\
}
attr n_StromzaehlerStatus room System


Im userReading Gesamt möchte ich die Summe der anderen userReadings abbilden:

Gesamt { ReadingsVal("Stromzaehler","0_WerkstattUSVServer",0)+("Stromzaehler","1_WohnenSteckdoseFernsehschrank",0);; }

Klappt aber nicht, da die Maßeinheit W Inhalt des ReadingsVal Outputs ist:

Readings
0_HeizungsraumSteckdoseWarmwasserzirkulationspumpe 0.00 W
0_WerkstattUSVServer 122.38 W
1_WohnenSteckdoseFernsehschrank 4.22 W
Gesamt 122.38

Gibt es in FHEM intergrierte Maßeinheit Funktionen/Features oder muß ich das über Perl selbst extrahieren?
Titel: Antw:Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: Geparden am 24 November 2013, 18:24:37
ich habe das wie folgt realisiert:

Internals:
   NAME       Stromzaehler
   NR         149
   STATE      off
   TYPE       dummy
   Readings:
     2013-11-24 18:19:21   GESAMT          135.75
     2013-11-24 18:19:21   P1              30.61
     2013-11-24 18:19:21   P2              36.12
     2013-11-24 18:19:21   P3              69.02
     2013-11-24 18:19:21   state           off
Attributes:
   userReadings P1 { 1*ReadingsVal("FBDECT_EDV","power",0); }, P2 { 1*ReadingsVal("FBDECT_WZ_EDV","power",0); }, P3 { 1*ReadingsVal("FBDECT_WZ_Hifi","power",0); },GESAMT { ReadingsVal("Stromzaehler","P1",0)+ReadingsVal("Stromzaehler","P2",0)+ReadingsVal("Stromzaehler","P3",0); }


Multipliziere die Readings einfach mit 1, Perl macht dann einen numerischen Wert daraus
Titel: Antw:Summe des Stromverbrauchs über alle DECT Devices
Beitrag von: rudolfkoenig am 24 November 2013, 22:52:57
Etwas unkonventionell, ich meine die Funktion int() ist fuer sowas eigentlich vorgesehen.