Ich verwende Homematic schon seit einiger Zeit und habe etliche Geräte im ganzen Haus verteilt. Dabei sind sehr viele Unterputzgeräte, wie etwa Dimmer oder Schalter, doch es sind auch einige batteriebetriebene Geräte dabei. Je nachdem, wie häufig die Geräte senden und empfangen müssen, kann die Batterie bis zu 1,5 Jahre halten. Die Laufzeit der Batterien hat aber auch viel mit der Entfernung zur Basis CCU2 zu tun.

rp_Homematic-CCU2-1200x477.jpg

Ein Gerät, das weiter entfernt steht, muss durch Übertragungsfehler häufiger senden. Auch mein Haustürsensor wird wahrscheinlich öfter angesprochen als mein Sensor am Schlafzimmerfenster. Gerade bei Sensoren, die für wichtige Funktionen wie etwa einer Alarmanlage (Fenstersensor) genutzt werden, sollte daher vorher alarmieren, wenn sich die Batterielaufzeit dem Ende neigt. Natürlich werden diese Meldungen in der CCU2 gesammelt und dort auch angezeigt, doch hier schauen die wenigsten von Euch regelmäßig rein.

Die meisten Geräte besitzen eine Status-LED, doch auch diese ist bei vielen meiner Geräte nicht sichtbar, da ich die Sensoren unauffällig verbauen wollte. Doch wie bekomme ich jetzt mit, das eine Batterie ans Ende gekommen ist?

Ich verwende auch dafür die Push-Benachrichtigung auf mein iPhone. Wir haben Euch hier bereits erklärt, wie Ihr die Push-Funktion sehr einfach über den kostenlosen Dienst Telegram einbinden könnt.

Wenn Ihr dieses Tutorial bereits durchlaufen habt, muss in der CCU2 nur noch ein Programm angelegt werden, das auf diesen Dienst zugreift und bei Bedarf eine Push-Nachricht an Euer Handy absetzt.

So geht Ihr vor:

Um ein neues Programm zu erstellen klickt Ihr auf „Programme und Verknüpfungen“ dann auf „Programme & Zentralenverknüpfung“ und im unteren Feld auf den Button „Neu“.

Homematic - Neues Programm anlegen

Bei Bedingung wählen wir nun das Gerät aus, dass wir überwachen wollen. In diesem Beispiel verwende ich einen optischen Fenstersensor aus.

Nun wählen wir noch das Ereignis aus, auf welches getriggert werden soll. Hier kann direkt „Batterie leer“ ausgewählt werden. Im nächsten Feld wählen wir „bei Änderung auslösen“. So bekommen wir nur eine Push-Nachricht, wenn sich der Batterie-Status von unserem Sensor von gut nach Batterie wird schwach ändert. Diese Meldung taucht dann auch nur einmal auf, sodass Ihr nicht ständig von neuen Meldungen überschüttet werdet.

Nun müssen wir noch ein Ereignis auswählen, dass ausgeführt wird. Dazu gehen wir auf „Aktivität: Dann..“ und klicken auf das grüne Plus.

Hier wählen wir „Skript“ aus und klicken auf Skript erstellen.

Homematic - Push Batterie leer

Es öffnet sich nun ein neues Fenster, indem ein Skript eingefügt werden kann. Hier geht Ihr folgendes ein:

string stderr;
string stdout;
string url=“\“https://api.telegram.org/bot16XXXX329:AAE8l0fWzIfhVfaRrXXXXaNxrLBCZk/sendMessage?chat_id=238XXX8&text=Batterie leer vom Gerät Fenstersensor\““;
system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

Homematic - Skript bearbeiten

Am besten Ihr kopiert einfach den Text oben und fügt ihn in das Fenster ein, damit das Skript auch funktioniert, müsst Ihr aber noch Eure Parameter, die Ihr aus dem Push-Tutorial bekommen habt einfügen.

Ihr müsst bei botXXXX Euren Bot einfügen, und bei chat_id Eure eigene ID eintragen. Den Text könnt Ihr anschließend frei gestalten.

Hier habe ich als Beispiel „Batterie leer vom Gerät Fenstersensor“ eingefügt. Ihr könnt aber auch jeden anderen beliebigen Text verwenden.

Nun sendet Euch Eure CCU2 eine Push-Benachrichtigung, wenn dieser Sensor leer wird. Leider muss der Vorgang für jeden Sensor wiederholt werden, den Ihr auf diese Weise überwachen wollt. Ich habe nur Sensoren damit ausgestattet, an denen ich die Status-LED nicht direkt einsehen kann.

Homematic - Push auf iPhone

Auf diese Art und Weise könnt Ihr aber auch andere Push-Nachrichten bei einem Ereignis absetzen.

Viel Spaß beim ausprobieren!

Das könnte Dich auch interessieren

Homematic IP – Alarmsirene Außen ab sofort bestellbar
Aufrufe 1214
Ende Mai habe ich euch informiert, das eQ-3 eine Alarmsirene  Außen plant und interessierte Kunden zu einer Design Abstimmung einlädt. Hier könnt ihr...
Homematic – Direktverknüpfungen – Verknüpfungen über die Zentrale
Aufrufe 3434
Bei einer Homematic-Installation gibt es zwei unterschiedlichen Arten, wie Geräte miteinander verknüpft werden können. Zum einen ist es möglich, Gerät...
RaspberryMatic für die Hutschiene mit externer Antenne
Aufrufe 6051
Die Beliebtheit von Smarthome-Systeme nimmt stetig zu und eQ-3 spielt dabei mit Homematic eine große Rolle. Leider ist die aktuelle „Basisstation“ CCU...
Homematic Skript – Automatisches Quittieren von Servicemeldungen bei Funks...
Aufrufe 3891
Wer ein größeres Homematic-Netz bestehend aus vielen Funksendern betreibt, kennt das leidige Thema sporadisch auftretende Funkstörungen, die dazu führ...
HomeMatic IP Bewegungsmelder an einer CCU2 oder RaspberryMatic betreiben
Aufrufe 4718
Ich habe bereits zwei Bewegungsmelder Innen von HomeMatic im Einsatz. Diese funktionieren auch wirklich hervorragend und fehlerfrei. Aber als ich dann...
Homematic: Funk-Kombisignalgeber MP3 visuelle und auditive Rückmeldung
Aufrufe 6079
Optische oder akustische Rückmeldungen sind bei Smart-Home Systemen eine zusätzliche Erleichterung. Beim Einschalten und Verlassen der Haustür kommt e...
7 Kommentare
  1. Christian sagte:

    Hallo,

    dieser Beitrag ist zwar etwas „of topic“ aber da er zu Telegram und Push Nachrichten passt, wollte ich hier als Neuling mal meine Fragen los werden:

    1. Ich höre immer wieder, daß Scripte mit System.exec zu CCU Abstürzen führen können. Daher empfehlen viele CCUXDaemon zu nutzen. Das ist bei dem Script oben nicht der Fall. Wird das Problem überschätzt?

    2. Ich habe von einem ebenfalls sehr guten Forum von Christian Luetgens u.g. Programm übernommen, um mir Push Nachrichten von der CCU senden zu lassen. leider klappt das nur sporadisch und nicht zuverlässig. Ich kann leider nicht erkenne, wo der Fehler sitzt. Grundsätzlich sollte das Script die Systemvariable „Telegram“ auslesen und wenn diese gesetzt ist, diese pushen und dann wieder auf „0“ setzten.
    Sieht jemand einen Fehler in dem Script?

    ! HomeMatic-Script
    ! TELEGRAM-FRAMEWORK
    ! http://www.christian-luetgens.de/homematic/telegram/telegramframework/T-Framework.htm

    object o_msg = dom.GetObject („Telegram“);
    if (o_msg.Value() != „“) {
    string s_cmd = „wget –no-check-certificate –quiet -O /dev/null \“https://api.telegram.org/bot394582310:AAF8dlndVB4a-EKCLjdH6INH-TMXXXXXXXX/sendMessage?chat_id=XXXXXXX&text=“ # o_msg.Value() # „\““;
    dom.GetObject(„CUxD.CUX2801004:2.CMD_EXEC“).State (s_cmd);
    o_msg.State („“);
    }

    ! Ende des Scripts

    Antworten
  2. HM-Tester sagte:

    Hallo, erstmal ein Dickes Dankeschön für die tolle und Verständliche Ausführung hier!

    Ein kleiner Punkt würde ich gerne mit allen Teilen, weil ich da gestern fast dran verzweifelt wäre: Beim Copy&Paste von dem Script bauen sich Fehler ein, wie die Anführungszeichen und die – Striche. Das sieht man auch im direkt Vergleich des Scripts und des Screenshots. Also hier Tip an alle: Genau checken, das alles so wie in dem Screenshot steht, dann klappt es auch mit dem Script!
    VG

    Antworten
  3. David sagte:

    Ich habs modifiziert im Einsatz. Nutze eine Variable „@Message“, die ich in jedem Programm ggf. belege. Es gibt ein extra Programm was eben jene Variable überwacht und bei „Wenn @Message = „-“ bei Aktualiserung, dann nix, ansonsten HomeTAicScript zum pushen“. inkl. Sonderzeichenersetzung …

    string message = dom.GetObject(„@Message“).State();
    string messagefix = „“;
    string index;

    foreach(index, message.Split(„ä“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%A4“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„Ä“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%84“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„ö“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%B6“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„Ö“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%96“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„ü“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%BC“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„Ü“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C3%9C“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„/“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%2F“ # index; } }
    message = messagefix;
    messagefix = „“;
    foreach(index, message.Split(„°“)) { if (messagefix == „“) { messagefix = index; } else { messagefix = messagefix # „%C2%B0“ # index; } }
    message = messagefix;
    messagefix = „“;

    string stderr;
    string stdout;

    string url=“\“https://api.telegram.org/botXXXXXXXXX:XXXXX…XXXXXX/sendMessage?chat_id=xxxxxxxxxxxx&text=“#message#“\““;
    system.Exec(„wget –no-check-certificate -q -O – „#url, &stdout, &stderr);

    Antworten
  4. Martin sagte:

    Hallo,
    Umlaute müssen wie folgt codiert werden:
    Ä wird ersetzt durch %C3%84
    ä wird ersetzt durch %C3%A4
    Ö wird ersetzt durch %C3%96
    ö wird ersetzt durch %C3%B6
    Ü wird ersetzt durch %C3%9C
    ü wird ersetzt durch %C3%BC
    Gruß Martin

    Antworten
  5. Adrian sagte:

    Hallo.
    Wollte das eben bei mir probieren. Leider zeigen meine batteriebetriebenen Geräte (Außen- und Innentermperatursensoren) gar nicht das mögliche Ereignis „Batterie leer“ an, wenn ich sie in einem Programm auswähle. Funktioniert das nicht bei allen batteriebetriebenen Geräten oder sind hierfür noch weitere (Vor)Einstellungen erforderlich?
    Besten Dank für die Anleitungen.

    Antworten
  6. Werner Weber
    Werner Weber sagte:

    Hallo Sebastian,
    vielen Dank für diesen hilfreichen Tipp. Habe das bei mir ausprobiert und es funktioniert sehr gut.
    Aber eine offene Frage bleibt: Sobald ich deutsche Umlaute in den Nachrichtentext einbaue, bekomme ich keine Push Nachricht mehr. Sonderzeichen wie : sind kein Problem.
    Woran kann das liegen? Weil du hast in deinem Beispiel bei „Gerät“ einen Umlaut drin.
    Danke für eine Antwort im Voraus.
    Werner

    Antworten
    • Sebastian
      Sebastian sagte:

      Hallo Werner, das freut mich! Über diesen Fehler bin ich leider auch schon gestolpert. Umlaute sind leider ein kleines Problem. Diese müssen codiert werden, da sie sonst nicht verarbeitet werden können. Ich habe mir angewöhnt Umlaute daher nicht zu benutzen. Das Problem habe ich bereits mitPhilipp besprochen, wir veröffentlichen dazu in nächster Zeit einen Beitrag, wo wir die codierung von Umlauten beschreiben.

      Danke für den Hinweis!

      Antworten

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend. Dieses Formular speichert Ihren Namen, Ihre Email Adresse sowie den Inhalt, damit wir die Kommentare auf unsere Seite auswerten können. Weitere Informationen finden Sie auf unserer Seite der Datenschutzbestimmungen.

Ich akzeptiere die Speicherung der Daten.