Im ersten Teil habe ich bereits beschrieben, was IFTTT ist, und wie man von digitalSTROM aus Applets bei IFTTT auslösen kann.
Heute beschreibe ich die andere Richtung: Wie können Applets von IFTTT aus Aktionen im digitalSTROM-System auslösen?
Hinweis: Dieser Artikel ist veraltet, da es mittlerweile direkt bei IFTTT einen Service digitalSTROM gibt. Bitte diesen einrichten, anschließend können Kommandos von eigenen Applets aus erstellt und an digitalSTROM gesendet werden. Der Umweg über das hier in diesem Artikel genannte Tool IFTTT-Connector ist nicht mehr nötig. Aus historischen Gründen, sowie als Problemlöser für völlig andere Aufgaben, bleibt dieser Artikel aber bestehen.
Warum IFTTT nicht direkt digitalSTROM steuern kann
Zunächst möchte ich kurz erklären, warum das nicht ganz so einfach ist. Aus Sicherheitsgründen arbeitet digitalSTROM mit einem zweistufigen Schlüsselverfahren. Es gibt:
- Anwendungsschlüssel, und
- Sitzungsschlüssel
Damit eine Applikation auf den dSS zugreifen kann, benötigt sie zunächst einen Anwendungsschlüssel, genannt Application Token. Diese Registrierung muss einmalig vollzogen werden. Das machen zum Beispiel die Smartphone-Apps, wenn man sich beim ersten Mal über den mein.digitalSTROM Login anmeldet. Das Application Token wird dann dauerhaft in der Anwendung gespeichert, die mein.digitalSTROM Login Daten werden nicht gespeichert. Möchte eine Applikation nun auf den dSS zugreifen, muss sie sich zunächst über das Application Token am dSS anmelden und bekommt darauf hin einen Sitzungsschlüssel, genannt Session Token, zugewiesen. Dieser Session Token ist ab diesem Zeitpunkt maximal drei Minuten gültig und muss bei allen weiteren Kommandos mit übergeben werden. Jedes Kommando mit dem Session Token verlängert die Ablaufzeit erneut auf drei Minuten.
Dieser zweistufige Loginprozess ist der Grund, weswegen es nicht einen direkten URL-Aufruf zum dSS geben kann, der direkt Aktionen auslöst.
Die Lösung
Um dieses Problem zu lösen, habe ich ein kleines Skript programmiert, welches hier auf dS-Tools läuft und die Aktionen, welche zum digitalSTROM Server geschickt werden sollen, “umleitet”. Ich versichere, dass dabei keinerlei Daten auf meinem Server gespeichert werden. Selbst in den Zugriff-Logfiles meines Webservers werden aus Sicherheitsgründen keine Tokens gespeichert! Die gesamte Kommunikation erfolgt verschlüsselt.
So geht’s
Man ruft diese URL auf: https://ds-tools.net/ifttt/
Dort muss man seine mein.digitalSTROM Logindaten eintragen. Nach dem Klick auf “Anmelden” wird auf dem heimischen dSS ein Anwendungsschlüssel generiert. Auf der dann erscheinenden Seite (die man sich als Lesezeichen abspeichern sollte) hat man bequem die Möglichkeit, die Aktion zu beschreiben, welche im digitalSTROM System von IFTTT aus ausgelöst werden soll:
Die gewünschte Aktion kann als Freitext eingegeben werden, genau so, wie es auch die Listener Smartphone App versteht. Durch Klick auf “Senden” wird das Kommando zum dSS gesendet. Die Antwort erscheint kurz darauf. Ist man mit der Aktion zufrieden, scrollt man ein Stück nach unten und sieht, wie das Applet bei IFTTT angelegt werden muss, um genau diese Aktion auszulösen. Man erstellt also das gewünschte Applet bei IFTTT und wählt für den THAT -Teil den Maker Webhooks aus. Die angezeigten Daten trägt man hier ein, fertig.
Viel Spaß beim Ausprobieren. Bitte die Kommentarfunktion benutzen, um coole Applets zu teilen. Danke!
Bitte nicht verzweifeln, wenn nicht die Aktion ausgelöst wird, die man sich wünscht. Ein Artikel über das Textverständnis von digitalSTROM gibt es hier.
Danke
cool ???
Anmeldeprocedere beim Skript klappt bei mir nicht… ?
Da gab’s noch einen Fehler, wenn im Passwort Sonderzeichen enthalten waren. Sorry, ist jetzt gefixt. Bitte nochmal ausprobieren!
Pingback: IFTTT mit dS verbinden – Teil 1 | Christophs digitaler Strom
Hallo Christoph
Supercool – Danke!
Nun weiss mein Haus auf Grund der Geoposition meines Smartphones selber wenn ich nach Hause komme und ich brauche nicht mehr “Kommen” zu drücken.
Trigger: Locate an area
Action: kommen aufrufen
Besten Dank. Diese Beschreibung hat mir sehr geholfen.
Ich wurde vom Digitalstrom-Support auf diese Seite hingewiesen.
Ich habe eine IP-Kamera Edimax IC-9110W. Bei Erkennung einer Bewegung wird ein Event an https://ds-tools.net/ifttt/ geschickt, womit dann das Licht via Digitalstrom im Eingangsbereich eingeschalten wird. Mit der “Auto Off”-App wird das Licht dann nach 1 Minute wieder ausgeschalten.
Das funktioniert soweit einwandfrei. Leider dauert der Vorgang von der Bewegungserkennung bis zum Einschalten des Lichts rund 10 Sekunden. Vielleicht hat jemand eine Idee, wie ich das noch schneller hinbekomme.
Pingback: Automatisches Kommen und Gehen | Christophs digitaler Strom
Toller Blog, direkt mal mal den Feed abonniert 🙂
Könnte man dieses Script Open Source stellen, damit man es auch auf seinen eigenen Servern verwenden kann?
Auch wenn ich Ihnen glaube, dass Sie nichts speichern, ist es doch immer ein ungutes Gefühl von einem anderen Server abhängig zu sein.
Nein, das ist aktuell nicht möglich. Das liegt aber nicht an mir! Es ist geplant, dass zukünftig eine oAuth Schnittstelle zur Authentifizierung an der digitalSTROM Cloud angeboten werden soll. Dann kann ich den Code gerne zur Verfügung stellen.
Darf man erfahren, was die Gründe dafür sind? Werden im Code Interna verwendet, die man nicht einsehen darf?
Gibt es einen Zeitplan für die OAuth-Schnittstelle? Wird es OAuth 1 oder 2 sein?
Danke schonmal! 🙂
Gibt’s auch noch Antworten? 😉
Die Antworten, die ich geben kann, stehen über den Fragen.
Ich habe keine näheren Informationen.
Sehr schade. Dann warte ich lieber noch etwas mit der Digitalstrom-Installation, bis man IFTTT ohne Umwege verbinden kann.
Leider kommt bei mir beim Senden des Probetexts die Fehlermeldung “Leider ist mir dein Zuhause nicht bekannt. Hast du es registriert?”. Das Token ist aber unter den Zugriffsberechtigungen drin. Komme daher leider nicht weiter.
Probiere bitte, ein neues Token anzulegen. Anscheinend wurde das Token nicht in der digitalSTROM Cloud registriert. Wenn es immer noch nicht klappt: Funktioniert denn die Listener-App auf dem Smartphone?
Vielen Dank, hat funktioniert.
Derzeit kommt es manchmal zu diesem Problem, da der Textübersetzungsdienst die Informationen aus der Installation nicht ausliest. Bitte einfach mal eine neue benutzerdefinierte Handlung anlegen, oder einen Raum umbenennen, damit ein Änderungsereignis ausgelöst wird und der Dienst daraufhin automatisch alle Infos ausliest. Anschließend sollte es klappen!
Hallo Christoph. Ich bin seit heute auch im Club der Digitalstrom-User. Grossartiges Gefühl. 🙂
Ich habe gerade das gleiche Problem. Die Listener-App bringt immer die Meldung „Leider ist mir dein Zuhause nicht bekannt. Hast du es registriert?“. Habe auch schon den Token neu bezogen und eine neue benutzerdefinierte Handlung angelegt. Hat beides nichts geholfen. Hast Du noch einen Rat?
Danke für die Rückmeldung und bester Gruss.
Willkommen in der dS Community! Bitte sende mir per Mail Deine Mailadresse, mit welcher Du Dich bei mein.digitalSTROM registriert hast. Dann schaue ich mal nach.
Vielen Dank für diese tolle Möglichkeit! Ich kann nun von meiner Pebble Time Smartwatch mit Snowy per Sprachbefehl Aktionen im DS auslösen! Wirklich genial!
Danke, das klingt spannend!
Ich habe den IFTTT Connector erfolgreich installieren können. Aber wenn ich die benutzerdefinierte Handlung aufrufe (https://maker.ifttt.com/trigger/Küche Licht ein/with/key/makerkey), passiert nichts.
Zudem habe ich nach 3 Stunden immer noch nicht verstanden, wie ich HomeKit mit Digitalstrom verbinden kann. Homebridge konnte ich in HomeKit installieren, aber wie schlägt das die Brücke zu DS?
Und was gebe ich als Trigger bei Maker ein?
Fragen über Fragen…
Prüfe zunächst, ob die gewünschte Aktion im IFTTT Connector funktioniert. Was erscheint dort als Antwort? “Küche Licht ein” ist kein guter Name für eine benutzerdefinierte Handlung, da mit diesem Text typischerweise schon ohne Handlung das Licht in der Küche eingeschaltet werden kann. Beachte dazu https://ds-tools.net/blog/2015/07/23/das-zuhause-hoert-aufs-wort/.
Homebridge kann über ein IFTTT Plugin direkt IFTTT Rezepte auslösen. Ein solches Rezept wiederum kann dann eine Aktion im digitalSTROM System auslösen. Über diesen Umweg kann man eine gewisse Integration erreichen.
Es funktioniert auch nicht, die benutzerdefinierte Handlung mit dem Befehl «Gehen» auszulösen.
Könntest Du bitte etwas näher beschreiben, was Du gemacht hast? Zu “funktioniert nicht” kann ich leider nicht viel sagen. Hast Du den IFTTT Connector geöffnet und dort den Satz zum Aufrufen einer Handlung eingegeben? Welche Meldung erscheint, wenn Du das absendest?
Vielen Dank für die Antwort!!
Als Antwort kommt «Da mach ich doch glatt mal das Licht an.» Ich nehme an, das ist richtig. Aber die digitalSTROM Listener App kann man ja sowieso nicht brauchen. Zum einen versteht sie einen nicht – auch kein richtiges Hochdeutsch und zum anderen muss man zuerst das Handy entsperren und sie dann aufrufen. Dann kann man auch direkt die digitalSTROM App starten. HomeKit hingegen kann ich über meine Apple Watch und AirPods starten. Das ist viel besser.
Jedenfalls habe ich die folgenden Probleme, die ich am Samstag um 2:45 nicht mehr formulieren konnte:
1. Wenn ich im IFTTT Maker Channel eine URL kreieren lasse und diese als benutzerdefinierte Handlung teste, passiert nichts. Auch nicht mit einem Befehl wie «Gehen».
2. Wie bringe ich Homebride und IFTTT Maker Channel dazu, zu kommunizieren? Wenn ich es richtig verstehe, hört HomeKit meinen Befehl, schickt diesen an Homebridge, was ihn weiterleitet an den Maker Channel, der dann wiederum einen benutzerdefinierten Befehl in dss kreiert.
3. Aber ich kann nicht einmal Homebridge richtig einzustellen. Wenn ich «Über die App wählen wir ganz unten rechts Add Accessoires und anschließend Generisch aus» (https://smartapfel.de/logitech-harmony-hub-ueber-homebridge-mit-ifttt-in-homekit-einbinden) ausführen will, finde ich nicht einmal das Accessories Symbol.
Das ganze ist ein Buch mit sieben Siegeln. Um es für einen Normalverbraucher anwendbar zu machen, bräuchte es eine einzige Seite, auf der alles in einem Guss dargestellt und erklärt wird und nicht x verschiedene Dokumente auf verschiedenen Seiten. Eine durchgängige Anleitung, die funktioniert, das täte gut!
Hallo, nun steh auch ich vor noch unbegreiflichen Problemen.
Habe die Rezepte nach Prüfung korrekt angelegt, aber bei Aufruf mit Alexa kommt von ihr die Rückmeldung dass Sie diese Rezept nicht sehen kann.
Was läuft hier verkehrt?
Im Moment steh ich etwas auf dem Schlauch…
MfG
Christian
Also wenn Alexa selbst die IFTTT Recipes nicht finden kann, ist das ja überhaupt kein digitalSTROM Problem. Versuche mal, den IFTTT Skill zu deinstallieren und neu zu installieren oder so.
Dear madam/sir,
Can you please post an English tutorial to connect DS to IFTTT. The DS website presents the IFTTT connection as integrated (logo and everything), which is the main reason we choose DS. When I want to connect though, I am rerouted to your German website. Do I understand correctly that I have to connect to a private server to make this work? Thank you for a step-by-step explanation.
Regards,
Willem
Dear Willem,
The direct IFTTT integration is not yet finished and so I programmed a webservice which can do the integration between IFTTT and dS using the universal MakerChannel of IFTTT. The MakerChannel can be used as the THAT part of If This Then That and simply calls an URL. The URL links to my webservice and contains the dS action as written text. My webservice sends the text to the official text2dS service from digitalSTROM which then executes the action in the dS apartment. (This text2dS service is also used by the dS listener smartphone app.) You are right: The communication runs through my private webserver. But I am an employee of digitalSTROM and I do not save any credentials on my server.
I could translate my article to english but one problem still exists: The text2dS service is not yet available in english.
Regards,
Christoph
Dear Christoph,
Thank you very much for your quick elaboration! This is valuable information. I understand that the official IFTTT integration is in the making, do you have a timeframe in which it will be ready? In the meantime I will happily use your web service. Bit of trial and error indeed, using Google Translate to get the right commands for my home. Got it to work fine so far for the most urgent recipes.
Kind regards,
Willem
Sorry, I have not yet a timeframe for the direct IFTTT integration.
IFTTT hat die Seite modernisiert. Aus Channels wurden Services, aus Recipes wurden Applets und der Maker Channel heißt nun Maker Webhooks. Ich habe meinen Artikel dementsprechend nun überarbeitet.
Ich beokmm’ auch “Leider ist mir dein Zuhause nicht bekannt. Hast du es registriert?” als Antwort. Auch im Listener…
Meine Mailadresse ist die selbe wie hier angegeben.
Hi Oliver,
vermutlich fehlte noch ein Sync zur Cloud. Dieser erfolgt eigentlich automatisch, zuletzt heute um 18:40 Uhr. Ich habe gerade testweise über den “Listener” das Licht im Gästebad ausgeschaltet und das hat einwandfrei funktioniert. Ich hoffe, das Gästebad war gerade nicht in Benutzung.
Das Problem hat sich somit wohl in Luft aufgelöst.
Hallo Christoph, ich habe gesehen dass es DigitalStrom nun als eigenes Applet gibt inkl. Anmeldung an der DS Cloud. Heißt dass man kann nun das DS Applet direkt bei IF oder That ansprechen oder immer noch der Umweg über den Webhook Service? Gruß Timo
Hallo Timo,
in der Tat wurde am Wochenende der offizielle IFTTT digitalSTROM-Service veröffentlicht. Damit ist es möglich, digitalSTROM über den THAT-Teil anzusprechen. Dies funktioniert über natürlichen Text so, wie mit meinem Tool bisher auch. Leider gibt es noch keine Trigger, man kann den Service also nicht im THIS-Teil verwenden. Da bleibt immer noch die Lösung wie in meinem Teil 1 beschrieben.
Hoi Christoph
Ich habe heute versucht über den MyStrom Button Digitalstrom anzusteuern. Die Anmeldung hat bei IFTTT funktioniert. Mein Konfiguration: IF MyStrom Long press THIS Digitalstrom Ich will Gehen. Leider funktioniert dies nicht. Habe auch noch andere Kommandos ausprobiert ohne Erfolg. Sicherheitshalber habe ich den Digitalstrom Service mehrmals an und abgemeldet leider auch ohne Erfolg. Kannst du mir einen Tipp geben wie es funktionieren sollte. Hat sonst noch jemand Erfahrungen mit IFTTT gemacht ohne Webhook.
Gruss Reto
Hi Reto,
prinzipiell sollte das natürlich funktionieren.
Schaue bitte mal hier nach, ob das IFTTT Token korrekt angelegt wurde:
https://www.digitalstrom.com/index.php?cl=bu_oauth
In unserer Datenbank kann ich keine empfangenen “Textkommandos” für Deine Installation finden. Kannst Du denn bei ifttt.com unter “Activity” sehen, dass ein Kommando ausgeführt wurde?
Hoi Christoph
Besten Dank, für die rasche Antwort.
Auf der Seite die du mir geschickt hast, sind 10 Einträge mit crated. Auf IFTTT habe ich noch einen Fehler gefunden. Nun habe ich im Activity Log mehrere Einträge mit der Bezeichnung Applet run. Trozdem scheint es nicht zu funktionieren. Habe das Kommando auch mal geändert, dies führe auch nicht zum gewünschten Erfolg. Hast du noch einen Tipp für mich?
Gruss Reto
Hello Christophe, I try to create actions with Google Home in French by IFTTT but some sentence is not understood by DigitalStrom, for example: Ich esse auf der Terrasse for a personalized action. what needs to be done to create German sentences related to personal actions? I tried Aktion1, Aktion A … thanks for your help. BR, Alain
Hello Alain,
please first add a user defined action with any name, for example “My_special_action”. You can call this action via IFTTT by using “Bitte My_special_action” or “Ich möchte My_special_action”. The name of the action doesn’t need to be pronounceable, but then it is not accessible via voice (using dS Listener, Alexa or Google Home).
I had a look into your actions and found an action named “Ich möchte alle Jalousien öffnen und das Licht ausschalten” and similar names. This is very bad, because it is a full sentence instead of just a keyword (or a name for an action description). Our text-to-digitalstrom processor interprets the sentences and takes out the keywords, therefore don’t use full sentences 😉
If it won’t work for you, please tell me the exact name of the action which is non-functioning.
BR,
Christoph
Hallo Christoph, kannst du mir sagen wie ich von einem WR von Solaredge über das REST API die aktuelle Einspeiseleistung abfragen kann und bei einem gewissen Schwellenwert dann im ds eine BH oder BZ damit auslösen kann. Danke für die einfache Erklärung zur Umsetzung bereits im Voraus. Gruss
Hallo Christoph
in deinem Blog gibt’s schon lange keine Einträge mehr, trotzdem wende ich mich mit einer Frage an dich: ich habe eigentlich erfolgreich Digitalstrom mit IFTTT verknüpft, sprich ich kann mit Sprachbefehlen wie z.B. “schalte das Licht in der Küche ein” das Licht einschalten. Was aber nicht funktioniert sind benutzerdefinierte Aktionen wie z.B. “waschen”, da gibt es in IFTTT die Meldung “There was a problem running the action”. Es sollte doch reichen einfach den Namen der Aktion einzugeben, oder?
Gruss Jürg
Hallo Jürg,
ich arbeite nicht mehr für digitalSTROM, bin aber nach wie vor erreichbar 🙂
Wenn ich das richtig mitbekommen habe, funktioniert die Übersetzung von Textkommandos in dS-Kommandos aktuell nicht richtig. Als (besseren) Workaround kann ich Dir empfehlen, den ds-tools.net Connector zu verwenden (https://ds-tools.net/connector/). Dieser erzeugt eine URL, welche die gewählte Aktion zuverlässig ausführt. Diese URL kannst Du in IFTTT über den (Maker-) Webhook ausführen lassen.
Klasse für den Tipp mit dem Connector. Hat bei mir wunderbar geklappt. Ist wirklich ein Trauerspiel, dass dS den IFTTT Connector einfach einstellt ohne eine Nachfolge zur Verfügung zu stellen. Zum Glück gibt es dich Christoph!
Hi! Funktioniert der Connector noch oder hat DS den Zugriff auch gestrichen? Ich hab es mit Webhook versucht, aber es funktioniert nicht. Wenn ich den Link direkt eingebe, kommt eine Fehlermeldung a la „Service unavailable“.
Der ifttt-connector funktioniert leider nicht mehr, weil er die Text-to-dS Schnittstelle benutzt, die es leider nicht mehr gibt. Aber der „normale“ connector funktioniert weiterhin, bitte diesen benutzen: https://ds-tools.net/connector/
Bei Problemen bitte melden!
OMG Christoffel je bent GEWELDIG. Al een paar keer met DS gemaild en steeds na 3 weken reactie dat ze niets kunnen doen. Jij hebt mijn single use case voor DS aan me teruggegeven. Nogmaals bedankt.
Das freut mich sehr! Ich wünsche viel Erfolg mit meinem Service.
Hallo Christoph
Versuche mich gerade mit deinem Connector. Der alternative Login hat geklappt, die Zugriffsberechtigung ist auch aktiv. Jedoch passiert nichts… ich habe es nun testweise mit der GET-variante versucht und erhalte aber die rückmeldung
{“ReturnCode”:410,”ReturnMessage”:”API is decommissioned”}
Ist also definitiv Schluss mit “decommissioned” oder mache ich sonst einen Fehler?
Danke und liebe Grüsse
Hallo Mike,
der IFTTT-Connector funktioniert nicht mehr, aber der „normale“ Connector funktioniert, da er völlig unabhängig von der Cloud ist. Du findest ihn hier: https://ds-tools.net/connector/
Mit der alternativen Loginmethode muss das funktionieren. Falls nicht, bitte nochmal melden.
Schöne Grüße
Christoph
danke, mit dem Connector erhalte ich laufende links. direkt im browser klappts, über webhooks wills aber nicht, gebe wohl die werte falsch ein:
URL = https://ds-tools.net/cloudredir.php
Method = GET und POST ausprobiert
Content Type = application/x-www-form-urlencoded
Additional Headers = leer
Body (abc123 ersetzt werte aus connector) = ?adr=abc123&token=abc123&path=/json/zone/callScene%3Fid%3D0%26groupID%3D0%26sceneNumber%3D71%26category%3Dmanual
Hallo Mike,
Du musst die gesamte URL als „URL“ eintragen. Methode ist GET, Header und Body bleiben leer, Content Type spielt keine Rolle. Also alles ganz einfach 🙂
super, jetzt klappts 👌🤗