NEWS
[gelöst] IFTTT-Webhooks werden nicht getriggert
-
Hi,
nutze den iot-Adapter unter anderem, um IFTTT-Webhooks zu starten.
Wenn ich z.B. per Siri den Befehl "Kaffeemaschine ausschalten" aufrufe, dann wird der auch über den yahka-Adatper und ein entsprechendes Javaskript an den IFTTT-Service-Datenpunkt übertragen.
Aber offensichtlich bekommt da IFTTT nichts von mit, denn unter Activities wird mir nichts angezeigt. Auch im Log des ioBroker gibt es keinen Hinweis darüber, dass da etwas über den iot-Adapter ausgeführt wurde.
Umgekehrt funktioniert es aber. Wenn ich z.B. aufstehe, dann sendet mein Nokia Sleep per IFTTT und Webhook die Meldung "aufgestanden" an den IFTTT-Service-Datenpunkt des iot-Adapters. Das kommt also an.
Habe ich da evtl. noch was falsch konfiguriert?
EDIT: Die Lösung des Problems findet sich hier. Vielen Dank für eure Mithilfe.
-
Bin ich der einzige mit diesem Problem? Oder nutzt hier ansonsten niemand IFTTT, um ein Gerät zu steuern?
Mir würde es ja schon weiterhelfen, wenn mir jemand bestätigen könnte, dass es bei ihm funktioniert, wenn er den Datenpunkt "iot.0.services.ifttt" entsprechend setzt. Dann weiß ich, dass irgendwas an meinen Einstellungen nicht stimmt.
Wie gesagt, umgekehrt klappt es. Sprich, ich kann über einen IFTTT-Webhook eine Änderung des Datenpunkts "iot.0.services.ifttt" empfangen. Nur das Senden will nicht funktionieren.
EDIT: Hab dazu hier jetzt mal ein Issue gestartet.
-
@dtp
ich nutze ifttt bisher nur in Richtung ioBroker, anders herum habe ich noch nie probiert. (ich wusste auch gar nicht das es auch in die andere Richtung geht, gehen soll) -
Ich nutze es auch nur in Richtung ioBroker (Routine Alexa -> IFTTT -> Webhooks -> IOT Adapter im IoBroker). Aber ich hab da auch ein paar Probleme. In deinen Fall hab ich leider null Ahnung. Ich weiß nichtmal wie man den Iot Adapter dazu bringt mit IFTTT zu kommunizieren.
-
@dslraser sagte in IFTTT-Webhooks werden nicht getriggert:
ich wusste auch gar nicht das es auch in die andere Richtung geht, gehen soll
Doch, doch. Das soll gehen. Steht zumindest hier, auch wenn das noch die Anleitung für den alten cloud-Adapter ist. Aber der iot-Adapter soll ja dieselbe Funktionalität aufweisen, denn dort wird ja explizit auf diese Anleitung verwiesen. Wenn nun der entsprechende Inhalt erkannt wurde, wird der Webhook ausgeführt. Hier mal ein Beispiel, wie ich darüber unsere Kaffeemaschine per HomeConnect ausschalte:
@Thomas-Winkler sagte in IFTTT-Webhooks werden nicht getriggert:
Ich weiß nichtmal wie man den Iot Adapter dazu bringt mit IFTTT zu kommunizieren.
Eigentlich soll das gehen, indem man den Datenpunkt entsprechend setzt. Das kann man ja per Blockly oder Javascript machen. Oder man ändert ihn zum Testen einfach manuell.
-
@dtp
ah, okay, stimmt. -
@dtp
ich habe mal versucht so ein Beispiel aus der Beschreibung nach zu bauen, aber bei mir tut sich auch nix ? Meine Anwesenheit funktioniert damit recht zuverlässig, also die Daten in Richtung ioBroker. Anders herum tut sich irgendwie nix. -
OK mit Javascript geht es natürlich^^. Dachte du machst das direkt im iot-Adapter.
Meine Problem ist die Zeitliche Abfolge. Ich hab nen Kontaktsensor an meiner Tür (den kann ich nicht direkt in den ioBroker einbauen, da der Tuya Adapter nicht mehr funktioniert). Also zwei Routinen in Alexa die dann IFTTT auslösen welche dann als "THEN" Webhooks triggert welcher den Status an den iot Adapter sendet. Bei offen "open" und bei geschlossen "close".
Problem ist jetzt, dass wenn ich die Tür sehr schnell wieder zu mache, beim iot Adapter erst der "close" Status an kommt und DANACH der "open" Status (oder nur der "open" Status, da bin ich nicht sicher). Also Tür ist zu und der ioBroker denkt die Tür ist offen. Ich weiß jetzt nicht genau wo der Fehler liegt. Entweder die Alexa Routinen sind zu träge und starten irgendwie in falscher Reihenfolge (was ich nicht glaube) oder IFTTT ist zu lahm/ausgelastet und verarbeitet dann erst die zweite Anfrage und dann die Erste oder der iot Adapter ist das Problem, dass er nicht 2 Befehle so kurz nacheinander verarbeitet und den zweiten "close" ignoriert.
Die Notlösung war jetzt erstmal das Alexa im der "Close Routine" mehrfach den close Status an IFTTT sendet. Besser wäre natürlich wenn ich in der Routine sagen könnte "schick den close Befehl, warte 1 Sekunde und schicke ihn nochmal". Leider ist das Minimum an Wartezeit 5 Sekunden was möglich ist in der Alexa Routine. Das wäre wieder viel zu lang.
-
@dslraser sagte in IFTTT-Webhooks werden nicht getriggert:
ich habe mal versucht so ein Beispiel aus der Beschreibung nach zu bauen, aber bei mir tut sich auch nix ? Meine Anwesenheit funktioniert damit recht zuverlässig, also die Daten in Richtung ioBroker. Anders herum tut sich irgendwie nix.
Danke. Dann ist es also, wie bei mir.
Ich hatte das mal über die Homebridge mit dem dortigen IFTTT-Plugin realisiert und dort klappte es problemlos. Hoffe, dass sich bald jemand der Sache hier annehmen wird.
IFTTT ist jetzt zwar aus meiner Sicht nicht die optimale Lösung für eine Hausautomation, aber manche Dinge scheinen leider nur darüber zu funktionieren. Aktuell gilt dies z.B. auch für das Auslesen der Werte von Withings/Nokia Health, weil es dafür immer noch keinen ioBroker-Adapter gibt.
-
noch mal bissel gespielt, kommt doch was an, nur bisher bin ich zu blöd es richtig ein zu stellen.
Test 2:
Edit: Ich hatte immer versucht das Trigger Wort z.B. state in den Objekten ein zu tragen, bei services, da ist nix passiert. Ich dachte das käme da rein, weil da auch Werte von ifttt ankommen, aber da passiert nix, nur über den Blockly Baustein kam was bei ifttt an.
-
Hm. Ich mach nix mit Blockly. In der Anleitung hier steht aber, dass es auch direkt über den ifttt-Datenpunkt gehen müsste.
Und auf den sendTo-Befehl im Javaskript gab es irgendwie gar keine Reaktion. Hab ich wohl was falsch gemacht.
-
@dtp
selbst wenn ich es mit dem Testblockly mache, steht das nicht in dem Datenpunkt unter services. -
Okay, dann versuche ich es heute Abend noch mal mit dem sendTo-Befehl. Melde mich. Danke für die Hilfe.
-
Klappt leider nicht.
Hab jetzt ein kleines Skript mit folgendem Inhalt geschrieben:
var timer = null; on({id:'javascript.0.ifttt.KaffeemaschineAusschalten', change:'any', val:true}, function(){ sendTo("iot.0", "ifttt", {event: 'Kaffeemaschine_ausschalten'}); if(timer) clearTimeout(timer); timer = setTimeout(function(){ setState('javascript.0.ifttt.KaffeemaschineAusschalten', false); }, 200); });
Aber es passiert leider nichts.
-
Hab's gestern nicht mehr ausprobiert, aber kann es sein, dass die drei values Pflichtfelder sind? Die kann man ja aus dem Blockly auch nicht einfach entfernen, oder?
-
@dtp
ja, das denke ich auch. -
Ich probier's heute Abend mal aus und melde mich wieder.
-
@dtp
aus der Beschreibung.Also its possible to set the variable iot.0.service.ifttt with some value and it will be send, too.
-
Na ja, "with some value" ist ja nun ziemlich vielsagend. Sprich, "event" ist irgendwie auch ein "value".
-
Also irgendwie kapier ich das nicht. Das Skript wird ordnungsgemäß ausgeführt, es passiert aber nichts mit dem IFTTT-Webhook.
Komischerweise hatte es heute Früh ein einziges Mal zumindest einen Run gegeben. Aber das bekomme ich nicht mehr reproduziert.
Keine Ahnung, was da schief läuft und wo die Ursache dafür liegt. Vielleicht versuche ich es doch mal mit den von mir so ungeliebten Blocklies.