HourCounter: Unterschied zwischen den Versionen
John (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „'''HourCounter''' ist ein Perl-Modul, das die Anzahl von Ereignissen erfasst. Bei bipolaren Ereignissen wird zusätzlich die Puls- sowie die Pausendauer ermitt…“) |
John (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
* Ermittlung kumulierten Werte für Puls-/Pausedauer | * Ermittlung kumulierten Werte für Puls-/Pausedauer | ||
* Bereitstellung von Ereignissen zur Fortführung der Kumulation für Wochen- Tages- u. Monatswerte | * Bereitstellung von Ereignissen zur Fortführung der Kumulation für Wochen- Tages- u. Monatswerte | ||
* Ermittlung von | * Ermittlung von Betriebsstunden, Auslastung, Verbräuchen | ||
== Zielsetzung des WIKI-Artikels == | == Zielsetzung des WIKI-Artikels == | ||
Zeile 34: | Zeile 34: | ||
===Konkret=== | ===Konkret=== | ||
<pre>define CN. | <pre>define CN.Test HourCounter SHUTTER.JOHN:onoff:.1 SHUTTER.JOHN:onoff:.0</pre> | ||
Hier wird der HourCounter CN.TEST definiert. | |||
Ein MAX-Fensterkontakt mit Namen SHUTTER.BRENNER wird als Ereignis-Geber verwendet. | |||
Das Reading "onoff" wird als Trigger für unserem Zähler genutzt. | Das Reading "onoff" wird als Trigger für unserem Zähler genutzt. | ||
Bei den Fensterkontakten sehen diese Ereignisse wie folgt aus: | Bei den Fensterkontakten sehen diese Ereignisse wie folgt aus: | ||
Zeile 43: | Zeile 44: | ||
2013-11-15 23:19:24 MAX SHUTTER.JOHN onoff: 0 | 2013-11-15 23:19:24 MAX SHUTTER.JOHN onoff: 0 | ||
</pre> | </pre> | ||
Die neue Instanz weisst folgende Struktur auf | |||
<pre> | |||
Internals: | |||
CFGFN | |||
DEF SHUTTER.JOHN:onoff:.1 SHUTTER.JOHN:onoff:.0 | |||
NAME CN.Test | |||
NR 601 | |||
NTFY_ORDER 50-CN.Test | |||
STATE 0 | |||
TYPE HourCounter | |||
Readings: | |||
2013-11-15 23:30:15 clearDate 2013-11-15 23:30:15 | |||
2013-11-15 23:30:15 countsOverall 0 | |||
2013-11-15 23:30:15 countsPerDay 0 | |||
2013-11-15 23:30:15 pauseTimeIncrement 0 | |||
2013-11-15 23:30:15 pauseTimeOverall 0 | |||
2013-11-15 23:30:15 pauseTimePerDay 0 | |||
2013-11-15 23:30:15 pulseTimeIncrement 0 | |||
2013-11-15 23:30:15 pulseTimeOverall 0 | |||
2013-11-15 23:30:15 pulseTimePerDay 0 | |||
2013-11-15 23:30:15 state 0 | |||
2013-11-15 23:30:15 value 0 | |||
Helper: | |||
OFF_Regexp SHUTTER.JOHN:onoff:.0 | |||
ON_Regexp SHUTTER.JOHN:onoff:.1 | |||
calledByEvent | |||
changedTimestamp 2013-11-15 23:30:15 | |||
forceClear | |||
forceDayChange | |||
isFirstRun | |||
sdRoundHourLast 1384552800 | |||
value -1 | |||
</pre> | |||
=== Readings === | |||
{| class="wikitable sortable" | |||
|- | |||
! Reading !! Beschreibung | |||
|- | |||
| clearDate || Datum, zu dem alle kumulativen Readings über set .. clear gelöscht wurden | |||
|- | |||
| countsOverall || Absolutzähler für das Auftreten des ON-Ereignisses | |||
|- | |||
| countsPerDay || Tageszähler für das Auftreten des ON-Ereignisses | |||
|- | |||
| pauseTimeIncrement || Zeitdauer in Sekunden der Pause-Phase der letzten Periode | |||
|- | |||
| pauseTimeOverall || Zeitdauer in Sekunden über alle aufgetretenen Pause-Phasen | |||
|- | |||
| pauseTimePerDay || Zeitdauer in Sekunden über alle aufgetretenen Pause-Phasen des akt. Tages | |||
|- | |||
| pulseTimeIncrement || Zeitdauer in Sekunden der Puls-Phase der letzten Periode | |||
|- | |||
| pulseTimeOverall || Zeitdauer in Sekunden über alle aufgetretenen Puls-Phasen | |||
|- | |||
| pulseTimePerDay || Zeitdauer in Sekunden über alle aufgetretenen Puls-Phasen des akt. Tages | |||
|- | |||
| value || Aktueller Schaltzustand gemäss ON/OFF Ereignis | |||
|} | |||
=== Web-Oberfläche === | |||
Version vom 15. November 2013, 23:51 Uhr
HourCounter ist ein Perl-Modul, das die Anzahl von Ereignissen erfasst. Bei bipolaren Ereignissen wird zusätzlich die Puls- sowie die Pausendauer ermittelt. Im vorliegenden Beispiel wird ein Betriebsstundenzähler mit einem MAX-Fensterkontakt realisiert.
Features
- Erfassung von FHEM-Ereignissen
- Ermittlung der Häufigkeit pro Tag
- Ermittlung der Puls-/Pausendauer der letzten Schaltperiode
- Ermittlung kumulierten Werte für Puls-/Pausedauer
- Bereitstellung von Ereignissen zur Fortführung der Kumulation für Wochen- Tages- u. Monatswerte
- Ermittlung von Betriebsstunden, Auslastung, Verbräuchen
Zielsetzung des WIKI-Artikels
Erläuterung der Funktionalität zur weiterführenden Diskussion im Forum. Forum
Status
Das Modul befindet sich noch in der Evaluierungs-Phase. Es wurde noch keine Version veröffentlicht.
Voraussetzungen
keine besonderen Voraussetzungen. Das Modul ist anders als das Vorgängerskript nicht mehr an Max-Komponenten gebunden.
Definition
Abstrakt
define <name> HourCounter <regexp_for_ON> [<regexp_for_Off>]
<regexp_for_ON> ist ein regulärer Ausdruck der das Ereignis beschreibt. Wenn auch [<regexp_for_Off>] definiert ist, so sprechen wir von einem bipolarem Ereignis, das einen EIN- sowie einen AUS-Zustand aufweist. <regexp_for_ON> berschreibt in diesem Fall die positive Flanke,[<regexp_for_Off>] die negative Flanke. Die Struktur des regexp-Ausdruckes ist analog zu jener beim Notify aufgebaut.
Konkret
define CN.Test HourCounter SHUTTER.JOHN:onoff:.1 SHUTTER.JOHN:onoff:.0
Hier wird der HourCounter CN.TEST definiert. Ein MAX-Fensterkontakt mit Namen SHUTTER.BRENNER wird als Ereignis-Geber verwendet. Das Reading "onoff" wird als Trigger für unserem Zähler genutzt. Bei den Fensterkontakten sehen diese Ereignisse wie folgt aus:
2013-11-15 23:19:12 MAX SHUTTER.JOHN onoff: 1 .... 2013-11-15 23:19:24 MAX SHUTTER.JOHN onoff: 0
Die neue Instanz weisst folgende Struktur auf
Internals: CFGFN DEF SHUTTER.JOHN:onoff:.1 SHUTTER.JOHN:onoff:.0 NAME CN.Test NR 601 NTFY_ORDER 50-CN.Test STATE 0 TYPE HourCounter Readings: 2013-11-15 23:30:15 clearDate 2013-11-15 23:30:15 2013-11-15 23:30:15 countsOverall 0 2013-11-15 23:30:15 countsPerDay 0 2013-11-15 23:30:15 pauseTimeIncrement 0 2013-11-15 23:30:15 pauseTimeOverall 0 2013-11-15 23:30:15 pauseTimePerDay 0 2013-11-15 23:30:15 pulseTimeIncrement 0 2013-11-15 23:30:15 pulseTimeOverall 0 2013-11-15 23:30:15 pulseTimePerDay 0 2013-11-15 23:30:15 state 0 2013-11-15 23:30:15 value 0 Helper: OFF_Regexp SHUTTER.JOHN:onoff:.0 ON_Regexp SHUTTER.JOHN:onoff:.1 calledByEvent changedTimestamp 2013-11-15 23:30:15 forceClear forceDayChange isFirstRun sdRoundHourLast 1384552800 value -1
Readings
Reading | Beschreibung |
---|---|
clearDate | Datum, zu dem alle kumulativen Readings über set .. clear gelöscht wurden |
countsOverall | Absolutzähler für das Auftreten des ON-Ereignisses |
countsPerDay | Tageszähler für das Auftreten des ON-Ereignisses |
pauseTimeIncrement | Zeitdauer in Sekunden der Pause-Phase der letzten Periode |
pauseTimeOverall | Zeitdauer in Sekunden über alle aufgetretenen Pause-Phasen |
pauseTimePerDay | Zeitdauer in Sekunden über alle aufgetretenen Pause-Phasen des akt. Tages |
pulseTimeIncrement | Zeitdauer in Sekunden der Puls-Phase der letzten Periode |
pulseTimeOverall | Zeitdauer in Sekunden über alle aufgetretenen Puls-Phasen |
pulseTimePerDay | Zeitdauer in Sekunden über alle aufgetretenen Puls-Phasen des akt. Tages |
value | Aktueller Schaltzustand gemäss ON/OFF Ereignis |