Probleme mit Regeln

Moderator: seppy

yoshi98
Beiträge: 24
Registriert: 3. Jun 2018 09:04

Probleme mit Regeln

Beitrag von yoshi98 »

Hallo Gemeinde,

ich versuche eine Homematic-Steckdose mit Leistungsmessung als Master/Slave zu verwenden. Dazu nutze ich den Power-Kanal. Dieser soll unterhalb von 20 Watt eine andere Steckdose ausschalten. Dass die Regeln ganz allgemein funktionieren und meine Aktoren geschaltet werden,, habe ich mit einem Timer überprüft. Jetzt komme ich jedoch nicht weiter. Unter den Zeichen "<" und ">" erhalte ich die Anmerkung "cannot be resolved" und es passiert nix.

Bin in openHab und Java ein blutiger Anfänger. Nutze Visual Studio Code als Editor.

Code: Alles auswählen

rule "React on Power (SteckdoseHomematickennung_2_Power) change/update"
when
    Item SteckdoseHomematickennung_2_Power changed
then
    if(SteckdoseHomematickennung_2_Power < 20) {
        sendCommand(Homematickennung2_3_State, OFF)
    } else {
    if(SteckdoseHomematickennung_2_Power > 30)  
        sendCommand(Homematickennung2_3_State, ON) 
    }
end
Kann jemand helfen?
Zuletzt geändert von yoshi98 am 18. Jun 2018 11:18, insgesamt 2-mal geändert.
2x Raspberry Pi 3 / Openhabian / Openhab 2 / Openhab 3
Homematic / CCU3 / Hue / Sonos / Alexa

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Probleme mit Regeln

Beitrag von hr3 »

Wie ist das Item SteckdoseHomematickennung_2_Power definiert.
probier mal

Code: Alles auswählen

if(SteckdoseHomematickennung_2_Power.state < 20) {

yoshi98
Beiträge: 24
Registriert: 3. Jun 2018 09:04

Re: Probleme mit Regeln

Beitrag von yoshi98 »

Danke für die schnelle Antwort.

Das Item "SteckdoseHomematickennung_2_Power" ist der Power-Kanal des Aktors und er ist als eigenes Item definiert. Der State-Kanal ist für das Switchen ON/OFF zuständig. Ich will aber schalten in Abhängigkeit von den Power Werten.
2x Raspberry Pi 3 / Openhabian / Openhab 2 / Openhab 3
Homematic / CCU3 / Hue / Sonos / Alexa

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Probleme mit Regeln

Beitrag von hr3 »

Konkret: ist "SteckdoseHomematickennung_2_Power" als Number definiert?

yoshi98
Beiträge: 24
Registriert: 3. Jun 2018 09:04

Re: Probleme mit Regeln

Beitrag von yoshi98 »

Das Item ist als Typ Number definiert. Es liefert auch Werte, die ich über das Control der PaperUI sehen kann.
2x Raspberry Pi 3 / Openhabian / Openhab 2 / Openhab 3
Homematic / CCU3 / Hue / Sonos / Alexa

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Probleme mit Regeln

Beitrag von hr3 »

Code: Alles auswählen

if ((SteckdoseHomematickennung_2_Power.state as DecimalType) < 20) {

yoshi98
Beiträge: 24
Registriert: 3. Jun 2018 09:04

Re: Probleme mit Regeln

Beitrag von yoshi98 »

Visual Studio Code gibt zurück "Cannot cast from NumberItem to DecimalType" - nix geht
2x Raspberry Pi 3 / Openhabian / Openhab 2 / Openhab 3
Homematic / CCU3 / Hue / Sonos / Alexa

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41

Re: Probleme mit Regeln

Beitrag von hr3 »

hr3 hat geschrieben: 18. Jun 2018 11:17 probier mal

Code: Alles auswählen

if(SteckdoseHomematickennung_2_Power.state < 20) {
dann wieder zurück

yoshi98
Beiträge: 24
Registriert: 3. Jun 2018 09:04

Re: Probleme mit Regeln

Beitrag von yoshi98 »

Ja, das war's. Wäre ich nie drauf gekommen. Herzlichen Dank @hr3!
2x Raspberry Pi 3 / Openhabian / Openhab 2 / Openhab 3
Homematic / CCU3 / Hue / Sonos / Alexa

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

Re: Probleme mit Regeln

Beitrag von udo1toni »

Nunja, das ist nur die halbe Wahrheit. Korrekt wäre

Code: Alles auswählen

if((SteckdoseHomematickennung_2_Power.state as Number) < 20)
Alternativ ginge auch

Code: Alles auswählen

if((SteckdoseHomematickennung_2_Power.state as DecimalType).intValue < 20)
openHAB führt das Casting stillschweigend selbst durch, das war mal anders. Es ist wichtig, die Sache mit dem Type Casting zu verstehen, denn es gibt immer wieder Stellen, wo plötzlich etwas nicht wie gewünscht funktioniert, nur weil der Typ nicht stimmt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten