Homematic Skript – Automatisches Quittieren von Servicemeldungen bei Funkstörungen

Wer ein größeres Homematic-Netz bestehend aus vielen Funksendern betreibt, kennt das leidige Thema sporadisch auftretende Funkstörungen, die dazu führen, dass die LED der CCU2 für die Servicemeldungen eigentlich dauerhaft blinkt. So wird man schnell „blind“ für wichtige Meldungen, die dann im Speicher der CCU2 landen.

Dazu zählen z.B. komplette Ausfälle oder leere Batterien der Geräte. Daher zeige ich Euch heute, wie Ihr mit einem einfachen Skript diese Meldungen quittieren könnt sobald diese aufgetreten sind. Meldungen, die weiterhin aktiv sind wie z.B. „Gerätekommunikation gestört“, „Batterieladezustand gering“ oder „Konfigurationsdaten stehen zur Übertragung an“ bleiben davon unbetroffen.

BezeichnungAmazonELV-ShopELV-Bausatz
4 GB SD-KarteLinkLinknicht verfügbar
Powerline AdapterLinkLinknicht verfügbar
Funkmodul Raspberry Pinicht verfügbarnicht verfügbarBausatz
Raspberry Pi 2LinkLinknicht verfügbar
Raspberry Pi3LinkLinknicht verfügbar

Es werden mit dem Skript nur die Meldungen quittiert, die Ihr sonst händisch abgearbeitet hättet wie z.B. „Gerätekommunikation war gestört“. Ein Beispiel sehr Ihr im unteren Bild. Der Button „Bestätigen“ ist nicht ausgegraut und die Meldung kann daher quittiert werden.

Um das Skript einzubinden, muss ein neues Programm erzeugt werden. Dazu klickt Ihr auf „Programme und Verknüpfungen“ —> „Programme und Zentralenverknüpfungen“ und dort auf „Neu“.

Als Bedingung: Wenn… wählt Ihr „Systemzustand“ und „Servicemeldungen“ aus. Der Wertebereich wird mit größer als 0 gewählt. Außerdem muss noch „bei Aktualisierungen auslösen“ aktiviert werden.


Dadurch wird das Programm automatisch ausgeführt, wenn eine neue Servicemeldung auftaucht. Das Quittieren übernimmt dann unser Skript, welches wir im nächsten Schritt einfügen.

Dazu wählen wir bei Aktivität: Dann… „Skript“ aus. In das Fenster für das Skript kopiert Ihr nun folgenden Text:

Es sollte noch eine kleine Verzögerung von 1-2 Sekunden eingesetzt werden, dann läuft das ganze zuverlässiger.

Das war es auch schon. Damit verhindert Ihr ungewollte Servicemeldungen und erhaltet ab sofort nur noch die wichtigen Meldungen, die wirklich relevant sind!

Passende Beiträge


4 Comments

  • Kay-Uwe Mönkedieck

    30. Juni 2017

    Hallo liebe HomeMatic Freunde,
    ich habe das Script von Holger eingefügt und bekomme leider diese Meldung:
    Error 1 at row 7 col 27 near ^„AL-“ # address # „:0.STICKY_UNREACH“);
    if (aldp_obj) {
    if (aldp_obj.Val
    Error 1 at row 7 col 27 near ^„AL-“ # address # „:0.STICKY_UNREACH“);
    if (aldp_obj) {
    if (aldp_obj.Val
    Parse following code failed:

    Leider bin ich nicht sehr bewandert was Scripts angeht. Ich würde mich freuen wenn ihr mit bei diesem Problem weiterhelfen könntet. Vorab vielen lieben Dank.

    Kay-Uwe

    Reply
  • Björn

    20. April 2017

    bei mir hat es auch nicht auf anhieb funktionert. das Problem sind die anführungszeichen. Wenn man das skript per copy/paste in der homematic einfügt. Alle Anführungszeichen einmal löschen und neu setzen – das war’s.

    Reply
  • Holger

    9. März 2017

    Hallo Sebastian,
    bitte überprüfe mal Dein Skript, leider hakt es und lief bei mir nicht durch.
    Diese Variante funktioniert:

    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();
    }
    }
    }

    Gruß
    Holger

    Reply
    • Sebastian

      Sebastian

      9. März 2017

      Hallo Holger,
      vielen Dank! War wohl ein Tippfehler an einer Stelle. Habs mal geändert!

      Reply

Schreibe einen Kommentar