Ja, so eine Alarmliste ist hilfreich. Ich hab das folgendermaßen realisiert:
1. einen Datenpunkt "Logbucheintrag" (Zeichenkette) erstellt.
2. für jedes Ereignis das geloggt werden soll ein Blockly Script wobei jedes Script immer den gleichen Datenpunkt (Logbucheintrag) füllt:
1564_2017-08-29.png
hier der Export dazu:
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="on" id="iOwZEigH..E)6rIx3mV7" x="138" y="62"><field name="OID">hm-rpc.0.MEQ0215124.2.STATE</field>
! <field name="CONDITION">ne</field>
! <statement name="STATEMENT"><block type="controls_if" id="@E}HEoxVP|Tv~=*!Fy(f"><mutation elseif="1"></mutation>
! <value name="IF0"><block type="logic_compare" id="ZVk/%XG;Km0WFs7:SVN{"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="7{9Zr+#)p~QKesp-gA_"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ0215124.2.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="*L~e|FyQh-v5SePK0T(J"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="FuEawI@lw7T0CO3ZQ3,J"><field name="VAR">Log</field> ! <value name="VALUE"><block type="text_join" id="6;3=g/{5lI=+1IZwkJs)"><mutation items="3"></mutation> ! <value name="ADD0"><block type="time_get" id="}Y9Q._9g4zQPmBP=ct-K"><mutation format="true" language="false"></mutation> ! <field name="OPTION">custom</field> ! <field name="FORMAT">JJJJ.MM.TT SS:mm:ss</field></block></value> ! <value name="ADD1"></value> ! <value name="ADD2"><block type="text" id="lAPMQh8ablUZ,P:v_:."><field name="TEXT">Die Haustür wurde aufgeschlossen</field></block></value></block></value>
! <next><block type="control" id="%f[tlX_!xt,S4^|ZhMvY"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Alarmanlage.Logbucheintrag</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="variables_get" id="-BaCOO]Xc^.T3,kir,i["><field name="VAR">Log</field></block></value></block></next></block></statement>
! <value name="IF1"><block type="logic_compare" id="A[11.S3B,tevANI!mA)l"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="FR#c)o%rCm4K/2vVXg"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.0.MEQ0215124.2.STATE</field></block></value> ! <value name="B"><block type="logic_boolean" id="4}c#}QoK0)#(|}Rk}%nS"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="vA9:2X37LI3FAje|^x}"><field name="VAR">Log</field>
! <value name="VALUE"><block type="text_join" id="@7F{2#~HTG4UyyR}ni{"><mutation items="3"></mutation> ! <value name="ADD0"><block type="time_get" id="nk8@y41pn(y_z{9bo3"><mutation format="true" language="false"></mutation>
! <field name="OPTION">custom</field>
! <field name="FORMAT">JJJJ.MM.TT SS:mm:ss</field></block></value>
! <value name="ADD1"></value>
! <value name="ADD2"><block type="text" id="/tlReuCQ!*nzP8!f!8NB"><field name="TEXT">Die Haustür wurde abgeschlossen</field></block></value></block></value>
! <next><block type="control" id="6|=|tMMcrr_Vp%f!Xs`/"><mutation delay_input="false"></mutation>
! <field name="OID">javascript.0.Alarmanlage.Logbucheintrag</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="variables_get" id="yiwbKEir-q.)I%0hCe^)"><field name="VAR">Log</field></block></value></block></next></block></statement></block></statement></block></xml>
3. Ein Node-red flow überwacht den Datenpunkt auf Änderung und schreibt eine Textdatei fort.
Hier der Flow:
1564_2017-08-29__1_.png
und hier der Export dazu:
! [
! {
! "id": "8447bc38.e01c9",
! "type": "tab",
! "label": "Logbuch_Alarm_schreiben"
! },
! {
! "id": "a8d40514.b20a88",
! "type": "file",
! "z": "8447bc38.e01c9",
! "name": "in Datei speichern",
! "filename": "C:\Users\Public\Log_Alarmanlage.txt",
! "appendNewline": true,
! "createDir": false,
! "overwriteFile": "false",
! "x": 350,
! "y": 120,
! "wires": []
! },
! {
! "id": "716b11d0.9892a",
! "type": "status",
! "z": "8447bc38.e01c9",
! "name": "",
! "scope": [
! "52ed51ac.85a6d"
! ],
! "x": 114,
! "y": 57.75,
! "wires": [
! []
! ]
! },
! {
! "id": "52ed51ac.85a6d",
! "type": "ioBroker in",
! "z": "8447bc38.e01c9",
! "name": "Logbucheintrag",
! "topic": "javascript.0.Alarmanlage.Logbucheintrag",
! "payloadType": "value",
! "onlyack": "",
! "func": "rbe",
! "gap": "",
! "x": 134,
! "y": 117.75,
! "wires": [
! [
! "a8d40514.b20a88"
! ]
! ]
! }
! ]
Das wars schon.