[SOLVED] Umwandlung Number-Item-Zahlenwert für PercentType-Variable
Verfasst: 18. Dez 2019 18:15
Hallo zusammen,
ich war schon einige Male bei euch auf der Seite, um mir ein paar Informationen zu Problemlösungen zu holen und habe mich heute hier angemeldet, da ich bei einem scheinbar einfachen Umwandlungsproblem nicht weiter komme (Nummernwert eines Slider-Item zu PercentType).
Ich möchte von meiner Tradfri-Leuchte nur die Helligkeit ändern können. Da es keinen passenden Channel gibt, muss ich den Color-Channel nutzen.
Vorgehensweise:
1. Änderung eines Sliders erkannt
2. Aktuelle Farbwerte auslesen
3. Helligkeit anhand der Sliderposition neu vorgeben
4. Ergebnis an Tradfri-Leuchte senden.
Items:
Hier die rule (--> Stelle mit der falschen Syntax bzw. falsche Umwandlung. Rule funktioniert, wenn Zeile auskommentiert wird. Helligkeit geht entsprechend der Deklaration auf 100):
Fehlermeldung:
Ich hoffe, dass jemand von euch mir bei der Umwandlung weiterhelfen kann.
ich war schon einige Male bei euch auf der Seite, um mir ein paar Informationen zu Problemlösungen zu holen und habe mich heute hier angemeldet, da ich bei einem scheinbar einfachen Umwandlungsproblem nicht weiter komme (Nummernwert eines Slider-Item zu PercentType).
Ich möchte von meiner Tradfri-Leuchte nur die Helligkeit ändern können. Da es keinen passenden Channel gibt, muss ich den Color-Channel nutzen.
Vorgehensweise:
1. Änderung eines Sliders erkannt
2. Aktuelle Farbwerte auslesen
3. Helligkeit anhand der Sliderposition neu vorgeben
4. Ergebnis an Tradfri-Leuchte senden.
Items:
Code: Alles auswählen
Number Tradfri_Leuchte_Dimmen (RRD4J_TEMP) //(Dummy-Item für einen Slider in der sitemap)
Color Tradfri_Leuchte_Farbe { channel="tradfri:0210:gwa0c9a0d7b653:Tradfri_Flur_Alarm:color" } //Tradfri-Binding
Code: Alles auswählen
rule "Helligkeit steuern"
when
Item Tradfri_Leuchte_Dimmen received update
then
logInfo("Leuchte", " Helligkeit wird berechnet.")
//Variablen anlegen
var DecimalType hue = new DecimalType(240) // 0-360;
var PercentType sat = new PercentType(100) // 0-100
var PercentType bright = new PercentType(100) // 0-100
hue=(Tradfri_Leuchte_Farbe.state as HSBType).hue
sat=(Tradfri_Leuchte_Farbe.state as HSBType).saturation
--> bright = (Tradfri_Leuchte_Dimmen.state as Number) //FEHLER!! funktioniert, wenn Zeile auskommentiert. Helligkeit geht entsprechend der Deklaration auf 100
Tradfri_Leuchte_Farbe.sendCommand(new HSBType(hue, sat, bright))
end
Code: Alles auswählen
2019-12-18 18:08:26.136 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Helligkeit steuern': An error occurred during the script execution: Could not invoke constructor: org.eclipse.smarthome.core.library.types.HSBType.HSBType(org.eclipse.smarthome.core.library.types.DecimalType,org.eclipse.smarthome.core.library.types.PercentType,org.eclipse.smarthome.core.library.types.PercentType)