rule "test Shelly-Firmware"
when
Item Dummy6 changed to ON
then
ShellyAudioBeamerJson.postUpdate(transform("JSONPATH", "$.properties.updateAvailable", sendHttpGetRequest("http://meineIP:8080/rest/things/shelly%3A ... ugs%3A69abc3")))
logInfo("test Regel", " Update Status ist {} ", ShellyAudioBeamerJson.state)
end
Zum Testen hab ich einfach einen Dummy-Schalter als Trigger genommen.
Und nicht vergessen "%3A" zu nehmen. Das wird aber normalerweise in der RESTApi auch angezeigt.
rest.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
udo1toni hat geschrieben: ↑5. Apr 2020 12:30
http bietet direkt Unterstützung für JSONPATH. Es erscheint mir nicht sinnvoll, das über ein Profile zu lösen.
In der Adresse sind Doppelpunkte, was zu Problemen führt, da das http Binding den Doppelpunkt auch verwendet, um die einzelnen Parameter voneinander zu trennen. Ohne das jetzt ausprobiert zu haben, denke ich, dass man den Doppelpunkt jeweils mit %3A ersetzen muss, damit die Adresse korrekt verwendet wird.
Es geht ja um ein Firmwareupdate, da sollte es ausreichen, einmal pro Stunde nachzuschauen, ob sich was getan hat. Entsprechend sind das 3600000 Millisekunden. Zum Schluss kommt dann direkt JSONPATH als Transformation.
Falls das nicht funktioniert, musst Du vermutlich einen http cache verwenden, da die Adresse hier allein steht.
Die Zeitangabe hatt ich noch nicht eingebaut, aber mit den %3A mag er immer noch nicht :-/ stumpf mit den : geht es dann aber ohne Probleme (zumindest für dieses Item) und ja, bei solchen Werten reicht stündlich mehr als vollkommen aus
...schau doch nochmal die Request URL im RESTApi an !!!. Die solltest du eigentlich dort einfach rauskopieren können und dann in deinen String reinkopieren können.
Zwischen deiner IP-Adresse und "8080" sollte noch ein "Doppelpunkt" sein und anschliessend dann "%3A". So wird es zumindest bei mir angezeigt.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
peter-pan hat geschrieben: ↑5. Apr 2020 13:58
...schau doch nochmal die Request URL im RESTApi an !!!. Die solltest du eigentlich dort einfach rauskopieren können und dann in deinen String reinkopieren können.
Zwischen deiner IP-Adresse und "8080" sollte noch ein "Doppelpunkt" sein und anschliessend dann "%3A". So wird es zumindest bei mir angezeigt.
Ja, geau so habe ich es eingebaut und bei dem Property für Shelly geht dies, bei dem für den Mower nicht.
Bei der Rule geht dies auch mit dem "%3A", wenn ich dies als Item definiere (habe 2 unterschiedliche zum Test) dann will er auch hinten ":".
Unterschied zum Mower ist die Anzahl der Segmente für den http String (beide aus der Rest API) bei kann ich über den Browser aufrufen. Nur der Befehl in der Rule mag dies iwie nicht.
14:35:52.219 [ERROR] [untime.internal.engine.RuleEngineImpl] - Rule 'Schalter_Test': The name 'sendHttpGetREquest' cannot be resolved to an item or type; line 116, column 74, length 118
Der Http Teil ist 1:1 aus der Rest API und funktioniert auch im Browser und mittels http://jsonpath.com/ kann ich mit $.properties.product_id den richtigen Wert abfragen.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
Es heißt auch sendHttpGetRequest, nicht sendHttpGetREquest.
Jedes einzelne Zeichen muss korrekt geschrieben sein, Groß/Kleinschreibung wird beachtet. Das gilt im Übrigen für den überwiegenden Teil von openHAB (sprich, es gibt ein paar wenige Stellen, wo das System Groß/Kleinschreibung nicht beachtet, ansonsten aber überall.)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
...schau mal hier rüber. Da hat mir Udo ein tolles Feature für VSCode gezeigt, da brauchst du den Evaluator gar nicht mehr. Klasse-Teil, nochmals Danke an Udo.
Das Kommando "sendHttpGetRequest" gilt natürlich nur für die Regel, nicht für den Item-Channel (nur zur Sicherheit), aber das weisst du ja.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
peter-pan hat geschrieben: ↑5. Apr 2020 16:30
...schau mal hier rüber. Da hat mir Udo ein tolles Feature für VSCode gezeigt, da brauchst du den Evaluator gar nicht mehr. Klasse-Teil, nochmals Danke an Udo.
Installiert habe ich dies (beides) nun werde ich mal schauen, wir man eine JSON Datei erstellt.
peter-pan hat geschrieben: ↑5. Apr 2020 16:30
Das Kommando "sendHttpGetRequest" gilt natürlich nur für die Regel, nicht für den Item-Channel (nur zur Sicherheit), aber das weisst du ja.
Ja, dies weiß ich ausnahmsweise wirklich Im Item sieht es etwas anders aus, dafür kann ich dann dort mit einem Refresh Parameter arbeiten. Bestenfall höher als 1x pro Sekunde
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3