Rule schaltet String Item nicht

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
stargazer
Beiträge: 29
Registriert: 23. Apr 2020 22:38
Answers: 0

Rule schaltet String Item nicht

Beitrag von stargazer »

Hallo,
folgende Konfiguration mit der ich 4 Relais über Schalter in der Basic UI schalten kann was auch soweit funktioniert.

relais.items

Code: Alles auswählen

Group gRolladen
String relais1SwitchAb "Rolladenschalter links/rechts Ab" <blinds> (gRolladen) [ "Switchable" ] { channel="exec:command:relais1-control:input", autoupdate="true" }
String relais2SwitchAuf "Rolladenschalter links/rechts Auf" <blinds> (gRolladen) [ "Switchable" ] { channel="exec:command:relais2-control:input", autoupdate="true" }
String relais3SwitchAb "Rolladenschalter Mitte Ab" <blinds> (gRolladen) [ "Switchable" ] { channel="exec:command:relais3-control:input", autoupdate="true" }
String relais4SwitchAuf "Rolladenschalter Mitte Auf" <blinds> (gRolladen) [ "Switchable" ] { channel="exec:command:relais4-control:input", autoupdate="true" }

//Dummy Schalter
Rollershutter RollershutterLinksRechts "Rolladen Links/Rechts"  <blinds> (gRolladen)
Rollershutter RollershutterMitte        "Rolladen Mitte"        <blinds> (gRolladen)
home.sitemap

Code: Alles auswählen

Frame label="Rolladen Wohnzimmer" {
        Switch item=RollershutterLinksRechts icon="blinds"
        Switch item=RollershutterMitte       icon="blinds"
        Switch item=relais1SwitchAb icon="blinds"
        Switch item=relais2SwitchAuf icon="blinds"
        Switch item=relais3SwitchAb icon="blinds"
        Switch item=relais4SwitchAuf icon="blinds"
    }

Über die Dummy Rollershutter Schalter wollte ich per Rule die einzelnen Relais schalten z.B.

relais.rules

Code: Alles auswählen

rule "Rolladen Links/Rechts hoch"
when
    Item RollershutterLinksRechts received command UP
then 
    RollershutterLinksRechts.postUpdate(0)
    relais1SwitchAb.sendCommand(ON)
    logInfo("relais1SwitchAb", "AN")
end
Im Log zeigt er

Code: Alles auswählen

2020-05-19 18:05:36.876 [ome.event.ItemCommandEvent] - Item 'RollershutterLinksRechts' received command UP
2020-05-19 18:05:36.906 [ome.event.ItemCommandEvent] - Item 'relais1SwitchAb' received command ON
aber das Relais schaltet nicht und geht auch nicht in den Zustand

Code: Alles auswählen

relais1SwitchAb changed from OFF to ON
Wo liegt mein Fehler ??

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Rule schaltet String Item nicht

Beitrag von violine21 »

rule "Rolladen Links/Rechts hoch"
when
Item RollershutterLinksRechts received command UP
then
RollershutterLinksRechts.postUpdate(0)
relais1SwitchAb.sendCommand(ON)
logInfo("relais1SwitchAb", "AN")
end
Das Item "relais1SwitchAb" ist vom Typ String.
Mit dieser Zuweisung sollte es funktionieren:

Code: Alles auswählen

relais1SwitchAb.sendCommand("ON")

bastler
Beiträge: 121
Registriert: 7. Jan 2020 19:36
Answers: 2

Re: Rule schaltet String Item nicht

Beitrag von bastler »

deine relais sind string-items, aber du "behandelst" sie wie switches, nämlich mit on /off, kann es daran liegen? wenn du wirklich on/off senden willst hätte ich gemeint müssen es auch switch-items sein. wenn es tatsächlich string items sein sollen probier mal den befehl in anführungszeichen zu setzen (also: ...sendCommand("ON"))

stargazer
Beiträge: 29
Registriert: 23. Apr 2020 22:38
Answers: 0

Re: Rule schaltet String Item nicht

Beitrag von stargazer »

Tatsächlich an den Anführungszeichen lag es.
Vielen Dank

Ist es dann aber nicht wiedersprüchlich wenn in der Sitemap

Code: Alles auswählen

Switch item=relais1SwitchAb icon="blinds"
ein Switch hinterlegt ist der sich ja auch auf das String Item bezieht ?

bastler
Beiträge: 121
Registriert: 7. Jan 2020 19:36
Answers: 2

Re: Rule schaltet String Item nicht

Beitrag von bastler »

das wundert mich auch, hast du mal probiert in den items einen switch statt dem string zu verwenden? (dann kann sein dass du im rule die anführungszeichen wieder entfernen musst...)

stargazer
Beiträge: 29
Registriert: 23. Apr 2020 22:38
Answers: 0

Re: Rule schaltet String Item nicht

Beitrag von stargazer »

Das funktioniert nicht

Log

Code: Alles auswählen

Tried to set invalid state OFF (StringType) on item relais1SwitchAuf of type SwitchItem, ignoring it
Das liegt wahrscheinlich am exec Binding der Relais.

bastler
Beiträge: 121
Registriert: 7. Jan 2020 19:36
Answers: 2

Re: Rule schaltet String Item nicht

Beitrag von bastler »

tut mir leid, das verstehe ich auch nicht, dann wohl doch besser so lassen wie es war ...

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

Re: Rule schaltet String Item nicht

Beitrag von udo1toni »

Hast Du Zugriff auf das Script, welches die Relais steuert? Es wäre sinnvoller, dieses Script etwas aufzupeppen, als alles in openHAB zu erledigen.


Gesendet von meinem Nexus 7 mit Tapatalk

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: Rule schaltet String Item nicht

Beitrag von udo1toni »

Also ansonsten: exec:input ist vom Typ String (genau wie exec:output), daran kann man leider nichts ändern. Wenn Du ein String Item über die UI als Schalter steuern möchtest, so geht das nur mit mappings und entsprechend separaten Schaltflächen. So:

Code: Alles auswählen

Switch item=myStringItem mappings=[ON="ON",OFF="OFF",igendwasanderes="nix"]
Man bemerke hier, dass der String nicht in Anführungszeichen stehen muss. Wenn man die Schaltfläche "nix" betätigt, landet im Status von myStringItem der String "irgendwasanderes"
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten