1. Konfiguration Message Creator - St0Ma/ioBroker-MessageHandler GitHub Wiki

1. Konfiguration

Beispiel an der Message geöffnete Fenster

    # msgID: Eindeutige msgID, die im Javascript "MessageHandler" definiert ist.

Über die msgID erfolgt die Steuerung der Priorität, Loglevel (INFO, WARNING, ALARM, ERROR),die Vorgabe des Icons, der Iconfarbe, ob eine Nachricht nur einmal geloggt wird uvm.

    # msgID: 'WINDOW_ISOPEN_INFO', 

Datenpunkte, die als Trigger überwacht werden (auf die bei Veränderung von Werten reagiert wird). Es kann ein Datenpunkt in der Notation '' angegeben werden, oder mehrere wie folgt im Beispiel in der Notation ['', '',...]

    # triggerDP: ['javascript.0.FensterUeberwachung.RoomsWithOpenWindows'],
	

    # postMsg:

Nachricht nur erzeugen, wenn ein vorgegebener Datenpunkt einer bestimmten Bedingung entspricht. Im Beispiel müssen die Anzahl der geöffneten Fenster größer als 0 sein, damit die Nachricht "Fenster geöffnet" ausgelöst wird.

# dp: Datenpunkt dessen Wert der Bedingung entsprichen muss

    # comp: Vergleichsoperator. Es sind folgende Operatoren erlaubt:
  • == gleich
  • != ungleich
  • = größer gleich

  • <= kleiner gleich
  • größer

  • < kleiner
  • val: Wert

Die Nachricht wird erzeugt, wenn die Bedingung "dp comp val" eintritt.

    # delayTime: Verzögerungszeit in Sekunden für die Auslösung der Nachricht. 

In der Logik wird initial geprüft, ob die Bedingung gilt und erneut nach der Delay-Zeit. Erst wenn nach der Delay-Zeit auch die Bedingung der Nachricht gilt, wird die Nachricht erzeugt. Am Beispiel des Fenstersensors: die Nachricht soll erst ausgelöst werden, wenn das Fenster länger als 60*20 Sekunden (d.h. 20 Minuten) offen ist. In der Praxis macht das Setzen des Delays nur für einzelne Sensoren Sinn (und keine States, die gemeinsame Zustände (z.B. Gruppen von Fenstern abbilden)!)

    # repeatTime: Wiederholungszeit in Sekunden. Prüft im Intervall in Sekunden, ob die Bedingung der Nachricht gilt.

Die Nachricht wird frühestens nach der ersten konkreten Auslösung wiederholt. Wenn eine Delay-Zeit vorgegeben ist, beginnt die Wiederholungszeit nach der Delay-Zeit (sofern die Bedingung der Nachricht weiterhin gilt). Sofern Zwischenzeitlich der Datenpunkt erneut getriggert wird, wird ein bereits ausgelöster Timer zur Wiederholung erneut gestartet.

    # postMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '>', val:0, delayTime:0, repeatTime:0}, 
	
	
    # removeMsgDP: Nachricht entfernen, wenn ein vorgegebener Datenpunkt einer bestimmten Bedingung entspricht.

Im Beispiel wird die Nachricht "Fenster geöffnet" entfernt, wenn die Anzahl der geöffneten Fenster gleich 0 ist. # dp: Datenpunkt dessen Wert der Bedingung entsprichen muss # comp: Vergleichsoperator. Es sind folgende Operatoren erlaubt:

  • == gleich
  • != ungleich
  • = größer gleich

  • <= kleiner gleich
  • größer

  • < kleiner
  • val: Wert

Die Nachricht wird entfernt, wenn die Bedingung "dp comp val" eintritt.

Beispiel:

   # removeMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '==', val:0}, // Nachricht enfernen, wenn die Bedingung eintritt
	
   # msgText_<Nr> : Diese Attribute bestimmen die Ausgabe des Nachrichtentextes.

Es kann ein statischer Text ausgegeben werden durch das Attribut text:

Beispiel:

   # msgText_1: {text: 'Fenster ist geöffnet'},

Der Wert eines Datenpunkts kann in die Fehlernachricht mit ausgegeben werden.

Beispiel:

   # msgText_2: {dp: 'javascript.0.FensterUeberwachung.RoomsWithOpenWindows'},

In Datenpunkten mit Zahlen kann eine Aufbereitung der Zahl vorgenommen werden über die Attribute format und decimals:

Beispiel:

   # msgText_2: {dp: 'deconz.0.Sensors.18.temperature', format:'"##,#"', decimals:1},

Die Attribute im einzelnen:

   # format: '#.###,##' // Ausgabe mit 1000er Trennzeichen Punkt und Komma
   # decimals: Ausabe mit vorgegebenen Nachkommastellen

Es können beliebig viele msgText_ Attribute (mit fortlaufender Nummer) eingefügt werden (msgText_1, msgText_2, msgText_3, usw.).Der Nachrichtentext ergibt sich aus der Konkatenation aller einzelner Bausteine.

Beispiel:

    # msgText_1: {text: ''},
    # msgText_2: {dp: 'javascript.0.FensterUeberwachung.RoomsWithOpenWindows'},
	
	
    # countEventsDP: 

Information wieviele Ereignisse für die Meldung eingetreten sind. Dieses Element ist optional. Die Anzahl wird über den vorgegebenen Datenpunkt ermittelt.

Beispiele:

Für das Beispiel werden die Anzahl der offenen Fenster ausgegeben.

    countEventsDP: 'javascript.0.FensterUeberwachung.WindowsOpen'

Beispiel:

Konfiguration für eine Nachricht im Message Creator

{
        msgID: 'WINDOW_ISCLOSED_INFO', 
        triggerDP: ['javascript.0.FensterUeberwachung.RoomsWithOpenWindows'], // , 'javascript.0.FensterUeberwachung.WindowsOpen'
        postMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '==', val:0},
        removeMsgDP: {dp:'javascript.0.FensterUeberwachung.WindowsOpen', comp: '>', val:0}, // Nachricht enfernen, wenn die Bedingung eintritt
        msgText_1: {text: ''},
        msgText_2: {dp: 'javascript.0.FensterUeberwachung.RoomsWithOpenWindows'},
        countEventsDP: 'javascript.0.FensterUeberwachung.WindowsOpen'
 },

Fenster geöffnet