Howto - Servicemeldungen (per zPNP)
Verfasst: 27.07.2021, 07:27
Nachfolgend möchte ich euch mein das zPNP nutzende Programm samt Skript zum Senden von Servicemeldungen vorstellen. Das Servicemeldungen-Skript basiert im Kern auf dem von @alchy erzeugten Allinclusive-Skript, wurde von mir aber in vielen Teilen modifiziert.
Im Grunde genommen muss man hier nichts weiter machen, um die entsprechenden Servicemeldungen als Push-Nachrichten über das zPNP zu erhalten. Manchmal möchte man jedoch bestimmte Meldungen ausschließen. So werden z.B. bei HMIP-Heizungsgruppen immer zwei Meldungen erzeugt, wenn es ein Problem mit einem Heizungs- oder Wandthermostat gibt. Eine Meldung für den Thermostaten und eine zweite für die Heizungsgruppe. Daher kann es sinnvoll sein, eine der beiden Meldungen zu unterdrücken. Im Skript besteht die Möglichkeit, bestimmte Geräte, Gerätetypen und/oder Meldungstypen auszuschließen. Dazu gibt es zwei lokale Variablen "exDevicesList" und "exDeviceTypesList".
"exDevicesList" wird in der Form "Gerätname|Meldungstyp\t Gerätename|Meldungstyp" befüllt, also z.B.
wenn man Kommunikationsstörungen des Wettersensors und Sabotage-Meldungen des Fensterkontakts unterdrücken möchte. Lässt man den Meldungstyp weg, so werden sämtliche Servicemeldungen eines Geräts unterdrückt.
"exDeviceTypesList" wird in der Form "Gerätetyp|Meldungstyp\t Gerätetyp|Meldungstyp" befüllt, also z.B.
wenn man von allen Fensterkontakten des Typs "HM-Sec-Key" keine Kommunikationsstörungs- und Sabotagemeldungen und von allen Heizungsgruppen gar keine Servicemeldungen mehr erhalten möchte. Auch hier gilt, dass der Meldetyp optional ist.
Weiterhin sendet das Skript eine Push-Nachricht nach Beseitigung der Servicemeldungen. Da das natürlich unsinnig wäre für die unterdrückten Meldungen, wurde eine Systemvariable "CCU SV Servicemeldungen Vorliste" eingeführt, die man unter der lokalen Variablen "svServicesListPrev" beliebig benennen kann. Diese Systemvariable wird automatisch angelegt, wenn man das Skript erstmalig aufruft. Sie enthält eine Liste aller vorherigen Servicemeldungen außer den ausgeschlossenen. Die Verwendung der Systemvariablen "CCU SV Servicemeldungen Vorliste" ist optional. Nur wenn sie definiert wurde, erhält man Benachrichtigungen über die Beseitigung aller Servicemeldungen.
Die Liste bietet zudem den Vorteil, einen Überblick über das eine Servicemeldung auslösenden Gerät sowie dessen Geräte- und Meldungstyp zu erhalten. Wenn man also bestimmte Meldungen unterdrücken möchte, braucht man die entsprechenden Daten hier nur zu kopieren und in die obigen lokalen Variablen einfügen.
Batteriebetriebene HM- und HMIP-Geräte
Nachfolgend eine Liste aller im Skript berücksichtigten HM- und HMIP-Batterie-Devices, deren LowBat-Zustand erfasst wird:
Wie man sehen kann, werden hier im Unterschied zu der von eQ-3 benutzten Nomenklatur nur Großbuchstaben verwendet. Dies erleichtert den Umgang mit den Gerätetypen, weil eQ-3 leider nicht immer einheitlich mit Groß- und Kleinbuchstaben arbeitet. Unter "exDeviceTypesList" könnt ihr wahlweise Klein- oder Großbuchstaben oder eine gemischen Schreibweise für die Geräte- und die Meldungstpyen einsetzen. Diese werden innerhalb des Skript immer in Großbuchstaben umgewandelt.
ACHTUNG: Die Gerätnamen unter "exDevicesList" sind weiterhin "Case Sensitive"!
Falls noch jemand ein Gerät findet, was nicht in der Liste ist, immer her damit!
Bis dann,
Thorsten
Im Grunde genommen muss man hier nichts weiter machen, um die entsprechenden Servicemeldungen als Push-Nachrichten über das zPNP zu erhalten. Manchmal möchte man jedoch bestimmte Meldungen ausschließen. So werden z.B. bei HMIP-Heizungsgruppen immer zwei Meldungen erzeugt, wenn es ein Problem mit einem Heizungs- oder Wandthermostat gibt. Eine Meldung für den Thermostaten und eine zweite für die Heizungsgruppe. Daher kann es sinnvoll sein, eine der beiden Meldungen zu unterdrücken. Im Skript besteht die Möglichkeit, bestimmte Geräte, Gerätetypen und/oder Meldungstypen auszuschließen. Dazu gibt es zwei lokale Variablen "exDevicesList" und "exDeviceTypesList".
"exDevicesList" wird in der Form "Gerätname|Meldungstyp\t Gerätename|Meldungstyp" befüllt, also z.B.
Code: Alles auswählen
string exDevicesList = "DG Dach Wettersensor|UNREACH\t
UG Büro Fenster|ERROR_SABOTAGE";
"exDeviceTypesList" wird in der Form "Gerätetyp|Meldungstyp\t Gerätetyp|Meldungstyp" befüllt, also z.B.
Code: Alles auswählen
string exDeviceTypesList= "HM-Sec-Key|UNREACH\t
HMiP-HEATING";
Weiterhin sendet das Skript eine Push-Nachricht nach Beseitigung der Servicemeldungen. Da das natürlich unsinnig wäre für die unterdrückten Meldungen, wurde eine Systemvariable "CCU SV Servicemeldungen Vorliste" eingeführt, die man unter der lokalen Variablen "svServicesListPrev" beliebig benennen kann. Diese Systemvariable wird automatisch angelegt, wenn man das Skript erstmalig aufruft. Sie enthält eine Liste aller vorherigen Servicemeldungen außer den ausgeschlossenen. Die Verwendung der Systemvariablen "CCU SV Servicemeldungen Vorliste" ist optional. Nur wenn sie definiert wurde, erhält man Benachrichtigungen über die Beseitigung aller Servicemeldungen.
Die Liste bietet zudem den Vorteil, einen Überblick über das eine Servicemeldung auslösenden Gerät sowie dessen Geräte- und Meldungstyp zu erhalten. Wenn man also bestimmte Meldungen unterdrücken möchte, braucht man die entsprechenden Daten hier nur zu kopieren und in die obigen lokalen Variablen einfügen.
Batteriebetriebene HM- und HMIP-Geräte
Nachfolgend eine Liste aller im Skript berücksichtigten HM- und HMIP-Batterie-Devices, deren LowBat-Zustand erfasst wird:
Code: Alles auswählen
block9 = "HM-LC-SW1-BA-PCB|HM-LC-SW4-PCB|HM-LC-SW4-WM|HM-MOD-EM-8|HM-MOD-RE-8|HM-OU-CM-PCB|HM-SEN-RD-O|";
cr2016 = "HM-RC-4|HM-RC-4-B|HM-RC-KEY3|HM-RC-KEY3-B|HM-RC-P1|HM-RC-SEC3|HM-RC-SEC3-B|ZEL STG RM HS 4|";
cr2032 = "HM-PB-2-WM|HM-PB-4-WM|HM-PBI-4-FM|HM-SCI-3-FM|HM-SEC-TIS|HM-SWI-3-FM|HMIP-DLS|HMIP-FCI1|";
lr14x2 = "HM-OU-CFM-TW|HM-SEC-SIR-WM|";
lr14x3 = "HMIP-MP3P|";
lr3x1 = "HM-RC-4-2|HM-RC-4-3|HM-RC-KEY4-2|HM-RC-KEY4-3|HM-RC-SEC4-2|HM-RC-SEC4-3|HM-SEC-RHS-2|HM-SEC-SCO|HMIP-KRC4|HMIP-KRCA|HMIP-RC8|HMIP-SRH|HMIP-SWDO|HMIP-DBB|HMIP-KRCK|";
lr3x2 = "HM-DIS-WM55|HM-DIS-EP-WM55|HM-PB-2-WM55|HM-PB-2-WM55-2|HM-PB-6-WM55|HM-PBI-2-FM|HM-RC-8|HM-SEN-DB-PCB|HM-SEN-EP|HM-SEN-MDIR-SM|HM-SEN-MDIR-WM55|HM-TC-IT-WM-W-EU|HM-WDS30-T-O|HM-WDS30-OT2-SM|HMIP-STH|HMIP-STHD|HMIP-WRC2|HMIP-WRC6|HMIP-WT|HMIP-WTH|HMIP-WTH-2|HMIP-SAM|HMIP-SWDO-I|HMIP-SMI55|HMIP-SMI55-2|HMIP-SCI|HMIP-WRCD|HMIP-DSD-PCB|HMIP-WRCR|HMIP-STV|HMIP-SWDM|HMIP-WKP|HMIP-FCI6|";
lr3x3 = "HM-PB-4DIS-WM|HM-PB-4DIS-WM-2|HM-RC-DIS-H-X-EU|HM-SEN-LI-O|";
lr3x3a = "HM-RC-19|HM-RC-19-B|HM-RC-12|HM-RC-12-B|HM-RC-12-W|";
lr44x2 = "HM-SEC-RHS|HM-SEC-SC|HM-SEC-SC2|HM-SEC-SC-2|HMIP-WRCC2|";
lr6x2 = "HM-CC-RT-DN|HM-CC-VD|HM-CC-TC|HM-DIS-TD-T|HM-SEC-WDS|HM-SEC-WDS-2|HM-WDS10-TH-O|HM-WDS30-OT2-SM-2|HM-WDS40-TH-I|HM-WDS40-TH-I-2|HB-UW-SEN-THPL-I|HMIP-ETRV|HMIP-ETRV-2|HMIP-ETRV-C|HMIP-ETRV-C-2|HMIP-SLO|HMIP-SMI|HMIP-SMO|HMIP-SMO-2|HMIP-SMO-A|HMIP-SMO-A-2|HMIP-SPI|HMIP-STHD|HMIP-STHO|HMIP-STHO-A|HMIP-SPDR|HMIP-SWD|ETRV-HMIP-B-UK|HMIP-STE2-PCB|HMIP-WGC|HMIP-STI|";
lr6x3 = "HM-SEC-MDIR|HM-SEC-MDIR-2|HM-SEC-MDIR-3|HM-SEC-KEY|HM-SEC-KEY-S|HM-SEC-KEY-O|HM-SEC-SD|HM-SEN-MDIR|HM-SEN-MDIR-O|HM-SEN-MDIR-O-2|HM-SEN-WA-OD|HM-WDS100-C6-O|HM-WDS100-C6-O-2|HMIP-ASIR|HMIP-ASIR-B1|HMIP-ASIR-O|HMIP-ASIR-2|HMIP-SWO-B|HMIP-SWO-PL|HMIP-DLD|";
lr6x4 = "HM-CCU-1|HM-ES-TX-WM|HM-WDC7000|";
fixed = "HM-SEC-SD-2|HMIP-SWSD|HMIP-MIO16-PCB|HMIP-PCBS|HMIP-PCBS2|HMIP-PCBS-BAT|HMIP-MOD-RC8|HMIP-MOD-OC8|HMIP-USBSM|HMIP-FWI|HMIP-SFD|ELV-SH-WSC|";
recharge = "HM-SEC-WIN|HM-SEC-SFA-SM|";
Wie man sehen kann, werden hier im Unterschied zu der von eQ-3 benutzten Nomenklatur nur Großbuchstaben verwendet. Dies erleichtert den Umgang mit den Gerätetypen, weil eQ-3 leider nicht immer einheitlich mit Groß- und Kleinbuchstaben arbeitet. Unter "exDeviceTypesList" könnt ihr wahlweise Klein- oder Großbuchstaben oder eine gemischen Schreibweise für die Geräte- und die Meldungstpyen einsetzen. Diese werden innerhalb des Skript immer in Großbuchstaben umgewandelt.
ACHTUNG: Die Gerätnamen unter "exDevicesList" sind weiterhin "Case Sensitive"!
Falls noch jemand ein Gerät findet, was nicht in der Liste ist, immer her damit!
Bis dann,
Thorsten