Autor Thema: Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt  (Gelesen 129253 mal)

Offline videospezi

  • New Member
  • *
  • Beiträge: 12
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #510 am: 17 Februar 2017, 15:49:21 »
Ich habe den Hour Counter seit einiger Zeit in Betrieb. Nutze dafür allerdings einen HM-SCI-3FM Interface. Der Zähler funktioniert soweit sehr gut. Alle Starts werden gezählt.
Außerdem benutze ich die ReadingGroup von pappn. Diese ist bestens für die Verbrauchsdaten einer Ölheizung zu brauchen. Habe die Konfig aus dem WIKI benutzt und auch den Plot dazu erstellt.
Leider zeigt mir die ReadingGroup in den Laufzeiten keine Angaben in der Rubrik heute. Genauso in den Brennerstarts, da aber in der aktuellen Woche und zum Guteen Schluß noch im Verbrauch wieder in der Rubrik heute.
Im Plot bleibt die Anzeige der Betriebsstunden auch nur ein Strich ohne Änderungen. In den Log Dateien stehen die Werte für "heute" auf immer auf null.
Es wäre nett wenn mir jemand einen Tipp geben könnte, wo ich den Fehler suchen muß.
Der Auszug aus der CFG siehe unten.
Vielen Dank schonmal im Voraus.
Raspberry Pi 2, FHEM 5.7, Perl V aktuell 1xESA2000LED, einige HM Fensterkontakte, FHT, FS 20 Aktoren,1Wire Sensor DS1820, HM Aktoren, MAX System mit Cube

Offline pappn

  • Full Member
  • ***
  • Beiträge: 127
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #511 am: 19 Februar 2017, 22:59:57 »
Anbei aus meinem Archiv meine Definitionen für die Readingsgroups. Die sehen sehen m.E. bei dir gut aus.

# Readings Group Definition zur Darstellung Brennerstarts
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 Brennerstarts
attr Brenneruebersicht_1 group 02 Brenner/Pumpen
attr Brenneruebersicht_1 mapping &nbsp;;
attr Brenneruebersicht_1 room 00 Kurzstatus
attr Brenneruebersicht_1 valueStyle {'style="color:green;;;;text-align:right"'}

# Readings Group Definition zur Darstellung Laufzeiten
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 Brennerlaufzeiten
attr Brenneruebersicht_2 group 02 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{if($READING =~ m/app/){sprintf("%.2f Stunden", $VALUE);;}}}
attr Brenneruebersicht_2 valueStyle {'style="color:green;;;;text-align:right"'}

# Readings Group Definition zur Darstellung Verbräuche
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 Brennerverbr&aumluche
attr Brenneruebersicht_3 group 02 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{if($READING =~ m/app/){sprintf("%.2f Liter", $VALUE*3600*0.000630901964);;}}}
attr Brenneruebersicht_3 valueStyle {'style="color:green;;;;text-align:right"'}

Das Einzige, dass mir aufgefallen ist, ist deine FileLog Definition. Die sieht bei mir anders aus.
define BrennerTest.File FileLog ./log/BrennerTest-%Y.log BrennerTestDemnach sollte deine so aussehen.
define CN.Brenner.File FileLog ./log/CN.Brenner-%Y.log CN.Brenner

Schau doch mal ob das hilft.

Pappn
"When all else fails, read the instructions."

BananaPi mit CUL868 und RFXTFX433
FHT80B, FS20, S300TH, UNIRoll, IPCAM, KD101, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Offline pappn

  • Full Member
  • ***
  • Beiträge: 127
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #512 am: 20 Februar 2017, 18:02:55 »
Hast du mal geprüft ob die Readings countsPerDay bzw. appOpHoursPerDayTemp im hourcounter Device befüllt sind?

Gesendet von meinem SM-T580 mit Tapatalk

"When all else fails, read the instructions."

BananaPi mit CUL868 und RFXTFX433
FHT80B, FS20, S300TH, UNIRoll, IPCAM, KD101, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Offline Charles

  • Jr. Member
  • **
  • Beiträge: 82
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #513 am: 21 Februar 2017, 10:36:29 »
Hallo,

ich hab das gleiche Problem wie videospezi.
Die hour counter Device liefert Folgendes:appCountsPerDay   22    2017-02-21 00:00:00
appCountsPerHour   0   2017-02-21 10:00:01
appCountsPerHourTemp   0   2017-02-21 10:00:01
appCountsPerMonth    0    2017-01-01 00:00:00
appCountsPerMonthTemp    0    2017-01-01 00:00:00
appCountsPerWeek    0    2017-02-19 00:00:00
appCountsPerWeekTemp   0   2017-02-19 00:00:00   
appCountsPerYear   0   2017-01-01 00:00:00
appCountsPerYearTemp   0   2017-01-01 00:00:00
appOpHoursPerDay    2.46833333333333    2017-02-21 00:00:00
appOpHoursPerDayTemp   0    2017-02-21 00:00:00
appOpHoursPerMonth   46.6841666666667    2017-01-01 00:00:00
appOpHoursPerMonthTemp   212.11611111111    2017-02-21 00:00:00
appOpHoursPerWeek  21.8691666666667    2017-02-19 00:00:00
appOpHoursPerWeekTemp   4.865    2017-02-21 00:00:00
appOpHoursPerYear   46.6841666666667   2017-01-01 00:00:00
appOpHoursPerYearTemp   212.11611111111   2017-02-21 00:00:00
appTanklevel   2417.09272   2017-02-21 00:00:00
appUtilization   0    2017-02-21 00:00:00
countsOverall   7598    2017-02-21 10:23:03
countsPerDay   9    2017-02-21 10:23:03
pauseTimeEdge   3925    2017-02-21 10:23:03
pauseTimeIncrement   3925    2017-02-21 10:23:03
pauseTimeOverall   36632035    2017-02-21 10:23:03
pauseTimePerDay   3333  2017-02-21 10:23:03
pulseTimeEdge   395    2017-02-21 10:23:03
pulseTimeIncrement   137   2017-02-21 10:23:03
pulseTimeIncrementMinutes   6.36666666666667    2016-05-30 09:00:00
pulseTimeOverall   3244978    2017-02-21 10:23:03
pulseTimeOverallVerbrauch   1418.09516666667   2016-05-30 09:00:00
pulseTimePerDay   3557    2017-02-21 10:23:03
pulseTimePerDayVerbrauch   0   2016-05-30 09:00:00
state   9    2017-02-21 10:23:03
tickChanged   210   2017-02-21 10:20:46
tickDay   2   2017-02-21 00:00:00
tickHour   57   2017-02-21 10:00:01
tickMonth   0   2017-02-19 01:15:13
tickUpdated   732    2017-02-21 10:23:03
tickWeek   0   2017-02-19 01:15:13
tickYear   0   2017-02-19 01:15:13
value   1    2017-02-21 10:23:03

Wenn ich hem starte kommen folgende Fehler im Log an:2017.02.19 01:14:51 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 45, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 55, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 80, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 104, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 128, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 167, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 184, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHC_OnValueChanged redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 219, <$fh> line 7.
2017.02.19 01:14:51 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 249, <$fh> line 7.

Ansonsten ist der hourcounter mit den Erweiterungen super!
Vielen Dank dafür
Raspberry · FB 7490 · CUL · FS20 · MAX Thermostate · Arduino · 1-wire

Offline pappn

  • Full Member
  • ***
  • Beiträge: 127
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #514 am: 22 Februar 2017, 19:53:15 »
Ich vermute du hast noch die alte 99_UtilsHourCounter_CE.pm. Es scheint, dass der Aufruf der subs in der 99_UtilsHourCounter_CE.pm über "tickchanged" aus dem 98_HourCounter.pm nicht funktioniert. John hatte da Ende 2014 den Aufruf geändert.
Ich hänge mal meine aktuelle Version der 99_UtilsHourCounter_CE.pm an.

In der aktuellen Version ist allerdings die Berechnung von appTanklevel aus rausgefallen und wurde von mir in die 99_myUtils verlagert.
#Berechne neuen Level Oeltank und setzte Reading für BrennerTest1
sub calc_tank_level()
{
my $current_level = ReadingsVal("BrennerTest1","appTanklevel",0);
my $daily_consumtion = ReadingsVal("BrennerTest1","appOpHoursPerDay",0)*1.518518519;
my $new_level = $current_level-$daily_consumtion;
fhem("setreading BrennerTest1 appTanklevel $new_level");
}

Diese Berechnung rufe ich über ein at auf ### AT Definition zur täglichen Berechnung des Tankinhaltes
define calculate_tanklevel at *00:10 {calc_tank_level}

Das liegt aber an meinem Setup (neue Heizung). Kannst du so übernehmen uder wieder in die 99_UtilsHourCounter_CE.pm packen.
« Letzte Änderung: 22 Februar 2017, 20:03:42 von pappn »
"When all else fails, read the instructions."

BananaPi mit CUL868 und RFXTFX433
FHT80B, FS20, S300TH, UNIRoll, IPCAM, KD101, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Offline Charles

  • Jr. Member
  • **
  • Beiträge: 82
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #515 am: 22 Februar 2017, 21:20:00 »
Hallo pappn,

hab Alles eingebaut. Sieht gut aus. Es war das alte Skript!
Wie kam ich dazu?
Seite 9 im Forumsbeitrag hourCounter (https://forum.fhem.de/index.php/topic,12216.200.html)
Hierher hab ich das Skript und die Implementierung.
Danke für die Arbeit!

Grüße charles
Raspberry · FB 7490 · CUL · FS20 · MAX Thermostate · Arduino · 1-wire

Offline pappn

  • Full Member
  • ***
  • Beiträge: 127
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #516 am: 22 Februar 2017, 21:53:56 »
John hat damals zyklische Updates und Intervalle eingebaut. Warum findest du weiter hinten im thread. Der Hinweis ist auch im Modul vermerkt. Der Trigger war früher value und wurde dann in tickChanged geändert.

https://forum.fhem.de/index.php/topic,12216.msg228714.html#msg228714

10.12.14 - 1.0.1.0 fixed: with integration of interval and support of cyclically updates
#                     we need some changes:
#                     instead of value and countsOverall , now tickChanged is used

Mit dem alten UtilsHourCounter passt dann das tick.* notify nicht.

Gesendet von meinem SM-T580 mit Tapatalk

« Letzte Änderung: 23 Februar 2017, 22:42:20 von pappn »
"When all else fails, read the instructions."

BananaPi mit CUL868 und RFXTFX433
FHT80B, FS20, S300TH, UNIRoll, IPCAM, KD101, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Offline videospezi

  • New Member
  • *
  • Beiträge: 12
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #517 am: 07 März 2017, 17:36:49 »
Hallo,

tut mir leid, das ich mir jetzt erst melde. Ich hatte auch noch die "alte" 99_UtilsHourCounter_CE.pm benutzt.
Habe heute die aktuelle 99_UtilsHourCounter.pm eingefügt.
Die Definition von dem FileLog habe ich auch nochmal geändert.
Hour Counter auf "0" gesetzt.
Wobei ich da noch eine Frage habe: Wie kann man die ganzen Counter auf "Null" zurücksetzen?

Vielen, vielen Dank für die Unterstützung.
Werde die Einträge in den nächsten Tagen mal im Auge behalten.
Viele Grüße
Raspberry Pi 2, FHEM 5.7, Perl V aktuell 1xESA2000LED, einige HM Fensterkontakte, FHT, FS 20 Aktoren,1Wire Sensor DS1820, HM Aktoren, MAX System mit Cube

Offline pappn

  • Full Member
  • ***
  • Beiträge: 127
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #518 am: 12 März 2017, 22:40:26 »
Über "set CN.Brenner clear" sollte das eigentlich funktionieren.

Gesendet von meinem SM-T580 mit Tapatalk

"When all else fails, read the instructions."

BananaPi mit CUL868 und RFXTFX433
FHT80B, FS20, S300TH, UNIRoll, IPCAM, KD101, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Offline maci

  • Full Member
  • ***
  • Beiträge: 144
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #519 am: 27 März 2017, 13:15:53 »
Ich habe auch ein Problem mit HourCounter und der Erweiterung.

Ich hatte eine Erweiterung: 99_UtilsHourCounter.pm in meine FHEM Verzeichnis.

Diese in inhaltsmässig ident mit der hier zu ladenden 99_UtilsHourCounter_CE.pm

Ich frage mich derzeit was jetzt richtig ist.
99_UtilsHourCounter.pm oder 99_UtilsHourCounter_CE.pm

Jedenfalls ist es so, dass ich nirgendwo Einträge mit app* finde.
Schaltungen
1
2017-03-27 13:00:00
Stunden
0.217222222222222
2017-03-27 13:00:00
countsOverall
1
2017-03-27 13:00:00
countsPerDay
1
2017-03-27 13:00:00
pauseTimeEdge
7616
2017-03-27 13:00:00
pauseTimeIncrement
8968
2017-03-27 13:00:00
pauseTimeOverall
16584
2017-03-27 13:00:00
pauseTimePerDay
16584
2017-03-27 13:00:00
pulseTimeEdge
782
2017-03-27 13:00:00
pulseTimeIncrement
782
2017-03-27 13:00:00
pulseTimeOverall
782
2017-03-27 13:00:00
pulseTimePerDay
782
2017-03-27 13:00:00
state
1
2017-03-27 13:00:00
tickChanged
2
2017-03-27 10:29:39
tickDay
0
2017-03-27 12:10:53
tickHour
1
2017-03-27 13:00:00
tickMonth
0
2017-03-27 12:10:53
tickUpdated
44
2017-03-27 13:00:00
tickWeek
0
2017-03-27 12:10:53
tickYear
0
2017-03-27 12:10:53
value
0
2017-03-27 13:00:00

Hier meine Definitionen:
#### Boilerladepumpe Loggingfunktion mit Betriebsstundenerfassung ############
define CN.Boilerladepumpe HourCounter Boilerladepumpe:on  Boilerladepumpe:off
attr CN.Boilerladepumpe event-on-change-reading 1
attr CN.Boilerladepumpe interval 10
attr CN.Boilerladepumpe room 9.03_Log-Boilerladepumpe
attr CN.Boilerladepumpe stateFormat {sprintf("Betriebsstunden: %.2f   |   Schaltungen: %.2f",ReadingsVal("CN.Boilerladepumpe","Stunden",0),ReadingsVal("CN.Boilerladepumpe","Schaltungen",0))}
attr CN.Boilerladepumpe userReadings Stunden { int(ReadingsVal("CN.Boilerladepumpe","pulseTimePerDay",0)) / 3600}, Schaltungen {  int(ReadingsVal("CN.Boilerladepumpe","countsPerDay",0))}
define CN.Boilerladepumpe.LogFile FileLog ./log/CN.Boilerladepumpe-%Y.log (CN.Boilerladepumpe:.*)
attr CN.Boilerladepumpe.LogFile room 9.03_Log-Boilerladepumpe
#
define CN.EVENT notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
#
define CN.Boilerladepumpe.FileDay FileLog ./log/CN.Boilerladepumpe-Day-%Y.log CN.Boilerladepumpe:app\w*(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*
attr CN.Boilerladepumpe.FileDay room 9.03_Log-Boilerladepumpe
#### Readings aus den Logs ###########
define Ausgabe_Boilerladepumpe readingsGroup <>,<%time_clock> \
CN.Boilerladepumpe:<Laufzeiten Boilerladepumpe> \
CN.Boilerladepumpe:<letzter&nbsp;;Zyklus>,pulseTimeIncrement \
CN.Boilerladepumpe:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.Boilerladepumpe:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.Boilerladepumpe:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.Boilerladepumpe:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.Boilerladepumpe:<Gesamtlaufzeit>,pulseTimeOverall
attr Ausgabe_Boilerladepumpe alias Laufzeiten Boilerladepumpe
attr Ausgabe_Boilerladepumpe mapping &nbsp;;
attr Ausgabe_Boilerladepumpe room 9.03_Log-Boilerladepumpe
attr Ausgabe_Boilerladepumpe valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Stunden", $VALUE/3600);;}elsif($READING eq "pulseTimeIncrement"){sprintf("%.2f Minuten", $VALUE/60);;}else{sprintf("%.2f Stunden", $VALUE);;}}

Das Logfile CN.Boilerladepumpe-Day-2019.log ist leer.

Ich habe die Pumpe zum Test mehrmals aus und wieder eingeschaltet.
Immer einige Minuten gewartet.

Bei der Ausgabe der Laufzeit bekomme ich dies hier.

Was ist falsch?
Raspberry Pi3, UniPi Vers. 1.1, Netatmo Wetterstation + Regenmesser, Netatmo Thermostat, 2x ESP8266 1wire WLAN Bridge

Offline maci

  • Full Member
  • ***
  • Beiträge: 144
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #520 am: 29 März 2017, 13:40:28 »
Update zum meinem Beitrag vorher.

Das ganze läuft jetzt und der Hourcounter samt Erweiterung zählt jetzt.
Raspberry Pi3, UniPi Vers. 1.1, Netatmo Wetterstation + Regenmesser, Netatmo Thermostat, 2x ESP8266 1wire WLAN Bridge

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1006
Hallo.
habe schon seit über 1 Jahr das Modul erfolgreich laufen. jetzt wollte ich es aber dahingehend einstellen, das die Abfrage nicht stündlich kommt, sondern evt. 1/2 stündlich. Kann man das irgendwo einstellen?

gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline l2r

  • Full Member
  • ***
  • Beiträge: 498
hi,

das sollte doch genau dein Attribut sein, oder?
https://wiki.fhem.de/wiki/HourCounter#Seltene_Schaltvorg.C3.A4nge

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Offline satprofi

  • Hero Member
  • *****
  • Beiträge: 1006
Danke !
gruss
-----------------------------------------------------------------------
Raspberry - Fhem 5.7 CUL 868, FS20, NetIO230 CUL 433, REV, Unitec, FLS u. ELRO Funksteckdosen
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Offline Waldmensch

  • Sr. Member
  • ****
  • Beiträge: 664
Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
« Antwort #524 am: 02 Juli 2017, 16:43:27 »
Ich habe irgendwie das Problem, das PulseTimePerDay nicht stoppt. Ich habe eine Poolsteuerung, die über ein DOIF die Filterpumpe einschaltet, wenn die Solaranlage einen bestimmten Wert liefert und die Pumpe noch keine 4h gelaufen ist. Das DOIF funktioniert, da es auf PulsetimePerDay > 14400 reagiert. Die Pumpe bzw. der Schalter ist also aus. Trotzdem wird PulseTimePerDay weiter hochgezählt. Irgendwie scheint das aber nur nach dem letzten Ausschalten der Pumpe zu sein. Ansonsten würde ja tagsüber nach dem ersten Einschalten, 4 Stunden später das System lahmliegen. Das tut es aber seltsamerweise nicht. Kann es sein, das das DOIF irgendwie den Counter beeinflusst, weil es immer wieder das "off" signal sendet. Ich bin da echt ratlos.

Edit: Ich sehe, dass das "value" auf 1 steht, das letzte Ereignis also ein "on" war. Das kann aber nicht sein, da ja ESPEasy_sonoff_10_S_Schalter:Relay auf "off" steht. Irgendwie scheint das Module das "off" nicht zu akzeptieren. Definiert ist es doch aber. Der ESPEasy schalter liefert auch alle 300 Sekunden ein neues "off" auf dem Reading "Relay"

List Betriebsstundenzähler
Internals:
   DEF        ESPEasy_sonoff_10_S_Schalter:Relay:on ESPEasy_sonoff_10_S_Schalter:Relay:off
   NAME       PoolCounter
   NR         171
   NTFY_ORDER 50-PoolCounter
   STATE      10
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Helper:
     Dblog:
       Betriebsstunden:
         Logdb:
           TIME       1499005440.87585
           VALUE      05:04:58
       Countsoverall:
         Logdb:
           TIME       1499005020.17608
           VALUE      228
       Countsperday:
         Logdb:
           TIME       1499005020.17608
           VALUE      10
       Pausetimeedge:
         Logdb:
           TIME       1499005020.17608
           VALUE      539
       Pausetimeincrement:
         Logdb:
           TIME       1499005020.17608
           VALUE      539
       Pausetimeoverall:
         Logdb:
           TIME       1499005020.17608
           VALUE      2987959
       Pausetimeperday:
         Logdb:
           TIME       1499005020.17608
           VALUE      39041
       Pulsetimeedge:
         Logdb:
           TIME       1499005020.17608
           VALUE      2014
       Pulsetimeincrement:
         Logdb:
           TIME       1499005440.87585
           VALUE      10750
       Pulsetimeoverall:
         Logdb:
           TIME       1499005440.87585
           VALUE      580660
       Pulsetimeperday:
         Logdb:
           TIME       1499005440.87585
           VALUE      18298
       State:
         Logdb:
           TIME       1499005020.17608
           VALUE      10
       Tickchanged:
         Logdb:
           TIME       1498994444.84683
           VALUE      967
       Tickhour:
         Logdb:
           TIME       1499004000.94656
           VALUE      14
       Tickupdated:
         Logdb:
           TIME       1499005440.87585
           VALUE      306
       Value:
         Logdb:
           TIME       1499005020.17608
           VALUE      1
   Readings:
     2017-07-02 16:24:00   Betriebsstunden 05:04:58
     2017-05-21 17:01:08   clearDate       2017-05-21 17:01:08
     2017-07-02 16:24:00   countsOverall   228
     2017-07-02 16:24:00   countsPerDay    10
     2017-07-02 16:24:00   pauseTimeEdge   539
     2017-07-02 16:24:00   pauseTimeIncrement 539
     2017-07-02 16:24:00   pauseTimeOverall 2987959
     2017-07-02 16:24:00   pauseTimePerDay 39041
     2017-07-02 16:24:00   pulseTimeEdge   2014
     2017-07-02 16:24:00   pulseTimeIncrement 10750
     2017-07-02 16:24:00   pulseTimeOverall 580660
     2017-07-02 16:24:00   pulseTimePerDay 18298
     2017-07-02 16:24:00   state           10
     2017-07-02 13:20:44   tickChanged     967
     2017-07-02 16:04:06   tickDay         0
     2017-07-02 16:04:06   tickHour        0
     2017-07-02 16:04:06   tickMonth       0
     2017-07-02 16:24:00   tickUpdated     306
     2017-07-02 16:04:06   tickWeek        0
     2017-07-02 16:04:06   tickYear        0
     2017-07-02 16:24:00   value           1
   Helper:
     OFF_Regexp ESPEasy_sonoff_10_S_Schalter:Relay:off
     ON_Regexp  ESPEasy_sonoff_10_S_Schalter:Relay:on
     calledByEvent
     changedTimestamp 2017-07-02 16:24:00
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1499004000
     value      -1
     cmdQueue:
Attributes:
   DbLogInclude pulseTimePerDay
   event-min-interval .*:600
   event-on-change-reading .*
   group      Pool
   interval   1
   room       Control
   userReadings Betriebsstunden { sec2time(ReadingsVal("PoolCounter","pulseTimePerDay",0));; }

List Poolsteuerung DOIF:
Internals:
   DEF        ([PoolCounter:pulseTimePerDay]>=14400 and [ESPEasy_sonoff_10_S_Schalter:Relay] eq "on")
(set ESPEasy_sonoff_10_S_Schalter off)
DOELSEIF ([Wechselrichter1:FeedIN]<1000 and [ESPEasy_sonoff_10_S_Schalter:Relay] eq "on")
(set ESPEasy_sonoff_10_S_Schalter off)
DOELSEIF ([Wechselrichter1:FeedIN]>2000 and [10:00-18:00] and [ESPEasy_sonoff_10_S_Schalter:Relay] eq "off" and [PoolCounter:pulseTimePerDay]<14400)
(set ESPEasy_sonoff_10_S_Schalter on)
   NAME       pool_solar
   NR         169
   NTFY_ORDER 50-pool_solar
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd:
         Logdb:
           TIME       1499004553.63197
           VALUE      1
       Cmd_event:
         Logdb:
           TIME       1499004553.63197
           VALUE      ESPEasy_sonoff_10_S_Schalter
       Cmd_nr:
         Logdb:
           TIME       1499004553.63197
           VALUE      1
       State:
         Logdb:
           TIME       1499004553.63197
           VALUE      cmd_1
       Wait_timer:
         Logdb:
           TIME       1499005392.47228
           VALUE      no timer
   Readings:
     2017-07-02 16:32:13   Device          ESPEasy_sonoff_10_S_Schalter
     2017-07-02 16:09:13   cmd             1
     2017-07-02 16:09:13   cmd_event       ESPEasy_sonoff_10_S_Schalter
     2017-07-02 16:09:13   cmd_nr          1
     2017-07-02 16:32:13   e_ESPEasy_sonoff_10_S_Schalter_Relay off
     2017-07-02 16:32:00   e_PoolCounter_pulseTimePerDay 18778
     2017-07-02 16:32:12   e_Wechselrichter1_FeedIN 342
     2017-07-02 16:09:13   state           cmd_1
     2017-07-02 02:24:04   timer_01_c03    02.07.2017 10:00:00
     2017-07-02 02:24:04   timer_02_c03    02.07.2017 18:00:00
     2017-07-02 16:23:12   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'PoolCounter','pulseTimePerDay')>=14400 and ReadingValDoIf($hash,'ESPEasy_sonoff_10_S_Schalter','Relay') eq "on"
     1          ReadingValDoIf($hash,'Wechselrichter1','FeedIN')<1000 and ReadingValDoIf($hash,'ESPEasy_sonoff_10_S_Schalter','Relay') eq "on"
     2          ReadingValDoIf($hash,'Wechselrichter1','FeedIN')>2000 and DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'ESPEasy_sonoff_10_S_Schalter','Relay') eq "off" and ReadingValDoIf($hash,'PoolCounter','pulseTimePerDay')<14400
   Days:
   Devices:
     0           PoolCounter ESPEasy_sonoff_10_S_Schalter
     1           Wechselrichter1 ESPEasy_sonoff_10_S_Schalter
     2           Wechselrichter1 ESPEasy_sonoff_10_S_Schalter PoolCounter
     all         PoolCounter ESPEasy_sonoff_10_S_Schalter Wechselrichter1
   Do:
     0:
       0          set ESPEasy_sonoff_10_S_Schalter off
     1:
       0          set ESPEasy_sonoff_10_S_Schalter off
     2:
       0          set ESPEasy_sonoff_10_S_Schalter on
     3:
   Helper:
     event      Relay: off,RSS: -89.00 Rel: off
     globalinit 1
     last_timer 2
     sleepdevice Wechselrichter1
     sleepsubtimer 0
     sleeptimer -1
     timerdev   ESPEasy_sonoff_10_S_Schalter
     timerevent off
     triggerDev ESPEasy_sonoff_10_S_Schalter
     timerevents:
       off
     timereventsState:
       off
     triggerEvents:
       Relay: off
       RSS: -89.00 Rel: off
     triggerEventsState:
       Relay: off
       state: RSS: -89.00 Rel: off
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1498982400
     1          1499011200
   Readings:
     0           PoolCounter:pulseTimePerDay ESPEasy_sonoff_10_S_Schalter:Relay
     1           Wechselrichter1:FeedIN ESPEasy_sonoff_10_S_Schalter:Relay
     2           Wechselrichter1:FeedIN ESPEasy_sonoff_10_S_Schalter:Relay PoolCounter:pulseTimePerDay
     all         PoolCounter:pulseTimePerDay ESPEasy_sonoff_10_S_Schalter:Relay Wechselrichter1:FeedIN
   Realtime:
     0          10:00:00
     1          18:00:00
   Regexp:
     0:
     1:
     2:
     All:
   State:
   Time:
     0          10:00:00
     1          18:00:00
   Timecond:
     0          2
     1          2
   Timer:
     0          0
     1          0
   Timers:
     2           0  1
   Trigger:
   Triggertime:
     1499011200:
       localtime  1499011200
       Hash:
Attributes:
   alias      Pool bei PV Überschuss
   group      Pool
   room       Control
   wait       1:120:300

List Pumpenschalter:
Internals:
   DEF        192.168.178.52 80 espBridge sonoff_10_S_Schalter
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   0
   HOST       192.168.178.52
   IDENT      sonoff_10_S_Schalter
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     1041
   NAME       ESPEasy_sonoff_10_S_Schalter
   NOTIFYDEV  global
   NR         279
   NTFY_ORDER 50-ESPEasy_sonoff_10_S_Schalter
   PORT       80
   STATE      off
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1
   espBridge_MSGCNT 1041
   espBridge_TIME 2017-07-02 16:33:13
   Helper:
     Dblog:
       Rss:
         Logdb:
           TIME       1499005993.08147
           VALUE      -89.00 Rel
       Rssi:
         Logdb:
           TIME       1499005754.77283
           VALUE      -89.00
       Rel:
         Logdb:
           TIME       1498955301.36322
           VALUE      off
       Relay:
         Logdb:
           TIME       1499005993.08147
           VALUE      off
       Presence:
         Logdb:
           TIME       1499005890.3291
           VALUE      present
       State:
         Logdb:
           TIME       1499005395.31112
           VALUE      off
   Readings:
     2017-06-28 10:37:36   Key             gpio
     2017-07-02 16:29:14   RSSI            -89.00
     2017-07-02 16:33:13   Relay           off
     2017-07-02 16:31:30   presence        present
     2017-07-02 16:33:13   state           RSS: -89.00 Rel: off
   Helper:
     fpc        1498955053
     Intat:
       1:
         FN         ESPEasy_statusRequest
         INTERVAL   304
         TRIGGERTIME 02.07.2017 16:36:34
     Received:
       RSSI       1499005754
       Relay      1499005993
Attributes:
   IODev      espBridge
   Interval   300
   alias      Poolfilter
   devStateIcon on:rc_GREEN:off off:rc_RED:on absent:rc_BLUE:off gpio:rc_YELLOW:off
   eventMap   /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/longpulse 12 on:on-for-timer/longpulse 12 off:off-for-timer/
   group      ESPEasy Sonoff
   icon       hue_filled_outlet
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy,Sonoff
   setState   3
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Relay","")}
   webCmd     :
« Letzte Änderung: 02 Juli 2017, 16:57:06 von Waldmensch »
Ich weiß wie die Forumssuche funktioniert und ich kenne auch das Wiki und die commandref.