NEWS
Alarmliste
-
Hi,
ich automatisiere in meinem Betrieb sowie anfangs daheim mit Saia PCD Steuerungen, dort kann ich einfach eine Alarmliste anlegen, die aktive sowie vergangene Alarme anzeigen.
Zudem besteht die Möglichkeit bereits vergangene sowie aktive Alarme zu acknowledgen.
Ist sowas auch in ioBroker realisierbar? Habe schon eine Eventliste mithilfe von Informationen aus diesem Forum umgesetzt, wenn zum Beispiel ein Funkaktor Batterie leer meldet, steht das auch dort drinnen, man kann aber nicht erkennen ob dieser noch ansteht, ich habe auch eine Gut-Meldung umgesetzt, aber wenn nun viele Events stattfinden, muss man scrollen um zu schauen ob der Alarm auch wieder Okay ist. Eine Übersicht so wie es mir die Saia PCD Visualisierung ermöglicht wäre genial.
Derzeit übermittle ich parallel die Alarme wie Batterie Leer und anderes via Modbus an die Saia PCD Steuerung und nutze beide Systeme parallel bzw. diese ergänzen sich, weil manche Dinge einfacher in ioBroker und andere Dinge in einer SPS einfach umzusetzen sind.
Ich habe als Beispiel ein Screenshot der Alarmliste wie ich diese auf der Steuerung verwende angehängt, um besser zum Verstehen zu geben, was ich meine.
Gruß
-
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:
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="lAPMQh8
ablUZ,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:2X37LI3
FAje|^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{9
bo3"><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:
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.