Things enable / disable

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Things enable / disable

Beitrag von Baumtasche »

Hallo zusammen,

ich würde gerne Things per rule enable bzw. disablen. Habe dazu auch schon einige Einträge gelesen und erfahren, das es mit Rest Api wohl geht. Aber bitte entschuldigt die blöde Frage, wie aktiviere ich Rest APi?

Wenn ich folgende Zeile aktiviere laufe ich immer auf einen Fehler. Muss ich dazu ein Binding installieren?

Code: Alles auswählen

sendHttpPutRequest("http://192.168.0.12:8080/rest/things/worxlandroid:mower:123456789/enable", "text/plain", 'true')

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

Re: Things enable / disable

Beitrag von PeterA »

Hi.

Ich habe das so für meinen AVR gelöst:

Code: Alles auswählen

rule "Denon Thing Reset"
    when
        Item Reset_DenonThing received command
    then
        switch(receivedCommand) {
            case ON :  sendHttpPutRequest("http://192.168.2.106:8080/rest/things/denonmarantz:avr:0005cd3a0e8e/enable", "application/json", 'enabled') //Disable Thing
            case OFF : sendHttpPutRequest("http://192.168.2.106:8080/rest/things/denonmarantz:avr:0005cd3a0e8e/enable", "application/json", 'true')    //Enable Thing
		}
end  
Hinweis: Läuft unter OH 2.4
- OpenHab 2.4
#PWRUP

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

Re: Things enable / disable

Beitrag von udo1toni »

Unter OH3 musst Du gewöhnlich einen API Token mit übergeben. Die REST API ist über die Entwickler-Seite in der Main UI abrufbar. Die REST API ist integraler Bestandteil von openHAB, sie ist immer aktiv.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Things enable / disable

Beitrag von Baumtasche »

Erstmal vielen Dank für eure Antworten, aber irgendwie bekomme ich es nicht hin.

Ich erhalte folgende Fehlermeldung

Script execution of rule with UID '229f310b83' failed: ReferenceError: "sendHttpPutRequest" is not defined in <eval> at line number 1

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

Re: Things enable / disable

Beitrag von udo1toni »

Zeig bitte mal Deine Rule. Bitte den Code einfügen, keinen Screenshot.

Code: Alles auswählen

Code bitte als Code einfügen
:)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Things enable / disable

Beitrag von Baumtasche »

Ich habe es mal ganz einfach gehalten.
Ich habe folgende Zeile in ein javascript eingefügt und wollte diese mit "Run" starten. Dann bekommt die besagte Fehlermeldung. Ich habe es auch in einer DSl - Rule probiert, das gleiche:-( . Ich nutze Openhab 3.4

Code: Alles auswählen

sendHttpPutRequest("http://192.168.0.12:8080/rest/things/worxlandroid:mower:ea9f93c63c:20193121984030256858A7/enable", "application/json", 'enabled');

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

Re: Things enable / disable

Beitrag von udo1toni »

Das geht so nicht. Du musst schon die gesamte Rule zeigen, nicht eine einzelne Zeile.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Things enable / disable

Beitrag von Baumtasche »

Hi,

HIntergrund ist, das sich die Bridge vom Rasenmäher manchmal aufhängt. Wenn ich den Thing disable und dann wieder enable geht es wieder. Mein Plan ist nun einmal am Tag den Thing zu disable und dann wieder zu enablen. Ich hoffe das hilft so weiter.

Vielen Dank

Code: Alles auswählen

configuration: {}
triggers:
  - id: "2"
    configuration:
      time: 13:00
    type: timer.TimeOfDayTrigger
conditions: []
actions:
  - inputs: {}
    id: "1"
    configuration:
      type: application/javascript
      script: sendHttpPutRequest("http://192.168.0.12:8080/rest/things/worxlandroid:mower:ea9f93c63c:201930198403025558A7/enable",
        "application/json", 'enabled');
    type: script.ScriptAction

Baumtasche
Beiträge: 82
Registriert: 14. Sep 2020 21:52

Re: Things enable / disable

Beitrag von Baumtasche »

Hallo zusammen,

ich habe eine Lösung gefunden, falls jemand das auch mal braucht. Als erstes muss man ECMAScript-2021 nachinstallieren

Dann kann man mit

Code: Alles auswählen

var thingMgr = osgi.getService('org.openhab.core.thing.ThingManager');
var ThingUID = Java.type('org.openhab.core.thing.ThingUID');
thingMgr.setEnabled(new ThingUID('thing:uid:string'), false);

ein Thing disable.

Das ganze habe ich hier gefunden
https://community.openhab.org/t/solved- ... /133624/10

Antworten