Seite 1 von 1

Things enable / disable

Verfasst: 24. Mai 2023 22:03
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')

Re: Things enable / disable

Verfasst: 24. Mai 2023 22:19
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

Re: Things enable / disable

Verfasst: 25. Mai 2023 09:02
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.

Re: Things enable / disable

Verfasst: 26. Mai 2023 15:12
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

Re: Things enable / disable

Verfasst: 26. Mai 2023 16:41
von udo1toni
Zeig bitte mal Deine Rule. Bitte den Code einfügen, keinen Screenshot.

Code: Alles auswählen

Code bitte als Code einfügen
:)

Re: Things enable / disable

Verfasst: 27. Mai 2023 00:18
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');

Re: Things enable / disable

Verfasst: 27. Mai 2023 13:58
von udo1toni
Das geht so nicht. Du musst schon die gesamte Rule zeigen, nicht eine einzelne Zeile.

Re: Things enable / disable

Verfasst: 28. Mai 2023 13:32
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

Re: Things enable / disable

Verfasst: 29. Mai 2023 15:33
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