Aquariumbeleuchtung Tag- und Nachtlicht schalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von madmike »

Hallo zusammen,

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" ]
    }
Items:

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" }
und

Code: Alles auswählen

 Number Zustand_Day   "Licht ist [MAP(stufenday.map):%d]"
Number Zustand_Night "Licht ist [MAP(stufennight.map):%d]"
Sitemap:

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"]
        }
    }
dazu habe ich noch folgende transforming map:

Code: Alles auswählen

 0=AUS
1=HELL
2=MITTEL
3=DUNKEL
-=-
NULL=-
und

Code: Alles auswählen

 0=AUS
1=MITTEL
-=-
NULL=-
Last not least zwei Rules:
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
und

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
Ok erst mal viel Stoff.
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

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

Re: Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von udo1toni »

schreib statt %d ein %s, MAP verlangt einen String als Input.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von madmike »

Hallo Udo,

du bist ein Gott !!! :o :o :o :o

Fehlermeldung ist weg.

Ist das Transform.map auch so ok??

Ich bin glücklich !!!

Viele Grüsse
Madmike

madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von madmike »

und noch eine Frage zum Verständnis
0=Aus
1=Mittel
-=-
Null=-

die ersten beiden Einträge sind klar, was bedeuten -=- und Null=- sind Sie wichtig ??
Danke
Madmike

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

Re: Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von udo1toni »

Der letzte Eintrag sollte vermutlich eher NULL=- heißen. Falls das Item noch nicht initialisiert ist, hat es den Wert NULL. Der wird dann als - angezeigt. die vorletzte Zeile -=- war unter OH1 mal wichtig, um das gleiche Ergebnis zu erzielen. Früher musste man statt NULL auch UNDEF schreiben. Wenn man die Zeilen mit drin hat, stören sie nicht, sie werden halt nie verwendet, da dieser Wert nie anliegt.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

madmike
Beiträge: 278
Registriert: 15. Apr 2018 17:09
Answers: 0

Re: Aquariumbeleuchtung Tag- und Nachtlicht schalten

Beitrag von madmike »

Danke Udo

für die Info du hast völlig Recht der letzte Eintrag soll NULL=- heissen.

Wieder was dazugelernt.
mfg
Madmike

Antworten