Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt

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

Vorheriges Thema - Nächstes Thema

Billy

Danke. :)
ZitatKannst den Log-Auszug in deinem Beitrag wieder löschen, habs schon abgezogen, dann wird es wieder übersichtlicher.
erledigt!

ZitatHab einen Fehler gefunden:
Immer wenn ein Event mit dem gleichen Wert wie der letzte gekommen ist. wurde die Zeit nicht inkrementiert.
Das würde passen, da ich manchmal den gleichen Effekt auch beim Ölzähler hatte.
ZitatBitte um Feedback zur angehängten Version.

Ja natürlich sobald mal wieder die Sonne länger scheint. :D

Frohes Fest

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*

ojb

Hallo John,

habe eben Deine Testversion probiert.

Ergebnis: Es wird besser, passt aber immer noch nicht ganz.

Wärmepumpe lief 54 Minuten, HourCounter sagt 48 Minuten.

Im Log sieht man auch, dass ein paar Abfragezyklen (dauern bei mir ca. 3 Minuten) nicht gezählt werden.

2014-12-25_22:02:05 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-25_22:02:05 HourCounter_Heizung_Status_Verdichter value: 0
2014-12-25_22:03:53 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-25_22:03:53 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:06:39 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 166
2014-12-25_22:06:39 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:09:33 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 340
2014-12-25_22:09:33 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:12:30 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 517
2014-12-25_22:12:30 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:15:27 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 694
2014-12-25_22:15:27 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:18:33 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 880
2014-12-25_22:18:33 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:21:41 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1068
2014-12-25_22:21:41 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:24:23 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1230
2014-12-25_22:24:23 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:26:45 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1230
2014-12-25_22:26:45 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:27:46 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1230
2014-12-25_22:27:46 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:28:09 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1253
2014-12-25_22:28:09 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:30:05 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1253
2014-12-25_22:30:05 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:30:52 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1300
2014-12-25_22:30:52 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:33:23 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1451
2014-12-25_22:33:23 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:36:44 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1652
2014-12-25_22:36:44 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:39:30 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 1818
2014-12-25_22:39:30 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:42:39 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2007
2014-12-25_22:42:39 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:45:35 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2183
2014-12-25_22:45:35 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:48:30 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2358
2014-12-25_22:48:30 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:51:31 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2539
2014-12-25_22:51:31 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:54:40 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2728
2014-12-25_22:54:40 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-25_22:57:39 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2907
2014-12-25_22:57:39 HourCounter_Heizung_Status_Verdichter value: 0
2014-12-25_23:00:00 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 2907
2014-12-25_23:00:00 HourCounter_Heizung_Status_Verdichter value: 0


Das Heizungs-Log sieht so aus:
2014-12-25_21:55:46 Heizung Status_Verdichter: off
2014-12-25_21:58:46 Heizung Status_Verdichter: off
2014-12-25_22:03:53 Heizung Status_Verdichter: on
2014-12-25_22:06:39 Heizung Status_Verdichter: on
2014-12-25_22:09:33 Heizung Status_Verdichter: on
2014-12-25_22:12:30 Heizung Status_Verdichter: on
2014-12-25_22:15:27 Heizung Status_Verdichter: on
2014-12-25_22:18:33 Heizung Status_Verdichter: on
2014-12-25_22:21:41 Heizung Status_Verdichter: on
2014-12-25_22:24:23 Heizung Status_Verdichter: on
2014-12-25_22:28:09 Heizung Status_Verdichter: on
2014-12-25_22:30:52 Heizung Status_Verdichter: on
2014-12-25_22:33:23 Heizung Status_Verdichter: on
2014-12-25_22:36:44 Heizung Status_Verdichter: on
2014-12-25_22:39:30 Heizung Status_Verdichter: on
2014-12-25_22:42:38 Heizung Status_Verdichter: on
2014-12-25_22:45:35 Heizung Status_Verdichter: on
2014-12-25_22:48:30 Heizung Status_Verdichter: on
2014-12-25_22:51:31 Heizung Status_Verdichter: on
2014-12-25_22:54:40 Heizung Status_Verdichter: on
2014-12-25_22:57:39 Heizung Status_Verdichter: off
2014-12-25_23:00:46 Heizung Status_Verdichter: off


Bitte , bitte, bitte schau noch mal nach, Du bist ganz nah dran. Wenn ich mit irgendwas helfen kann sag Bescheid.

Danke und lieben Gruß
Oli

FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

John

Hallo Oli,

da gibts ein paar Unklarheiten.
Zitat

Heizung   Hourcounter
           22:02:05
22:03:53   22:03:53
22:06:39   22:06:39
22:09:33   22:09:33
22:12:30   22:12:30
22:15:27   22:15:27
22:18:33   22:18:33
22:21:41   22:21:41
22:24:23   22:24:23
           22:26:45
           22:27:46

22:28:09   22:28:09
           22:30:05
22:30:52   22:30:52
22:33:23   22:33:23
22:36:44   22:36:44
22:39:30   22:39:30
22:42:38   22:42:39
22:45:35   22:45:35
22:48:30   22:48:30
22:51:31   22:51:31
22:54:40   22:54:40
22:57:39   22:57:39


Genau an den Stellen, an denen der Zeitstempel bei der Heizung fehlt, tritt der Fehler beim Hourcounter auf.
Aber wie kommt es den zum Eintrag beim Hourcounter, wenn in der Heizungslog kein Eintrag ist ?
Wie sieht in diesem Fall des Event für den Hourcounter aus ?

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

ojb

Hi John,

vielen Dank für die Analyse. Ich lass jetzt FHEM auf verbose 5 laufen und guess what ... Fehler tritt nicht mehr auf.

Im Moment läuft alles perfekt. Sehr komisch. Ich bin mir eigentlic sicher, dass ich nachdem Download der Testversion FHEM neu gestartet hatte. Aber wer weiß ...

Ich beobachte jetzt mal weiter.

Danke auf jeden Fall für Deine Hilfe.

Liebe Grüße
Oli
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

Billy

Zitat von: John am 24 Dezember 2014, 12:12:21
Hallo Billy
Anbei die Version V1.0.1.2.
Hab einen Fehler gefunden:
Immer wenn ein Event mit dem gleichen Wert wie der letzte gekommen ist. wurde die Zeit nicht inkrementiert.
Bitte um Feedback zur angehängten Version.
John

Hallo John,
habe jetzt mit der neuen Version die heutigen Daten meines Brenner Zählers analysiert. Alles ok, obwohl auch Events mit gleichem Wert auftraten.
Da Mein Brenner Zähler identisch wie der Solar Zähler aufgebaut ist gehe ich davon aus dass jetzt alles klappt.
Sollte wieder erwarten beim CN_Solar Probleme auftauchen würde ich mich melden.

Danke nochmals. ;) Aus meiner Sicht kannst du die Version 24.12.14 - 1.0.1.2 einchecken.

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*

cotecmania

Hallo,

Benutze den HourCounter, um zu zählen wie oft und wie lange mein Ölkessel einschaltet.
Leider kommt um Mitternacht noch der Wert vom Tag vorher ins Log. Das gibt Probleme bei Diagrammen mit den Startwerten oder wenn man im Titel z.B. ie MAX-Funktion verwendet.

2015-01-02_00:00:00 BrennerCounter countsPerDay: 37

Erst eine minute später wird "genullt" :

2015-01-02_00:00:01 BrennerCounter countsPerDay: 0

Gruss
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

pappn

Zitat von: cotecmania am 03 Januar 2015, 13:37:50
Leider kommt um Mitternacht noch der Wert vom Tag vorher ins Log. Das gibt Probleme bei Diagrammen mit den Startwerten oder wenn man im Titel z.B. ie MAX-Funktion verwendet.

Die Beobachtung kann ich bei mir nicht bestätigen. Zähle auch die Brennerlaufzeiten mit Hourcounter, aber einen doppelten Eintrag von countsPerDay habe ich in meinen Logs nicht gefunden.

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

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

cotecmania

#352
Hi,

das Problem tritt bei mir jeden Tag auf :

2015-01-01_23:00:00 BrennerCounter tickHour: 25
2015-01-02_00:00:00 BrennerCounter countsPerDay: 37
2015-01-02_00:00:00 BrennerCounter countsOverall: 204
2015-01-02_00:00:00 BrennerCounter pulseTimeIncrement: 326
2015-01-02_00:00:00 BrennerCounter pulseTimeEdge: 326
2015-01-02_00:00:00 BrennerCounter pulseTimePerDay: 14217
2015-01-02_00:00:00 BrennerCounter pulseTimeOverall: 88822
2015-01-02_00:00:00 BrennerCounter pauseTimeIncrement: 7201
2015-01-02_00:00:00 BrennerCounter pauseTimeEdge: 1740
2015-01-02_00:00:00 BrennerCounter pauseTimePerDay: 72179
2015-01-02_00:00:00 BrennerCounter pauseTimeOverall: 564244
2015-01-02_00:00:00 BrennerCounter value: 0
2015-01-02_00:00:00 BrennerCounter 37
2015-01-02_00:00:00 BrennerCounter tickUpdated: 671
2015-01-02_00:00:00 BrennerCounter tickHour: 26
2015-01-02_00:00:00 BrennerCounter tickDay: 2
2015-01-02_00:00:01 BrennerCounter countsPerDay: 0
2015-01-02_00:00:01 BrennerCounter pulseTimePerDay: 0

Definiert ist er so :
define BrennerCounter HourCounter KM271:Brenner_Ansteuerung:.1.* KM271:Brenner_Ansteuerung:.Kessel.*
attr BrennerCounter room Heizung
define FileLog_BrennerCounter FileLog ./log/BrennerCounter-%Y.log (BrennerCounter:.*)


Jemand 'ne Idee ?

Gruss
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

Icinger

Ich würde mal sagen, dein Regex triggert auf Dinge, auf die es nicht triggern soll.
define BrennerCounter HourCounter KM271:Brenner_Ansteuerung:.1.* KM271:Brenner_Ansteuerung:.Kessel.*

Du solltest das RegEx besser anpassen, dass es nur bei Änderung des Readings getriggert wird, dass auch wirklich beim Start des Brenners gesetzt wird.

lg, Ici
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

koenigd

#354
Hallo John,

ich habe jetzt mal ein Update gemacht und auch meine Config angepasst, leider werden die readings des 99_UtilsHourCounter nicht erstellt.

Hier mal meine config:

define MAX_072edb MAX ShutterContact 072edb
attr MAX_072edb IODev cm
attr MAX_072edb alias Brennerstarts
attr MAX_072edb room Heizung
attr MAX_072edb verbose 2

define Betriebsstunden HourCounter MAX_072edb:onoff:.1 MAX_072edb:onoff:.0
attr Betriebsstunden event-min-interval tick.*:0,.*:3600
attr Betriebsstunden event-on-change-reading .*
attr Betriebsstunden room Heizung

define FileLog_Heizung FileLog /opt/fhem/log/Heizung-%Y-%m.log MAX_072edb|Betriebsstunden:.*
attr FileLog_Heizung room LOG

define Betriebsstunden.EVENT notify Betriebsstunden\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr Betriebsstunden.EVENT room Heizung

define Betriebsstunden.FileDay FileLog /opt/fhem/log/Heizung-Day-%Y.log Betriebsstunden:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*


Der Fehler muss wohl im Notify Betriebsstunden.EVENT  liegen, aber ich kann den Fehler dort nicht finden.

Über eine Hilfe wäre ich dir dankbar.

Gruß Daniel

Hour Conuter VERSION 1.0.1.2 - 24.12.2014
99_UtilsHourCounter.pm 2014-12-16 20:15:33

Icinger

Habe keine Max-Geräte, kenne also deren Readings nicht.

Wenn du ein list MAX_072edb machst, und hier postest, können wir das sicher lösen
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

John

Hallo cotecmania

ZitatErst eine minute später wird "genullt" :
2015-01-02_00:00:01 BrennerCounter countsPerDay: 0

Also das ist eine Sekunde später eine Minute wäre mir auch zu viel.

Aber im Prinzip hast du Recht.

Der HourCounter betrachtet ja Zeiträume wie Stunde, Tag, Woche, Monat, Jahr.
Immer wenn ein derartiger Zeitraum "abgelaufen" ist, wird etwa der zeitraumspezifisch Zählwert genullt.
Aber das findet eben immer nach Ablauf des Zeitraums statt.
Die Events die durch das Beschreiben des Readings gefeuert werden, werden vom FHEM-Kern mit dem aktuellen Zeitstempel versehen
und der liegt eben immer im Folgezeitraum.

Ich kann mir vorstellen einen Sekunden-Offset einzuführen, der den Zeitraumwechsel, 1..n Sekunden vorwegnimmt, damit  der Zeitstempel
des gefeuerten Readings noch im eigentlich betroffenen Zeitraum landet.

Hat jemand eine bessere Idee ?

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

koenigd

Hi,

ein list MAX_072edb liefert:

Internals:
   DEF        ShutterContact 072edb
   IODev      cm
   NAME       MAX_072edb
   NR         143
   STATE      closed
   TYPE       MAX
   addr       072edb
   type       ShutterContact
   Readings:
     2015-01-03 22:10:54   battery         ok
     2015-01-03 22:10:54   onoff           0
     2015-01-03 22:10:54   state           closed
   Internals:
     interfaces switch_active;battery
Attributes:
   IODev      cm
   alias      Brennerstarts
   room       Heizung
   verbose    2

der HourCounter an sich funktioniert auch einwandfrei, nur der UtilsHourCounter wird nicht "ausgeführt"

Gruß Daniel

John

Hallo Daniel,

hier liegt dein Problem
define Betriebsstunden.EVENT notify Betriebsstunden\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

versuch mal mit
define Betriebsstunden.EVENT notify Betriebsstunden:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

John
CubieTruck Docker Node-Red Tasmota Shelly Homematic-IP

koenigd

Hallo John,

ja super, vielen DANK.

Mit der Syntax der Notifys komme ich immer nocht nicht ganz klar.

Gruß Daniel