HTTP Request per RULE oder direkt per Item ?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von TorstenE »

Ja, aber WO trägst Du denn die URL ein ?
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von udo1toni »

ACHTUNG! Das ist openHAB2 (oder auch openHAB1)

Wenn Du das unter openHAB3 machen willst, musst Du natürlich ein Thing und einen Channel anlegen und diesen Channel mit dem Item verlinken.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von TorstenE »

Ohhh Udo, wenn wir Dich nicht hätten.
Ich dachte schon ich versteh die Welt nicht mehr - DANKE
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von PeterA »

Ok Danke Udo....
daran hatte ich Natürlich auch nicht gedacht :)
- OpenHab 2.4
#PWRUP

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von TorstenE »

Und wie schaut dann der Channel für einen "ON/OFF" Switch mit entsprechender URL genau aus ?
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von TorstenE »

Ich habe folgende Situation bei der REST-API

Code: Alles auswählen

JSONPATH:$.isInScreensaver 
bringt mit den Wert "true" oder "false" per JSON

Die Befehle zum setzen der Werte sind jedoch

Code: Alles auswählen

cmd=startScreensaver
cmd=stopScreensaver
Wie definiere ich jetzt den Switch-Channel, dass er "isInScreensave" in ON/OFF umwandelt
und danach die Befehle ON/OFF in startScreensave/stopScreensaver

Danke

Torsten
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von udo1toni »

Also, ON/OFF ist ja was anderes als das, was hier im Thread behandelt wurde. Grundsätzlich sieht ein http Thing mit einem switch Channel so aus (Definition in einer *.things Datei):

Code: Alles auswählen

Thing http:url:thingid "Thing Label" [ 
    baseURL="http://ip.des.fernen.systems/gemeinsamer/pfad/",
    refresh=10,
    timeout=8000
 ] { Channels: 
    Type switch : switch1 "Schalter" [  
                          stateExtension="statuspfad", 
                          commandExtension="commandpfad?befehl=%2$s", 
                          stateTransformation="...",
                          onValue="ein",
                          offValue="aus"
                     ]
}
Dabei sind alle Parameter optional. Wenn man allerdings einen Befehl erfolgreich senden will, muss in der commandExtension der Platzhalter %2$s gesetzt sein, sonst wird kein Wert für ON oder OFF gesendet. Falls onValue und/oder offValue nicht gesetzt sind, wird exakt ON bzw. OFF gesendet. stateExtension und commandExtension müssen lediglich dem Teil der URL entsprechen, der sich jeweils unterscheidet. baseURL ist dann der Teil, der für beide URLs gleich ist.
Die stateTransformation ist nur dann notwendig, wenn nicht direkt onValue/offValue (oder ohne deren Definition ON/OFF) zurück kommen. Je nachdem, was als Status kommt, muss/müssen der/die passende(n) Service(s) gewählt werden.

Im Beispiel oben wird jeweils direkt ein String geschickt, dazu bräuchte man natürlich einen string Channel:

Code: Alles auswählen

Thing http:url:coolstream "CoolStream" [ 
    baseURL="http://192.168.2.116/control/",
    refresh=10,
    timeout=8000,
    commandMethod="POST"
    ] {
    Channels: 
        Type string : command "Kommando" [ commandExtension="rcem?%2$s" ]
}
und das Item sähe so aus (wieder im textdatei.items Format):

Code: Alles auswählen

String    Coolstream   {channel="http:url:coolstream:command"}
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
TorstenE
Beiträge: 246
Registriert: 12. Jan 2022 18:29
Answers: 4
Wohnort: Niederstaufen

Re: HTTP Request per RULE oder direkt per Item ?

Beitrag von TorstenE »

Danke für die Hife Udo.

Hier hören wir auf, da sich sonst die Themen überschneiden.

Grüße

Torsten
openHAB 5.0.0 (#4495) auf einem Pi 4 mit openHABian

Antworten