NEWS
[Vorlage] Servicemeldungen Volume2
-
Hi
Ich habe im ersten post noch ein script eingestellt, das die Batterien eurer Geräte checkt.
Wenn ihr Geräte habt, die noch nicht in der Liste des Servicemeldungsscripts enthalten sind, dann werden diese gelistet
Ihr könnt die mir dann mitteilen, idealerweise gleich Native Bezeichnung (aus dem Script) und der Bezeichnung der
Batterien. Wird dann in das Servicemeldungsscript eingepflegt.vG Looxer
-
@looxer01 Schönes Script!
Es wäre noch gut, wenn man eine Messenger Instanz und einen Empfänger eintragen könnte.
Ich habe es mit Telegram probiert und da bekommen alle eine Meldung.
Oder habe ich etwas übersehen?Grüße
-
@rantanplan
Hi, bin gerade beruflich unterwegs.
Anschauen kann ich mir das nächste Woche.
Was meinst du mit , dass alle eine Meldung bekommen?Vg looxer
-
@looxer01 sagte in [Vorlage] Servicemeldungen Volume2:
Was meinst du mit , dass alle eine Meldung bekommen?
Hi, ich habe mehrere Telegram-Benutzer, die unterschiedliche Meldungen aus ioBroker bekommen.
Die Servicemeldungen aus Deinem Script werden an alle Benutzer gesendet, die in der Instanz Telegram.0 eingetragen sind.Grüße
-
zum Batteriescript als Ergänzung
2x AAA: , 'HmIP-STV', 'HmIP-WKP' 2x AA: , 'ELV-SH-SW1-BAT' 3x AA: , 'HmIP-ASIR-2'
Danke
-
Hi,
neue Versionen sind online.Servicmeldungsscript Version 1.05:
- Fix fuer Status 0 fuer historische Meldungen. Text aus Tabelle: StandardstatusMessages verwendet // Text angepasst in Tabelle fuer 0
- Batteriemeldung erweitert
- Telegram Instanz und User hinzugefügt
- WICHTIGE Aenderung fuer REGA subscription: Intelligenterer Umgang bei vielen Aenderungen von Anzahl der Servicmeldungen aus der CCU
Batteriescript Version 1.1
- doppelte Listungen verhindert, wenn alle Geräte gelistet werden
- Native IDs für aa und aaa batterien hinzugefügt // Danke an Quarkmax
-
Ich habe eine Sabotage Meldung provoziert. Die Nachricht wird auch versendet (Telegram) aber der Zähler (Anzahl_SABOTAGE) steht bei mir auf 0
Es wäre super, wenn man noch die Anzahl der zu überwachenden Instanzen konfigurieren könnte.
Ich habe 4 rpc Instanzen.
rpc.0 = CUxD
rpc.1 = Homematic
rpc.2 = Homematic IP
rpc.3 = Virtuelle (Gruppen) -
@knallochse
Hi,
bei Homematic classic werden die Sabotage Meldungen unter MessageType "Error" geführt und da ist auch der Zähler bei dir auf 1. Das ist anders bei HMIP. Da werden die Sabotage Meldungen unter Sabotage geführt.
Ich könnte das zwar code technisch abfangen. Das wäre aber irgendwie schon sehr Spaghetti.zu den instanzen.
CUxD. Das sind ja vermutlich keine HM-Geräte, die darunter laufen. Da also die Datenstrukturen vermutlich anders sind, sind dann auch die Meldungen nicht identisch. Ich habe keine Ahnung wie das funktioniert.Die anderen schaue ich mir an.
Die virtuellen Gruppen habe ich z.Zt draußengelassen. Der Mehrwert bei Meldungen zur Gruppe ist ohnehin fragwürdig. Allerdings sind die nur auskommentiert im Coding und lassen sich einfach aktivieren.vG Looxer
Edit: also eigentlich lassen sich die Instanzen ja jetzt schon konfigurieren.
Im Grunde müssen ja nur die vorgegebenen Instanzen um 1 erhöht werden.
Das befindet sich in den "Experteneinstellungen":const idsUNREACH = []; // @ts-ignore $('state[id=hm-rpc.0.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // @ts-ignore // $('state[id=hm-rpc.2.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // auskommentiert keine Gruppenmeldungen const idsSTICKY_UNREACH = []; // @ts-ignore $('state[id=hm-rpc.0.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // auskommentiert keine Gruppenmeldungen const idsConfig_Pending = []; // @ts-ignore $('state[id=hm-rpc.0.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // @ts-ignore // $('state[id=hm-rpc.2.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // auskommentiert keine Gruppenmeldungen const idsUPDATE_PENDING_ALARM = []; // @ts-ignore $('state[id=hm-rpc.0.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // @ts-ignore //$('state[id=hm-rpc.2.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsLOWBAT_ALARM = []; // @ts-ignore $('state[id=hm-rpc.0.*.LOWBAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsDEVICE_IN_BOOTLOADER_ALARM = []; // @ts-ignore $('state[id=hm-rpc.0.*.DEVICE_IN_BOOTLOADER_ALARM]').each(id => idsDEVICE_IN_BOOTLOADER_ALARM.push(id)); // nur HM-Classic const idsERROR = []; // @ts-ignore $('state[id=hm-rpc.0.*.ERROR]').each(id => idsERROR.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.ERROR]').each(id => idsERROR.push(id)); // @ts-ignore // $('state[id=hm-rpc.2.*.ERROR]').each(id => idsERROR.push(id)); // auskommentiert keine Gruppenmeldungen const idsFAULT_REPORTING = []; // @ts-ignore $('state[id=hm-rpc.0.*.FAULT_REPORTING]').each(id => idsFAULT_REPORTING.push(id)); // nur HM-Classic const idsSABOTAGE_ALARM = []; // @ts-ignore $('state[id=hm-rpc.0.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // @ts-ignore //$('state[id=hm-rpc.2.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsERROR_NON_FLAT_POSITIONING_ALARM = []; // @ts-ignore $('state[id=hm-rpc.0.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.1.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
-
@looxer01 sagte in [Vorlage] Servicemeldungen Volume2:
@knallochse
Hi,
bei Homematic classic werden die Sabotage Meldungen unter MessageType "Error" geführt und da ist auch der Zähler bei dir auf 1. Das ist anders bei HMIP. Da werden die Sabotage Meldungen unter Sabotage geführt.
Ich könnte das zwar code technisch abfangen. Das wäre aber irgendwie schon sehr Spaghetti.Dann hab ich es verstanden. Ich bräuchte keine Änderung.
zu den instanzen.
CUxD. Das sind ja vermutlich keine HM-Geräte, die darunter laufen. Da also die Datenstrukturen vermutlich anders sind, sind dann auch die Meldungen nicht identisch. Ich habe keine Ahnung wie das funktioniert.Eine Überwachung der CUxD Geräte vom Skript ist nicht nötig. Aber die rpc.0 Instanz wird ja überwacht, und die Geräte zur Überwachung befinden sich ja in anderen Instanzen. Wird dann noch alles richtig zugeordnet bzw. überwacht?
Die anderen schaue ich mir an.
Die virtuellen Gruppen habe ich z.Zt draußengelassen. Der Mehrwert bei Meldungen zur Gruppe ist ohnehin fragwürdig. Allerdings sind die nur auskommentiert im Coding und lassen sich einfach aktivieren.In den Gruppen befinden sich ja die einzelnen Geräte und diese werden ja schon überwacht.
vG Looxer
-
Von meiner Seite vielen Dank für dein Skript. Schön, dass du dich der Sache annimmst.
-
@knallochse sagte in [Vorlage] Servicemeldungen Volume2:
Eine Überwachung vom Skript ist nicht nötig. Aber die rpc.0 Instanz wird ja überwacht, und die Geräte zur Überwachung befinden sich ja in anderen Instanzen. Wird dann noch alles richtig zugeordnet bzw. überwacht?
ich denke ja. Dann muß also CuxD einfach nur auschgeschlossen werden.
@knallochse sagte in [Vorlage] Servicemeldungen Volume2:
In den Gruppen befinden sich ja die einzelnen Geräte und diese werden ja schon überwacht.
genau, also ist die Hinzunahme der Gruppen nicht notwendig.
Ich habe für dich die Configuration im folgenden Code gemacht. Diesen müßtest du durch den Vorhandenen ersetzen.
const idsUNREACH = []; // @ts-ignore $('state[id=hm-rpc.1.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // @ts-ignore // $('state[id=hm-rpc.3.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // auskommentiert keine Gruppenmeldungen const idsSTICKY_UNREACH = []; // @ts-ignore $('state[id=hm-rpc.1.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // @ts-ignore //$('state[id=hm-rpc.3.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id)); // auskommentiert keine Gruppenmeldungen const idsConfig_Pending = []; // @ts-ignore $('state[id=hm-rpc.1.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // @ts-ignore // $('state[id=hm-rpc.3.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id)); // auskommentiert keine Gruppenmeldungen const idsUPDATE_PENDING_ALARM = []; // @ts-ignore $('state[id=hm-rpc.1.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // @ts-ignore //$('state[id=hm-rpc.3.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsLOWBAT_ALARM = []; // @ts-ignore $('state[id=hm-rpc.1.*.LOWBAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // @ts-ignore //$('state[id=hm-rpc.3.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsDEVICE_IN_BOOTLOADER_ALARM = []; // @ts-ignore $('state[id=hm-rpc.1.*.DEVICE_IN_BOOTLOADER_ALARM]').each(id => idsDEVICE_IN_BOOTLOADER_ALARM.push(id)); // nur HM-Classic const idsERROR = []; // @ts-ignore $('state[id=hm-rpc.1.*.ERROR]').each(id => idsERROR.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.ERROR]').each(id => idsERROR.push(id)); // @ts-ignore // $('state[id=hm-rpc.3.*.ERROR]').each(id => idsERROR.push(id)); // auskommentiert keine Gruppenmeldungen const idsFAULT_REPORTING = []; // @ts-ignore $('state[id=hm-rpc.1.*.FAULT_REPORTING]').each(id => idsFAULT_REPORTING.push(id)); // nur HM-Classic const idsSABOTAGE_ALARM = []; // @ts-ignore $('state[id=hm-rpc.1.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // @ts-ignore //$('state[id=hm-rpc.3.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen const idsERROR_NON_FLAT_POSITIONING_ALARM = []; // @ts-ignore $('state[id=hm-rpc.1.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id)); // @ts-ignore $('state[id=hm-rpc.2.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
-
@looxer01 Vielen Dank.
Ich habe den Code durch deinen ersetzt. Ich beobachte das ganze mal eine Weile.
Schade, dass sich Batteriemeldungen schlecht simulieren lassen. -
@knallochse
sehr gerne.
Ich mache die Instanz wahrscheinlich noch variabel. Dann ist es einfacher anzupassen für alle die, die CuxD verwenden -
Hi,
Version 1.06 ist online:- GruppenSelektoren auskommentiert fuer unreach#
- Korrektur fuer REGA subcription:Timer variable zuruecksetzen
- HM-Classic Sabotage counts werden umgeleitet von error auf Sabotage
- Instanzen zur Selektion sind jetzt als Variable definiert - z.B. um CuxD auszuschliessen
Looxer01
-
@looxer01 mit der 1.6 scheint der Zähler bei Auslösen eines Sabotage Aktors nicht mehr zu funktionieren
in der Nachricht (Telegram) steht SABOTAGE
-
@knallochse
vielen Dank
Fehler ist gefunden. Fix kommt mit der nächsten Version.vG Looxer
-
Version 1.07 ist online.
- Zähler für Sabotage funktioniert jetzt für HMClassic und HMIP
- Text StandardMessages angepasst
- Fuer alle Messenger Services kann die gewuenschte Instanz angegeben werden
Looxer
-
ist das im 1.07 richtig so
// telegram Einstellungen const TelegramUser = "";
beim 1.06 sieht das so aus
// telegram Einstellungen const TelegramIstanz = 0; const TelegramUser = "";
-
@emil70
Hi,
ja, das ist ok, weil jetzt alle Messenger mit der Instanz einstellbar sindconst services = ['email', 'whatsApp', 'Signal', 'Telegram', 'Pushover', 'Pushsafer']; const MessengerScope = { 'UNREACH_ALARM': [false, true, false, false, false, false], 'LOWBAT_ALARM': [false, true, false, false, false, false], 'SABOTAGE_ALARM': [false, true, false, false, false, false], 'CONFIG_PENDING': [false, true, false, false, false, false], 'Sonstige': [false, false, false, false, false, false], 'keineSM': [false, true, false, false, false, false], } const MessengerInstanz = [0, 0, 0, 0, 0, 0 ]; // Instanz des Messengers
-
@looxer01 Mit der 1,07 funktioniert der Zähler für Sabotage Super