Immer wieder laufen im Zusammenspiel der Homematic-Komponenten auch temporäre Servicemeldungen auf, die daraufhinweisen wollen, dass die Kommunikation zu einem der Geräte (temporär) gestört ist/war. Gerade letzteres interessiert mich eigentlich nicht: wenn ich auf die Systemmeldungen schaue, will ich primär nur die aktuellen Störungen sehen.
Diese temporären Meldungen können bestätigt werden, nur wenn das unterbleibt, wird die Anzeige mit der Zeit immer unattraktiver, und irgendwann fallen dann auch wichtige Systemmeldungen nicht mehr auf. (Besonders im Sommer interessiert niemanden direkt, dass die Batterien im Heizungsventil leer sind..)
Ich bin nun im Forum über die Möglichkeit gestolpert, temporäre Meldungen automatisch zu bestätigen.
Das Skript dazu:
! HomeMatic-Script
! "KOMMUNIKATION GESTöRT" BEHEBEN
! http://www.christian-luetgens.de/homematic/hardware/funkstoerungen/servicemeldungen/Servicemeldungen.htm
string itemID;
string address;
object aldp_obj;
foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
address = dom.GetObject(itemID).Address();
aldp_obj = dom.GetObject("AL-" # address # ":0.STICKY_UNREACH");
if (aldp_obj) {
if (aldp_obj.Value()) {
aldp_obj.AlReceipt();
}
}
}
! Ende des Scripts
Ein weiteres Skript rufe ich dann vorsorglich nochmal alle Stunde auf:
! HomeMatic-Script
! "KOMMUNIKATION GESTöRT" BEHEBEN
! http://www.christian-luetgens.de/homematic/hardware/funkstoerungen/servicemeldungen/Servicemeldungen.htm
string itemID;
string address;
object aldp_obj;
string channel;
var x;
integer max=5;
foreach(itemID, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
address = dom.GetObject(itemID).Address();
aldp_obj = dom.GetObject("AL-" # address # ":0.UNREACH");
if (aldp_obj) {
if (aldp_obj.Value()) {
foreach (channel, dom.GetObject(itemID).Channels().EnumUsedIDs()) {
if (max > 0) {
x = dom.GetObject(channel).State();
max = max - 1;
}
}
}
}
}
! Ende des Scripts