ich brauch wieder einmal Eure Ratschläge.
Mein neues Aquarium hat eine Tag und eine Nachtbeleuchtung. Diese lässt sich über eine 433Mhz Fernbedienung schalten. Es gibt auf der FB nur zwei Tasten, so das wenn die Beleuchtung aus ist, die Tagtaste beim ersten schalten volle Helligkeit hat und mit fünfmal betätigen jeweils eine Stufe gedimmt wird. Die fünfte Betätigung ist dann aus.
Das gleiche habe ich bei der Nachtbeleuchtung, hier ist die erste Betätigung volle Helligkeit und nach dreimal drücken ist sie aus.
So sehen bisher meine Einstellungen aus:
Thing:
Code: Alles auswählen
Thing topic Aquarium "Aquarium" @ "MQTT" {
Channels:
Type switch : ch1 "Aquarium Beleuchtung" [ stateTopic="stat/Aquarium/POWER", commandTopic="cmnd/Aquarium/POWER" ]
Type number : temp "Aquarium Temperatur" [ stateTopic="tele/Aquarium/SENSOR", transformationPattern="JSONPATH:$.DS18B20.Temperature" ]
Type switch : ch2 "Tagbeleuchtung" [ commandTopic="cmnd/BridgeOne/Backlog", on="RfSync 7330; RfLow 230; RfHigh 710; RfCode #BC6B72" ]
Type switch : ch3 "Nachtbeleuchtung" [ commandTopic="cmnd/BridgeOne/Backlog", on="RfSync 7330; RfLow 240; RfHigh 700; RfCode #BC6B78" ]
}
Code: Alles auswählen
Switch Aquarium "Aquarium-Beleuchtung []" <light> ["Switchable"] { channel="mqtt:topic:OH2mqtt:Aquarium:ch1" }
Number Aqua_Temp "Aquarium-Temperatur [%.1f °C]" <heating> { channel="mqtt:topic:OH2mqtt:Aquarium:temp" }
Switch Aqua_Day "Tagbeleuchtung []" <sun> ["Lighting"] { channel="mqtt:topic:OH2mqtt:Aquarium:ch2" }
Switch Aqua_Night "Nachtbeleuchtung []" <moon> ["Lighting"] { channel="mqtt:topic:OH2mqtt:Aquarium:ch3" }
Code: Alles auswählen
Number Zustand_Day "Licht ist [MAP(stufenday.map):%d]"
Number Zustand_Night "Licht ist [MAP(stufennight.map):%d]"
Code: Alles auswählen
Frame label="Aquarium" {
Switch item=Aquarium
Switch item=Aqua_Day mappings=[ON="Tag"]
Text item=Zustand_Day
Switch item=Aqua_Night mappings=[ON="Nacht"]
Text item=Zustand_Night
Text item=Aqua_Temp valuecolor=[>27="red",>21="green",<=21="blue"]
}
}
Code: Alles auswählen
0=AUS
1=HELL
2=MITTEL
3=DUNKEL
-=-
NULL=-
Code: Alles auswählen
0=AUS
1=MITTEL
-=-
NULL=-
zustand:
Code: Alles auswählen
rule "Zustand weiter schalten Tag"
when
Item Aqua_Day received command
then
if(!(Zustand_Day.state instanceof Number)) { // Item noch nicht initialisiert?
Zustand_Day.postUpdate(0) // dann mit 0 initialisieren
Thread::sleep(200) // openHAB etwas Zeit geben
}
var Number Zahl = Zustand_Day.state as Number + 1 // aktuellen Stand hochzählen
if(Zahl > 3) Zahl = 0 // Bei Überlauf auf 0 setzen
Zustand_Day.postUpdate(Zahl) // neuen Stand schreiben
end
rule "Zustand weiter schalten Nacht"
when
Item Aqua_Night received command
then
if(!(Zustand_Night.state instanceof Number)) { // Item noch nicht initialisiert?
Zustand_Night.postUpdate(0) // dann mit 0 initialisieren
Thread::sleep(200) // openHAB etwas Zeit geben
}
var Number Zahl = Zustand_Night.state as Number + 1 // aktuellen Stand hochzählen
if(Zahl > 1) Zahl = 0 // Bei Überlauf auf 0 setzen
Zustand_Night.postUpdate(Zahl) // neuen Stand schreiben
end
Code: Alles auswählen
rule "Tagbeleuchtung"
when
Item Aqua_Day received command or
Time cron "0 0/3 * * * ?"
then
postUpdate(Aqua_Day, OFF)
end
rule "Nachtbeleuchtung"
when
Item Aqua_Night received command or
Time cron "0 0/3 * * * ?"
then
postUpdate(Aqua_Night, OFF)
end
nun bekomme ich folgende Fehlermeldung:
Code: Alles auswählen
2019-02-28 21:56:05.204 [WARN ] [rest.core.item.EnrichedItemDTOMapper] - Failed transforming the state '0' on item 'Zustand_Day' with pattern 'MAP(stufenday.map):%d': Cannot format state '0' to format '%d'
2019-02-28 21:56:05.227 [WARN ] [rest.core.item.EnrichedItemDTOMapper] - Failed transforming the state '0' on item 'Zustand_Night' with pattern 'MAP(stufennight.map):%d': Cannot format state '0' to format '%d'
Ich sehe im Moment den Fehler im System nicht, vielleicht kann jemand helfen.
Danke und viele Grüsse
madmike