Tasker: Skripte in IP-Symcon starten

Weißt du mittlerweile an was es liegt/lag ?
Ich bin gerade dabei mein 1. Android Tablet einzubinden und bei mir funzt auch nix :frowning:

Gruß
Jens

Kommt bei dir im Tasker eine Fehlermeldung oder kommt im Symcon kein Befehl an?
Bei mir war es Letzteres. Mit den Einstellungen wie in den Screenshots im letzten Post funktioniert es bei mir jetzt.
Ich denke ich hatte irgendwo einen Tipp Fehler oder falsche Groß/Kleinschreibung.
Wenn du z.B. „IPS_Runscript“ statt „IPS_RunScript“ schreibst, funktioniert es nicht.

Ich habe eben noch mal alles deinstalliert und neu installiert, jetzt klappt es. Vorher ist auch nicht mal im Log bei Tasker etwas aufgetaucht, muss also irgendein internes Problem gewesen sein. Evtl. lag es an der Installationsreihenfolge :confused:

Ich muss das hier mal wieder hoch holen :wink:

Nach einem Update auf IPS 4.2 funktioniert weder das Senden zum Galaxy noch vom Galaxy zu IPS. Hat sich da etwas an der Kommunikation verändert ?

Edit:
Ok, Problem 1 gelöst … scheinbar ist es jetzt wichtig den String auch als String zu übergeben ("%BATT" an Stelle von %BATT)

Problem 2 ist das Senden zum Galaxy Tab, das gehört aber wohl hier nicht rein.

Gruß
Jens

Hi,
ich bin immer noch recht neu bei IPS und wollte jetzt auch was mit Tasker machen. Habe aber Probleme:-(
Nehme ich HTTP-Post zeigt mir Tasker einen grünen Punkt aber es kommt nichts an.
Nehme ich HTTP-Request mit Methode Post wie es bei aktuellem Tasker gemacht werden sollte kommt „Connection closed by peer“ als Fehler.

Weder im Log von IPS noch Tasker sehe ich einen Hinweis was schief läuft.

Was ich schon gelernt zu haben glaube ist das ich in der URL als Benutzer nicht das @ sondern %40 angeben muss.

Ich will einfach nur ein Script laufen lassen.

Was könnte ich falsch machen? Noch ein Hinweis ich greife auf mein IPS per CNAME-Umleitung per MyFritz zu.

Ralf

Zeig doch mal (mit geschwärzten User-Daten) bitte die genaue Action und wie du sie aufgebaut hast. Häufig sind es Kleinigkeiten die man damit besser finden kann.

Was könnte ich falsch machen? Noch ein Hinweis ich greife auf mein IPS per CNAME-Umleitung per MyFritz zu.

Das würde ich zuallererst auf die Magic-IP von IPS abwandeln, so du denn noch eine gültige Subskription hast, das erspart die Suche in der Fritzbox.

Hi,
auch mit Magic-IP keine Änderung. In den Bildern:
Post das was ich für HTTP-Post eingegeben habe
Request das was ich für HTTP-Request eingegeben habe weil man das ja zukünftig benutzen sollte
Ergebnis das was ich nach der Ausführung sehe.

Post ist grün Script wurde aber nicht ausgeführt und Request liefert einen Fehler.

Ralf

ich benutze auch noch POST , 2 Unterschiede sind mir aufgefallen: 1. im Pfad am Schluss noch ein „/“ und Trenner von Benutzer-Name und Passwort ist ein @ , sonst sieht es gut aus.

Hi,
das mit dem / nach api hatte ich auch noch gesehen und probiert aber machte auch kein Unterschied.

und Trenner von Benutzer-Name und Passwort ist ein @

das %40 ist das @ im Benutzernamen und Passwort ist mit dem : getrennt. Das mi %40 statt @ im Benutzernamen stand hier im Thread.

Ralf

Ich wollte umstellen auf HTTP Request, weil man die alten Sachen ja nicht mehr in Tasker nutzten soll und habe auf einmal auch Probleme in IP-Symcon etwas zu empfangen.
Ich sehe zwar das Tasker etwas schickt und in Tasker ist es grün aber in IP-Symcon kommt am Webhook nichts als POST an.

Eingeben habe ich
Method


POST

URL


http://%USER:%PASSWORD@%IPSSERVER:%IPSPORT/hook/tasker

Body


battery=%BATT

Muss ich noch irgendwo etwas ergänzen bei Headers oder kommt das nicht in den Body sondern bei Query Parameters rein? Ich blicke da nicht durch was wo einzutragen ist, dass Tasker auch korrekt etwas per POST schickt. Kann mir einer einen Tipp geben, bei dem es mit HTTP Request aus Tasker funktioniert, was in welchem Feld in Tasker einzutragen ist…

Im Debug Fenster sehe ich nur das Tasker was geschickt hat aber keinen Inhalt


Tasker IO POST: | []

Der Webhook schreibt ins Debug Fenster mit


// Tasker nutzt POST
        if (isset($_POST))
        {
            $this->SendDebug("Tasker IO POST:", json_encode($_POST),0);
        }

Hilft das ?

ich mache es aber etwas anders - ich sende einen json string in eine Variable und werte das dann in IPS aus, darunter gehört auch je nach Inhalt das Starten von Scripten.Die ipmagic-url ist https

Ja, meinte natürlich um Benutzernamen und PW vor den Host zu setzen… aber @ hat bei mir nie Probleme bereitet… dagegen bestimmte Sonderzeichen im Benutzernamen oder Password schon, danach würde ich nochmal gucken. Das dann 2x @ auftaucht, einmal „im“ Benutzernamen, weil es ja die Mail-Adresse ist und einmal vor dem Server ist OK.

da es vorne geschwärzt ist nochmal als Hinweis: Ich beginne direkt mit dem Benutzernamen, ohne HTTP(S) oder sonstwas.

Hi,
danke für den Hinweis. Ich dachte das @ im Benutzernamen beißt sich mit dem @ vor dem Server und hatte es nicht ausprobiert. Ich werde es nochmal mit @ probieren.

Ralf

Hallo zusammen,

ich sende von meinem Android die Postion an IPS.
Ansich alles gut.

Nun wollte ich endlich mal einen HTTPS Zugriff nutzen und gleichzeitig HTTP Request vom Tasker nutzen.

Der Erfolg ist leider nicht vollständig da:

Hier die Konfiguration vom Tasker

hiermit die Konfiguration der Logs:
IPS_LogMessage(„WebHook POST“, print_r($_POST, true));
IPS_LogMessage(„WebHook GET“, print_r($_GET, true));
IPS_LogMessage(„WebHook IPS“, print_r($_IPS, true));
IPS_LogMessage(„WebHook RAW“, file_get_contents(„php://input“));
IPS_LogMessage(„Server RAW“, print_r($_SERVER[‚HOOK‘]));

und nun das Ergebnis, es füllt sich leider das Arrray vom POST nicht.

Wen ich das mit alten HTTP POST von Tasker mache, dann ist alles okay (POST Array gefüllt), das Log vom WebHook sieht etwas anders aus:

.

Was muss ich tun?

Body ist nicht in Post sondern php://input zu finden.
Das siehst du doch sogar in deinem Log Screenshot :smiley:
Michael

okay, und wie kommt der Inhalt ( Content von Body ) in POST?

und leider ehrlich, ich kann den Unterschied aus dem Log nicht erkennen.

In beiden Varianten ist ein Inhalt in php://input, aber nur in einem in POST

Der Body muss korrekt kodiert sein damit der Webserver den Inhalt als Daten für HTTP-Post verarbeiten kann:
HTTP/Anfragemethoden – SELFHTML-Wiki
Michael

Hi Michael,

was soll ich sagen:

Mit der Konfiguration landen die Daten in $_GET, fast schon richtig… hätte $_POST sein sollen

Falls du noch ein Idee hast immer gerne

Lösung steht in meinem Post 37.
Der Body muss korrekt encodiert sein.
Z.b. Ort=%OrtzuIPS&Coordinates=%…
Michael

nun, ich habe es in Tasker gemäss deines Vorschlags formatiert…
Post bleibt leer