FHEM Unterstützung für neues HomeMatic Produkt HM-ES-TX-WM

Begonnen von octek0815, 26 Januar 2015, 16:12:53

Vorheriges Thema - Nächstes Thema

franky08

Das statisticmodul sieht gut aus, da man den Startzeitpunkt auf z.B. 00:00 Uhr festlegen kann. Ich teste heute erst einmal meine sub.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

#61
Schade, meine sub funktioniert natürlich nicht. Ich hätte berücksichtigen müssen, dass gasCnt ja weiterhin den Wert vom letzten Tag hat und nach dem Rücksetzen auf 0 (vom dummy) der alte Wert vom Vortag wieder in das dummy geschrieben wird.



VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

MarcelK

Ein Notify um 0:00 Uhr, dass die Differenz zwischen gasCnt und vorherigem Tag logged und danach den aktuellen gasCnt für den nächsten Tag merken. Bin noch nicht dazu gekommen, aber sollte eigentlich recht einfach gehen.

franky08

Da bin ich gerade auch drann  8)
Habe "nebenbei" nur noch einiges zu tun.
Statisticmodul geht für Gas nicht.
Zitataktuellen gasCnt für den nächsten Tag merken

Da hadert es noch drann.
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

vbs

Warum geht das statistic-Modul für Gas nicht? Gefällt mir gerade richtig gut das Modul.

Hast du bei Gas nicht auch einfach ein Readings, das kontinuierlich wächst?

franky08

#65
@vbs
Ich lass das Statisticsmodul jetzt mal laufen, die Readings sahen mir irgendwie seltsam für den Gasverbrauch aus.

P.S. Musste das state Format noch auf gasCnt anpassen, mal sehen ob es jetzt vernüftige Readings liefert
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

vbs

Das Modul kennt ja einige Reading-Namen von Haus aus (hard kodiert). Wahrscheinlich musst du dein "gasCnt" ihm erst bekannt machen. Ich habe bei mir alle vordefinierten Readings deaktiviert und dann nur die, die ich haben möchte festgelegt:

ignoreDefaultAssignments 1
deltaReadings energy
minAvgMaxReadings power


Ich denke, für dich wäre das deltaReading interessant. "energy" ist bei mir auch ein Zähler, der immer nur hochläuft.

franky08

Das Modul nimmt die Readings aus STATE, das hab ich jetzt auf gasCnt angepasst, somit bekommt das Modul nur das was ich brauche.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

vbs

Hm, reden wir vom selben Modul?

Laut commandref, wird state nur für die Duration-Sachen genutzt, aber nicht für Delta:
Min|Avg|Max Minimum, average and maximum of instantaneous values:
over a period of day, month and year:
brightness, current, energy_current, humidity, temperature, voltage
over a period of hour, day, month and year:
wind, wind_speed, windSpeed

Tendency over 1h, 2h, 3h und 6h: pressure

Delta between start and end values - over a period of hour, day, month and year:
count, energy, energy_total, power, total, rain, rain_rate, rain_total

Duration (and counter) of the states (on, off, open, closed...) over a period of day, month and year:
lightsensor, lock, motion, Window, window, state (if no other reading is recognized)

franky08

Da hast du Recht, mann sollte nicht 10 Dinge auf einmal machen  :)
Hab es jetzt mal laufen mit  deltaReadings auf gasCnt.
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

So, das Modul scheint die erwünschten Ergebnisse zu liefern. Ein ReadingsVal gibt jetzt folgenden String zurück:
Hour: 0.00 Day: 1.35 Month: 1.35 Year: 1.35 (since: 2015-03-13_12:54:55 )

Fehlt nur noch ein Regex um die einzelnen Werte zurück zu bekommen. In der Art $sh = 0.00 $sD = 1.35 $ sM = 1.35 und $sY = 1.35
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

vbs

Ich hab im Moment sowas hier, um an Avg zu kommen (lässt sich sicherlich mit mittelgroßer Fantasie auch an deinen String anpassen):
#DbLog <SPEC1>:statPowerHourLast:::$val=~s/^Min..([\d.]*).Avg..([\d.]*)/$2/eg

Eingabe sieht bei mir so aus:
Min: 274 Avg: 396 Max: 2250

franky08

Joh, ist klar aber leider brauche ich die Werte einzeln und nicht nur für SVG sondern um sie mit setreading in einzelne dummys zu schreiben. Diese dummys brauche ich für meinen Lcars Floorplan und die Werte müssen in dummys stehen, damit ich sie über meine eigene css in der Schriftart, Schriftgröße und Farbe anpassen kann.
Mal sehen, hab mir gerade mal mein Perl Handbuch rausgesucht. Über split müsste da doch was zu machen sein.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

#73
So, irgendwie komme ich nicht so richtig voran. Folgendes habe ich als sub:
In $gsp steht:   Hour: 0.08 Day: 1.93 Month: 1.93 Year: 1.93 (since: 2015-03-13_12:54:55 )
sub Gas_split



{

my $gsp = ReadingsVal("Gas_Sensor","statGasCnt","0");
my @gsp = split /[:,\s\/]+/, $gsp;

foreach(@gsp) {
return "$_\n";

}

}


Leider wird die Schleife nicht abgearbeitet und als Resultat nur der erste Teil des ganzen Strings ausgegeben:
return :Hour

P.S. das wird jetzt langsam OT vlt. mach ich zu dem Thema einen neuen Thread auf

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

martinp876

foreach(@gsp) {
return "$_\n";

}

cool. beim ersten eintreten in die schleife kommt ein return - aus die maus. return braucht es nur einmal, dann ist schluss.