Problem IFTTT (Webhook mit Webrequest)

Hallo zusammen,

ich habe gerade versucht, bei einem Event in IFTTT einen WebRequest abzusetzen, erhalte dann aber einen HTTP 401 (nicht authorisiert). Den Webhook habe ich laut „Anleitung“ erstellt, die URL die aufgerufen wird lautet wie folgt (natürlich stehen bei x die entsprechende Daten ;-):

https:// xxx.ddns3-instar.de:8081/param.cgi?cmd=getinfrared&-usr=xxxx&-pwd=xxxx

Im Acticity Log von IFTTT erhalte ich folgende Rückmeldung:

Unable to make web request. Your server returned a 401

Mittlerweile bekomme ich einen Timeout, warum auch immer.
Unable to make web request: Error: ETIMEDOUT

Mache ich das Ganze über den Browser, funktioniert es. Dabei lasse ich usr und pwd weg bzw. gebe es im Dialogfenster nach Aufforderung ein. Ich erhalte dann folgende Antwort:
var infraredstat=„auto“;

Die Kamera ist über DDNS erreichbar, das habe ich schon geprüft (innerhalb der INSTAR-Oberfläche): DDNS-Adresse, Portweiterleitung und Kamera Erreichbarkeit alles grün

Ich habe nun User und Pwd mehrfach geprüft, die Daten sind in Ordnung. Hat jemand vielleicht eine Idee, woran es liegen kann?

Danke im Voraus :slight_smile:

So, den Timeout bekomme ich jetzt nicht mehr. Wenn man in IFTTT beim WebRequest keinen Body angibt, kommt es zum Timeout. Das finde ich komisch, denn diese ist als optional angegeben. Wenn ich einen leeren Body eintrage, genauergesagt {}, geht der Call wieder, aber dann bekomme ich wieder meinen 401.

Ggf. kann man noch probieren die Authetifizierung einmal dem Befehl voranzustellen. Das Anhängen des Logins am Ende hat in der Vergangenheit schon mal Probleme verursacht - auch wenn in meinem Test gerade beides mit IFTTT funktioniert:

https://admin:instar@meine.ddns3-instar.de:8081/param.cgi?cmd=pushhostalarm

https://meine.ddns3-instar.de:8081/param.cgi?cmd=pushhostalarm&usr=admin&pwd=instar

Hallo @INSTAR ,

HTTPS habe ich auf jeden Fall in der URL, das habe ich gerade noch einmal überprüft. Vielleicht noch ein paar Infos, was ich gerade mach:

Ich habe mir in Node-Red (läuft lokal auf meinem PC auf Port 1880) einen Flow angelegt, der ein Event an IFTTT sendet. Daraufhin soll IFTTT dann einen WebRequest absetzen und zu Testzwecken einfach mal den Infrarotstatus abrufen. Die Kamera läuft auf Port 8081, meine Portweiterleitung ist wie im Screenshot angehangen eingerichtet. Ich denke, der Call in IFTTT ist falsch, weiß aber nicht, wie dieser aussehen muss. Ist das nicht richtig, dass ich den Port 8081 nehme, ich spreche ja direkt die Kamera an?

Wenn ich die Credentials vorne anstelle, erhalte ich folgenden Fehler:

Hallo @INSTAR ,

ich habe gerade nochmal etwas rumgespielt. Zumindest geht es jetzt über HTTP, lieber wäre mir HTTPS, aber darüber erhalte ich einen Fehler. Hier weiß ich aktuell nicht weiter, vielleicht hat jemand einen Tipp?

Angepasst habe ich jetzt auch die Portweiterleitung.

Somit bin ich jetzt in der Lage, aus Node-Red ein Event abzuschicken, welches dann in IFTTT einen WebRequest absetzt, der wiederum in einem HTTP-IN in Node-Red ankommt. Was ich jetzt noch möchte, ist, dass ich (im ersten Schritt) den IR-Status der Kamera auslesen möchte. Später soll es dann so sein, dass, wenn ich das Zuhause verlasse, IFTTT einen WebRequest absetzt, um den Alarmmodus zu aktivieren bzw. diesen zu deaktivieren, wenn ich mich dem Zuhause nähere.

Aber warum geht das mit HTTP nicht, es erscheint folgender Fehler:

Wenn Node-RED im Netzwerk läuft, kann man da doch einen Webhook auf der gleichen URL anlegen und sich mal schauen was IFTTT da zur Kamera sendet?

https://wiki.instar.de/Erweitert/Node-RED_und_IFTTT/

Schaue ich mir gleich mal an. Was ich jetzt nebenbei versucht habe, ist, nachdem IFTTT einen WebRequest abgesetzt habe, in Node-Red die Kamera zu kontaktieren. Das scheitert aktuell irgendwie am Zertifikat, so zumindest die Meldung:

Node-Red WebRequest an Kamera.png

„Error: unable to verify the first certificate“

https://stackoverflow.com/questions/42983635/error-unable-to-verify-the-first-certificate-in-node-red

Hallo,

das hatte ich vorhin schon einmal probiert und erhalte eine Antwort. Aber ist das wirklich sinnvoll, so vorzugehen?

Result.png

Hallo @INSTAR ,

das die DDNS Adresse irgendeiner Kamera genommen werden kann, ist ja selbstverständlich, da ja alle DDNS Adresse auf die IP-Adresse des Router zeigen und die Weiterleitung an die Kamera über die Portweiterleitung im Router geregelt wird. Theoretisch könnte man die DDNS-Adresse der Kamera auch für andere Sachen nutzen, quasi for free und braucht kein DynDNS oder ähnliches :-).

Ich habe im Passwort weitere Zeichen in Form von ! oder #, ich ändere das mal und probiere es mit einem einfachen Passwort.

Zumindest funktioniert es ja bei mir jetzt soweit erstmal. Woran ich gerade sitze ist die Aktivierung / Deaktivierung, wenn ich eine Location betrete / verlasse. Aber das sollte nicht so schwierig sein.

Was ich auch noch rausfinden möchte ist, ob man auf Events der Kamera reagieren kann, aber das ist ein anders Thema.

Auf jeden Fall vielen Dank für Deine Unterstützung!!

Das Update für den Alarmserver (für HTTPS und POST Requests steht jetzt im Autoupdater zur Verfügung. D.h. man kann jetzt den Alarmserver auch nutzen um direkt mit IFTTT im Alarmfall Kontakt aufzunehmen.

Danke für die Info, habe soeben aktualisiert.

Bei mir funktioniert IFTTT in direkter Verbindung mit dem Alarmserver leider nicht, da der Alarmserver zwingend einen Serverport hinzufügen möchte (:80).
Wenn ich das Feld leer lasse, kann ich die Einstellungen nicht abspeichern. Mache ich was falsch?

Um die Kamera von IFTTT kontaktieren zu lassen, benötigt man kein SSL - in der umgekehrten Richtung ist es jedoch zwingend notwendig (SSL und Port 443). Das war einer der Gründe warum es erst jetzt nach dem Update möglich ist diese Funktion zu nutzen. Die Alarmserver Konfiguration würde dann so aussehen:

image_3013.png

Perfekt. Funktioniert. Herzlichen Dank!

Anschlussfrage:
Ich würde gerne mit der Kamera direkt ein Projekt in Conrad Connect starten. Dazu müsste ich noch den Content Type und den Body übermitteln.
Ist das möglich? So könnte ich das Projekt direkt starten, ohne den Umweg über IFTTT.

Also das was da im IFTTT Hook steht, kann man so auch direkt mit der Kamera senden. Einfach POST und SSL aktivieren und {„event“:„ALARMAN“} als Query hinzufügen. Müsste ich mir auch mal ansehen. Was sind die Vorzüge der Conrad Lösung? Gibt es dort spezielle Hardware - Bewegungsmelder, usw. ?

Ja, es gibt spezielle Hardware. Ich steuere damit Homeatic IP. Außerdem lassen sich in einem Projekt mehrere Dinge gleichzeitig erledigen. Zudem git es Logikgatter, Zeitfunktionen etc.
Insgesamt gibt es mehr Möglichkeiten als bei IFTTT, auch ohne spezielle Programmierkenntnisse.
Umgekehrt kann ich über meine Homeatic IP Bewegungsmelder auch die Alarmfunktion meiner Instar Kameras auslösen.

Wie muss ich denn das Query im Alamrserer eingeben?
Ich glaube ich mache da was falsch…

Ich müsste mir die Conrad Lösung auch erst einmal anschauen, um zu sehen ob es wirklich so funktioniert. Aber der Parameter müsste auf jeden Fall schon mal anders eingetragen werden:

Untitled.png

So würde das dann JSON formatiert im Body des POST Request stehen. Aber ist POST wirklich bei Conrad vorgegeben ? Wenn dort nichts explizit angegeben wird ist es vermutlich eher ein GET Request.