ProgrammScript

Mit Homematic Whatsapp-Nachrichten versenden

Homematic Whatsapp-Framework

Mit Homematic Informationen an sein Smartphone zu senden, ist eine praktische Sache.
Meistens ist es aber so, dass man sich eine zusätzliche App installieren und diese dann noch konfigurieren muss.
Lange habe ich mir gewünscht, dass man einfach per Whatsapp Nachrichten von seiner Homematic erhalten kann.
Das ist Dank dem neuen CallMeBot (Whatsapp) Dienst seit kurzem möglich!  Da die Nachrichten formatiert werden müssen, kommt hier mein Whatsapp-Framework zum Einsatz.

Wie das ganze funktioniert, erfährst du hier.

Voraussetzung ist eine lauffähige CUxD Installation mit Exec-Gerät Konfiguration
TIPP: Installation CUxD-Addon

Los geht’s!

API-Key generieren

Um den API-Key zu generieren, speichert man sich die Rufnummer +34 644 10 55 84 in die Telefon-Kontakte.
Der Name ist erstmal egal, man könnte den Kontakt z.B. Homematic nennen.
Anschließend sendet man über Whatsapp eine Nachricht mit dem Satz I allow callmebot to send me messages an den neuen Kontakt und bekommt innerhalb einigen Minuten seinen API-Key zugesendet.

Der Dienst ist aktuell noch in der Beta-Phase, daher kann es mehrere Minuten dauern, bis die Nachrichten zugesendet werden.

Variablen anlegen

Quicktipp: Variable anlegen

Whatsapp-Text
Name: Whatsapp-Text Typ: Zeichenkette
(Damit das Script funktioniert, bitte auf korrekte Schreibweise achten.)

Homematic Whatsapp Variable 1

Whatsapp-Trigger
Name: Whatsapp-Trigger Typ: Logikwert

Homematic Whatsapp Variable Trigger

Programm anlegen

Quicktipp: Programm anlegen

  • Whatsapp-Framework
  • Bedingung: Wenn… Systemzustand Variable Whatsapp-Trigger bei Änderung auslösen.
  • Aktivität: Dann SCRIPT + 1 Sek Verzögerung – Variable Whatsapp-Trigger auf False (abgesendet) ändern.

Achtung: im Script muss der API-Key und die Rufnummer eingetragen werden!

! Homematic Whatsapp-FRAMEWORK
! Version 1.0
! by www.homematic-guru.de
! https://homematic-guru.de/mit-homematic-whatsapp-nachrichten-versenden
 
string APIKey="123456"; !Hier den API-Key eintragen
string TELNR="+4917123456789"; !Hier deine Telefonnummer eintragen

object o_msg = dom.GetObject ("Whatsapp-Text");
string s_msg = "." # o_msg.Value() # ".";
 
if (s_msg != "..") {
  string s_replace;
  string s_newmsg;
  string s_atom;
  boolean b_first;
  foreach (s_replace, "Ä-%C3%84\tÖ-%C3%96\tÜ-%C3%9C\tä-%C3%A4\tö-%C3%B6\tü-%C3%BC\t&-%26\tß-%C3%9F") {
    b_first = true;
    s_newmsg = "";
    foreach (s_atom, s_msg.Split (s_replace.StrValueByIndex ("-", 0))) {
      if (b_first) {
        if (s_atom != s_msg) {
          s_newmsg = s_atom;
        }
        b_first = false;
      } else {
        s_newmsg = s_newmsg # s_replace.StrValueByIndex ("-", 1) # s_atom;
      }
    }
    if (s_atom != s_msg) {
      s_msg = s_newmsg;
    }
  }
  s_msg = s_msg.Substr (1, s_msg.Length() - 2);
s_msg = s_msg.Replace(" ", "+");

 string s_cmd = "/usr/local/addons/cuxd/extra/curl -k \"https://api.callmebot.com/whatsapp.php?phone=" # TELNR # "&text=" # s_msg # "&apikey=" + APIKey + "\"";
 dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(s_cmd);
 o_msg.State ("");
}
!  Ende des Scripts

Anwendung

Um einen Text mit dem Homematic Whatsapp-Framework zu versenden, wird zuerst die Variable Whatsapp-Text mit dem gewünschten Text gefüllt und anschließend die Variable Whatsapp-Trigger auf true (absenden) geändert.

Beispiel:

Fertig!

Verwendete Hardware

Dir hat der Beitrag gefallen?

Trage dich kostenlos & unverbindlich in den Newsletter ein
und verpasse keinen Beitrag mehr!

Schaue auch gerne auf Facebook vorbei: