HomeMatic Know-how Teil 27: Nachrichtenversand

0,00
Aus ELVjournal 05/2018     0 Kommentare
 HomeMatic Know-how Teil 27: Nachrichtenversand

Inhalt des Fachbeitrags

    PDF- / Onlineversion herunterladen



    Viele Nutzer des Homematic Systems möchten aufgrund von völlig unterschiedlichen Anwendungsfällen Nachrichten mit der Zentrale versenden, um sich z. B. auch bei Abwesenheit über Ereignisse im Haus informieren zu lassen. Da die Homematic Zentrale zum Versand von Nachrichten keine direkte Vorbereitung in der Werkssoftware beinhaltet, muss man hierfür auf Add-ons und Skripte sowie externe Dienste und Apps zurückgreifen. Die folgenden Versandmöglichkeiten möchten wir in diesem Artikel erläutern: 1. Push-Versand in Verbindung mit Homematic Smartphone-Apps 2. E-Mail-Versand mittels Homematic E-Mail-Add-on 3. Push-Versand mittels Telegram Messenger 4. Push-Versand mittels Pushover 5. SMS-Versand mit Cloudmatic oder GSM-Modul

    1. Push-Versand in Verbindung mit Homematic Smartphone-Apps

    Die einfachste Lösung zum Versand von Push-Nachrichten ist der Einsatz einer Homematic Smartphone-App, die neben der Möglichkeit zur Steuerung der Geräte auch die Push-Notification-Funktion mit sich bringt. Aktuell stehen hierfür allerdings lediglich die folgenden Apple iOS Apps zur Verfügung. Android-Nutzer können externe Dienste wie z. B. Telegram (siehe Punkt 3) oder Pushover (siehe Punkt 4) nutzen. In der Funktionsweise unterscheiden sich die drei Apps im Grunde nicht. Über die Einstellungen der Apps lässt sich der Mitteilungsversand aktiveren, wodurch auf der CCU automatisch eine Systemvariable und ein systeminternes Programm für den Versand der Nachricht angelegt wird. Um letztlich eine Nachricht abzusetzen, ist die jeweilige Systemvariable lediglich in das gewünschte Zentralenprogramm unter dem Aktivitätsblock einzufügen und mit dem gewünschten Nachrichtentext zu befüllen (Bild 1).

    Bild 1: Zeigt eine Beispielprogrammierung zum Versenden einer Push-Nachricht mit den drei hier genannten Homematic iOS Apps. Je nach verwendeter App ist lediglich die zugehörige Systemvariable einzufügen (siehe Tabelle).
    Bild 1: Zeigt eine Beispielprogrammierung zum Versenden einer Push-Nachricht mit den drei hier genannten Homematic iOS Apps. Je nach verwendeter App ist lediglich die zugehörige Systemvariable einzufügen (siehe Tabelle).

    2. E-Mail-Versand mittels Homematic E-Mail-Add-on

    Auch wenn eine E-Mail-Nachricht heute aufgrund von Push-Nachrichten nicht mehr unbedingt „State of the Art“ ist, gibt es dennoch viele Homematic Nutzer, die nach wie vor eine E-Mail bevorzugen. Um mit der Homematic Zentrale E-Mails versenden zu können, kann die kostenfreie Zusatzsoftware „Homematic E-Mail-Add-on“ [4] eingesetzt werden. Nach der Installation des E-Mail-Add-ons über „Einstellungen“ --> „Systemsteuerung“ --> „Zusatzsoftware“ wird ein neuer Button unter „Einstellungen“ --> „Systemsteuerung“ --> „E-Mail“ eingefügt, über den die Konfigurationsseite des Add-ons aufgerufen werden kann.
    Bild 2: Zeigt beispielhaft die Account-Einstellung des E-Mail-Providers GMX.
    Bild 2: Zeigt beispielhaft die Account-Einstellung des E-Mail-Providers GMX.
    Nach dem Öffnen der Konfigurationsseite sind zunächst unter dem Reiter „Account“ die Daten des E-Mail-Providers einzutragen, damit eine Verbindung mit dem E-Mail-Server aufgenommen werden kann (Bild 2). In der umfangreichen Anleitung des Add-ons, die über den Reiter „Hilfe“ aufrufbar ist, finden sich bereits einige getestete Account-Konfigurationen.
    Bild 3: Zeigt beispielhaft die erste E-Mail-Vorlage.
    Bild 3: Zeigt beispielhaft die erste E-Mail-Vorlage.
    Anschließend ist im Reiter „E-Mails“ für die erste E-Mail-Vorlage anzugeben, an welche Adresse die Mail gesendet werden soll. Zudem werden hier der Betreff und der Mail-Text angegeben (Bild 3). Für den ersten Test sollte unten der Haken bei „Tcl aktiveren“ entfernt werden. Nun kann unter dem Reiter „Hilfe“ durch Anklicken des Buttons „Testmail senden“ geprüft werden, ob die Zentrale die Mail erfolgreich absetzen kann.

    Um nun beim Eintreten eines Ereignisses automatisiert eine Mail absetzen zu können, ist im gewünschten Zentralenprogramm unter dem Aktivitätsblock eines der folgenden Skripte einzufügen (Bild 4).

    Bild 4: In diesem Beispielprogramm wird beim Öffnen eines Fensterkontakts eine Mail versendet.
    Bild 4: In diesem Beispielprogramm wird beim Öffnen eines Fensterkontakts eine Mail versendet.
    Wichtig ist, dass je nach verwendeter E-Mail-Vorlage (siehe Bild 4 oben, E-Mail-ID) die ID im Skript anzupassen ist. Im Beispiel wird die Vorlage 1, also die ID 01 verwendet, möchte man z. B. die Vorlage 5 benutzen, muss am Ende der Skriptzeile die 05 eingesetzt werden.

    string stdout;
    string stderr;
    system.Exec("/etc/config/addons/email/email 01", &stdout, &stderr);

    Die vielen weiteren Möglichkeiten des Add-ons sind ausführlich in der umfangreichen Anleitung erläutert, die über die Add-on-Konfigurationsseite unter dem Reiter „Hilfe“ aufgerufen werden kann. Support-Anfragen zum E-Mail-Add-on werden vom Entwickler des Add-ons im Homematic Forum unter [5] beantwortet.

    3. Push-Versand mittels Telegram Messenger

    Eine kostenlose Möglichkeit, um Push-Nachrichten zu versenden, bietet der Messenger Telegram, der im Grunde dem Messenger WhatsApp ähnelt. Zudem steht die Telegram-App nicht nur für Apple iOS, sondern auch für Android und Windows Phone [6/7/8] zur Verfügung. Zur Registrierung ist zunächst die App auf dem gewünschten Smartphone zu installieren. Nach dem Öffnen der App ist auf „Jetzt beginnen“ zu tippen und die Mobilfunknummer einzugeben. Anschließend erhält man per SMS einen Code, der einzugeben ist, abschließend sind der Name und Vorname einzutragen. In den folgenden Schritten erfolgt die Einrichtung eines sogenannten „Bots“, an den später die Nachrichten per Homematic Skript abgesetzt werden. Jeder Bot hat zur Identifikation seinen eigenen API-Token. Dieser wird benötigt, um die Nachricht später an das richtige Konto absetzen zu können. Es empfiehlt sich, die weitere Einrichtung am PC durchzuführen. Hierzu ruft man im Browser die Adresse web.telegram. org auf, gibt auch hier die Mobilfunknummer und anschließend den in der Telegram-Smartphone- App eingegangenen Code ein.
    1. In das Suchfeld oben links gibt man nun BotFather ein und klickt anschließend auf den Kontakt „BotFather @BotFather
    1. In das Suchfeld oben links gibt man nun BotFather ein und klickt anschließend auf den Kontakt „BotFather @BotFather
    2. Es erscheint eine Liste mit Befehlen. Durch Anklicken bzw. Eingabe des Befehls /newbot lässt sich die Einrichtung eines persönlichen Bots starten.
    2. Es erscheint eine Liste mit Befehlen. Durch Anklicken bzw. Eingabe des Befehls /newbot lässt sich die Einrichtung eines persönlichen Bots starten.
    3. In das untere Eingabefeld ist nun der gewünschte Bot-Name einzutragen und dieser abzusenden.
    3. In das untere Eingabefeld ist nun der gewünschte Bot-Name einzutragen und dieser abzusenden.
    4. Es folgt die Eingabe des Benutzernamens für den persönlichen Bot, dieser muss immer auf „bot“ enden (z. B. elvtscbot).
    4. Es folgt die Eingabe des Benutzernamens für den persönlichen Bot, dieser muss immer auf „bot“ enden (z. B. elvtscbot).
    5. Sofern der Name nicht vergeben ist, erhält man nun den API-Token, der später in das Skript einzufügen ist. Nun kann der soeben erstellte Bot durch Eingabe des Namens über das Suchfeld oben links gefunden werden.
    5. Sofern der Name nicht vergeben ist, erhält man nun den API-Token, der später in das Skript einzufügen ist. Nun kann der soeben erstellte Bot durch Eingabe des Namens über das Suchfeld oben links gefunden werden.
    6. Nachdem der eigene Bot-Kontakt angeklickt wurde, ist unten rechts erneut auf „Starten“ zu klicken.
    6. Nachdem der eigene Bot-Kontakt angeklickt wurde, ist unten rechts erneut auf „Starten“ zu klicken.
    7. Jetzt ist unten rechts über das Eingabefeld eine beliebige Nachricht an den eigenen Bot abzusenden. Dies ist erforderlich, um im nächsten Schritt die für das Skript benötigte Chat-ID zu erhalten.
    7. Jetzt ist unten rechts über das Eingabefeld eine beliebige Nachricht an den eigenen Bot abzusenden. Dies ist erforderlich, um im nächsten Schritt die für das Skript benötigte Chat-ID zu erhalten.
    8. Nun öffnet man einen weiteren Browser-Tab und ruft die folgende Adresse auf, in der allerdings zuvor der Text <TOKEN> durch den in Schritt 5 erhaltenen API-Token zu ersetzen ist. Aus: https://api.telegram.org/bot<TOKEN>/getUpdates wird in unserem Beispiel dann: https://api.telegram.org/ bot627670165:AAFVsMd5AuwowqXf8pdbNpWopfnMBjp6cCY/getUpdates Nun sollte wie im obigen Bild unter from: die benötigte Chat-ID zu entnehmen sein. Sollte diese beim ersten Aufruf nicht erscheinen, wechselt man nochmals zum Chat-Browser-Tab (Schritt 7) und versendet erneut eine beliebige Nachricht. Anschließend wechselt man wieder zum Browser-Tab mit der Adresse zurück und aktualisiert die Seite.
    8. Nun öffnet man einen weiteren Browser-Tab und ruft die folgende Adresse auf, in der allerdings zuvor der Text durch den in Schritt 5 erhaltenen API-Token zu ersetzen ist. Aus: https://api.telegram.org/bot/getUpdates wird in unserem Beispiel dann: https://api.telegram.org/ bot627670165:AAFVsMd5AuwowqXf8pdbNpWopfnMBjp6cCY/getUpdates Nun sollte wie im obigen Bild unter from: die benötigte Chat-ID zu entnehmen sein. Sollte diese beim ersten Aufruf nicht erscheinen, wechselt man nochmals zum Chat-Browser-Tab (Schritt 7) und versendet erneut eine beliebige Nachricht. Anschließend wechselt man wieder zum Browser-Tab mit der Adresse zurück und aktualisiert die Seite.

    Der vorliegende Token und die Chat-ID sind nun in eines der folgenden Skripte anstelle der Platzhalter <token> und <chatid> einzufügen, um Push-Nachrichten mit der Zentrale absetzen zu können. Der gewünschte Nachrichtentext kann in der ersten Skriptzeile zwischen den Anführungszeichen eingegeben werden. Das angepasste Skript kann nun in das gewünschte Zentralenprogramm im Aktivitätsblock eingefügt werden (wie in Bild 4, aber mit dem Telegram-Skript).

    Hinweis: An dieser Stelle ist der Experten-Tipp zu beachten.

    Skript für CCU2/3 bei Verwendung der aktuellen Firmware mit Standard- oder Community-Logikschichtversion:

    string msg = "Meine erste Telegram Nachricht";
    string TOKEN = "<TOKEN>
    ";
    string CHATID = "<CHATID>
    ";
    string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
    system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot'"#TOKEN#"'/sendMessage?chat_id='"#CHATID#"'&text='"#MESSAGE);

    Skript für die CCU1 oder ältere CCU2-Firmware-Versionen mit Legacy-Logikschicht:

    string MESSAGE = "Meine erste Telegram Nachricht";
    string TOKEN = "<TOKEN>
    ";
    string CHATID = "<CHATID>
    ";
    ! Ersetzen von Umlauten und Sonderzeichen
    string lErsetzen = "Ü;Ä;Ö;ü;ä;ö;ß;°; 2 ; 3 ; ;";
    string lErsetzenDurch = "%C3%9C;%C3%84;%C3%96;%C3%BC;%C3%A4;%C3%B6;%C3%9F;%C2%B0;%C2%B2;%C2%B3;%20;";
    string lTextNeu = MESSAGE;
    integer lPos = 0;
    integer lIndex = 0;
    string lSplit = "";
    boolean lLoop = true;
    foreach (lSplit, lErsetzen.Split(";"))
    {
      lLoop = true;
      while (lLoop)
      {
        lPos = lTextNeu.Find(lSplit);
        if (lPos == -1)
        {
          lLoop = false;
        }
        else
        {
          lTextNeu = lTextNeu.Substr(0,lPos) #
          lErsetzenDurch.StrValueByIndex(";",lIndex) #
          lTextNeu.Substr(lPos + lSplit.Length() , ((lTextNeu.Length() - lPos) - lSplit.Length()) );
        }
      }
      lIndex = lIndex + 1;
    }
    string stdout;string stderr;
    system.Exec("wget --no-check-certificate -q -O - 'https://api.telegram.org/bot"#TOKEN#"/sendMessage?chat_id="#CHATID#"&text="#lTextNeu, &stdout, &stderr);

    4. Push-Versand mittels Pushover

    Eine weitere Möglichkeit zum Versand von Push-Nachrichten bietet der kostengünstige Push-Dienstleister Pushover. Der Dienst kann 7 Tage kostenlos getestet werden und kostet anschließend einmalig zwischen 4 Euro und 6 Euro. Die benötigte Pushover-App ist für Android und Apple iOS [9/10] verfügbar und kann kostenfrei im jeweiligen App-Store geladen werden. Um mittels Pushover Nachrichten versenden zu können, ist zunächst die Registrierung unter pushover.net erforderlich. Es empfiehlt sich, dieses am PC durchzuführen, um die erforderlichen Informationen direkt in das Skript zum Versenden der Push-Nachrichten einfügen und alle erforderlichen Schritte durchführen zu können. Mit der Registrierung erhält man im ersten Schritt den benötigten User-Key, also im Grunde den Zuordnungsschlüssel zum Pushover-Konto (siehe rechts oben im Bild 5). Neben dem User-Key wird ein Anwendungs- Token (Application-Token) benötigt. Um diesen zu erhalten, ist zunächst die erhaltene Registrierungsmail zu bestätigen und anschließend unter „Your Applications“ durch Anklicken von „Create an Application/API Token“ (Bild 5 unten) eine Anwendung anzulegen (Bild 6). Nach der Anlage der Anwendung kann durch Anklicken des Anwendungsnamens (Bild 5 unten) der „API Token/Key“ abgerufen werden (Bild 7).
    Bild 5: Das angelegte Pushover- Konto mit dem User-Key oben rechts und unten eine bereits angelegte Anwendung (Homematic). Mit „Create an Application/API Token“ kann eine neue Anwendung angelegt werden.
    Bild 5: Das angelegte Pushover- Konto mit dem User-Key oben rechts und unten eine bereits angelegte Anwendung (Homematic). Mit „Create an Application/API Token“ kann eine neue Anwendung angelegt werden.
    Bild 6: Anlage einer Anwendung – hier können für unterschiedliche Anwendungen auch Bilder eingefügt werden, die dann auch in der App sichtbar werden.
    Bild 6: Anlage einer Anwendung – hier können für unterschiedliche Anwendungen auch Bilder eingefügt werden, die dann auch in der App sichtbar werden.
    Bild 7: Zeigt die angelegte Anwendung mit dem zugehörigen API-Token.
    Bild 7: Zeigt die angelegte Anwendung mit dem zugehörigen API-Token.
    Bild 8: Eingabe des Gerätenamens in der Pushover-App
    Bild 8: Eingabe des Gerätenamens in der Pushover-App
    Nun ist noch die Smartphone-App zu installieren [9/10] und nach dem Antippen von „Login Instead“ das Einloggen mit dem zuvor angelegten Konto erforderlich. Bei der App-Einrichtung ist zudem noch ein Gerätename festzulegen (Bild 8).
    Skript für CCU2/3 bei Verwendung der aktuellen Firmware mit Standard- oder Community-Logikschichtversion:

    string msg = "Meine Erste Pushover Nachricht";
    string MESSAGE = msg.ToUTF8().Replace(" ", "%20");
    string TOKEN = "<TOKEN>";
    string USERKEY = "<USERKEY>";
    system.Exec("wget --no-check-certificate --post-data='token='"#TOKEN#"'&user='"#USERKEY#"'&message='"#MESSAGE#"'' http://api.pushover.net/1/messages.json");

    Skript für die CCU1 oder ältere CCU2-Firmware-Versionen mit Legacy-Logikschicht:

    string MESSAGE = "Meine Erste Pushover Nachricht";
    string TOKEN = "<TOKEN>";
    string USERKEY = "<USERKEY>";
    ! Ersetzen von Umlauten und Sonderzeichen
    string lErsetzen = "Ü;Ä;Ö;ü;ä;ö;ß;°;2;3; ;";
    string lErsetzenDurch = "%C3%9C;%C3%84;%C3%96;%C3%BC;%C3%A4;%C3%B6;%C3%9F;%C2%B0;%C2%B2;%C2%B3;%20;";
    string lTextNeu = MESSAGE;
    integer lPos = 0;
    integer lIndex = 0;
    string lSplit = "";
    boolean lLoop = true;
    foreach (lSplit, lErsetzen.Split(";"))
    {
      lLoop = true;
      while (lLoop)
      {
        lPos = lTextNeu.Find(lSplit);
        if (lPos == -1)
        {
          lLoop = false;
        }
        else
        {
          lTextNeu = lTextNeu.Substr(0,lPos) #
          lErsetzenDurch.StrValueByIndex(";",lIndex) #
          lTextNeu.Substr(lPos +
          lSplit.Length() , ((lTextNeu.Length() - lPos) -
          lSplit.Length()) );
        }
      }
      lIndex = lIndex + 1;
    }
    string stdout;string stderr;
    system.Exec("wget --no-check-certificate --post-data 'token="#TOKEN#"&user="#USERKEY#"&message="#lTextNeu#"' -O - https://api.pushover.net/1/messages", &stdout, &stderr);

    5. SMS-Versand mit Cloudmatic oder GSM-Modul

    Neben E-Mail- und Push-Nachrichten können mit den Homematic Zentralen alternativ auch SMS-Nachrichten versendet werden. Eine Möglichkeit ist, die SMS-Nachricht über den Cloud-Dienstleister Cloudmatic/meine-homematic.de abzusetzen. Erfolgt der Fernzugriff auf die Zentrale bereits über diesen Dienstleister, kann ergänzend hierzu ein kostenpflichtiges SMS-Paket (Cloudmatic NotifyMe [11]) erworben werden. Bezüglich der Einrichtung verweisen wir an dieser Stelle aus Platzgründen auf die Anleitung des Dienstleisters [12]. Eine weitere und von der Internetverbindung unabhängige Möglichkeit des SMS-Versands ergibt sich durch den Einsatz von externen GSM-Modulen/Wahlgeräten wie z. B. das bei ELV angebotene GTW-20 (Bestell-Nr. CX-12 02 49). Um diese externen Module ansteuern zu können, wird ein Homematic Aktor mit potentialfreien Kontakten (z. B. Bestell-Nr. CX-15 01 38, CX-15 07 53 oder CX-09 90 82) benötigt. Eine Anleitung zur Verwendung des GSM Telefonwählgeräts GTW-20 in Verbindung mit Homematic ist unter [13] zu finden.

    Weitere Infos:

    [1] http://www.pocket-home.de/
    [2] http://www.ksquare.de/myhomecontrol/
    [3] http://www.athomeapp.de/
    [4] https://github.com/jens-maus/hm_email/releases
    [5] https://homematic-forum.de/forum/viewtopic.php?t=18610
    [6] https://telegram.org/dl/ios
    [7] https://telegram.org/dl/android
    [8] https://telegram.org/dl/wp
    [9] https://pushover.net/clients/android
    [10] https://pushover.net/clients/ios
    [11] https://www.cloudmatic.de/cloudmatic-notifyme.html
    [12] http://kb.easy-smarthome.de/SMS-Versand_an_mehrere_Empf%C3%A4nger
    [13] https://files.elv.com/Assets/Produkte/12/1202/120249/Downloads/Zusatzanleitung-GTW-20_uf.pdf

    Fachbeitrag als PDF-Download herunterladen

    Inhalt

    Sie erhalten den Artikel in 1 Version:

    pdf  als PDF (8 Seiten)

    Sie erhalten folgende Artikel:
    • HomeMatic Know-how Teil 27: Nachrichtenversand
    Produkteweitere FachbeiträgeForen


    Hinterlassen Sie einen Kommentar:
    (Anmeldung erforderlich)
      Name
      E-Mail
    KATEGORIEN
    DAS KÖNNTE SIE AUCH INTERESSIEREN