
Was ich bislang gemacht habe:
Den CURL Befehl kann ich eingrenzen auf:
Code: Alles auswählen
curl 'http://192.168.178.48/php/easpanelW.php' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'X-Requested-With: XMLHttpRequest' --data-raw 'Betrieb=3&Leistung=4&Helligkeit=60&Bedienung=1&LED=1&AB=0'
Dann ein Thing auf Textbasis angelegt:
Code: Alles auswählen
Thing http:url:drooff "Drooff"
baseURL="http://192.168.178.48/",
refresh=10,
timeout=8000,
commandMethod="POST"
] {
Channels:
Type string : command "Kommando" [ stateExtension="php/easpanelW.php/", commandExtension=" -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'X-Requested-With: XMLHttpRequest' --data-raw %2$s" ]
}
Code: Alles auswählen
String drooffSend {channel="http:url:drooff:command"}
Code: Alles auswählen
drooffSend.sendCommand("'Betrieb=3&Leistung=4&Helligkeit=60&Bedienung=1&LED=1&AB=0'")
Dritter Ansatz: per sendHttpPostRequest in einer Regel:
Code: Alles auswählen
rule "rule name"
when
Item drooffTest changed
then
val String URL = "http://192.168.178.48/php/easpanelW.php"
var String contenttype = "application/x-www-form-urlencoded; charset=UTF-8"
var String content = "-H 'X-Requested-With: XMLHttpRequest' --data-raw 'Betrieb=3&Leistung=4&Helligkeit=60&Bedienung=1&LED=1&AB=0'"
sendHttpPostRequest(URL, contenttype,content )
end
Vielleicht ist auch irgendwo ein Syntaxfehler, aber zumindest VSC hat sich nicht beschwert.
Bliebe noch der Weg über eine Bash-Datei? Wie kann ich denn hier die Parameter Betrieb=... AB=... and die Bash übergeben?