Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt

Begonnen von John, 08 April 2013, 22:11:55

Vorheriges Thema - Nächstes Thema

bluesky

Hallo John

Vielen Dank für Deine ausführliche Erklärung. Ich werde jetzt versuchen diese zu verstehen. Bis dahin werde ich das alte Modul einsetzen.

Gruss bluesky
Raspberry Pi, CUL_HM, HM-LC-SW4-SM, HM-LC-SW1-FM, WEBIO_12DIGITAL,

Georg312

Hallo John,

ich habe HourCounter und 99_UtilsHourCounter erfolgreich mit meinem Gaszähler zum Laufen bekommen. Dein Modul hat wirklich Potential, das es bei FHEM so gebündelt bisher nicht gibt!

Meine Erweiterungsvorschläge:

- warum integrierst Du 99_UtilsHourCounter nicht einfach in HourCounter? Die Funktionalität hängt eigentlich recht eng zusammen.

- Ich würde die gezählten Impulse gerne direkt in ihre physikalische Einheit umrechnen. Hierfür wäre ein Faktor notwendig, der direkt mit dem Impuls multipliziert wird.

- Interessant wäre noch das Reading "Leistung" als Kehrwert der Pausenzeit und wiederum ein Faktor zur Anpassung. Dieser würde dann die momentane Leistung (natürlich nur gemittelt über die letzte Pausenzeit) angeben:
   Leistung = Faktor * 1 / Pausenzeit -> je kürzer die Pausenzeit, je höher die Leistung.
   

Gruß
Georg

John

Hallo Georg,
besten Dank für deine Rückmeldung.

Zitat- warum integrierst Du 99_UtilsHourCounter nicht einfach in HourCounter? Die Funktionalität hängt eigentlich recht eng zusammen.
Es gibt unglaublich viele Möglichkeiten mit den Basiswerten von HourCounter weiteres zu berechnen.
Ich will das Grundmodul nicht überfrachten.

Zitat- Ich würde die gezählten Impulse gerne direkt in ihre physikalische Einheit umrechnen. Hierfür wäre ein Faktor notwendig, der direkt mit dem Impuls multipliziert wird.
UserReadings ist dein Freund. Damit kann man schon einen Menge abdecken.


Zitat- Interessant wäre noch das Reading "Leistung" als Kehrwert der Pausenzeit und wiederum ein Faktor zur Anpassung. Dieser würde dann die momentane Leistung (natürlich nur gemittelt über die letzte Pausenzeit) angeben:
   Leistung = Faktor * 1 / Pausenzeit -> je kürzer die Pausenzeit, je höher die Leistung.

Das wäre eben in klassischer Fall, wenn es um eigene Erweiterungen geht.
Der passende Ort hierfür wäre in 99_UtilsHourcounter.pm "sub appHC_OnUpdate($$$)"
Hier wird mit appUtilization bereits die Auslastung berechnet. Den kannst du als Vorlage für dein neues Reading verwenden.

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Bartimaus

Zitat von: pappn am 28 August 2014, 17:16:43
Gerne. Für die Tabellen habe ich Readingsgroup verwendet.
Auszug aus der Config.
define Brenneruebersicht_1 readingsGroup <>,<%secur_smoke_detector> \
BrennerTest:<Starts> \
BrennerTest:<Heute>,countsPerDay,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appCountsPerDay \
BrennerTest:<Aktuelle&nbsp;;Woche>,appCountsPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appCountsPerWeek \
BrennerTest:<Aktueller&nbsp;;Monat>,appCountsPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appCountsPerMonth \
BrennerTest:<Aktuelles&nbsp;;Jahr>,appCountsPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appCountsPerYear \
BrennerTest:<Gesamtstarts>,countsOverall
attr Brenneruebersicht_1 alias 02 Brennerstarts neu
attr Brenneruebersicht_1 group 01 Brenner/Pumpen
attr Brenneruebersicht_1 mapping &nbsp;;
attr Brenneruebersicht_1 room 00 Kurzstatus
attr Brenneruebersicht_1 valueStyle {'style="color:green;;;;text-align:right"'}

define Brenneruebersicht_2 readingsGroup <>,<%time_clock> \
BrennerTest:<Laufzeiten> \
BrennerTest:<letzter&nbsp;;Zyklus>,pulseTimeIncrement \
BrennerTest:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
BrennerTest:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
BrennerTest:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
BrennerTest:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
BrennerTest:<Gesamtlaufzeit>,pulseTimeOverall
attr Brenneruebersicht_2 alias 02 Brennerlaufzeiten neu
attr Brenneruebersicht_2 group 01 Brenner/Pumpen
attr Brenneruebersicht_2 mapping &nbsp;;
attr Brenneruebersicht_2 room 00 Kurzstatus
attr Brenneruebersicht_2 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{sprintf("%.2f Stunden", $VALUE);;}}
attr Brenneruebersicht_2 valueStyle {'style="color:green;;;;text-align:right"'}

define Brenneruebersicht_3 readingsGroup <>,<%measure_water_meter> \
BrennerTest:<Verbr&aumluche> \
BrennerTest:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
BrennerTest:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
BrennerTest:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
BrennerTest:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
BrennerTest:<Gesamtverbrauch>,pulseTimeOverall,<&nbsp;;&nbsp;;&nbsp;;>,<Tankinhalt>,appTanklevel
attr Brenneruebersicht_3 alias 02 Brennerverbr&aumluche neu
attr Brenneruebersicht_3 group 01 Brenner/Pumpen
attr Brenneruebersicht_3 mapping &nbsp;;
attr Brenneruebersicht_3 room 00 Kurzstatus
attr Brenneruebersicht_3 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Liter", $VALUE*0.000630901964);;}elsif($READING eq "appTanklevel"){sprintf("%.2f Liter", $VALUE)}else{sprintf("%.2f Liter", $VALUE*3600*0.000630901964);;} }
attr Brenneruebersicht_3 valueStyle {'style="color:green;;;;text-align:right"'}


Anbei noch die von mir angepasste UtilsHourCounter.pm. Hier wird auch der Tankinhalt "appTanklevel" mitgerechnet.

Hallo,

ist die angepasste "UtilsHourCounter.pm" noch kompatibel zu der neuen Version vom HourCounter ?
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

kvo1

Hallo John,
Bin neu im Thema.
Test gerade auch Dein Modul HourCounter (vielen Dank dafür , echt super)
im Wiki schreibst Du von der Erweiterung "UtilsHourCounter.pm"!

Kann (wie) ich das auch wieder deaktivieren ?
Wie lösche ich dann die app*-Readings ?

Danke!

klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

bluesky

Hallo John

Nach Deiner Antwort vom letzten Mal habe ich die Version 1.0.1.0 nochmals probiert. Mit dem beschriebenen Attribut event-on-change-reading .* , welches sehr wichtig ist um die Daten zu verstehen und dem für meine Zwecke nicht verwendeten Attribut event-min-interval .*:3600 bekomme ich jetzt die gleiche Grafik mit pulseTimeEdge und pauseTimeEdge wie früher mit pulseTimeIncrement und pauseTimeIncrement vor dem Einführen des Update Intervalls in 1.0.0.6. Für mich funktioniert die Version 1.0.1.0 also wieder. Vielen Dank.

Gruß bluesky
Raspberry Pi, CUL_HM, HM-LC-SW4-SM, HM-LC-SW1-FM, WEBIO_12DIGITAL,

wolfi1104

Hallo
Verfolge das Forum mit den Stundenzähler schon ne Weile.
Hab auch schon eine Zähler installiert mit Grafik alles super.
Ich würde gerne aber nur dir reine Zahlen haben.
Stdje woche ; Std je Monat,Std per Jahr
Irgendwie als eine Art Tabelle im Floorplan ähnlich der Wetter Übersicht
Ist das überhaupt möglich
Habe ich noch nicht so richtig lesen können hier

Wolfi
pi / V 1.61e CUL433 / V 1.44 CUL868 /

John

CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

John

Zitat von: wolfi1104 am 16 Dezember 2014, 11:29:42
Hallo
Verfolge das Forum mit den Stundenzähler schon ne Weile.
Hab auch schon eine Zähler installiert mit Grafik alles super.
Ich würde gerne aber nur dir reine Zahlen haben.
Stdje woche ; Std je Monat,Std per Jahr
Irgendwie als eine Art Tabelle im Floorplan ähnlich der Wetter Übersicht
Ist das überhaupt möglich
Habe ich noch nicht so richtig lesen können hier

Vielleicht ist das Modul ReadingsGroup für dich eine Lösung.
John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

wolfi1104

Hallo John
Ja könntest recht haben
muss mich mal etwas in die syntax einlesen.
auf dem ersten blick nicht ganz einfach
mal sehen
Danke
pi / V 1.61e CUL433 / V 1.44 CUL868 /

fhemjörg

#310
Hallo John,
wird denn jetzt in der neuen Version der "countsOverall" nicht mehr mit hoch gezählt?
Gruß Jörg

John

Zitat von: fhemjörg am 18 Dezember 2014, 22:33:14
wird denn jetzt in der neuen Version der "countsOverall" nicht mehr mit hoch gezählt?

Doch schon. Gibt es Zweifel ?

Hast du dich schon mit dem Thema

event-min-interval                 .*:3600
event-on-change-reading            .*   
 

beschäftigt  und diesen Link
http://forum.fhem.de/index.php/topic,28215.msg231358.html#msg231358
gelesen ?


John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

Billy

@John

Habe die neue Version des HC bei mir implementiert. Dabei ist mir aufgefallen, dass ich mit der Angabe im WIKI Probleme hatte. (Syntaxfehler)
ZitatArchiv für Tages-/Wochen-/Monats-/Jahreswerte anlegen
Nun wollen wir die aggregierten Werte in eine eigene Datei speichern. Dies gelingt mit
define CN.Test.FileDay FileLog ./log/CN.Test-Day-%Y.log CN.Test:app\w+ (Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*

Nachdem ich das Leerzeichen zwischen ...CN.Test:app\w+ (Utilization|P... entfernt habe --> ...CN.Test:app\w+(Utilization|P...
war alles ok!
Nur zur Info.

Noch eine Frage, werden bei Jahreswechsel alle Werte automatisch auf Null gestellt? Wäre für mich ein tolles Feature. :)

Nochmals Danke für das tolle Modul.

Gruß
Billy

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

fhemjörg

Hallo John,
ja habe ich beachtet. Zur Zeit wird bei nichts gezählt....
Werde heute Abend mal schauen ob ich was verkehrt gemacht habe, ansonsten melde ich mich noch mal
Gruß
Jörg

al_ro

Hallo John,

seit dem letzten Update habe ich dasselbe Problem, dass countOverall nicht mehr hochgezählt wird. Die Anpassungen für event_min_interval und event_on_change_reading habe ich gemacht (wie in deinem Beispiel). Die 99_UtilsHourCounter nutze ich nicht.
Habe ich etwas vergessen/übersehen?

Danke und Grüße Alex

Update: Nach dem Hinzufügen eines OFF-Ereignisses, geht es nun wieder. Ich vermute, hier
# -------------- handling of transitions
    my $hasValueChanged = 0;
    if ( $isOffDefined && $valuePara >= 0 && $valuePara != $valueOld )
    {
      $hasValueChanged = 1;
    }

fehlt die Variante ohne "OFF"?