HourCounter: Unterschied zwischen den Versionen

Aus FHEMWiki
(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…“)
 
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 Laufzeiten, Auslastung, Verbräuchen
* Ermittlung von Betriebsstunden, Auslastung, Verbräuchen


== Zielsetzung des WIKI-Artikels ==
== Zielsetzung des WIKI-Artikels ==
Zeile 34: Zeile 34:


===Konkret===
===Konkret===
<pre>define CN.BRENNER HourCounter SHUTTER.BRENNER:onoff:.1 SHUTTER.BRENNER:onoff:.0</pre>
<pre>define CN.Test HourCounter SHUTTER.JOHN:onoff:.1 SHUTTER.JOHN:onoff:.0</pre>
In diesem Beispiel wurde ein MAX-Fensterkontakt mit Namen SHUTTER.BRENNER als Ereignis-Geber verwendet.
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 16. November 2013, 00: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

Web-Oberfläche