Summe des Stromverbrauchs über alle DECT Devices

Begonnen von heinemannj66, 02 November 2013, 08:51:54

Vorheriges Thema - Nächstes Thema

heinemannj66

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

rudolfkoenig

> 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.

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

heinemannj66

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?

Geparden

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

rudolfkoenig

Etwas unkonventionell, ich meine die Funktion int() ist fuer sowas eigentlich vorgesehen.