NEWS
[gelöst]HTTP POST mit Javascript
-
Hallo,
auf meinem Android Tab ist Tasker installiert. Um Tasker über das Netzwerk zu steuern, nutze ich den Tasker Network Event Server (TNES). Dieser wertet HTTP POST Requests aus und gibt diese an Tasker weiter. Womit ich auch schon beim Problem bin.
Von der CCU2 kann ich ohne Probleme, mit Hilfe von CURL, HTTP POSTs absetzen:
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d title=hallo -d station=local http://192.168.x.xxx:8765");
Jetzt suche ich einen Weg, dies auch aus ioBroker heraus zu tun. Meine Versuche mit Javascript führten bis jetzt nicht zum Erfolg.
Danke, mayer
-
Probier mal damit:
var request = require("request"); on({time: {hour: 18, minute: 43}}, function() { request('http://192.168.66.32:50000/tasker=Test123'); });
Der Port und der Rest dahinter ist zwar für den Home24 MediaPlayer, aber du kannst es ja so umbauen wie du es brauchst. Die Zeitfunktion war nur zum testen.
Damit konnte ich zumindest mal Tasks in Tasker über Den Home24 MediaPlayer auslösen.
TNES kannte ich noch gar nicht, schaue ich mir mal an.
-
Hallo,
vielen Dank für den Tip. Aber so funktioniert es leider nicht mit TNES. Den Home24 MediaPlayer hatte ich auch erst laufen. Leider war dieser sehr unzuverlässig und musst immer neu gestartet werden. TNES und Tasker funktionieren tadellos, benötigt aber HTTP POST. Für den Home24 MediaPlayer reich HTTP GET, wie es jeder Browser macht.
Gruss, mayer
-
Ok, dann mal abwarten ob jemand noch ne Idee hat.
Ich suche noch eine Möglichkeit mit iobroker an Tasker eine Variable zu schicken. Momentan mache ich das mit Pushbullet und fange dann mit Tasker bzw. Autonotification die Variable in der Pushbullet Message ab und verarbeite sie in Tasker. Ist aber nicht die optimale Lösung.
-
Mit TNES ist es überhaupt kein Problem Variablen zu schicken. Ich schicke z.B. ganze Webradio URLs zu Tasker, welcher dieser dann über Intent Radio abspielen lässt. Oder ich lasse Tasker eine Begrüßungs-MP3 abspielen (was vorher der Home24 MediaPlayer mehr schlecht wie recht machte).
Ich warte mal weiter. Vielleicht hat ja noch jemand eine Idee.
Gruss, mayer
-
Hier ist die Lösung. Du kannst das mit der Hilfe von einem Skript machen:
var request = require('request'); request.post({ url: 'http://192.168.x.xxx:8765', form: { title: "hallo" } }, function(error, response, body) { if (error) log(error, 'error'); });
-
Vielen Dank Bluefox, funktioniert super.
So langsam wird das wirklich alles zur Sucht :lol:
Gruss, mayer
-
Du müsstest mir hier nochmal kurz weiter helfen, bei mir klappt das nicht.
Ich habe das jetzt ein ein Script geschrieben:
var request = require('request'); request.post({ url: 'http://192.168.x.xxx:8765', form: { title: "hallo" } }, function(error, response, body) { if (error) log(error, 'error'); });
Jetzt zu Tasker bzw. dem Plugin. Ich dachte ich muss in der Konfig des Plugins nichts weiter eintragen, als z.B. "hallo" als Filter
Tut sich aber nichts, wenn ich damit einen Task starten will. Wo liegt mein Fehler?Gruß
-
Hallo,
du hast den falschen Namen bei Filter eingetragen. Dort muss title stehen.
In deinem Script sendest du dann zur automatisch erzeugten Tasker Variable %tpe_title den Wert hallo.
http://thacthab.herokuapp.com/TNES.html erklärt das nochmal.
Gruss, mayer
-
Ok alles klar. Werde ich probieren. Dachte ich muss den Text als Filter eintragen.
Danke dir.
-
Du kannst auch mehrere Filter-Variablen definieren und auswerten. Im Script sieht das dann so aus:
form: { title: "http://out03.t4e.dj:80/main_high.mp3", station: "Techno4Ever" }
-
Ok, muss ich mir anschauen was damit dann machbar ist. Aber brauchbar ist es definitiv, das geht dann besser und schneller als meine jetzige Lösung mit Pushbullet und autonotification.
Jetzt wo ich weiß, dass ich nicht den Text als Filter nehmen muss, sollte das klappen. :lol:
-
Du kannst auch mehrere Filter-Variablen definieren und auswerten. `
Kannst du mir sagen wie der Filter im Network Event vom Tasker aussehen muss? (Event name und Filter)
Evtl würde mir ein Screenshot schon weiterhelfen.
Danke.