FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: John am 08 April 2013, 22:11:55

Titel: Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 08 April 2013, 22:11:55

Das Modul HourCounter ist seit 24.10.2014 Bestandteil von FHEM
(die Zwischenversionen in diesem Thread wurden gelöscht)

WIKI-Link  HourCounter (http://www.fhemwiki.de/wiki/HourCounter)


Ich habe den MAX-Fensterkontakt dazu "missbraucht" die Starts meines Brenners aufzuzeichnen, dabei ist sukzessive das Modul HourCounter entstanden. (Das nunmehr mit beliebigen Ereignissen gefüttert werden kann).

Die Modifikationen am Fensterkontakt habe ich bereits beschrieben:
Link (http://forum.fhem.de/index.php?topic=11720.0)

Über ein Koppelrelais nehme ich das Signal zur Ansteuerung des Betriebsstundenzählers meiner Heizung ab.

Der potentialfreie Kontakt des Relais (ich verwende hier den Öffner)  wird mit den beiden Anschlüssen des
Fensterkontakts verbunden.

Sobald der Brenner aktiv ist, meldet der Fensterkontakt "opened" bzw. onoff:1, andernfalls "closed"

Damit kann man nun die

- die kumulierten Brennerstarts
- die Betriebsstunden über den  Tag
- die Dauer jedes Einschaltvorganges
- das Brenner-Ein Signal über die Zeit

darstellen.


John


Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 10 April 2013, 11:00:36
Hallo John,

das ist ein interessanter Ansatz. Kannst Du mir sagen, mit welchen Befehlen Du den Zähler realisiert hast? Die Stadtwerke haben mir einen neuen Gaszähler mit Kontakt in der 100 Liter-Stelle eingebaut. Den möchte ich mittels eines Fensterkontaktes zum Qube/FHEM übertragen und in FHEM einen Impulszähler generieren, der mir dann den Gasverbrauch pro Std, Tag, Monat usw. anzeigt. Da ich als blutiger Anfänger im Bereiech FHEM schon froh bin, dass ich den Qube abfragen und die Daten meiner Vertile angezeigt bekomme, habe ich noch nicht herausgefunden, wie ich vorgehen und was wo eingetragen werden muss.

Vielleicht kann ich ja von Deinen Erfahrungen partizipieren.

Vielen Dank im Voraus und viele Grüße

funker
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 10 April 2013, 21:09:02
Hallo funker,

mein Skript ist noch in der Testphase und noch nicht so ausgereift, dass ich es dir zumuten kann.

 
Zitat
..
 Den möchte ich mittels eines Fensterkontaktes zum Qube/FHEM übertragen.


Damit solltest du vorweg schon mal beginnen, das ist die Basis für alles andere.
 
Zitat

und in FHEM einen Impulszähler generieren, der mir dann den Gasverbrauch pro Std

geht nicht mit meinem Skript

 
Zitat
, Tag,


das  kann es leisten.

 
Zitat
Monat usw. anzeigt.


das leider nicht.

Aber mit dem Tagesverbrauch findest du ggf. eine Lösung im Forum auch den Monatsverbrauch zu bestimmen.

Melde mich hier wieder, sobald das Skript an Reife gewonnen hat.

John



Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 10 April 2013, 22:10:03
Prima, besten Dank. Da bin ich gespannt.


Schönen Abend noch von

Harald

PS: Ich glaube, ich habe der gleichen Brenner - zumindest sieht die Front genau so aus.
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 19 April 2013, 09:22:19
Hallo John,

bist Du mit Deinem Skript schon weiter gekommen? Wie und wo hast Du den Fensterkontakt an der Heizungssteuerung angeschlossen? Gibt es da bereits einen potentialfreien Kontakt oder hast Du ein zusätzliches Relais eingebaut?

Wahrscheinlich werde ich auch die Laufzeit des Brenners überwachen, da ich keinen modulierenden Brenner habe. Ich denke, das ist besser, als den Gaszähler abzufragen. Wenn dieser nämlich gerade den Kontakt aktiviert hat und die Heizung abschaltet, bleibt das Signal stehen und man muss bei der Abfrage Aufwand betreiben, um das Signal passend zu begrenzen. Das ist bei der Brennerauswertung nicht erforderlich.

Ich würde mich freuen, wenn Du mir Dein Skript überlassen würdest.

Vielen Dank im Voraus und schönes WE

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 19 April 2013, 20:03:11
Hallo Harald,
anbei meine Antwort

Zitat
Wie und wo hast Du den Fensterkontakt an der Heizungssteuerung angeschlossen?

(siehe Anhang / see attachement)

Dies ist der Steckverbinder zum Gasfeuerungsautomat.
BZ ist der Betriebsstundenzähler.
Die Anschlüsse A1,A2 des Ralais (Spulenkontakte) werden an den Nulleiter und an den Kontakt BZ von Stecker 41 angeschlossen.
Achtung: das Potential an BZ beträgt 230VAC. Nur von Personen mit entsprechender Fachkunde durchzuführen.

Der Öffner des Relais wird mit den beiden Enden des Fensterkontakts verbunden.
Das Relais wird mit einer Spulenspannung von 230VAC betrieben.

Zitat
Wahrscheinlich werde ich auch die Laufzeit des Brenners überwachen, da ich keinen modulierenden Brenner habe.
Ich denke, das ist besser, als den Gaszähler abzufragen.
Wenn dieser nämlich gerade den Kontakt aktiviert hat und die Heizung abschaltet,
bleibt das Signal stehen und man muss bei der Abfrage Aufwand betreiben,
um das Signal passend zu begrenzen.
Das ist bei der Brennerauswertung nicht erforderlich.


Beim Brennersignal muss die Pulsdauer vermessen werden.  (cntOntimePerDayHours= Einschaltzeit in Stunden)
Beim Zähler hingegen die Anzahl der steigenden Flanken. ( cntPerDay = kumulierte Starts über den Tag)

Du kannst das Skript für beides verwenden.

Installation

Datei 99_UtilsMaxCounter.pm in das Verzeichnis der FHEM-Skripte einspielen:  /fhem/FHEM
Datei myOnOffHeizung.gplot in das Verzeichnis der Plots einspielen:          /fhem/www/gplot

In FHEM.cfg Shutter definieren:

define SHUTTER.BRENNER MAX ShutterContact 005b4f
Notify auf Sub CounterNotify definieren: (Achtung: Zeilenumbruch durch WEB-Seite, nicht im Original)

define SHUTTER.BRENNER.event notify SHUTTER.BRENNER:onoff.*  { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
Logfile anlegen
# file
define FileLog_SHUTTER.BRENNER FileLog ./log/SHUTTER.BRENNER-%Y.log SHUTTER.BRENNER:(onoff|cntOntimePerDayHours|cntPerDay|cntOntimeIncrement|cntPerDayLast|cntOntimeHours).*
attr FileLog_SHUTTER.BRENNER logtype text
attr FileLog_SHUTTER.BRENNER room KE.HEIZUNG

Plot anlegen
# plot
define weblink_SHUTTER.BRENNER weblink fileplot FileLog_SHUTTER.BRENNER:myOnOffHeizung:CURRENT
attr weblink_SHUTTER.BRENNER label "SHUTTER.BRENNER Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_SHUTTER.BRENNER room KE.HEIZUNG
danach FHEM neu starten.

Inbetriebnahme

unter Unsorted findet sich der automatisch erzeugte AT Befehl

(siehe Anhang / see attachement)
Dies sorgt für den Aufruf um 00:00 Uhr:
Hier die Zählerstände in die LastDay-Werte kopiert und die Aktualzähler resettiert.

nach dem ersten Signalwechsel beim Schutter-Contact sollten die meisten Readings im Shutter zu sehen sein.
Spätesten nach einem Tageswechsel um 00:00 Uhr müssen alle vorhanden sein.

(siehe Anhang / see attachement)

In der Logging-Datei müssen Einträge wie folgt stehen:
2013-04-19_18:40:06 SHUTTER.BRENNER onoff: 1
2013-04-19_18:40:08 SHUTTER.BRENNER cntPerDay: 9
2013-04-19_18:44:43 SHUTTER.BRENNER onoff: 0
2013-04-19_18:44:44 SHUTTER.BRENNER cntOntimeIncrement: 276
2013-04-19_18:44:44 SHUTTER.BRENNER cntOntimePerDayHours:   1.8028
2013-04-19_19:31:08 SHUTTER.BRENNER onoff: 1
2013-04-19_19:31:09 SHUTTER.BRENNER cntPerDay: 10
2013-04-19_19:43:15 SHUTTER.BRENNER onoff: 0
2013-04-19_19:43:16 SHUTTER.BRENNER cntOntimeIncrement: 727
2013-04-19_19:43:16 SHUTTER.BRENNER cntOntimePerDayHours:   2.0047

Nochmal zur Bedeutung der Readings:
cntOntimeHoursLast         Einschaltzeit in Stunden vom letzten Tag
cntOntimeIncrement         Einschaltdauer des letzten Einschaltvorganges in Sekunden
cntOntimePerDay            Einschaltdauer im Zeitformat
cntOntimePerDayHours       Einschaltzeit in Stunden, damit könnte man über UserReadings Verbräuche ermitteln
cntOntimePerDaySeconds     Einschaltzeit in Sekunden, die interne Rechenbasis
cntPerDay            kumulierte Starts über den Tag
cntperDayLast              Starts des letzten Tages

John

Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 19 April 2013, 22:36:20
Hallo John,

herzlichen Dank, dass Du mir (und allen anderen hier) Deine tolle Arbeit zur Verfügung stellst.

Das werde ich am WE mal ausprobieren. Dann kann ich endlich die Laufzeit der Heizung und damit den Gasverbrauch beobachten.

Nochmals danke und ein schönes WE

Harald

PS: An der Fachkenntnis bez. 230V sollte es einem Elektriker nicht mangeln ;-)

Nachtrag 20.4.: Hervorragend, John, habe die Einträge in der fhem.cfg auf meine Verhältnisse angepasst und es klappt besten. Nochmals danke für Deine Hilfe und schönes WE
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 21 April 2013, 10:13:35
Hallo John,

ich habe mich doch entschieden, mittels des Gaszählers meinen Gasverbrauch zu ermitteln, da evtl. in Zukunft ein modulierender Brenner eingesetzt werden soll. Dann klappt das mit der Laufzeit des Brenners nicht mehr.

Grundsätzlich funktioniert das schon einigermaßen. Nun möchte ich das erweitern, dass ich bei der Anzeige der Readings den Verbauch in m³, kWh (m³ * 10.996) pro Tag/Monat/Jahr/gesammt sehen kann. Der Readkontakt des Gaszählers sitzt übrigens auf der 0,1m³-Stelle.

Kannst Du mir sagen, wo Du die Beschreibung der Variablen cntPerDay, cntPerDayLast usw. gefunden hast. Trotz verzweifelter Suche habe ich nichts gefunden. Wahrscheinlich suche ich nach den falschen Begriffen.

Werden die durch Perl zur Verfügung gestellt? Weißt Du, wie man mit den "Readings" rechnen kann (z.B. cntPerDay * 10,996kWh/m³:10= ? kWh/Tag o.ä.) und wie man die Dimmensionen in die Tabelle der Readings einfügen kann? Wird das in der 99_UtilsMaxCounter gemacht?

Viele Grüße, besten Dank für Deine Hilfe und schönen Sonntag

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 21 April 2013, 11:21:45
Hallo Harald,


Kannst Du mir sagen, wo Du die Beschreibung der Variablen cntPerDay, cntPerDayLast usw. gefunden hast. Trotz verzweifelter Suche habe ich nichts gefunden. Wahrscheinlich suche ich nach den falschen Begriffen.

Die wirst du nirgends finden, da diese erst durch das Skript 99_UtilsMaxCounter.pm erzeugt werden.
Du suchst nicht nach den falsche Begriffen, sondern dein Verständnis ist noch falsch.

Das neue Skript liefert die Funktionalitäten zu cntPerDay, cntPerDayLast ...
Du musst nicht woanders suchen, du hast alles in der Hand.

Zitat
Weißt Du, wie man mit den "Readings" rechnen kann (z.B. cntPerDay * 10,996kWh/m³:10= ? kWh/Tag o.ä.) und wie man die Dimmensionen in die Tabelle der Readings einfügen kann?


Es gibt Links eine Leiste mit Links an der Web-Oberfläche mit der Bezeichnung: Commandref.
Dort nach userReadings suchen und die Beispiele ausprobieren.

John

Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 21 April 2013, 12:27:38
Hallo John,

herzlichen Dank. Du hast natürlich völlig Recht. Mein Verständnis der Thematik ist sehr rudimentär. Da muss ich noch viel lernen. Aber Stück für Stück geht es langsam voran.

Ich habe mir aus Deinen Dateien eine myUtilMaxGasCounter.pm und eine myGasCounter.gplot erzeugt, ein paar Anpassungen eingebracht (Namen, Bezeichnungen u.a.), die FHEM.cfg angepasst und was soll ich sagen, es funktioniert!

Jetzt geht's an's Anpassen der Berechnungen, damit die Raedings so angezeigt werden, wie ich möchte.

Deine Arbeit zu den Brennerbetriebsstunden hat mir sehr geholfen, besten Dank nochmal und viele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 15 Mai 2013, 14:03:56
Hallo John,

kannst Du mir einen Tipp geben, wie ich den Wert von cntPerDay ans Ende der Diagrammüberschrift bekomme?

Mit der Metode, die man bei Temperaturplots anwendet - attr weblink_GasZaehler label "GasZaehler $data{curval1} kWh" - klappt es ja nicht.

Wäre schön, wenn Du mir einen Tipp geben könntest.

Viele Grüße

Harald

Hat sich erledigt. Man sollte die Syntax beachten!  ;-)
So ist's richtig: attr weblink_GasZaehler label "GasZaehler $data{currval2} kWh"
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 31 Mai 2013, 19:32:22
Hallo John,

vielleicht kannst Du mir ja nochmal helfen. Meine Kenntnisse und Fähigkeiten in PERL und FHEM sind sehr eingeschränkt. Deshalb verstehe ich auch Deine Vorgehensweise bez. des Gaszählers nicht genug, um statt des MAX-Kontakts einen FS20 KSE einzusetzen.

Ich habe mal fogendes probiert aber natürlich ohne Erfolg:

define GasZaehler FS20 7e7e 02
attr GasZaehler alias Gaszaehler
attr GasZaehler room Heizung
define GasZaehler.event notify GasZaehler set "%EVTPART0 onoff";; {if (Value("GasZaehler") eq "on") {fhem("set %EVTPART1 1") } else {fhem("set %EVTPART1 0") CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}

Ich wollte damit erreichen, dass on und off des KSE umgewandelt werden in onoff: 1 bzw onoff: 0, damit die Werte in Deinem 99_UtilsMaxCounter.pm weiter richtig verarbeitet werden.

Hintergrund ist, dass ich die MAX-Abfrageintervalle verlängern möchte, um die Logeinträge zu vermindern. Den KSE möchte ich benutzen, weil ich den über den CUL direkt abfragen kann und damit (hoffentlich) keine Zählerimpulse durch lange Abfrageintervalle verliere.

Viele Grüße und ein schönes Wochenende

Harald

Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 01 Juni 2013, 10:54:54
Hallo Harald,

schick bitte die Event-Einträge aus dem Event-Monitor zu Deinem Zähler.
Dann kann ich mehr dazu sagen.

Beim Max-Fensterkontakt sieht dies wie folgt aus:

2013-06-01 10:34:53 MAX SHUTTER.BRENNER onoff: 1


Bezogen auf den Aufruf
{ CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
entspricht dann

"%NAME"       SHUTTER.BRENNER
"%EVTPART0"   onoff
"%EVTPART1"   1


"%EVTPART0"  wird aber vom CounterNotify-Skript nicht weiter ausgwertet.
Es gibt also keine Notwendigkeit diesen Begriff zu ändern.

Du solltest dem Skript nur Dinge zumuten, die es auch auswerten kann:
1. Parameter ist der Name des auslösenden Objektes
2. Parameter ist egal
3. Parameter ist 0 oder 1

Vermutlich musst du einfach nur die Trigger-Bedingung im notify anpassen:

Zitat
define SHUTTER.BRENNER.event notify SHUTTER.BRENNER:onoff.*




John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 01 Juni 2013, 12:05:23
Hallo John,

erstmal besten Dank für Deine Antwort.

Der KSE hat in der Protokollzeile "Datum/Zeit", "Name (also GasZaehler)" und "on" bzw "off" (nur mit Leerzeichen getrennt) stehen. Die Zuordnung von %Name, %EVTPART0 usw. habe ich schon herausgefunden. Ich wusste aber nicht, dass nur %EVTPART1 augewertet wird (ist doch richtig, oder?).

Heist das, ich muss nur dafür sorgen, dass %EVTPART1 auf 1 bei on und auf 0 bei off gesetzt wird oder funktioniert es auch, wenn %EVTPART1 on oder off beinhaltet?

Könnte es so klappen?

define FileLog_GasZaehler FileLog ./log/GasZaehler-%m.log GasZaehler:.*
define GasZaehler.event notify GasZaehler:.*  { CounterNotify("%NAME","%EVTPART0","%EVTPART1");; { if ( "$value{GasZaehler}" eq "on" ) { fhem("set (%EVTPART1, onoff) 1 ) } else { fhem("set (%EVTPART1, onoff) 0 ) }}

Ich möchte Dein Modul 99_UtilsMaxCounter.pm etwas angepasst verwenden. Muss ich dann dort auch "onoff" in "on" ändern, z.B. hier:  my $strState = ReadingsVal($strShutter,"onoff","0"); ?


Viele Grüße und schönes WE

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 03 Juni 2013, 21:02:29
Hallo Harald,
bevor wir noch ein paar Mal die Runde drehen:

schick bitte die Event-Einträge  aus dem Event-Monitor zu Deinem Zähler.
Eine Beispielzeile, wie ich dies im vorherigen Post gemacht habe, dann gehts weiter.

John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 04 Juni 2013, 13:19:51
Hallo John,

herzlichen Dank, dass Du bereit bis, mir zu helfen und entschuldige bitte, wenn ich nerve.

Im GasZaehler-LogFile steht

2013-06-05_16:16:06 GasZaehler on
2013-06-05_16:16:10 GasZaehler off
2013-06-05_16:21:47 GasZaehler on
2013-06-05_16:21:52 GasZaehler off
2013-06-05_16:22:01 GasZaehler on
2013-06-05_16:22:04 GasZaehler off


Ich habe dachte, ich hätte es mittels Deiner Tipps, Event-Monitor und Logfile (verbost auf 5) soweit hinbekommen, aber ich glaube, das ist nicht richtig.

Hier ein Auszug aus meiner fhem.cfg


#
# GasZaehler
#
define GasZaehler FS20 7e7e 02
define GasZaehler.event notify GasZaehler:(on|off).* { CounterNotify("%NAME","onoff","%EVTPART0");;}
#define FileLog_GasZaehler FileLog ./log/GasZaehler-%m.log GasZaehler:(onoff|cntOntimePerDayHours|cntPerDay|cntOntimeIncrement|cntPerDayLast|cntOntimeHours).*
define FileLog_GasZaehler FileLog ./log/GasZaehler-%m.log GasZaehler:(onoff|cntPerDay).*
attr FileLog_GasZaehler alias GasZaehler
attr FileLog_GasZaehler logtype text
attr FileLog_GasZaehler room Diagramm.log
#


Und hier der Inhalt des Logfiles:

2013.06.04 13:09:19 5: CUL/RAW: /F7E7E02112D
2013.06.04 13:09:19 5: CUL: F7E7E0211 -51.5
2013.06.04 13:09:19 5: CUL dispatch 810b04xx0101a0017e7e020011
2013.06.04 13:09:19 4: FS20 GasZaehler on
2013.06.04 13:09:19 5: Triggering GasZaehler (1 changes)
2013.06.04 13:09:19 5: Notify loop for GasZaehler on
2013.06.04 13:09:19 5: Triggering GasZaehler.event
2013.06.04 13:09:19 5: Cmd: >{ CounterNotify("GasZaehler","onoff","on");}<

2013.06.04 13:09:26 5: CUL/RAW: /F7E7E02002F
2013.06.04 13:09:26 5: CUL: F7E7E0200 -50.5
2013.06.04 13:09:26 5: CUL dispatch 810b04xx0101a0017e7e020000
2013.06.04 13:09:26 4: FS20 GasZaehler off
2013.06.04 13:09:26 5: Triggering GasZaehler (1 changes)
2013.06.04 13:09:26 5: Notify loop for GasZaehler off
2013.06.04 13:09:26 5: Triggering GasZaehler.event
2013.06.04 13:09:26 5: Cmd: >{ CounterNotify("GasZaehler","onoff","off");}<


Wäre toll, wenn Du mir weiter helfen könntest.

Viele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 05 Juni 2013, 23:15:24
Hallo Harald,

muss mich nochmal korrigieren:

sub CounterNotify($$$) {
  my $modul="CounterNotify";
  my ($strShutter,$strOnOff,$strState)=@_;
  InternalTimer(gettimeofday()+1,$MaxTimerID, $strShutter, 0);
}

hier wird beim Aufruf von InternalTimer nur $strShutter als der Name des devices uebergeben.
Alles andere spielt keine Rolle.

Ein Eingriff wäre an anderer Stelle nötig:

sub MaxCounterAtDo()
{

  Log 2,"MaxCounterAtDo" if ($DEBUG == 1);
  my $strShutter="SHUTTER.BRENNER";  # fix festlegen
  my $hash = $defs{$strShutter};
  my $cntPerDay =ReadingsVal($strShutter,"cntPerDay","0");
  my $strState = ReadingsVal($strShutter,"onoff","0");


mit  my $strState = ReadingsVal($strShutter,"onoff","0") lese ich den onoff Parameter direkt aus den Readings.
Dieses Reading liefert 0 oder 1.

Also such nach den passenden Reading für dein on, off.
Wenn du on,off zu 0 / 1 konvertieren willst kannst du das so machen:

 if ($strState eq "on")
  {
    $strState=1;
  }
 
  if ($strState eq "off")
  {
    $strState=0;
  }
   Log 3,"strOnOff:$strOnOff";  # wert im logfile ausgeben, zur kontrolle


Ich hoffe das hilft weiter.

John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 07 Juni 2013, 14:34:45
HAusführungallo John,

hezlichen Dank für Deine Ausführungen. Dank Deiner Hilfe, div. Literatur (Heimautomation mit fhem, Perl kurz und gut, Einführung in Perl, suchen und probieren) ist ein winziges Licht am Ende des langen Tunnels zu sehen.

Leider habe ich noch keine Erklärung gefunden, die mir klar macht, wie FHEM überhaupt funktioniert. Weißt Du, ob die div. Module (z.B. 99_UtilsMaxCounter.pm zyklisch aufgerufen werden oder wird das durch Aufruf von Subroutinen wie CounterNotify bzw. MaxConterAtDo bewerkstelligt? Werden die Werte mittels z.B. %NAME,%EVTPART0 usw. und wie an das Modul übergeben und wie schickt das Modul die ermittelten Parameter (Readings) an FHEM bzw. ins entsprechende Logfile?

Fragen über Fragen ???

Weißt Du, wo ich da was nachlesen kann, wenn möglich in deutsch, da meine Englischkenntnisse nicht zum Verstehen der Materie ausreichen.

Vielen Dank nochmal und schönes Wochenende

Harald

Nachtrag: Es wird langsam heller! Bin gerade beim Kapitel "Subroutinen ...", da werden einige meiner Fragen beantwortet
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 Juni 2013, 20:32:16
Hallo Harald,

ich kann dir natürlich zu 99_UtilsMaxCounter.pm  Fragen beantworten, da ich das Modul erstellt habe.

Sub CounterNotify wird zunächst über den Event aufgerufen, den man in FHEM.cfg definiert.
define SHUTTER.BRENNER.event notify SHUTTER.BRENNER:onoff.*  { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}

Hier angekommen wird ein interner Timer angestossen, der innerhalb der nächsten Sekunde aufgerufen wird.
 InternalTimer(gettimeofday()+1,$MaxTimerID, $strShutter, 0);
Dieser ruft über indirekt die Variable $MaxTimerID  die Sub "CounterTimer" auf.
Ich musste diesen Trick anwenden, da innerhalb eines Notify-Aufrufs kein Readings angelegt werden können.

Der Timer ruft nun seinerseits mit 1 Sek. Verzögerung die Sub CounterTimer auf, die als Parameter via $strShutter
den Namen des auslösenden Objektes mitbekommt.

Die eigentliche Arbeit verrichtet Sub CounterTimer.

Das ist so der grobe Ablauf der Ereignisse.

Sub UtilsMaxCounter_Initialize($$) wird beim Laden des Moduls aufgerufen (also z.B. beim Start vom FHEM) und initialisiert
via
 fhem("define MaxCounterAT at *00:00:00 {MaxCounterAtDo();;}");
ein AT-Commando, so dass um 00:00 Uhr die Sub MaxCounterAtDo aufgerufen wird.

Diese aktualisiert die Readings die tagesbezogen zu berechnen sind.

John

 
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 09 Juni 2013, 19:38:09
Hallo John,

vielen Dank für Deine Erklärungen. Damit blicke ich schon etwas besser durch ;-)

Ich habe jetzt folgendes gemacht:

fhem.cfg:

define GasZaehler.event notify GasZaehler:(on|off).* { CounterNotify("%NAME","%EVTPART1","%EVTPART0");;}

define FileLog_GasZaehler FileLog ./log/GasZaehler-%m.log GasZaehler:(on|off|onoff|cntOntimePerDayHours|cntPerDay|cntOntimeIncrement|cntPerDayLast|cntOntimeHours).*


In der 99_UtilsMaxCounter.pm:

sub CounterNotify($$$) {
  my $modul="CounterNotify";
  my ($strShutter,$strOnOff,$strState)=@_;
  {if ($strState eq "on") {$strState="0";} else {$strState="1";}};
  $strOnOff="onoff";
Log 3, "strShutter:$strShutter";
Log 3, "strOnOff:$strOnOff";
Log 3, "strState:$strState";
  InternalTimer(gettimeofday()+1,$MaxTimerID, $strShutter, 0);
}


Das habe ich hier gemacht, weil in MaxCounterAtDo() (wie Du vorgeschlagen hattes) Readings eingelesen werden, die ja noch nicht da sind.

Das ergibt im Logfile:

2013.06.09 19:22:23 5: CUL: F7E7E0211 -53
2013.06.09 19:22:23 5: CUL dispatch 810b04xx0101a0017e7e020011
2013.06.09 19:22:24 4: FS20 GasZaehler on
2013.06.09 19:22:24 5: Triggering GasZaehler (1 changes)
2013.06.09 19:22:24 5: Notify loop for GasZaehler on
2013.06.09 19:22:24 5: Triggering GasZaehler.event
2013.06.09 19:22:24 5: Cmd: >{ CounterNotify("GasZaehler","%EVTPART1","on");}<
2013.06.09 19:22:24 3: strShutter:GasZaehler
2013.06.09 19:22:24 3: strOnOff:onoff
2013.06.09 19:22:24 3: strState:0
2013.06.09 19:22:24 5: CUL/RAW: /F7E7E031128

2013.06.09 19:22:31 5: CUL: F7E7E0200 -51.5
2013.06.09 19:22:31 5: CUL dispatch 810b04xx0101a0017e7e020000
2013.06.09 19:22:31 4: FS20 GasZaehler off
2013.06.09 19:22:31 5: Triggering GasZaehler (1 changes)
2013.06.09 19:22:31 5: Notify loop for GasZaehler off
2013.06.09 19:22:31 5: Triggering GasZaehler.event
2013.06.09 19:22:31 5: Cmd: >{ CounterNotify("GasZaehler","%EVTPART1","off");}<
2013.06.09 19:22:31 3: strShutter:GasZaehler
2013.06.09 19:22:31 3: strOnOff:onoff
2013.06.09 19:22:31 3: strState:1
2013.06.09 19:22:31 5: CUL/RAW: /F7E7E03002C


Ich finde, das sieht schon ganz gut aus, oder?

Die Readings des GasZaehlers sehen so aus:

Readings
cntOntimeHoursLast     0 2013-06-09 18:53:18
cntOntimeIncrement     0 2013-06-09 18:53:18
cntOntimePerDay        0 2013-06-09 18:53:18
cntOntimePerDayHours   0 2013-06-09 18:53:18
cntOntimePerDaySeconds 0 2013-06-09 18:53:18
cntPerDay              0 2013-06-09 18:53:18
cntPerDayLast          0 2013-06-09 18:53:18
cntStateOld            0 2013-06-09 18:53:18
state                 on 2013-06-09 19:41:52


Es ändert sich aber nur state von on auf off und umgekehrt. Die anderen Werte bleiben auf 0.

Allerdings werden in das GasZaehler-Logfile auch nur on und off geschrieben, aber keine Readings wie onoff (mit nachfolgender 1 oder 0), cntPerDay usw. die ja für die Plotts gebraucht werden.

Irgendwo muss ich da noch was ändern, aber ich habe noch nicht gefunden wo.

Kannst Du mir nochmal helfen?

Besten Dank für alles, viele Grüße und noch einen schönen Sonntagabend

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 09 Juni 2013, 22:50:05
Hallo Harald
hier hakt es noch
sub CounterNotify($$$) {
  my $modul="CounterNotify";
  my ($strShutter,$strOnOff,$strState)=@_;
  {if ($strState eq "on") {$strState="0";} else {$strState="1";}};
  $strOnOff="onoff";
Log 3, "strShutter:$strShutter";
Log 3, "strOnOff:$strOnOff";
Log 3, "strState:$strState";
  InternalTimer(gettimeofday()+1,$MaxTimerID, $strShutter, 0);
}


Alle Variable die innerhalb einer Sub definiert sind, haben auch nur hier ihre Gültigkeit.
Du kannst von aussen nicht auf diese zugreifen, sie sind sozusagen privat.
Das gilt für z.B. $strOnoff oder $strState und alle anderen.
Im Gegensatz dazu ist  $MaxTimerID global sichtbar und kann an jeder Stelle referenziert werden.

Der Sub InternalTimer werden 4 Parameter übergeben:
a. Startzeitpunkt für die übergebene Sub des Folgeparameters
b. mit MaxTimerID welche Sub nach 1 Sek. aufzurufen ist (nämlich CounterTimer)
c. Parameter für CounterTimer (hier der Objektname der den Event ausgelöst hat)
d. ??

CounterTimer bekommt als nur den Objektnamen "GasZaehler" mit und muss sich alle anderen Informationen,
von anderer Stelle besorgen.

Du wirst dich also mit sub CounterTimer befassen müssen:
hier steht die Anweisung:
 my $strState = ReadingsVal($strShutter,"onoff","0");

Diese liest direkt aus den Reading "onoff" des übergebenen Objektes  aus.
Such dir also das passende Reading von deinem Gaszähler aus und korrigiere onoff entsprechend.

Und dann eben noch wie von dir schon umgesetzt, den wert ON zu 1 und OFF zu 0 konvertieren.

John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 10 Juni 2013, 10:18:58
Hallo John,

besten Dank für Deine Hilfe.

Wie Du oben sehen kannst, habe ich kein Reading onoff. Der FS20 KSE liefert nur on und off, der MAX-Kontakt aber onoff mit einem Wert von 0 oder 1. Das muss ich erst erzeugen, um dann in Dein Modul einsteigen zu können.

Es ist doch so, dass die aufrufende Routine die zu übergebenden Parameter in das Hash-Array @_ übergibt.
In sub CounterTimer ($) holst Du $strShutter dort heraus. Ich habe noch nicht verstanden, was Du in der nächsten Zeile machst:
my $hash = $defs{$strShutter};  -- was ist $defs für eine Variable?

Wenn ich in sub CounterNotify($$$) schreibe
 
InternalTimer(gettimeofday()+1,$MaxTimerID, $strShutter, $strState, 0);

und dafür

my (strShutter, $strState) = $defs{$strShutter}; dann my $strState = ReadingsVal ...... weglasse,

würde das gehen?

Viele Grüße

Harald

PS: Wenn es mir gelänge, bei einem Ereignis von on bzw. off in mein GasZaehler-Log abhängig vom Zustand "GasZaehler onoff: 0" bzw. "GasZaehler onoff: 1" zu schreiben, dann könnte ich Dein Modul ohne Änderungen nutzen, oder? Leider habe ich noch nicht gefunden, wie ich das bewerkstelligen könnte.

Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 11 Juni 2013, 23:41:37
Hallo Harald,
ich möchte dich nicht in die Code-Wüste schicken, daher eine einfache Lösung, wie du deinem Gaszähler ein
onoff Reading verpassen kannst.

Um deinen Gaszähler zu simulieren habe ich einen dummy definiert, der ON und OFF liefert
define GasZaehler dummy
attr GasZaehler setList state:OFF,ON
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler","state",0) eq "ON")?1:0;; }
attr GasZaehler room System

Mit der 3. Zeile wird das Reading onoff angelegt, sobald sich state ändert.

Dann sieht man das neue Reading onoff.

(siehe Anhang / see attachement)


Nun noch wie gehabt den notify definieren:
define GasZaehler.event notify GasZaehler:onoff.*  { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr GasZaehler.event room System

Nach dem dem Wechsel von  ON auf OFF sind auch die übrigen Readings zu sehen:

(siehe Anhang / see attachement)


Die Lösung für dich ist also die Zeile
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler","state",0) eq "ON")?1:0;; }

John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 12 Juni 2013, 11:36:44
Hallo John,

herzlichen Dank dafür, dass Du Dir so viel Mühe machst, um mir zu helfen.

Ich habe Deinen Vorschlag eingegeben, aber leider erhalte ich folgende Fehlermeldung:

GasZaehler already defined, delete it first GasZaehler: unknown attribute setList, .....

Hier ist der Auszug aus meiner fhem.cfg:
# GasZaehler neu
#
define GasZaehler FS20 7e7e 02
#
define GasZaehler dummy
attr GasZaehler setList state:ON,OFF
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler",state,0) eq "ON")?1:0;; }
attr GasZaehler room MAX
#
define GasZaehler.event notify GasZaehler:(onoff).* { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
#


Da hab' ich was angefangen! Es ist -zumindest für mich- nicht so einfach (trotz lesen, lesen, lesen ... probieren, probieren ...) fhem bzw. perl zu überreden, das zu tun, was ich möchte.

Ohne Deine Hilfe hätte ich (glaube ich) schon das Handtuch geworfen. Nochmals besten Dank für Deine Geduld.

VIele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Puschel74 am 12 Juni 2013, 12:05:37
Hallo,

das
Zitat
GasZaehler already defined, delete it first

kommt daher das du GasZaehler zweimal definieren willst.

Einmal so
Zitat
define GasZaehler FS20 7e7e 02

und dann nochmal als Dummy
Zitat
define GasZaehler dummy


Das geht so nicht da Namen nur einmal vergeben werden dürfen.
Bei einem musst du dich entscheiden wie du diesen umbennen willst - und auch den Code dann entsprechend anpassen.

Hier
Zitat
unknown attribute setList, .....

musst du FHEM erst das attribute setList schmackhaft machen.
In der fhem.cfg hast du eine Zeile die so anfängt
Zitat
attr global userattr ...

... stellen dann die Attribute dar die du verwenden möchtest.
Hier einfach ein setList anhängen, speichern und die Fehlermeldung ist verschwunden.
Also so:
attr global userattr setList webCmd <usw.>

Grüße
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 12 Juni 2013, 14:55:07
Danke Puschel74 für die Hinweise. Nachdem ich diese Änderungen durchgeführt habe, klappt es, wenn ich im Webinterface über den Button "Set GasZaehler state on" bzw. off die Impulse aktiviere.
Leider geht es noch nicht, wenn ich den FS20 KSE betätige. Dann ändert sich zwar der Status des 2. KSE-Kanals aber nicht der des 1., auf den der Zähler reagieren soll. Auch im FileLog wird kein Ereignis angezeigt. Aus irgend einem Grund wird der Kontakt nicht erkannt sondern nur bei Änderung übers WEB-Interface.

Aber ich bin dank Eurer Hilfe schon so weit gekommen, dann werde ich den Rest auch noch schaffen.

Viele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Puschel74 am 12 Juni 2013, 16:37:27
Hallo,

ich kenn den KSE zwar nocht hab aber mal schnell die Produktseite überflogen.

Zitat
Dann ändert sich zwar der Status des 2. KSE-Kanals aber nicht der des 1., auf den der Zähler reagieren soll.


Dann sendet dein KSE nur auf Kanal 2 oder in FHEM ist Kanal 1 nicht definiert würde ich mal so ins Blaue raten.

Grüße

Edith: Oder der Jumper für Kanal 1 ist nicht gesteckt und der Ein- und Ausschaltbefehl werden recht knapp hinter einander gesendet (wobei das aber eher nichts ausmachen dürfte).
evtl. mal den Jumper für Kanal 1 stecken - dann sollte lt. Bedienungsanleitung zwischen Ein- und Ausschaltbefehl min. 3 Sekunden liegen.
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 12 Juni 2013, 17:47:54
Hallo Puschel74,

der KSE ist schon richtig eingestellt. Wenn ich den 1. Kanal wie den 2. programmiere, funktionieren beide gleich und die Logs sind auch gleich. Daran kann es nicht liegen.

Ich vermute, es liegt daran, dass in der fhem.cfg das "define GasZaehler FS20 7e7e 02" fehlt (wegen define GasZaehler dummy) und fhem m.E. nicht weiß, dass es auf den "FS20 7e7e 02" (das ist Kanal 1) reagieren soll, oder liege ich da falsch?
Ich benötige (glaube ich) beides ...GasZaehler FS20... und ...GasZaehler dummy. Wenn ja, wie bekomme ich das hin, ohne dass die sich beißen?

Viele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Puschel74 am 12 Juni 2013, 18:06:34
Hallo,

Zitat
Wenn ja, wie bekomme ich das hin, ohne dass die sich beißen?


Indem du beiden unterschiedliche Namen gibst ;-)

FHEM sind die Namen erstmal egal - sie dienen ja nur uns zur besseren Lesbarkeit.
Du kannst den Dummy ja evtl. GasZaehler_dummy nennen (nur als Vorschlag).

Grüße
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 12 Juni 2013, 23:31:17
Hallo Harald,

dein Skript sollte so aussehen

define GasZaehler FS20 7e7e 02
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler",state,0) eq "ON")?1:0;; }
define GasZaehler.event notify GasZaehler:(onoff).* { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}


Die 2. Zeile liefert dir das gewünschte onoff-Reading für deinen GasZaehler.

Ich habe den Dummy verwendet, weil ich ja keinen FS20 Zähler besitze.
Zitat

Um deinen Gaszähler zu simulieren habe ich einen dummy definiert, der ON und OFF liefert


John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 13 Juni 2013, 09:46:26
Hurraaa !!! Es klappt !

Ich danke Euch für Eure Unterstützung und tatkräftige Hilfe! Ich war schon fast so weit, dass ich fhem einstampfen wollte. Aber nun habt Ihr mich und mein fhem gerettet. Außerdem habe ich viel bei meinen Experimenten und durch Euch gelernt.

So klappt es jetzt, so wie ich will und ich kann John's Modul nutzen:
define GasZaehler FS20 7e7e 02
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler","state",0) eq "on")?0:1;; }
attr GasZaehler room MAX
define GasZaehler.event notify GasZaehler:(onoff).* { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
define FileLog_GasZaehler FileLog ./log/GasZaehler-%m.log GasZaehler:(onoff|cntOntimePerDayHours|cntPerDay|cntOntimeIncrement|cntPerDayLast|cntOntimeHours).*

Und hier ein Auszug aus dem FileLog:2013-06-13_09:35:03 GasZaehler onoff: 0
2013-06-13_09:35:05 GasZaehler cntOntimeIncrement: 152
2013-06-13_09:35:05 GasZaehler cntOntimePerDayHours: 2996.2567
2013-06-13_09:35:05 GasZaehler onoff: 0
2013-06-13_09:35:36 GasZaehler onoff: 1
2013-06-13_09:35:38 GasZaehler cntPerDay: 3
2013-06-13_09:35:38 GasZaehler onoff: 1


Nochmals herzlichen Dank für alles und viele Grüße

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 14 Juni 2013, 15:20:51
Hallo zusammen,

nachdem mein Problem dank John und Puschel74 gelöst ist, kommt der nächste Wunsch ;-)

Sind zwischen den Impules des GasZählers lange Pausen, wird in der Zwischteit nichts ins Log geschrieben uns somit auch nichts geplottet. Das sieht nicht so schön aus.

Nun habe ich versucht, mit "define GasZaehler.at at +*00:10:00 ......" zyklisch den augenblicklichen Zustand zu plotten. Ich vermute, dass ich zuerst den Istzustand erneut ins FileLog schreiben muss.

Wie kann ich dafür sorgen, dass die Werte entweder über notify oder at ins Log geschrieben und damit auch geplottet werden?
Wo muss ich meine Zeile positionierten und wie beenden?
Oder ist watchdog besser geeignet?

Herzlichen Dank im Voraus und schönes WE

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Puschel74 am 14 Juni 2013, 19:31:08
Hallo,

einer neuer Beitrag wäre besser für eine neue Frage ;-)

Aber egal, schau dir mal addLog an - das macht genau das was du willst.

Zu bestimmten Zeitpunkten (00:05 / 23:55 - oder wie du willst) oder alle x Minuten den Status des Sensors ins Logfile eintragen.
Ich benutz das bei uns auch bei einigen Sensoren - klappt einwandfrei.

Grüße

P.S.: Ich hab grad keinen Link zur Hand aber ich schau nachher mal in meiner Konfig nach und poste dir den Eintrag dafür.
Dir auch ein schönes Wochenende
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 14 Juni 2013, 22:51:22
Hallo Puschel74,

herzlichen Dank für Deinen prima Tipp. Ich hab's gerade eingebaut und funktioniert prächtig. Jetzt sehen die Diagramme ordentlich aus.

Von dieser Funktion hatte ich bisher noch garnichts gelesen.

Nochmals danke und schönes WE. Wetter soll ja ganz brauchbar werden.

Harald
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 14 Juli 2013, 22:46:38
Für Interessierte noch der Zusammenhang zwischen
- Verlauf der Ventilparameter
- Betriebsstundenzähler-Parameter
- Aussentemperatur

im gemeinsamen Bild


(siehe Anhang / see attachement)


John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: koenigd am 07 September 2013, 22:38:00
Hallo John,

meine Ölheizung von Buderus hat auch einen 230V Anschluss für einen Betriebsstundenzähler. Es ist ein Einschubfach für einen analogen Zähler vorgesehen.

Jetzt würde ich gerne Ideee umsetzten, welchen Koppelrelais kommt bei dir zum Einsatz??? bzw. welche Parameter muss das Relais auf der Seite des Max-Fensterkontaktes haben.

Gruß Daniel
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 September 2013, 23:27:14
Hallo Daniel,

ich verwende folgendes Relais (samt Zubhör Relais-Sockel) bezogen über ELV
http://www.elv.de/hongfa-relais-230-v-4-oeffner-schliesser-hf18fh-a230-4z1d.html (http://www.elv.de/hongfa-relais-230-v-4-oeffner-schliesser-hf18fh-a230-4z1d.html)

Die Spule wird mit 230VAC betrieben, also direkt vom Ausgang des Betriebsstunden-Signals.
Die potentialfreien Kontakte des Relais verwenden ich wie beschrieben anstelle des Reed-Relais.

John
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 24 September 2013, 21:45:14
Hallo John,

ich möchte mich an dieser Stelle auch für deine Idee und die Veröffentlichung an dieser Stelle bedanken. Manchmal braucht man nur einen Startpunkt und man kann die Dinge von dort aus selbst weiterentwickeln bzw. anpassen.
Ich habe deine Idee mit einem FHTTK Fensterkontakt an meiner Oelheizung umgesetzt. Mangels Betriebstundenzähleranschluß habe ich diesen an T2 angeschlossen (Funktioniert zuverlässig, da ich vernachlässigbare Vorlaufzeiten bis zum Brennerstart habe). Dein Modul habe ich an meine Bedürfnisse angepasst und ergänzt.

Das Ganze sieht in FHEM dann so aus:

(siehe Anhang / see attachement)


Nochmals besten Dank
Christof
Titel: Aw: Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 25 September 2013, 20:14:35
Hallo Christof,

danke für die Rückmeldung.

Deine Monatsansicht ist eine gute Idee.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: justme1968 am 17 Oktober 2013, 22:42:37
ich versuche gerade deine idee die betriebsstunden der heizung mit trennrelais von fhem auswertbar zu machen um zu setzen. aber nicht per fensterkontakt und funk sondern per arduino und firmata.

leider habe ich gerade das problem das nach ein paar schaltvorgängen sich scheinbar der arduino aufhängt. da das nur passiert wenn er am relais hängt und nicht wenn ich die pins von hand verbinde habe ich den verdacht das über die 220v seite so viele störungen auf die sekundär seite kommen das der avr komplett durcheinander kommt.

hast du bei dir schon mal so etwas beobachtet ?

gruss
  andre
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 17 Oktober 2013, 22:48:05
Nein, der Fensterkontakt hat sich noch nie aufgehängt.

Ganz, ganz selten fehlt mal ein Impuls.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Luigi am 02 November 2013, 16:30:51
Hallo John,

ich verwende das Modul als Betriebsstundenzähler für meine Ölheizung und es funktioniert wunderbar. Nun möchte ich gerne einen weiteren Betriebsstundenzähler (Heizungspumpe) damit  realisieren. Ist dies überhaupt möglich wenn in der sub MaxCounterAtDo() das Device fix festgelegt wird? Wie könnte man das realisieren? Könnte man mehrere Devices an diese Funktion übergeben?

Gruß
Luigi
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 02 November 2013, 16:50:57
Hallo Luigi,
Zitat
Nun möchte ich gerne einen weiteren Betriebsstundenzähler (Heizungspumpe) damit  realisieren. Ist dies überhaupt möglich wenn in der sub MaxCounterAtDo() das Device fix festgelegt wird?

das hast du richtig erkannt, das Skript ist noch nicht universell formuliert.

Ich arbeite derzeit an den Nachfolger, dem Modul HourCounter.
Damit ist das was du vor hast natürlich möglich.

Es ist nicht mehr auf MAX-Shutter-Kontakte begrenzt, sondern kann auf beliebige FHEM Events getriggert werden (ähnlich wie notify)
Demnächst mehr zu diesem Thema.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Luigi am 02 November 2013, 17:22:37
OK, dann wart ich mal und freu mich schon auf das neue Modul.

Gruß
Luigi
Titel: Betriebsstundenzähler mit Max-Fensterkontakt (Modul HourCounter)
Beitrag von: John am 16 November 2013, 00:24:30
zum Thema Betriebsstunden/Verbrauchszähler gibt es vorab einen Wiki-Eintrag zum neuen Modul:

http://www.fhemwiki.de/wiki/HourCounter (http://www.fhemwiki.de/wiki/HourCounter)

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 16 November 2013, 11:30:28
Guten Morgen John,

Du machst ja tolle Sachen! Ich habe Deinen alten Betriebsstundenzähler auf Ereigniszählung für meinen Gaszähler umgebaut. Tages- und Summenzähler funktionieren aber die Monats- und Jahreserfassung noch nicht so richtig. Da kommt Dein neues Mudul gerade richtig. Entweder ich kann es dirkt für meine Zwecke verwenden oder ich kann lernen, wie man die div. Summen für die Tages-, Wochen-, Monats- und Jahreserfassung verarbeitet.

Ich bin schon sehr gepannt.

Viele Grüße

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 16 November 2013, 11:50:10
Hallo Harald,
ich habe schon gehofft, dass du dich meldest und bei der Evaluierung unterstützt.

Die Sache mit den Tages- Wochen und Monatswerten hat mich ziemlich beschäftigt.
Es wird Zeit, dass das Modul nun gut getestet wird.

Vielen Dank für Deine Unterstützung, vor allem auch beim Max-Scanner. Es ist auch eine große Hilfe für mich, wenn
du Anfragen anderer User übernimmst.

Ich werde das Wiki nach und nach mit weiteren Informationen befüllen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 16 November 2013, 15:28:07
Hallo John,

so, ich hab's soeben geschafft, das Modul einzubinden und ein Diagramm zu erstellen. Es läuft erstmal parallel zu meinem Zähler, gesteuert vom selben Kontakt. Ich zähle z.Z. die Impulse des Gaszählerkontakts 1/0,1m³).  Mal sehen, ob ich alles richtig gemacht habe und ich die gleichen Werte bekomme.
Wenn ich das richtig sehe, ermittelst Du im Moment die Anzahl, On- und Offzeit pro Tag und gesamt. Ist das richtig?

Ach ja, was die Beantwortung der Userfragen anbetrifft, das tue ich gerne, so gut ich kann und soweit mein Wissen reicht. Falls ich irgendwann mal Unsinn schreibe, würde ich mich freuen, wenn Du oder andere das korrigieren würden.

Viele Grüße

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 16 November 2013, 15:41:20
Zitat
Wenn ich das richtig sehe, ermittelst Du im Moment die Anzahl, On- und Offzeit pro Tag und gesamt. Ist das richtig?

Ja genau so ist es.

Alles andere wird von diesen Werten abgeleitet.

Das kann so vielfältig sein, dass ich mich dazu entschieden haben einen Teil als Standardpaket zu liefern.
Der andere Teil muss anwendungsspezifisch implementiert werden.

Allerdings biete ich viele Hilfen an, damit diese Arbeit erleichtert wird.

Mehr dazu im Wiki.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 18 November 2013, 10:51:52
Hallo John,

das Modul läuft bei mir seit ein paar Tagen im Modus "define GasZaehler_2 HourCounter GasZaehler:onoff:.1 GasZaehler:onoff:.0".
Es sieht so aus, als wenn alles soweit klappt. Ob die berechneten Zeiten stimmen, habe ich nicht überprüft.
Was mir zum Testen fehlt (reine Bequemlichkeit  ;) ), ist die Manipulation von "state" mittels "set ...". Mit "setreading ..." geht's natürlich.

Ich habe noch ein paar Unregelmäßigkeiten bei den Kurven "cntPerDay" (in meinem Zählermodul) bzw. "value". Es wird nicht immer hochgezählt, wenn der Gaszählerkontakt gearbeitet hat. Eine mögliche Ursache ist "addLog". Ich hab es gerade deaktiviert. Mal sehen, ob es eine Änderung gibt. Es gibt hier (http://forum.fhem.de/index.php/topic,16524.msg107596.html#msg107596) Beiträge dazu.

Viele Grüße

Harald
Nachtrag: Die Module zählen mit ziemlicher Sicherheit richtig, lediglich die Verbrauchskurven (cntPerDay und value) stimmen in dem Diagrammen nicht exakt mit den gezählten Impulsen überein. Ein Vergleich der 3 Gerätelogs mit den entsprechenden Diagrammen hat das so ergeben.

Achja, noch etwas: Ich habe gesehen, dass Du in den Zeilen 259 und 265 smartmatch (~~) verwendest. Ich meine, dass das nicht mehr verwendet werden sollte, da es auf "experimentell" gesetzt wurde. Hier (http://forum.fhem.de/index.php/topic,15261.msg103375.html#msg103375) wurde schon darüber diskutiert.

Noch eine Frage: Wie kann ich bei diesem Modul die Menge der Logausgaben beeinflussen?
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 18 November 2013, 20:01:36
Zitat
Achja, noch etwas: Ich habe gesehen, dass Du in den Zeilen 259 und 265 smartmatch (~~) verwendest. Ich meine, dass das nicht mehr verwendet werden sollte, da es auf "experimentell" gesetzt wurde. Hier wurde schon darüber diskutiert.

Habe ich für die nächste Release schon geändert.

Zitat
Noch eine Frage: Wie kann ich bei diesem Modul die Menge der Logausgaben beeinflussen?
wie üblich über verbose

Danke fürs Testen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 19 November 2013, 10:36:09
Guten Morgen John,

habe ich das richtig verstanden, dass man dann, wenn man die Zykluszeiten nicht benötigt, das so schreiben kann
 "define GasZaehler_2 HourCounter GasZaehler:onoff:.1 # GasZaehler:onoff:.0"?

Wenn ich das tue ( um 09:39) , wird bei jeder positiven Flanke countPerDay um 2 erhöht aber value nicht verändert.

Einen Auszug aus dem Gerätelog und die Diagramme hänge ich an. Das Diagramm GasZaehler1 brauchst Du nicht berücksichtigen. Das ist der 2. Kanal vom Gaszählerkontakt und nur für mich zur Kontrolle.2013-11-19_09:02:03 GasZaehler_2 value: 0   << addLog
2013-11-19_09:02:03 GasZaehler_2 countsPerDay: 22   << addLog
2013-11-19_09:03:43 GasZaehler_2 countsPerDay: 23
2013-11-19_09:03:43 GasZaehler_2 value: 1
2013-11-19_09:06:04 GasZaehler_2 value: 0
2013-11-19_09:07:03 GasZaehler_2 countsPerDay: 24
2013-11-19_09:07:03 GasZaehler_2 value: 1
2013-11-19_09:09:25 GasZaehler_2 value: 0
2013-11-19_09:10:24 GasZaehler_2 countsPerDay: 25
2013-11-19_09:10:24 GasZaehler_2 value: 1
2013-11-19_09:11:03 GasZaehler_2 value: 1   << addLog
2013-11-19_09:11:03 GasZaehler_2 countsPerDay: 25   << addLog
2013-11-19_09:12:46 GasZaehler_2 value: 0
2013-11-19_09:13:46 GasZaehler_2 countsPerDay: 26
2013-11-19_09:13:46 GasZaehler_2 value: 1
2013-11-19_09:20:03 GasZaehler_2 value: 1   << addLog
2013-11-19_09:20:03 GasZaehler_2 countsPerDay: 26   << addLog
2013-11-19_09:21:47 GasZaehler_2 value: 0
2013-11-19_09:22:47 GasZaehler_2 countsPerDay: 27
2013-11-19_09:22:47 GasZaehler_2 value: 1
2013-11-19_09:29:03 GasZaehler_2 value: 1   << addLog
2013-11-19_09:29:03 GasZaehler_2 countsPerDay: 27   << addLog
2013-11-19_09:31:59 GasZaehler_2 value: 0
2013-11-19_09:32:58 GasZaehler_2 countsPerDay: 28
2013-11-19_09:32:58 GasZaehler_2 value: 1
2013-11-19_09:38:03 GasZaehler_2 value: 1   << addLog
2013-11-19_09:38:03 GasZaehler_2 countsPerDay: 28   << addLog
2013-11-19_09:44:05 GasZaehler_2 countsPerDay: 29
2013-11-19_09:44:05 GasZaehler_2 value: 1
2013-11-19_09:44:06 GasZaehler_2 countsPerDay: 30
2013-11-19_09:44:06 GasZaehler_2 value: 1
2013-11-19_09:48:37 GasZaehler_2 value: 1   << addLog
2013-11-19_09:48:37 GasZaehler_2 countsPerDay: 30   << addLog
2013-11-19_09:54:41 GasZaehler_2 countsPerDay: 31
2013-11-19_09:54:41 GasZaehler_2 value: 1
2013-11-19_09:54:42 GasZaehler_2 countsPerDay: 32
2013-11-19_09:54:42 GasZaehler_2 value: 1
2013-11-19_09:57:36 GasZaehler_2 value: 1   << addLog
2013-11-19_09:57:36 GasZaehler_2 countsPerDay: 32   << addLog
2013-11-19_10:06:38 GasZaehler_2 value: 1   << addLog
2013-11-19_10:06:38 GasZaehler_2 countsPerDay: 32   << addLog
2013-11-19_10:15:36 GasZaehler_2 value: 1   << addLog
2013-11-19_10:15:36 GasZaehler_2 countsPerDay: 32   << addLog
2013-11-19_10:24:33 GasZaehler_2 countsPerDay: 33
2013-11-19_10:24:33 GasZaehler_2 value: 1
2013-11-19_10:24:34 GasZaehler_2 countsPerDay: 34
2013-11-19_10:24:34 GasZaehler_2 value: 1
2013-11-19_10:24:36 GasZaehler_2 value: 1   << addLog
2013-11-19_10:24:36 GasZaehler_2 countsPerDay: 34   << addLog

Viele Grüße
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 19 November 2013, 21:32:23
Hallo Harald,
wenn das Ereignis zu <regexp_for_ON> kommt wird value=1
wenn das Ereignis zu <regexp_for_OFF> kommt wird value=0

wenn  <regexp_for_OFF> nicht definiert ist, bleibt value immer auf 1

Es werden dann nur noch die Ereignisse zu <regexp_for_ON> gezählt.

Ich habe meinen Test-Counter wie folgt definiert:
Zitat
define CN.Test HourCounter testme:1
nur wenn ich folgendes schicke:
set testme state 1zählt der counter 1x hoch, value bleibt auf 1.
schicke ich hingegen
set testme state 0ändert sich der Counter nicht mehr.


So sollte es sein.



John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 20 November 2013, 15:44:29
Hallo John,

ich hab's gerade nochmal getestet.

Definiere ich onoff:.1 und onoff:.0, wechselt valve bei der ansteigenden Flanke auf 0 und bei der abfallenden auf 1. state und countsPerDay werden bei abfallender Flanke um 1 erhöht.

Definiere ich nur onoff:.1, bleibt valve auf 1. Bei ansteigender Flanke bleiben state und countsPerDay und bei abfallender Flanke werden beide jeweils um 2 erhöht.

Habe ich da irgend etwas falsch gemacht?

Viele Grüße

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 22 November 2013, 21:16:43
Hallo Harald,
kannst du mir von deinem Gaszähler bitte ein Log-vom Event-Monitor schicken oder einen Auszug von der Log-Datei
(nicht vom HourCounter, sondern vom Sensor)

Mein Pulsgeber ist ein Max-Fensterkontakt, wenn du etwas anderes verwendest muss die define clause angepasst werden.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 23 November 2013, 13:50:38
Hallo John,

hier meinen Eintrag für den GasZaehler in der FHEM.cfg, den Auszug aus dem EventMonitor und das Logfile des Gerätes.

Du erimmerst Dich vielleicht: Du hast damals den MAX-BetriebsstundenZähler für den MAX-Fensterkontakt entwickelt, der den Status onoff:0 bzw. 1 ins Log schreibt. Ich benutze einen FS20 KSE, der on und off meldet. Du hast mir damals freundlicherweise geholfen, dass für Dein Modul anzupassen und das läuft immer noch so.

Wenn Du noch weiteres benötigst, melde Dich bitte.

Viele Grüße

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 24 November 2013, 19:07:03
Hallo Harald,
das neue Modul sollte die Flexibilität bringen alle Ereignisse ohne Kunstgriffe aufzunehmen, also auch deinen FS20 KSE.

Es sollte für den bipolaren Modus wie folgt funktionieren:
define CN.GasZaehler   HourCounter GasZaehler:on  GasZaehler:off
Das passt auch zu den natürlichen Readings des KSE-Moduls laut deiner Log-Datei:
2013-11-23 13:14:47 FS20 GasZaehler off
2013-11-23 13:17:12 FS20 GasZaehler on

Wenn du den unipolaren Modus wählst sollte es so formuliert sein:
define CN.GasZaehler   HourCounter GasZaehler:onDann werden nur die on-Ereignisse gezählt, also ohne Messung von Puls/Pause.

Du kommst also ohne das UserReading aus.
attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler","state",0) eq "on")?0:1;; }
Zitat
Bei ansteigender Flanke bleiben state und countsPerDay und bei abfallender Flanke werden beide jeweils um 2 erhöht.

Das resultiert direkt aus deinem Logfile bei unipolarem Modus:
Zitat
2013-11-23 13:14:47 FS20 GasZaehler off
2013-11-23 13:14:47 FS20 GasZaehler onoff: 1
2013-11-23 13:14:48 FS20 GasZaehler cntStateOld: 1
2013-11-23 13:14:48 FS20 GasZaehler cntPerDay: 40
2013-11-23 13:14:48 FS20 GasZaehler Gasverbrauch_gestern_m³: 7.7
2013-11-23 13:14:48 FS20 GasZaehler Gasverbrauch_gestern_kWh: 85.8
2013-11-23 13:14:48 FS20 GasZaehler Gasverbrauch_heute_m³: 4
2013-11-23 13:14:48 FS20 GasZaehler Gasverbrauch_heute_kWh: 44.6
2013-11-23 13:14:48 FS20 GasZaehler Zaehlerstand: 513.9
2013-11-23 13:14:48 FS20 GasZaehler Verbrauch_Jahr_m³: 513.9
2013-11-23 13:14:48 FS20 GasZaehler Verbrauch_Monat_m³: 121.1
2013-11-23 13:14:48 FS20 GasZaehler Monat: 11
2013-11-23 13:14:48 FS20 GasZaehler Vormonat: 10
2013-11-23 13:14:48 FS20 GasZaehler Jahr: 2013
2013-11-23 13:14:48 FS20 GasZaehler Vorjahr: 2012
2013-11-23 13:14:48 FS20 GasZaehler onoff: 1

Das Reading onoff kommt ja tatsächlich 2x vor und wird demnach 2x gezählt.

Eigentlich macht dieser Modus bei funkbezogenen Gebern keinen Sinn, da hier der Status ggf. zyklisch (z.B. jede Stunde)
gesendet wird. Diese Wiederholung würde somit keine echte positive Flanke darstellen.
Das wird im bipolaren Modus verhindert, da hier ein Zustandswechsel zwingend notwendig ist.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 24 November 2013, 22:36:14
Hallo John,

vielen Dank für Deine ausfühlichen Erläuterungen. Jetzt weiß ich wenigstens, warum das so ist. Ich benutze das Modul im bipolarem Modus, weil ich mein GasZaehlermodul erstmal weiter betreiben will. Deshalb benötige ich auch noch das userReading, weil ich es mit meinen geringen Perlkenntnissen noch nicht geschafft habe, das auf on und off umzustellen. Aber es läuft ja auch so und ich habe die Readings, die ich haben möchte. Wenn Dein Betriebsstundenzähler mal so weit ist, dass man da auch Wochen-, Monats-, Jahres- und Gesamtzähler mit Umrechnungen in m³, kWh und Kosten implementieren kann, werde ich den alten Zähler deaktivieren. Bis dahin versuche ich, auch um zu lernen,  meinen Zähler um diese Parameter zu erweitern.

Nochmals herzlichen Dank für alles und schönen Abend noch

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 24 November 2013, 23:05:24
Hallo Harald,
du kannst natürlich parallel zum alten Zähler den neuen definieren.

define CounterNeu   HourCounter GasZaehler:on  GasZaehler:off
Dazu die Logfiles anlegen und mit den alten vergleichen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 28 November 2013, 11:15:16
Guten Morgen John,

mein Gaszähler beruht ja auf Deinem Betriebstundenzähler mit Max-Fensterkontakt. Dieses Modul gibt folgende Meldung aus:

2013.11.28 11:12:10 3: GasZaehler1.event return value: 1385633531.99662

Kannst Du mir sagen, wo die generiert wird? Ich würde sie gerne abschalten, da sie für mich derzeit nicht relevant ist.

In dem neuen Modul kann man ja die Werte der Readings per "set" manipulieren. Kannst Du mir sagen, wo diese Funktion eingerichtet wird? Ich möchte versuchen, dass in mein Gaszäher-Modul zu implementieren.

Viele Grüße

Harald
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 28 November 2013, 12:35:21
Hallo Harald

Zitat
2013.11.28 11:12:10 3: GasZaehler1.event return value: 1385633531.99662
GasZaehler1.event ist ein notify, setz mal den verbose level des notifes auf 2 oder 1, derzeit scheint er auf 3 zu stehen.

 
Zitat
In dem neuen Modul kann man ja die Werte der Readings per "set" manipulieren. Kannst Du mir sagen, wo diese Funktion eingerichtet wird? Ich möchte versuchen, dass in mein Gaszäher-Modul zu implementieren.

Das ist nicht so easy.

Es wird in sub HourCounter_Set($@) realisiert.
Alle Readings die mit app* beginnen werden hier berücksichtigt.
Das kannst du dadurch testen, dass du ein UserReading anlegst, das mit app beginnt als z.B.
appHarald.

Danach kannst du appHarald mit dem Set Befehl manipulieren.

Allgemein:
jedes Modul muss dem WEB-Interface mitteilen, welchen setter es unterstützt.
Hier gibt es eine Konvention.

Zitat
set <ModulInstanz> ?
Das Modul gibt dann eine Liste von allen verfügbaren Settings zurück.
Das gilt nicht nur für HourCounter sondern allgemein, du kannst es jederzeit testen via:
set <DeinThermostat> ?


John


Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Harald am 28 November 2013, 17:31:05
Hallo John,

entschuldige bitte, wenn ich nerve, aber ich würde gerne "state" auch über den set-Befehl einstellbar machen. In Zeile 247 und 265 habe ich "state" schon eingefügt und es erscheint auch in der Liste bei set. Wenn ich einen Wert eingebe und set drücke, bekomme ich die Meldung "Value must be an integer". Der Wert scheint nicht übernommen zu werden, weil er leer bzw. undef ist, oder?
Was muss ich noch tun, um diese Möglichkeit zu bekommen?

Viele Grüße

Harald

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 01 Dezember 2013, 19:30:07
 :)
Hallo John,

bin per Zufall auf dein Modul gestossen. Hätte ich nicht unter dem Begriff Betriebsstundenzähler mit Max-Fensterkontakt erwartet.
Bin gerade dabei das für meine Ölheizung zu integrieren die ersten Ergebnisse
schauen schon mal gut aus. da mein Brenner z.Zt. nur 4-5 mal anspringt will ich zwecks Auswertung noch warten.
Also vielen Dank für deine Arbeit.

@ pappn
Zitat
ich möchte mich an dieser Stelle auch für deine Idee und die Veröffentlichung an dieser Stelle bedanken. Manchmal braucht man nur einen Startpunkt und man kann die Dinge von dort aus selbst weiterentwickeln bzw. anpassen.
Ich habe deine Idee mit einem FHTTK Fensterkontakt an meiner Oelheizung umgesetzt. Mangels Betriebstundenzähleranschluß habe ich diesen an T2 angeschlossen (Funktioniert zuverlässig, da ich vernachlässigbare Vorlaufzeiten bis zum Brennerstart habe). Dein Modul habe ich an meine Bedürfnisse angepasst und ergänzt.
Das Ganze sieht in FHEM dann so aus:

Könntest du deine config mal als Anhang einfügen?
Das ist eigentlich das was ich mir vorstelle. ;)
Vorab schon ein Dankeschön.

Billy
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Raven am 01 Dezember 2013, 21:38:00
Dankeschön - der Ansatz gefällt mir auch sehr gut.

Gibt es von (anderen Usern) noch Hinweise bzgl. der konkreten Anschlussweise an die Heizungssteuerung.
Nein, ich will es nicht selbst machen, sondern meinen Elektriker befragen und hier wäre hilfreich ihm Angaben zu machen, wonach er suchen muss. Dankeschön vorab. mike
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 01 Dezember 2013, 21:46:11
Hi Mike,

ich denke das Anschluss-Schema des Steckers in diesem
http://forum.fhem.de/index.php/topic,12216.msg74252.html#msg74252 (http://forum.fhem.de/index.php/topic,12216.msg74252.html#msg74252)
Beitrag ist normiert.

Ansonsten hilft ein Blick in die Hersteller-Unterlagen.

John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 02 Dezember 2013, 19:20:54
Hallo

habe jetzt mit diesem userReadings meinen Ölverbrauchsmessung am laufen. :)
verbrTag_oel {sprintf("%.1f", ReadingsVal("CN.Oel","pulseTimePerDay",0)/3600*1.86046511627907) . " l";; }
Meine Frage: Das userReadings schreibt alle 3 Minuten ins Log.

2013-12-02_19:12:03 CN.Oel verbrTag_oel: 5.6 l
2013-12-02_19:15:03 CN.Oel verbrTag_oel: 5.6 l
2013-12-02_19:18:03 CN.Oel verbrTag_oel: 5.6 l

Kann ich das ändern?

Hätte erwartet dass es nur dann ins Log schreibt wenn auch "pulseTimePerDay" ins Log schreibt.

Danke nochmals für dieses Modul.

Gruss

Billy
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 02 Dezember 2013, 22:37:40
Hallo Billy,
man kann für UserReadings auch Trigger-Bedingungen angeben, siehe CommandRef.

Ausserdem habe ich die Standard-Readings vergessen (event-on-change-reading ...)
Auch damit lässt sich das Verhalten einstellen.

Aktualisierte Version 0.99.c liegt bei.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 03 Dezember 2013, 06:57:57
Hallo John

Danke :)

Billy
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 03 Dezember 2013, 09:24:33
Hallo
John

Zitat
Ausserdem habe ich die Standard-Readings vergessen (event-on-change-reading ...)
nach dem update kann ich nur

event-on-update-reading
event-min-interval

auswählen?

event-on-change-reading
fehlt zumindest bei mr.

Aber dein Typ mit dem Trigger war gut! ;D

Gruss

Billy
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 03 Dezember 2013, 09:33:31
Hallo Billy,
danke für den Hinweis.

Bug ist gefixed in der neuen Version 0.99.d.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: JoeALLb am 05 Dezember 2013, 16:12:43
Hallo!!

Kann ich mit diesem Modul auch Betriebsstunden anhand eines Stromverbrauchs zählen?
Ich würde gerne zählen, wenn ich mehr Strom als Standy verbrauche (also mehr als 2Watt) und keine Betriebsstunden zählen, wenn der Verbrauch unter 2 Watt ist. Ist das möglich?

Ein Test mit
XX_01:power:.[0-9][0-9]\. XX_01:power:.[0-9]\.
scheint nicht zu zählen (dieser sollte auf 2stelligen Wattverbrauch anspringen)
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 05 Dezember 2013, 16:24:11
Kannst du einen Auszug vom Eventmonitor zu deinem Energiezähler reinstellen ?
Dann sehen wir weiter.


John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: JoeALLb am 06 Dezember 2013, 14:02:03
Die Einträge sehen so aus:
1. Zeile 1.9 Watt verbrauch sollte keine Betriebsstunden zählen,
4. Zeile VErbrauch 27 Watt sollte mit dem zählen beginnen

013-11-18_19:40:32 XXX power: 1.9
2013-11-18_19:40:32 XXX consumption: 2
2013-11-18_19:40:32 XXX consumptionTotal: 2
2013-11-18_19:40:36 XXX power: 27
2013-11-18_19:40:36 XXX consumption: 2
2013-11-18_19:40:36 XXX consumptionTotal: 2
2013-11-18_19:40:42 XXX power: 34.6
2013-11-18_19:40:42 XXX consumption: 2


Dankefürs Hilfe-anbieten!!!
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 07 Dezember 2013, 08:06:56
Hallo John,

hast du schon mal daran gedacht die Berechnung der Monatswerte zu integrieren?

äquivalent zu

pauseTimePerDay             --> pauseTimePerMonth

pulseTimePerDay              --> pulseTimePerMonth



Grüsse + Danke

Billy
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 Dezember 2013, 15:01:07
Hallo Billy,
wird noch etwas dauern, andere Projekte haben Vorrang.

Aber es gibt immerhin schon einen Plan

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 Dezember 2013, 15:28:50
@JoeAlb - Betriebssstunden über Stromverbrauch

Ich habe die passenden regExps entworfen.
Bei mir funktioniert die Simulation über die angegebenen Trigger.

define CN.Test HourCounter XXX:power:\s[0-9]{2,}(\.[0-9]{1,3})*$  XXX:power:\s[0-9]{1}(\.[0-9]{1,3})*$
Test für ON-Ereignis

Zitat
trigger XXX power: 27
trigger XXX power: 27.1

Test für OFF Ereignis
Zitat
trigger XXX power: 2
trigger XXX power: 2.1

Kontrolle über LOG-Datei mit verbose 3.

Bitte testen und rückmelden.

Wenn es funktioniert, werde ich das Thema ins Wiki stellen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: ollir am 09 Dezember 2013, 16:08:04
Hallo John,

erstmal Vielen Dank für den Counter.

Habe noch zwei Fragen.

1.: Die Readings tickDay; tickHour; tickWeek stehen alle auf "1" und werden nicht erhöht?

2.: Ich benutze einen Zähler für die Heizungspumpe. Wenn die Pumpe "an" ist wird die PulseTime nicht kontinuierlich erhöht, sondern erst mit dem nächsten "aus" berechnet?

Vielen Dank
Olaf


Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 09 Dezember 2013, 20:27:00
Hallo Olav,
Zitat
1.: Die Readings tickDay; tickHour; tickWeek stehen alle auf "1" und werden nicht erhöht?

Bei den ganzen tick*-Readings wird immer nur die 1 geschrieben. Es dient dazu dass man ein notify drauf setzen kann.
Damit lassen sich dann stündlich,täglich, wöchentlich und monatlich Ereignisse auslösen.
Welchen Wert ich dafür verwende ist unerheblich.


Zitat
2.: Ich benutze einen Zähler für die Heizungspumpe. Wenn die Pumpe "an" ist wird die PulseTime nicht kontinuierlich erhöht, sondern erst mit dem nächsten "aus" berechnet?
Stimmt und auch noch am Ende des Tages.


John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: bluesky am 19 Dezember 2013, 08:30:21
Hallo John. Ich bin neu hier im Forum und den Betriebsstundenzähler, der eine tolle Sache ist, hat mir ein Bekannter eingebaut. Bei der Inbetriebnahme ist mir im Wiki aber aufgefallen, dass bei der Definition "Betriebsstunden" und "Kurven" im Wiki fld[3]/=3600 und fld[3]/=60 steht, obwohl es doch $fld[3]/=3600 und $fld[3]/=60 heissen müsste oder? Im abgebildeten Screenshot sind die Daten korrekt mit einem $ angegeben. Bei mir hat es ohne $ nicht funktioniert. Vielen Dank nochmals an John und alle, die bei der Entwicklung von fhem helfen. Gruss bluesky
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 19 Dezember 2013, 08:43:09
Hallo bluesky
danke für den Hinweis, ich habs korrigiert.
John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 19 Dezember 2013, 08:52:07
JoeAlb hat sich bei mir gemeldet.

Die angebotene Lösung zur Frage:

Wie kann man aus  einem Messwert das Start/Stop-Kriterium für den Betriebsstundenzähler ableiten ?

funktioniert wie hier

http://forum.fhem.de/index.php/topic,12216.msg112757.html#msg112757 (http://forum.fhem.de/index.php/topic,12216.msg112757.html#msg112757)

vorgeschlagen.

John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: JoeALLb am 19 Dezember 2013, 10:16:21
Ja, vielen Dank für die großartige Unterstützung! Ich bin gerade dabei, das Modul intensiv zu testen und in mehreren verschiedenen Varianten
im Einsatz zu bringen.!
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 20 Dezember 2013, 22:19:05
Hallo,  ich versuche  seid zwei Tagen den Betriebsstundenzähler bei mir einzubinden.

Zu meiner „ Hardware“


Ich betreibe meine Heizkanone bis erfolgreich mit dem THRESHOLD-Modul und einem FS20 Aktor (fs20ws1 )
Wie gesagt es ist ein Empfänger und kein Sender, aber es tut sich was, SVG zeigt „etwas“ an, es ist aber kurios für mich, es ist zB. Nach unten verschoben und es sieht meistens Platt aus:

Meine Config:

define Heizung_Brenner FS20 1b1b 00
attr Heizung_Brenner icon icoHEIZUNG
attr Heizung_Brenner model fs20ws1
attr Heizung_Brenner room Schalter_Taster
attr Heizung_Brenner userReadings onoff {(ReadingsVal("Heizung_Brenner","state",0) eq "on")?1:0;; }

define Heizung_Brenner.event notify Heizung_Brenner:(onoff).* { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}

define FileLog_Heizung_Brenner FileLog ./log/Heizung_Brenner-%m.log Heizung_Brenner:(onoff|cntOntimePerDayHours|cntPerDay|cntOntimeIncrement|cntPerDayLast|cntOntimeHours).*

define CN.Test HourCounter Heizung_Brenner:onoff:.1 Heizung_Brenner:onoff:.0
attr CN.Test room Schalter_Taster

define CN.Test.File FileLog ./log/CN.Test-%Y.log (CN\.Test:.*)
attr CN.Test.File room Schalter_Taster

define SVG_CN.Test.File_1 SVG CN.Test.File:SVG_CN.Test.File_1:CURRENT
attr SVG_CN.Test.File_1 room Schalter_Taster


Bemerkung:
Variante A
{(ReadingsVal("Heizung_Brenner","state",0) eq "on")?1:0;; }
Variante B
{(ReadingsVal("Heizung_Brenner","state",0) eq "on")?0:1;; }

Ich glaube aber A uder B  kein Unterschied macht.

CN.Test-2013.log:
2013-12-20_21:24:58 CN.Test countsPerDay: 0
2013-12-20_21:24:58 CN.Test countsOverall: 0
2013-12-20_21:24:58 CN.Test pulseTimeIncrement: 0
2013-12-20_21:24:58 CN.Test pulseTimePerDay: 0
2013-12-20_21:24:58 CN.Test pulseTimeOverall: 0
2013-12-20_21:24:58 CN.Test pauseTimeIncrement: 0
2013-12-20_21:24:58 CN.Test pauseTimePerDay: 0
2013-12-20_21:24:58 CN.Test pauseTimeOverall: 0
2013-12-20_21:24:58 CN.Test 0
2013-12-20_21:24:58 CN.Test clearDate: 2013-12-20 21:24:58
2013-12-20_21:30:00 CN.Test countsPerDay: 1
2013-12-20_21:30:00 CN.Test countsOverall: 1
2013-12-20_21:30:00 CN.Test pauseTimeIncrement: 900
2013-12-20_21:30:00 CN.Test pauseTimePerDay: 900
2013-12-20_21:30:00 CN.Test pauseTimeOverall: 900
2013-12-20_21:30:00 CN.Test value: 1
2013-12-20_21:30:00 CN.Test 1
2013-12-20_22:00:00 CN.Test tickHour: 1
2013-12-20_22:10:01 CN.Test pulseTimeIncrement: 2401
2013-12-20_22:10:01 CN.Test pulseTimePerDay: 2401
2013-12-20_22:10:01 CN.Test pulseTimeOverall: 2401
2013-12-20_22:10:01 CN.Test value: 0

anbei unten noch zwei Bilder,






kann mir jemand helfen ?

Danke im Voraus

Andreas

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 20 Dezember 2013, 23:19:38
Hallo Andreas


das ist eigentlich nicht notwendig, da der HourCounter nicht zwingend "onoff" benötigt
attr Heizung_Brenner userReadings onoff {(ReadingsVal("Heizung_Brenner","state",0) eq "on")?1:0;; }
das hingegen ist einfach überflüssig:

define Heizung_Brenner.event notify Heizung_Brenner:(onoff).* { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}Du solltest das alte Skript 99_UtilsMaxCounter.pm löschen.
Der neue HourCounter braucht diesen Mechanismus nicht mehr.

Das solltest du ändern, so dass die Events der Quelle verwendet werden:

define CN.Test HourCounter Heizung_Brenner:onoff:.1 Heizung_Brenner:onoff:.0
Vorgabe laut Wiki:
define <name> HourCounter <regexp_for_ON> [<regexp_for_Off>]
Schick doch einfach mal einen Auszug vom Monitor zum Device Heizung_Brenner, dann kann ich dir den passenden Regexp konstruieren.
(funktioniert wie bei den Notify's)


Den Chart hast du nicht ganz korrekt definiert: "Betriebsstunden" und "Dauer" verwenden Spalte 3 statt 4.


John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 20 Dezember 2013, 23:23:34
super das du da bist,  hier das Bild:-)

define CN.Test HourCounter Heizung_Brenner:onoff:.1 Heizung_Brenner:onoff:.0

ich komme leider nicht drauf was ich ändern muss,....   das hier ist "frei schnauze" :-(

Bin noch hier drüber am Rätseln: "Den Chart hast du nicht ganz korrekt definiert: "Betriebsstunden" und "Dauer" verwenden Spalte 3 statt 4."   hmmmmm  ist doch richtig  genau so wie Bild im Wiki ???
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 21 Dezember 2013, 00:00:21
Hallo Andreas,
ich brauch einen Auszug vom Event Monitor, zu den Events deines Brenners.
siehe Web-Interface "Event Monitor".
Mut diesen Infos kann ich die Trigger Bedingungen ableiten.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 21 Dezember 2013, 00:01:20
Events:
2013-12-21 00:01:48 FS20 Heizung_Brenner off
2013-12-21 00:01:48 FS20 Heizung_Brenner onoff: 0
2013-12-21 00:01:49 FS20 Heizung_Brenner on
2013-12-21 00:01:49 FS20 Heizung_Brenner onoff: 1
2013-12-21 00:01:50 FS20 Heizung_Brenner off
2013-12-21 00:01:50 FS20 Heizung_Brenner onoff: 0
2013-12-21 00:01:51 FS20 Heizung_Brenner on
2013-12-21 00:01:51 FS20 Heizung_Brenner onoff: 1
2013-12-21 00:01:52 FS20 Heizung_Brenner off
2013-12-21 00:01:52 FS20 Heizung_Brenner onoff: 0
2013-12-21 00:01:53 FS20 Heizung_Brenner on
2013-12-21 00:01:53 FS20 Heizung_Brenner onoff: 1
2013-12-21 00:01:54 FS20 Heizung_Brenner off
2013-12-21 00:01:54 FS20 Heizung_Brenner onoff: 0
2013-12-21 00:01:55 FS20 Heizung_Brenner on
2013-12-21 00:01:55 FS20 Heizung_Brenner onoff: 1
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 21 Dezember 2013, 00:06:53
ein Schnellschuss

define CN.Test HourCounter Heizung_Brenner:on Heizung_Brenner:off
John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 21 Dezember 2013, 00:10:23
OK hab ich gemacht :-)

define CN.Test HourCounter Heizung_Brenner:on Heizung_Brenner:off

jetzt Testlauf ?
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 21 Dezember 2013, 00:12:59
ja doch.

geht auch via
trigger Heizung_Brenner offbzw
trigger Heizung_Brenner on
John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 21 Dezember 2013, 00:17:52
ja genau so probiere ich es, ich klicke einfach alle par Minuten im Webinterface auf on bzw off  :)

Momentan Sieht es so aus wie auf dem Bild
kannst du mahl drüber kucken ob es so ist wie du es dir gedacht hast?

danke für deine Hilfe

Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 22 Dezember 2013, 11:55:45
Hallo Andreas,
das sieht doch schon ganz gut aus.

Du könntest den Range left noch passend anpassen auf [-20;60], dann passen die Kurven besser ins Diagramm.

John


Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 22 Dezember 2013, 12:00:19
danke, bin gerade dabei :)

zwischenzeitlich ist noch eine Frage aufgetaucht

mein Brenner verbraucht 2.43902439024 Liter/h

ich wollte den Tagesverbrauch darstellen

nehme ich da :

Test pulseTimePerDay $fld[3]*=2.43902439024/3600  ??


Grüße Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 22 Dezember 2013, 12:10:19
ja, das sollte so passen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 22 Dezember 2013, 12:15:43
super besten dank für deine Hilfe  :):):):)

da hab ich aber noch etwas,

auf Seite 3 in deinem Beitrag hat jemand
 eine Status Anzeige  angefügt (siehe Bild)

weist du wie das geht?  es sind keine Beispiele in diesem Beitrag


Grüße Andreas  :)
 
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 22 Dezember 2013, 12:32:05
Hallo Andreas,
ich vermute pappn hat dies mit userReadings und ReadingsGroup realisiert.
Aber du kannst ihn ja direkt per PM kontaktieren.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 22 Dezember 2013, 12:35:30
ja, genau dass habe ich vor zwei Tagen gemacht, er Antwortet aber nicht.

weist du vielleicht wie ich grundsätzlich solche  " Fenster" einbinde ?

Grüße Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 22 Dezember 2013, 12:36:52
sieh dir mal ReadingsGroup an.
John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 24 Dezember 2013, 00:06:09
ja, genau dass habe ich vor zwei Tagen gemacht, er Antwortet aber nicht.

weist du vielleicht wie ich grundsätzlich solche  " Fenster" einbinde ?

Grüße Andreas

Sorry, war im Urlaub und hab in diesem Thread auch nicht aktiv mitgelesen. Antwort ist jetzt raus.

beste Grüße
Pappn
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 24 Dezember 2013, 12:05:01
cntOntimeIncrement letzte Einschaltdauer in Sekunden
cntOntimePerDay    Einschaltzeit im Zeitformat
cntOntimePerDayHours Einschaltzeit in Stunden, damit könnte man über UserReadings Verbräuche ermitteln
cntOntimePerDaySeconds Einschaltzeit in Sekunden, die interne Rechenbasis
cntPerDay  kumulierte Starts über den Tag
cntPerDayLast  Starts des letzten Tages

Hallo John, sind die Nahmen noch aktuell oder hat sich da etwas verändert ?

Grüße Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 24 Dezember 2013, 14:51:59
Hallo Andreas,
da passt kein einziges Reading mehr.

siehe http://www.fhemwiki.de/wiki/HourCounter#Readings (http://www.fhemwiki.de/wiki/HourCounter#Readings)

Andererseits siehst du alle Readings in der Web-Ansicht, daher wundere ich mich über deine Frage.

Du verwendest doch die aktuelle Version von 98_HourCounter.pm ?

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Vladi2010 am 24 Dezember 2013, 14:55:50
ja die Aktuelle  :)

ntOntimeIncrement letzte Einschaltdauer in Sekunden
cntOntimePerDay    Einschaltzeit im Zeitformat
cntOntimePerDayHours Einschaltzeit in Stunden, damit könnte man über UserReadings Verbräuche ermitteln
cntOntimePerDaySeconds Einschaltzeit in Sekunden, die interne Rechenbasis
cntPerDay  kumulierte Starts über den Tag
cntPerDayLast  Starts des letzten Tages

ich habe nur gefragt weil diese hier so schön auf deutsch ausgeschrieben sind,  bei den neuen ist sie zu deuten schwieriger


Frohes Fest

 Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 24 Dezember 2013, 15:05:43
da passt kein einziges Reading mehr.
.....
John

Hallo Zusammen,

die können ja auch nicht passen. Kommen alle aus meiner vor langer Zeit individualisierten 99_Utils_FHTTK_OilCounter.pm.
Allerdings sollte sich die Sub mit der ich den html code für den Weblink erstelle leicht an das neue Modul und die entsprechenden Readings anpassen lassen.

Ich werde mir das neue Modul aus dem Wiki allerdings auch mal ansehen.

Christof
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 28 Dezember 2013, 00:17:44
Hallo,

hab mich endlich getraut und den HourCounter eingebaut. Das ging ganz einfach. Ist ein Superprogramm.
Hab mich dann mit readingGroups auseinandergesetzt (da gibts eine sehr gute neue Seite im Wiki).
Was ich nicht gefunden habe, ist die Möglichkeit mit den Werten zu rechnen. Das geht bestimmt ganz leicht, ich weiss nur nicht wie!
Siehe diese Zeile:attr HZ_Readings valueFormat { countsPerDay => "%.0f", pulseTimeIncrement => "%.0f/60 min.", pulseTimePerDay => "%.0f/3600*2.6 l"}  Der zweite Wert ist die Länge der Heizphase in min., der dritte der Tagesverbrauch in l.
Das funktioniert so nicht. Hab schon alle Klammern, die ich kenne, ausprobiert.
Davor hab ich die Werte schon über Label in den Plot integrieren wollen. Gleiches Problem mit der Syntax.
Das zweite Problem:
Der Plot von HourCounter ist mir zu unübersichtlich, da zu klein. Ich hab gesucht, aber leider nichts gefunden, wo gestanden wäre, wie ich die Höhe des Plots ändern kann.
Verschiedene tests mit dieser Zeile aus der .gplot-Datei hab ich versucht, jedoch ohne Erfolg.set terminal png transparent size <SIZE> crop
Ich wäre sehr dankbar für Hilfe
Charles
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 28 Dezember 2013, 11:31:00
Hallo Charles
Zitat
Was ich nicht gefunden habe, ist die Möglichkeit mit den Werten zu rechnen. Das geht bestimmt ganz leicht, ich weiss nur nicht wie!

UserReadings sind die Lösung. Damit kannst du eigene Readings anlegen, deren Inhalt du selbst bestimmen kannst.
Hab mal versucht ein Beispiel  mit deinen Angaben zu erstellen:

attr HZ_Readings userReadings pulseTimeIncrementMinutes:pulseTimeIncrement {ReadingsVal("HZ_Readings","pulseTimeIncrement",0)/60;;}
Zitat
Ich hab gesucht, aber leider nichts gefunden, wo gestanden wäre, wie ich die Höhe des Plots ändern kann.
Die Grösse des Plots in der GUI kann z.B. wie folgt ändern, wenn der Plot SVG_Counter heisst
attr SVG_Counter plotsize 800,320
John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 28 Dezember 2013, 13:13:15
Hallo John,
danke für die schnelle Hilfe. Die Plots sind jetzt viel übersichtlicher.
Mit der Ausgabe der userReadings kämpfe ich nochattr HZ_Readings userReadings pulseTimeIncrementMinutes:pulseTimeIncrement {ReadingsVal("HZ_Readings","pulseTimeIncrement",0)/60;;}, pulseTimePerDayVerbrauch:pulseTimePerDay {ReadingsVal("HZ_Readings","pulseTimePerDay",0)/3600*2.6;;}
attr HZ_Readings valueFormat { countsPerDay => "%.0f Heizphasen", pulseTimeIncrementMinutes => "%.2f min.", pulseTimePerDayVerbrauch => "%.2f l"}
die valueFormat-Zeile kennt die Werte von pulseTimeIncrementMinutes nicht und verwendet stattdessen pulseTimeIncrement ohne Formatierung.
Wo liegt denn mein Fehler?

Danke
Charles
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 28 Dezember 2013, 13:20:40
Hallo Charles
sind den die neuen Readings in der Web-Ansicht schon zu sehen ?

Bitte folgendes reinstellen
list HZ_Readings
John


Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Herr 3x am 28 Dezember 2013, 13:41:49
Hallo,

das Modul gefällt mir sehr gut, vielen Dank an John.
Ich benutze es um meinen Gaszähler mit einem Reedkontakt und einem Homematic Fensterkontakt auszulesen.
Der Fensterkontakt ist erst mal ein Test, vermutlich werde ich zukünftig auf eine verkabelte Installation umschwenken, da das häufige Schalten doch ganz schön auf die Batterien geht.

Der Zähler gibt einen Impuls, wenn die 0,001er Stelle ungefähr bei der 9 und 0 ist, also ein Impuls pro 0,01 m3
Der Fensterkontakt sendet auch brav ein "open" bei der 9 und dann ein "close" bei der 0. Soweit kein Problem.

Mich interessiert der Tagesverbrauch, das ist mit countsPerDay auch prima gelöst. Auf der Webseite des örtlichen Netzbetreibers kann man den Brennwert in [kWh/m3] und einen Fummelfaktor "Zustandszahl" nachschauen. Zusammen gibt das:
countsPerDay*Brennwert*Fummelfaktor*0,01
Allerdings würde ich ich gern die aktuell verbrauchte Leistung wissen, was mit dem Script nicht ohne weiteres geht. Jedenfalls mit meinem Know-How als Fhem-Einsteiger.

Da die Leistung [W| die differenzierte Arbeit [J] oder [Ws] ist brauche ich die Zeit pro 0,01 m3. Leider gibt HourCounter nur die Zeit für den Puls und die Pause aus, nicht für die Periode (oder ich bin zu doof es zu finden).

Ich habe mir darum mal erlaubt HourCounter mit meinen nicht vorhandenen Perlweissen anzupassen, dass die Periodenzeit pulsepausePeriodberechnet wird. Scheint einigermaßen zu klappen.

Einen Plot und das modifizierte 98_HourCounter.pm habe ich mal angehangen.

Grüße

Herr 3x
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 28 Dezember 2013, 13:57:51
Hallo John,

die neuen Readings werden (noch??) nicht angezeigt.

list HZ_readungs brachte FolgendesInternals:
   DEF        TYPE=HourCounter:countsPerDay,pulseTimeIncrement,pulseTimePerDay
   NAME       HZ_Readings
   NR         222
   NTFY_ORDER 50-HZ_Readings
   STATE      Initialized
   TYPE       readingsGroup
   Content:
     CN.Test    1
   DEVICES:
     ARRAY(0x1205010)
   Fhem:
     last_update 1388233287.33115
Attributes:
   alias      Anzahl der Heizphasen / Länge der letzten Phase / Tagesverbrauch
   mapping    Heizungsmonitoring
   nostate    0
   notime     1
   room       HEIZUNG
   userReadings pulseTimeIncrementMinutes:pulseTimeIncrement {ReadingsVal("HZ_Readings","pulseTimeIncrement",0)/60;}, pulseTimePerDayVerbrauch:pulseTimePerDay {ReadingsVal("HZ_Readings","pulseTimePerDay",0)/3600*2.6;}
   valueFormat { countsPerDay => "%.0f Heizphasen", pulseTimeIncrementMinutes => "%.2f min.", pulseTimePerDayVerbrauch => "%.2f l"}
   verbose    5

Charles
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 28 Dezember 2013, 17:43:37
Hallo Charles,
da haben wir uns gründlich missverstanden.

Alles was ich zuvor beschrieben haben bezieht sich auf die Instanz HourCounter,
nicht auf ReadingsGroup.

Am besten schickst du mir mal die Definition vom Hourcounter.
Das zuvor beschriebene UserReading gehört natürlich zum HourCounter.

1. Schritt:
In der aktuellen HourCounter-Instanz ist das UserReading zu erzeugen, das den von dir gewünschten Wert aufnimmt.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 28 Dezember 2013, 17:46:44
@Herr 3x

was spricht dagegen beim Event zu pauseTimeIncrement, die Summe periode = pauseTimeIncrement + pulseTimeIncrement zu bilden
und hierzu ein UserReading anzulegen ?

John



Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Herr 3x am 28 Dezember 2013, 22:05:23
Hallo John,

Dagegen spricht nix, außer dass ich nicht drauf gekommen bin  ??? Und ich mir anschauen wollte, wie das Script funktioniert.
Wie immer gibt es mehr als eine Lösung.

Grüße
Herr 3x
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 28 Dezember 2013, 23:37:09
Hallo John,

bin gerade erst wieder heimgekommen.
Da sieht man mal, welche Fehler passieren können, wenn sich jemand nicht auskennt.
Ich hab den Code jetzt hier eingefügtdefine CN.Test HourCounter SHUTTER.BRENNER:onoff:.1 SHUTTER.BRENNER:onoff:.0
attr CN.Test userReadings pulseTimeIncrementMinutes:pulseTimeIncrement {ReadingsVal("CN.Test","pulseTimeIncrement",0)/60;;}, pulseTimePerDayVerbrauch:pulseTimePerDay {ReadingsVal("CN.Test","pulseTimePerDay",0)/3600*2.6;;}

#log
define CN.Test.File FileLog ./log/CN.Test-%Y.log (CN\.Test:.*)
attr CN.Test.File room LOGS

# plot
define SVG_CN.Test.File_1 SVG CN.Test.File:SVG_CN.Test.File_1:CURRENT
attr SVG_CN.Test.File_1 label "Ölverbrauch heute: ?"
attr SVG_CN.Test.File_1 room HEIZUNG
attr SVG_CN.Test.File_1 plotsize 800,320
attr SVG_CN.Test.File_1 verbose 5
Das ist Alles für HourCounter.
Die reading Group sieht so aus:#-------------- Reading Group --------------------------
define HZ_Readings readingsGroup TYPE=HourCounter:countsPerDay,pulseTimeIncrementMinutes,pulseTimePerDayVerbrauch
attr HZ_Readings room HEIZUNG
attr HZ_Readings nostate 0
attr HZ_Readings notime 1
attr HZ_Readings mapping Heizungsmonitoring
attr HZ_Readings alias Anzahl der Heizphasen / Länge der letzten Phase / Tagesverbrauch
attr HZ_Readings valueFormat { countsPerDay => "%.0f Heizphasen", pulseTimeIncrementMinutes => "%.1f min.", pulseTimePerDayVerbrauch => "%.2f l"}
Habs jetzt hinbekommen. Reading Group gibt die Minuten und die verbrauchten Liter aus.

Danke für die Hilfe
Charles

Charles
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: danni-k am 29 Dezember 2013, 20:35:57
Hallo zusammen,

und Respekt für den "HourCounter".
Allerdings bin ich grad irgendwie ratlos: wie krieg ich das Modul mit einem FHT80TF-2 zum Laufen ?
Das Teil liefert zwar nur Window: Open bzw. Closed, aber das sollte doch ebenso tun ???

Hier der Auszug aus der fhem.cfg:
# Stundenzähler
attr CUL_FHTTK_069706 userReadings onoff {(ReadingsVal("CUL_FHTTK_069706","state",0) eq "Open")?1:0;; }

define CN.Test HourCounter CUL_FHTTK_069706:onoff:1 CUL_FHTTK_069706:onoff:0
define CN.Test.File FileLog ./log/CN.Test-%Y.log (CN\.Test:.*)

Danke im voraus,
   danni-k
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 29 Dezember 2013, 21:22:30
Hi danni-k

wenn das stimmt
Zitat
Das Teil liefert zwar nur Window: Open bzw. Closed

musst du daran noch feilen:

Zitat
define CN.Test HourCounter CUL_FHTTK_069706:onoff:1 CUL_FHTTK_069706:onoff:0

z.B via
Zitat
define CN.Test HourCounter CUL_FHTTK_069706:Open CUL_FHTTK_069706:Closed

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: danni-k am 30 Dezember 2013, 18:01:08
Hallo John,

danke für die schnelle Antwort !
Tut aber leider auch nicht.
Die Bezeichnungen hab ich aus der Definition für den Plot des Fensterkontaktes, das sollte doch passen ?
(s. Anhang)
Hab beides probiert, also das device solo und auch device.Window:Open.
Im Logfile zum Kontakt gehen die Signale auch ein (zB: Window: Open).
Im fhem-Log kann ich auch keinen Fehler finden.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 30 Dezember 2013, 19:27:04
Hallo danni-k,
schick doch mal einen Auszug aus der Log-Datei zu CUL_FHTTK_069706 mit eine Open und Closed- Eintrag.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: danni-k am 30 Dezember 2013, 21:30:35
Hallo John,

das Log sieht so aus:
2013-12-29_18:29:04 CUL_FHTTK_069706 Window: Open
2013-12-29_18:30:05 CUL_FHTTK_069706 Window: Open
2013-12-29_18:31:06 CUL_FHTTK_069706 Window: Closed
2013-12-29_18:32:07 CUL_FHTTK_069706 Window: Closed
2013-12-29_18:34:20 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:35:10 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:39:14 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:47:23 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:51:26 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:55:30 CUL_FHTTK_069706 Window: Open 
2013-12-29_18:59:34 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:03:38 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:07:42 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:11:47 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:15:50 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:19:54 CUL_FHTTK_069706 Window: Open 
2013-12-29_19:23:58 CUL_FHTTK_069706 Window: Open 
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 30 Dezember 2013, 23:19:54
Hi danni-k

es wird klarer, nächster Versuch mit
define CN.Test HourCounter CUL_FHTTK_069706:Window:.Open CUL_FHTTK_069706:Window:.Closed
John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: danni-k am 31 Dezember 2013, 12:51:03
Hallo John,

perfekt, so funktioniert's:
define CN.Test HourCounter CUL_FHTTK_069706:Window:.Open CUL_FHTTK_069706:Window:.ClosedMir ist zwar nicht klar, weshalb vor Window ein ":" steht und kein ".", und warum es ":.Open" sein muss...
Werd mich da wohl noch ne Weile in die Syntax einarbeiten müssen.

Aber sei's drum: Danke !

und guten Rutsch !

danni-k
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 31 Dezember 2013, 14:19:51
Hallo danni-k,

schau dir mal den folgenden Link an.
http://forum.fhem.de/index.php/topic,13508.msg105550.html#msg105550 (http://forum.fhem.de/index.php/topic,13508.msg105550.html#msg105550)
Hier habe ich an einem Beispiel erklärt, wie das mit den Regular Expressions funktioniert.

Die Definitionen für den HourCounter sind analog zum notify oder zu FileLog vorzunehmen.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 01 Januar 2014, 11:47:32
Hallo John,

erstmal ein gutes neues Jahr 2014!
Ich hab jetzt mit der ReadingGroup Probleme. Hab im Log nachgeforscht: Vorgestern machte ich ein Update. Nach dem Neustart gibts Probleme. fhem ist zweimal abgestürzt. So siehts im Log seitdem aus (nach Neustart nach Update): Including fhem.cfg
2013.12.30 22:24:20 2: MaxCounter is starting
2013.12.30 22:24:20 2: [MaxScan] UtilsMaxScan_Initialize.68 MaxScan is starting
2013.12.30 22:24:21 3: telnetPort: port 7072 opened
2013.12.30 22:24:23 3: WEB: port 8083 opened
2013.12.30 22:24:23 3: WEBphone: port 8084 opened
2013.12.30 22:24:23 3: WEBtablet: port 8085 opened
2013.12.30 22:24:23 3: Opening CUL_0 device /dev/ttyACM0
2013.12.30 22:24:24 3: Setting CUL_0 baudrate to 9600
2013.12.30 22:24:24 3: CUL_0 device opened
2013.12.30 22:24:24 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2013.12.30 22:24:24 2: Switched CUL_0 rfmode to MAX
2013.12.30 22:24:24 3: Opening CUL_1 device /dev/ttyACM1
2013.12.30 22:24:24 3: Setting CUL_1 baudrate to 9600
2013.12.30 22:24:24 3: CUL_1 device opened
2013.12.30 22:24:24 3: CUL_1: Possible commands: BCFiAZEGMRTVWXefmltux
2013.12.30 22:24:27 3: [HourCounter] HourCounter_Initialize.156 Init Done with Version 0.99.d - 03.12.2013 (john)
2013.12.30 22:24:27 2: [CN.Test] HourCounter_Define.165 parameters: CN.Test HourCounter SHUTTER.BRENNER:onoff:.1 SHUTTER.BRENNER:onoff:.0
2013.12.30 22:24:30 3: FIRMATA: port 3030 opened
2013.12.30 22:24:30 2: error initializing Eingang: error initializing 'Eingang': Eingang, FIRMATA is not connected
2013.12.30 22:24:30 1: OWX: 1-Wire bus Eingang: interface FIRMATA is not connected to Firmata
2013.12.30 22:24:30 1: configfile: MaxCounterAT already defined, delete it first
2013.12.30 22:24:30 1: Including ./log/fhem.save
2013.12.30 22:24:31 1: statefile: Please define MAXSCAN.SHUTTER.EVENT first
2013.12.30 22:24:31 1: usb create starting
2013.12.30 22:24:32 1: usb create end
2013.12.30 22:24:32 2: Steuerung Talstr. 4
2013.12.30 22:24:32 0: Server started with 101 defined entities (version $Id: fhem.pl 4501 2013-12-29 17:59:52Z rudolfkoenig $, os linux, user root, pid 26205)
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:36 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:36 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:40 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:41 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:41 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:41 3: [MaxScan] MaxScanRun.800 define MAXSCAN.SHUTTER.EVENT notify (SchlafKontakt):onoff.* { MaxScan_Shutter_Notify("@","%EVTPART0","%EVTPART1")}
2013.12.30 22:24:42 2: [CN.Test] HourCounter_Run.448 first run done
2013.12.30 22:24:42 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:45 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:24:45 5: opened: FHEMWEB:192.168.0.33:50907
2013.12.30 22:24:46 5: HZ_Readings: do update
2013.12.30 22:24:47 5: HZ_Readings: do update
2013.12.30 22:24:47 5: opened: FHEMWEB:192.168.0.33:50907
2013.12.30 22:24:51 5: HZ_Readings: do update
2013.12.30 22:24:52 5: HZ_Readings: do update
2013.12.30 22:24:56 5: HZ_Readings: FHEMWEB:192.168.0.33:50907 is closed, ignoring notify
2013.12.30 22:24:56 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:26:07 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:26:25 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:27:26 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:27:46 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:29:39 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:29:56 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:30:17 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:30:18 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:30:33 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:30:40 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:30:41 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:32:00 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:32:00 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:32:01 5: HZ_Readings: not on any display, ignoring notify
2013.12.30 22:33:08 5: HZ_Readings: not on any display, ignoring notify
Dazwischen dann mal2013.12.31 15:01:17 5: HZ_Readings: do update
2013.12.31 15:01:17 5: HZ_Readings: do update
2013.12.31 15:01:24 5: HZ_Readings: do update
2013.12.31 15:01:25 5: HZ_Readings: do update
2013.12.31 15:02:08 5: HZ_Readings: do update
2013.12.31 15:02:49 5: HZ_Readings: do update
2013.12.31 15:02:50 5: HZ_Readings: do update
2013.12.31 15:03:07 5: HZ_Readings: do update
2013.12.31 15:03:08 5: HZ_Readings: do update
2013.12.31 15:03:09 5: HZ_Readings: do update
2013.12.31 15:03:16 5: HZ_Readings: do update
2013.12.31 15:03:17 5: HZ_Readings: do update
2013.12.31 15:03:25 5: HZ_Readings: do update
2013.12.31 15:03:33 5: HZ_Readings: do update
2013.12.31 15:03:49 5: HZ_Readings: do update
2013.12.31 15:05:49 5: HZ_Readings: do update
2013.12.31 15:05:50 5: HZ_Readings: do update
2013.12.31 15:06:06 5: HZ_Readings: do update
2013.12.31 15:06:33 5: HZ_Readings: do update
2013.12.31 15:07:08 5: HZ_Readings: do update
2013.12.31 15:09:06 5: HZ_Readings: do update
2013.12.31 15:09:27 5: HZ_Readings: do update
2013.12.31 15:09:28 5: HZ_Readings: FHEMWEB:192.168.0.100:51109 is closed, ignoring notify
2013.12.31 15:09:30 5: opened: FHEMWEB:192.168.0.100:51119
2013.12.31 15:09:32 5: HZ_Readings: do update
2013.12.31 15:09:32 5: opened: FHEMWEB:192.168.0.100:51119
2013.12.31 15:09:33 5: HZ_Readings: do update
2013.12.31 15:09:43 5: HZ_Readings: FHEMWEB:192.168.0.100:51119 is closed, ignoring notify
2013.12.31 15:09:44 5: HZ_Readings: not on any display, ignoring notify
2013.12.31 15:09:45 5: HZ_Readings: not on any display, ignoring notify
Kann das an dem Update liegen? Die Datei 33_readingsGroup.pm wurde aktualisiert.

Charles

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 01 Januar 2014, 13:07:06
Hallo Charles,

Zitat
Kann das an dem Update liegen? Die Datei 33_readingsGroup.pm wurde aktualisiert.

Das sieht ganz so aus.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Charles am 01 Januar 2014, 14:19:52
Hallo John,

ich hab HZ_Reading einfach mal auskommentiert, so siehts wieder besser aus!

Schönen Feiertag noch

Charles
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: koenigd am 11 Januar 2014, 22:40:19
Hallo,

habe den Betriebsstudenzähler soweit gut zum laufen bekommen.


Die Grafik über den Tagesverlauf ist ja schonmal super, Unterschiede der Brennerstarts in Abhängigkeit der Aussentemperatur sind gut sichtbar.

Ich würde jedoch gerne in einem Graf die Anzahl der täglichen Brennerstarts (Wochenansicht) darstellen und dazu die durchschnittliche Tagestemperatur.

Ich stelle mir der so vor, dass man jeden Abend um 23:59 die Anzahl Brennerstarts ins logfile schreibt, aber wie geht das?

Hat einer hierzu eine Idee??

Gruß Daniel
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: fhemjörg am 29 Januar 2014, 09:35:43
Hallo John,

ich hoffe Du liest das noch.....
Ich habe bei mir den Gaszähler umgesetzt (Reedkontakt und Max Fensterkontakt). Nun möchte ich noch gerne mit dem mini Lichtsensor von FS20 unterscheiden ob der Brenner das Trinkwasser warm macht oder für die Heizung läuft. Meine Idee ist, sobald eine kleine LED für die Trinkwasser Aufheizung an ist soll der  Gaszähler  für Warmwasser zählen ansonsten für Heizung.

Hast Du ein Vorschlag wie ich das umsetzen kann? Dein Modul anpassen (da reichen meine Perl Erfahrungen nicht) oder reicht das über userReadings?

Gruß
Jörg
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 29 Januar 2014, 09:49:48
Hallo Jörg,

wie ist das Timing der beiden Signale ?

kommt die LED explizit immer VOR dem Signal des Gaszählers, kommen beide quasi gleichzeitig oder ist das indifferent ?

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: fhemjörg am 29 Januar 2014, 10:11:07
Hallo John,

das ist indifferent, sobald die Ist Temp. vom Warmwasser unterhalt der Soll Temp. fällt schaltet das Ventil am Brenner bzw. Therme auf Warmwasser. Warmwasser hat immer vorrang vor Heizung.
Das eine "Unschärfe" beim Zählen entsteht ist mir bewusst. Ist es überhaupt möglich?
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 30 Januar 2014, 08:45:25
Hallo Jörg,

ich könnte mir Folgendes vorstellen:

Gesamtzähler für den Gasverbrauch, wie bisher

5 Sekunden nach positiver Flanke prüfst du, ob Anforderung Heizung oder Brauchwasser und merkst dir das Ergebnis
(die Wartezeit, bis das Kriterium sicher zu erkennen ist)

Nach der negativen Flanke wird wie üblich der Gesamtzähler inkrementiert (durch HourCounter), zusätzlich
wird das Ergebnis noch
  dem Zähler Brauchwasser zugeordnet, wenn die Anforderung Brauchwasser im Merker aktiv ist
  dem Zähler Heizung zugeordnet, wenn die Anforderung Heizung im Merker aktiv ist



John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: strauch am 30 Januar 2014, 12:28:09
@John,

hab dein Modul gestern erst gefunden, sehr sehr gutes Teil. Vielen Dank dafür. Ich nutze es gerade für meinen Gaszähler und um mit einem FS20SD die Sonnenstunden zu zählen.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 31 Januar 2014, 09:03:55
@strauch
danke für die Blumen.

Die Community um FHEM lebt vom Nehmen und Geben.

Mit dem HourCounter liefere ich einen kleinen Beitrag in den Geben-Topf.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: fhemjörg am 31 Januar 2014, 09:57:20
Hallo John,

Danke für die Rückmeldung. Wenn ich die Hardware habe werde ich es mal versuchen. Könntest DU mir denn noch ein Tipp geben wie ich ein Merker setzten kann?

Gruß Jörg
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: strauch am 31 Januar 2014, 12:11:49
@John,

für meinen Gaszähler fände ich es schön, wenn der Hourcounter auch countsperHour ausgeben könnte. Magst du das einbauen, ich kann es auch mal "probieren" mein Perl ist stark eingerostet und du schaust noch mal drüber oder hälst du das für nicht Interessant?

Ich überlege auch ob Counts per Minute interessant sein könnte. Würde soetwas ergeben wie ein Momentanverbrauch.

Vielleicht wäre auch ein Counter interessant dessen zeit man über ein attr setzten könnte?

Grüße

strauch
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 01 Februar 2014, 21:59:17
Hallo strauch,

ich arbeite an einer Lösung, die auch CountsPerHour oder CountsPer<meinWunschzeitraum> zulässt.

Bitte noch etwas Geduld.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: strauch am 03 Februar 2014, 16:43:51
Hallo John,

Geduld ist reichlich vorhanden. Danke

Grüße

Strauch

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: HourCounter Version 1.00
Beitrag von: John am 04 Februar 2014, 20:27:52
Die neue Version des HourCounters ist gebacken.

Es gibt sehr viele Möglichkeiten und Wünsche den HourCounter einzusetzen.
Etwa der nach Aggregation der Werte in beliebigen Zeiträumen.

Ich habe mich daher entschlossen, das Modul 98_HourCounter weitgehend zu belassen und hier nur
die Kernfunktionen zu implementieren.

Dafür wurde ein "Interface" integriert, das es ermöglicht in weiten Grenzen, neue Funktionalitäten hinzuzufügen.
Damit können die Anwender ihrer Phantasie freien Lauf lassen.

Das Modul 99_UtilsHourCounter ist eine Referenz-Implementierung hierfür.

Es stellt folgende Funktionen zur Verfügung:

Die nächsten Tage werde ich das Wiki nach und nach erweitern.

Inbetriebnahme:

Beide Module in das ../FHEM/ Verzeichnis kopieren.
Der HourCounter arbeitet zunächst wie die Vorgängerversion.
Die neuen Möglichkeiten werden über ein Notify aktiviert.

Alle meine HourCounter beginnen mit CN.* also z.B. CN.BRENNER.
Somit werden mit nachfolgendem Notify alle HourCounter mit den neuen Möglichkeiten beglückt.
Die Sub appHCNotify befindet sich in 99_UtilsHourCounter.pm

define CN.EVENT notify CN\..*:(countsOverall:|value:|tickHour:|tickDay:|tickWeek:|tickMonth:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
Der Filter für die Log-Datei der Rohwerte bei CN.BRENNER
define CN.BRENNER.File FileLog ./log/CN.BRENNER-%Y.log CN.BRENNER:(counts|pause|pulse|tick|clear|value|appUtilizationTemp).*:.*
Der Filter für die Log-Datei der aggregierten Werte bei CN.BRENNER
define CN.BRENNER.FileDay FileLog ./log/CN.BRENNER-Day-%Y.log CN.BRENNER:app\w+(PerHour|PerDay|PerWeek|PerMonth)(?!Temp).*

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 05 Februar 2014, 18:04:07
@John vielen Dank. Da brauch ich mal ein paar Stunden freien Kopf :-).
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: Stephan am 05 Februar 2014, 18:21:43
Das war auch mein erster Gedanke..:-)

Ansonsten erst mal wieder ein grosses Dankeschön an John, der ausser den tollen Sachen, die er uns hier zu Verfügung stellt, auch bei den dümmsten Fragen immer erstklassige und verständliche Hilfe und Antworten liefert!
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: netbus am 11 Februar 2014, 15:38:07
Hy,
Kann man mit dem HourCounter auch andere Werte ausser 0/1 bzw. open/close auswerten?
Hintergrund:
Ich möchte gerne meinen Stromverbrauch der alle 5 Sekunden ermittelt wird erfassen und so Monatsverbräuche generieren.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 15:49:33
Was für Daten überträgt denn der Zähler? Es gibt ja auch spezielle Module wie USBSML nur für Stromzähler.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: netbus am 11 Februar 2014, 15:50:30
Was für Daten überträgt denn der Zähler?
Reine Watt Werte
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 16:07:30
Hast du mal ein Logausschnitt? Meiner überträgt auch Wattwerte, aber da muss ich nix zählen, das macht der Zähler alles selber und ich muss es nur loggen und mit nem Plot darstellen.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 16:12:09
@John, ich teste gerade deine Erweiterung, ich bekomme aber keine Ergebnisse. Jetzt muss ich mal ganz simpel Fragen. Wenn ich das notify aktiviert habe, dann müsste doch auch im Log des Counters der alles mitloggt die app Werte auftauchen?

Meine definition sieht so aus:
define hwr_Gaszaehler HourCounter hwr_Gaszaehler_Reedkontakt:reading:.on hwr_Gaszaehler_Reedkontakt:reading:.off
attr hwr_Gaszaehler verbose 1

define Filelog_hwr_Gaszaehler FileLog ./log/hwr_Gaszaehler-%Y.log hwr_Gaszaehler

define cn_hwr_gaszaehler notify hwr_Gaszaehler:(countsOverall:|value:|tickHour:|tickDay:|tickWeek:|tickMonth:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

define FileLog_cn_hwr_Gaszaehler FileLog ./log/FileLog_cn_hwr_gaszaehler-%Y.log hwr_Gaszaehler:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth)(?!Temp).*

Im Log FileLog_cn_hwr_Gaszaehler tauchen keine Infos auf. Auch bekommt das notify keine Werte. Wobei mir gerade die Idee kommt das verbose 1 vielleicht ein Problem ist, ich wollte halt nicht jeden Tick im allgemeinen Log stehen haben, das teste ich mal.

Wobei das mit dem regexp im Filelog auch nicht richtig aussieht, obwohl ich kein Fehler finden kann:
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 11 Februar 2014, 16:34:25
Zitat
Wenn ich das notify aktiviert habe, dann müsste doch auch im Log des Counters der alles mitloggt die app Werte auftauchen?

Hast du schon einen Stundenwechsel abgewartet ?

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 17:17:46
ja schaut so aus:
2014-02-11_16:51:55 hwr_Gaszaehler value: 0
2014-02-11_16:52:23 hwr_Gaszaehler countsPerDay: 175
2014-02-11_16:52:23 hwr_Gaszaehler countsOverall: 1016
2014-02-11_16:52:23 hwr_Gaszaehler pauseTimeIncrement: 28
2014-02-11_16:52:23 hwr_Gaszaehler pauseTimePerDay: 14032
2014-02-11_16:52:23 hwr_Gaszaehler pauseTimeOverall: 123447
2014-02-11_16:52:23 hwr_Gaszaehler value: 1
2014-02-11_16:52:23 hwr_Gaszaehler 175
2014-02-11_16:56:14 hwr_Gaszaehler pulseTimeIncrement: 231
2014-02-11_16:56:14 hwr_Gaszaehler pulseTimePerDay: 46940
2014-02-11_16:56:14 hwr_Gaszaehler pulseTimeOverall: 196722
2014-02-11_16:56:14 hwr_Gaszaehler value: 0
2014-02-11_16:56:34 hwr_Gaszaehler countsPerDay: 176
2014-02-11_16:56:34 hwr_Gaszaehler countsOverall: 1017
2014-02-11_16:56:34 hwr_Gaszaehler pauseTimeIncrement: 20
2014-02-11_16:56:34 hwr_Gaszaehler pauseTimePerDay: 14052
2014-02-11_16:56:34 hwr_Gaszaehler pauseTimeOverall: 123467
2014-02-11_16:56:34 hwr_Gaszaehler value: 1
2014-02-11_16:56:34 hwr_Gaszaehler 176
2014-02-11_17:00:00 hwr_Gaszaehler tickHour: 1
2014-02-11_17:00:28 hwr_Gaszaehler pulseTimeIncrement: 234
2014-02-11_17:00:28 hwr_Gaszaehler pulseTimePerDay: 47174
2014-02-11_17:00:28 hwr_Gaszaehler pulseTimeOverall: 196956
2014-02-11_17:00:28 hwr_Gaszaehler value: 0
2014-02-11_17:00:45 hwr_Gaszaehler countsPerDay: 177
2014-02-11_17:00:45 hwr_Gaszaehler countsOverall: 1018
2014-02-11_17:00:45 hwr_Gaszaehler pauseTimeIncrement: 17
2014-02-11_17:00:45 hwr_Gaszaehler pauseTimePerDay: 14069
2014-02-11_17:00:45 hwr_Gaszaehler pauseTimeOverall: 123484
2014-02-11_17:00:45 hwr_Gaszaehler value: 1
2014-02-11_17:00:45 hwr_Gaszaehler 177
2014-02-11_17:01:49 hwr_Gaszaehler pulseTimeIncrement: 64
2014-02-11_17:01:49 hwr_Gaszaehler pulseTimePerDay: 47238
2014-02-11_17:01:49 hwr_Gaszaehler pulseTimeOverall: 197020
2014-02-11_17:01:49 hwr_Gaszaehler value: 0
2014-02-11_17:05:08 hwr_Gaszaehler countsPerDay: 178
2014-02-11_17:05:08 hwr_Gaszaehler countsOverall: 1019
2014-02-11_17:05:08 hwr_Gaszaehler pauseTimeIncrement: 199
2014-02-11_17:05:08 hwr_Gaszaehler pauseTimePerDay: 14268
2014-02-11_17:05:08 hwr_Gaszaehler pauseTimeOverall: 123683
2014-02-11_17:05:08 hwr_Gaszaehler value: 1
2014-02-11_17:05:08 hwr_Gaszaehler 178
2014-02-11_17:06:02 hwr_Gaszaehler pulseTimeIncrement: 54
2014-02-11_17:06:02 hwr_Gaszaehler pulseTimePerDay: 47292
2014-02-11_17:06:02 hwr_Gaszaehler pulseTimeOverall: 197074

Bei Verbose 3 ist es auch nicht anders
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 11 Februar 2014, 17:46:43
die Daten müssen in der Datei FileLog_cn_hwr_Gaszaehler  stehen, also in dem Filelog dessen Filter
app.*Per.* aufweist.

Mit verbose hat das nichts zu tun, verbose beeinflusst die Ausgabe in die fhem.log.

Die aggregierten Werte sind aber in den Filelogs.

Ausserdem kannst du mit forceHourChange einen Stundenwechsel erzwingen, um zu sehen, ob die Einträge im Log
der aggregierten Werte erscheinen. (Dann muss man nicht bis zum Stundenwechsel warten)

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 21:01:32
Jetzt muss ich noch mal ganz doof fragen...

set hwr_Gaszaehler forceHourChange?

Dann kommt bei mir forceHourChange command not found auf ein notify geht kein set.
Wo muss ich das forceHourChange ansetzten? Ich hab grad nen Brett vorm Kopf.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 11 Februar 2014, 21:12:46
Hast du die aktuelle Version ?

$HourCounter_Version="1.00 - 02.02.2014 (john)";

Hast du nach dem Installieren FHEM neu gestartet ?

set CN.Test forceHourChange
 führt bei mir  zu folgenden Events

Zitat
2014-02-11 21:08:23 HourCounter CN.Test tickHour: 1
2014-02-11 21:08:23 HourCounter CN.Test appCountsPerHourTemp: 0
2014-02-11 21:08:23 HourCounter CN.Test appCountsPerHour: 0

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 11 Februar 2014, 23:05:18
Ok es klappt..... ähmmm ja sehr peinlich, ich hatte beide Dateien nicht in meiner fhem installation. Ich könnte wetten das ich sie schon vor ein paar Tagen installiert hatte, ich hatte sie auch heruntergeladen. Sorry für die Umstände und danke für den Hinweis mit der Version. hmpf das ist ja frustrierend.....

Ich werde dann morgen mal weiter testen.
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: blueberry63 am 13 Februar 2014, 16:21:46
Hallo,

ich habe nun auch angefangen, HourCounter für die Messung meines Gasverbrauchs (mittels RPI_GPIO) zu nutzen. Es funktioniert auch soweit ganz prima, allerdings weiss ich nicht weiter, wie ich die aggregierten Werte in meine DBLog bekomme. Im Wiki ist ja nur das Übertagen in eine Datei beschrieben:
Zitat
define CN.Test.FileDay FileLog ./log/CN.Test-Day-%Y.log CN.Test:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth)(?!Temp).*

Da ich versuche, so wenig wie möglich auf die SD-Karte zu schreiben, würde auch hier gerne die Datenbank nutzen (die bei mir auf einem NAS liegt). Geht das?

Gruß
Blueberry63
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 13 Februar 2014, 19:10:16
Hallo Blueberry63,

Syntax von DbLog

define <name> DbLog <configfilename> <regexp>
Syntax von FileLog
define <name> FileLog <filename> <regexp>
Wo siehst du hier ein Problem ? Du musst einfach <regexp> für deine DbLog Definition übernehmen.

Das hat mit dem HourCounter im Grund nichts mehr zu tun.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: blueberry63 am 14 Februar 2014, 15:24:27
 ???
hat sich erledigt. Das war ein Gedankenfehler von mir: die aggregierten Werte sind ja schon in der DB
 :-[

Jetzt habe ich aber doch noch eine Frage: mir ist aufgefallen, daß die Readings "appCountsPerMonth" und "appCountsPerWeek" fehle, alle anderen Readings sind da. Werden die Readings erst beim Wochen- bzw. Monatswechsel erzeugt?

Gruß
Blueberry63
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 14 Februar 2014, 20:38:28
Zitat
erst beim Wochen- bzw. Monatswechsel erzeugt?
richtig
John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhemjörg am 18 Februar 2014, 18:11:56
Hallo John,

ich habe dein HourCounter eingesetzt um mein Gaszähler abzufragen. Ich nutze dazu ein Reedcontact und ein Max Fensterkontakt.
Der Gaszähler hat eine Vorrichtung bei der ich bei 0,01m³ von 9auf 0 ein on Signal bekomme und von 0 auf 1 ein Off Signal von Fensterkontakt bekomme. Somit zähle ich nur die countsper...., die Zeit zwischen den On und off interessieren mich in diesem Fall nicht.
mein fhem.cfg sieht so aus
define GasZaehler MAX ShutterContact 073272
attr GasZaehler room Gas
#attr GasZaehler userReadings onoff {(ReadingsVal("GasZaehler","state",0) eq "on")?0:1;; }
define CounterNeu HourCounter GasZaehler:onoff:.1  GasZaehler:onoff:.0
attr CounterNeu room Gas
attr CounterNeu userReadings verbrTagkWh {sprintf("%.1f", ReadingsVal("CounterNeu","countsPerDay",0)*0.01*10.6407) . " kWh";;;; }, verbrTagEuro {sprintf("%.2f", ReadingsVal("CounterNeu","countsPerDay",0)*0.01*10.6407*0.054) . " €";;;; }, verbrTag {sprintf("%.1f", ReadingsVal("CounterNeu","countsPerDay",0)*0.01) . " m³";;;; }, Zaehlerstand {sprintf("%.2f", ReadingsVal("CounterNeu","countsOverall",0)*0.01) . " m³";;;; }

define SVG_FileLog_CounterNeu_1 SVG FileLog_CounterNeu:SVG_FileLog_CounterNeu_1:CURRENT
attr SVG_FileLog_CounterNeu_1 room Plots

define FileLog_CounterNeu FileLog ./log/CounterNeu-%Y-%m.log CounterNeu
attr FileLog_CounterNeu logtype text
attr FileLog_CounterNeu room Logs

Das Problem ist jetzt, dass nicht jeder count erfasst wird, ein Fehler vom Fensterkontakt erhalte ich auch nicht.
Mei Logfile sieht so aus

2014.02.18 16:13:10 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:16:11 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:19:12 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:22:13 3: [CounterNeu] HourCounter_Run.606 falling edge pulseTimeIncrement:6114
2014.02.18 16:22:13 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:25:14 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:28:15 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:31:16 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:34:17 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:37:18 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:40:19 3: [CounterNeu] HourCounter_Run.591 rising edge; countPerDay:10
2014.02.18 16:40:19 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:42:50 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:42:55 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:43:00 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:43:05 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:43:10 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:46:11 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:49:12 3: [CounterNeu] HourCounter_Run.606 falling edge pulseTimeIncrement:533
2014.02.18 16:49:12 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:52:13 3: [CounterNeu] HourCounter_Run.591 rising edge; countPerDay:11
2014.02.18 16:52:13 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:55:14 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 16:58:15 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 17:00:00 3: [CounterNeu] HourCounter_Run.674 tickHour fired
2014.02.18 17:00:00 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 17:01:16 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1
2014.02.18 17:04:17 2: [CounterNeu] HourCounter_ExecQueue.111 cnt: -1

habe ich was falsch gemacht oder meldet der Max Fensterkontakt nicht immer sofort zurück? Ich nutze ein MaxLan zur Kommunikation.
Die Erweiterung von Dir mit Wochen und monatsdaten nutze ich noch nicht, oder ist das schon der Fehler? Ich wollte erst einmal klein anfangen.....

Gruß
Jörg
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 18 Februar 2014, 19:29:18
Sitzt denn der Reedkontakt gut. Ich fand das schon eine ganz ordentliche Fummelei bis der richtig saß und immer zählte.

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 18 Februar 2014, 20:03:41
@jörg

sehe ich genauso wie Strauch.
Du solltest erst mal das Log-des Fensterkontaktes studieren, bevor du den den Fehler beim HourCounter suchst.

Wenn der Fensterkontakt "Aussetzer" hat, kann Hourcounter nicht besser sein.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhemjörg am 19 Februar 2014, 19:12:17

Der Fenster Kontakt meldet oft
2014-02-18_20:59:07 GasZaehler opened (rf error)


Hat das mit den 1% zu tun?
Ich habe fünf Thermostate am laufen mit dem Temp. Scan....

Kann das zu viel sein oder was sagt der Fehler aus?
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 19 Februar 2014, 20:24:27
Hallo Jörg,

in 10_MAX.pm findet sich
my $rferror = vec($bits2, 6, 1); #communication with link partner (what does that mean?)
also ist sich Matthias auch nicht ganz klar drüber was das bedeutet.

Ich vermute mal, dass der Fensterkontakt gepaired ist und vergeblich versucht hat seine Information loszuwerden.
Möglicherweise ist der Cube/CUL zu weit entfernt.

In jedem Fall ist das ein Hinweis darauf, dass Informationen verloren gehen.

Wann jedoch rfError wieder zurückgesetzt wird ist noch unklar.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: JoeALLb am 24 Februar 2014, 10:33:01
Verständnisfrage:

Warum bekomme ich in meinem Log einen Eintrag eines Temperatursensors?
[CN.Waschmaschine] HourCounter_Notify.412 devName:temp.bz.AussenthermometerLaCrosse; CHANGED:temperature: 3.4; isOnReading:; isOffReading:;
Meine Definition ist:
PCA301_03:power:\s[0-9]{2,}(\.[0-9]{1,3})*$  PCA301_03:power:\s[0-9]{1}(\.[0-9]{1,3})*$
Demnach sollten meinem Verständnis nach nur PCA301-Power daten geloggt werden?
Was verstehe ich hier korrekt?
Danke, und vielen Dank für das Modul!
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 24 Februar 2014, 11:01:25
Hi  JoeALLb,
du hast verbose level 5 eingestellt, da wird jedes Detail geliefert.

Der Hourcounter erhällt ALLE events von ALLEN Devices.

Der Log-Eintrag zeigt genau dies an.
Aber das Event wird nicht verwendet, da "isOnReading" leer ist.

Mit verbose 4 sollten die Einträge verschwinden.

John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: JoeALLb am 24 Februar 2014, 11:36:10
Danke. Ich nachhinein hätte ich es gleich verstehen sollen ;-)
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhainz am 25 Februar 2014, 12:24:06
Hallo!

Ich bekommme beim starten von fhem in der konsole diverse Fehlermeldungen von hourcounter.

Subroutine HourCounter_Log redefined at ./FHEM/98_HourCounter.pm line 52, <> line 22.
Subroutine HourCounter_AddLog redefined at ./FHEM/98_HourCounter.pm line 65, <> line 22.
Subroutine HourCounter_Exec redefined at ./FHEM/98_HourCounter.pm line 85, <> line 22.
Subroutine HourCounter_cmdQueueAdd redefined at ./FHEM/98_HourCounter.pm line 95, <> line 22.
Subroutine HourCounter_ExecQueue redefined at ./FHEM/98_HourCounter.pm line 103, <> line 22.
Subroutine HourCounter_RoundHour redefined at ./FHEM/98_HourCounter.pm line 150, <> line 22.
Subroutine HourCounter_RoundDay redefined at ./FHEM/98_HourCounter.pm line 158, <> line 22.
Subroutine HourCounter_RoundWeek redefined at ./FHEM/98_HourCounter.pm line 166, <> line 22.
Subroutine HourCounter_SecondsOfDay redefined at ./FHEM/98_HourCounter.pm line 177, <> line 22.
Subroutine HourCounter_RoundMonth redefined at ./FHEM/98_HourCounter.pm line 185, <> line 22.
Subroutine HourCounter_Initialize redefined at ./FHEM/98_HourCounter.pm line 193, <> line 22.
Subroutine HourCounter_Define redefined at ./FHEM/98_HourCounter.pm line 208, <> line 22.
Subroutine HourCounter_Undef redefined at ./FHEM/98_HourCounter.pm line 260, <> line 22.
Subroutine HourCounter_Get redefined at ./FHEM/98_HourCounter.pm line 268, <> line 22.
Subroutine HourCounter_Set redefined at ./FHEM/98_HourCounter.pm line 285, <> line 22.
Subroutine HourCounter_Notify redefined at ./FHEM/98_HourCounter.pm line 390, <> line 22.
Subroutine HourCounter_Seconds2HMS redefined at ./FHEM/98_HourCounter.pm line 426, <> line 22.
Subroutine HourCounter_weekBase redefined at ./FHEM/98_HourCounter.pm line 436, <> line 22.
Subroutine HourCounter_Run redefined at ./FHEM/98_HourCounter.pm line 449, <> line 22.

Meine HourCounter defines:
define hourCounterAllgemein HourCounter arduino_pin_45:reading:.off
attr hourCounterAllgemein room Arduino
attr hourCounterAllgemein verbose 0

define hourCounterBoiler HourCounter arduino_pin_46:reading:.off
attr hourCounterBoiler room Arduino
attr hourCounterBoiler verbose 0

FHEM ist auf dem stand von gestern. Jemand eine Idee?

Grüße
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 25 Februar 2014, 13:26:23
Ich hab so was auch, aber mich noch nicht weiter damit befasst. Ich kann mal schauen das ich die logs auslese und hier poste.

Gesendet von meinem Nexus 4 mit Tapatalk

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 25 Februar 2014, 15:40:22
@fhainz
ich konnte das Problem lösen indem ich in 99_UtilsHourCounter die Zeile

require "98_HourCounter.pm";auskommentierte mit
#require "98_HourCounter.pm";
Das Laden der Module hat unter FHEM offensichtlich eigene Regeln.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: wolfi1104 am 25 Februar 2014, 19:20:31
Hallo
Ich habe eine FS 20
2-/4-Kanal-Sendemodul S4M
übrig und wollte es dazu her nehmen externe Ereignisse wie Bewegungsmelder, Dämmerungsschalter die bereits vorhanden sin in die Fhem einzubinden
Meine Frage nun kann ich damit auch einen Betriebsstundenzähler für meine Heizung umsetzen ähnlich wie mit einem Fenstercontact ?
kann mir jemand helfen
Gruß

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhainz am 16 März 2014, 16:29:20
Hallo John!

Ich nutzte das HourCunter Modul jetzt seit einiger Zeit zum Darstellen meines Stromverbrauches und bin von den unzähligen readings wirklich begeistert. Hab mir jetzt die einzelnen Werte in eine readingsGroup gesteckt und lasse sie mir so anzeigen.
 
Was mir irgendwie noch fehlt ist ein Jahres Zähler, gleich wie Wochen/Monat Zähler, den ich dann zB am Abrechnungstag auf 0 setzten kann. 
Was meinst du, kann man so etwas noch einbauen?

Grüße
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: strauch am 17 März 2014, 10:58:38
@fhainz, magst du den "Quelltext" von dem Readingsgroup veröffentlichen?
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 18 März 2014, 21:26:30
@fhainz
ich habe die Jahres-Aggregation nun in Vesion 1.02  hinzugefügt.

Es gibt nun die zusätzlichen Readings
 tickYear, appOpHoursPerDay,appOpHoursPerDayTemp ,appOpHoursPerYear ,appOpHoursPerYearTemp.

define CN.Event notify
ist wie im Wiki angegeben um tickYear zu erweitern.

Bitte testen.
Ein kurze Feedback wäre hilfreich.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhainz am 20 März 2014, 19:05:36
Danke für die schnell Umsetzung!
Habs inkl. yearChange getestet und es funktioniert super! Nochmals danke für das klasse Modul!

@strauch: klar, kein Problem
define:
define stromverbrauchAllgemeinRG readingsGroup d_stromverbrauchAllgemein:,<Aktuell>,power,<Durchschnitt Heute / Monat>,<{ReadingsVal("d_stromverbrauchAllgemein","power_avg_day","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_avg_month","").' W';;}>\
d_stromverbrauchAllgemein:,<Min / Max Heute>,<{ReadingsVal("d_stromverbrauchAllgemein","power_min_day","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_max_day","").' W';;}>,<Min / Max Monat>,<{ReadingsVal("d_stromverbrauchAllgemein","power_min_month","").' W / '.ReadingsVal("d_stromverbrauchAllgemein","power_max_month","").' W';;}>\
hourCounterAllgemein:,<Heute>,countsPerDay,<Gestern>,appCountsPerDay \
hourCounterAllgemein:,<Aktuelle Stunde>,appCountsPerHourTemp,<Letzte Stunde>,appCountsPerHour\
hourCounterAllgemein:,<Aktuell Woche>,appCountsPerWeekTemp,<Letzte Woche>,appCountsPerWeek\
hourCounterAllgemein:,<Aktuells Monat>,appCountsPerMonthTemp,<Letztes Monat>,appCountsPerMonth\
hourCounterAllgemein:,<Aktuells Jahr>,appCountsPerYearTemp,<Letztes Jahr>,appCountsPerYear\
hourCounterAllgemein:,<Gesamt>,countsOverall,<Start der Messung>,clearDate
attr stromverbrauchAllgemeinRG alias Stromverbrauch
attr stromverbrauchAllgemeinRG group Stromverbrauch Allgemein
attr stromverbrauchAllgemeinRG mapping &nbsp;;
attr stromverbrauchAllgemeinRG nameStyle { if($READING eq "Start der Messung"){ 'style="font-size:11px"' } }
attr stromverbrauchAllgemeinRG noheading 1
attr stromverbrauchAllgemeinRG room 5.2 Strom
attr stromverbrauchAllgemeinRG valueFormat { if($DEVICE eq "d_stromverbrauchAllgemein"){ sprintf("%.2f W", $VALUE);;}elsif($READING eq "clearDate"){ sprintf("%s", $VALUE);; } else{sprintf("%.2f kWh", $VALUE/1000);;} }
attr stromverbrauchAllgemeinRG valueStyle { stromverbrauchGesamtAllgemeinRGvalueStyle($DEVICE,$READING,$VALUE);; }

99_myUtils.pm
sub stromverbrauchGesamtAllgemeinRGvalueStyle($$$){

  my $device = shift;
  my $reading = shift;
  my $value = shift;
 
  # hourCounter Values sind in W
 
  if( $reading eq "state" ){
    if( $value > 3000 ){
      'style="color:red"'
    }
    elsif( $value > 2000 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "power_avg_day" || $reading eq "power_avg_month" ) ){
    if( $value > 300 ){
      'style="color:red"'
    }
    elsif( $value > 250 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "countsPerDay" || $reading eq "appCountsPerDay" ) ){
    if( $value > 6000 ){
      'style="color:red"'
    }
    elsif( $value > 4000 ){
      'style="color:orange"'
    }
    else{
    'style="color:green"'
  }
  }
  elsif( ( $reading eq "countsPerWeek" || $reading eq "appCountsPerWeek" ) && $value > 35000 ){
    'style="color:red"'
  }
  elsif( ( $reading eq "countsPerMonth" || $reading eq "appCountsPerMonth" ) && $value > 140000 ){
    'style="color:red"'
  }
  elsif( $reading eq "clearDate" ){
    'style="font-size:11px"'
  }
  else{
    'style="color:green"'
  }
}

Das average modul brauchst du auch. zB
define Temp_Hum_Avg average .*:(temperature|humidity|power).*
d_stromverbrauchAllgemein = dummy in dem im power reading der aktuelle verbrauch steht. das average Modul erstellt die min/max werte.
hourCounterAllgemein = der hourCounter selbst.

Da mein Stromzähler 1000 impulse/kwh hat, kann ich die generieren hourCounter werte einfach mit value format formatieren (durch 1000) und ich hab meine kWh. Wenn dein Zähler keine 1000 impulse abgibt dann müsstest du die werte entsprechend umrechnen.

Wichtig ist noch das im define der readingsGroup alle Leerstellen mit &nbsp; ersetzt werden.

Ich hoffe ich hab alles :D

Grüße
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: cwagner am 24 März 2014, 07:16:44
Hallo John,

die Ergänzungen von HourCounter habe ich jetzt seit einer Woche im Einsatz und bin schier begeistert: Viele Statistiken, die ich seit Jahtren von Hand mache zur Erfkolgskontrolle meiner diversen Projekte kann ich nun "elektrisch". Klasse! Mit der Jahres-Summe habe ich jetzt ein rundes Paket...

Herzliche Grüße

Christian
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhainz am 22 Mai 2014, 12:15:25
Hallo John,

checkst du das Modul mal ein?


Grüße
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 25 Mai 2014, 11:23:53
Hallo fhainz,

ich habe keinen Developer Status. Daher wird das vorerst nichts mit dem Einchecken.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: andreas.maurer am 27 Mai 2014, 20:28:55
Hallo fhainz,

was hast du denn als d_stromverbrauchAllgemein definiert?
Die Werte fehlen mir alle.

Andreas
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: fhainz am 27 Mai 2014, 20:35:26
Hallo!

Internals:
   CFGFN
   CHANGED
   NAME       d_stromverbrauchAllgemein
   NR         292
   STATE      367.49
   TYPE       dummy
   Readings:
     2014-05-17 14:47:44   ampere          1.00
     2014-05-04 12:09:53   cosphi          0.75
     2014-05-27 20:31:14   impulseSec      1401215474.32596
     2014-05-27 20:31:14   impulseTime     2014-05-27 20:31:14
     2014-05-27 20:31:14   power           367.49
     2014-05-27 20:12:51   powerPeak       0
     2014-05-27 20:31:04   power_avg_day   223.3
     2014-05-27 20:31:04   power_avg_month 254.2
     2014-05-27 20:31:04   power_cum_day   16496055.93
     2014-05-27 20:31:04   power_cum_month 611857271.309995
     2014-05-27 20:04:36   power_max_day   2533.3
     2014-05-10 17:14:50   power_max_month 7434.5
     2014-05-27 16:31:42   power_min_day   52.4
     2014-05-09 08:25:44   power_min_month 0.1
     2014-05-17 11:19:39   state           314.45
     2014-05-04 12:09:02   volt            400
Attributes:
   event-min-interval state:31,power:31,ampere:31
   group      Arbeits Dummys
   room       8.1 Parameter
   stateFormat power
   verbose    4

Ein dummy zum speichern. Die Werte kommen aus diesem Script (http://forum.fhem.de/index.php/topic,13155.msg170335.html#msg170335) zur Strommessung.

Grüße


Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: backbone10 am 29 Mai 2014, 21:24:13
Hi,
kann mir bitte wer erklären wie ich den "CN.BRENNER pulseTimeIncrement" - so heisst der Counter für die letzte Einschaltdauer - über webcmd oder telnet auf 0 rücksetzen kann?? Genau den finde ich leider nicht in der Auswahldropbox. Ich möchte aber nur den einen Counter rücksetzen..

Danke
bb10
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: John am 30 Mai 2014, 09:01:35
Hi backbone10,

ich möchte die Funktionalitäten des Moduls nicht überfrachten, daher habe ich auf Dinge, in denen ich "zunächst"
keinen Sinn sehe verzichtet.

Wozu benötigst du denn den einen Reset von pulseTimeIncrement ?

John

Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: backbone10 am 31 Mai 2014, 17:08:20
Hi,
danke für die Antwort.

Du hast mir vor längerer Zeit geholfen einen Alarm zu generieren, wenn bestimmte Laufzeiten eines Verbrauchers eintreten. Das funktioniert super, aber wenn dieser Zustand eintritt und ich dann den Alarm manuell rücksetzte, gibt das Modul um Mitternacht nochmal den "alten" pulseTimeIncrement aus, sofern nicht eine neuerliche Einschaltung war -  was bei mir der Fall ist. Das generiert dann nochmal den Alarm....
Daher wäre es ideal den Counter bei Bedarf  rückzusetzen oder die Ausgabe beim Tageswechsel zu unterdrücken. Ich habe eher geglaubt, das kann man leicht rücksetzten und nur ich weiss  nicht, wie es geht :)

LG
bb10

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 Juni 2014, 11:14:22
Hallo  backbone10
mit Version 1.03 hat man nun die Möglichkeit über den Setter
die Readings pulseTimeIncrement und pauseTimeIncrement zu verändern.

Die aktuelle Version findet sich nun immer als Anhang zum ersten Beitrag in diesem Thread.

John
Titel: Antw:Betriebsstundenzähler mit Max-Fensterkontakt/HourCounter
Beitrag von: pappn am 07 Juni 2014, 11:15:01
Hallo John,

vielen Dank für die viele Arbeit die du in dieses Thema investierst. Nachdem ich eine deiner ersten Versionen für meinen Oelbrenner adaptiert hatte, habe ich das Thema eine ganze Weile nicht mehr verfolgt.

Ich bin aber jetzt wieder darauf gestoßen und begeistert von den aktuellen Modulen und der Flexibilität die man damit hat und lasse den HourCounter zur Zeit parallel zur etablierten Lösung laufen. Definition und Einrichtung bisher kein Problem.

Ich habe nun eine Frage. Mir ist aufgefallen, dass immer zum DayChange die Zähler appCountsPerWeekTemp, appCountsPerMonthTemp und appCountsPerYearTemp hochgezählt werden, ohne das ein entsprechendes Brennerereignis (Trigger) vorliegt. Dieses hochzählen erfolgt auch bereits bei der initialisierung des Moduls, so dass hier bereits mit 1 statt 0 gestartet wird. Damit weichen dann diese Zähler z.B. von den countsOverall ab laufen der tatsächlen Anzahl von Counts davon.
Aus meiner Sicht sollte dieses Hochzählen zum DayChange bzw. Initialisieriung nicht erfolgen, oder verstehe ich da etwas falsch?

beste Grüße
pappn

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 07 Juni 2014, 11:28:55
Hallo pappn,

wie ich im Wiki beschrieben habe, sind alle app* Readings Erweiterungen.

Mit 99_UtilsHourCounter.pm habe ich eine Referenz-Implementierung erstellt, die zeigen soll, wie man solche Erweiterungen
implementiert.

Die app*Temp Readings sind Arbeitszähler, die bei Tageswechsel allesamt aktualisiert werden.
Ziel dieser Arbeitszähler ist es letztlich die akkumulierten Werte beim Wechsel des entsprechenden Zeitintervalls (z.B Monatswechsel) vorzuhalten.

Wenn du andere Intervalle oder anderes Verhalten wünscht, kannst du jederzeit die 99_UtilsHourCounter.pm entsprechend anpassen.

99_UtilsHourCounter.pm ist lediglich als Vorschlag zu sehen.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 07 Juni 2014, 11:50:22
Hallo John,

alles klar, da ist also Handarbeit angesagt.
Mal sehen ob ich das hinbekomme.

Danke für die schnelle Antwort.
Pappn
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: backbone10 am 08 Juni 2014, 08:32:19
Hi John,
danke sehr !!!!

LG
BB10


Hallo  backbone10
mit Version 1.03 hat man nun die Möglichkeit über den Setter
die Readings pulseTimeIncrement und pauseTimeIncrement zu verändern.

Die aktuelle Version findet sich nun immer als Anhang zum ersten Beitrag in diesem Thread.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: mi.ke am 08 Juni 2014, 16:47:56
Hallo John,

ich bin ehrlich gesagt mehr durch Zufall auf dieses geniale Modul HourCounter gestoßen, da ich keine MAX Komponenten einsetze.

Ich wollte eigentlich einen Betriebssundenzähler für meine "Fliegenkiller-Steckdose" einbauen, um erkennen zu können, wann ein Wechsel der Kapseln nötig ist.
Mit dem HourCounter waren nach 20 min waren alle meine Anforderungen umgesetzt, sensationell.

Mehr noch, einen grafische Anzeige über den Füllstand mit einfachste Mitteln ist in Minuten umsetzbar.

Vielleichtt findet dieses wirklich geniale Modul bald seinen Weg in das Standard-FHEM.

Mir sind zu diesem Modul sofort viele Anwendungsmöglichkeiten eingefallen, die nichts mit MAX zu tun haben, dennoch bestimmt für Viele hilfreich wären.

* Nutzungsdauer beschränken für TV,Internet oder Spielkonsolen für entnervte Eltern

* Betriebstundenzähler für Beamer, Solarien etc.

* Nutzungsdauer ermitteln zur Energieeinsparung (Klimagerätr, Ventilatoren, Dunstabzugshauben etc.)

*  Lüftungsverhalten ermitteln (wie lange Fenster pro Tag geöffnet)

....um nur die spontan Einfälle wiederzugeben.

Zusammenfassend (ich spreche nur für mich) :

Hole dieses hervorragende Modul aus seiner MAX Versenkung . . .

cheers

Mike

PS.
Viellicht war ich ja auch nur zu blind und es ist bis heute vor mir versteckt geblieben und alle kennen es schon.
Ich bin halt TOTAL begeistert ! ! !
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 09 Juni 2014, 12:07:53
Hallo Mike ,

vielen Dank für deinen netten Beitrag.

Zitat
Hole dieses hervorragende Modul aus seiner MAX Versenkung . . .

Ursprünglich war das Modul nur ein einfaches Skript, das nur mit dem Max-Fensterkontakt funktioniert.
Nach und nach erst ist etwas Allgemeingültiges daraus geworden.

Der Plan war, mit dem Wiki-Artikel mehr Nutzer zu erreichen.

Wie bist du auf den HourCounter gestossen ?

Irgendwann im Laufe des Jahres, wenn ich zeitlich mehr Luft habe, werde ich mich um den Developer-Status bemühen
und dann kann auch dieses Modul Teil von FHEM werden.

John


Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: mi.ke am 09 Juni 2014, 13:26:51
Hi John,

Dein Plan mit dem Wiki ist aufgegangen.
Suchebegriffe waren "fhem counter | fhem Betriebsstundenzähler" via Gxxgle

Witzigerweise hatte ich die ersten Posts zu dem Max-Fensterkontakt-zum-Brennerstart-zählen gelesen, aber als für mich nicht so relevant eingestuft. Wie man sich doch täuschen kann.

naja, egal ...

Ich möchte mich noch mal bedanken. . . .
für mich schließt Deine Modul eine Lücke in fhem, dessen Lösung ich bis dato vermisst hatte.

Cheers
mi.ke

PS.
Der Wiki-Eintrag ist für Nicht-Max User tricky (das onoff und die 1 hatten mich verwirrt)
Einfacher wären (mMn) on:off Beispiele, da diese auch in der commandRef verwendet werden.
define CN.Test HourCounter myDummy:on myDummy:off
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 13 Juni 2014, 15:52:29
Hallo John,

alles klar, da ist also Handarbeit angesagt.
Mal sehen ob ich das hinbekomme.

Hallo John,
ich habe die 99_UtilsHourCounter.pm geändert. Für den Fall, dass jemand anderes auch gerne konsistente Zähler (Tag, Woche etc.) für die akkumulierten Counter (z.B. Brenner Starts) haben möchte, packe ich meine Version dazu. Vielleicht magst du dir meine Ergänzung der Sub appHC_OnCount mal ansehen und dies vielleicht in deine offizielle Version übernehmen.

Nochmals besten Dank für die klasse Arbeit und beste Grüße
Pappn
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Waldmensch am 03 Juli 2014, 09:29:56
Ich habe mal eine Frage: Wird pulseTimePerDay permanent erhöht oder nur bei einem Schaltvorgang? Ich möchte eine Poolpumpe abhängig von der Leistung meiner PV Anlage schalten. Die Poolpumpe soll aber nicht länger als 5h pro Tag laufen. Mein Code s.u. schaltet die Pumpe ein und wieder aus. Die Frage ist nun, wenn die Anlage permanent 3kW liefert ist das ja nur ein Schaltvorgang. Das heißt Counter_SunnySwitch1 wird nur einmal getriggert. Habe ich trotzdem immer den kumulierten Tageswert in pulseTimePerDay ?

Sunny:PV.* {
   if ($hour >= 9 && $hour < 17 && (ReadingsVal('Counter_SunnySwitch1','pulseTimePerDay',0) < 18000)) {
     if (ReadingsVal('Sunny','PV',0) > 3000) {
       fhem('set FS20_test on') unless ($value{FS20_test} eq 'on');
     }
   
     if (ReadingsVal('Sunny','PV',0) < 2500) {
       fhem('set FS20_test off') unless ($value{FS20_test} eq 'off');
     }
   } else { fhem('set FS20_test off') unless ($value{FS20_test} eq 'off');}
 }
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Mitch am 03 Juli 2014, 16:05:08
Bin gerade auf dieses geniale Modul gestoßen, vielen Dank dafür.

Jetzt habe ich gleich eine Frage: kann ich den Gesamtstromverbrauch eines Devices (bei mir eine HM Steckdose) messen und auswerten?

Habs so probiert (ohne Erfolg): define Pumpenstromverbrauch HourCounter device:power:*
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 03 Juli 2014, 23:41:33
Hallo Waldmensch
zu deiner Frage:
Zitat
Ich habe mal eine Frage: Wird pulseTimePerDay permanent erhöht oder nur bei einem Schaltvorgang?

pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.

Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 03 Juli 2014, 23:46:06
Hallo Mitch,
du solltest dir das im ersten Beitrag erwähnte Wiki vornehmen.

Der Hourcounter berechnet zunächst  Puls- und Pausendauer eines Ereignisses.

Du brauchst als genau das Event bei der Definition, das den EIN-Zustand und den AUS-Zustand beschreibt.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Waldmensch am 04 Juli 2014, 00:10:59
Hallo Waldmensch
zu deiner Frage:
pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.

Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.

John

OK, schade und Super  :)

Ich finde dieses Modul ist sehr wertvoll. Eventuell sollte es dann aber über ein separates Reading gemacht werden. Nicht das es Dinge durcheinander bringt. Letztlich müßte man ja nur einen aktivierbaren, frei konfigurierbaren refresh intervall realisieren. Also das, was jetzt bei Tageswechsel passiert halt kürzer auslegen. In meinem speziellen Fall kommt es ja jetzt nicht auf die Sekunde an und ich würde als intervall vielleicht 10 Minuten wählen. Auch um FHEM nicht immens zu belasten.

In jedem Fall vielen Dank für Deine Mühe.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Heiner am 18 Juli 2014, 09:33:38
hi, ich mochte das Modul HourCounter nutzen und es steht auch im FHEM Verzeichnis.

Aber wenn ich den define Befehl absetze sagt mir fhem : Unknown module HourCounter

Was mach ich falsch?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 18 Juli 2014, 21:54:55
Hallo Heiner,

es wäre sinnvoll, wenn du deine Signatur aktualisiert, dann muss man die Grundlagen nicht nochmal erfragen.

Hast du ein Linux-artiges System auf dem FHEM läuft (Raspi z.B.)

Wenn ja, sind die Rechte von 98_HourCounter.pm identisch zu jenen Dateien, die Bestandteil von FHEM sind ?

Wenn nein, ist dies dein Thema.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: einnordlicht am 20 Juli 2014, 19:10:05
Hallo John,
ich bin auch ueber die Stichworte FHEM und Betriebsstundenzaehler ueber Google auf Deine FHEM Module gestossen, und die sind wohl genau das, was ich noch brauche. Vielen Dank fuers Posten!

Bei mir geht es darum, die akkumulierte Betriebszeit (und damit  Oelverbrauch) meiner Ölheizung zu messen. Auf der Suche nach einem "Geber" fuer die Brennerzeit habe ich allerdings eine pragmatische Lösung ohne Reedrelais genutzt: ein altes, kleines 5V Steckernetzteil eines alten Motorola-Handys wurde einfach parallel zum Betriebsstundenzaehleranschluss der Heizung angeschlossen. Die liefert naemlich genau dann  Netzspannung, wenn der Brenner laeuft, sonst nicht und das Netzteil ohne wirkliche Last belastet fast gar nicht. Der 5V Ausgang des Netzteils wurde mit einem 1.5k Widerstand und einer parallel geschalteten Widerstandkaskade versehen. Der Widerstand sorgt dafuer, dass die Kondensatoren innerhalb einer Sekunde entladen, damit  die 5V auf 0 abfallen, wenn der Brenner ausschaltet. Die Widerstandskaskade wird gebraucht, um die max auftretenden 5V auf die erlaubten 3.3V zur Betriebszeit zu senken. Die abgegriffenen max 3.3V wurden dann  direkt am Raspberry PI am GPIO 23 angeschlossen.

Jetzt fehlt mir nur noch eine effiziente Methode, nur noch auf die steigende oder fallende Flanke mit einem Python Script zu reagieren und muss mir noch mal ansehen, wie die MAX Sensoren das machen. Wahrscheinlich ist es am einfachsten, das einfach zu simulieren.

Gruss aus Koelle
    vom Nordlicht

PS: Preislich schien mir diese Methode  am guenstigsten, da USB Steckernetzteile inzwischen nur noch  1-2 Euro kosten (oder noch in der Schublade rumfliegen) und im Fall vom Raspberry nur eine Handvoll Widerstaende und ein paar Draehte noetig sind.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 20 Juli 2014, 20:21:06
Hallo einnordlicht,

vielleicht ist das Modul RPI_GPIO für dich die Lösung den digitalen Eingang in FHEM bekannt zu machen. (siehe command ref)

Der HourCounter ist sicher eine Lösung für dein Problem.

Wenn das mit dem RPI_GPIO-Modul klappt solltes du im Event-Monitor bei einem Status-Wechsel Ereignisse sehen.
Mit diesen kannst du den HourCounter füttern.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: netbus am 21 August 2014, 09:18:52
Hallo Mitch,
du solltest dir das im ersten Beitrag erwähnte Wiki vornehmen.

Der Hourcounter berechnet zunächst  Puls- und Pausendauer eines Ereignisses.

Du brauchst als genau das Event bei der Definition, das den EIN-Zustand und den AUS-Zustand beschreibt.

John
Hallo,
Ich bin auch nach der Suche wie Mitch um den Stromverbrauch auszuwerten. Zb in Monatswerten.
Das Log meiner Steckdose sieht so aus.
2014-07-18_10:49:55 Steckdose_Pwr energy: 0
2014-07-18_10:49:55 Steckdose_Pwr power: 0.08
2014-07-18_10:49:55 Steckdose_Pwr current: 0
2014-07-18_10:49:55 Steckdose_Pwr voltage: 233.6
2014-07-18_10:49:55 Steckdose_Pwr frequency: 49.99
2014-07-18_10:49:55 Steckdose_Pwr eState: E: 0 P: 0.08 I: 0 U: 233.6 f: 49.99
Wie könnte jetzt eine HourCounter definition aussehen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 27 August 2014, 15:14:04
Hallo zusammen,

ich finde die Idee nicht schlecht.

Ich spiele mit der Idee damit meinen Ölvorrat zu überwachen!  Kann man im fhem auch rechnen?


Mir schwebt folgendes vor.

ich kenne die Brennerlaufzeit, den Ölverbrauch pro Stunde habe ich ausgelitert, also kenne ich diesen auch relativ genau.

Jetzt könnte ich darüber ja die aktuell verbrauchte Menge Öl errechnen.  Zusätzlich kenne ich noch meine aktuelle Öl menge, jetzt könnte man doch über eine Grafik einfach die noch vorhandene Menge Öl dich anzeigen lassen.
 
Hat das jemand schon gemacht und hat ggf. ein paar Zeilen Code dafür über!


Gruss Dirk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 27 August 2014, 15:29:41
@netbus

Der Hourcounter kann kein Integral über einen analogen Wert berechnen.
Daher sehe ich für deine Problemstellung keine Lösung damit.

@hyper2910
Das sollte möglich sein.
HourCounter liefert ja die Laufzeiten. Damit lässt sich bei bekanntem Verbrauch/Zeit der relative Verbrauch berechnen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 27 August 2014, 22:18:01
@hyper2910
Mit Johns HourCounter Modul und ein paar kleineren Ergänzungen des UtilsHourCounter Moduls (siehe Wiki) lässt sich soetwas leicht realisieren.
Bei mir sieht es zurzeit wie im Anhang aus.

Pappn
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 28 August 2014, 09:50:22
hi pappn,

vielen Dank,


das mit dem Diagramm etc. ist klar, aber wie hast du die TabellenWerte angelegt und gerechnet.

Vielleicht kannst du mir mal deinen Code verraten!


Gruss Dirk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag 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.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 28 August 2014, 22:44:09
Danke,

kannst du mir den Rest, welcher damit zusammenhängt auch mal zukommen lassen, ich bekomme es irgendwie nicht hin.


aus dem WIKI, habe ich alle übernommen,


jedoch bekomme ich hier einen Fehler:

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

und zwar:

wrong syntax: define <name> FileLog filename regexp


Gruss DIrk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Spuckiii am 29 August 2014, 10:03:06
Hallo ich versuche grade den Hour Counter einzurichten. Ich habe einen Raspberry pi auf dem fhem läuft und einen arduiono mega, den ich per usb verbunden habe Firmata usw. alles installiert. Ich verwende folgenden S0Zähler DRS155DC-V3. Dieser sendet als Readings reading on off. Die DEF für den Counter ist wie folgt:

hwr_Gaszaehler_Reedkontakt:reading:.on hwr_Gaszaehler_Reedkontakt:reading:.off
(lasst euch nicht von dem Namen verwirren.) Aktuell gibt der Zähler mir das aus siehe Bild.
Wenn ich jetzt richtig rechner bei 2000 Impulsen pro KW/h müsste ich dann (grob) 9 KWh Verbraucht haben. Das kann doch nicht stimmen. Habe ich einen Denkfehler?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 29 August 2014, 10:16:38
Hi Spuckiii,

zeig uns doch mal dein EventLog , wenn der Sensor aktiv ist.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Spuckiii am 29 August 2014, 10:37:31
Hier ein kleiner Ausschnitt siehe Bild

Konfig von dem "Reedkontakt":
 hwr_Gaszaehler_Reedkontakt
 hwr_Gaszaehler_Reedkontakt Internals
DEF   
22
IODev
firmata
NAME
hwr_Gaszaehler_Reedkontakt
NR
40
PIN
22
STATE
on
TYPE
FRM_IN
Readings
reading
on
2014-08-29 10:36:50
state
Initialized
2014-08-28 20:18:44
 hwr_Gaszaehler_Reedkontakt Attributes
IODev
firmata
deleteattr
event-on-change-reading
.*
deleteattr
internal-pullup
on
deleteattr
room
HWR
deleteattr
stateFormat
reading
deleteattr
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 29 August 2014, 10:57:20
Hi Spucckiii,

bist du dir sicher, dass du mit FHEM einen schnellen Zähler realisieren willst ?

Dafür ist FHEM sicher nicht gebaut worden.

Wie oft kommt den in der Sekunde ein Flankenwechsel ?

Du solltest die Zählerei in diesem Fall dem Arduino überlassen.

Das kann nicht gut gehen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Spuckiii am 29 August 2014, 11:27:52
Hm. Was heißt schneller Zähler, ist ein normaler S0Zähler, allerdings sendet dieser Impulse von 30 Millisekunden, die anderen so um 60 - 90.
Dann muss ich mal gucken wie ich das mache...  aber dass das so gravierende Unterschiede zu einem 90 ms bei 1000 Impulsen sein soll...
Danke trotzdem. :-)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 29 August 2014, 20:40:25
jedoch bekomme ich hier einen Fehler:

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

und zwar:

wrong syntax: define <name> FileLog filename regexp

in der regexp solltest du kein Leerzeichen haben. Also mal das Leerzeichen zwischen ...\w+ und (Util... löschen.
Ich meine den Fehler habe ich auch gemacht.

Christof
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 29 August 2014, 22:36:13
danke, das war es!

momentan sieht es so aus.



Was ich momentan nicht hinbekomme, da ich es nicht finde, ist der Tankinhalt, bzw. was noch im Tankdrin ist und wo der Verbrauch berechnet wird.

(http://Unbenannt.PNG)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 30 August 2014, 14:13:56
Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
Zeile 143:my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.000630901964;
Der Wert 0.000630901964 ist dabei der Oelverbrauch je Sekunde und muss von dir an deine Gegebenheiten angepasst werden.
Den gleichen Wert findest du auch in attr Brenneruebersicht_3 valueFormat der Readingsgroup Definitionen. Hier ist er dann auch anzupassen.

Den aktuelen Wert für den Tankinhalt kannst du mit setreading <device> <reading> <value> setzen.
Bei mir sieht das aktuell dann so aus:setreading BrennerTest appTanklevel 4456.01856228562
Christof
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 30 August 2014, 15:44:08
Super Vielen Dank,

das hat mich weitergebracht.

Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
d.h. mit foreDayChange, sollte er das doch berechnen, oder nimmst du zur Berechnung 0Uhr?




Zum Wiki Artikel habe ich noch die Frage zu den Charts

Für die Kurve "Brenner EIN" verwenden wir CN.Test.value. Damit diese als unterste Kurve dargestellt wird transformieren wir den Wert 1 auf -2 und alle anderen (also die 0) auf -21 mit folgender Funktion:
$fld[3]=~"1"?-2:-19
müsste das nicht lauten
$fld[3]=~"1"?-19:-2
da ansonsten die Kurve Spiegelverkehrt dargestellt wird?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 30 August 2014, 20:15:37
Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
d.h. mit foreDayChange, sollte er das doch berechnen, oder nimmst du zur Berechnung 0Uhr?
So ähnlich. Routinemäßig läuft das über das CN.Event Notify.
define CN.Event notify CN.Test:(countsOverall:|value:|tickHour:|tickDay:|tickWeek:|tickMonth:|tickYear:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}Zum Tageswechsel (00:00) wird der Event tickDay durch das Hourcounter-Device CN.Test ausgelöst. Das Notify CN.Event reagiert auf das Ereignis und ruft die Sub appHCNotify auf und diese bei dem Event tickDay die Sub appHC_OnDay in der alle dayly tasks bearbeitet werden. Auch das Kommando forceDayChange führt letztendlich zu einem tickDay Event.

Zum Wiki Artikel habe ich noch die Frage zu den Charts

Für die Kurve "Brenner EIN" verwenden wir CN.Test.value. Damit diese als unterste Kurve dargestellt wird transformieren wir den Wert 1 auf -2 und alle anderen (also die 0) auf -21 mit folgender Funktion:
$fld[3]=~"1"?-2:-19
müsste das nicht lauten
$fld[3]=~"1"?-19:-2
da ansonsten die Kurve Spiegelverkehrt dargestellt wird?

Nein, das passt so.

Christof
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 01 September 2014, 06:50:20
Hi Christof,

vielen Dank,

Mittlerweile läuft alles.

Jedoch denke ich, das die Laufzeiten irgendwie falsch berechnet werden.

Bei zwei Starts heute, habe ich eine Laufzeit von über 3Stunden.  Die Starts stimmen das habe ich mit dem intenen Leser der Heizung abgeglichen. die durchschnitlliche Brenndauer liegt bei 4min.

Da ich momentan nur Warmwasser mache, hätte ich bei 2Starts max mit 10-15Min gerechnet.

Wenn ich mir das Logfile des Shutters anschaue, komme ich auch auf diese Zeiten. ca 11Minuten an.(closed)

2014-09-01_02:57:14 oelzaehler opened
2014-09-01_03:09:45 oelzaehler battery: ok
2014-09-01_03:09:45 oelzaehler onoff: 0
2014-09-01_03:09:45 oelzaehler closed
2014-09-01_03:18:11 oelzaehler battery: ok
2014-09-01_03:18:11 oelzaehler onoff: 1
2014-09-01_03:18:11 oelzaehler opened
2014-09-01_03:31:51 oelzaehler battery: ok
2014-09-01_03:31:51 oelzaehler onoff: 0
2014-09-01_03:31:51 oelzaehler closed
2014-09-01_03:35:15 oelzaehler battery: ok
2014-09-01_03:35:15 oelzaehler onoff: 1
2014-09-01_03:35:15 oelzaehler opened
2014-09-01_03:56:33 oelzaehler battery: ok
2014-09-01_03:56:33 oelzaehler onoff: 1
2014-09-01_03:56:33 oelzaehler opened
2014-09-01_04:55:51 oelzaehler battery: ok

Ich glaube das die Aus und Ein Zustände Vertauscht sind, da auch mein Diagramm wie oben beschrieben falsch rum aussieht, wie kann ich dieses ändern? 

define <name> HourCounter <regexp_for_ON> [<regexp_for_Off>]
hier den Wert onoff.1 bei "off" eintragen und onoff.0 bei "ON"?



Gruss Dirk
 
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Billy am 01 September 2014, 09:05:10
Ich lasse mir die Betriebsstunden/Verbräuche aus  HourCounter direkt im SVG.Plot darstellen. :)
Super Modul

Gruß Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 01 September 2014, 19:05:48
Hallo Dirk,

das würde ich so machen. Wie sich dein Fensterkontakt verhält, hängt ja davon ab welches Koppelrelias du eingebaut hast. Die gibt es als Öffner, als Schließer oder auch als Kombination aus beidem (hängt dann vom Anschluss ab, wie es sich verhält).

John hat hierfür einen Öffner verwendet. Das bedeutet Heizung AN = Fenster AUF (onoff:1) / Heizung AUS = Fenster ZU (onoff:0).
Wenn du nun einen Schließer verwendest, meldet dein Fensterkontakt es genau umgekehrt. Heizung AN = Fenster ZU (onoff.0) etc.

Also Definition anpassen, dann sollte es gehen.

Christof
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 25 September 2014, 14:17:38
Hallo,
sehr interessantes Thema hier.
Ich habe aber nochmal vorweg eine Frage zur verwendeten Hardware.
Ihr schliesst (oder lasst es vom Fachmann machen) an die Leitung zum Heizungsbrenner ein Koppelrelais und daran ein Modul(z.B. Fensterkontakt-FHTTK, oder FS20KSE)  an, welches on/off simuliert welches dann von dem hier vorgestellten Modul HourConter ausgewertet werden kann ?
 
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: pappn am 25 September 2014, 18:36:46
So ist es; und funktioniert prima.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 25 September 2014, 22:36:36
Sehr gut. Habt Ihr denn mal nen Tip für so ein Koppelrelais für mich ?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 27 September 2014, 11:36:33
Hallo Bartimaus,
wie lautet den konkret die Aufgabenstellung ?

Wenn du das weisst, musst du dich auf die Suche machen, welcher Ausgang deiner Heizungsanlage
diese Information liefern kann.

Danach ist zu klären welche elektrischen Eigenschaften dieser hat (z.B es ist ein 230VAC Signal).

Dann erst kann man sich auf die Suche nach einem geeigneten Koppelglied machen.

Es ist aber kein Thema für Laien an der elektrischen Verdrahtung der Heizungssteuerung zu manipulieren.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 05 Oktober 2014, 11:41:45
Moin,


danke für die Rückmeldung. Wenn ich diesen Schaltplan meines Steuergerätes richtig deute, wird der Brenner mit 230VAC angesteuert.
Diese Leitung müsste dann der Elektriker meines Vertrauens abgreifen, um ein Koppelrelais dazwischen zu hängen.


 [size=78%]http://buderus.de/pdf/unterlagen/0063034125.pdf (http://buderus.de/pdf/unterlagen/0063034125.pdf)[/size]
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 05 Oktober 2014, 11:57:11
Hallo Bartimaus,

du solltest den ersten vor dem zweiten Schritt machen.

Zitat
wie lautet den konkret die Aufgabenstellung ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Wzut am 06 Oktober 2014, 11:30:11
John , danke für das umfangreiche Modul. Ich möchte bei einem Punkt vom Juni diesen Jahres noch einmal nachhaken :

pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.
Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.

Und ist beim nachdenken schon etwas rausgekommen ? Es wäre wirklich schön wenn man mit einem Attribut das aktualiesren der Readings in einem festen Zeitintervall (bsp 300 Sekunden) quasi "erzwingen" könnte. 
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 10 Oktober 2014, 15:12:23
Hallo Bartimaus,

du solltest den ersten vor dem zweiten Schritt machen.

John


Hi John,


so gerade nochmal geschaut. Mein Ölbrenner hat einen Standard-Wielandstecker zur Strom/Steuerungsversorgung.


Das ist die Steckerbelegung: http://www.haustechnikdialog.de/shkwissen/Showimage.aspx?ID=2383


T1, T2 = Temperaturschleife. Wenn geschlossen, dann Feuer und Flamme, wenn offen, dann Feuer aus!
S3 = Ausgang Brennerstörung. Wenn Spannung da, dann Störung!
B4 = Ausgang Betriebsstunden. Wenn Spannung da, Feuer in der Kiste, wenn nicht dann nicht!
Alle Spannungen sind von der Einspeisung versorgt, daher 230V~!!!

Dh, mein Elektriker greift die Info ob der Brenner läuft, an T1+T2 ab, um daran welches Relais anzuschliessen ?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 10 Oktober 2014, 16:46:00
Hi Bartimaus,

ich vermute mal, du willst, wie die meisten hier die Betriebszeit deiner Heizung erfassen.
(leider hast du ja meine Frage nach der Aufgabenstellung immer noch nicht beantwortet)

Wenn dem so ist, solltest du dem Signal B4 mehr Beachtung schenken, dem Ausgang für den Betriebsstundenzähler.

Wenn du ohnehin einen Elektriker engagierst, solltest du ihm die Auswahl, Montage des Relais
und den Anschluss zu deiner Erfassungseinheit (Fensterkontakt ?)  überlassen.

Die Informationen zum Stecker entsprechen auch denen in diesem Beitrag
http://forum.fhem.de/index.php/topic,12216.msg74252.html#msg74252 (http://forum.fhem.de/index.php/topic,12216.msg74252.html#msg74252)

Ich verwende wie dargestellt B4. (Im Beitrag als BZ bezeichnet)

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 10 Oktober 2014, 18:22:50
Hi John,


jetzt weiss ich was Du meinst...
Exakt, ich möchte die Betriebsstunden meines Heizungsbrenners zählen, um daraus anhand der verwendeten Düse den Heizölverbrauch mittels FHEM zu errechnen und zu visualisieren.


Ah, alles klar, in der Grafik steht ja auch B4 = W/h für den Betriebsstundenzähler.


Merci.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: satprofi am 11 Oktober 2014, 14:52:46
Hallo@all.
Geniales Modul, was ich gerade für meinen Solarlader einsetzen will. Start/Stop klappt schon mal, aber jetzt bräuchte ich einen Lösungsansatz wie ich die Ah errechne. Ladestrom ist konstant, Ladeschlussspannung lese ich mit weiteren Kontakt aus.

gruss
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: satprofi am 12 Oktober 2014, 16:51:29
Hallo.
Habe dein Modul jetzt für meine PV-Anlage angepasst.
Ich messe die Ladedauer der Batterien, diesen Wert übergebe ich um 18:00h einem Dummy. Dieser Wert wird dann von einem DOIF abgefragt und steuert meinen Netzschütz , der den WR zum speisen aus Batterie anregt.

Nochmals vielen Dank für dein Modul.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 14 Oktober 2014, 16:50:57
Sodele,


ich lese jetzt die Brennerstarts mit einem FS20-KSE aus. Sobald der Brenner startet, meldet der KSE ein "on"und schreibt es ins LOG.. Soweit so gut. Habe jetzt aus der Wiki alle Readings etc. gesetzt
Mal sehen wie es jetzt funktioniert. Mit dem Plot haperts noch.


Edit: Plot & ReadingsGroup funktionieren nun auch. Bin glücklich. Vielen Dank !!!
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: knxfreund13 am 15 Oktober 2014, 16:09:03
Hallo John,

mich würde interessieren ob dieses nette Tool auch mit einem Cube geht ? Denn ich habe das Problem, dass bei mir die Kontakte mit den Ventilen gepairt sind! Da alles mit dem Cube gemacht wurde. Der ist nur in fhem eingebaut und triggert alle 10 min die Informationen.

Gruß
bis bald
Frieder
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 15 Oktober 2014, 21:08:50
Hi Frieder,

der HourCounter "lebt" von den Events:
a. Nur wenn diese existieren ist er nutzbar.
b. Wenn du die Zeitdauer zwischen 2 Ereignissen messen willst, müssen diese synchron mit dem physikalischen Ereignis gefeuert werden
 
Das ist natürlich nicht gegeben, wenn du den Cube, nur alle 10 Minuten pollst.
Beim CUL ist das anders. Er gibt die Infos sofort an FHEM weiter, wenn er diese empfängt.
Das alles ist aber nicht das Problem vom HourCounter, sondern von der vorgelagerten Erfassungs-Ebene.

Schau dir im Event-Monitor das Timing der Events an, die du für den HourCounter vorsiehst, um die Zeit-Synchronizität zu beurteilen.


John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 16 Oktober 2014, 19:35:40
Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
Zeile 143:my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.000630901964;
Der Wert 0.000630901964 ist dabei der Oelverbrauch je Sekunde und muss von dir an deine Gegebenheiten angepasst werden.
Den gleichen Wert findest du auch in attr Brenneruebersicht_3 valueFormat der Readingsgroup Definitionen. Hier ist er dann auch anzupassen.

Den aktuelen Wert für den Tankinhalt kannst du mit setreading <device> <reading> <value> setzen.
Bei mir sieht das aktuell dann so aus:setreading BrennerTest appTanklevel 4456.01856228562
Christof

Cool....

Ein erfüllter Wunsch weckt natürlich neue  ;)
Toll wäre jetzt auch noch, wenn man den Heilzölpreis je Liter eingeben könnte, und im Reading werden die verbrauchten Liter auch in € umgerechnet......
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: John am 23 Oktober 2014, 20:08:05
@all - hourcounter -fans

HourCounter ist nun Bestandteil und offizielles Modul von FHEM.

Dank an alle die durch Anwendung und Hinweise bei der Entwicklung mitgeholfen haben.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mi.ke am 24 Oktober 2014, 00:43:25
Endlich . . . Klasse !

Vielen Dank noch mal für diese wirkliche Bereicherung
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mvb am 26 Oktober 2014, 10:12:47
Hallo John,
tolles Modul. Ich möchte damit einen Solarstundenzähler für die LWZ 303 SOL realisieren.
LWZ ist folgendermaßen definiert
# LWZ auslesen und steuern, modul THZ
define LWZ THZ /dev/ttyUSB0@115200
attr LWZ interval_sGlobal 300
attr LWZ interval_sHC1 300
attr LWZ interval_sHistory 86400
attr LWZ room Heizung
attr LWZ userReadings SolarPump {(split ' ',ReadingsVal("LWZ","sGlobal",0))[29]}
define FileLog_LWZ FileLog /var/log/fhem/LWZ-%Y.log LWZ:sGlobal.*
define FileLog_LWZ_HK1 FileLog /var/log/fhem/LWZHK1-%Y.log LWZ:sHC1.*
attr FileLog_LWZ_HK1 room Heizung
define FileLog_LWZ_Hist FileLog /var/log/fhem/LwzHist-%Y.log LWZ:sHistory.*

Den Stundenzähler habe ich (nach dem Lesen Deines Wiki-Beitrages so aufgesetzt: (habe jetzt die Heizkreislaufpumpe benutzt, da bei Solar z.Z. wenig los ist)
#Solarstundentähler
define SolarTime HourCounter LWZ.sglobal:heatingCircuitPump:.1 LWZ.sglobal:heatingCircuitPump:.0
attr SolarTime room Sensor

Aber der Zähler inkrementiert nicht.

sglobal ist ein Reading mit mehreren Werten aus der LWZ, das so aussieht:
outsideTemp: 11 flowTemp: 38.5 returnTemp: 39.1 hotGasTemp: 37.2 dhwTemp: 44.1 flowTempHC2: -60 evaporatorTemp: 27.7 condenserTemp: 41.6 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 0 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 rvuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 40 inputVentilatorPower: 40 mainVentilatorPower: 0 outputVentilatorSpeed: 24 inputVentilatorSpeed: 26 mainVentilatorSpeed: 0 outside_tempFiltered: 9.6 relHumidity: 0 dewPoint: 0 P_Nd: 7.37 P_Hd: 14.57 actualPower_Qc: 0 actualPower_Pel: 0 collectorTemp: 43.7 insideTemp: 21.3
Was mache ich falsch?

Danke
Martin

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 26 Oktober 2014, 10:50:10
Hallo Martin,
schick doch bitte ein event-Log (FHEM-Menüleiste Event-Monitor), dann kann ich beurteilen, warum es nicht funktioniert.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mvb am 28 Oktober 2014, 06:56:54
Hallo John,

hier der Ausschnitt aus dem Event-Monitor:
2014-10-28 05:46:45 dummy solardummy {Value("SolarPump")}
2014-10-28 05:46:45 THZ LWZ sGlobal: outsideTemp: 5.3 flowTemp: 32.4 returnTemp: 27 hotGasTemp: 69.9 dhwTemp: 38.2 flowTempHC2: -60 evaporatorTemp: -2.7 condenserTemp: 29 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 rvuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 40 inputVentilatorPower: 40 mainVentilatorPower: 60 outputVentilatorSpeed: 16 inputVentilatorSpeed: 27 mainVentilatorSpeed: 17 outside_tempFiltered: 5.8 relHumidity: 0 dewPoint: 0 P_Nd: 3.84 P_Hd: 13.86 actualPower_Qc: -21748 actualPower_Pel: -12856 collectorTemp: 4 insideTemp: 20.5
2014-10-28 05:46:45 THZ LWZ SolarPump: 0

Die Regexp im HourCounter habe ich geändert auf:(ein Stern hat gefehlt, und g -> G)
#Solarstundentähler
define SolarTime HourCounter LWZ.sGlobal.*heatingCircuitPump:.1 LWZ.sGlobal.*heatingCircuitPump:.0
attr SolarTime room Sensor

Gezählt wird aber trotzdem nicht, obwohl Statuswechsel 0 -> 1 -> 0 vorliegen. Die Regexp teste ich mit einem notify zu Solardummy. Das funktioniert, wie an dem Ereignis davor zu sehen ist. (Allerdings ist da der auszuführende FHEM-Code falsch, aber das spielt hier keine Rolle).

Danke

Martin
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 28 Oktober 2014, 08:58:11
Hallo Martin,
versuchs mal damit:
define SolarTime HourCounter LWZ:.*heatingCircuitPump:.1 LWZ:.*heatingCircuitPump:.0
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mvb am 29 Oktober 2014, 19:43:03
Hallo John,

habe ich getestet. Bringt leider auch nichts. und auch noch:
.*compressor:.1 .*compressor:.0 was auch nichts bringt, auch wenn es eine andere Regexp ist.
Was tun?

Danke, Martin
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 29 Oktober 2014, 20:08:24
Hallo Martin,

wir stehen kurz vor der Ziellinie.

Ich habs bei mir nachgestellt und ja, du hast recht, es funktioniert noch nicht.

Es muss so sein:
define SolarTime HourCounter LWZ:.*heatingCircuitPump:.1.* LWZ:.*heatingCircuitPump:.0.*
Also nach der 0 bzw. 1 brauchen wir noch ein ".*".

Danach hat alles bestens funktioniert.
Der HourCounter macht das was er soll er zählt die Flanken und misst Puls- und Pausenzeit.

John

PS: vielleicht magst du den Mitlesenden erklären, warum das Regexp für ON bzw. OFF so aussehen muss.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: backbone10 am 29 Oktober 2014, 20:54:24
Hi,
auch von mir ein fettes DANKE für das Modul !!

Hat schon jemand eine Lösung fürs "erzwingen" der Readings ? Ich denke, das kann ich auch gut verwenden..

LG

Tom

Zitat
John , danke für das umfangreiche Modul. Ich möchte bei einem Punkt vom Juni diesen Jahres noch einmal nachhaken :

Zitat von: John am 03 Juli 2014, 23:41:33

    pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.
    Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.


Es wäre wirklich schön wenn man mit einem Attribut das aktualiesren der Readings in einem festen Zeitintervall (bsp 300 Sekunden) quasi "erzwingen" könnte.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 30 Oktober 2014, 16:23:58
Hallo,
 
durch eine Unachtsamkeit von mir ist mir FHEM heute abgeschmiert. Zum wiederherstellen musste ich eine alte gesicherte fhem.cfg verwenden. Just in dem Moment als FHEM wieder lief, sprang mein Heizungsbrenner an, und HourCounter hat brav mitgeloggt. Obwohl alle *.log Dateien unversehrt sind, hatte sich HourCounter komplett resettet, und alle Readings auf 0 gesetzt. Wie kann das ?
Warum liest das Modul nicht die Werte aus den Log-Dateien wieder ein ?
LG
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 30 Oktober 2014, 17:59:30
Hallo Bartimaus,

das Modul-Konzept funktioniert anders.

Die Modul-Entwickler können sich darauf verlassen, dass die Werte aller Readings remanent sind, d.h. sie überdauern einen Shutdown.

Konkret werden diese in der Datei  ./log/fhem.save gespeichert.

Aber das Lesen dieser Datei wird vom FHEM-Kernel übernommen, nicht von den Modulen.

Ich vermute, daß auch diese Datei zerstört wurde.


John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 30 Oktober 2014, 18:44:49
Ok, danke. Gut zu wissen
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mvb am 31 Oktober 2014, 07:02:54
Hallo John,

der HourCounter scheint nun zu funktionieren. Allerdings kann ich das Ergebnis nicht mit den Logdaten vergleichen, da FHEM gerade nach update keine Logs mehr schreibt. (Fehlermeldung "Can't find module FileLog.pm", oder so ähnlich) Ich wollte bei Dir noch die Ermittlung der On-time erfragen, aber ohne Vergleichswerte bringt das nichts und vorher möchte ich auch das Ergebnis nicht posten.

Danke

Martin
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: olli84 am 02 November 2014, 12:25:42
Hallo Ihr Lieben,

besteht irgendwie die Möglichkeit mit diesem tollen Modul meinen Stromverbrauch zu "zählen"?

Ich habe einen OWL Strommesser, der per rfxtrx433 an mein FHEM angebunden ist.

Folgende Readings vom device habe ich:
Readings

battery ok 2014-11-02 12:05:01
energy_current 209.25 2014-11-02 12:05:01
energy_total 60.7036 2014-11-02 12:05:01
rssi 6 2014-11-02 12:05:01
state ECUR: 209.25 ESUM: 60.7036 BAT: ok 2014-11-02 12:05:01

Meine FileLog sieht so aus:
2014-11-02_12:02:16 CM160_cf81 ECUR: 224.13 ESUM: 60.6921 BAT: ok
2014-11-02_12:02:22 CM160_cf81 ECUR: 373.86 ESUM: 60.6927 BAT: ok
2014-11-02_12:02:33 CM160_cf81 ECUR: 209.25 ESUM: 60.6936 BAT: ok
2014-11-02_12:03:11 CM160_cf81 ECUR: 209.25 ESUM: 60.6962 BAT: ok
2014-11-02_12:04:06 CM160_cf81 ECUR: 209.25 ESUM: 60.6995 BAT: ok
2014-11-02_12:04:45 CM160_cf81 ECUR: 358.98 ESUM: 60.7024 BAT: ok
2014-11-02_12:04:56 CM160_cf81 ECUR: 209.25 ESUM: 60.7033 BAT: ok
2014-11-02_12:05:01 CM160_cf81 ECUR: 209.25 ESUM: 60.7036 BAT: ok

Kann ich nun mit diesen Daten eine Anzeige schaffen, bei der der Verbrauch nach Tag/Woche/Monat aufgesplittet ist?

Vielen Dank für eure Hilfe!
Olli
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Icinger am 02 November 2014, 12:55:06
Zitat
besteht irgendwie die Möglichkeit mit diesem tollen Modul meinen Stromverbrauch zu "zählen"?
Kann ich nun mit diesen Daten eine Anzeige schaffen, bei der der Verbrauch nach Tag/Woche/Monat aufgesplittet ist?

Dafür ist das Statistics-Modul (http://fhem.de/commandref.html#statistics) wohl eher geeignet.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: olli84 am 02 November 2014, 13:23:48
Herzlichen Dank für den Tipp.

Da mein OWL tatsächlich energy_total liefert funktioniert das vermutlich sogar. :D

Danke! :)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 06 November 2014, 15:08:04
Ich wollte mir in Floorplan die Betriebsstunden anzeigen lassen bekomme aber die Werte nicht formatiert. 14 Nachkommastellen sind etwas viel. Könnte das am Floorplan liegen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Herr 3x am 06 November 2014, 16:41:31
Hallo Bert,

das liegt nicht am Floorplan.
Das Formatieren, Beschriften und mit Einheiten versehen gelingt am einfachsten mit Readingsgroup. Beispiele unter http://www.fhemwiki.de/wiki/ReadingsGroup (http://www.fhemwiki.de/wiki/ReadingsGroup)

Herr 3x
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: backbone10 am 06 November 2014, 18:28:07
Hallo,
das ist leider untergegangen....
Gibts eine Lösung dafür??

lg

bb10



Hi,
auch von mir ein fettes DANKE für das Modul !!

Hat schon jemand eine Lösung fürs "erzwingen" der Readings ? Ich denke, das kann ich auch gut verwenden..

LG

Tom

Zitat

    John , danke für das umfangreiche Modul. Ich möchte bei einem Punkt vom Juni diesen Jahres noch einmal nachhaken :

    Zitat von: John am 03 Juli 2014, 23:41:33

        pulseTimePerDay wird nur nach einer negativen Flanke und nach einem Tageswechsel aktualisiert.
        Ich denke dein Problem habe ich verstanden und werde darüber nachdenken.


    Es wäre wirklich schön wenn man mit einem Attribut das aktualiesren der Readings in einem festen Zeitintervall (bsp 300 Sekunden) quasi "erzwingen" könnte.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kubuntufan am 14 November 2014, 07:59:39
Guten Morgen,

Mir ist am MOdul ein Fehler aufgefallen.
Wenn ich forceDayChamge ausführe bekomme ich immer die Meldung im Log:

PERL WARNING: Use of uninitialized value $value in concatenation (.) or string at ./FHEM/98_HourCounter.pm line 356.

Die Meldung bekomme ich immer beim ausführen dieses Befehles.

Die Modulversion ist 1.0.0.4 - 23.10.2014.

Gruß Kubuntufan

Ps.: Sehr gutes Modul.  :)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 14 November 2014, 09:54:58
Hallo kubuntufan,
danke für den Hinweis, habs geändert.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 16 November 2014, 11:48:35
Hi,  das Modul läuft bei mir ohne Probleme.

Jetzt wechsele ich von pi auf ein cubietruck, wie bekomme ich die alten readings wieder eingelesen,  damit ich nicht wieder bei null anfangen muss.

Gruss Dirk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 16 November 2014, 21:07:36
Hallo Dirk,

generell werden alle Readings von FHEM in der Datei /log/fhem.save abgespeichert.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 16 November 2014, 23:35:08
Ja ist auch mit zurück gespeichert worden, aber die readings sind alle null.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 17 November 2014, 11:06:42
Gibt es schon eine Möglichkeit wie man mit einem Attribut das aktualisieren der Readings in einem festen Zeitintervall (bsp 300 Sekunden) quasi "erzwingen" könnte. Die Plot´s in einem SVG sehen nicht so gut aus, bei einem Aktor der nur ein paar mal pro Tag schaltet.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhainz am 17 November 2014, 11:33:33

Die Plot´s in einem SVG sehen nicht so gut aus, bei einem Aktor der nur ein paar mal pro Tag schaltet.
Schau dir mal das logProxy Modul an das Andre gestern/heute geleast hat. Da gibts ein paar options mit denen möglich ist auch bei nur ein paar messwerte halbwegs gut aussehende Plots zu haben.

Grüße
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 17 November 2014, 12:16:06
Das wird nichts helfen, da das Reading erst bei negativer Flanke im "HourCounter" erfolgt. Wenn dann ein Gerät morgens einschaltet und erst Abends aus, sieht man die Stunden erst nach dem ausschalten. Bis zu diesem Zeitpunkt hat man eine Nulllinie. Bei einem Heizungsbrenner mag das ja eine geringe Rolle spielen. Aber so ein "erzwungener Zeitintervall" würde das Teil universell einsetzbar machen (Öffnungszeiten Fenster, alle Geräte die nur sporadisch eingeschaltet werden). Triggern bei positiver Flanke und (nur dann) alle 5 Min. zwangsaktualisieren.

Grüße
Titel: Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhainz am 17 November 2014, 14:02:23
es gibt jetzt die option predict. damit wird der letzte wert bis zum ende eines plots verlängert oder um wert sekunden. aber jeweils maximal bis zum aktuellen zeitpunkt.

Hilft dir das nicht? Dann hab ich dein problem falsch verstanden.

Grüße
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 17 November 2014, 15:42:13
Moin,
 
ich setze einen FS20KSE als Kontaktgeber für den HourCounter ein. Das funktionierte bislang nicht 100%ig, da ab und an der "off-Befehl" vom KSE zum Raspi verlorenging oder schlicht nicht abgesendet wurde. Hourcounter hat dann munter bis zum nächsten Einschaltbefehl, dem immer ein "off-Befehl" vorangestellt wurde, weitergezählt.

Erst habe ich versucht an anderen Positionen vom KSE (Heizungskeller), die Funkstrecke zum Raspi(EG) zu optimieren. Leider ohne Erfolg.

Dann habe ich einen Tip vom Kumpel bekommen, und zwar an den Anschlüssen vom KSE einen Widerstand, in meinem Fall ein 3,9k-Ohm Widerstand mit einzuschrauben. Und voila, seit dem ging kein Off-Befehl mehr verloren.

Nur mal so als Tip, falls jemand ähnliche Probleme mit dem KSE hat.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 17 November 2014, 15:43:34
Das hilft tatsächlich nicht. Beispiel: Pumpe schaltet um 03:00 Uhr ein und um 09:00 Uhr aus sehe ich die 6 Betriebsstunden erst um 09:00 Uhr vorher bleibt das Reading 0, wenn dann die Pumpe um 15:00 wieder einschaltet und um 21:00 Uhr ausschaltet. Bleibt der Zähler bis 21:00 Uhr auf 6 Std stehen, erst nach der negativen Flanke um 21:00 Uhr werden dann die 12 Betriebsstunden angezeigt.
Daher der Wunsch nach einer positiven Flanke und der Zwangsaktualisierung.  Bei einem Gerät, das stetig den Status wechselt fällt das gar nicht auf.

Gruß
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: justme1968 am 17 November 2014, 19:02:30
wenn es dir nur darum geht den wert zu plotten hilft logProxy tatsächlich.

wenn du mit dem bis dahin aufsummierten wert noch irgendetwas anderes tun möchtest statt ihn nur darzustellen hilft logProxy nicht. bis es die 'zwangsaktualisierung' die du dazu brauchst gibt kannst du dir aber selber mit einer routine in anlehnung an addLog etwas selber bauen.

gruss
  andre
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 17 November 2014, 23:25:46
@bert und alle die permanente Aktualisierung benötigen.

anbei eine Test-Version vom HourCounter:

neues Attribut "interval" in Minuten, wenn nicht angegeben wird alle 60 Minuten aktualisiert.

neuer set Befehl "calc": die pulse/pause-Time wird je nach Zustand aktualisiert.

Bitte testen und rückmelden.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 18 November 2014, 00:11:19
Vielen Dank. Das sieht sehr gut aus. Plot wird im 5 min. Takt aktualisiert.

Hab´s auf momentan auf 2 Std. eingestellt, damit man was sieht.

Gruß
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 18 November 2014, 11:58:43
Nach dem Update und Restart heute morgen hat er wieder bei 0 angefangen. Die Stunden von heute Nacht hat er vergessen. Ist das richtig so?

Gruß
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 20 November 2014, 09:46:17
Nein, ich finde das nicht OK.

Seh mir das nochmal genauer an.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 20 November 2014, 20:01:36
Hab noch einiges nachgebessert bezüglich des Neustarts.

Die Werte sollten jetzt nicht mehr zurückgesetzt werden.

Bitte um Rückmeldung.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 20 November 2014, 23:53:11
die Stunden bleiben erhalten. Leider aber nicht der Schaltzustand. Ich habe den Schalter 22:42 Uhr auf ein gesetzt, nach Restart ist der Schaltzustand im HourCounter auf aus, obwohl immer noch physisch ein war.

2014.11.20 22:43:18 0: Server shutdown
2014.11.20 22:43:22 3: [UtilsHourCounter] Init Done with Version 1.02 - 17.03.2014 (john)
2014.11.20 22:43:22 2: MaxCounter is starting
2014.11.20 22:43:22 1: reload: Error:Modul 99_myUtils deactivated                                                          <- die Formatierung aus dem Wiki
2014.11.20 22:43:28 3: HourCounter HourCounter Initialize.207 Init Done with Version 1.0.0.6 - 20.11.2014
2014.11.20 22:43:28 0: HourCounter BS Define.215 parameters: BS HourCounter Licht1:an Licht1:aus
2014.11.20 22:43:29 1: configfile: MaxCounterAT already defined, delete it first                                         <- Diese Meldung ist von Anfang an       

Schalter aus und wieder eingeschaltet.

2014.11.20 23:03:32 3: HourCounter BS Undef.255 Done
2014.11.20 23:03:32 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 45.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 55.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 80.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 104.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 128.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 167.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 184.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnValueChanged redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 219.
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 249.
2014.11.20 23:03:32 1: Including fhem.cfg
2014.11.20 23:03:32 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 45, <$fh> line 4.      <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 55, <$fh> line 4.                         <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 80, <$fh> line 4.                       <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 104, <$fh> line 4.                      <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 128, <$fh> line 4.                         <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 167, <$fh> line 4.                        <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 184, <$fh> line 4.                      <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHC_OnValueChanged redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 219, <$fh> line 4.         <- diese Meldungen sind neu
2014.11.20 23:03:32 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_CE.pm line 249, <$fh> line 4.                              <- diese Meldungen sind neu

Das steht um 00:00 Uhr im Logfile

2014.11.21 00:00:00 2: MaxCounterAtDo
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $mm in subtraction (-) at ./FHEM/99_UtilsMaxCounter.pm line 37.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $yyyy in subtraction (-) at ./FHEM/99_UtilsMaxCounter.pm line 37.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $mday in addition (+) at fhem.pl line 3772.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $hour in addition (+) at fhem.pl line 3772.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $min in addition (+) at fhem.pl line 3772.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $sec in addition (+) at fhem.pl line 3772.
2014.11.21 00:00:00 2: Tageswechsel
2014.11.21 00:00:00 2: diff:0 numCountOnTimePerDayHours:0
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 3631.
2014.11.21 00:00:00 1: readingsUpdate(,cntPerDay,0) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntPerDayLast,0) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntOntimeIncrement,0) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntOntimePerDaySeconds,0) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntOntimePerDay,00:00) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntOntimePerDayHours,0) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: readingsUpdate(,cntOntimeHoursLast,  0.0000) missed to call readingsBeginUpdate first.
2014.11.21 00:00:00 1: PERL WARNING: Use of uninitialized value $dev in hash element at fhem.pl line 2811.


Ich hoffe das hilft

Gruß
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 21 November 2014, 00:19:13
Ich hoffe wir kommen langsam zum Ende. Value sollte jetzt auch passen.

Das scheint noch aus der Zeit zu sein, als das ganze nur ein Skript und kein Modul war.
Zitat
MaxCounterAtDo


das ist was uraltes und sollte entfernt werden (das definiert auch den MaxCounterAT)
/FHEM/99_UtilsMaxCounter.pm



John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 21 November 2014, 01:01:48
Sieht alles gut aus. Keine Warnings mehr im Log, Stunde zählen weiter und der Schaltzustand nach Restart bleibt erhalten.

Vielen Dank
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: backbone10 am 21 November 2014, 11:26:57
Bei mir auch .
Vielen Dank nochmal

LG

Tom
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 25 November 2014, 19:59:37
Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 25 November 2014, 20:02:07
Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Was kann man da machen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 25 November 2014, 20:02:23
Das Modul hat sich über das update ja aktualisiert, aber die lists sehen momentan richtig sch... Aus.

Was kann man da machen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 25 November 2014, 22:25:18
Hallo hyper2910,
ich unterstütze dich gern bei der Fehlersuche (oder du mich, je nachdem was am Ende rauskommt).

Aber ich brauche konkrete Daten. Mit einer ReadingsGroup der abgeleiteten Größen kann ich nichts anfangen.

Mir ist nicht klar, was du erwartest und was nicht paßt. Bitte formuliere das möglichst präzise, am besten mit Hilfe der
Grunddaten vom HourCounter.

Wie ist dieser definiert ?
Ein "list <deinHourcounter>" wäre hilfreich.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 26 November 2014, 12:25:22
Hi,


so

hier mal das List


Internals:
   CFGFN      /opt/fhem/FHEM/oel.cfg
   DEF        oelzaehler:onoff:.0 oelzaehler:onoff:.1
   NAME       CN.Test
   NR         361
   NTFY_ORDER 50-CN.Test
   STATE      26
   TYPE       HourCounter
   Readings:
     2014-11-26 12:12:27   appCountsOverallTemp 498
     2014-11-26 00:00:05   appCountsPerDay 59
     2014-11-26 12:00:01   appCountsPerHour 2
     2014-11-26 12:12:27   appCountsPerHourTemp 1
     2014-11-26 12:12:27   appCountsPerMonthTemp 498
     2014-11-23 00:00:02   appCountsPerWeek 336
     2014-11-26 12:12:27   appCountsPerWeekTemp 162
     2014-11-26 12:12:27   appCountsPerYearTemp 498
     2014-11-26 00:00:05   appOpHoursPerDay 4.15916666666667
     2014-11-26 12:16:25   appOpHoursPerDayTemp 1.77888888888889
     2014-11-26 00:00:05   appOpHoursPerMonthTemp 36.7755555555555
     2014-11-23 00:00:02   appOpHoursPerWeek 24.7136111111111
     2014-11-26 00:00:05   appOpHoursPerWeekTemp 12.0619444444444
     2014-11-26 00:00:05   appOpHoursPerYearTemp 36.7755555555555
     2014-11-26 00:00:05   appTanklevel    2116.47362718212
     2014-11-26 00:00:05   appUtilization  17.3726896167635
     2014-11-26 12:16:25   appUtilizationTemp 14.4936064275207
     2014-11-26 12:16:25   appUtilizationTempOld 14.0305367829431
     2014-11-14 14:49:48   clearDate       2014-11-14 14:49:48
     2014-11-26 12:12:27   countsOverall   498
     2014-11-26 12:12:27   countsPerDay    26
     2014-11-26 12:12:27   pauseTimeIncrement 747
     2014-11-26 12:12:27   pauseTimeOverall 882738
     2014-11-26 12:12:27   pauseTimePerDay 37777
     2014-11-26 12:16:25   pulseTimeIncrement 238
     2014-11-26 12:16:25   pulseTimeOverall 138796
     2014-11-26 12:16:25   pulseTimePerDay 6404
     2014-11-26 12:12:27   state           26
     2014-11-26 00:00:05   tickDay         1
     2014-11-26 12:00:00   tickHour        1
     2014-11-25 09:05:04   tickMonth       0
     2014-11-25 09:05:04   tickWeek        0
     2014-11-25 09:05:04   tickYear        0
     2014-11-26 12:16:25   value           0
   Helper:
     OFF_Regexp oelzaehler:onoff:.1
     ON_Regexp  oelzaehler:onoff:.0
     calledByEvent
     changedTimestamp 2014-11-26 12:16:25
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1416999600
     value      0
     cmdQueue:
Attributes:
   alias      BrennerTest
   room       0.1 OelHeizung


Wie du siehst, steht überall jetzt 0.00 Stunden, bislang stand dort Gestern, letztes Intervall etc.
wie eigentlich auch definiert:

<>,<%time_clock>
CN.Test:<Laufzeiten>
CN.Test:<letzter&nbsp;Zyklus>,pulseTimeIncrement
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;&nbsp;&nbsp;>,<Gestern>,appOpHoursPerDay
CN.Test:<Aktuelle&nbsp;Woche>,appOpHoursPerWeekTemp,<&nbsp;&nbsp;&nbsp;>,<Letzte&nbsp;Woche>,appOpHoursPerWeek
CN.Test:<Aktueller&nbsp;Monat>,appOpHoursPerMonthTemp,<&nbsp;&nbsp;&nbsp;>,<Letzter&nbsp;Monat>,appOpHoursPerMonth
CN.Test:<Aktuelles&nbsp;Jahr>,appOpHoursPerYearTemp,<&nbsp;&nbsp;&nbsp;>,<Letztes&nbsp;Jahr>,appOpHoursPerYear
CN.Test:<Gesamtlaufzeit>,pulseTimeOverall


Gruss Dirk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 26 November 2014, 18:24:11
Hi Dirk,

die Readings im Listauszug von <list CN.Test> sehen alle plausibel aus oder siehst du das anders ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 26 November 2014, 19:09:16
Ja klar, nur die Anzeige sieht nicht gut aus,  siehe Screenshot oben.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 26 November 2014, 19:25:06
Das problem liegt hier nicht bei Hour Counter und auch nicht im ReadiungsGroup. Ich hatte die falsche Darstellung auch schon. Offensichtlich hat sich im Zusammenspiel der ReadingsGroup Definitionen und dem dazugehörigen Attribut Valueformat etwas geändert. Du musst also den Code für valueformat anpassen.

Ich habe es von: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);;}}
auf { 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);}}} geändert.

Jetzt passt wieder alles.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 26 November 2014, 19:45:43
Super danke,  läuft wieder.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 27 November 2014, 19:53:37
Hallo Hyper2910,

könntest du vielleicht deinen Auszug aus der cfg posten der dein "Brennerlaufzeit neu" Ausdruck ergibt.

Versuche sowas auch, aber kriege das irgendwie nicht hin.

Danke

Gruß Daniel
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 27 November 2014, 19:54:30
Hallo Hyper2910,

könntest du vielleicht deinen Auszug aus der cfg posten der dein "Brennerlaufzeit neu" Ausdruck ergibt.

Versuche sowas auch, aber kriege das irgendwie nicht hin.

Danke

Gruß Daniel
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 27 November 2014, 20:17:03
Hier mal alles

define oelzaehler MAX ShutterContact 0fec48
attr oelzaehler IODev CULMAX0
attr oelzaehler group heiz
attr oelzaehler room 0.1 OelHeizung

define FileLog_oelzaehler FileLog ./log/oelzaehler-%Y-%m.log oelzaehler
attr FileLog_oelzaehler logtype text
attr FileLog_oelzaehler room 0.1 OelHeizung

define CN.Test.FileDay FileLog ./log/CN.Test-Day-%Y.log CN.Test:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*
attr CN.Test.FileDay room 0.1 OelHeizung

define OelVerbrauch SVG CN.Test.File:SVG_CN.Test.File_1:CURRENT
attr OelVerbrauch group 01 BrennerDiagramme
attr OelVerbrauch room 0.1 OelHeizung

define CN.Event notify CN.Test:(countsOverall:|value:|tickHour:|tickDay:|tickWeek:|tickMonth:|tickYear:).* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr CN.Event room 0.1 OelHeizung


define CN.Test HourCounter oelzaehler:onoff:.0 oelzaehler:onoff:.1
attr CN.Test alias BrennerTest
attr CN.Test room 0.1 OelHeizung

define CN.Test.File FileLog ./log/CN.Test-%Y.log (CN\.Test:.*)
attr CN.Test.File alias oelverbrauch-log
attr CN.Test.File room 0.1 OelHeizung



define Brenneruebersicht_1 readingsGroup <>,<%secur_smoke_detector> \
CN.Test:<Starts> \
CN.Test:<Heute>,countsPerDay,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appCountsPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appCountsPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appCountsPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appCountsPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appCountsPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appCountsPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appCountsPerYear \
CN.Test:<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 0.1 OelHeizung
attr Brenneruebersicht_1 valueStyle {'style="color:green;;;;text-align:right"'}

define Brenneruebersicht_2 readingsGroup <>,<%time_clock> \
CN.Test:<Laufzeiten> \
CN.Test:<letzter&nbsp;;Zyklus>,pulseTimeIncrement \
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.Test:<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 0.1 OelHeizung
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"'}

define Brenneruebersicht_3 readingsGroup <>,<%measure_water_meter> \
CN.Test:<Verbr&aumluche> \
CN.Test:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.Test:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.Test:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.Test:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.Test:<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 0.1 OelHeizung
attr Brenneruebersicht_3 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_3 valueStyle {'style="color:green;;;;text-align:right"'}
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 28 November 2014, 11:37:28
Hallo Dirk,

hat funktioniert super, vielen Dank.

Lediglich die Zeile
attr Brenneruebersicht_3 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);;}}}

stimmt nicht, da hier noch Stunden und nicht Liter drin stehen und kein Faktor für den Heizölverbrauch dabei.
mit welcherm Verbrauch rechnest du bei deinem Brenner??

Den Restbestand denke ich errechnest du aus Tankinhalt - den aktuellen Gesamtverbrauch, und du nullst den Zähler dann beim Tanken?

Gruß Daniel
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 28 November 2014, 17:03:28
Genau, den tankinhalt setze ich beim tanken, der Ölverbrauch pro Sekunde, steht in der 99_utilshourcounter.

Gruß dirk
Titel: Neues Attribut Interval macht meine Grafik vom Heizölbrenner unbrauchbar
Beitrag von: bluesky am 08 Dezember 2014, 08:55:44
Hallo Zusammen

Das neu eingeführte Attribut Interval macht meine Grafik von meinem Heizölbrenner unbrauchbar und dies aus folgendem Grund: Ich werte mit einer Grafik die Brennerlaufzeit (Pulstime) und die Brennerabkühzeit (PauseTime) aus. Dies ergibt eine Grafik wie in Bild 1 (unterer Teil) zu sehen ist. Diese Grafik wurde vor der Einführung des Intervall Attribut erstellt. Die Brennzeit (violette Line) und Brennerabkühlzeit (braune Linie) verändern sich aufgrund der Aussentemperaturen und sind ohne grosse Aussentemperaturschwankungen stabil. Mit dem neuen „Zwangsupdate“ Attribut Interval wird jedoch die Pausetime regelmässig unterbrochen, d.h. neu berechnet. Dadurch wird in der Grafik nicht mehr die tatsächliche Abkühldauer des Brenners dargestellt, d.h. nicht mehr die Zeit, die zwischen dem BrennerStop und dem nächsten BrennerStart vergeht (PausTime) sondern die Zeit bis zum nächsten „Zwangsupdate“ durch den Intervall. Das Resultat ist in Bild 1 (oberer Teil) zu sehen. Hier nützt mir die PauseTime Linie nichts mehr.

Mögliche Lösung?
Ich habe versucht das Attribut Interval zu löschen, jedoch wird nach dem Defaultwert von 60Min immer noch „upgedatet“. Für mich würde es sehr helfen, wenn dieses Attribut komplett deaktiviert werden könnte.

Vielen Dank für Eure Hilfe
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 08 Dezember 2014, 09:39:04
Hi bluesky,

hab dein Problem verstanden.

Anbei die neue Version zum Testen.

2 neue Readings wurden eingeführt, die nur beim Flankenwechsel aktualisiert werden.
pauseTimeEdge, pulseTimeEdge.

Bitte rückmelden, wenn es passt.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 08 Dezember 2014, 10:51:14
Hallo John

Vielen Dank für Deine rasche Antwort. Ich werde die angepasste Version rasch möglichst probieren und ich mich wieder melden.

Gruß bluesky
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 08 Dezember 2014, 14:30:50
Hallo John

Ich habe nochmals über die Lösung mit den zwei 2 neuen Readings pauseTimeEdge und pulseTimeEdge nachgedacht und verstehe diese nicht ganz.

Bis jetzt werte ich in der Grafik aus
pauseTimeIncrement    mit     $fld[3]/=60       -> Dies zeigt mir an wie lang der Brenner vom letzten BrennerStop bis zum nächsten BrennerStart abgeschaltet war.

pulseTimeIncrement     mit     $fld[3]/=60       -> Dies zeigt mir an wie lange der Brenner beim letzten Einschalten gebrannt hat.

Die Anzahl Brennstunden pro Tag erhalte ich mit pulseTimePerDay und die ganze Zeit bis anhin mit pulseTimeOverall.

-> Nun meine Frage:
Muss ich jetzt in der Grafik nur pauseTimeIncrement gegen pauseTimeEdge tauschen und pulseTimeIncrement gegen pulseTimeEdge, d.h. die Zähler  pulseTimePerDay /pulseTimeOverall und pauseTimePerDay/pauseTimeOverall bleiben die gleichen und berücksichtigen jetzt anstatt dem „Interval“nur noch die „Edge“Ereignisse? Ich hoffe Du verstehst was ich meine.

Vielen Dank nochmals für Deine Hilfe.

Gruß bluesky
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 08 Dezember 2014, 15:06:05
Hallo  bluesky,

pauseTimeEdge und pulseTimeEdge ahmen das Verhalten von pauseTimeIncrement und pulseTimeIncrement vor der Einführung von interval nach.

Zitat
-> Nun meine Frage:
Muss ich jetzt in der Grafik nur pauseTimeIncrement gegen pauseTimeEdge tauschen und pulseTimeIncrement gegen pulseTimeEdge, d.h. die Zähler  pulseTimePerDay /pulseTimeOverall und pauseTimePerDay/pauseTimeOverall bleiben die gleichen und berücksichtigen jetzt anstatt dem „Interval“nur noch die „Edge“Ereignisse? Ich hoffe Du verstehst was ich meine.

Ich denke du hast das richtig beschrieben
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 08 Dezember 2014, 15:48:11
Hallo John

Vielen Dank für Deine erneute Antwort. Jetzt verstehe ich die 2 neuen Readings und werde dies so versuchen und dann weiter berichten.

Gruß bluesky

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 08 Dezember 2014, 19:34:49
Hallo Bartimaus,

das Modul-Konzept funktioniert anders.

Die Modul-Entwickler können sich darauf verlassen, dass die Werte aller Readings remanent sind, d.h. sie überdauern einen Shutdown.

Konkret werden diese in der Datei  ./log/fhem.save gespeichert.

Aber das Lesen dieser Datei wird vom FHEM-Kernel übernommen, nicht von den Modulen.

Ich vermute, daß auch diese Datei zerstört wurde.


John


Hallo,


mein FHEM muss auf einen neuen Raspi + neue SD-Karte umziehen.
Dh, es reicht, wenn ich die fhem.save auf das neue Gerät rüberkopiere, dann liest HorCounter das wieder ein oder sind weitere Schritte notwenig ?
Möchte ungern die bereit fleissig geloggten Daten verlieren...
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 08 Dezember 2014, 20:14:39
Hallo Bartimaus,

in /log/fhem.save  sind die aktuellen Readings samt den zugeordneten Werten gespeichert.

Zitat
Möchte ungern die bereit fleissig geloggten Daten verlieren...
Die Log-Dateien  findest du im Unterverzeichnis log.

Am besten machst du vom FHEM Verzeichnis ein komplettes Backup.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 08 Dezember 2014, 20:17:40
Hi John,


ok
Titel: Hour Counter mit 2 neuen Reading pulseTimeEdge und pauseTimeEdge
Beitrag von: bluesky am 09 Dezember 2014, 15:05:29
Hallo John

Ich habe die Testversion 1.0.0.7 installiert, bekomme aber seltsame Werte zurück.

Problem 1:
In der Nacht wo kein Verbraucher eingeschaltet ist, zählt der HourCounter PulseTimeEdge und keine PauseTimeEdge.

2014-12-09_03:00:00 CounterWF pulseTimeEdge: 3600
2014-12-09_03:00:00 CounterWF pauseTimeIncrement: 3600
2014-12-09_03:00:00 CounterWF pauseTimeEdge: 0
2014-12-09_03:00:00 CounterWF pauseTimePerDay: 10800
2014-12-09_03:00:00 CounterWF pauseTimeOverall: 23199211
2014-12-09_03:00:00 CounterWF value: 0
2014-12-09_03:00:00 CounterWF tickHour: 1
2014-12-09_04:00:00 CounterWF pulseTimeEdge: 3600
2014-12-09_04:00:00 CounterWF pauseTimeIncrement: 3600
2014-12-09_04:00:00 CounterWF pauseTimeEdge: 0
2014-12-09_04:00:00 CounterWF pauseTimePerDay: 14400
2014-12-09_04:00:00 CounterWF pauseTimeOverall: 23202811


Problem 2:
Um 12.51.50 wird ein Verbraucher für 2270Sekunden eingeschaltet bis 13.29.40 Uhr
-> Es wird eine pauseTimeEdge um 13.00.00 und 13.29.40 gezählt obwohl der Verbraucher läuft.
-> Die errechnete pulseTimeEdge stimmt (32 + 1780) = 1812 nicht mit der tatsächlichen pulseTimeIncrement 2270Sek überein.

2014-12-09_12:51:50 CounterWF countsPerDay: 4
2014-12-09_12:51:50 CounterWF countsOverall: 712
2014-12-09_12:51:50 CounterWF pulseTimeEdge: 32
2014-12-09_12:51:50 CounterWF pauseTimeIncrement: 14
2014-12-09_12:51:50 CounterWF pauseTimeEdge: 14
2014-12-09_12:51:50 CounterWF pauseTimePerDay: 35857
2014-12-09_12:51:50 CounterWF pauseTimeOverall: 23224268
2014-12-09_12:51:50 CounterWF value: 1
2014-12-09_12:51:50 CounterWF 4
2014-12-09_13:00:00 CounterWF pulseTimeIncrement: 490
2014-12-09_13:00:00 CounterWF pulseTimeEdge: 32
2014-12-09_13:00:00 CounterWF pulseTimePerDay: 10943
2014-12-09_13:00:00 CounterWF pulseTimeOverall: 7780102
2014-12-09_13:00:00 CounterWF pauseTimeEdge: 14
2014-12-09_13:00:00 CounterWF value: 1
2014-12-09_13:00:00 CounterWF tickHour: 1
2014-12-09_13:29:40 CounterWF pulseTimeIncrement: 1780
2014-12-09_13:29:40 CounterWF pulseTimeEdge: 1780
2014-12-09_13:29:40 CounterWF pulseTimePerDay: 12723
2014-12-09_13:29:40 CounterWF pulseTimeOverall: 7781882
2014-12-09_13:29:40 CounterWF pauseTimeEdge: 14
2014-12-09_13:29:40 CounterWF value: 0


Im Anhang noch das längere Logfile für den Zeitraum.

Mache ich einen Überlegungsfehler oder kann das so nicht funktionieren?

Gruß bluesky
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 09 Dezember 2014, 17:12:31
Hallo bluesky,

ich habs gesehen, es liegt noch einiges im Argen.

Bald gibts die neue Version.

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 10 Dezember 2014, 08:09:44
@alle HourCounter-Anwender

Mit Einführung des zyklischen Updates wurden erhebliche Änderungen notwendig,
die Änderungen an der bestehenden Konfiguration erfordern können.

Dies führt zum Versions-Sprung 1.0.1.0.

Die operativen Readings werden nun regelmässig aktualisert.
(countsOverall, countsPerDay,pauseTimeIncrement..)

Um die Datenflut zu begrenzen muss man  mit event-min-interval und event-on-change-reading arbeiten:
    
event-min-interval                 tick.*:0,.*:3600
event-on-change-reading            .*     

Während der Puls-Phase wird nun pulseTimeIncrement, pulseTimePerDay, pulseTimeOverall stets neu berechnet.
Analog hierzu die Readings der Pause-Phase.

pauseTimeEdge nimmt den wert der letzten vollständigen Pausen-Phase auf. Analog hierzu pulseTimeEdge.


Änderungen in 99_UtilsHourCounter

* value, countsOverall können nicht mehr als Trigger innerhalb von 99_UtilsHourCounter verwendet werden,
  da diese nun auch aktualisiert werden, wenn sich der Wert nicht ändert.
* die Steuerung in diesem Modul erfolgt nun ausschliesslich über die tick*-Readings
  (siehe angehängte Datei)

entsprechend muss sich auch der Notify ändern der 99_UtilsHourcounter aufruft

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

Bitte zunächst die angehängten Dateien übernehmen, nach einer entsprechenden Test-Phase
wird die neue Version eingechecked.

Ich bitte um zahlreiche Rückmeldungen.


Version 1.0.1.0 wurde eingecheckt.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 11 Dezember 2014, 09:49:30
Hallo John

Ich habe die Version 1.0.7 getestet und verstehe jetzt von den errechneten Daten nicht mehr viel (im Vergleich zur Version ohne Interval, wo ich die Wert noch nachvollziehen konnte).

Ich habe im Modul HourCounter bei den Attributen folgende Werte eingetragen (obwohl ich keine Ahnung habe, was die genau bewirken sollten).

event-min-interval                 tick.*:0,.*:3600
event-on-change-reading            .*   
 

Ein Beispiel von den Werten, die ich nicht verstehe:
In der Nacht z.B. läuft von 23 bis 05.30Uhr kein Verbraucher, was einer PauseTimeIncrement von 23400Sek entspricht. (390Min).

Die Werte, die ich von „Show preprocessed input“ für die Grafik erhalten sind aber (nur Zeitraum 24- 05.30Uhr)

2014-12-11_00:00:00 28.25
2014-12-11_01:00:00 28.25
2014-12-11_02:00:00 28.25
2014-12-11_03:00:00 28.25
2014-12-11_04:00:00 28.25
2014-12-11_05:00:00 28.25
2014-12-11_05:30:00 390
#4:CounterWF.pauseTimeEdge\x3a::$fld[3]/=60

-> Dieser Eintrag von 05.30Uhr mit 390Min stimmt, jedoch sollten die anderen Werte, da pauseTimeEdge, doch gar nicht erscheinen?

In der gleichen Zeit 24-05.30Uhr sollten doch auch keine PulseTimeEdge Werte generiert werden (der Verbraucher ist ja aus).
2014-12-11_00:00:00 382.066666666667
2014-12-11_01:00:00 382.066666666667
2014-12-11_02:00:00 382.066666666667
2014-12-11_03:00:00 382.066666666667
2014-12-11_04:00:00 382.066666666667
2014-12-11_05:00:00 382.066666666667
2014-12-11_07:00:00 382.066666666667
#4:CounterWF.pulseTimeEdge\x3a::$fld[3]/=60

Ähnlich ist es mit den pulseTimeIncrement Werten, die in der Nacht doch gar nicht vorhanden sind, da der Verbraucher nicht läuft.
2014-12-11_00:00:00 382.066666666667
2014-12-11_01:00:00 382.066666666667
2014-12-11_02:00:00 382.066666666667
2014-12-11_03:00:00 382.066666666667
2014-12-11_04:00:00 382.066666666667
2014-12-11_05:00:00 382.066666666667
2014-12-11_05:30:00 0
#3:CounterWF.pulseTimeIncrement\x3a::$fld[3]/=60



Die Grafik, die ich daraus erhalte, ist auch seltsam.

Da ich den neuen HourCounter mit dem Intervall, den ich nicht benötige und die daraus resultierenden Werte/Grafiken nicht mehr nachvollziehen kann, habe ich den alten HourCounter (ohne Intervall) wieder eingebaut. Ich weiss, dass ist keine gute Lösung, jedoch funktioniert diese für mich. Vielen Dank trotzdem für Deine Hilfe mit den „Edge“ Werten zu versuchen, den Zustand vor dem Intervall Update wieder aufzuzeigen.

Gruss bluesky
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 11 Dezember 2014, 10:13:37
Hallo John

Noch ein Beispiel:

Um 09:52:05 wird ein Verbraucher eingeschaltet, die Einträge im Logfile sind:
2014-12-11_09:52:05 CounterWF countsPerDay: 2
2014-12-11_09:52:05 CounterWF countsOverall: 727
2014-12-11_09:52:05 CounterWF pulseTimeIncrement: 0
2014-12-11_09:52:05 CounterWF pulseTimeEdge: 10510
2014-12-11_09:52:05 CounterWF pulseTimePerDay: 10510
2014-12-11_09:52:05 CounterWF pulseTimeOverall: 7850668
2014-12-11_09:52:05 CounterWF pauseTimeIncrement: 5215
2014-12-11_09:52:05 CounterWF pauseTimeEdge: 5215
2014-12-11_09:52:05 CounterWF pauseTimePerDay: 25015
2014-12-11_09:52:05 CounterWF pauseTimeOverall: 23313960
2014-12-11_09:52:05 CounterWF value: 1
2014-12-11_09:52:05 CounterWF 2
2014-12-11_09:52:05 CounterWF tickUpdated: 48
2014-12-11_09:52:05 CounterWF tickChanged: 25


Der Verbraucher war ja vorher abgeschaltet, warum wird dann eine pulseTimeEdge: 10510 aufgeführt?

Gruss bluesky
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 11 Dezember 2014, 10:26:09
Hi bluesky,

Zitat
..(obwohl ich keine Ahnung habe, was die genau bewirken sollten).

Wenn du das verstanden hast, wirst du auch deine Daten verstehen.

Zur Erklärung:

Wenn du event-on-change-reading und event-min-interval   löscht passiert folgendes:

Immer dann wenn das Modul ein Reading beschreibt, wird ein Event gefeuert.
Auch dann wenn sich das Reading nicht ändert.

Nun wollen wir daß die Readings nur noch dann einen Event auslösen, wenn sie sich tatsächlich ändern.
Das erreichen wir mit:
Zitat
event-on-change-reading            .* 

.* ist ein regular Expression, der die Namen der Readings einschränken kann, für die event-on-change-reading gelten soll.
Im vorliegenden Fall bedeutet dies: die Regel gilt für alle Readings.

Wenn nun Readings dabei sind, die über Stunden oder Tage keine Änderung haben, wirst du keinen einzigen Eintrag in deinem Log-File finden,
da ja keine Events gefeuert wurden.

Es wäre vielleicht gut, wenn die Readings wenigsten 1x pro Stunde, auch ohne Änderung eine Event feuern würden.
Das erreicht man mit
Zitat
event-min-interval .*:3600

Im Klartext: wenn ein Reading aktualisiert wird, soll es spätestens nach einer Stunde (3600 sec) nach dem letzten Event einen neuen Event feuern
auch wenn es sich nicht geändert hat.

Wenn du event-min-interval  nur für pauseTimeOverall alle 2 Minuten willst, müsste es wie folgt lauten:

 
Zitat
tick.*:0,pauseTimeOverall:120

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bluesky am 11 Dezember 2014, 10:57:46
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Georg312 am 13 Dezember 2014, 12:03:06
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 13 Dezember 2014, 12:18:16
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Bartimaus am 13 Dezember 2014, 13:09:23
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 ?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 15 Dezember 2014, 10:10:53
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
Titel: Test der Version 1.0.1.0
Beitrag von: bluesky am 16 Dezember 2014, 08:31:09
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag 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

Wolfi
Titel: Antw:Modul HourCounter - Neue Version 1.0.1.0
Beitrag von: John am 16 Dezember 2014, 18:00:04
Version ist eingecheckt.

Bitte die Hinweise beachten.
http://forum.fhem.de/index.php?topic=28215.msg231358#msg231358 (http://forum.fhem.de/index.php?topic=28215.msg231358#msg231358)

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 16 Dezember 2014, 18:03:00
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: wolfi1104 am 16 Dezember 2014, 18:27:09
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhemjörg am 18 Dezember 2014, 22:33:14
Hallo John,
wird denn jetzt in der neuen Version der "countsOverall" nicht mehr mit hoch gezählt?
Gruß Jörg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 18 Dezember 2014, 23:13:13
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 (http://forum.fhem.de/index.php/topic,28215.msg231358.html#msg231358)
gelesen ?


John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 19 Dezember 2014, 08:51:06
@John

Habe die neue Version des HC bei mir implementiert. Dabei ist mir aufgefallen, dass ich mit der Angabe im WIKI Probleme hatte. (Syntaxfehler)
Zitat
Archiv 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

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhemjörg am 19 Dezember 2014, 10:22:46
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: al_ro am 19 Dezember 2014, 10:39:20
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"?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhemjörg am 19 Dezember 2014, 13:27:00
Bei mir wir "countsOverall" nicht gezählt
nur "tickupdate" zählt immer einen höher


014-12-19_11:27:17 Gas verbrTagEuro: 1.02 €

2014-12-19_11:27:17 Gas verbrTag: 1.77 m³

2014-12-19_11:27:17 Gas verbrTagkWh: 18.8 kWh

2014-12-19_11:37:00 Gas countsPerDay: 0

2014-12-19_11:37:00 Gas countsOverall: 3901400

2014-12-19_11:37:00 Gas pulseTimeEdge: 0

2014-12-19_11:37:00 Gas pauseTimeIncrement: 0

2014-12-19_11:37:00 Gas pauseTimeEdge: 0

2014-12-19_11:37:00 Gas pauseTimePerDay: 0

2014-12-19_11:37:00 Gas pauseTimeOverall: 0

2014-12-19_11:37:00 Gas value: 1

2014-12-19_11:37:00 Gas 0

2014-12-19_11:37:00 Gas tickUpdated: 178

2014-12-19_11:37:00 Gas Zaehlerstand: 39014.00 m³

2014-12-19_11:37:00 Gas verbrTag: 1.78 m³

2014-12-19_11:37:00 Gas verbrTagkWh: 18.9 kWh

2014-12-19_11:46:34 Gas tickUpdated: 179

2014-12-19_11:46:34 Gas verbrTagEuro: 1.03 €

2014-12-19_11:46:34 Gas verbrTag: 1.79 m³

2014-12-19_11:46:34 Gas verbrTagkWh: 19.0 kWh

2014-12-19_11:56:23 Gas tickUpdated: 180

2014-12-19_11:56:23 Gas verbrTag: 1.80 m³

2014-12-19_11:56:23 Gas verbrTagkWh: 19.2 kWh

2014-12-19_12:00:00 Gas pulseTimeIncrement: 27675

2014-12-19_12:00:00 Gas pulseTimePerDay: 19034

2014-12-19_12:00:00 Gas pulseTimeOverall: 42551

2014-12-19_12:00:00 Gas tickUpdated: 181

2014-12-19_12:00:00 Gas verbrTagEuro: 1.04 €

2014-12-19_12:00:00 Gas verbrTag: 1.81 m³

2014-12-19_12:00:00 Gas verbrTagkWh: 19.3 kWh

2014-12-19_12:00:00 Gas tickHour: 18

2014-12-19_12:00:00 Gas appCountsPerHourTemp: 0

2014-12-19_12:00:00 Gas appCountsPerHour: 0

2014-12-19_12:06:30 Gas tickUpdated: 182

2014-12-19_12:06:30 Gas verbrTagEuro: 1.05 €

2014-12-19_12:06:30 Gas verbrTag: 1.82 m³

2014-12-19_12:06:30 Gas verbrTagkWh: 19.4 kWh

2014-12-19_12:16:38 Gas tickUpdated: 183

2014-12-19_12:16:38 Gas verbrTag: 1.83 m³

2014-12-19_12:16:38 Gas verbrTagkWh: 19.5 kWh

2014-12-19_12:26:40 Gas tickUpdated: 184

2014-12-19_12:26:40 Gas verbrTagEuro: 1.06 €

2014-12-19_12:26:40 Gas verbrTag: 1.84 m³

2014-12-19_12:26:40 Gas verbrTagkWh: 19.6 kWh

2014-12-19_12:27:07 Gas tickUpdated: 185

2014-12-19_12:27:07 Gas verbrTag: 1.85 m³

2014-12-19_12:27:07 Gas verbrTagkWh: 19.7 kWh

2014-12-19_12:37:05 Gas countsPerDay: 0

2014-12-19_12:37:05 Gas countsOverall: 3901400

2014-12-19_12:37:05 Gas pulseTimeEdge: 0

2014-12-19_12:37:05 Gas pauseTimeIncrement: 0

2014-12-19_12:37:05 Gas pauseTimeEdge: 0

2014-12-19_12:37:05 Gas pauseTimePerDay: 0

2014-12-19_12:37:05 Gas pauseTimeOverall: 0

2014-12-19_12:37:05 Gas value: 1

2014-12-19_12:37:05 Gas 0

2014-12-19_12:37:05 Gas tickUpdated: 186

2014-12-19_12:37:05 Gas Zaehlerstand: 39014.00 m³

2014-12-19_12:37:05 Gas verbrTagEuro: 1.07 €

2014-12-19_12:37:05 Gas verbrTag: 1.86 m³

2014-12-19_12:37:05 Gas verbrTagkWh: 19.8 kWh

2014-12-19_12:47:02 Gas tickUpdated: 187

2014-12-19_12:47:02 Gas verbrTag: 1.87 m³

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: al_ro am 19 Dezember 2014, 13:31:34
Hallo fhemjörg,

hast du für HourCounter auch ein OFF-Ereignis definiert?

Gruß Alex
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhemjörg am 19 Dezember 2014, 13:59:40
Mein device sieht so aus

define Gas HourCounter Gaszaehler:reading:.on

attr Gas alias Zähler / Tag

attr Gas event-min-interval tick.*:0,.*:3600

attr Gas event-on-change-reading .*

attr Gas room Arduino
Gruß
Jörg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: al_ro am 19 Dezember 2014, 14:04:27
Hallo

ich habe meine Definition um das OFF-Ereignis ergänzt:

define Gaszaehler_HourCounter HourCounter Gaszaehler_Debounce_Flag:on Gaszaehler_Debounce_Flag:off
Danach hat es wieder funktioniert.

Gruß Alex
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 19 Dezember 2014, 15:29:32
Hallo fhemjörg,

wie (mit welcher Hardware) erfasst Su den Zählerstand ? und
an welcher Stelle rechnest Du das im kwh, Euro etc um ....

Kannst Du das bitte hier Posten ..... bin an ähnlichem "Projekt"

danke
kvo
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 19 Dezember 2014, 17:47:31
Hallo

ich habe meine Definition um das OFF-Ereignis ergänzt:

define Gaszaehler_HourCounter HourCounter Gaszaehler_Debounce_Flag:on Gaszaehler_Debounce_Flag:off
Danach hat es wieder funktioniert.

Gruß Alex

Hallo Alex,

stimmt da ist wohl noch ein Fehler im Modul. Dies betrifft nur diejenigen, die kein OFF-Ereignis definiert haben.
Muss das nochmal testen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 19 Dezember 2014, 19:31:12
Hallo,

wie kann denn der ON/OFF-Status definiert werden, wenn mein KM271 Strings fuer Ein/Aus liefert mit Leerzeichen :

Kessel aus
1.Stufe an

Gruss
Joe
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 19 Dezember 2014, 19:49:16
Hi Joe,
das geht wie immer bei FHEM über regexp.

1. Schritt: man holt sich das on und off Ereignis vom Eventmonitor zur Ansicht
2. Schritt: passendes Regexp formulieren
3. Schritt: Regexp testen z.B. via https://www.regex101.com/ (https://www.regex101.com/)

Stell mal das Ergebnis vom 1. Schritt rein, dann sehen wir weiter. (das Problem haben ja einige)
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 19 Dezember 2014, 20:12:16
geht das nicht auch über eventmap ?

attr <xxxxxx> eventMap EIN:on AUS:off
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: fhemjörg am 19 Dezember 2014, 21:47:06
Hallo Alex,
danke das war es jetzt geht es wieder

Gruß
Jörg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: al_ro am 19 Dezember 2014, 22:08:01
Gern geschehen. :)

Gruß Alex
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 20 Dezember 2014, 12:16:22
Hallo,

wie kann denn der ON/OFF-Status definiert werden, wenn mein KM271 Strings fuer Ein/Aus liefert mit Leerzeichen :

Kessel aus
1.Stufe an

Gruss
Joe

Habe es so lösen können :

define BrennerCounter HourCounter KM271:Brenner_Ansteuerung:.1.* KM271:Brenner_Ansteuerung:.Kessel.*

Gruss
Joe
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ojb am 22 Dezember 2014, 09:43:24
Hallo John,

erst mal ein herzliches Dank für HourCounter und Dein Engagement hier im Forum.

Leider habe ich ein komisches Problem und kriege einfach keine vernünftigen Ergebnisse zustande.

Ich möchte HourCounter für den klassischen Fall verwenden, die Laufzeit meiner Wärmepumpe auszuwerten.

Als Events bekomme ich so etwas:
2014-12-22 09:13:21 VCONTROL Heizung Status_Verdichter: on
Entsprechend sieht meine Definition aus:
define HourCounter_Heizung_Status_Verdichter HourCounter Heizung:Status_Verdichter:.on Heizung:Status_Verdichter:.off
HourCounter erkennt das Einschalten, zählt aber nicht weiter.

Hier ein Beispiel aus dem Logfile mit
egrep "Status_Verdichter.(pulseTimeIncrement|value)" HourCounter-2014.logextrahiert:

2014-12-22_09:04:19 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-22_09:04:19 HourCounter_Heizung_Status_Verdichter value: 0
2014-12-22_09:07:27 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-22_09:07:27 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:10:32 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-22_09:10:32 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:13:21 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 0
2014-12-22_09:13:21 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:13:46 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 25
2014-12-22_09:13:46 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:14:09 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 48
2014-12-22_09:14:09 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:16:30 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 48
2014-12-22_09:16:30 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:19:27 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 48
2014-12-22_09:19:27 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:22:19 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 48
2014-12-22_09:22:19 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:25:30 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 48
2014-12-22_09:25:30 HourCounter_Heizung_Status_Verdichter value: 1
2014-12-22_09:28:31 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 229
2014-12-22_09:28:31 HourCounter_Heizung_Status_Verdichter value: 0
2014-12-22_09:31:22 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 229
2014-12-22_09:31:22 HourCounter_Heizung_Status_Verdichter value: 0
2014-12-22_09:34:23 HourCounter_Heizung_Status_Verdichter pulseTimeIncrement: 229

Man sieht die Wärmepumpe ist von 09:07 bis 09:28 gelaufen, also ca. 27 Minuten.

Obwohl der Status, also value, richtig erkannt wird, zählt HourCounter nicht weiter.

Woran kann das liegen?

Danke und lieben Gruß
Oli
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 22 Dezember 2014, 09:55:34
Hallo Oli,

das ist noch ein Fehler im Modul, der mit der Version 1.0.1.1 von gestern behoben sein sollte.

Du solltest dir überlegen, ob du nicht auch das OFF_Ereignis aufnimmst, dann kannst du auch die Betriebs- und Stillstandszeiten
erfassen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: marko67 am 22 Dezember 2014, 14:49:13
Hallo,

könnt mir jemand erklären warum ich Abweichungen bei
- appCountsPerDay 115 zu
- countsPerDay 241
habe?

 Welche Einheit h/min/sek wird bei app und appOp verwendet?
z. B : appCountsPerDay= 115 und appOpHoursPerDay= 0.331388888888889

Mein Def lautet : GZaehler_Durchlauf_dummy:on GZaehler_Durchlauf_dummy:off. Gezählt wird durch ein Relais das on geschaltet wird und nach 10 sek nach off.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 22 Dezember 2014, 15:05:49
Hi marko67

welche Version haben 98_HourCounter.pm (aktuell 1.0.1.1) und 99_UtilsHourCounter.pm (aktuell: 1.0.1.0)?

Zitat
Welche Einheit h/min/sek wird bei app und appOp verwendet?
z. B : appCountsPerDay= 115 und appOpHoursPerDay= 0.331388888888889

appCountsPerDay : Anzahl der Ereignisse über den Tag
appOpHoursPerDay : Betriebsstunden über den Tag also Einheit=h

Das Wiki kennst du ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: marko67 am 22 Dezember 2014, 15:18:39
99: HourCounter_Version="1.02 - 17.03.2014 (john)"
HC: Version : 1.0.0.6 - 20.11.2014

Da ist wohl ein update notwendig.

Das Wiki kenne ich, danach habe ich auch gearbeitet. Aber leider habe ich dort über die Einheiten nicht gefunden. Vieles habe ich mir irgendwie zusammen gerechnet. Trotzdem grosses Lob. Es ist eines der besten Wiki´s und Module!!
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 22 Dezember 2014, 15:44:57
Hallo John,

ich würde gern meine Frage erneut stellen !

http://forum.fhem.de/index.php/topic,12216.msg230747.html#msg230747 (http://forum.fhem.de/index.php/topic,12216.msg230747.html#msg230747)

Das Wiki hab ich schon gelesen .... vielleicht nicht alles verstanden ?  :-[
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 22 Dezember 2014, 16:31:55
@Autor: kvo1

Deaktivieren indem du die 99_UtilsHourCounter.pm einfach aus dem FHEM Verzeichnis wieder raus nimmst.

Löschen der Readings sollte mit z.B
deletereading <Name> appOpHoursPerDay
usw.
möglich sein.

Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 22 Dezember 2014, 17:04:47
Hallo Billy

>>>  Deaktivieren indem du die 99_UtilsHourCounter.pm einfach aus dem FHEM Verzeichnis wieder raus nimmst.


danke, aber wird das Modul nicht bei jedem Update aktualisiert !?

kvo1
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 22 Dezember 2014, 17:08:30
99_UtilsHourCounter.pm
Kommt doch aus der contrib.  ;)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: marko67 am 22 Dezember 2014, 18:41:05
Hallo John,

habe ein kpl. update gemacht und Fhem neu geladen.
Jetzt muss ich trotzdem nochmal Fragen woher der Unterschied kommt:

countsPerDay=475 appCountsPerDay=115

appOpHoursPerDay= 0.331388888888889/60= 0.00552314814814815 Std

Wenn ich aber {sprintf("%.1f", ReadingsVal("Betriebstunden_Heizung","pulseTimePerDay",0)/3600) . "  rechne, komme ich mit 9380/3600 = 2.6055555555555556 Std. hin.

Mache ich einen Denkfehler?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 22 Dezember 2014, 18:58:32
In Wiki steht

Zitat
appCountsPerDay  - Tageszähler, wird bei Tageswechsel aktualisiert (Arbeitszähler ist countsPerDay)

Ist das schlecht zu verstehen ?

counterPerDay ist der Arbeitszähler, wird also bei jedem Ereignis hochgezält.
Beim Tageswechsel wird dieser Wert zu  appCountsPerDay kopiert.
Damit nimmt appCountsPerDay immer die counts des letzten vollständigen Tages auf.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 23 Dezember 2014, 17:48:48
@John

Mein Zähler für die Solaranlage bringt nicht mehr das gewünschte Ergebnis. :-\
Mein HC ist auf dem neuesten Stand und nach Wiki konfiguriert.
Wenn ich manuell die Laufzeit für heute durchrechne komme ich für heute auf  17820 sec   4,95 Std
Ergibt sich aus!
1. Laufzeit von 10:30:03 bis 13:30:00  10800sec  3 Std
2. Laufzeit von 14:12:03 bis 16:09:03  7020 sec 1,95 Std

Der Hourcounter kommt in Summe --> appOpHoursPerDayTemp auf 3.6475 Std

Nachdem ich schon eine Weile keinen Solarertrag mehr hatte ist mir das heute aufgefallen.
Was mache ich falsch oder habe ich Kartoffeln auf den Augen?
Anbei Logauszug.
2014-12-23_10:30:03 CN.Solar countsPerDay: 2
2014-12-23_10:30:03 CN.Solar countsOverall: 1163
2014-12-23_10:30:03 CN.Solar pulseTimeIncrement: 0
2014-12-23_10:30:03 CN.Solar pauseTimeIncrement: 540
2014-12-23_10:30:03 CN.Solar pauseTimeEdge: 540
2014-12-23_10:30:03 CN.Solar pauseTimePerDay: 33273
2014-12-23_10:30:03 CN.Solar pauseTimeOverall: 102090065
2014-12-23_10:30:03 CN.Solar value: 1
2014-12-23_10:30:03 CN.Solar 2
2014-12-23_10:30:03 CN.Solar tickUpdated: 53
2014-12-23_10:30:03 CN.Solar tickChanged: 17
2014-12-23_10:30:03 CN.Solar appUtilizationTemp: 0.476152686294739
2014-12-23_10:30:03 CN.Solar appUtilizationTempOld: 0.483052894291925
2014-12-23_10:30:03 CN.Solar appCountsPerHourTemp: 2
2014-12-23_10:30:03 CN.Solar appCountsPerWeekTemp: 8
2014-12-23_10:30:03 CN.Solar appCountsPerMonthTemp: 23
2014-12-23_10:30:03 CN.Solar appCountsPerYearTemp: 1363
2014-12-23_11:00:00 CN.Solar pulseTimeIncrement: 1797
2014-12-23_11:00:00 CN.Solar pulseTimePerDay: 1977
2014-12-23_11:00:00 CN.Solar pulseTimeOverall: 3221678
2014-12-23_11:00:00 CN.Solar tickUpdated: 54
2014-12-23_11:00:00 CN.Solar tickHour: 16
2014-12-23_11:00:00 CN.Solar appOpHoursPerDayTemp: 0.549166666666667
2014-12-23_11:00:00 CN.Solar appUtilizationTemp: 4.99242424242424
2014-12-23_11:00:00 CN.Solar appUtilizationTempOld: 0.476152686294739
2014-12-23_11:00:00 CN.Solar appCountsPerHourTemp: 0
2014-12-23_11:00:00 CN.Solar appCountsPerHour: 2
2014-12-23_11:33:03 CN.Solar countsPerDay: 2
2014-12-23_11:33:03 CN.Solar countsOverall: 1163
2014-12-23_11:33:03 CN.Solar pulseTimeEdge: 180
2014-12-23_11:33:03 CN.Solar pauseTimeIncrement: 540
2014-12-23_11:33:03 CN.Solar pauseTimeEdge: 540
2014-12-23_11:33:03 CN.Solar pauseTimePerDay: 33273
2014-12-23_11:33:03 CN.Solar pauseTimeOverall: 102090065
2014-12-23_11:33:03 CN.Solar value: 1
2014-12-23_11:33:03 CN.Solar 2
2014-12-23_11:33:03 CN.Solar tickUpdated: 55
2014-12-23_11:33:03 CN.Solar hoursTag_hrs: 0.5 h
2014-12-23_11:33:03 CN.Solar appUtilizationTemp: 4.75434672823029
2014-12-23_11:33:03 CN.Solar appUtilizationTempOld: 4.99242424242424
2014-12-23_12:00:00 CN.Solar pulseTimeIncrement: 3414
2014-12-23_12:00:00 CN.Solar pulseTimePerDay: 3594
2014-12-23_12:00:00 CN.Solar pulseTimeOverall: 3223295
2014-12-23_12:00:00 CN.Solar tickUpdated: 56
2014-12-23_12:00:00 CN.Solar tickHour: 17
2014-12-23_12:00:00 CN.Solar appOpHoursPerDayTemp: 0.998333333333333
2014-12-23_12:00:00 CN.Solar appUtilizationTemp: 8.31944444444444
2014-12-23_12:00:00 CN.Solar appUtilizationTempOld: 4.75434672823029
2014-12-23_12:00:00 CN.Solar appCountsPerHour: 0
2014-12-23_12:33:03 CN.Solar countsPerDay: 2
2014-12-23_12:33:03 CN.Solar countsOverall: 1163
2014-12-23_12:33:03 CN.Solar pulseTimeEdge: 180
2014-12-23_12:33:03 CN.Solar pauseTimeIncrement: 540
2014-12-23_12:33:03 CN.Solar pauseTimeEdge: 540
2014-12-23_12:33:03 CN.Solar pauseTimePerDay: 33273
2014-12-23_12:33:03 CN.Solar pauseTimeOverall: 102090065
2014-12-23_12:33:03 CN.Solar value: 1
2014-12-23_12:33:03 CN.Solar 2
2014-12-23_12:33:03 CN.Solar tickUpdated: 57
2014-12-23_12:33:03 CN.Solar hoursTag_hrs: 1.0 h
2014-12-23_12:33:03 CN.Solar appUtilizationTemp: 7.95431910231724
2014-12-23_12:33:03 CN.Solar appUtilizationTempOld: 8.31944444444444
2014-12-23_13:00:00 CN.Solar pulseTimeIncrement: 5031
2014-12-23_13:00:00 CN.Solar pulseTimePerDay: 5211
2014-12-23_13:00:00 CN.Solar pulseTimeOverall: 3224912
2014-12-23_13:00:00 CN.Solar tickUpdated: 58
2014-12-23_13:00:00 CN.Solar tickHour: 18
2014-12-23_13:00:00 CN.Solar appOpHoursPerDayTemp: 1.4475
2014-12-23_13:00:00 CN.Solar appUtilizationTemp: 11.1346153846154
2014-12-23_13:00:00 CN.Solar appUtilizationTempOld: 7.95431910231724
2014-12-23_13:00:00 CN.Solar appCountsPerHourTemp: 0
2014-12-23_13:00:00 CN.Solar appCountsPerHour: 0
2014-12-23_13:30:03 CN.Solar pulseTimeIncrement: 6834
2014-12-23_13:30:03 CN.Solar pulseTimeEdge: 6834
2014-12-23_13:30:03 CN.Solar pulseTimePerDay: 7014
2014-12-23_13:30:03 CN.Solar pulseTimeOverall: 3226715
2014-12-23_13:30:03 CN.Solar pauseTimeIncrement: 0
2014-12-23_13:30:03 CN.Solar value: 0
2014-12-23_13:30:03 CN.Solar tickUpdated: 59
2014-12-23_13:30:03 CN.Solar tickChanged: 18
2014-12-23_13:30:03 CN.Solar hoursTag_hrs: 1.9 h
2014-12-23_13:30:03 CN.Solar hoursGes_hrs: 1163.0 h
2014-12-23_13:30:03 CN.Solar appOpHoursPerDayTemp: 1.94833333333333
2014-12-23_13:30:03 CN.Solar appUtilizationTemp: 14.4312079501265
2014-12-23_13:30:03 CN.Solar appUtilizationTempOld: 11.1346153846154
2014-12-23_14:00:00 CN.Solar countsPerDay: 2
2014-12-23_14:00:00 CN.Solar countsOverall: 1163
2014-12-23_14:00:00 CN.Solar pauseTimeIncrement: 1797
2014-12-23_14:00:00 CN.Solar pauseTimeEdge: 540
2014-12-23_14:00:00 CN.Solar pauseTimePerDay: 35070
2014-12-23_14:00:00 CN.Solar pauseTimeOverall: 102091862
2014-12-23_14:00:00 CN.Solar 2
2014-12-23_14:00:00 CN.Solar tickUpdated: 60
2014-12-23_14:00:00 CN.Solar tickHour: 19
2014-12-23_14:00:00 CN.Solar appUtilizationTemp: 13.9166666666667
2014-12-23_14:00:00 CN.Solar appUtilizationTempOld: 14.4312079501265
2014-12-23_14:00:00 CN.Solar appCountsPerHourTemp: 0
2014-12-23_14:00:00 CN.Solar appCountsPerHour: 0
2014-12-23_14:12:03 CN.Solar countsPerDay: 3
2014-12-23_14:12:03 CN.Solar countsOverall: 1164
2014-12-23_14:12:03 CN.Solar pulseTimeIncrement: 0
2014-12-23_14:12:03 CN.Solar pauseTimeIncrement: 2520
2014-12-23_14:12:03 CN.Solar pauseTimeEdge: 2520
2014-12-23_14:12:03 CN.Solar pauseTimePerDay: 35793
2014-12-23_14:12:03 CN.Solar pauseTimeOverall: 102092585
2014-12-23_14:12:03 CN.Solar value: 1
2014-12-23_14:12:03 CN.Solar 3
2014-12-23_14:12:03 CN.Solar tickUpdated: 61
2014-12-23_14:12:03 CN.Solar tickChanged: 19
2014-12-23_14:12:03 CN.Solar appUtilizationTemp: 13.7198521213544
2014-12-23_14:12:03 CN.Solar appUtilizationTempOld: 13.9166666666667
2014-12-23_14:12:03 CN.Solar appCountsPerHourTemp: 1
2014-12-23_14:12:03 CN.Solar appCountsPerWeekTemp: 9
2014-12-23_14:12:03 CN.Solar appCountsPerMonthTemp: 24
2014-12-23_14:12:03 CN.Solar appCountsPerYearTemp: 1364
2014-12-23_15:00:00 CN.Solar pulseTimeIncrement: 2877
2014-12-23_15:00:00 CN.Solar pulseTimeEdge: 6834
2014-12-23_15:00:00 CN.Solar pulseTimePerDay: 9891
2014-12-23_15:00:00 CN.Solar pulseTimeOverall: 3229592
2014-12-23_15:00:00 CN.Solar tickUpdated: 62
2014-12-23_15:00:00 CN.Solar tickHour: 20
2014-12-23_15:00:00 CN.Solar appOpHoursPerDayTemp: 2.7475
2014-12-23_15:00:00 CN.Solar appUtilizationTemp: 18.3166666666667
2014-12-23_15:00:00 CN.Solar appUtilizationTempOld: 13.7198521213544
2014-12-23_15:00:00 CN.Solar appCountsPerHourTemp: 0
2014-12-23_15:00:00 CN.Solar appCountsPerHour: 1
2014-12-23_15:15:03 CN.Solar countsPerDay: 3
2014-12-23_15:15:03 CN.Solar countsOverall: 1164
2014-12-23_15:15:03 CN.Solar pauseTimeIncrement: 2520
2014-12-23_15:15:03 CN.Solar pauseTimeEdge: 2520
2014-12-23_15:15:03 CN.Solar pauseTimePerDay: 35793
2014-12-23_15:15:03 CN.Solar pauseTimeOverall: 102092585
2014-12-23_15:15:03 CN.Solar value: 1
2014-12-23_15:15:03 CN.Solar 3
2014-12-23_15:15:03 CN.Solar tickUpdated: 63
2014-12-23_15:15:03 CN.Solar hoursTag_hrs: 2.7 h
2014-12-23_15:15:03 CN.Solar appUtilizationTemp: 18.015408994044
2014-12-23_15:15:03 CN.Solar appUtilizationTempOld: 18.3166666666667
2014-12-23_16:00:00 CN.Solar pulseTimeIncrement: 5574
2014-12-23_16:00:00 CN.Solar pulseTimePerDay: 12588
2014-12-23_16:00:00 CN.Solar pulseTimeOverall: 3232289
2014-12-23_16:00:00 CN.Solar tickUpdated: 64
2014-12-23_16:00:00 CN.Solar tickHour: 21
2014-12-23_16:00:00 CN.Solar appOpHoursPerDayTemp: 3.49666666666667
2014-12-23_16:00:00 CN.Solar appUtilizationTemp: 21.8541666666667
2014-12-23_16:00:00 CN.Solar appUtilizationTempOld: 18.015408994044
2014-12-23_16:00:00 CN.Solar appCountsPerHour: 0
2014-12-23_16:09:03 CN.Solar pulseTimeIncrement: 6117
2014-12-23_16:09:03 CN.Solar pulseTimeEdge: 6117
2014-12-23_16:09:03 CN.Solar pulseTimePerDay: 13131
2014-12-23_16:09:03 CN.Solar pulseTimeOverall: 3232832
2014-12-23_16:09:03 CN.Solar pauseTimeIncrement: 0
2014-12-23_16:09:03 CN.Solar value: 0
2014-12-23_16:09:03 CN.Solar tickUpdated: 65
2014-12-23_16:09:03 CN.Solar tickChanged: 20
2014-12-23_16:09:03 CN.Solar hoursTag_hrs: 3.6 h
2014-12-23_16:09:03 CN.Solar hoursGes_hrs: 1163.0 h
2014-12-23_16:09:03 CN.Solar appOpHoursPerDayTemp: 3.6475
2014-12-23_16:09:03 CN.Solar appUtilizationTemp: 22.5839739951499
2014-12-23_16:09:03 CN.Solar appUtilizationTempOld: 21.8541666666667

Gruß Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 23 Dezember 2014, 21:44:02
Hallo Billy,
auf den ersten Blick scheint hier wirklich was nicht zu passen.

Werde es nochmals überprüfen.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 23 Dezember 2014, 21:56:40
Danke, hoffe dass du das Problem lösen kannst.
HC ist für mich nicht mehr wegzudenken.
Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 23 Dezember 2014, 23:01:15
Hallo Billy,
die ersten Tests bestätigen was ich schon getestet habe. Es funktioniert wie es sollte.

Schick mir bitte die Definition deines Hourcounters, ein Auszug aus dem Event-Monitor für ON und OFF
und einen Auszug der Logdatei der letzten beiden Tage.

Mit welcher Version arbeitest du ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ojb am 24 Dezember 2014, 08:48:27
Hallo John,
 
mein etwas weiter oben beschriebenes Problem besteht nach wie vor, auch hier wird nicht richtig weitergezhält:
HourCounter V1.0.1.1

Liebe Grüße und frohe Weihnachten
Oli
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 24 Dezember 2014, 11:18:33
Hallo Billy,
die ersten Tests bestätigen was ich schon getestet habe. Es funktioniert wie es sollte.
Schick mir bitte die Definition deines Hourcounters, ein Auszug aus dem Event-Monitor für ON und OFF
und einen Auszug der Logdatei der letzten beiden Tage.
Mit welcher Version arbeitest du ?

John
Hallo John,

Ich arbeite mit der Version 98_HourCounter.pm 21.12.14 - 1.0.1.1 und 99_UtilsHourCounter.pm 10.12.14 - 1.0.1.0

Definition HC: --> notify
Internals:
   CFGFN      ./config.d/Utils_GG.cfg
   DEF        CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");}
   NAME       CN.EVENT
   NR         384
   NTFY_ORDER 50-CN.EVENT
   REGEXP     CN\..*:tick.*
   STATE      2014-12-24 11:00:00
   TYPE       notify
Attributes:
Definition CN.Solar
Internals:
   DEF        D13:1 D13:0
   NAME       CN.Solar
   NR         1198
   NTFY_ORDER 50-CN.Solar
   STATE      Heute: 0.0 h / Ges.: 1166.6 h
   TYPE       HourCounter
   Readings:
     2014-12-24 00:00:00   appCountsPerDay 3
     2014-12-24 11:00:00   appCountsPerHour 1
     2014-12-24 11:00:00   appCountsPerHourTemp 0
     2014-12-16 18:45:23   appCountsPerMonth 0
     2014-12-24 10:27:21   appCountsPerMonthTemp 25
     2014-12-21 00:00:00   appCountsPerWeek 15
     2014-12-24 10:27:21   appCountsPerWeekTemp 10
     2014-12-24 10:27:21   appCountsPerYearTemp 1365
     2014-12-24 00:00:00   appOpHoursPerDay 3.6475
     2014-12-24 11:00:00   appOpHoursPerDayTemp 0.045
     2014-12-16 18:45:23   appOpHoursPerMonth 0
     2014-12-24 00:00:00   appOpHoursPerMonthTemp 14.6475
     2014-12-21 00:00:00   appOpHoursPerWeek 0.299722222222222
     2014-12-24 00:00:00   appOpHoursPerWeekTemp 7.74388888888889
     2014-12-24 00:00:00   appOpHoursPerYearTemp 1166.6475
     2014-12-24 00:00:00   appUtilization  15.6204275364905
     2014-12-24 11:00:00   appUtilizationTemp 0.409090909090909
     2014-12-24 11:00:00   appUtilizationTempOld 0.428537417665265
     2014-03-25 17:23:37   clearDate       2014-03-25 17:23:37
     2014-12-24 11:00:00   countsOverall   1165
     2014-12-24 11:00:00   countsPerDay    1
     2014-12-24 10:30:03   hoursGes_hrs    1166.6 h
     2014-12-24 11:00:00   hoursTag_hrs    0.0 h
     2014-12-24 11:00:00   pauseTimeEdge   39927
     2014-12-24 11:00:00   pauseTimeIncrement 1797
     2014-12-24 11:00:00   pauseTimeOverall 102134309
     2014-12-24 11:00:00   pauseTimePerDay 19968
     2014-12-24 11:00:00   pulseTimeEdge   162
     2014-12-24 11:00:00   pulseTimeIncrement 162
     2014-12-24 11:00:00   pulseTimeOverall 3232994
     2014-12-24 11:00:00   pulseTimePerDay 162
     2014-12-24 11:00:00   state           1
     2014-12-24 10:30:03   tickChanged     22
     2014-12-24 00:00:00   tickDay         2
     2014-12-24 11:00:00   tickHour        40
     2014-12-22 19:50:26   tickMonth       0
     2014-12-24 11:00:00   tickUpdated     103
     2014-12-22 19:50:26   tickWeek        0
     2014-12-22 19:50:26   tickYear        0
     2014-12-24 11:00:00   value           0
   Helper:
     OFF_Regexp D13:0
     ON_Regexp  D13:1
     calledByEvent
     changedTimestamp 2014-12-24 11:00:00
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1419415200
     value      0
     cmdQueue:
Attributes:
   event-min-interval .*:3600
   event-on-change-reading .*
   group      Verbrauch
   room       1_HZ-Regler
   stateFormat Heute: hoursTag_hrs / Ges.: hoursGes_hrs
   userReadings hoursTag_hrs:tickChanged|pauseTimePerDay {sprintf("%.1f", ReadingsVal("CN.Solar","pulseTimePerDay",0)/3600) . " h";; }, hoursGes_hrs:tickChanged {sprintf("%.1f", ReadingsVal("CN.Solar","appOpHoursPerYearTemp",0)) . " h";; }
   verbose    0
Auszug aus dem Event-Monitor für ON und OFF
2014-12-24 10:27:21 dummy D13 1
2014-12-24 10:30:03 dummy D13 0
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 24 Dezember 2014, 12:12:21
Hallo Billy

Es gibt unter "Erweiterte Optionen" die Möglichkeit eine Datei anzuhängen.
Das wäre für die lange Log-Datei der beste Weg. (Hab grade einen Krampf im Mausfinger).

Kannst den Log-Auszug in deinem Beitrag wieder löschen, habs schon abgezogen, dann wird es wieder übersichtlicher.

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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 24 Dezember 2014, 14:03:25
Danke. :)
Zitat
Kannst den Log-Auszug in deinem Beitrag wieder löschen, habs schon abgezogen, dann wird es wieder übersichtlicher.
erledigt!

Zitat
Hab 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.
Zitat
Bitte um Feedback zur angehängten Version.

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

Frohes Fest

Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ojb am 25 Dezember 2014, 23:05:40
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

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 25 Dezember 2014, 23:38:06
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ojb am 26 Dezember 2014, 16:51:08
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 26 Dezember 2014, 17:17:45
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 03 Januar 2015, 13:37:50
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 03 Januar 2015, 15:00:02
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 03 Januar 2015, 15:41:48
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Icinger am 03 Januar 2015, 20:50:51
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 03 Januar 2015, 22:34:51
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Icinger am 03 Januar 2015, 22:36:32
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 03 Januar 2015, 22:37:06
Hallo cotecmania

Zitat
Erst 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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 03 Januar 2015, 22:40:48
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 03 Januar 2015, 22:44:46
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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: koenigd am 03 Januar 2015, 22:48:43
Hallo John,

ja super, vielen DANK.

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

Gruß Daniel
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 03 Januar 2015, 22:58:39
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.

Ich bin nicht sicher, dass es dass braucht. Kann das Verhalten bei mir nicht feststellen. Habe allerdings den Hourcounter zusammen mit 99_UtilsHourCounter am laufen. Die Sequenz sieht dann bei mir so aus (nur gefiltert auf countsPerDay): 2014-06-14_00:00:03 BrennerTest countsPerDay: 0
2014-06-14_05:59:56 BrennerTest countsPerDay: 1
2014-06-14_06:45:18 BrennerTest countsPerDay: 2
2014-06-14_11:54:52 BrennerTest countsPerDay: 3
2014-06-14_12:34:12 BrennerTest countsPerDay: 4
2014-06-14_17:07:28 BrennerTest countsPerDay: 5
2014-06-14_17:46:47 BrennerTest countsPerDay: 6
2014-06-15_00:00:03 BrennerTest appCountsPerDay: 6
2014-06-15_00:00:04 BrennerTest countsPerDay: 0
2014-06-15_05:59:52 BrennerTest countsPerDay: 1
2014-06-15_06:36:10 BrennerTest countsPerDay: 2
2014-06-15_11:19:31 BrennerTest countsPerDay: 3
2014-06-15_12:00:52 BrennerTest countsPerDay: 4
2014-06-15_18:22:01 BrennerTest countsPerDay: 5
2014-06-16_00:00:03 BrennerTest appCountsPerDay: 5
2014-06-16_00:00:04 BrennerTest countsPerDay: 0
2014-06-16_04:59:18 BrennerTest countsPerDay: 1
2014-06-16_05:43:40 BrennerTest countsPerDay: 2
2014-06-16_10:36:06 BrennerTest countsPerDay: 3
2014-06-16_16:33:03 BrennerTest countsPerDay: 4
2014-06-17_00:00:03 BrennerTest appCountsPerDay: 4
2014-06-17_00:00:04 BrennerTest countsPerDay: 0
2014-06-17_04:59:15 BrennerTest countsPerDay: 1
2014-06-17_05:40:35 BrennerTest countsPerDay: 2
2014-06-17_11:31:30 BrennerTest countsPerDay: 3
2014-06-17_17:52:39 BrennerTest countsPerDay: 4
2014-06-18_00:00:03 BrennerTest appCountsPerDay: 4

Die Definition ist wie folgt:define BrennerTest HourCounter Oelbrenner:Window:.Open Oelbrenner:Window:.Closed
attr BrennerTest event-min-interval tick.*:0,.*:3600
attr BrennerTest event-on-change-reading .*
bzw. define Brenner.Event notify BrennerTest:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

Vielleicht hat es ja doch eine andere Ursache. Wie sehen denn die Logs bei den anderen Nutzern aus?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 03 Januar 2015, 23:04:03
Hallo pappn,

Zitat
2014-06-16_00:00:04 BrennerTest countsPerDay: 0
2014-06-16_04:59:18 BrennerTest countsPerDay: 1
2014-06-16_05:43:40 BrennerTest countsPerDay: 2
2014-06-16_10:36:06 BrennerTest countsPerDay: 3
2014-06-16_16:33:03 BrennerTest countsPerDay: 4
2014-06-17_00:00:03 BrennerTest appCountsPerDay: 4

 "appCountsPerDay: 4" bezieht sich auf die Counts des Tages 2014-06-16 trägt aber selbst den Zeitstempel 2014-06-17
und wird demnach in einem Chart auch über den Tag  " 2014-06-17" dargestellt.

Ich denke das ist der Kritikpunkt von cotecmania, wenn ich es richtig verstanden habe.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 03 Januar 2015, 23:37:42
"appCountsPerDay: 4" bezieht sich auf die Counts des Tages 2014-06-16 trägt aber selbst den Zeitstempel 2014-06-17
und wird demnach in einem Chart auch über den Tag  " 2014-06-17" dargestellt.

Ich denke das ist der Kritikpunkt von cotecmania, wenn ich es richtig verstanden habe.

Puuuuhhh, dann ist es aber ein sehr grundsätzliches Problem. Ich habe das über die Diagrammdefinitionen gelöst. Mit fsteps in der gplot def plot "<IN>" using 1:2 axes x1y2 title 'Tages-Durchschnittstemperatur' ls l0 lw 1.5 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title 'Betriebsstunden' ls l2 lw 1.5 with fsteps,\
     "<IN>" using 1:2 axes x1y1 title 'Verbrauch' ls l1fill_stripe lw 1.5 with fsteps
sieht das, mit diesen Daten 2015-01-01_00:00:01 BrennerTest appOpHoursPerDay: 1.50611111111111
2015-01-01_00:13:07 cp_S300TH T_avg_day: 0.2
2015-01-02_00:00:00 BrennerTest appOpHoursPerDay: 2.91666666666667
2015-01-02_00:03:29 cp_S300TH T_avg_day: -0.0
2015-01-03_00:00:00 BrennerTest appOpHoursPerDay: 5.29583333333333
2015-01-03_00:02:38 cp_S300TH T_avg_day: -0.6
dann wie im Bild aus. Damit stehen dann die Werte im Diagramm über dem richtigen Tag.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Billy am 04 Januar 2015, 08:13:38
Hallo pappn,

 "appCountsPerDay: 4" bezieht sich auf die Counts des Tages 2014-06-16 trägt aber selbst den Zeitstempel 2014-06-17
und wird demnach in einem Chart auch über den Tag  " 2014-06-17" dargestellt.

Ich denke das ist der Kritikpunkt von cotecmania, wenn ich es richtig verstanden habe.

John
Stimmt, das ist unlogisch.
Habe zwar bei mir auch kein grundsätzliches Problem und nutze wie pappn im Diagramm with fsteps.
Beim Jahreswechsel hat das jedoch nicht mehr geholfen, da im CN.Oel-Day-2014.log der Wert ja gar nicht vorhanden war.
Habe dann manuell den Eintrag vom LOG 2015 ins Log für 2014 kopiert und wie folgt editiert.
2014-12-31_24:00:00 CN.Oel appOpHoursPerMonth: 101.050277777778 --> erzeugt! Hat auch mit 24:00 geklappt.

Insofern wäre das mit dem Offset eine gute Idee soweit es das System nicht zusätzlich belastet.

Gruß Billy
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 04 Januar 2015, 11:51:50
Mit dem Modul logProxy gibt es eine Lösung für das diskutierte Problem

http://www.fhemwiki.de/wiki/LogProxy (http://www.fhemwiki.de/wiki/LogProxy)

Neben den generellen Änderungen wie im Wiki beschrieben habe ich folgendes geändert:

Alt:
Zitat
#FileLog 4:CN.BRENNER.appCountsPerDay\x3a::
#FileLog 4:CN.BRENNER.appOpHoursPerDay\x3a::
#FileLog 4:CN.BRENNER.appUtilization\x3a::

Neu:
Zitat
#logProxy  FileLog:CN.BRENNER.FileDay,offset=-60*60*24:4:CN.BRENNER.appCountsPerDay\x3a::
#logProxy  FileLog:CN.BRENNER.FileDay,offset=-60*60*24:4:CN.BRENNER.appOpHoursPerDay\x3a::
#logProxy  FileLog:CN.BRENNER.FileDay,offset=-60*60*24:4:CN.BRENNER.appUtilization\x3a::

Damit wird die Darstellung um einen Tag in die Vergangenheit verschoben.

Was mir noch aufgefallen ist:

Speichert man die gplot-Datei im SVG-Editor wird nichts mehr angezeigt, ein erneutes Speichern über den Menppunkt "Edit Files"
bewirkt, daß wieder alles funktioniert.


John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 04 Januar 2015, 22:15:05
Hallo John,

Hallo pappn,

 "appCountsPerDay: 4" bezieht sich auf die Counts des Tages 2014-06-16 trägt aber selbst den Zeitstempel 2014-06-17
und wird demnach in einem Chart auch über den Tag  " 2014-06-17" dargestellt.

Ich denke das ist der Kritikpunkt von cotecmania, wenn ich es richtig verstanden habe.
Genau !

Das mit dem LogProxy habe ich gerade mal überflogen, sieht aber nicht gerade einfach aus. Da brauche ich mal mehr Zeit.

Die Idee mit dem Offset finde ich eigentlich besser, denn der Wert ist ja wirklich "falsch" bedatet im Logfile, wenns auch nur eine Sekunde ist ;-))
Und das jetzt wieder mit einem "Workaround" im SVG zu fixen finde ich nicht ideal.
Der Offset könnte ja optional eingebaut werden und nur der, der ihn will kann ihn setzen.

Ich wäre definitiv FÜR den Offset.

Danke und Gruss
Joe
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: justme1968 am 04 Januar 2015, 23:32:21
wenn du im plot einen tageswert am richtigen tag anzeigen willst reicht es nicht ihn vom timestamp her eine sekunde oder minute früher erscheinen zu lassen (am ende des zugehörigen tages) sondern der wert muss an den anfang des tages. das geht aber nicht 'nachträglich' weil im gleichen log file schon andere werte des tages aufgelaufen sind. und die timestamps im logfile streng aufsteigend sein müssen. sonst geht nichts mehr. das 'korrekt' zu machen würde bedeuten das komplette log file zu lesen, zu sortieren und wieder zu schreiben. und dafür zu sorgen das in dieser zeit keine anderen werte ins log kommen,

logproxy löst das problem in dem es eine kurve relativ zu den anderen verschiebt. in diesem fall um 24 stunden. so das die kurven untereinander wieder korrekt sind. das gleiche würde für wochen oder monats werte gelten. natürlich um einen anderen betrag verschoben.

das verschieben der kurven relativ zu einander würde ich nicht als workaround sehen.

gruss
  andre
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 05 Januar 2015, 00:02:19
Die Idee mit dem Offset finde ich eigentlich besser, denn der Wert ist ja wirklich "falsch" bedatet im Logfile, wenns auch nur eine Sekunde ist ;-))

Falsch kann man ja eigentlich nicht sagen; es liegt in der Natur der Sache, dass die Summe des Tages erst gebildet werden kann, wenn dieser auch gelaufen ist. Für die korrekte Darstellung würde nur 23:59:59 (oder 24:00:00) helfen. Alles was 00:00:00 oder später ist, gilt als neuer Tag und passt damit nicht in die Darstellung. Sekunde hin oder her.

logproxy löst das problem in dem es eine kurve relativ zu den anderen verschiebt. in diesem fall um 24 stunden. so das die kurven untereinander wieder korrekt sind. das gleiche würde für wochen oder monats werte gelten. natürlich um einen anderen betrag verschoben.

das verschieben der kurven relativ zu einander würde ich nicht als workaround sehen.

Dem kann ich nur zustimmen.

Der Hourcounter sollte nicht mit Dingen überladen werden, für die es bereits fertige Lösungen gibt.

@John, danke für den Hinweis zum LogProxy.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: cotecmania am 05 Januar 2015, 14:41:48
Hallo,

ich habe das Ganze nun auch mit dem LogProxy gelöst.
Allerdings habe ich nur um -5 Sekunden verschoben.
Wenn ich die Lösung von John verwendet habe (-24h), war mein Plot leer. Ist eigentlich auch logisch.
Das ".FileDay" war mir auch nicht klar bzw. hat bei mir nicht funktioniert.
Zitat
#logProxy  FileLog:CN.BRENNER.FileDay,offset=-60*60*24:4:CN.BRENNER.appUtilization\x3a:

So gings nun bei mir :

#logProxy FileLog:FileLog_BrennerCounter,offset=-5:4:BrennerCounter.countsPerDay\x3a::

Gruss
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: brmpfl am 05 Januar 2015, 19:18:52
Moin,

hat schon jemand den HourCounter im Zusammenhang mit einem PRESENCE-Device laufen?
Bei mir arbeitet der HourCounter hier leider nicht korrekt.
Hier die Definition des PRESENCE-Devices:
define paul_Computer PRESENCE lan-ping ComputerPaul
attr paul_Computer alias Computer Paul
attr paul_Computer devStateIcon absent:FS20.off present:FS20.on
und hier die des dazugehörigen HourCounters
define CN.paul_Computer HourCounter paul_Computer:present paul_Computer:absent
attr CN.paul_Computer event-min-interval tick.*:0,.*:3600
attr CN.paul_Computer event-on-change-reading .*
Aus dem Wiki habe ich die 99_UtilsHourCounter übernommen und mit
define CN.EVENT notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
aktiviert.

Das Ganze lasse ich über eine ReadingsGroup ausgeben:
define Laufzeit.paul_Computer readingsGroup <>,<%time_clock> \
CN.paul_Computer:<Laufzeiten> \
CN.paul_Computer:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.paul_Computer:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.paul_Computer:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.paul_Computer:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.paul_Computer:<Gesamtlaufzeit>,pulseTimeOverall,<&nbsp;;&nbsp;;&nbsp;;>,<&nbsp;;>,<&nbsp;;>
attr Laufzeit.paul_Computer alias Laufzeiten Paul Computer
attr Laufzeit.paul_Computer group Computer & Co
attr Laufzeit.paul_Computer mapping &nbsp;;
attr Laufzeit.paul_Computer room Paul
attr Laufzeit.paul_Computer 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 Laufzeit.paul_Computer valueStyle {'style="color:green;;;;text-align:right"'}

Ich vermute, das das Problem mit dem rel. kurfristig (30sec) zyklisch wiederkehrenden ON"-Events "present" zusammenhängt.
Die Events present und absent werden geworfen (->Event Monitor)

Ersetze ich das PRESENCE-Device durch ein entsprechendes Dummy-Device, funktioniert alles wie erwartet.
define paul_Computer dummy
attr paul_Computer alias Computer Paul
attr paul_Computer devStateIcon absent:FS20.off present:FS20.on
attr paul_Computer setList state:present,absent

Mache ich irgendwo was falsch, habe ich einen Denkfehler?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 05 Januar 2015, 20:10:25
Hallo Hajo,

bitte stelle zu
Zitat
define paul_Computer PRESENCE lan-ping ComputerPaul
das EventLog ein.

Weiterhin ein
Zitat
list CN.paul_Computer

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: brmpfl am 05 Januar 2015, 21:22:43
Hai John,

anbei der Auszug aus dem Eventlog beim 1. "present"
2015-01-05 21:16:55 HourCounter CN.paul_Computer countsPerDay: 5
2015-01-05 21:16:55 HourCounter CN.paul_Computer countsOverall: 6
2015-01-05 21:16:55 HourCounter CN.paul_Computer pulseTimeIncrement: 0
2015-01-05 21:16:55 HourCounter CN.paul_Computer pauseTimeIncrement: 89
2015-01-05 21:16:55 HourCounter CN.paul_Computer pauseTimeEdge: 89
2015-01-05 21:16:55 HourCounter CN.paul_Computer pauseTimePerDay: 399
2015-01-05 21:16:55 HourCounter CN.paul_Computer pauseTimeOverall: 1175
2015-01-05 21:16:55 HourCounter CN.paul_Computer value: 1
2015-01-05 21:16:55 HourCounter CN.paul_Computer 5
2015-01-05 21:16:55 HourCounter CN.paul_Computer tickUpdated: 561
2015-01-05 21:16:55 HourCounter CN.paul_Computer tickChanged: 11
2015-01-05 21:16:55 HourCounter CN.paul_Computer appUtilizationTemp: 0.396789140507734
2015-01-05 21:16:55 HourCounter CN.paul_Computer appUtilizationTempOld: 0.396965304710046
2015-01-05 21:16:55 HourCounter CN.paul_Computer appCountsPerHourTemp: 1
2015-01-05 21:16:55 HourCounter CN.paul_Computer appCountsPerWeekTemp: 6
2015-01-05 21:16:55 HourCounter CN.paul_Computer appCountsPerMonthTemp: 6
2015-01-05 21:16:55 HourCounter CN.paul_Computer appCountsPerYearTemp: 6
2015-01-05 21:16:55 PRESENCE paul_Computer present
Die weitern sehen dann wie folgt aus:
2015-01-05 21:17:28 HourCounter CN.paul_Computer tickUpdated: 562
2015-01-05 21:17:28 HourCounter CN.paul_Computer appUtilizationTemp: 0.396618307066068
2015-01-05 21:17:28 HourCounter CN.paul_Computer appUtilizationTempOld: 0.396789140507734
2015-01-05 21:17:28 PRESENCE paul_Computer present

Hier noch das Ergebnis vom list CN.paul_Computer
Internals:
   CFGFN      /opt/fhem/FHEM/Paul.cfg
   DEF        paul_Computer:present paul_Computer:absent
   NAME       CN.paul_Computer
   NR         165
   NTFY_ORDER 50-CN.paul_Computer
   STATE      5
   TYPE       HourCounter
   Readings:
     2015-01-05 00:00:01   appCountsPerDay 1
     2015-01-05 21:00:00   appCountsPerHour 0
     2015-01-05 21:16:55   appCountsPerHourTemp 1
     2015-01-05 21:16:55   appCountsPerMonthTemp 6
     2015-01-05 21:16:55   appCountsPerWeekTemp 6
     2015-01-05 21:16:55   appCountsPerYearTemp 6
     2015-01-05 00:00:01   appOpHoursPerDay 0.307777777777778
     2015-01-05 21:20:14   appOpHoursPerDayTemp 0.0844444444444444
     2015-01-05 00:00:01   appOpHoursPerMonthTemp 0.307777777777778
     2015-01-05 00:00:01   appOpHoursPerWeekTemp 0.307777777777778
     2015-01-05 00:00:01   appOpHoursPerYearTemp 0.307777777777778
     2015-01-05 00:00:01   appUtilization  1.28280828499647
     2015-01-05 21:20:14   appUtilizationTemp 0.395761189366522
     2015-01-05 21:20:14   appUtilizationTempOld 0.395931285083549
     2015-01-05 21:20:14   countsOverall   6
     2015-01-05 21:20:14   countsPerDay    5
     2015-01-05 21:20:14   pauseTimeEdge   89
     2015-01-05 21:20:14   pauseTimeIncrement 89
     2015-01-05 21:20:14   pauseTimeOverall 1175
     2015-01-05 21:20:14   pauseTimePerDay 399
     2015-01-05 21:20:14   pulseTimeEdge   43
     2015-01-05 21:20:14   pulseTimeIncrement 0
     2015-01-05 21:20:14   pulseTimeOverall 1412
     2015-01-05 21:20:14   pulseTimePerDay 304
     2015-01-05 21:20:14   state           5
     2015-01-05 21:16:55   tickChanged     11
     2015-01-05 21:12:44   tickDay         0
     2015-01-05 21:12:44   tickHour        0
     2015-01-05 21:12:44   tickMonth       0
     2015-01-05 21:20:14   tickUpdated     567
     2015-01-05 21:12:44   tickWeek        0
     2015-01-05 21:12:44   tickYear        0
     2015-01-05 21:20:14   value           1
   Helper:
     OFF_Regexp paul_Computer:absent
     ON_Regexp  paul_Computer:present
     calledByEvent
     changedTimestamp 2015-01-05 21:20:14
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1420488000
     value      1
     cmdQueue:
Attributes:
   event-min-interval tick.*:0,.*:3600
   event-on-change-reading .*
   group      Computer & Co
   room       Paul

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 05 Januar 2015, 21:51:47
Hallo Hajo
das Eventlog zu  paul_Computer fehlt mir noch.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: brmpfl am 06 Januar 2015, 10:59:54
Hai John,

reicht das o.g.
2015-01-05 21:16:55 PRESENCE paul_Computer present
2015-01-05 21:17:28 PRESENCE paul_Computer present
aus dem EventMonitor nicht aus?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 07 Januar 2015, 01:22:26
ich hab das nachgestellt und via trigger simuliert.
Funktioniert alles soweit.
trigger paul_Computer present
trigger paul_Computer absent

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: brmpfl am 07 Januar 2015, 08:35:19
Hallo John,

Mit einem Dummy funktioniert das auch.
Da habe ich aber ein definiertes "present", "absent" Paar:
present->...->absent

Das Problem tritt bei mir aber im Zusammenhang mit dem PRESENCE-Device auf, bei dem zyklisch und in rel. kurzen Abständen (hier 30 Sekunden) immer wieder ein und das selbe "present"-Event gefeuert wird:
present->.->present->.->present->.->present->.->present->.->present->.->absent

Lt. Eventlog (s.o.) verhält sich der HourCounter scheinbar beim ersten "present" anders als bei den darauffolgenden.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 07 Januar 2015, 09:00:17
Hallo Hajo,

vielleicht stehe ich ja auch auf dem Schlauch.
Aber mir ist nicht klar was nicht funktionieren sollte.

Ist der Count-Wert falsch, die Puls/Pausenzeit ?
Wenn ja, dann bitte mit einem Beispiel belegen.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: brmpfl am 07 Januar 2015, 21:22:36
Hallo John,

ich kann Entwarnung geben.
(z.B.: appOpHoursPerDayTemp wurde nicht aktualisiert)


Auf Deine Bitte nach einem Beispiel, habe ich mir Gedanken gemacht, wie ich das wohl bewerkstelligen könnte.
Daraufhin habe mir ich kurzerhand in virutalbox eine Debian-Instanz installiert, fhem aufgesetzt, aktualisiert und konfiguriert.

Hier funktionierte plötzlich alles.
Daraufhin habe ich mir die Details der HourCounter angeschaut und festgestellt, dass hier (wieder) ein Version (1.0.1.2 - 24.12.2014) enthalten ist.

Auf meiner physischen Testinstanz existierte diese Versionsangabe nicht (mehr).

Ich hatte auf Deinen Post vom 24.12. (http://forum.fhem.de/index.php/topic,12216.msg234779.html#msg234779 (http://forum.fhem.de/index.php/topic,12216.msg234779.html#msg234779)) ein fhem-update gemacht und war der Anischt damit die aktuelle Version von HourCounter zu haben.
Dem war wohl nicht so ... den Anhang in Deinem Post habe ich völlig übersehen.
Mit der Version aus dem Anhang, die ja jetzt auch per update ins Haus flattert, funktioniert es.

Fazit: Kaum nimmt man die richtige Version, geht es.

Hab vielen Dank für Deine Geduld & Mühe

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Henno am 17 Januar 2015, 11:05:59
Hi

ich kann seid ein paar Tagen die countsOverall nicht mehr ändern.

Egal was ich eingebe ich bekomme immer "Value must be an integer"

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 26 Januar 2015, 23:10:35
Hallo,

ich würde gerne den Verbrauch meiner Pelletheizung über einen Intertechno-Funkschalter ITS-23 und das HoureCounter-Modul überwachen.

Bisher hängt an der Förderschnecke ein Betriebsstundenzähler.
Die Schnecke fördert jeweils 4,5Sek. und ruht dann für 18Sek.
Damit kann ich den Verbrauch ziehmlich präzise bestimmen.

Die reine Brennerzeit hat mich nicht weiter gebracht da die Anlaufzeit doch sehr unterschiedlich ist.

Ich hab nun Bedenken das das Logfile sehr groß wird und Probleme verursachen könnte.

Wie sind da eure Erfahrungen. Kann ich das ohne Bedenken so machen oder hab ihr ne andere Idee?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 26 Januar 2015, 23:17:37
@Henno
Zitat
ich kann seid ein paar Tagen die countsOverall nicht mehr ändern.

Problem kann ich nicht nachvollziehen. Hast du die aktuelle Version im Einsatz ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 26 Januar 2015, 23:24:06
Hallo the-tom,

du kannst dich ja darauf beschränken nur Stundenwerte zu loggen, dann wirds deutlich weniger.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 26 Januar 2015, 23:56:29
Hallo John,
danke für Deine schnelle Antwort.

Ich hab das so gedacht, das der Schalter, sobalt die Schnecke läuft eine Signal sendet und nach 4,5 Sek wieder ein Aus-Signal dann nach 18 Sek wieder ein An-Signal.
Die Werte fließen doch in die Log-Datei ein. Also 7-8 Werte pro Minute.

Was meinst Du mit nur Stundenwerte loggen? Ist eine Addition möglich ohne einen Eintrag im Logfile zu erzeugen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 27 Januar 2015, 00:12:44
Zitat
Ist eine Addition möglich ohne einen Eintrag im Logfile zu erzeugen?
so ist es.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 27 Januar 2015, 00:30:15
Danke, das hört sich gut an :-)
Dann kann ich die Schalter bestellen und loslegen.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 31 Januar 2015, 23:28:01
Hallo John,

ich hab noch ne Frage zur Implementierung des HourCounter Modules.
Du hast unter Inbetriebnahme geschrieben:
"unter Unsorted findet sich der automatisch erzeugte AT Befehl"
Leider finde ich das nicht in Unsorted.

Die Datei  99_UtilsMaxCounter.pm habe ich in das Verzeichnis /fhem/FHEM und
die Datei myOnOffHeizung.gplot in das Verzeichnis /fhem/www/gplot kopiert.

Meine Einträge in fhem.cfg:
define BrennerKontakt TRX_LIGHT AC 0093775202 light
attr BrennerKontakt IODev TRX_0
attr BrennerKontakt room Pelletbrenner
define BrennerKontakt.event notify BrennerKontakt:onoff.*  { CounterNotify("%NAME","%EVTPART0","%EVTPART1");;}
define Pelletheizung HourCounter BrennerKontakt:onoff:.1 BrennerKontakt:onoff:.0
attr Pelletheizung room Pelletbrenner
define FileLog_Pelletheizung FileLog /opt/fhem/log/Pelletheizung-%Y.log BrennerKontakt:.*|Pelletheizung:(onoff|cntOntimeHours).*|cntOntimeIncrement|cntOntimePerDayHours|cntPerDay|cntPerDayLast
attr FileLog_Pelletheizung logtype text
attr FileLog_Pelletheizung room Pelletbrenner

Im Logfile wird das Modul gestartet:
2015.01.31 22:31:39 3: [UtilsHourCounter] Init Done with Version 1.0.1.0 - 10.12.2014 (john)
2015.01.31 22:31:39 1: Including fhem.cfg
2015.01.31 22:31:39 3: telnetPort: port 7072 opened
2015.01.31 22:31:40 3: WEB: port 8083 opened
2015.01.31 22:31:40 3: WEBphone: port 8084 opened
2015.01.31 22:31:40 3: WEBtablet: port 8085 opened
2015.01.31 22:31:47 2: eventTypes: loaded 190 events from ./log/eventTypes.txt
2015.01.31 22:31:48 3: Opening TRX_0 device /dev/ttyUSB0
2015.01.31 22:31:48 3: Setting TRX_0 baudrate to 38400
2015.01.31 22:31:48 3: TRX_0 device opened
2015.01.31 22:31:49 1: TRX: Init OK
2015.01.31 22:31:49 1: TRX: Init status: '433.92MHz transceiver, firmware=182, protocols enabled: BlindsT1/T2/T3/T4 LaCrosse Hideki OREGON HOMEEASY AC ARC X10 '
2015.01.31 22:31:50 3: HourCounter HourCounter Initialize.208 Init Done with Version 1.0.0.6 - 20.11.2014
2015.01.31 22:31:50 0: HourCounter Pelletheizung Define.216 parameters: Pelletheizung HourCounter BrennerKontakt:onoff:.1 BrennerKontakt:onoff:.0
2015.01.31 22:31:50 1: Including ./log/fhem.save
2015.01.31 22:31:50 1: usb create starting
2015.01.31 22:31:52 3: Probing CUL device /dev/ttyAMA0
2015.01.31 22:31:52 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.01.31 22:31:52 3: Probing FRM device /dev/ttyAMA0
2015.01.31 22:31:58 1: usb create end
2015.01.31 22:31:58 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.01.31 22:31:58 0: Server started with 49 defined entities (version $Id: fhem.pl 7124 2014-12-05 07:10:20Z rudolfkoenig $, os linux, user fhem, pid 2242)
2015.01.31 22:32:05 0: HourCounter Pelletheizung Run.584 first run done countsOverall:0

Das Logfile des Senders sie so aus:
2015-01-31_22:57:21 BrennerKontakt light: off
2015-01-31_22:57:21 BrennerKontakt off
2015-01-31_22:57:39 BrennerKontakt light: on
2015-01-31_22:57:39 BrennerKontakt on
2015-01-31_22:57:44 BrennerKontakt light: off
2015-01-31_22:57:44 BrennerKontakt off
2015-01-31_22:58:02 BrennerKontakt light: on
2015-01-31_22:58:02 BrennerKontakt on
2015-01-31_22:58:07 BrennerKontakt light: off
2015-01-31_22:58:07 BrennerKontakt off

Kannst Du mir sagen was noch fehlt damit das Modul funktioniert.

Gruß
Thomas
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 01 Februar 2015, 09:25:25
Hallo the-tom,

du musst nach dem Wiki vorgehen, alte Einträge im Forum sind meist überholt.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 01 Februar 2015, 10:13:47
Hallo John,

die HoureCounter Wiki hab ich mir schon angeschaut.
Dort steht aber nicht wie ich das Modul installiere nur wo ich es herunterladen kann.
Da ich es schon nicht unter "unsorted" finde hab ich ein grundsätzlichen Fehler vermutet.

Du hast geschrieben das das Skript liefert die Funktionalitäten zu cntPerDay, cntPerDayLast usw.
Die Einträge finde ich nicht in der Log Datei und ich kann sie nicht im Plot auswählen
daher dachte ich das das Skript nicht richtig funktioniert oder installiert ist.

Kannst Du mir da bitte einen Tip geben.

Bin Neuling im umgang mit Fhem.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 01 Februar 2015, 10:39:54
Hallo the-tom,

Zitat
Dort steht aber nicht wie ich das Modul installiere nur wo ich es herunterladen kann.
Das Modul HourCounter selbst ist ja Bestandteil von FHEM, 99_UtilsHourCounter  ist optional und muss manuell installiert werden.
Das Zielverzeichnis ist das Subdirectory FHEM im fhem-Verzeichnis.
z.B bei Raspberry Pi : /opt/fhem/FHEM

Alle Dateien in diesem Verzeichnis die mit 99_Utils* beginnen werden von FHEM beim Starten automatisch geladen.
Wenn du im Menü "Edit Files " anwählst werden diese Dateien auch angezeigt.

HourCounter selbst liefert ja schon countsOverall und countsPerDay (siehe Wiki).

99_UtilsHourCounter  liefert appCountsPerDay beim Tageswechsel was deinem gewünschten "cntPerDayLast" entspricht.

Wichtig ist, daß die Skripte von den Events des Hourcounters versorgt werden.

define CN.EVENT notify <deinHourcounter>:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 01 Februar 2015, 11:21:33
Da liegt sich das Problem:

Wichtig ist, daß die Skripte von den Events des Hourcounters versorgt werden.

define CN.EVENT notify <deinHourcounter>:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

Mein Fehem.cfg Eintrag ist:
define Pelletheizung.EVENT notify BrennerKontakt:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}

denn die Einträge: countsOverall, countsPerDay stehen bei 0.

Unter DEF steht: BrennerKontakt:on:.1 BrennerKontakt:off:.0
und im Logfile:
2015-02-01_11:20:19 BrennerKontakt light: on
2015-02-01_11:20:19 BrennerKontakt on
2015-02-01_11:20:24 BrennerKontakt light: off
2015-02-01_11:20:24 BrennerKontakt off

ist der DEF-Eintrag so korrekt?



Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 01 Februar 2015, 12:02:35
@the-tom

schick bitte die definition deines Hourcounters.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 01 Februar 2015, 12:13:09
@ John:
define Pelletheizung HourCounter BrennerKontakt:onoff:.1 BrennerKontakt:onoff:.0

hab schon verschiedene Varianten ausprobiert.

Muss ich einen Dummy verwenden?
Da mein Schalter nur diese Infos ins Log schreibt:
2015-02-01_11:20:19 BrennerKontakt light: on
2015-02-01_11:20:19 BrennerKontakt on
2015-02-01_11:20:24 BrennerKontakt light: off
2015-02-01_11:20:24 BrennerKontakt off
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 01 Februar 2015, 12:20:17

@the-tom
versuch das
define Pelletheizung HourCounter BrennerKontakt:on BrennerKontakt:off
passend zu
2015-02-01_11:20:19 BrennerKontakt on
2015-02-01_11:20:24 BrennerKontakt off

Der Doppelpunkt in der Definition ist ein Separator zwischen <regexp zu device>:<regexp zu nachfolgenter Teil im Eventlog>

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: the-tom am 01 Februar 2015, 12:26:59
Hi John,
vielen Dank für die schnelle Antwort: So funktioniert es  :)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Fritz Muster am 05 Februar 2015, 20:18:25
Hallo in die Runde,

irgendwie will es mir nicht gelingen, die 99_UtilsHourCounter.pm um die Funktion "Tankinhalt" zu erweitern. Vielleicht gehe ich das Ganze zu "hemdsärmlig" an. Die Standardreadings sind alle vorhaden. Habe dann einfach die 99_UtilsHourCounter.pm um die Zeilen

my $appTankinhalt = ReadingsVal ($name,'appTankinhalt',0 )-$pulseTimePerDay*0.000722222222222;
readingsBulkUpdate ($hash, 'appTankinhalt' , $appTankinhalt);   

unter der Rubrik #dayly tasks erweitert.

Nach Shutdown und Triggern des Counters erscheint das reading aber nicht. Kann mir bitte jemand weiterhelfen?

Danke und Grüße
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Icinger am 05 Februar 2015, 21:21:31
Hast du ein "reload 99_UtilsHourCounter" oder ein "shutdown restart" gemacht, damit das Modul neu geladen wird?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Fritz Muster am 06 Februar 2015, 08:59:36
zuerst habe ich ein Shutdown restart gemacht, hat aber nichts gebracht. Danach ein reload 99_UtilsHourCounter  ( wieder was gelernt  ;)), hat aber auch nichts gebracht.

Ich Frage mich, ob es grundsätzlich der richtige Weg ist, einfach die Zeilen in die 99_UtilsHourCounter einzutragen. Oder muss noch an anderer Stelle was entsprechendes ergänzt/eimgetragen werden.

Fritz
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 06 Februar 2015, 09:06:22
@Fritz Muster
schick mal die ganze Subroutine, die du geändert hast.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: daschauher am 06 Februar 2015, 09:09:46
Hallo John,

ich habe eine Frage zu deinem Modul. Ich habe einen Lüfter im Bad mit 2 Geschwindigkeiten.
Wenn der Lüfter läuft um die Geschwindigkeit umgeschaltet wird, also quasi ein ON Befehl kommt obwohl noch ein anderer aktiv ist, zählt der Zähler eins weiter. Und das möchte ich in diesem Fall vermeiden.
Hier meine Konfig:
OG_Luefter_BAD_langsam:on|OG_Luefter_BAD_schnell:on OG_Luefter_BAD_langsam:off|OG_Luefter_BAD_schnell:off
Ich würde das jetzt über ein Dummy lösen, welches den Zähler auslöst.
Die frage die ich an dich habe ist ob das auch anders geht, wie z.B. einfach nur ein attribut setzen oder so.
Oder ob du das auch mit einem Dummy lösen würdest?

Grüsse
Markus
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 06 Februar 2015, 09:20:17
Hallo Markus,
bei welchen Ereignissen wird welcher Event gefeuert ?

Welche Transitionen sind möglich ?

AUS--> Langsam
AUS--> Schnell
Langsam -> Schnell
Schnell - langsam
Langsam -> AUS
Schnell -> AUS

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: daschauher am 06 Februar 2015, 10:03:36
Ich habe so ein UP Modul mit 2 Relais Ausgängen. Davon wird ein Kontakt für die Spule der langsamen und der andere für die schnelle Geschwindigkeit benutzt.
Es gibt 4 Erreignisse:
langsam:on, schnell:on, langsam:off, schnell:off
möglich ist folgendes:
AUS--> Langsam (-> Zählen)
AUS--> Schnell (-> Zählen)
Langsam -> Schnell  (-> NICHT Zählen)
Schnell -> langsam (-> NICHT Zählen)
Langsam -> AUS (Schnell noch an, da Langsam -> Schnell) (-> NICHT Zählen)
Langsam -> AUS (Schnell ist aus) (-> Zählen)
Schnell -> AUS (Langsam noch an, da Schnell-> Langsam ) (-> NICHT Zählen)
Schnell -> AUS (Langsam ist aus) (-> Zählen)

Aber wie gesagt wenn sowas im Modul nicht vorhanden ist und auch keinen sinn macht, leg ich mir ein dummy  und ein par if anweisungen an. wollte nur wissen ob es bereits einen eleganteren weg gibt.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 06 Februar 2015, 11:32:22
Zitat
..leg ich mir ein dummy  und ein par if anweisungen an..
Halte ich auch für den besten Weg.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: daschauher am 06 Februar 2015, 11:35:01
Super. danke für die Info  ;)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Fritz Muster am 06 Februar 2015, 16:08:51
@John

hier der Auszug aus meiner Subroutine

# --------------------------------------------------
# dayly tasks
sub appHC_OnDay($$$)
{
   my ($name,$part0,$part1) = @_;  # name objects, name des parameters, wert des parameters
   $part0='' if (!defined($part0));
   my $hash = $defs{$name};
   return undef if (!defined ($hash));
   
   my $appCountsPerDay = ReadingsVal($name, 'countsPerDay',0);
   my $pulseTimePerDay = ReadingsVal($name, 'pulseTimePerDay',0);
   
   #HourCounter_Log $hash, 2, "pulseTimePerDay:$pulseTimePerDay";   
       
   my $appOpHoursPerDay  = $pulseTimePerDay/3600;
   my $appOpHoursPerWeekTemp = ReadingsVal ($name,'appOpHoursPerWeekTemp',0 )+$appOpHoursPerDay;
   my $appOpHoursPerMonthTemp =ReadingsVal ($name,'appOpHoursPerMonthTemp',0 )+$appOpHoursPerDay;
   my $appOpHoursPerYearTemp  =ReadingsVal ($name,'appOpHoursPerYearTemp',0 )+$appOpHoursPerDay;
   my $appTankinhalt = ReadingsVal ($name,'appTankinhalt',0 )-$pulseTimePerDay*0.000722222222222;
   my $appUtilizationTempOld = ReadingsVal ($name,'appUtilizationTempOld',0 );
     
   readingsBeginUpdate($hash);
   
   readingsBulkUpdate ($hash, 'appCountsPerDay'       , $appCountsPerDay);
   readingsBulkUpdate ($hash, 'appOpHoursPerDay'      , $appOpHoursPerDay);
   readingsBulkUpdate ($hash, 'appOpHoursPerDayTemp'  , 0);
   
   readingsBulkUpdate ($hash, 'appOpHoursPerWeekTemp' , $appOpHoursPerWeekTemp);
   readingsBulkUpdate ($hash, 'appOpHoursPerMonthTemp', $appOpHoursPerMonthTemp);
   readingsBulkUpdate ($hash, 'appOpHoursPerYearTemp' , $appOpHoursPerYearTemp);
   readingsBulkUpdate ($hash, 'appTankinhalt' , $appTankinhalt);
   readingsBulkUpdate ($hash, 'appUtilization', $appUtilizationTempOld);   
   
   readingsEndUpdate( $hash, 1 );   
}

Grüße Fritz
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Fritz Muster am 06 Februar 2015, 16:14:10
@John

Kommando zurück, es funktioniert. Weiß zwar nicht warum, aber erstmal egal. Ich vermute allerdings, das es mit der Dauer des Triggerns zusammenhängt. In meiner Testumgebung habe ich den Trigger immer nur sehr kurz betätigt, <1sek. Jetzt habe ich den Trigger mehrere Minuten betätigt und schwubs war das reading da.

An Alle mit gleicher Fragestellung wie ich sie hatte: JA, um die 99_UtilsHourCounter.pm zu erweitern muss lediglich in der Datei selbst die Erweiterung gemacht werden.

Danke und Grüße Fritz
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Cihan am 17 Februar 2015, 19:31:40
Hallo John. Ich habe mir gerade den Wikipediaartikel zu Hourcounter durchgelesen.

Ich habe bei mir einen Zähler eingerichtet der Gasverbrauch heisst. Dieser zählt auch.
Jetzt steht im Wiki Artikel folgendes.

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

Spätestens nach einer steigenden und einer fallenden Flanke sind die zuvor genannten app*-Readings zu sehen.

muss ich statt CN.EVENT einfach Gasverbrauch hinschreiben? Das .EVENT irritiert mich ein bisschen.

Danke.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 17 Februar 2015, 19:59:38
Hallo Cihan,

define CN.EVENT notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
Im einzelnen:

CN.EVENT :  ist einfach der Name des Noity's und kann beliebig festgelegt werden.

CN\..*:tick.* : Damit haben viele Probleme, daher  folgende Erkärung:

Bei jedem Notify muss man ja festlegen, was gefiltert werden soll um Informationen aus dem Event an das nachfolgende Skript weiterzuleiten.
Alles was man im Event-Monitor sieht sind Events, die als potentieller Input zur Verfügung stehen.
Wir wollen hier ganz bestimmte filtern, nämlich diejenigen, die von Objekte des Typs Hourcounter kommen und hier interessiert uns
eigentlich nur das Reading "tick".

Alle Hourcounter in meiner FHEM-Config beginnen mit CN.<irgendwas> z.B. CN.Brenner zählt bei mir die Brenner-Starts.

Ein Notify-Filter ist immer so aufgebaut

     <regexp für FHEM Objekte>:<regexp für Readings>

Der Doppelpunkt ist also der Separator zwischen den beiden RegExps.
Damit haben wir
CN\..* für die Objektnamen
und
tick.* für die Readings

Ein paar Regexp-Grundlagen:
. ist ein Platzhalter für ein beliebiges Zeichen
* bedeutet das Zeichen kann 0..n Mal wiederholt werden
\ ist ein Escaper und bedeuetet, daß das folgendzeichen nicht als Regexp-Steuerzeichen interpretiert werden darf

CN\..*  filtere die Events von allen FHEM-Objekten, deren Name mit "CN." beginnt
und
tick.*  filtere die Events deren Reading-Name mit tick beginnt.

Es müssen also beide Bedingungen gleichzeitig zutreffen, damit das Event an das nachfolgende Skript weitergeleitet wird.

Da nun dein Hourcounter "Gasverbrauch" heisst, wird dieser Notify keinen Treffer haben.

Deine Hausaufgabe ist nun aus dem zuvor Erklärten einen korrekten Notify zu entwerfen.


John


Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Cihan am 17 Februar 2015, 21:55:05
John du bist mein Held heute!

Ich habe meine zwei Counter umbenannt in CN.* so wie du. Erscheint mir für die Zukunft besser.
Jetzt habe ich die Extrawerte.

(http://fs2.directupload.net/images/150217/suj9het8.jpg)

Jetzt sehe ich aber, das das Modul wohl für ein Reed Kontakt ausgelegt ist. Und ich aber über die Laufzeit den Verbrauch berechne.

John kannst du nochmal gucken? Im Wiki sind viel mehr Werte angegeben, als ich hab.

(http://fs1.directupload.net/images/150217/pqux358g.jpg)
(http://fs1.directupload.net/images/150217/u32hpv22.jpg)
appOpHoursPerWeek, appOpHoursPerMonth

Kann es sein, das die erst erscheinen wenn die Woche etc. um sind?
Edit:

Es stimmt ich habe mit force einen Jahreswechsel verursacht und die Sachen erscheinen. Top!
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: harry57 am 19 Februar 2015, 11:29:24
Hi,
ich habe eine kleine Frage : Ich bilde mir ein, dass der Wochenzähler appOpHoursPerWeek nicht auf 0 gesetzt wurde sobald eine neue Woche begonnen hat sondern erst erneuert wurde, wenn die woche um ist..... d.h. man konnte eine Woche zurückschauen, was super ist :)

Zumindest bei mir macht der Zähler das so - und  ist damit anders als der Monatscounter - der gibt den 0 Wert nicht aus, sondern lässt den Wert drin...

Oder hab ich einen Fehler in meine config gebastelt und/oder meine Logfiles sind daher falsch ??


Danke

Harry
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 14 März 2015, 20:20:25
Hallo,


irgendwie ist gestern FHEM abgestürzt, und hat scheinbar die fhem.save zerschossen. Jetzt sind fast alle Readings zum HourCounter meiner Heizung zurückgesetzt. Einzig der Gesamtverbrauch seit Start des HourCounters ist erhalten geblieben.
Wie kann man die Daten hierzu noch rekonstruieren ? Log-Dateien sind noch da...


Lg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: strippo am 21 April 2015, 14:19:44
Hallo,
Mit dem HourCounter Modul habe ich ein Smartmeter B+G E-t Tech mit einem S0 Interface in Betrieb genommen. Als "Vorschaltmodul" zum Abfragen der Raspi Pins ist das Modul RPI-GPIO im Einsatz. Funktioniert soweit sogut.
In Analogie möchte ich nun einen zweiten Zähler (Ferrariszähler) mit einem USB Lesekopf aus dem Volkszählerprojekt (Udo) zusätzlich anschliessen. Auch wieder mit HourCounter.
Welches "Vorschaltmodul" eignet sich für die Impulsaufnahme über USB ??
Übergangsweise habe ich das Problem mit dem modifizierten 74_S0Counter.pm
(http://forum.fhem.de/index.php?topic=14807.0)
provisorisch gelöst. Gibt es noch eine mir unbekannte professionellere Lösung?
Danke
Strippo
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 21 April 2015, 20:20:18
kennst Du das ?
http://www.fhemwiki.de/wiki/SMLUSB (http://www.fhemwiki.de/wiki/SMLUSB)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: strippo am 22 April 2015, 21:51:00
ja, danke, das kenne ich. SMLUSB unterstützt  aber ein Protokoll, das aus einem Elektrozähler den gesamten Zählerstand etc. ausliest (Zumindest habe ich das so verstanden). Ich suche aber nur ein Modul, das die Zählimpulse einer Scheibe eines Ferrariszähler per USB überträgt und dem Modul HourCounter zur Verfügung stellt.
Trotzdem Danke
Strippo
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: satprofi am 24 April 2015, 12:08:29
wie kommt ihr zu den readings "appCountsperWeek" ?

bei mir fängts erst ab zeile "clearDate" an  :-\
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: raspklaus am 30 August 2015, 16:16:44
Welches Koppelrelais kann man für die Heizungsanbindung nehmen ?

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 30 August 2015, 18:51:12
Darauf gibt es keine pauschale Antwort.

Die Auswahl des Relais hängt von den elektischen Eigenschaften des Signals ab, welches du auskoppeln willst.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: raspklaus am 30 August 2015, 19:51:35
Ich suche eines für die Heizungsauswertung aus Antwort 6 hier im Threat
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Omega am 15 September 2015, 18:02:18
Hallo zusammen,

ich habe seit einiger Zeit einen HourCounter, der meinen Gasverbrauch (per Read-Kontakt) auswertet.
Die verwendeten Definitionen:
define Gasverbrauch HourCounter GPIOGaszaehler:on GPIOGaszaehler:off
define FileLog_Gasverbrauch FileLog ./log/Gasverbrauch-%Y-%m.log Gasverbrauch:countsOverall:.*|Gasverbrauch:countsPerDay:.*|Gasverbrauch:state:.*
Das funktioniert auch einwandfrei, ich kann für meine Heizung den kompletten Gasverbrauch (sowohl für’s Heizen als auch für die Warmwasseraufbereitung) ermitteln.

Jetzt habe ich festgestellt, dass ich bei meiner Heizung auch den Status der Speicherladepumpe abfragen kann. Die läuft nur, wenn die Heizung die Warmwasseraufbereitung durchführt.
Mein Gedanke dazu: zusätzlich eine separate Auswertung des Gasverbrauchs zur Warmwasseraufbereitung.

Ich habe zuerst einen Dummy definiert, der nur dann „on“ sein soll, wenn die Speicherladepumpe läuft UND der GPIO-Kontakt den Status wechselt (habe aber noch nicht testen können, ob der auch so funktioniert. Die nächste WW-Aufbereitung ist erst morgen).

define d.WW_GasZaehler dummy
attr d.WW_GasZaehler setList state:ON,OFF
attr d.WW_GasZaehler userReadings onoff {((ReadingsVal("Vitocrossal","Speicherladepumpe",0) eq "on") && (ReadingsVal("GPIOGaszaehler","state",0) eq "on"))?1:0;; }

Danach habe ich einen 2. HourCounter definiert, der auf meinen Dummy lauschen soll:
define WW_Gasverbrauch HourCounter d.WW_GasZaehler:onoff:.1 d.WW_GasZaehler:onoff:.0

Wenn ich gleich danach einen shutdown restart mache, habe ich folgendes Phänomen:
Im Filelog Gasverbrauch-2015-09.log habe ich zusätzlich zu den normalen Einträgen (Gasverbrauch *) folgende Einträge (WW_Gasverbrauch *).
2015-09-15_16:22:20 Gasverbrauch countsPerDay: 147
2015-09-15_16:22:20 Gasverbrauch countsOverall: 3729573
2015-09-15_17:32:20 WW_Gasverbrauch countsPerDay: 0
2015-09-15_17:33:02 Gasverbrauch countsPerDay: 147
2015-09-15_17:33:02 Gasverbrauch countsOverall: 3729573
2015-09-15_17:33:11 WW_Gasverbrauch countsPerDay: 0

Mein normales Log zu diesem Restart sieht so aus:
2015.09.15 17:32:42 3: [UtilsHourCounter] Init Done with Version 1.0.1.0 - 10.12.2014 (john)
2015.09.15 17:32:42 1: Including fhem.cfg
2015.09.15 17:32:42 3: telnetPort: port 7072 opened
2015.09.15 17:32:42 3: WEB: port 8083 opened
2015.09.15 17:32:42 3: WEBphone: port 8084 opened
2015.09.15 17:32:42 3: WEBtablet: port 8085 opened
2015.09.15 17:32:43 2: eventTypes: loaded 337 events from ./log/eventTypes.txt
2015.09.15 17:32:43 3: HourCounter HourCounter Initialize.220 Init Done with Version 1.0.1.2 - 24.12.2014
2015.09.15 17:32:43 0: HourCounter Gasverbrauch Define.228 parameters: Gasverbrauch HourCounter GPIOGaszaehler:on GPIOGaszaehler:off
2015.09.15 17:32:54 3: VCONTROL: Define open DATEI 'VScotHO1.cfg'
2015.09.15 17:32:54 3: VCONTROL: open DATEI 'VScotHO1.cfg'
2015.09.15 17:32:54 3: VCONTROL: DATEI 'VScotHO1.cfg' refreshed
2015.09.15 17:32:54 3: VCONTROL opening VCONTROL device /dev/ttyUSB0
2015.09.15 17:32:54 3: VCONTROL opened VCONTROL device /dev/ttyUSB0
2015.09.15 17:32:54 3: VCONTROL: Initialization
2015.09.15 17:32:56 3: FHEM2FHEM opening CT_fhem at 192.168.0.24:7072
2015.09.15 17:32:56 3: FHEM2FHEM device opened (CT_fhem)
2015.09.15 17:32:56 0: HourCounter WW_Gasverbrauch Define.228 parameters: WW_Gasverbrauch HourCounter d.WW_GasZaehler:onoff:.1 d.WW_GasZaehler:onoff:.0
2015.09.15 17:32:56 1: Including ./log/fhem.save
2015.09.15 17:32:56 1: usb create starting
2015.09.15 17:32:56 3: Probing CUL device /dev/ttyAMA0
2015.09.15 17:32:57 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.09.15 17:32:57 3: Probing FRM device /dev/ttyAMA0
2015.09.15 17:33:02 1: usb create end
2015.09.15 17:33:02 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.09.15 17:33:02 0: Featurelevel: 5.6
2015.09.15 17:33:02 0: Server started with 82 defined entities (version $Id: fhem.pl 9195 2015-09-03 07:23:40Z rudolfkoenig $, os linux, user fhem, pid 20979)
2015.09.15 17:33:02 0: HourCounter Gasverbrauch Run.598 first run done countsOverall:3729573
2015.09.15 17:33:11 0: HourCounter WW_Gasverbrauch Run.598 first run done countsOverall:0

Mein Problem mit diesen Einträgen ist, dass die WW_Gasverbrauch-Einträge meinen Plot „kaputtmachen“.


Meine Fragen:
Warum erscheinen die WW_Gasverbrauch-Einträge in diesem Log (Gasverbrauch-2015-09.log)? Ich habe für WW_Gasverbrauch noch gar kein Log definiert. Das wäre doch erst der nächste Schritt. Und ich möchte die Daten in einem separaten Logfile haben.

Was muss ich richtigerweise machen, damit zusätzlich zum Gesamtverbrauch auch der WW_Gasverbrauch ausgewertet werden kann?

Danke für eure Unterstützung
Holger

Nachtrag:
Auch nach jedem Stundenwechsel habe ich einen Eintrag
2015-09-15_18:00:00 WW_Gasverbrauch countsPerDay: 0

Im Log.
Den HourCounter habe ich daher erst einmal wieder gelöscht.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 15 September 2015, 18:57:13
Hallo Holger,

die Ursache für dein Problem ist in der Definition des FileLogs zu finden.
define FileLog_Gasverbrauch FileLog ./log/Gasverbrauch-%Y-%m.log Gasverbrauch:countsOverall:.*|Gasverbrauch:countsPerDay:.*|Gasverbrauch:state:.*

Hilfreich zum testen von Regular Expressions ist diese Seite https://regex101.com/ (https://regex101.com/)

Damit wird schnell klar, daß "'WS_Gasverbrauch" auch mit dem Filter matched, was nun alles erklärt.

Anbei der Screenshot mit deinem Fall.

(http://forum.fhem.de/index.php?action=dlattach;topic=12216.0;attach=37238)

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Omega am 15 September 2015, 20:00:26
Hallo John,

danke für deine schnelle Hilfe (umd für das tolles Modul  :) ).

Ich merke, das mein Verständnis für Regular Expressions maximal rudimentär ist. Gelesen habe ich das bisher immer so, dass z.B. Gasverbrauch:state: konstant ist und durch den Filter ".*" nur das abgefragt wird, was danach kommt (also z.B. on, off, 0 oder 1).

Aber da muss ich wohl durch (den Knoten in meinem Hirn lösen).

Nochmals danke!
Holger
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: justme1968 am 15 September 2015, 20:15:25
hallo john,

ich habe vor ein paar tagen mehrere hourcounter in betrieb genommen um in einer klimaanlagen installation den stromverbrauch des aussengerätes auf die 16 innengeräte umzulegen. das dies nur ein näherungswert ist klar...

aber ich habe jetzt das problem das im log mehrfach und bei unterschiedlichen geräten der pulseTimePerDay des vortages noch ein mal eine sekunde nach mitternacht geloggt wird. das führt natürlich dazu das die tägliche auswertung komplett falsch ist.

hast du eine idee wie ich der ursache auf den grund gehen kann?

kann es sein das bei einer unglücklichen blockade von fhem genau um mitternacht der wert noch mal falsch geschrieben wird statt den counter zurück zu setzen?

gruss
  andre
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 15 September 2015, 20:26:43
Hallo Andre,

ich benötige einen Auszug aus dem FileLog, damit ich das besser nachvollziehen kann.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: justme1968 am 15 September 2015, 20:38:28
ich verwende dblog. anbei ein log auszug von einem der fehlerhaften devices rund um mitternacht. wenn du mehr brauchst sag bescheid. an den countsPerDay und pulseTimePerDay sieht man es gut. eine sekunde nach mitternacht kommt kommt jeweils noch mal der wert vom vortag und zwei sekunden nach mitternacht kommt dann der auf 0 gestellte wert.

gruss
  andre

sqlite> select * from history where DEVICE  = 'hc015' and TIMESTAMP >= '2015-09-14 23:00:00' AND TIMESTAMP < '2015-09-15 01:00:01';
2015-09-14 23:00:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-14 23:15:01|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-14 23:30:01|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-14 23:45:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-15 00:00:01|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-15 00:15:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-15 00:30:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-15 00:45:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-15 01:00:00|hc015|HOURCOUNTER|countsOverall: 9|countsOverall|9|
2015-09-14 23:00:00|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:15:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:30:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:45:00|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-15 00:00:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-15 00:00:02|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 00:15:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 00:30:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 00:45:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 01:00:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pauseTimeEdge: 1318|pauseTimeEdge|1318|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pauseTimeIncrement: 20591|pauseTimeIncrement|20591|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pauseTimeIncrement: 21492|pauseTimeIncrement|21492|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pauseTimeIncrement: 22392|pauseTimeIncrement|22392|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pauseTimeIncrement: 23291|pauseTimeIncrement|23291|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pauseTimeIncrement: 24192|pauseTimeIncrement|24192|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pauseTimeIncrement: 25091|pauseTimeIncrement|25091|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pauseTimeIncrement: 25991|pauseTimeIncrement|25991|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pauseTimeIncrement: 26891|pauseTimeIncrement|26891|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pauseTimeIncrement: 27791|pauseTimeIncrement|27791|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pauseTimeOverall: 531158|pauseTimeOverall|531158|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pauseTimeOverall: 532059|pauseTimeOverall|532059|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pauseTimeOverall: 532959|pauseTimeOverall|532959|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pauseTimeOverall: 533858|pauseTimeOverall|533858|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pauseTimeOverall: 534759|pauseTimeOverall|534759|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pauseTimeOverall: 535658|pauseTimeOverall|535658|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pauseTimeOverall: 536558|pauseTimeOverall|536558|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pauseTimeOverall: 537458|pauseTimeOverall|537458|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pauseTimeOverall: 538358|pauseTimeOverall|538358|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pauseTimePerDay: 81493|pauseTimePerDay|81493|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pauseTimePerDay: 82394|pauseTimePerDay|82394|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pauseTimePerDay: 83294|pauseTimePerDay|83294|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pauseTimePerDay: 84193|pauseTimePerDay|84193|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pauseTimePerDay: 85094|pauseTimePerDay|85094|
2015-09-15 00:00:02|hc015|HOURCOUNTER|pauseTimePerDay: 0|pauseTimePerDay|0|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pauseTimePerDay: 899|pauseTimePerDay|899|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pauseTimePerDay: 1799|pauseTimePerDay|1799|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pauseTimePerDay: 2699|pauseTimePerDay|2699|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pauseTimePerDay: 3599|pauseTimePerDay|3599|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pulseTimeEdge: 78|pulseTimeEdge|78|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pulseTimeIncrement: 78|pulseTimeIncrement|78|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pulseTimeOverall: 13572|pulseTimeOverall|13572|
2015-09-14 23:00:00|hc015|HOURCOUNTER|pulseTimePerDay: 1307|pulseTimePerDay|1307|
2015-09-14 23:15:01|hc015|HOURCOUNTER|pulseTimePerDay: 1307|pulseTimePerDay|1307|
2015-09-14 23:30:01|hc015|HOURCOUNTER|pulseTimePerDay: 1307|pulseTimePerDay|1307|
2015-09-14 23:45:00|hc015|HOURCOUNTER|pulseTimePerDay: 1307|pulseTimePerDay|1307|
2015-09-15 00:00:01|hc015|HOURCOUNTER|pulseTimePerDay: 1307|pulseTimePerDay|1307|
2015-09-15 00:00:02|hc015|HOURCOUNTER|pulseTimePerDay: 0|pulseTimePerDay|0|
2015-09-15 00:15:00|hc015|HOURCOUNTER|pulseTimePerDay: 0|pulseTimePerDay|0|
2015-09-15 00:30:00|hc015|HOURCOUNTER|pulseTimePerDay: 0|pulseTimePerDay|0|
2015-09-15 00:45:00|hc015|HOURCOUNTER|pulseTimePerDay: 0|pulseTimePerDay|0|
2015-09-15 01:00:00|hc015|HOURCOUNTER|pulseTimePerDay: 0|pulseTimePerDay|0|
2015-09-14 23:00:00|hc015|HOURCOUNTER|3|state|3|
2015-09-14 23:15:01|hc015|HOURCOUNTER|3|state|3|
2015-09-14 23:30:01|hc015|HOURCOUNTER|3|state|3|
2015-09-14 23:45:00|hc015|HOURCOUNTER|3|state|3|
2015-09-15 00:00:01|hc015|HOURCOUNTER|3|state|3|
2015-09-15 00:15:00|hc015|HOURCOUNTER|0|state|0|
2015-09-15 00:30:00|hc015|HOURCOUNTER|0|state|0|
2015-09-15 00:45:00|hc015|HOURCOUNTER|0|state|0|
2015-09-15 01:00:00|hc015|HOURCOUNTER|0|state|0|
2015-09-15 00:00:02|hc015|HOURCOUNTER|tickDay: 4|tickDay|4|
2015-09-14 23:00:00|hc015|HOURCOUNTER|tickHour: 82|tickHour|82|
2015-09-15 00:00:02|hc015|HOURCOUNTER|tickHour: 83|tickHour|83|
2015-09-15 01:00:00|hc015|HOURCOUNTER|tickHour: 84|tickHour|84|
2015-09-14 23:00:00|hc015|HOURCOUNTER|tickUpdated: 636|tickUpdated|636|
2015-09-14 23:15:01|hc015|HOURCOUNTER|tickUpdated: 637|tickUpdated|637|
2015-09-14 23:30:01|hc015|HOURCOUNTER|tickUpdated: 638|tickUpdated|638|
2015-09-14 23:45:00|hc015|HOURCOUNTER|tickUpdated: 639|tickUpdated|639|
2015-09-15 00:00:01|hc015|HOURCOUNTER|tickUpdated: 640|tickUpdated|640|
2015-09-15 00:15:00|hc015|HOURCOUNTER|tickUpdated: 641|tickUpdated|641|
2015-09-15 00:30:00|hc015|HOURCOUNTER|tickUpdated: 642|tickUpdated|642|
2015-09-15 00:45:00|hc015|HOURCOUNTER|tickUpdated: 643|tickUpdated|643|
2015-09-15 01:00:00|hc015|HOURCOUNTER|tickUpdated: 644|tickUpdated|644|
2015-09-14 23:00:00|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-14 23:15:01|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-14 23:30:01|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-14 23:45:00|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-15 00:00:01|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-15 00:15:00|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-15 00:30:00|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-15 00:45:00|hc015|HOURCOUNTER|value: 0|value|0|
2015-09-15 01:00:00|hc015|HOURCOUNTER|value: 0|value|0|
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 15 September 2015, 21:03:41
Hallo Andre,

die *PerDay-Werte dürfen nur 1x pro Tag kommen und zwar nach dem Tageswechsel.
Damit hat der Verbrauch den Zeitstempel des aktuellen Tages und den Wert des vergangenen.
Darüber haben wir hier schon mal diskutiert.

Hier ein Auszug meines Counters: Dieser Eintrag kommt nur 1x pro Tag vor.

Zitat
2015-09-15_00:00:01 CN.BRENNER countsPerDay: 9

Ich verstehe nicht warum diese Werte bei dir öfter am Tag auftreten.
Eigentlich sollte nur der markierte kommen.

Zitat
2015-09-14 23:00:00|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:15:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:30:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-14 23:45:00|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3|
2015-09-15 00:00:01|hc015|HOURCOUNTER|countsPerDay: 3|countsPerDay|3| <---
2015-09-15 00:00:02|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 00:15:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|
2015-09-15 00:30:00|hc015|HOURCOUNTER|countsPerDay: 0|countsPerDay|0|

Kann es sein, daß du forceDayChange manipulierst ?

Das Kriterium für das feuern des Events in Zeile 550:
  my $isDayChanged      = ( $sdRoundDayCurTime != $sdRoundDayValue ) || $hash->{helper}{forceDayChange};Entweder hat sich der Tag seit der letzten Ausgabe geändert, oder forceDayChange ist aktiv.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: justme1968 am 15 September 2015, 21:19:01
ich habe für alle hourcounter interval 15 gesetzt.

das mit dem zeitstempel der aktuellen tages für den wert des letzten tages ist klar.

aber wie es ausschaut beisst es sich aber mit dem intervall attribut. was ja eigentlich logisch ist. trotzdem ärgerlich. mal sehen wie man das unter einen hut bekommt.

gruss
  andre

edit: mir fällt auf die schnelle ein:
den ersten eintrag kurz nach mitternacht vordatieren. mit dblog ist das kein problem, das zeitraster so anpassen das der letzte eintrag kurz vor mitternacht geschrieben wird oder den ersten eintrag kurz nach mitternacht weg lassen.

es ist alles nicht perfekt.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: netbus am 22 Oktober 2015, 12:11:23
Hallo John,
mein HC läuft nun schon seit ein paar Monaten mit der app Erweiterung doch die appCountsPer* zählen nicht hoch. Stehen alle auf Null.
Weißt du woran das liegen kann?

define Gas.EVENT notify Gasverbrauch.*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr Gas.EVENT room Gas
define Gasverbrauch HourCounter Gaszaehler:on Gaszaehler:off
attr Gasverbrauch room Gas

Internals:
   CFGFN      /opt/fhem/FHEM/gas.cfg
   DEF        Gaszaehler:on Gaszaehler:off
   NAME       Gasverbrauch
   NR         660
   NTFY_ORDER 50-Gasverbrauch
   STATE      143
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2015-10-22 00:01:14   appCountsPerDay 298
     2015-10-22 12:00:00   appCountsPerHour 0
     2015-10-22 12:00:00   appCountsPerHourTemp 0
     2015-10-07 15:01:10   appCountsPerMonth 0
     2015-10-07 15:01:10   appCountsPerMonthTemp 0
     2015-10-18 00:01:11   appCountsPerWeek 0
     2015-10-18 00:01:11   appCountsPerWeekTemp 0
     2015-10-22 00:01:14   appOpHoursPerDay 12.8419444444444
     2015-10-22 00:01:14   appOpHoursPerDayTemp 0
     2015-10-07 15:01:10   appOpHoursPerMonth 50532.9975
     2015-10-22 00:01:14   appOpHoursPerMonthTemp 225.849444444444
     2015-10-18 00:01:11   appOpHoursPerWeek 130.338611111111
     2015-10-22 00:01:14   appOpHoursPerWeekTemp 69.4577777777778
     2015-10-22 00:01:14   appUtilization  0
     2015-10-22 12:09:22   countsOverall   7983
     2015-10-22 12:09:22   countsPerDay    143
     2015-10-22 12:09:22   pauseTimeEdge   20
     2015-10-22 12:09:22   pauseTimeIncrement 20
     2015-10-22 12:09:22   pauseTimeOverall 180548100
     2015-10-22 12:09:22   pauseTimePerDay 2828
     2015-10-22 12:09:22   pulseTimeEdge   56
     2015-10-22 12:09:22   pulseTimeIncrement 9601
     2015-10-22 12:09:22   pulseTimeOverall 184814105
     2015-10-22 12:09:22   pulseTimePerDay 40297
     2015-10-22 12:09:22   state           143
     2015-10-22 09:19:59   tickChanged     980
     2015-10-22 12:09:22   tickDay         0
     2015-10-22 12:09:22   tickHour        0
     2015-10-22 12:09:22   tickMonth       0
     2015-10-22 12:09:22   tickUpdated     91
     2015-10-22 12:09:22   tickWeek        0
     2015-10-22 12:09:22   tickYear        0
     2015-10-22 12:09:22   value           1
   Helper:
     OFF_Regexp Gaszaehler:off
     ON_Regexp  Gaszaehler:on
     calledByEvent
     changedTimestamp 2015-10-22 12:09:22
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1445508000
     value      -1
     cmdQueue:
Attributes:
   room       Gas
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 22 Oktober 2015, 21:13:23
Hallo netbus,

verwendest du die aktuelle 99_UtilsHourCounter.pm ?
Zitat
my $UtilsHourCounter_Version="1.0.1.0 - 10.12.2014 (john)";

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: netbus am 22 Oktober 2015, 21:46:40
Ich denke schon. 1.0.1.0 ist die die auf github liegt
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 27 Oktober 2015, 00:13:04
Hallo,

von meinem Pelletofen bekomme ich die Laufzeit der Pelletschnecke in Fhem und werte diese mit dem HourCounter aus. Das funktioniert soweit auch. Die Werte der Pelletstarts sind recht hoch, wiel ich viele Impulse der Schneckenstarts habe.

Jedoch bekomme ich keine Tagesanzeige (appOpHoursPerDayTemp) und die Tankanzeuge will auch nicht rechnen ?!
Ich stecke hier ein wenig fest und weis nicht was falsch läuft. Vielleicht kann mir jemand einen Tipp geben.
Achso... ich bin nach dem Wiki und diesem Threat vorgegangen.

Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 27 Oktober 2015, 19:46:04
Hallo Jens,

stell bitte die Ausgabe von folgende Befehl hier rein:
list <DeinHourCounterName>
Sehe ich das richtig, daß dein Pellet-Ofen dann Impulse erzeugt, wenn er gerade läuft ?
Jeder Impuls entspricht dann einer bestimmten Menge an Brennstoff ?

Wenn ja, so macht es keinen Sinn die aggregierte Impulszeit für den Verbrauch zu verwenden.
Einzig die Anzahl der Impulse wäre hier maßgeblich.

Der HourCounter geht davon aus, daß der ON-Zustand bedeutet, die Anlage ist aktiv, der OFF-Zustand die Anlage ist inaktiv.

Welche Version hat deine  99_UtilsHourCounter ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 27 Oktober 2015, 22:16:48
Hallo John,

am Pelletschneckenmotor habe ich ein Relais angeschlossen und bekomme somit die Betriebsstunden (Laufzeit) der Schnecke mit. Den Pelletverbrauch pro Stunde habe ich ermittelt. d.h. die Anzahl der Impulse sind egal die Häufigkeit, wie oft der Ofen angeht bekomme ich von der Anforderung der Solaranlage mit. Diese schaltet den Ofen bei Bedarf Ein und Aus.

Die Version des  UtilsHourCounter ist 1.0.1.0 - 10.12.2014 (john)

Internals:
   DEF        Pelletschnecke:off Pelletschnecke:on
   NAME       PelletsCounter
   NR         214
   NTFY_ORDER 50-PelletsCounter
   STATE      4573
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2015-10-27 00:00:00   appCountsPerDay 3002
     2015-10-27 22:00:00   appCountsPerHour 0
     2015-10-27 22:00:00   appCountsPerHourTemp 0
     2015-10-25 00:00:01   appCountsPerWeek 0
     2015-10-25 00:00:01   appCountsPerWeekTemp 0
     2015-10-27 00:00:00   appOpHoursPerDay 3.22916666666667
     2015-10-27 00:00:00   appOpHoursPerDayTemp 0
     2015-10-27 00:00:00   appOpHoursPerMonthTemp 24.121388888889
     2015-10-25 00:00:01   appOpHoursPerWeek 17.4780555555556
     2015-10-27 00:00:00   appOpHoursPerWeekTemp 6.64333333333334
     2015-10-27 00:00:00   appOpHoursPerYearTemp 24.121388888889
     2015-10-22 00:32:00   appTanklevel    3400
     2015-10-27 00:00:00   appUtilization  0
     2015-10-19 23:25:26   clearDate       2015-10-19 23:25:26
     2015-10-27 22:00:00   countsOverall   30424
     2015-10-27 22:00:00   countsPerDay    4573
     2015-10-27 22:00:00   pauseTimeEdge   0
     2015-10-27 22:00:00   pauseTimeIncrement 5149
     2015-10-27 22:00:00   pauseTimeOverall 551821
     2015-10-27 22:00:00   pauseTimePerDay 54550
     2015-10-27 22:00:00   pulseTimeEdge   2
     2015-10-27 22:00:00   pulseTimeIncrement 2
     2015-10-27 22:00:00   pulseTimeOverall 128041
     2015-10-27 22:00:00   pulseTimePerDay 24621
     2015-10-27 22:00:00   state           4573
     2015-10-27 20:34:11   tickChanged     704
     2015-10-27 00:00:00   tickDay         1
     2015-10-27 22:00:00   tickHour        27
     2015-10-26 19:58:22   tickMonth       0
     2015-10-27 22:00:00   tickUpdated     100
     2015-10-26 19:58:22   tickWeek        0
     2015-10-26 19:58:22   tickYear        0
     2015-10-27 22:00:00   value           0
   Helper:
     OFF_Regexp Pelletschnecke:on
     ON_Regexp  Pelletschnecke:off
     calledByEvent
     changedTimestamp 2015-10-27 22:00:00
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1445979600
     value      0
     cmdQueue:
Attributes:
   room       Heizung
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 28 Oktober 2015, 08:44:13
Hallo Jens

da fehlen noch viele weitere Readings.

Zeig mir noch das Notify, mit dem du den Aufruf von appHCNotify triggerst.

gamäß Wiki:
define CN.EVENT notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
Der RegExp  CN\..*:tick.* muss natürlich auf deine Bedürfnisse ausgelegt werden.

oder

du belässt es so wie dargestellt und benennst deinen Counter um in CN.PelletsCounter.

siehe
http://www.fhemwiki.de/wiki/HourCounter#F.C3.BCr_Anf.C3.A4nger_die_noch_keine_Erfahrungen_mit_Regular_Expressions_haben: (http://www.fhemwiki.de/wiki/HourCounter#F.C3.BCr_Anf.C3.A4nger_die_noch_keine_Erfahrungen_mit_Regular_Expressions_haben:)

John

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 28 Oktober 2015, 12:42:40
Hallo John,

da werde ich wohl den Counter umbenennen. Mir hatte CN. vor dem Namen nicht gefallen.... macht ja aber wohl doch sehr viel sinn.
Werde es heute Abend zu hause ausprobieren.

Ansonsten ein Dickes Lob. Schnelle Hilfe und Top-aktuell. incl. Wiki Anpassung  ;D

Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 31 Oktober 2015, 23:33:52
Hi,

Nach einer Neuinstallation sind die Daten ja alle leer, ich habe die logfiles,  wie kann ich diese einlesen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 02 November 2015, 18:05:14
hat keiner eine Idee, wie ich die ein Jahr alten Daten alle wieder einspielen kann.

Gesendet von meinem SGP771 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 02 November 2015, 18:30:29

Zitat
Nach einer Neuinstallation sind die Daten ja alle leer, ich habe die logfiles,  wie kann ich diese einlesen?

Ich vermute mal, du willst die Readings wiederherstellen.

In der Datei ./log/fhem.save werden alle Readings von FHEM gespeichert.
Wenn du diese gesichert hast, sollte es gelingen die Readings zu restaurieren.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 02 November 2015, 18:33:05
die habe ich auch und alles per FTP wieder drauf gespielt.  Aber leider nichts,  Kann man das nicht irgendwie anschubsen?

Gesendet von meinem SGP771 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 02 November 2015, 18:37:12
vermutlich sind die Zugriffsrechte der kopierten Dateien "verbogen".
Das passiert mir auch, wenn ich via SSH Files kopieren, dann müssen die Rechte angepasst werden.
Hast du das kontrolliert ?

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: Jewe am 02 November 2015, 20:37:40
Hallo,

ich würde gerne meinen Tankinhalt automatisch berechnen lassen. Dabei bin ich auf diesen Beitrag gestossen :
Der Tankinhalt wird im Modul 99_UtilsHourCounter_CE einmal am Tag (bei Tageswechsel) berechnet.
Zeile 143:my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.000630901964;

Aber wenn ich das Modul "99_UtilsHourCounter" bearbeite dann kann es doch sein, dass bei einem update die Änderungen
im Modul überschrieben werden.

Kann ich das nicht auch anders machen ??

Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 02 November 2015, 20:52:03
Hallo Jens,

pack es doch in "99_myUtils.pm" oder leg doch ein userreading an !
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: netbus am 04 November 2015, 09:28:53
Hallo John,
Nach einem Stromausfall musste ich feststellen das alle Readings verloren gingen.
Gibt es eine Möglichkeit die zu speichern?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 04 November 2015, 09:36:55

Hab das bereits einige Beträge vorher beschrieben.
Zitat
In der Datei ./log/fhem.save werden alle Readings von FHEM gespeichert.
John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: netbus am 04 November 2015, 22:05:02
was heißt das dann wenn nach einem reboot diese werte nicht im HC erscheinen?
Muss ich sie händisch eintragen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 04 November 2015, 22:07:18
Hast Du gem. Wiki auch die Logfiles angelegt ? Dann könntest Du daraus auch die Readings händisch füllen
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 04 November 2015, 22:07:31
kann man die alten Logs nicht ohne die fhem.save wieder herstellen?


Gesendet von meinem SGP771 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: netbus am 04 November 2015, 22:12:20
Hast Du gem. Wiki auch die Logfiles angelegt ? Dann könntest Du daraus auch die Readings händisch füllen
Filelog für den HC existiert!
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 07 November 2015, 00:17:13
Wie füllt man den die readings händisch
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: jnewton957 am 07 November 2015, 08:22:35
Ich habe einen meiner S0 Stromzähler jetzt mit hourCounter und der Erweiterung 99_UtilsHourCounter laufen.

So weit so gut.

Danke für die Hilfe.

Ich schaue mir das mal ein paar Tage an uns sehe dann weiter, ob ich zum ArduCounter oder den Arduino firmata noch wechsle.
Grüße

Jörg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: jnewton957 am 07 November 2015, 08:24:50
Wie füllt man den die readings händisch

z.B. in der Kommandozeile:    set appCountsPerYearWatt 5000  also set <reading> <Wert>


Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 07 November 2015, 23:13:08
Hmmmm,

Woher weiss ich denn zu welchem Zeitpunkt welche readings ich benötige?  Es musste doch irgendwie möglich sein, die alten logfiles einlesen zu lassen
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 26 November 2015, 22:21:10
Hallo,
am 23.11. habe ich ein Fhem Update gemacht auf die Version $Id: fhem.pl 9965 2015-11-22 11:31:56Z rudolfkoenig $. Seitdem wird das LogFile des HourCounters nicht mehr geschrieben. Was ist da passiert ? Was muss ich machen, dass es wieder funktioniert ?

Danke, Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 29 November 2015, 20:59:40
Hi,
jetzt habe ich mal "attr global featurelevel 5.6" eingetragen um zu sehen ob es mit der Version 5.7 und den Änderungen was zu tun hat und es hat was damit zu tun.
Hat sonst niemand damit probleme, oder noch keiner auf Fhem 5.7 upgedated ?
Jens

Ergänung: Hatte im Notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");}
das hab ich nun ersetzt mit CN\..*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");}
und jetzt geht es wieder.

:-)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 30 November 2015, 01:10:04
Hi Jens,
danke für den Hinweis, habe noch 5.6 und wollte auf 5.7 updaten  ;)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 30 November 2015, 10:07:47
Ich habe das selbe Problem seit dem 23.11.
Die Änderung von   CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");}
auf CN\..*:tick.* { appHCNotify("$NAME","%EVTPART0","%EVTPART1");}
hat nichts gebracht.

Hab wieder die "alte" Version drauf.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: mi.ke am 30 November 2015, 10:10:53
Ich habe das selbe Problem seit dem 23.11.
Die Änderung von   CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");}
auf CN\..*:tick.* { appHCNotify("$NAME","%EVTPART0","%EVTPART1");}
hat nichts gebracht.

Hab wieder die "alte" Version drauf.

Möglicherweise liegt's daran . . .!?!   8)
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: bert am 30 November 2015, 11:53:04
Sieht so aus als wäre es das gewesen. Es wundert mich nur das es mit den % über 1 Jahr funktionierte.

Gruß Bert
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 30 November 2015, 21:36:12
Ergänung: Hatte im Notify CN\..*:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");}
das hab ich nun ersetzt mit CN\..*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");}
und jetzt geht es wieder.

:-)

Hi, habs nochmal angepasst... War noch ein Fehler drin:
CN\..*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");}

Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Fritz Muster am 01 Dezember 2015, 12:52:09
@bert

Zitat
Sieht so aus als wäre es das gewesen. Es wundert mich nur das es mit den % über 1 Jahr funktionierte.

Hier findest Du die Antwort.

http://forum.fhem.de/index.php/topic,44094.0.html (http://forum.fhem.de/index.php/topic,44094.0.html)

Grüße Fritz
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 24 Januar 2016, 11:27:03
Hallo zusammen,

hat mal jemand ein Detailbild vom Brennerstecker (B4) wo man sieht wie der Fensterkontakt angeschlossen ist?  Hat jemand schon die Lösungen mit dem Homematic SCI-3-FM umgesetzt?

Danke
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 24 Januar 2016, 19:51:16
Hallo,

sieht man im Post 5 von John.
An B4 liegt Spannng (230v) an sobald der Brenner läuft. Daran muss dann ein Relais, und dann der Fensterkontakt.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 24 Februar 2016, 10:43:50
Hallo,
Ich habe den Gaszähler von Jan versucht für meinen Pelletbrenner zu nutzen.
Installation des Reedkontaktes erfolgte über der Förderschneckenwelle.
Auf der Welle wurde ein Magnet befestigt, der den Reedkontakt schaltet.
Das entspricht der Installation am Gaszähler.
Der Brennstoffzaehler ist wie folgt definiert:
define GPIOBrennstoffzaehler RPI_GPIO 23
attr GPIOBrennstoffzaehler direction input
attr GPIOBrennstoffzaehler active_low yes
attr GPIOBrennstoffzaehler interrupt both
attr GPIOBrennstoffzaehler pud_resistor up
attr GPIOBrennstoffzaehler toggletostate yes
list GPIOBrennstoffzähler:
Internals:
   CFGFN
   DEF        23
   EXCEPT_FD  39
   NAME       GPIOBrennstoffzaehler
   NR         182
   RPI_pin    23
   STATE      on
   TYPE       RPI_GPIO
   Readings:
     2016-02-23 19:17:35   Longpress       on
     2016-02-23 19:17:34   Pinlevel        high
     2016-02-23 19:17:34   state           on
   Fhem:
     interfaces switch
Attributes:
   active_low yes
   direction  input
   interrupt  both
   pud_resistor up
   room       1.3.1 Heizraum,Unsorted
   toggletostate yes
Danach wurde der HourCounter definiert:
define Brennstoffverbrauch HourCounter GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:offlist Brennstoffverbrauch:
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       Brennstoffverbrauch
   NR         200
   NTFY_ORDER 50-Brennstoffverbrauch
   STATE      22
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-23 10:47:04   clearDate       2016-02-23 10:47:04
     2016-02-23 19:12:39   countsOverall   22
     2016-02-23 19:12:39   countsPerDay    22
     2016-02-23 19:12:39   pauseTimeEdge   31
     2016-02-23 19:12:39   pauseTimeIncrement 31
     2016-02-23 19:12:39   pauseTimeOverall 5070
     2016-02-23 19:12:39   pauseTimePerDay 5070
     2016-02-23 19:12:39   pulseTimeEdge   1721
     2016-02-23 19:12:39   pulseTimeIncrement 2227
     2016-02-23 19:12:39   pulseTimeOverall 25262
     2016-02-23 19:12:39   pulseTimePerDay 25262
     2016-02-23 19:12:39   state           22
     2016-02-23 18:35:32   tickChanged     297
     2016-02-23 00:00:00   tickDay         2
     2016-02-23 19:00:00   tickHour        56
     2016-02-21 11:27:37   tickMonth       0
     2016-02-23 19:12:39   tickUpdated     102
     2016-02-21 11:27:37   tickWeek        0
     2016-02-21 11:27:37   tickYear        0
     2016-02-23 19:12:39   value           1
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-23 19:12:39
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456250400
     value      1
     cmdQueue:
Attributes:
   event-on-change-reading .*
   room       1.3.1 Heizraum
Bis hier funktioniert es soweit.
Nun kommt aber der problematische Teil und zwar die Parameter des Gaszählers:
10Lieter = 1 Impuls
1m³       =100 Impulse = 77cent
durch meine  Parameter zu ersetzen.
Der Brennstoff wird in Säcken zu 25 kg geliefert.
0,229 kg        = 1 Impuls Umdrehung)
25 kg             = 109 Impulse (Umdrehungen)
5,83 €/Sack   = 0,233 €/kg
Definition Dummy Brennstoffverbrauch:
define BrennstoffverbrauchStd dummyDefinition Notify Brennstoffverbrauch:
efine BrennstoffverbrauchStdNoti notify Brennstoffverbrauch {

my $BrennstoffUmlaufzeit=ReadingsVal("Brennstoffverbrauch","pauseTimeEdge","0")+ReadingsVal("Brennstoffverbrauch","pulseTimeEdge","0");
my $BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

fhem("set BrennstoffverbrauchStd $BrennstoffProStdRounded");;
fhem("delete tmp_time_brennstoff");;
fhem("define tmp_time_brennstoff at +00:02:00 set BrennstoffverbrauchStd 0");;
}
list notify Brennstoffverbrauch:
Internals:
   CFGFN
   DEF        Brennstoffverbrauch {

my$BrennstoffUmlaufzeit=ReadingsVal("Brennstoffverbrauch","pauseTimeEdge","0")+ReadingsVal("Brennstoffverbrauch","pulseTimeEdge","0");
my $BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

fhem("set BrennstoffverbrauchStd $BrennstoffProStdRounded");;
fhem("delete tmp_time_Brennstoff");;
fhem("define tmp_time_Brennstoff at +00:02:00 set BrennstoffverbrauchStd 0");;
}
   NAME       BrennstoffverbrauchStdNoti
   NOTIFYDEV  Brennstoffverbrauch
   NR         1448
   NTFY_ORDER 50-BrennstoffverbrauchStdNoti
   REGEXP     Brennstoffverbrauch
   STATE      2016-02-23 19:18:33
   TYPE       notify
   Readings:
     2016-02-23 19:06:55   state           active
Attributes:
   room       1.3.1 Heizraum
Mir erschließt sich nicht, wo ich meine Werte einsetzen soll.
Die countsOverall (Umdrehungen gesamt)sowie
countsPerDay (Umdrehungen Tag) werden sauber erfasst.
Aber wo soll ich meine Werte eintragen, damit der Brennstoffverbrauch richtig angezeigt wird.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 24 Februar 2016, 15:18:50
Hallo,
Mir raucht jetzt langsam der Kopf :'( :'(
Habe mich jetzt bis Seite 17 durchgelesen. Für einen Anfänger sehr kompliziert aber hoch interessant.

Dank an alle, die sich hier eingebracht haben und ihr Wissen der Allgemeinheit zur Verfügung stellen.

Diese Zeilen hätten natürlich vor meiner Problemschilderung stehen sollen, aber 31 S. lesen  :-\ nun bin ich ja drann.
Leider habe ich bis dato noch keine Realisierung in Richtung Pellet oder Förderschnecke gefunden.
Ich habe ja noch ein paar Seiten vor mir.

Was ich aber in meiner Problematik vergessen habe ist, was ich eigentlich genau möchte.

Bei einer Umdrehung fördert die Schnecke 0,233 kg.
Das sind bei 109 Umdrehungen 25 kg
Kosten pro 25 kg = 5,83€ entspricht 0,233 €/kg
Ich möchte Folgendes  erfassen.
Verbrauch/ Kosten je Stunde,
Verbrauch/Kosten je Tag,
Verbrauch/ Kosten je Woche
Verbrauch/ Kosten je Monat
Verbrauch/ Kosten je Heizperiode Oktober- April

Kann ich das mit dem jetzt vorhandenen Ansatz realisieren?
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 24 Februar 2016, 15:38:25
Hast du dir mal das Modul GasCalculator angeschaut: http://forum.fhem.de/index.php/topic,47909.0.html? (http://forum.fhem.de/index.php/topic,47909.0.html?)

Eventuell kannst du dies ganz einfach missbrauchen.




Ich habe übrigens ein anderes Problem mit dem Modul und zwar erhalte ich zu jeder vollen Stunde falsche Werte? Danach und davor geht es problemlos?
countsOverall: 17
countsperDay: 0
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 24 Februar 2016, 18:58:05
Hallo Hauswart,
Danke für Deine Antwort.
Ich habe mir Deinen Vorschlag angesehen,
denke aber ich sollte meinen Lösungsansatz weiter verfolgen.
Zwischenzeitlich bin ich auch auf Seite 31 angekommen.
Auf Seite 29 hat jensweber ein Projekt für einen Pelletkessel
Kommentar von Jon:
Zitat
Sehe ich das richtig, daß dein Pellet-Ofen dann Impulse erzeugt, wenn er gerade läuft ?
Jeder Impuls entspricht dann einer bestimmten Menge an Brennstoff ?

Wenn ja, so macht es keinen Sinn die aggregierte Impulszeit für den Verbrauch zu verwenden.
Einzig die Anzahl der Impulse wäre hier maßgeblich.
Das ist der Punkt den ich suche. Impuls x Menge X € :o
Hallo Jon, hallo Jens,
Könnt ihr mir bitte helfen auch wenn es nicht leicht mit einem Anfänger wird.
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 24 Februar 2016, 19:03:21
Hallo John,
Bitte um Entschuldigung (h) :)
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 24 Februar 2016, 20:36:25
Hallo exot

man kann für jedes FHEM-Objekt (wie auch dem HourCounter), eigene neue Readings erzeugen.

Der Mechnaismus nennt sich UserReadings http://fhem.de/commandref.html#userReadings (http://fhem.de/commandref.html#userReadings)

Beispiel :
* du erweiterst deinen HourCounter "Brennstoffverbrauch" mit dem neuen Reading "VerbrauchInLiter"
* der Wert soll immer dann berechnet werden, wenn countsPerDay sich ändert
* die Wertzuweisung erfolgt über den Ausdruck "{ReadingsVal("Brennstoffverbrauch","countsPerDay",0)*10;;}", das sind also 10 Liter / Impuls

attr Brennstoffverbrauch userReadings VerbrauchInLiter:countsPerDay {ReadingsVal("Brennstoffverbrauch","countsPerDay",0)*10;;}
Sobald sich countsPerDay geändert hat, wirst du im HourCounter eine neues Reading mit der Bezeichnung "VerbrauchInLiter" finden.

ReadingsVal ist eine Perl-Methode mit der du ein beliebiges Reading eines beliebigen FHEM-Objektes lesen kannst.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 25 Februar 2016, 00:02:02
Hallo Exot,

ich messe die Betriebsstunden der Pelletschnecke. Dazu habe ich ein Solidstaterelais an den Pelletmotor paralell angeschlossen. Demnach verwende ich das Readings appOpHoursPerDay und berechne damit den täglichen Verbrauch für die Anzeige. Den täglichen Verbrauch ziehe ich dann von meinem Tanklevel ab und erhalte dadurch täglich den Füllstand meines Pelletlagers. Das kann natürlich auch mit den anderen appOpHoursPerMonth, appOpHoursPerWeek, appOpHoursPerYear so gemacht werden.
Userreadings dazu habe ich (noch) nicht angelegt. Ausnahme der Tanklevel.

In der 99_UtilsHourCounter.pm habe ich dazu eine Zeile eingefügt:
   my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.0007533;

Hier die readingsgroups für die Anzeige:
define Pelletsuebersicht_2 readingsGroup <>,<%time_clock> \
CN.PelletsCounter:<Laufzeiten> \
CN.PelletsCounter:<letzter&nbsp;;Zyklus>,pulseTimeIncrement \
CN.PelletsCounter:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.PelletsCounter:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.PelletsCounter:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.PelletsCounter:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.PelletsCounter:<Gesamtlaufzeit>,pulseTimeOverall
attr Pelletsuebersicht_2 alias 02 Pelletslaufzeiten
attr Pelletsuebersicht_2 group Heizung
attr Pelletsuebersicht_2 mapping &nbsp;;
attr Pelletsuebersicht_2 room Heizung
attr Pelletsuebersicht_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 Pelletsuebersicht_2 valueStyle {'style="color:green;;;;text-align:right"'}

define Pelletsuebersicht_3 readingsGroup <>,<%measure_water_meter> \
CN.PelletsCounter:<Verbr&aumluche> \
CN.PelletsCounter:<Heute>,appOpHoursPerDayTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appOpHoursPerDay \
CN.PelletsCounter:<Aktuelle&nbsp;;Woche>,appOpHoursPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appOpHoursPerWeek \
CN.PelletsCounter:<Aktueller&nbsp;;Monat>,appOpHoursPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appOpHoursPerMonth \
CN.PelletsCounter:<Aktuelles&nbsp;;Jahr>,appOpHoursPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appOpHoursPerYear \
CN.PelletsCounter:<Gesamtverbrauch>,pulseTimeOverall,<&nbsp;;&nbsp;;&nbsp;;>,<Tankinhalt>,appPelletlager,appTanklevel\
attr Pelletsuebersicht_3 alias 02 Pelletsverbr&aumluche
attr Pelletsuebersicht_3 group Heizung
attr Pelletsuebersicht_3 mapping &nbsp;;
attr Pelletsuebersicht_3 room Heizung
attr Pelletsuebersicht_3 valueFormat { if($READING eq "pulseTimeOverall"){sprintf("%.2f Kg", $VALUE*0.0007533);;}elsif($READING eq "appTanklevel"){sprintf("%.2f Kg", $VALUE)}elsif($READING eq "appPelletlager"){sprintf("%.2f Kg", $VALUE)}else{sprintf("%.2f Kg", $VALUE*3600*0.0007533);;} }
attr Pelletsuebersicht_3 valueStyle {'style="color:green;;;;text-align:right

define Pelletsuebersicht_1 readingsGroup <>,<%secur_smoke_detector>\
CN.PelletsAnforderung:<Starts>\
CN.PelletsAnforderung:<Heute>,countsPerDay,<&nbsp;;&nbsp;;&nbsp;;>,<Gestern>,appCountsPerDay\
CN.PelletsAnforderung:<Aktuelle&nbsp;;Woche>,appCountsPerWeekTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzte&nbsp;;Woche>,appCountsPerWeek\
CN.PelletsAnforderung:<Aktueller&nbsp;;Monat>,appCountsPerMonthTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letzter&nbsp;;Monat>,appCountsPerMonth\
CN.PelletsAnforderung:<Aktuelles&nbsp;;Jahr>,appCountsPerYearTemp,<&nbsp;;&nbsp;;&nbsp;;>,<Letztes&nbsp;;Jahr>,appCountsPerYear\
CN.PelletsAnforderung:<Gesamtstarts>,countsOverall
attr Pelletsuebersicht_1 alias 02 Pelletstarts
attr Pelletsuebersicht_1 group Heizung
attr Pelletsuebersicht_1 mapping &nbsp;;
attr Pelletsuebersicht_1 room Heizung
attr Pelletsuebersicht_1 valueStyle {'style="color:green;;;;text-align:right"'}

Vielleich hilft Dir das weiter.
Jens

PS: Deine Pelletschnecke Fördert pro Umdrehung 0,233 kg ??
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 25 Februar 2016, 09:32:43
Hallo John, hallo Jens,
Prima :D das Ihr mir geantwortet habt.
Ich werde zuerst den Vorschlag von John testen. Bzw. habe ich gerade getan.
attr Brennstoffverbrauch userReadings VerbrauchInKg:countsPerDay {ReadingsVal("Brennstoffverbrauch","countsPerDay",0)*0.2293;;}ich bin mir aber nicht sicher, ob die Einheit " Kg "so richtig erkannt wird.
Die nächste Frage ist, muss der Code im notify Brennstoffverbrauch bestehen bleiben. Er bezieht sich ja auf den Gasverbrauch und pro Stunde.
Ich denke eher nicht, denn der neue Code bezieht sich auf "countsPerDay".
Der HourCounter zählt jetzt hoch, und zeigt auch wie hier zu sehen den richtigen Wert an,
aber wie kann ich diesen unter Heizraum anzeigen?
Dazu sollte er im notify stehen und nicht wie jetzt im HourCounter oder irre ich mich?
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       Brennstoffverbrauch
   NR         200
   NTFY_ORDER 50-Brennstoffverbrauch
   STATE      9
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-25 08:55:09   VerbrauchInKg   2.0637
     2016-02-23 10:47:04   clearDate       2016-02-23 10:47:04
     2016-02-25 09:06:49   countsOverall   117
     2016-02-25 09:06:49   countsPerDay    9
     2016-02-25 09:06:49   pauseTimeEdge   31
     2016-02-25 09:06:49   pauseTimeIncrement 31
     2016-02-25 09:06:49   pauseTimeOverall 21463
     2016-02-25 09:06:49   pauseTimePerDay 6363
     2016-02-25 09:06:49   pulseTimeEdge   330
     2016-02-25 09:06:49   pulseTimeIncrement 700
     2016-02-25 09:06:49   pulseTimeOverall 145315
     2016-02-25 09:06:49   pulseTimePerDay 26445
     2016-02-25 09:06:49   state           9
     2016-02-25 08:55:09   tickChanged     487
     2016-02-25 00:00:01   tickDay         4
     2016-02-25 09:00:00   tickHour        94
     2016-02-21 11:27:37   tickMonth       0
     2016-02-25 09:06:49   tickUpdated     869
     2016-02-21 11:27:37   tickWeek        0
     2016-02-21 11:27:37   tickYear        0
     2016-02-25 09:06:49   value           1
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-25 09:06:49
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456387200
     value      1
     cmdQueue:
Attributes:
   event-on-change-reading .*
   room       1.3.1 Heizraum
   userReadings VerbrauchInKg:countsPerDay {ReadingsVal("Brennstoffverbrauch","countsPerDay",0)*0.2293;}
my $BrennstoffUmlaufzeit=ReadingsVal("Brennstoffverbrauch","pauseTimeEdge","0")+ReadingsVal("Brennstoffverbrauch","pulseTimeEdge","0");
my $BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

fhem("set BrennstoffverbrauchStd $BrennstoffProStdRounded");;
fhem("delete tmp_time_brennstoff");;
fhem("define tmp_time_brennstoff at +00:02:00 set BrennstoffverbrauchStd 0");;
}
.
Auch ist es für mich ein Problem den Code zu verstehen, was bedeutet das:  36, 100, +0,5, 100
Zitat
$BrennstoffProStd=36/$BrennstoffUmlaufzeit;
my $BrennstoffProStdRounded=int(100 * $BrennstoffProStd + 0.5) / 100;

Danke.
Hallo Jens,
Ja meine Förderschnecke fördert 0,229 kg / Umdrehung; macht bei 109 Umdrehungen 25 kg.
Aufgrund meiner Unerfahrenheit werde ich mich in kleinen Schritten an die Lösung machen.
Deine Idee mit dem Füllstand habe ich auch schon im Hinterkopf.
Mein Ansatz ist aber ein Ultraschallsensor oben im Behälter zu platzieren und dann,
100,50,25 % zu erfassen. Wie findest Du das?
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 25 Februar 2016, 09:56:06


Deine Idee mit dem Füllstand habe ich auch schon im Hinterkopf.
Mein Ansatz ist aber ein Ultraschallsensor oben im Behälter zu platzieren und dann,
100,50,25 % zu erfassen. Wie findest Du das?

Denke das es nicht gut funktioniert. Kommt darauf an wie die Pellets aus dem Lager gefördert werden. Die Pellets Nivellieren sind ja nicht aus und es gibt einen Schüttkegel. Da wird es denke ich schwierig.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 25 Februar 2016, 11:18:34
Ich habe übrigens ein anderes Problem mit dem Modul und zwar erhalte ich zu jeder vollen Stunde falsche Werte? Danach und davor geht es problemlos?
countsOverall: 17
countsperDay: 0
Ich will eigentlich nicht dazwischenfunken, aber das kuriose Problem habe ich immer noch, zu jeder vollen Stunde habe ich falsche Werte im Log. Kann sie mir echt nicht erklären...
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 25 Februar 2016, 17:54:00
Hallo John,
Habe etwas experimentiert und dabei festgestellt, das der Code im notify Brennstoffverbrauch verbleiben muss.
Er bzw. ein Teil (aber Welcher?) ist für die Zählung der Impulse zuständig.
Den Verbrauch in Kg in der Ansicht "1.3.1 Heizraum" darzustellen ist mir nicht gelungen.
Selbiges trifft für Verbrauch in € zu.
Kannst Du mir bitte helfen?
Danke
Hallo Jens,
Deine Überlegung ist in der Tat richtig. Mein Bunker ist aber nicht so groß und natürlich sollte vorher probiert werden,
wo der richtige Platz ist. Mir geht es dabei nur um eine Signalisation hinsichtlich Nachfüllzeitpunkt.
Die punktgenaue Menge ist untergeordnet. Dann sollte das doch gehen - oder??
Etwas zu Deinem Code. Ich denke unterschiedliche Wege führen ans Ziel.
Macht der dasselbe wie der Vorschlag von John?
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 25 Februar 2016, 21:03:40
@Exot
Zitat
Den Verbrauch in Kg in der Ansicht "1.3.1 Heizraum" darzustellen ist mir nicht gelungen.

Mit readingsGroup kannst du eine Zusammenfassung von beliebigen Readings aus unterschiedlichen Objekten realisieren.
Das neu erstellte ReadingsGroup kannst du nun beliebigen Räumen zuorden.

Nchfolgendes Beispiel  liefert alle Readings mit der Bezeichnung "Battery" über alle Objekte
define battStatus readingsGroup .*:[Bb]attery
Zitat
Er bzw. ein Teil (aber Welcher?) ist für die Zählung der Impulse zuständig.

Du brauchst kein Notify für das Funktionieren des Hourcounters.
Der Hourcounter erhält von FHEM alle Events und filtert die, die laut Definition wichtig sind.
Der Filter ergibt sich aus  <regexp_for_ON> [<regexp_for_Off>] gemäß Definition.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 27 Februar 2016, 14:16:56
Hallo John, hallo,
Leider bin ich noch kein Stück weiter und meine bisherigen Versuche brachten keinen Erfolg.
Das ist aber meiner Unkenntnis zuzuschreiben. Ich begreife es einfach nicht. :-[ :'(
Ich habe jetzt die "99_UtilsHourCounter.pm" in Verzeichnis "Raspberry Pi: /opt/fhem/FHEM"installiert.
Unter  "Edit Files " wird sie auch angezeigt.
Die bis jetzt aktualisierten Impulse habe ich wie zu sehen übertragen.
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       CN.Brennstoffverbrauch
   NR         750
   NTFY_ORDER 50-CN.Brennstoffverbrauch
   STATE      45
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-27 12:07:13   appCountsPerHour 5
     2016-02-27 12:07:28   appCountsPerHourTemp 5
     2016-02-27 12:01:52   appCountsPerMonthTemp 299
     2016-02-27 12:01:52   appCountsPerWeekTemp 299
     2016-02-27 12:01:52   appCountsPerYearTemp 299
     2016-02-27 12:07:23   appOpHoursPerDayTemp 1.5075
     2016-02-27 12:07:23   appUtilizationTemp 12.4349838462067
     2016-02-27 12:07:23   appUtilizationTempOld 12.4189297582216
     2016-02-27 12:07:23   countsOverall   299
     2016-02-27 12:07:23   countsPerDay    45
     2016-02-27 12:07:23   pauseTimeEdge   12
     2016-02-27 12:07:23   pauseTimeIncrement 0
     2016-02-27 12:07:23   pauseTimeOverall 212
     2016-02-27 12:07:23   pauseTimePerDay 212
     2016-02-27 12:07:23   pulseTimeEdge   331
     2016-02-27 12:07:23   pulseTimeIncrement 331
     2016-02-27 12:07:23   pulseTimeOverall 5427
     2016-02-27 12:07:23   pulseTimePerDay 5427
     2016-02-27 12:07:23   state           45
     2016-02-27 12:07:23   tickChanged     14
     2016-02-27 10:33:23   tickDay         0
     2016-02-27 12:00:01   tickHour        2
     2016-02-27 10:33:23   tickMonth       0
     2016-02-27 12:07:23   tickUpdated     114
     2016-02-27 10:33:23   tickWeek        0
     2016-02-27 10:33:23   tickYear        0
     2016-02-27 12:07:23   value           0
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-27 12:07:23
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456570800
     value      0
     cmdQueue:
Attributes:
   room       1.3.1 Heizraum
   userReadings VerbrauchInKg:appcountsPerDay {ReadingsVal("CN.Brennstoffverbrauch","appcountsPerDay",0)*0.2293;;}
   
Ich finde aber
appCountsPerDayTempnicht.
Dann habe ich
define CN.Brennstoffverbrauch.FileDay FileLog ./log/CN.Brennstoffverbrauch-Day-%Y.log CN.Brennstoffverbrauch:app\w*(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*angelegt. Hier sollten jetzt die Impulse aufgezeichnet werden.
Hier für Stunde
2016-02-27_12:00:01 CN.Brennstoffverbrauch appCountsPerHour: 3
2016-02-27_12:07:13 CN.Brennstoffverbrauch appCountsPerHour: 5
2016-02-27_13:00:01 CN.Brennstoffverbrauch appCountsPerHour: 6
2016-02-27_14:00:02 CN.Brennstoffverbrauch appCountsPerHour: 3
sollte dann der Zähler nicht jede Stunde auf 0 gesetzt werden?
Für mich ist aber die Stunde nicht interessant sondern "Day"
list CN.B aktuell
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       CN.Brennstoffverbrauch
   NR         750
   NTFY_ORDER 50-CN.Brennstoffverbrauch
   STATE      49
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-27 14:00:02   appCountsPerHour 3
     2016-02-27 14:00:02   appCountsPerHourTemp 0
     2016-02-27 13:29:54   appCountsPerMonthTemp 303
     2016-02-27 13:29:54   appCountsPerWeekTemp 303
     2016-02-27 13:29:54   appCountsPerYearTemp 303
     2016-02-27 14:10:22   appOpHoursPerDayTemp 3.51611111111111
     2016-02-27 14:10:22   appUtilizationTemp 24.808905962134
     2016-02-27 14:10:22   appUtilizationTempOld 24.7085606625584
     2016-02-27 14:10:22   countsOverall   303
     2016-02-27 14:10:22   countsPerDay    49
     2016-02-27 14:10:22   pauseTimeEdge   30
     2016-02-27 14:10:22   pauseTimeIncrement 30
     2016-02-27 14:10:22   pauseTimeOverall 360
     2016-02-27 14:10:22   pauseTimePerDay 360
     2016-02-27 14:10:22   pulseTimeEdge   331
     2016-02-27 14:10:22   pulseTimeIncrement 2428
     2016-02-27 14:10:22   pulseTimeOverall 12658
     2016-02-27 14:10:22   pulseTimePerDay 12658
     2016-02-27 14:10:22   state           49
     2016-02-27 13:29:54   tickChanged     21
     2016-02-27 10:33:23   tickDay         0
     2016-02-27 14:00:02   tickHour        4
     2016-02-27 10:33:23   tickMonth       0
     2016-02-27 14:10:22   tickUpdated     299
     2016-02-27 10:33:23   tickWeek        0
     2016-02-27 10:33:23   tickYear        0
     2016-02-27 14:10:22   value           1
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-27 14:10:22
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456578000
     value      1
     cmdQueue:
Attributes:
   event-on-change-reading .*
   room       1.3.1 Heizraum
   userReadings VerbrauchInKg:appcountsPerDay {ReadingsVal("CN.Brennstoffverbrauch","appcountsPerDay",0)*0.2293;;}
Auch vermisse ich das "userReading". Das Ergebnis wird nicht angezeigt.
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 27 Februar 2016, 19:45:00
Hallo John,
Habe es jetzt so weit geschafft, das ich den Verbrauch angezeigt bekomme.
War eine schwere Geburt für mich :)
Jetzt fehlen mir noch Aussagefähige Bezeichnungen im readingsGroup.
Das habe ich bis jetzt nicht gepackt.
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 27 Februar 2016, 23:02:30
Wie kann ich beim HourCounter das Jahr auf eine Saison einstellen z.b. vom 01.09. Bis 31.08. Oder so.


Gesendet von meinem ME302C mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 28 Februar 2016, 11:01:14
Hallo,
Bin wieder ein Schritt weiter :'( ;D ;D ;D
Habe aber eine Frage:
attr CN.BrennstoffverbrauchWeek userReadings Verbrauch:appCountsPerWeekTemp {ReadingsVal("CN.BrennstoffverbrauchWeek","appCountsPerWeekTemp",0)*0.2293;;}Ich möchte die Impulse unter:
Internals:
   CFGFN
   DEF        GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
   NAME       CN.BrennstoffverbrauchWeek
   NR         6285
   NTFY_ORDER 50-CN.BrennstoffverbrauchWeek
   STATE      39
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-02-28 10:38:04   Verbrauch       16.9682
     2016-02-28 10:00:00   appCountsPerHour 5
     2016-02-28 10:38:04   appCountsPerHourTemp 5
     2016-02-28 10:38:04   appCountsPerMonthTemp 364
     2016-02-28 10:38:04   appCountsPerWeekTemp 74
     2016-02-28 10:38:04   appCountsPerYearTemp 364
     2016-02-28 10:55:49   appOpHoursPerDayTemp 1.54194444444444
     2016-02-28 10:55:49   appUtilizationTemp 14.1070929375588
     2016-02-28 10:55:49   appUtilizationTempOld 14.1005438926447
     2016-02-28 10:55:49   countsOverall   364
     2016-02-28 10:55:49   countsPerDay    39
     2016-02-28 10:55:49   pauseTimeEdge   31
     2016-02-28 10:55:49   pauseTimeIncrement 31
     2016-02-28 10:55:49   pauseTimeOverall 380
     2016-02-28 10:55:49   pauseTimePerDay 380
     2016-02-28 10:55:49   pulseTimeEdge   330
     2016-02-28 10:55:49   pulseTimeIncrement 1065
     2016-02-28 10:55:49   pulseTimeOverall 5551
     2016-02-28 10:55:49   pulseTimePerDay 5551
     2016-02-28 10:55:49   state           39
     2016-02-28 10:38:04   tickChanged     19
     2016-02-28 09:16:57   tickDay         0
     2016-02-28 10:00:00   tickHour        1
     2016-02-28 09:16:57   tickMonth       0
     2016-02-28 10:55:49   tickUpdated     177
     2016-02-28 09:16:57   tickWeek        0
     2016-02-28 09:16:57   tickYear        0
     2016-02-28 10:55:49   value           1
   Helper:
     OFF_Regexp GPIOBrennstoffzaehler:off
     ON_Regexp  GPIOBrennstoffzaehler:on
     calledByEvent
     changedTimestamp 2016-02-28 10:55:49
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1456650000
     value      1
     cmdQueue:
Attributes:
   room       1.3.1 Heizraum
   userReadings Verbrauch:appCountsPerWeekTemp {ReadingsVal("CN.BrennstoffverbrauchWeek","appCountsPerWeekTemp",0)*0.2293;;}
aktualisieren.
Week - wird von wann bis wann erfasst (Sonntag-Samstag)??
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 28 Februar 2016, 11:03:57
@jensweber

Folgender Vorschlag:

Änderungen in 99_UtilsHourCounter

* bisherigen Aufruf von appHC_OnYear auskommentieren (Zeile 277: HourCounter_cmdQueueAdd($hash,"appHC_OnYear q($name),q($part0),q($part1)");)
* appHC_OnMonth so ändern, daß du hier deinen individuellen Betriebsjahreswechsel erkennst und nun hier die  zuvor auskommentierte Zeile einsetzen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 28 Februar 2016, 11:04:32
 ::) ???Ich meine natürlich Montag - Sonntag
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 28 Februar 2016, 11:13:43
Sonntag bis Samstag läuft die Woche.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 01 März 2016, 10:11:21
Hallo John,
Danke für Deine Nachricht.
ReadingGroup ist eingefügt und Verbrauch für Tag, Woche , Monat und Jahr
werden angezeigt.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 03 März 2016, 18:24:36
Hallo,
Habe jetzt meinen Verbrauchszähler installiert.
Mit diesem Code gebe ich die kg/Tag aus.
define CN.BrennstoffverbrauchDay HourCounter GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
attr CN.BrennstoffverbrauchDay userReadings Verbrauch:countsPerDay {ReadingsVal("CN.BrennstoffverbrauchDay","countsPerDay",0)*0.2293;;}
Hier werden jetzt  z.B. 10 kg ausgegeben werden. Ich möchte aber zusätzlich diese 10 kg in Euro darstellen.
1kg entspricht 0,2332€.
Wie muss ich das machen.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 03 März 2016, 20:45:39
Zitat
Wie muss ich das machen.
ein weiteres userReadings , wo Du den Verbrauch mit dem Preis multiplizierst !
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 04 März 2016, 09:32:36
Hallo kvo1,
Danke für Deine Nachricht,
Funktioniert! prima! :)
das ist der Code:
define CN.BrennstoffverbrauchDayEu HourCounter GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
attr CN.BrennstoffverbrauchDayEu userReadings Verbrauch:countsPerDay {ReadingsVal("CN.BrennstoffverbrauchDayEu","countsPerDay",0)*0.2293*0.2332;;}
Da unter "readingsGroup /Verbrauch" alle Einheiten in kg abgebildet werden und nur einmal "valueFormat" eingefügt werden kann,
meine Frage: ist es erforderlich eine neue "readingsGroup/Euro" anzulegen oder gibt es eine andere Möglichkeit.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 04 März 2016, 13:01:45
Hast du dir mal das Modul GasCalculator angeschaut: http://forum.fhem.de/index.php/topic,47909.0.html? (http://forum.fhem.de/index.php/topic,47909.0.html?)

Eventuell kannst du dies ganz einfach missbrauchen.




Ich habe übrigens ein anderes Problem mit dem Modul und zwar erhalte ich zu jeder vollen Stunde falsche Werte? Danach und davor geht es problemlos?
countsOverall: 17
countsperDay: 0



Ich möchte mein Problem mit Bildern untermauern :)

Der MYSENSOR_105 liefert die Pulse für den Hourcounter. Fraglich ist weiterhin wieso HourCounter zu jeder vollen Stunde diese Fantasiewerte ins Log schreibt?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 04 März 2016, 22:19:35
Hallo kvo1,
Danke für Deine Nachricht,
Funktioniert! prima! :)
das ist der Code:
define CN.BrennstoffverbrauchDayEu HourCounter GPIOBrennstoffzaehler:on GPIOBrennstoffzaehler:off
attr CN.BrennstoffverbrauchDayEu userReadings Verbrauch:countsPerDay {ReadingsVal("CN.BrennstoffverbrauchDayEu","countsPerDay",0)*0.2293*0.2332;;}
Da unter "readingsGroup /Verbrauch" alle Einheiten in kg abgebildet werden und nur einmal "valueFormat" eingefügt werden kann,
meine Frage: ist es erforderlich eine neue "readingsGroup/Euro" anzulegen oder gibt es eine andere Möglichkeit.
Danke Michael

Hallo Michael,
Du kannst doch in der readingsGroup jeden Readingswerte  einzeln mit "valueFormat"  formatieren ......
schau mal hier ....http://www.fhemwiki.de/wiki/ReadingsGroup (http://www.fhemwiki.de/wiki/ReadingsGroup).....

attr Wetter valueFormat { temperature => '%1.f &deg;C', humidity => '%1.f %%', pressure => '%i mbar' }


oder wir wäre es mit sowas ...(ungetestet !!!)
attr CN.BrennstoffverbrauchDayEu userReadings Verbrauch:countsPerDay {sprintf("%s",ReadingsVal("CN.BrennstoffverbrauchDayEu","countsPerDay",0)*0.2293*0.2332) , " €";;}
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 05 März 2016, 10:12:48
Hallo kvo1,
Danke für Deine Nachricht.
Bezüglich meiner Frage habe ich mich sicherlich nicht richtig ausgedrückt.
Ich denke, das in einer readingGroup immer nur untereinander eine Maßeinheit angezeigt werden kann.
Jedenfalls habe ich es anders nicht realisieren können.
Deshalb jetzt 2 readingGroups "Koste" und "Verbrauch".
Jahr    = 01.01.16-31.12.16
Monat = 01.01.16-29.02.16
Woche= 28.01.16-05.03.16
Abgebildet wird hier der "appCountsPer......Temp" Wert. Siehe Anhang.
Das bedeutet, dass sich der Wert kontinuierlich mit jedem Impuls zunehmend verändert.
Ich denke so weit habe ich den Sinn verstanden. :'(
Warum werden aber nicht die "appCountsPer........" angezeigt bzw. warum können diese Werte nicht z.B. unter:
set  CN.BrennstoffkostenMonth appCountsPerMonth 3052 verändert werden, damit die vergangenen Monate Jan., Febr. angezeigt werden.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 06 März 2016, 01:36:17
Hallo MIchael,

Zitat
Ich denke, das in einer readingGroup immer nur untereinander eine Maßeinheit angezeigt werden kann.

eigentlich nicht ..... schau nochmal hier ....http://www.fhemwiki.de/wiki/ReadingsGroup.....
Formatvorgabe für Ausgabewerte

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 07 März 2016, 08:33:16
Hallo kvo1,
Danke für Deine Nachricht.
Du hattest ja schon wiederholt auf diesen Link verwiesen und...
Dein Rat wurde auch von mir befolgt. Aber immer vergeblich.
Ebenfalls gestern und bis heute ist unter Tag keine Änderung kg in t erfolgt.
Die Kommastellen wurden nicht verändert. Ich wollte nur die Veränderung sehen.
CN.Brennstoffverbrauch  valueFormat {Tag:Verbrauch => "%.2f t", Woche => "%.2f Kg", Monat => "%.2f Kg", Jahr => "%.2f Kg"}Ich habe noch ein weiteres Problem festgestellt:
"sortby" gibt die angezeigte Reihenfolge vor!? Leider nicht immmer. Zu mindest in meiner Konfiguration.
Gibt es dafür eine Erklärung?
Im Anhang Kosten soll "sortby"1 Tag, 2 Woche, 3 Monat, 4Jahr
Unter Verbrauch ist die Reihenfolge eine Andere. Hier habe ich aber auch andere Bezeichnungen.
Z.B. "pro Tag:Kosten"  "Tag:Verbrauch" usw.
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 16 März 2016, 20:24:02
Hallo zusammen,

ich  will die Brennerlaufzeit mit einem Homatic Fensterkontakt erfassen. Wie muss der hourcounter definiert werden. Er sendet open und closed. Hier das Eventlog:
2016-03-16 20:19:02 CUL_HM Brenner battery: ok
2016-03-16 20:19:02 CUL_HM Brenner contact: closed (to broadcast)
2016-03-16 20:19:02 CUL_HM Brenner closed
2016-03-16 20:19:02 CUL_HM Brenner trigger_cnt: 227
2016-03-16 20:19:03 CUL_HM Brenner battery: ok
2016-03-16 20:19:03 CUL_HM Brenner contact: open (to broadcast)
2016-03-16 20:19:03 CUL_HM Brenner open
2016-03-16 20:19:03 CUL_HM Brenner trigger_cnt: 228

Vielen dank für Eure Hilfe vorab.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 17 März 2016, 08:08:37
Hallo zusammen,
[...]
Vielen dank für Eure Hilfe vorab.
Schau mal hier: https://forum.fhem.de/index.php/topic,50610.0.html (https://forum.fhem.de/index.php/topic,50610.0.html) (Definition siehe Screenshots - tripped3 ist das Reading und on/off die Werte) mein MySensors liefert zwar on und off, aber ich denke, dass bekommst du hin :)


Edit 2: Nach den Edits oben, kann ich auch gleich die Lösung posten:
define Gasverbrauch HourCounter Brenner:contact:.open Brenner:contact:.closed
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 17 März 2016, 13:37:45
Schau mal hier: https://forum.fhem.de/index.php/topic,50610.0.html (https://forum.fhem.de/index.php/topic,50610.0.html) (Definition siehe Screenshots - tripped3 ist das Reading und on/off die Werte) mein MySensors liefert zwar on und off, aber ich denke, dass bekommst du hin :)


Edit 2: Nach den Edits oben, kann ich auch gleich die Lösung posten:
define Gasverbrauch HourCounter Brenner:contact:.open Brenner:contact:.closed

Danke @Hauswart, ich werde es heute Abend testen...
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 17 März 2016, 19:54:35
Hallo @Hauswart,

leider funktioniert es nicht. Anbei mal die  lists

  Internals:
   CFGFN
   DEF        3FA5EA
   HMLAN1_MSGCNT 158
   HMLAN1_RAWMSG E3FA5EA,0000,07BF63B5,FF,FFB4,FF84413FA5EA00000001FAC8
   HMLAN1_RSSI -76
   HMLAN1_TIME 2016-03-17 19:47:13
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     158
   NAME       Brenner
   NR         583
   STATE      open
   TYPE       CUL_HM
   lastMsg    No:FF - t:41 s:3FA5EA d:000000 01FAC8
   protLastRcv 2016-03-17 19:47:13
   protSnd    7 last_at:2016-03-16 18:54:44
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-73.37 min:-84 max:-63 lst:-76 cnt:158
   Readings:
     2016-03-17 19:46:43   Activity        alive
     2016-03-16 18:53:55   D-firmware      2.4
     2016-03-16 18:53:55   D-serialNr      MEQ1140137
     2016-03-16 18:54:43   PairedTo        0x000000
     2016-03-16 18:54:43   R-cyclicInfoMsg off
     2016-03-16 18:54:43   R-eventDlyTime  0 s
     2016-03-16 18:54:43   R-pairCentral   0x000000
     2016-03-16 18:54:43   R-sabotageMsg   on
     2016-03-16 18:54:43   R-sign          off
     2016-03-16 18:54:43   RegL_00.          02:00 09:00 0A:00 0B:00 0C:00 10:01 14:06 00:00
     2016-03-16 18:54:43   RegL_01.          08:00 20:60 21:00 22:64 30:06 00:00
     2016-03-16 18:54:42   alive           yes
     2016-03-17 19:47:13   battery         ok
     2016-03-17 19:47:13   contact         open (to broadcast)
     2016-03-16 20:14:24   onoff           Error evaluating Brenner userReading onoff: Bareword "closed" not allowed while "strict subs" in use at (eval 3616) line 1.

     2016-03-16 18:54:41   recentStateType info
     2016-03-16 18:54:42   sabotageError   off
     2016-03-17 19:47:13   state           open
     2016-03-17 19:47:13   trigger_cnt     250
   Helper:
     HM_CMDNR   255
     cSnd       0126F7F83FA5EA01040000000001,0126F7F83FA5EA0103
     mId        00B1
     peerIDsRaw ,00000000
     rxType     28
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +3FA5EA,00,00,00
       nextSend   1458240433.33777
       prefIO
       rxt        2
       vccu
       p:
         3FA5EA
         00
         00
         00
     Mrssi:
       mNo        FF
       Io:
         HMLAN1     -74
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmlan1:
         avg        -73.373417721519
         cnt        158
         lst        -76
         max        -63
         min        -84
     Shadowreg:
Attributes:
   IODev      HMLAN1
   actCycle   001:05
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   2.4
   model      HM-SEC-SC-2
   peerIDs    00000000,
   room       Heizung,CUL_HM
   serialNr   MEQ1140137
   subType    threeStateSensor

Internals:
   CFGFN
   DEF        Brenner:contact:.open Brenner:contact.closed
   NAME       CN.Brennerstart
   NR         599
   NTFY_ORDER 50-Brennerstart
   STATE      0
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   Readings:
     2016-03-17 19:53:08   countsOverall   1
     2016-03-17 19:53:08   countsPerDay    0
     2016-03-17 19:53:08   pauseTimeEdge   95
     2016-03-17 19:53:08   pauseTimeIncrement 95
     2016-03-17 19:53:08   pauseTimeOverall 95
     2016-03-17 19:53:08   pauseTimePerDay 0
     2016-03-17 19:53:08   pulseTimeEdge   0
     2016-03-17 19:53:08   pulseTimeIncrement 82924
     2016-03-17 19:53:08   pulseTimeOverall 82924
     2016-03-17 19:53:08   pulseTimePerDay 67755
     2016-03-17 19:53:08   state           0
     2016-03-16 19:14:17   tickChanged     1
     2016-03-17 19:53:08   tickDay         0
     2016-03-17 19:53:08   tickHour        0
     2016-03-17 19:53:08   tickMonth       0
     2016-03-17 19:53:08   tickUpdated     40
     2016-03-17 19:53:08   tickWeek        0
     2016-03-17 19:53:08   tickYear        0
     2016-03-17 19:53:08   value           1
   Helper:
     OFF_Regexp Brenner:contact:.closed
     ON_Regexp  Brenner:contact:.open
     calledByEvent
     changedTimestamp 2016-03-17 19:53:08
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1458237600
     value      -1
     cmdQueue:
Attributes:
   event-min-interval tick.*:0,.*:3600
   event-on-change-reading .*
   room       Heizung

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 17 März 2016, 20:06:57
Schau dir meine Definition noch einmal genau an  8)  ":."
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 17 März 2016, 20:10:56
Leider funktioniert es auch mit dem vergessenen . nicht :'(
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skuggy am 18 März 2016, 14:13:24
So, Problem gelöst. Ich hab eine Dummy und ein DOIF dazwischen geschaltet, jetzt läuft der HourCounter. Trotzdem Danke
Titel: S0Counter aufsummieren
Beitrag von: projectsun am 20 März 2016, 13:27:00
Hallo! Hoffentlich kann mir jemand helfen. Ich nutze das S0Counter Modul an ttyS0 und bekomme auch Werte rein. Wie in aller Herrgottsnamen kann ich das jetzt aufsummieren? Events sind z. B. folgende.2016-03-20 12:53:03 S0COUNTER Stromzaehler power: 3.49 W
2016-03-20 13:01:40 S0COUNTER Stromzaehler power: 3.48 W

so etwas will mir keine Werte anzeigen:
define StromverbrauchTag HourCounter Stromzaehler:power:*
attr StromverbrauchTag room Aquarium
attr StromverbrauchTag stateFormat {sprintf("%.3f",ReadingsVal("StromverbrauchGesamt","countsPerDay",0)/2000)." kwh"}

Ich hatte vorher den S0 Zähler direkt an den GPIO Pins, da funktionierte "StromverbrauchTag" bzw. "StromverbrauchGesamt" , weil ja on/off gezählt werden konnte. War aber zu instabil.
Was mache ich bitte falsch?

Mfg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Bartimaus am 04 April 2016, 12:11:46
Der S0 liefert doch nur Impulse. Diese "musst" Du jetzt zählen lassen und in Einheiten umrechnen.

Zählen kannst Du diese per 1wireCounter (DS2423) und auswerten zB mit OWCOUNT
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 25 April 2016, 10:07:56
Hallo,
Seit dem 21.04.16, 07:35 Uhr werden unter "readingGroup" die Werte für Verbrauch sowie Kosten nicht mehr aktualisiert.
Wie hie im event Monitor zu sehen werden aber die Verbrauchswerte sowie die Kosten geloggt.
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay pulseTimeIncrement: 883
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay pulseTimePerDay: 33365
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay pulseTimeOverall: 3344534
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay tickUpdated: 695
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay appOpHoursPerDayTemp: 9.26805555555556
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay appUtilizationTemp: 94.2008526497078
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenDay appUtilizationTempOld: 94.1637779166903
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth pulseTimeIncrement: 883
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth pulseTimePerDay: 33363
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth pulseTimeOverall: 3343056
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth tickUpdated: 668
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth appOpHoursPerDayTemp: 9.2675
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth appUtilizationTemp: 94.1952059629013
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenMonth appUtilizationTempOld: 94.1580951298517
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek pulseTimeIncrement: 883
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek pulseTimePerDay: 33363
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek pulseTimeOverall: 3343280
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek tickUpdated: 675
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek appOpHoursPerDayTemp: 9.2675
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek appUtilizationTemp: 94.1952059629013
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenWeek appUtilizationTempOld: 94.1580951298517
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear pulseTimeIncrement: 883
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear pulseTimePerDay: 33359
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear pulseTimeOverall: 3342638
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear tickUpdated: 633
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear appOpHoursPerDayTemp: 9.26638888888889
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear appUtilizationTemp: 94.1839125892882
2016-04-25 09:50:19 HourCounter CN.BrennstoffkostenYear appUtilizationTempOld: 94.1467295561743
2016-04-25 09:50:19 HourCounter CN.BrennstoffverbrauchDay pulseTimeIncrement: 883
2016-04-25 09:50:19 HourCounter CN.BrennstoffverbrauchDay pulseTimePerDay: 33359
2016-04-25 09:50:19 HourCounter CN.BrennstoffverbrauchDay pulseTimeOverall: 3502515
2016-04-25 09:50:19 HourCounter CN.BrennstoffverbrauchDay tickUpdated: 966
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchDay appOpHoursPerDayTemp: 9.26638888888889
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchDay appUtilizationTemp: 94.1839125892882
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchDay appUtilizationTempOld: 94.1467295561743
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth pulseTimePerDay: 33358
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth pulseTimeOverall: 3500645
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth tickUpdated: 921
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth appOpHoursPerDayTemp: 9.26611111111111
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth appUtilizationTemp: 94.1784302653868
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonth appUtilizationTempOld: 94.1410467693357
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ pulseTimePerDay: 33358
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ pulseTimeOverall: 3451158
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ tickUpdated: 577
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ appOpHoursPerDayTemp: 9.26611111111111
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ appUtilizationTemp: 94.1784302653868
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchMonthSZ appUtilizationTempOld: 94.1410467693357
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek pulseTimePerDay: 33361
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek pulseTimeOverall: 3500789
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek tickUpdated: 931
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek appOpHoursPerDayTemp: 9.26694444444444
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek appUtilizationTemp: 94.1869000564653
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeek appUtilizationTempOld: 94.1495709495937
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ pulseTimePerDay: 33360
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ pulseTimeOverall: 3451896
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ tickUpdated: 588
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ appOpHoursPerDayTemp: 9.26666666666667
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ appUtilizationTemp: 94.1840767927724
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchWeekSZ appUtilizationTempOld: 94.1467295561743
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear pulseTimePerDay: 33358
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear pulseTimeOverall: 3500440
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear tickUpdated: 909
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear appOpHoursPerDayTemp: 9.26611111111111
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear appUtilizationTemp: 94.1784302653868
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYear appUtilizationTempOld: 94.1410467693357
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ pulseTimeIncrement: 884
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ pulseTimePerDay: 33357
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ pulseTimeOverall: 3450761
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ tickUpdated: 553
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ appOpHoursPerDayTemp: 9.26583333333333
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ appUtilizationTemp: 94.175607001694
2016-04-25 09:50:20 HourCounter CN.BrennstoffverbrauchYearSZ appUtilizationTempOld: 94.1382053759164
2016-04-25 09:50:20 RPI_GPIO GPIOBrennstoffzaehler Pinlevel: high
2016-04-25 09:50:20 RPI_GPIO GPIOBrennstoffzaehler on
2016-04-25 09:50:20 RPI_GPIO GPIOWasserstand Longpress: on
2016-04-25 09:50:20 RPI_GPIO GPIOBrennstoffzaehler Longpress: on

Was mir komisch vorkommt ist die Uhrzeit.
Wie kann ich das Problem lösen.
Danke Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 26 April 2016, 09:03:47
Hallo,
Gibt es wirklich keinen Vorschlag wie das Problem abgestellt werden kann?
Alle Einstellungen sowie Parameter wurden kontrolliert.
Habe keine Veränderungen zu der ursprünglichen Programmierung gefunden.
Wer kann helfen.
Danke Michael 
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Hauswart am 26 April 2016, 12:10:41
Hast du uns noch die genaue Definition der ReadingsGroup?


//Mein Problem (stündlich falsche Werte) ist bis heute nicht gelöst...//
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 26 April 2016, 15:26:45
Hallo Hauswart,
Danke für Deinen Hilfeversuch.
Unter DEF:
Für Kosten
.*:Kosten 
Verbrauch
.*:VerbrauchSo ist und war die Eintragung.
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: exot am 29 April 2016, 17:56:59
Hallo Hauswart,
Ist das nicht richtig was ich als Infos gegeben habe?
Ich frage nur weil Du nicht geantwortet hast.
ABER :) :)Soeben habe ich die letzte Datensicherung eingespielt,
und es funktioniert auf Anhieb,
Gibt es dafür eine Erklärung?
Oder??? nach der Devise "Ströme gehen unerforschte Wege" :o :o
Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Aladin222 am 02 Juli 2016, 06:16:41
Hi @all ,

erstmal Danke für das Modul :-)

Beim ersten Versuch sollte Hourcounter die Betriebsstunden meines Robomowers zählen um den Zeitpunkt des Messerwechsels zu ermitteln .
Dafür habe ich dem Mower einen Fensterkontakt verpasst und die Umsetzung scheint zu funktionieren .
( teste noch etwas mit den Zeiten und Plots )

Da kam mir die Idee den HourCounter auch für den Regensensor einzusetzen ,was aber leider nicht funktioniert hat :-(

Als Event wird folgendes geliefert :

CUL_HM Regensensor_EsRegnet: rain
CUL_HM Regensensor_EsRegnet: dry

ein


define CN.Regen HourCounter Regensensor_EsRegnet:rain Regensensor_EsRegnet:dry

brachte leider keinen Erfolg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: kvo1 am 02 Juli 2016, 12:58:26
versuch mal

define CN.Regen HourCounter Regensensor_EsRegnet.rain Regensensor_EsRegnet.dry
oder

define CN.Regen HourCounter Regensensor_EsRegnet.rain.* Regensensor_EsRegnet.dry.*
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Aladin222 am 02 Juli 2016, 18:53:34
Danke dir !
Ich weiß zwar nicht warum , aber es funzt mittlerweile :-)

Allerdings mit mit der zuvor probierten Version , ohne . und * .
Naja, Hauptsache es funktioniert .... Danke dir trotzdem für die Mühe !
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einen Poolpumpe
Beitrag von: lewej am 29 Juli 2016, 08:12:03
Hallo Zusammen,

Ich möchte gerne die Minuten/Stunden meiner Poolpumpe zählen.

Ich habe ein Device angelegt PoolPump, diese hat im:
STATE: on oder off
state: on oder off

Jetzt habe ich einen Hourcounter definiert:
define CN.POOLPUMPHOURCOUNTER HourCounter PoolPump:state:.on PoolPump:state:.off

Mein Problem ist jetzt, das die Counter sehr komische Werte angezeigen und der Tagescounter wird nicht zurück gesetzt.

Ist mein define vom Hourcounter richtig?

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: satprofi am 29 Juli 2016, 09:06:11
userreadings angelegt?
h { ReadingsVal("Poolpumpenlaufzeit","pulseTimePerDay",0)/3600.0;; }
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einen Poolpumpe
Beitrag von: lewej am 29 Juli 2016, 16:36:42
Hallo Zusammen,

Ich möchte gerne die Minuten/Stunden meiner Poolpumpe zählen.

Ich habe ein Device angelegt PoolPump, diese hat im:
STATE: on oder off
state: on oder off

Jetzt habe ich einen Hourcounter definiert:
define CN.POOLPUMPHOURCOUNTER HourCounter PoolPump:state:.on PoolPump:state:.off

Mein Problem ist jetzt, das die Counter sehr komische Werte angezeigen und der Tagescounter wird nicht zurück gesetzt.

Ist mein define vom Hourcounter richtig?

Hallo,
So sehen meine Werte aus:
appOpHoursPerDay
2.54638888888889

appOpHoursPerDayTemp
16.4291666666667

appOpHoursPerMonthTemp
2.54638888888889

appOpHoursPerWeekTemp
2.54638888888889

appOpHoursPerYearTemp
2.54638888888889

appUtilization
10.2984901277584

Jetzt ist die Pumpe heute und gestern nicht mal eine Stunde gelaufen.

Hat jemand eine Idee?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 18 Oktober 2016, 23:33:05
@jensweber

Folgender Vorschlag:

Änderungen in 99_UtilsHourCounter

* bisherigen Aufruf von appHC_OnYear auskommentieren (Zeile 277: HourCounter_cmdQueueAdd($hash,"appHC_OnYear q($name),q($part0),q($part1)");)
* appHC_OnMonth so ändern, daß du hier deinen individuellen Betriebsjahreswechsel erkennst und nun hier die  zuvor auskommentierte Zeile einsetzen.

John

Hallo John,

jetzt habe ich das wieder ausgegraben. Ich weis erlich gesagt nicht was ich das machen muss. Mein Jahr soll z.B. vom 01.08. bis zum 31.07. laufen.

Help...
Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: satprofi am 02 November 2016, 17:21:14
Frage zum Counter.
Hat sich da etwas siet 01/2016 verändert? Mein Counter stellt jetzt täglich um 0:00h auf 0 zurück. Ich glaube das dies nicht so war. Seit einem FHEM update vor kurzem spinnt der in verbindung mit DOIF.

lg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: videospezi 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.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn 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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn 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

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Charles 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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn 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.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Charles 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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn 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 (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

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: videospezi 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
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 12 März 2017, 22:40:26
Über "set CN.Brenner clear" sollte das eigentlich funktionieren.

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: maci 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?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: maci 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.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: satprofi am 29 Mai 2017, 16:33:40
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?

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: l2r am 29 Mai 2017, 16:44:35
hi,

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

Gruß Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: satprofi am 29 Mai 2017, 17:14:15
Danke !
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Waldmensch 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     :
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 30 August 2017, 21:47:31
Hei,

diese Funktion habe ich immer noch nicht umgesetzt, da ich nicht weis , was ich Ändern muss. Die Funktion wäre für mich aber schon sehr gut, da ich dann den Pelltsverbrauch pro Saison erfassen könnte, ohne zu rechnen :-)

Ich möchte das Jahr auf eine Saison einstellen z.b. vom 01.09. Bis 31.08 und nicht vom 01.01.-31.12.

Kann mir jemand helfen ?

Jens

@jensweber

Folgender Vorschlag:

Änderungen in 99_UtilsHourCounter

* bisherigen Aufruf von appHC_OnYear auskommentieren (Zeile 277: HourCounter_cmdQueueAdd($hash,"appHC_OnYear q($name),q($part0),q($part1)");)
* appHC_OnMonth so ändern, daß du hier deinen individuellen Betriebsjahreswechsel erkennst und nun hier die  zuvor auskommentierte Zeile einsetzen.

John
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Nighthawk am 31 August 2017, 14:58:23
Hallo Zusammen,

ich habe alle 36 Seiten überflogen, aber leider keine Antwort für mein Problem gefunden.
Ich nutze den HourCounter für die Erfassung meines Wasserverbrauchs in Verbindung mit einer Wasseruhr mit Impulsgeber, der über ein GPIO Port des Raspberrys eingelesen wird.
Leider passiert es immer mal wieder dass die Zähler nach einem Reboot des Raspi bzw. Absturz von FHEM auf einen Wert zurückfallen die deutlich geringer sind als die letzten Werte vor dem Reboot.

Als Beispiel:
2017-08-30 21:57:17   CountPerDay  249
2017-08-30 21:59:12   CountPerDay  25
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 02 September 2017, 08:57:55
Das liegt daran, das die Werte nicht regelmässig gespeichert werden. Fährt FHEM z.b. für einen Showdown-restart runter, wird in fhem.save gespeichert und alles ist ok. Bei einem Stromausfall oder etwas anderem halt eben nicht, mit besagtem Effekt. Ich habe daher folgende Zeile in fhem.cfg: define fhem_save at +*00:05:00 {WriteStatefile()}

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 02 September 2017, 09:11:09
Um für den hourcounter ganz sicher zu gehen, dass mir nichts durchrutscht, habe ich hier noch ein WriteStatefile() am Ende der sub "sub appHCNotify($$$)" in der "99_UtilsHourCounter.pm" eingefügt. Damit werden nach jedem Zählereignis die Werte gesichert. Seid dem keine Probleme mehr mit alten Werten nach Ausfällen.

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Nighthawk am 02 September 2017, 20:52:07
Danke, werde ich ausprobieren.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 04 Oktober 2017, 22:35:50
Hallo,
2 HourCounter funktionieren bei mir seit dem 26.05.2017 nicht mehr. Diese sind für meinen Pelletsverbrauch der Heizung, die ich über den Sommer nicht benötige.
In den Log´s ist das entsprechend zu sehen:

2017-05-25_00:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_00:00:00 CN.PelletsCounter appCountsPerDay: 4
2017-05-25_00:00:00 CN.PelletsCounter appOpHoursPerDay: 0.0158333333333333
2017-05-25_00:00:00 CN.PelletsCounter appTanklevel: -490.343542
2017-05-25_00:00:00 CN.PelletsCounter appUtilization: 0.0688405797101449
2017-05-25_01:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_02:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_03:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_04:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_05:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_06:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_07:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_08:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_09:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_10:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_11:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_12:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_13:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_14:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_15:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_16:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_17:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_18:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_19:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_20:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_21:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_22:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_23:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_00:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_00:00:01 CN.PelletsCounter appCountsPerDay: 0
2017-05-26_00:00:01 CN.PelletsCounter appOpHoursPerDay: 0
2017-05-26_00:00:01 CN.PelletsCounter appTanklevel: -490.343542
2017-05-26_00:00:01 CN.PelletsCounter appUtilization: 0
2017-05-26_01:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_02:00:03 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_03:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_04:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_05:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_06:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_07:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_08:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_09:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_10:00:00 CN.PelletsCounter appCountsPerHour: 0

2017-05-25_00:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_00:00:01 CN.PelletsAnforderung appCountsPerDay: 0
2017-05-25_00:00:01 CN.PelletsAnforderung appOpHoursPerDay: 22.8719444444444
2017-05-25_00:00:01 CN.PelletsAnforderung appUtilization: 95.0942028985507
2017-05-25_01:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_02:00:00 CN.PelletsAnforderung appCountsPerHour: 1
2017-05-25_03:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_04:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_05:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_06:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_07:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_08:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_09:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_10:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_11:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_12:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_13:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_14:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_15:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_16:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_17:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_18:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_19:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_20:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_21:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_22:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_23:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_00:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_00:00:00 CN.PelletsAnforderung appCountsPerDay: 1
2017-05-26_00:00:00 CN.PelletsAnforderung appOpHoursPerDay: 23.9997222222222
2017-05-26_00:00:00 CN.PelletsAnforderung appUtilization: 99.9987922705314
2017-05-26_01:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_02:00:03 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_03:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_04:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_05:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_06:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_07:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_08:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_09:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_10:00:00 CN.PelletsAnforderung appCountsPerHour: 0

Ein anderer HourCounter, den ich für die Gartenbewässerung verwende funktioniert aber tadellos. Diesen habe ich 2 oder 3 Tage zuvor neu definiert. Seit dem läuft dieser aber zuverlässig.
Ich habe bewusst nichts an den 2 alten Countern gemacht.

Hier noch ein Auszug aus dem Logfile nach dem Neustart :
2017.10.04 22:26:04 0: Server shutdown
2017.10.04 22:26:12 3: [UtilsHourCounter] Init Done with Version 1.0.1.0 - 10.12.2014 (john)
2017.10.04 22:26:12 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 47.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 57.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 82.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 106.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 130.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 170.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 187.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnUpdate redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 224.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 255.
2017.10.04 22:26:12 1: Including fhem.cfg
2017.10.04 22:26:12 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 47, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 57, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 82, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 106, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 130, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 170, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 187, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnUpdate redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 224, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 255, <$fh> line 9.

2017.10.04 22:26:26 3: HourCounter HourCounter Initialize.220 Init Done with Version 1.0.1.2 - 24.12.2014
2017.10.04 22:26:26 0: HourCounter CN.PelletsCounter Define.228 parameters: CN.PelletsCounter HourCounter Pelletschnecke:on Pelletschnecke:off
2017.10.04 22:26:26 0: HourCounter CN.PelletsAnforderung Define.228 parameters: CN.PelletsAnforderung HourCounter Pelletofen_Anforderung:off Pelletofen_Anforderung:on

2017.10.04 22:26:30 0: HourCounter CN.GartenwasserDurchfluss Define.228 parameters: CN.GartenwasserDurchfluss HourCounter A2_I12_20_Gartenwasser_Durchfluss:on A2_I12_20_Gartenwasser_Durchfluss:off

2017.10.04 22:26:45 1: Including ./log/fhem.save

2017.10.04 22:26:52 0: Featurelevel: 5.8

2017.10.04 22:26:52 0: HourCounter CN.PelletsCounter Run.598 first run done countsOverall:8
2017.10.04 22:26:52 0: HourCounter CN.PelletsAnforderung Run.598 first run done countsOverall:14
2017.10.04 22:26:52 0: HourCounter CN.GartenwasserDurchfluss Run.598 first run done countsOverall:14135

Die Warnmeldungen verstehe ich allerdings nicht ?
Ich stehe ziemlich auf dem Schlauch.

Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 04 Oktober 2017, 23:04:53
Hallo,
2 HourCounter funktionieren bei mir seit dem 26.05.2017 nicht mehr. Diese sind für meinen Pelletsverbrauch der Heizung, die ich über den Sommer nicht benötige.
In den Log´s ist das entsprechend zu sehen:

2017-05-25_00:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_00:00:00 CN.PelletsCounter appCountsPerDay: 4
2017-05-25_00:00:00 CN.PelletsCounter appOpHoursPerDay: 0.0158333333333333
2017-05-25_00:00:00 CN.PelletsCounter appTanklevel: -490.343542
2017-05-25_00:00:00 CN.PelletsCounter appUtilization: 0.0688405797101449
2017-05-25_01:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_02:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_03:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_04:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_05:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_06:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_07:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_08:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_09:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_10:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_11:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_12:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_13:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_14:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_15:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_16:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_17:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_18:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_19:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_20:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_21:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_22:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-25_23:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_00:00:01 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_00:00:01 CN.PelletsCounter appCountsPerDay: 0
2017-05-26_00:00:01 CN.PelletsCounter appOpHoursPerDay: 0
2017-05-26_00:00:01 CN.PelletsCounter appTanklevel: -490.343542
2017-05-26_00:00:01 CN.PelletsCounter appUtilization: 0
2017-05-26_01:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_02:00:03 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_03:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_04:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_05:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_06:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_07:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_08:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_09:00:00 CN.PelletsCounter appCountsPerHour: 0
2017-05-26_10:00:00 CN.PelletsCounter appCountsPerHour: 0

2017-05-25_00:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_00:00:01 CN.PelletsAnforderung appCountsPerDay: 0
2017-05-25_00:00:01 CN.PelletsAnforderung appOpHoursPerDay: 22.8719444444444
2017-05-25_00:00:01 CN.PelletsAnforderung appUtilization: 95.0942028985507
2017-05-25_01:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_02:00:00 CN.PelletsAnforderung appCountsPerHour: 1
2017-05-25_03:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_04:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_05:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_06:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_07:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_08:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_09:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_10:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_11:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_12:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_13:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_14:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_15:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_16:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_17:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_18:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_19:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_20:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_21:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_22:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-25_23:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_00:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_00:00:00 CN.PelletsAnforderung appCountsPerDay: 1
2017-05-26_00:00:00 CN.PelletsAnforderung appOpHoursPerDay: 23.9997222222222
2017-05-26_00:00:00 CN.PelletsAnforderung appUtilization: 99.9987922705314
2017-05-26_01:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_02:00:03 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_03:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_04:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_05:00:01 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_06:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_07:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_08:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_09:00:00 CN.PelletsAnforderung appCountsPerHour: 0
2017-05-26_10:00:00 CN.PelletsAnforderung appCountsPerHour: 0

Ein anderer HourCounter, den ich für die Gartenbewässerung verwende funktioniert aber tadellos. Diesen habe ich 2 oder 3 Tage zuvor neu definiert. Seit dem läuft dieser aber zuverlässig.
Ich habe bewusst nichts an den 2 alten Countern gemacht.

Hier noch ein Auszug aus dem Logfile nach dem Neustart :
2017.10.04 22:26:04 0: Server shutdown
2017.10.04 22:26:12 3: [UtilsHourCounter] Init Done with Version 1.0.1.0 - 10.12.2014 (john)
2017.10.04 22:26:12 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 47.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 57.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 82.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 106.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 130.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 170.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 187.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnUpdate redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 224.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 255.
2017.10.04 22:26:12 1: Including fhem.cfg
2017.10.04 22:26:12 1: PERL WARNING: Subroutine UtilsHourCounter_Initialize redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 47, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnYear redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 57, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnMonth redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 82, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnWeek redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 106, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnDay redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 130, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnHour redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 170, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnCount redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 187, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHC_OnUpdate redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 224, <$fh> line 9.
2017.10.04 22:26:12 1: PERL WARNING: Subroutine appHCNotify redefined at ./FHEM/99_UtilsHourCounter_jwe.pm line 255, <$fh> line 9.

2017.10.04 22:26:26 3: HourCounter HourCounter Initialize.220 Init Done with Version 1.0.1.2 - 24.12.2014
2017.10.04 22:26:26 0: HourCounter CN.PelletsCounter Define.228 parameters: CN.PelletsCounter HourCounter Pelletschnecke:on Pelletschnecke:off
2017.10.04 22:26:26 0: HourCounter CN.PelletsAnforderung Define.228 parameters: CN.PelletsAnforderung HourCounter Pelletofen_Anforderung:off Pelletofen_Anforderung:on

2017.10.04 22:26:30 0: HourCounter CN.GartenwasserDurchfluss Define.228 parameters: CN.GartenwasserDurchfluss HourCounter A2_I12_20_Gartenwasser_Durchfluss:on A2_I12_20_Gartenwasser_Durchfluss:off

2017.10.04 22:26:45 1: Including ./log/fhem.save

2017.10.04 22:26:52 0: Featurelevel: 5.8

2017.10.04 22:26:52 0: HourCounter CN.PelletsCounter Run.598 first run done countsOverall:8
2017.10.04 22:26:52 0: HourCounter CN.PelletsAnforderung Run.598 first run done countsOverall:14
2017.10.04 22:26:52 0: HourCounter CN.GartenwasserDurchfluss Run.598 first run done countsOverall:14135

Die Warnmeldungen verstehe ich allerdings nicht ?
Ich stehe ziemlich auf dem Schlauch.

Jens
Puh, schwierig. Ich kann nur sagen,  das die Warnmeldungen mit "redefined" normal sind. Allerdings ist mir aufgefallen, dass bei deiner Definition

2017.10.04 22:26:26 0: HourCounter CN.PelletsAnforderung Define.228 parameters: CN.PelletsAnforderung HourCounter Pelletofen_Anforderung:off Pelletofen_Anforderung:on

off und on vertauscht sind. Soll das so sein? Damit zählst du dann die Zeit ohne Anforderung.

Gab es irgendwann einen Stromausfall oder FHEM Absturz?

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 05 Oktober 2017, 00:11:54
off und on vertauscht sind. Soll das so sein? Damit zählst du dann die Zeit ohne Anforderung.

Gab es irgendwann einen Stromausfall oder FHEM Absturz?

Ja, Danke, das sollte eigentlich anders sein. Ist mir noch nicht aufgefallen, da ich "nur" die Anzahl der Starts auswerte.

Habe es gefunden ! Habe doch was verändert. Das Attribut event-on-change-reading hatte ich auf 1 gesetzt um das Logfile kleiner zu bekommen. Und das funktiniert ja auch, es wird nichts geschrieben :-)
Muss dann mal sehen ob ich das so belasse und es auch funktioniert.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wasserwerk33 am 28 Januar 2018, 20:35:17
Hallo Leute

Ich habe da mal eine Frage ist vielleicht auch eine dumme.

Ich habe den HourCounter als Betriebsstundenzähler für meine alter Uhr an der Wand, die zum aufziehen ist missbraucht. Ich vergesse nämlich sie alle 14 Tage aufzuziehen. Wie kann ich den Tageszähler Stundenzähler wieder zurücksetzen auf null? Ich habe einen Dummy angelegt der als Start/Stopp Knopf das Resetensimulieren soll. Der Dummy ist im hourcounter mit Dummy:1 und Dummy:0 hinterlegt.

defmod Uhraufziehen HourCounter Uhr_Dummy:1 Uhr_Dummy:0
attr Uhraufziehen event-on-update-reading 1
attr Uhraufziehen room Uhr
attr Uhraufziehen stateFormat tickDay Tage\
tickHour Stunden[ /code]

Danke für die Hilfe
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 28 Januar 2018, 21:14:23
Vielleicht hilft dir das hier weiter:

set <name> app.* <value>

Any reading with the leading term "app", can be modified.
This can be useful for user-readings.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wasserwerk33 am 30 Januar 2018, 23:05:59
@pappn

Wie definiere ich das den? Stelle mich wohl dumm an.

Kannst du mir helfen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 30 Januar 2018, 23:58:39
Die app.* Readings gibt es erst wenn du UtilsHourCounter einbindest. Siehe FHEMWiki zu HourCounter oder CommandRef. Hast du dir das Wiki und die CommandRef dazu angesehen?

Nur um 14 Tage á 24 Std ablaufen zu lassen ist Hour Counter vielleicht auch nicht das Mittel der Wahl.

Warum nicht eine Kombi aus dummy, notify und at?
z.B. ganz simpel so: define Uhr_Test dummy
attr Uhr_Test room Test
attr Uhr_Test webCmd Aufgezogen

define Uhr_timer notify Uhr_Test:Aufgezogen define alarm at +336:00 set Uhr_Test Aufziehen
attr Uhr_Timer room Test
Damit kannst du beim Dummy auf Aufgezogen klicken, wenn du das erledigt hast, und 14 Tage später wechselt der Wert des Dummys auf Aufziehen. Das kann man natürlich weiter ausbauen. Zusätzliche notifiys, weitere dummys etc. Ganz nach belieben.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wasserwerk33 am 31 Januar 2018, 19:41:34
@pappn

Ja gelesen habe ich aber nur das Wiki aber das mit dem utilshourcounter hatte ich so noch nicht verstanden. Hatte den hourcounter genommen weil es mir einfach schien. Aber das was du mit dummy und notify sagst ist besser

Danke
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 08:41:50
Hallo,
Ich ich möchte  das Modul für meine Gasauswertung nutzen.
Der Zählerstand wird in dem Modul wie gewünscht hochgezählt.

Wie kann man sich jetzt Tages, Monats, Jahreswerte anzeigen lassen.
Genau genommen möchte ich mir in einer Readingsgroup folgendes anzeigen lassen:
Zitat
Gasverbrauch
Januar 2017
Februar 2017
März 2017
...u.s.w.

Die Daten werden zwar in ein Filelog geschrieben aber irgendwie habe ich keine Ahnung wie ich zu meinen Werten komme.

Ich hoffe ihr könnt mir helfen.
Gruß Thomas
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 14 Februar 2018, 09:40:30
Hallo,
Ich ich möchte  das Modul für meine Gasauswertung nutzen.
Der Zählerstand wird in dem Modul wie gewünscht hochgezählt.

Wie kann man sich jetzt Tages, Monats, Jahreswerte anzeigen lassen.
Genau genommen möchte ich mir in einer Readingsgroup folgendes anzeigen lassen:
Die Daten werden zwar in ein Filelog geschrieben aber irgendwie habe ich keine Ahnung wie ich zu meinen Werten komme.

Ich hoffe ihr könnt mir helfen.
Gruß Thomas
Schau mal bei readingsgroup bzw. readingshistory. Das sollte dir helfen.

Gesendet von meinem HUAWEI VNS-L31 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 13:17:42
Schau mal bei readingsgroup bzw. readingshistory. Das sollte dir helfen.

Gesendet von meinem HUAWEI VNS-L31 mit Tapatalk



Readingsgroup und readingshistory ist doch nur ein Anzeigemodul oder!?
Ich benötige erst einmal die monatlichen Daten. Und wie geschrieben nicht nur Monat & Vormonat sondern für jeden Monat
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 14 Februar 2018, 16:19:56
Dann richte dir zunächst erst mal 99_UtilsHourCounter wie im Wiki beschrieben ein. https://wiki.fhem.de/wiki/HourCounter
Das liefert dir dann appCountsPerDay, appCountsPerMonth und appCountsPerYear. Damit hast du dann alle Tages, Monats und Jahreswerte im Log und kannst sie mit Readingshistory tabellarisch oder graphisch als SVG darstellen.

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 16:42:55
Dann richte dir zunächst erst mal 99_UtilsHourCounter wie im Wiki beschrieben ein. https://wiki.fhem.de/wiki/HourCounter
Das liefert dir dann appCountsPerDay, appCountsPerMonth und appCountsPerYear. Damit hast du dann alle Tages, Monats und Jahreswerte im Log und kannst sie mit Readingshistory tabellarisch oder graphisch als SVG darstellen.

Gesendet von meinem SM-T580 mit Tapatalk



Das gleiche funktioniert doch mit dem Statistik Modul, oder?
Dann hab ich die aktuellen Tages, Monats und Jahreswerte im log. Aber nicht die Werte für jeden Monat, Jahr zugeordnet geloggt?
Aber kann ich die dann auf den jeweiligen Monat in der readingshistory darstellen?
Also wie soll das dann funktionieren das dort der Wert für Januar, Februar, März... richtig zugeordnet wird?!
Entweder wir reden aneinander vorbei oder ich verstehe es nicht.

Vielen Dank im Voraus
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 14 Februar 2018, 17:53:43
Das gleiche funktioniert doch mit dem Statistik Modul, oder?
Dann hab ich die aktuellen Tages, Monats und Jahreswerte im log. Aber nicht die Werte für jeden Monat, Jahr zugeordnet geloggt?
Aber kann ich die dann auf den jeweiligen Monat in der readingshistory darstellen?
Also wie soll das dann funktionieren das dort der Wert für Januar, Februar, März... richtig zugeordnet wird?!
Entweder wir reden aneinander vorbei oder ich verstehe es nicht.

Vielen Dank im Voraus
Die aktuellen Werte sind z.B. appCountsPerDayTemp für den laufenden Tag. Für jeden Tag bekommst du einen Eintrag (Reading) als appCountsPerDay also 365 pro Jahr, die du dann entsprechen anzeigen oder auswerten kannst. Siehe Anhang.

Das gleiche gilt für Monat (appCountsPerMonthTemp für den laufenden Monat, ein Eintrag appCountsPerMonth pro Monat) und Jahr analog.


Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 19:57:46
Die aktuellen Werte sind z.B. appCountsPerDayTemp für den laufenden Tag. Für jeden Tag bekommst du einen Eintrag (Reading) als appCountsPerDay also 365 pro Jahr, die du dann entsprechen anzeigen oder auswerten kannst. Siehe Anhang.

Das gleiche gilt für Monat (appCountsPerMonthTemp für den laufenden Monat, ein Eintrag appCountsPerMonth pro Monat) und Jahr analog.


Gesendet von meinem SM-T580 mit Tapatalk



Soll heißen in 365 Tagen habe ich
365 neue appCountsPerDay Readings untereinander im HourCounter?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 19:58:40
Soll heißen in 365 Tagen habe ich
365 neue appCountsPerDay Readings untereinander im HourCounter? Oder meinst du damit das in diesem Reading täglich die neuen Werte kommen?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 14 Februar 2018, 21:41:45
In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778

Gesendet von meinem SM-T580 mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 22:41:30
In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778

Gesendet von meinem SM-T580 mit Tapatalk


Ok, das habe ich nun verstanden und war mir eigentlich auch soweit klar.
Meine eigentliche Frage war ja wie ich die Daten aus dem Logfile in eine Readingshistory, Dummy oder sonst irgendwie bekomme wo dann folgendes zu finden ist.
Zitat
Gasverbrauch
Januar 2017 = 778m3
Februar 2017 = 666m3
März 2017...
...

Jahr 2016 = 1111m3
Jahr 2017 = 2222m3

Ich möchte eben in FHEM eine Art Liste oder Tabelle auf der, auf dem ersten Blick sichtbar ist, wie viel Gas ich in welchem Monat oder Jahr verbraucht habe und man sofort vergleichen kann wie der Vorjahresverbrauch im gleiche Monat war.
Dies ist doch eigentlich der Sinn des ganzen Mitschneidens der Gasuhr. Ich möchte es vergleichen können
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 14 Februar 2018, 23:10:17
Ok, das habe ich nun verstanden und war mir eigentlich auch soweit klar.
Meine eigentliche Frage war ja wie ich die Daten aus dem Logfile in eine Readingshistory, Dummy oder sonst irgendwie bekomme wo dann folgendes zu finden ist.
Ich möchte eben in FHEM eine Art Liste oder Tabelle auf der, auf dem ersten Blick sichtbar ist, wie viel Gas ich in welchem Monat oder Jahr verbraucht habe und man sofort vergleichen kann wie der Vorjahresverbrauch im gleiche Monat war.
Dies ist doch eigentlich der Sinn des ganzen Mitschneidens der Gasuhr. Ich möchte es vergleichen können
Genau! Das sollte sich mit einer Kombination aus Readingshistory und readingsgroup bewerkstelligen lassen.
Dazu muss ich dich aber auf die Command Ref und WIKI verweisen. Ich habe mit Readingshistory noch nicht gearbeitet.
Ob und wie das graphisch mit SVG im Monatsvergleich über mehrere Jahre gehen könnte, kann ich auch nicht sagen. Hier gilt auch Command Ref oder ggf. WIKI lesen.

Gesendet von meinem SM-T580 mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 14 Februar 2018, 23:49:45
Noch eine andere Frage.

wie und wo müsste ich etwas an der "99_UtilsHourCounter.pm" oder wo auch immer ändern das mir die readings

appCountsPerHourTemp
appCountsPerMonthTemp
appCountsPerWeekTemp
appCountsPerYearTemp

keine ganzen Zahlen sondern *0,01 geloggt werden.
Also jeder Count sind bei mir 0,01m³
Nun wird in meiner Logdatei leider keine m³ ausgegeben sondern mit falscher Kommastelle. Also statt 0,50m³ wird 50 angezeigt.
Mit Userreadings könnte ich neue Readings für alle bauen
Tagesverbrauch {sprintf (ReadingsVal("$name","countsPerDay",0)*0.01)}countsPerDay",0)
das müsste ich dann aber für viele Readings machen und es würden dann viele Readings doppelt drin stehen.
Daher dachte ich, kann man es direkt ändern!?

Vielen Dank im voraus
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 15 Februar 2018, 08:39:25
Deswegen ja Readingshistory um die Werte aus dem Log zu holen und ReadingsGroup zur Darstellung.

Wenn die Readingsgroup definiert ist, kannst du mit einer Zeile
attr xxxx valueformat {sprintf("%.2f m³",$VALUE*0.01)}alle Readings berechnen und formatieren. Ich mache genau das Gleiche, wenn ich für die Darstellung appOpHours* in Liter umrechne.

Dazu gibt es etliche Beispiele in der Command Ref, dem Wiki und im Forum.
Was hast du denn dazu bisher gelesen?

Gesendet von meinem SM-T580 mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Depechem am 15 Februar 2018, 11:15:36
In diesem Reading stehen täglich die Werte des vergangenen Tages. Die Werte Der davor liegenden Tage sind im LogFile gespeichert.

Anbei ein Beispiel aus meinem LogFile mit den Operating Hours, da ich keine Counts logge.

2018-01-07_00:00:01 BrennerTest2 appOpHoursPerDay: 0.912222222222222
.
.
2018-01-08_00:00:01 BrennerTest2 appOpHoursPerDay: 3.22055555555556
.
.
2018-01-09_00:00:00 BrennerTest2 appOpHoursPerDay: 2.64527777777778

Gesendet von meinem SM-T580 mit Tapatalk

Hallo pappn,
ein SVG mit Balkendiagramm habe ich nun hinbekommen.
Dazu aber folgendes.
Im Filelog wird um 0 Uhr das Reading "appCountsPerDay" mit 9.84 m³ geschrieben.
2018-02-14_00:00:19 CN.Gasverbrauch appCountsPerDay: 9.84
Das bedeutet ja das am 13.02.18 von 0 Uhr bis 23.59 Uhr 9.84 m³ geloggt wurden!? Richtig oder?

Nun wird durch den Filelog Eintrag der Gasverbrauch des Tages aber im SVG der Tagesverbrauch für den 14.02.18 angenommen. Weil Datum des loggs ja der 14.02.18 ist.
Siehe Bild im Anhang sind die Balkendiagramme nun im falschen Tag.
Wo muss ich ansetzen um dies korrekt anzeigen zu können.

Gruß Thomas


Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 15 Februar 2018, 17:38:28
Hallo pappn,
ein SVG mit Balkendiagramm habe ich nun hinbekommen.
Dazu aber folgendes.
Im Filelog wird um 0 Uhr das Reading "appCountsPerDay" mit 9.84 m³ geschrieben.
2018-02-14_00:00:19 CN.Gasverbrauch appCountsPerDay: 9.84
Das bedeutet ja das am 13.02.18 von 0 Uhr bis 23.59 Uhr 9.84 m³ geloggt wurden!? Richtig oder?

Nun wird durch den Filelog Eintrag der Gasverbrauch des Tages aber im SVG der Tagesverbrauch für den 14.02.18 angenommen. Weil Datum des loggs ja der 14.02.18 ist.
Siehe Bild im Anhang sind die Balkendiagramme nun im falschen Tag.
Wo muss ich ansetzen um dies korrekt anzeigen zu können.

Gruß Thomas
Klar, der Wert kann ja erst gelogged werden, wenn der Tag rum ist. Für die korrekte Darstellung solltest du dir logProxy ansehen. Damit kannst du die Darstellung auf den richtigem Tag rücken.

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: DarkT am 19 Februar 2018, 15:36:39
hallo zusammen,

habe den hour Counter wie folgt definiert:

defmod WZ.Tur.Counter HourCounter HM_TuerStatus_Terasse:.open HM_TuerStatus_Terasse:.close

um meinen Homematic Türsensor zu monitoren:

defmod HM_TuerStatus_Terasse CUL_HM 59F819
attr HM_TuerStatus_Terasse IODev CUL_0
attr HM_TuerStatus_Terasse actCycle 002:50
attr HM_TuerStatus_Terasse actStatus alive
attr HM_TuerStatus_Terasse alarmDevice Sensor
attr HM_TuerStatus_Terasse alarmSettings alarm0,|HM_TuerStatus_Terasse:open|Terrassen Tür offen|on
attr HM_TuerStatus_Terasse alias Terassen Tür
attr HM_TuerStatus_Terasse autoReadReg 4_reqStatus
attr HM_TuerStatus_Terasse devStateIcon .*open:fts_door_open .*closed:fts_door
attr HM_TuerStatus_Terasse expert 2_raw
attr HM_TuerStatus_Terasse firmware 1.0
attr HM_TuerStatus_Terasse group Terassentür,Wohnzimmer
attr HM_TuerStatus_Terasse model HM-SEC-SCo
attr HM_TuerStatus_Terasse room Z_System->Komponenten
attr HM_TuerStatus_Terasse serialNr OEQ0564496
attr HM_TuerStatus_Terasse subType threeStateSensor

Leider sehe ich keine Events. Hat einer eine Idee was ich falsch definiert habe?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 19 Februar 2018, 19:50:37
Bin mir nicht ganz sicher, aber vielleicht solltest du den Punkt weglassen und so definieren:

defmod WZ.Tur.Counter HourCounter HM_TuerStatus_Terasse:open HM_TuerStatus_Terasse:close
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: DarkT am 19 Februar 2018, 21:25:07
Bin mir nicht ganz sicher, aber vielleicht solltest du den Punkt weglassen und so definieren:

defmod WZ.Tur.Counter HourCounter HM_TuerStatus_Terasse:open HM_TuerStatus_Terasse:close

Ich habe das gerade auch mal probiert. Leider selbes Ergnis :(
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 24 Februar 2018, 13:54:05
Ich habe das gerade auch mal probiert. Leider selbes Ergnis :(
Wie sieht den das Reading im Log aus?

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: elmer am 04 April 2018, 17:19:10
Ich lasse jetzt Hourcounter die Stunden zählen die mein Mähroboter fährt, ist es möglich das ich mir ca. alle 30 Stunden eine Pushnachricht schicken kann wenn der Mäher 30 Stunden unterwegs war.

Das sollte natürlich immer nach 30 Stunden passieren und nich nur einmal.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: maci am 14 November 2018, 21:11:25
Ich habe den Hourcounter erfolgreich in Betrieb.
Ich habe alle meine Log auf DbLog. Nur den Hourcounter nicht.

Meine Frage: gibt es die Möglichkeit dass der Hourcounter auch über DbLog funktioniert?
Ich 15 Zähler im Einsatz und mir wäre es sehr recht, wenn auch dieses Modul über DbLog funktionieren würde.

Habe schon gesucht, aber noch keine Möglichkeit gesehen.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: riker1 am 21 November 2018, 14:01:07
Hallo,

Hätte ne Frage zu Brötje Eurotronic und Betriebsstundenzähler.
die Eurotronic D hat den X1 Anschluss , extra für Betriebsstundenzähler.

Hat da jemand mal die Betriebsstunden abgegriffen?

Danke Thomas
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: M.Piet am 15 Dezember 2018, 16:56:23
Hallo Zusammen,

ein klasse Modul, dessen Installation auf Anhieb geklappt hat.

Ich habe nur eine Verständnisfrage.

appOpHoursPerDay - Betriebsstunden des Tages
tickDay - Event wird nach Tageswechsel gefeuert bevor die Tageszähler resettiert werden

Was ist der Unterschied? Wie habe ich das zu deuten? Müsste das nicht beides die Betriebsstunden des Tages aufzählen?
appOpHoursPerDay hat aktuell als Wert 5.58
tickDay hat aktuell als Wert 7

Danke für eine kurze Aufklärung.

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Tomk am 24 Dezember 2018, 06:57:35
Guten morgen zusammen,

ich habe gerade ein wenig mit HourCounter rum gespielt und wollte folgenden Anwendungsfall damit angehen:
Ich werde bei Bewegungen vor der Camera per Message am Handy benachrichtigt. Funktioniert super und soll auch so bleiben, mit einer Einschränkung: wenn aufgrund von Starkregen, oder arbeiten vor der Haustür ständig Bewegungen erkannt werden, würde ich die Benachrichtigung gerne schlafen legen.
D.h. wenn viele Ereignisse in kurzer Zeit kommen soll die Benachrichtigung für kurze Zeit deaktiviert werden. Allerdings ist mir der Zählerwert pro stunde zu grob... ich bräuchte einen Zählwert pro minute, oder alle 30sec.
Wie kann ich sowas am besten realisieren?

Danke vorab!
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: M.Piet am 25 Dezember 2018, 14:06:51
Kann denn keine sagen, was der Unterschied ist?

Zitat
appOpHoursPerDay - Betriebsstunden des Tages
tickDay - Event wird nach Tageswechsel gefeuert bevor die Tageszähler resettiert werden
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: John am 25 Dezember 2018, 14:49:16
@M.Piet
Zitat
Ich habe nur eine Verständnisfrage.

appOpHoursPerDay - Betriebsstunden des Tages
tickDay - Event wird nach Tageswechsel gefeuert bevor die Tageszähler resettiert werden

Was ist der Unterschied? Wie habe ich das zu deuten? Müsste das nicht beides die Betriebsstunden des Tages aufzählen?
appOpHoursPerDay hat aktuell als Wert 5.58
tickDay hat aktuell als Wert 7
Der Wert von tickDay hat keine weitere Bedeutung, sondern dient nur zum feuern des Events.  Damit alle Event-Optionen greifen muss sich der Wert ändern.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 11 Januar 2019, 01:11:07
Hallo,

mein Reading appTanklevel funktioniert seit einer weile nicht mehr zuverlässig.
Anfangs hatte ich parallel zu meinem Pelletschenkenmotor ein Solid-State-Relais das mir die Betriebsstunden der Pelletschenke lieferte. Da der Eingang an dem das Relais anschglossen war kaputt ging habe ich einen Induktiven Näherungsschalter eingebaut, die mir nun die Umdrehungen der Pelletschnecke liefert.
In der 99_UtilsHourCounter.pm habe ich zur Berechnung im Dayly tasks folgende Zeile eingefügt :

# --------------------------------------------------
# dayly tasks
....
# Aenderung JWE Tanklevel Pelletlager berechnen
#  my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$pulseTimePerDay*0.0007533;

    my $appTanklevel = ReadingsVal ($name,'appTanklevel',0 )-$appCountsPerDay*0.0360387684115563;

Die erste (auskommentierte) Zeile hat immer funktioniert.
Die zweite ist die aktuelle. Diese funktioniert nicht immer richtig. Manchmal sind es nur 1-2 Kg wobei es 20-30 Kg sein müssten.

Habe leider keine Ahnung an was das liegen könnte. Kann mir jemand helfen ?

Jens

Hier noch ein Bild in dem ich gelbe Markierungen gemacht habe.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 15 Januar 2019, 06:44:44
Guten Morgen, hat keiner eine Idee ?
Jens
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 15 Januar 2019, 08:49:10
Nun, es gibt da ja auch grundsätzliche Unterschiede:
- pulseTimePerDay ist die tägliche Laufzeit in Sek. (Aus dem WIKI: pulseTimePerDay Zeitdauer in Sekunden über alle aufgetretenen Puls-Phasen des akt. Tages)
- appCountsPerDay zählt die Einschaltvorgänge pro Tag. (Aus dem WIKI: appCountsPerDay Tageszähler, wird bei Tageswechsel aktualisiert (Arbeitszähler ist countsPerDay)

Die Berechnung mit pulseTimePerDay ist also die Zeit die dein Pelletschenkenmotor gelaufen ist, wohingegen appCountsPerDay angibt wie oft dein Pelletschenkenmotor gelaufen ist.
Wenn nicht sichergestellt ist, dass die Fördermenge pro Einschaltvorgang immer konstant ist, ist klar dass die Ergebnisse sich deutlich unterscheiden.

Vielleicht guckst du mal hier: https://wiki.fhem.de/wiki/HourCounter
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 15 Januar 2019, 09:18:58
Der Unterschied ist mir bewusst. Ich habe das System bei mir auch grundsätzlich umgestellt.
Evtl. habe ich mein Problem nicht verständlich genug geschildert.

Es hat eigentlich immer gut funktioniert. Seit dieser Saison, ab Oktober (meine Heitung ist von April bis Oktober aus) funktioniert es nicht immer.
diese ist schön in dem angehängten Screeshot zu sehen.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 15 Januar 2019, 10:51:26
Bist du sicher, dass die Events auch sauber und vollständig gefeuert werden? Ansonsten stimmt der natürlich der count nicht und dann auch nicht die berechnete Menge.

Gesendet von meinem Moto G (5) mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 15 Januar 2019, 17:54:24
Gute Frage. Ja, so wie ich es beobachte schon. Aktuell sind es 613 Impulse die dann 22,1 Kg ergeben. Gestern waren es 25, 9 Kg. Das haut schon hin.
Es sieht so aus, allea ausser der Berechnung des Tankinhaltes funktioniert. (https://uploads.tapatalk-cdn.com/20190115/b95579143430819f0910e303af291db1.jpg)

Gesendet von meinem F5121 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 15 Januar 2019, 18:20:06
Dann habe ich momentan auch keine bessere Idee.
Hast du, für die Tage wo er falsch gerechnet hat, mal nachgesehen welcher Wert für appCountsPerDay im log steht?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Jewe am 25 Januar 2019, 00:35:05
Dann habe ich momentan auch keine bessere Idee.
Hast du, für die Tage wo er falsch gerechnet hat, mal nachgesehen welcher Wert für appCountsPerDay im log steht?

Hallo,
so, nun konnte ich mir es endlich anschauen. Die Werte sind in Ordnung. An allen Tagen passt der appCountsPerDay  Wert.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skycrack am 27 Februar 2019, 11:23:37
Hallo,
ich werte mit Hourcounter schon den Gaszählerstand über einen Readcontakt aus. Das fuktioniert soweit gut.
Dort gibt es einen klaren on:off Status.

Nun möchte ich das Modul benutzen um die Brennerstarts zu zählen. pro/h pro Tag und diese grafisch darstellen.
Die Brennerstarts sind bei mir in einem Reading was ich aus dem ebus der Therme auslese und Zählt immer hoch.
Das reicht natürlich nicht als Bedingung für den Hourcounter. Hat jemand eine Idee wie das "define" in meinem Fall auszusehen hat?
Sollte ich ein notify bei Readingsänderung auf ein Dummy machen und diesen als Grundlage für den Hourcounter nehmen oder kann man das eleganter lösen und sich die Bedingung direkt über das Reading der Brennerstart holen?
Würde mich über Denkanstöße freuen.
Gruß
Rene
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wzut am 27 Februar 2019, 11:56:31
Das reicht natürlich nicht als Bedingung für den Hourcounter.
sagt wer ?
die Doku ist doch eindeutig :
Zitat
define <name> HourCounter <regexp_for_ON> [<regexp_for_Off>]
Wenn auch [<regexp_for_Off>] definiert ist, so sprechen wir von einem bipolarem Ereignis, das einen EIN- sowie einen AUS-Zustand aufweist.
Bei bipolaren Ereignissen wird zusätzlich die Puls- sowie die Pausendauer ermittelt
du hast in dem Fall halt kein bipolares Ereignis und keine Puls und Pausenzeiten
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skycrack am 27 Februar 2019, 17:47:42
Hallo,
Das habe ich gelesen, setzt on:off voraus. Aber könnte ich als Bedingung/Trigger auch ein sich veränderntes Reading nehmen ohne über einen notify mit dummy zu gehen?
Gruß
Rene
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wzut am 27 Februar 2019, 18:55:18
sorge in deinem ebus Device dafür das das Brennstart Reading Events erzeugt (-> im Event Monitor prüfen ! ) 
und das nimmst du direkt für den HC , ohne notify und dummy Umweg
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: skycrack am 06 April 2019, 09:29:17
Vielen Dank, für den Hinweis. Es läuft.
Zudem wollte ich dir auf diesem Wege mal danken, dass du vielen Mitgliedern hier immer sehr zielführende Antworten lieferst, ohne eine Spur von Arroganz zu hinterlassen.
Habe eben mal deine Beiträge durchgeschaut und da ist mir das sehr positiv aufgefallen.
Habt einen schönen Tag.
LG Rene
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: baerm am 02 Oktober 2019, 20:41:08
Hallo,
ich verwende FHEM schon ne ganze Weile aber ich habe erst seit kurzem den HourCounter in Verwendung. Bei Dummy Devices funktioniert der problemlos, ich schaffe es aber nicht direkt für KNX devices einen HourCounter zum Laufen zu bringen. Ich denke ich mache hier immer noch etwas nicht richtig.

Kann mir jemand einen Tipp geben:

Mein KNX device:
defmod KNX_0503002 KNX 5/3/2:dpt1
attr KNX_0503002 IODev KNX
attr KNX_0503002 webCmd on:off

setstate KNX_0503002 off
setstate KNX_0503002 2019-10-02 19:08:16 last-sender fhem
setstate KNX_0503002 2019-10-02 19:08:16 setG1 off
setstate KNX_0503002 2019-10-02 19:08:16 state off


Versucht habe ich schon diverse Varianten, wobei hier keine funktioniert hat. Hier die Version die ich eigentlich für richtig gehalten habe:

defmod Betriebsstunden.Hunter2 HourCounter KNX_0503002 state:on KNX_0503002 state:off
Wäre sehr dankbar für einen Hinweis. Umweg über Dummy device funktioniert, will ich mir aber ersparen.
lg
Matthias
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Waldmensch am 02 Oktober 2019, 21:04:51
Hier mal meine funktionierende DEF. Charge ist das Reading und kann on/off sein. Ich glaube bei dir fehlt hinter dem Doppelpunkt nur ein Punkt, um das Leerzeichen wegzubügeln


stadtweg.lifepo.lader:Charge:.on stadtweg.lifepo.lader:Charge:.off

Gesendet von iPhone mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: baerm am 02 Oktober 2019, 21:29:02
Danke für den Hinweis. Das hatte ich auch schon probiert.

zb.:
defmod Betriebsstunden.Hunter2 HourCounter KNX_0503001 setG1:.on KNX_0503001 setG1:.off
Habe state, setG1, mit leerzeichen bzw ":" probiert.... keine Variante funktioniert :-(

Verbose 5 Logs haben mir auch keinen Hinweis geliefert... :-(
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Waldmensch am 03 Oktober 2019, 00:21:38
Lass doch mal den Eventmonitor laufen und triggere die Events. Das kannst Du ja quasi 1:1 dort rauskopieren und nur das Leerzeichen durch Punkt ersetzen.


Gesendet von iPhone mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: baerm am 03 Oktober 2019, 21:19:52
Danke. Daran habe ich mich schon orientiert. Hier der Auszug aus dem Eventmonitor:

2019-10-03 20:55:12 KNX KNX_0503001 setG1: on
2019-10-03 20:55:12 KNX KNX_0503001 on
2019-10-03 20:55:12 KNX KNX_0503001 last-sender: fhem

Wie sollte ich dann folgendes Defmod ändern?
defmod Betriebsstunden.Hunter2 HourCounter KNX_0503001 setG1:.on KNX_0503001 setG1:.off
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Waldmensch am 03 Oktober 2019, 22:55:33
Zwischen Device und Reading noch ein Doppelpunkt statt Leerzeichen. Siehst du doch oben in meinem Beispiel

Device:Reading:.on


Gesendet von iPhone mit Tapatalk
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: baerm am 03 Oktober 2019, 23:00:35
Das hatte ich auch schon probiert aber ohne Erfolg. Ich habe aber jetzt nochmals ein Clean gemacht und einen Test und nun hat es funktioniert.
Vielen Dank. Warum das bis jetzt nicht geklappt hat, ist mir nicht klar. Hauptsache es paßt jetzt.
lg,
Matthias
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Migul47 am 22 Oktober 2019, 06:18:01
Hallo,

hoffe meine Frage ist hier richtig. Hab das Modul lt. Wiki eingebaut und hat auch klaglos zwei Wochen funktioniert. Jetzt meldet mir Freezemon immer beim Tageswechsel:
2019.10.22 00:00:08 5: [Freezemon] myFreezemon found something that's not a REF HourCounter_Run  $VAR1 = 'CN.Trockner';

2019.10.22 00:00:08 5: Freezemon: something went wrong HourCounter_Run $VAR1 = 'CN.Trockner';
.
Ein Clear wurde schon versucht. Hat einer vielleicht eine Idee?
Definiert ist das Ganze so:
defmod CN.Trockner HourCounter KU.SD.Trockner_Sw.on KU.SD.Trockner_Sw.off
attr CN.Trockner DbLogExclude .*
attr CN.Trockner room 1Wohnung->HWR
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: micmuec am 24 Dezember 2019, 13:16:49
Hallo und Frohe Weinachten.

Ich hab ein kleines problem mit meinem Counter.
In meinen Logfiles tauchen keine, oder besser gesagt nur ein "app" readings auf.
erzeugt wird nur appConsumptionPerDayTemp,  ist auch das einzige was aktualisiert wird.
vieleicht kann mir da einer helfen...

Meine Def:
define CN.gastest HourCounter MYSENSOR_30:tripped4:.on MYSENSOR_30:tripped4:.off
setuuid CN.gastest 5de56138-f33f-5c79-5fd3-a06036ccd5e9bb51
attr CN.gastest event-min-interval tick.*:0,.*:3600
attr CN.gastest event-on-change-reading .*
attr CN.gastest group Counter
attr CN.gastest room Central Heating
attr CN.gastest stateFormat Counter:countsOverall Cons.Day:appConsumptionPerDayTemp
attr CN.gastest userReadings appConsumptionPerDayTemp:countsPerDay.* {ReadingsNum($NAME,"countsPerDay",0)*0.01;;;;}
und
define CN.EVENT notify CN\..*:tick.* {appHCNotify("%NAME","%EVTPART0","%EVTPART1");;;;}
meine Filelog def schaut so aus.
define CN.gastest.File FileLog ./log/CN.gastest-%Y.log (CN\.gastest:.*)und so
define CN.gastest.FileDay FileLog ./log/CN.gastest-Day-%Y.log CN.gastest:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*der zweite Filelog ist komplett leer.


MFG
 Michael
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit Max-Fensterkontakt
Beitrag von: hyper2910 am 14 Januar 2020, 20:45:41
Hallo,

Ich muss das nochmals vorholen.

Das ganze läuft bei mir jetzt seit bald6Jahren.  Kann man irgendwie den berechneten Tankinhalt in eine Datei schreiben???


@hyper2910
Mit Johns HourCounter Modul und ein paar kleineren Ergänzungen des UtilsHourCounter Moduls (siehe Wiki) lässt sich soetwas leicht realisieren.
Bei mir sieht es zurzeit wie im Anhang aus.

Pappn
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wzut am 14 Januar 2020, 22:05:21
hast du ihn denn schon wie bereits vor 6 Jahren vorgeschlagen berechnet ?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 17 Januar 2020, 20:40:18
Ja sicher
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 19 Januar 2020, 21:42:58
Hab die Berechnung des Tanklevels bis heute etwas umgestellt, aber im Prinzip ist das Ergebnis ja immer noch das Gleiche.
Es wird der verbleibende Tankinhalt berechnet und in das Reading "appTanklevel" des Devices "BrennerTest" geschrieben.
Dieses Reading lässt sich doch bequem per Filelog mitschreiben. z.B. in etwa so:
define Tanklevel.File FileLog ./log/Tanklevel-%Y.log BrennerTest:(appTanklevel).*
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ch.eick am 03 Februar 2020, 14:26:41
Hallo zusammen,

bei mir scheint der Trigger fuer das Zaehlen nicht zu reagieren.

ON_Regexp  Pool_PV:Pool_Pumpe_Status:.*laeuft
diese Varianten habe ich ebenfalls bereits getestet
Pool_PV:Pool_Pumpe_Status:Pool_Pumpe_laeuft
Pool_PV:Pool_Pumpe_Status:.Pool_Pumpe_laeuft
Pool_PV:Pool_Pumpe_Status:Pool_Pumpe_laeuft.*
Pool_PV:Pool_Pumpe_Status:.*Pool_Pumpe_laeuft.*

Das device ist "Pool_PV"
Das reading im device ist "Pool_Pumpe_Status"
Die Werte des readings sind "Pool_Pumpe_laeuft" oder "Pool_Pumpe_aus"

Das reading ist ein userreading und wird wie folgt gesetzt
Pool_Pumpe_Status { ReadingsVal("shelly02","power_0",0)>10 ? "Pool_Pumpe_laeuft" : "Pool_Pumpe_aus"}

Internals:
   DEF        Pool_PV:Pool_Pumpe_Status:.*laeuft
   FUUID      5d389335-f33f-81e9-0d72-f45c2572002b0181
   FVERSION   98_HourCounter.pm:v1.0.0-s11307/2016-04-25
   NAME       Pool_Counter
   NR         343
   NTFY_ORDER 50-Pool_Counter
   STATE      0
   TYPE       HourCounter
   VERSION    1.0.1.2 - 24.12.2014
   READINGS:
     2020-02-03 13:26:11   clearDate       2020-02-03 13:26:11
     2020-02-03 14:18:07   countsOverall   0
     2020-02-03 14:18:07   countsPerDay    0
     2020-02-03 13:45:00   pauseTimeEdge   0
     2020-02-03 13:45:00   pauseTimeIncrement 0
     2020-02-03 13:45:00   pauseTimeOverall 0
     2020-02-03 13:45:00   pauseTimePerDay 0
     2020-02-03 13:45:00   pulseTimeEdge   0
     2020-02-03 13:45:00   pulseTimeIncrement 549
     2020-02-03 13:45:00   pulseTimeOverall 549
     2020-02-03 13:45:00   pulseTimePerDay 549
     2020-02-03 14:18:07   state           0
     2020-02-03 13:26:11   tickChanged     600
     2020-02-03 14:18:07   tickDay         0
     2020-02-03 14:18:07   tickHour        0
     2020-02-03 14:18:07   tickMonth       0
     2020-02-03 14:18:07   tickUpdated     966
     2020-02-03 14:18:07   tickWeek        0
     2020-02-03 14:18:07   tickYear        0
     2020-02-03 14:18:07   value           -1
   helper:
     OFF_Regexp
     ON_Regexp  Pool_PV:Pool_Pumpe_Status:.*laeuft
     calledByEvent
     changedTimestamp 2020-02-03 14:18:07
     forceClear
     forceDayChange
     forceHourChange
     forceMonthChange
     forceWeekChange
     forceYearChange
     isFirstRun
     sdRoundHourLast 1580734800
     value      -1
     cmdQueue:
Attributes:
   alias      Pool_Counter
   event-min-interval .*:600
   event-on-change-reading .*
   group      PV Eigenverbrauch-Steuerung
   icon       time_timer
   interval   5
   room       Strom->Photovoltaik
   sortby     13
   verbose    0

Wo liegt denn da bitte mein Denkfehler?

Viele Gruesse
     Christian
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Wzut am 03 Februar 2020, 15:49:01
laut Wiki , da das Reading sowohl on als auch off Zustand haben kann :
Pool_PV:Pool_Pumpe_Status:.Pool_Pumpe_laeuft Pool_PV:Pool_Pumpe_Status:.Pool_Pumpe_aus
aber : kommt den auch ein Event Pool_Pumpe_x im Eventmonitor ? denn den brauch der Counter schon
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: ch.eick am 03 Februar 2020, 16:22:09
laut Wiki , da das Reading sowohl on als auch off Zustand haben kann :
Pool_PV:Pool_Pumpe_Status:.Pool_Pumpe_laeuft Pool_PV:Pool_Pumpe_Status:.Pool_Pumpe_aus
aber : kommt den auch ein Event Pool_Pumpe_x im Eventmonitor ? denn den brauch der Counter schon
Sehr merkwuerdig, das hatte ich auch bereits ausprobiert.....wenn ich mich nicht irre.

Jetzt habe ich es nochmals so eingetragen und es laeuft wieder.

Events kann ich auch sehen
2020-02-03 16:18:00.347 DOIF Pool_PV Pool_Pumpe_Status: Pool_Pumpe_laeuft
2020-02-03 16:18:00.347 DOIF Pool_PV e_Pool_Counter_pulseTimePerDay: 1445
2020-02-03 16:18:00.347 DOIF Pool_PV e_Pool_Counter_pulseTimeIncrement: 896
2020-02-03 16:18:00.347 DOIF Pool_PV Device: Pool_Counter

2020-02-03 16:20:40.576 DOIF Pool_PV Pool_Pumpe_Status: Pool_Pumpe_aus

Ich teste mal noch weiter.

Vielen Dank
     Christian
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: hyper2910 am 16 Februar 2020, 21:37:47
Hab die Berechnung des Tanklevels bis heute etwas umgestellt, aber im Prinzip ist das Ergebnis ja immer noch das Gleiche.
Es wird der verbleibende Tankinhalt berechnet und in das Reading "appTanklevel" des Devices "BrennerTest" geschrieben.
Dieses Reading lässt sich doch bequem per Filelog mitschreiben. z.B. in etwa so:
define Tanklevel.File FileLog ./log/Tanklevel-%Y.log BrennerTest:(appTanklevel).*

Also es wird alles ins Log geschrieben aber nicht der Tanklevel :(
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: pappn am 18 Februar 2020, 15:20:46
Wie ist denn dein Filelog definiert?

Gesendet von meinem SM-T580 mit Tapatalk

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Loctite am 01 April 2020, 19:51:06
Hallo.

Ich habe soeben gesehen, das heute ein Wochenwechsel stattgefunden hat.

Aus dem Log
2020-04-01_01:00:00 CN.Gaszaehler appCountsPerWeek: 0

Ist das ein Bug ?
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: R@Home am 01 April 2020, 20:41:47
Hallo zusammen,
ja, mir ist Anfang der Woche auch aufgefallen, dass das Event für den Wochenwechsel täglich sogar 2x ausgeführt wird. Das 1. Mal um 00:00 Uhr und dann erneut noch mal um 01:00 Uhr.
Der 2. Aufruf hat zur Folge dass in den Readings "appCountsPerWeek" und "appOpHoursPerWeek" jeweils 0 steht.

Nachdem ich den Verbose Level für das Modul auf 4 gesetzt habe sind folgende Einträge im Log zu sehen.
2020.04.01 00:00:00 4: HourCounter Cn_Heizung Run.738 tickHour fired
2020.04.01 00:00:00 4: HourCounter Cn_Heizung Run.746 tickDay fired
2020.04.01 00:00:00 4: HourCounter Cn_Heizung Run.754 tickWeek fired
2020.04.01 00:00:00 4: HourCounter Cn_Heizung Run.762 tickMonth fired
...
...
2020.04.01 01:00:00 4: HourCounter Cn_Heizung Run.738 tickHour fired
2020.04.01 01:00:00 4: HourCounter Cn_Heizung Run.754 tickWeek fired
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Loctite am 01 April 2020, 22:00:55
Ich hatte so was ähnliches schon immer.
countsPerDay wurde immer erst um 01:00 Uhr auf Null gesetzt. Das habe ich für die Tagesanzeige benutzt, also hatte ich immer eine Linie von 00:00 Uhr zu 01:00 Uhr.
Aber daran hatte ich mich schon gewöhnt :)

Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Loctite am 03 April 2020, 18:29:28
appCountsPerWeek wird jetzt jeden Tag um 01:00 Uhr auf Null gesetzt.

Edit: Nein es war 00:00:01

Warum passiert das jetzt ?

EDIT2:
Ok, diese Nacht ist nichts passiert.
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: docb am 13 Mai 2020, 21:56:12
Grüße Euch, kann es sein, dass der Wikieintrag nicht passt beim Einbinden der 99_UtilsHourCounter.pm?
Aktuell steht da:
define CN.EVENT notify CN\..*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");;}Da triggert bei mir nichts und ich glaube auch die zwei ;; sind am Ende nicht mehr nötig. Und eben der eine Backslash samt Punkt dahinter muss / kann raus, kann das sein? So funktioniert es jedenfalls bei mir:
define CN.EVENT notify CN.*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");}
Viele Grüße
doc
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: Nestor am 25 Juli 2020, 00:19:34
Here is a small patch to generate $hash->{NOTIFYDEV} and optimize event processing.
Inspired by this thread https://forum.fhem.de/index.php/topic,111938.15.html

--- - 2020-07-25 00:17:28.358989882 +0200
+++ /srv/fhem/FHEM/98_HourCounter.pm 2020-07-25 00:09:25.947705598 +0200
@@ -261,6 +261,8 @@
   $modules{HourCounter}{defptr}{$name} = $hash;
   RemoveInternalTimer($name);
 
+  notifyRegexpChanged($hash, "$onRegexp|$offRegexp");
+
   # wait until alle readings have been restored
   InternalTimer( int( gettimeofday() + 15 ), "HourCounter_Run", $name, 0 );
   return undef;
Titel: Antw:Modul HourCounter - Betriebsstundenzähler mit einem Fensterkontakt
Beitrag von: shamal2008 am 31 Juli 2020, 17:07:49
Hallo Doc,

du hast mit ziemlicher Sicherheit recht. Ich habe das Modul gestern in Betrieb genommen und die "app"-Readings trotz 5x lesen des Wiki nicht reinbekommen... nun auf der x-sten Seite des Threads... finde ich die Lösung und siehe da - die Readings sind vorhanden - zumindest mal 3 davon.

appOpHoursPerDayTemp
appUtilizationTemp
appUtilizationTempOld
   

Wie ich zu den restlichen im Wiki beschriebenen komme, ist mir leider bislang noch ein Rätsel...

lg
Shamal

Grüße Euch, kann es sein, dass der Wikieintrag nicht passt beim Einbinden der 99_UtilsHourCounter.pm?
Aktuell steht da:
define CN.EVENT notify CN\..*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");;}Da triggert bei mir nichts und ich glaube auch die zwei ;; sind am Ende nicht mehr nötig. Und eben der eine Backslash samt Punkt dahinter muss / kann raus, kann das sein? So funktioniert es jedenfalls bei mir:
define CN.EVENT notify CN.*:tick.* { appHCNotify("$NAME","$EVTPART0","$EVTPART1");}
Viele Grüße
doc