Sonoff RF Bridge und Tasterfunktion

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

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

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von hr3 »

Dann sieht es doch so aus, als ob die Rule nicht, bzw. nur für Time cron gebraucht wird.
Funktioniert die MQTT-Anweisung denn?

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

Die Anweisung wird gesendet ich kann sehen das sie über die Konsole abgesetzt wird. Ebenso geht aus dem LOG von OH2 hervor das gesendet wurde.
Ich sehe derzeit aber keine Funktion an der Lampe.

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

Hier auch die Einträge die ich sehe:

Code: Alles auswählen

12:10:02 MQT: stat/BridgeOne/RESULT = {"RfSync":7330}
12:10:02 MQT: stat/BridgeOne/RESULT = {"RfLow":230}
12:10:03 MQT: stat/BridgeOne/RESULT = {"RfHigh":710}
12:10:03 MQT: stat/BridgeOne/RESULT = {"RfCode":"#BC6B70"}
und der LOG-File:

Code: Alles auswählen

 
 2018-09-11 13:10:02.162 [ome.event.ItemCommandEvent] - Item 'Aqua_Day' received command ON

2018-09-11 13:10:02.174 [vent.ItemStateChangedEvent] - Aqua_Day changed from OFF to ON

2018-09-11 13:10:02.190 [vent.ItemStateChangedEvent] - Aqua_Day changed from ON to OFF

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

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von udo1toni »

Irgendwie passt Dein Ansatz nicht zu der ursprünglichen Aufgabenstellung, deshalb mal mein Senf dazu:

1. Taster: Du hast ja schon rausgefunden, wie Du einen Button in die Sitemap bekommst. Eine "Rücksetz-Rule" ist aber komplett unnötig, wenn Du dem Item noch einen Parameter verpasst:

Code: Alles auswählen

Switch Aqua_Day "Tagbeleuchtung" <sun>  ["Lighting" ] {mqtt=">[OH2mqtt:cmnd/BridgeOne/Backlog:command:*:RfSync 7330; RfLow 230; RfHigh 710; RfCode #BC6B70]", autoupdate="false" }
Das bewirkt, dass der Status des Items nicht gesetzt wird. Die Schaltfläche wird auch dann nutzbar sein, wenn sie fälschlich als aktiv gerendert wird.
2. Anzeige der Schaltstellung: Es gibt da ein kleines Problem, da Du keine Rückmeldung über den Schaltzustand hast, kannst Du auch nicht sicher sein, welchen Zustand das Licht hat. Wenn Du damit leben kannst, dass die Anzeige durchaus mal aus dem Tritt kommt, kannst Du Dir mit einer Rule und einem Number Item behelfen:
item:

Code: Alles auswählen

Number Zustand "Licht ist [MAP(stufen.map):%d]"  // Item dient nur der Anzeige
transform/stufen.map:

Code: Alles auswählen

0=AUS
1=HELL
2=MITTEL
3=DUNKEL
-=-
NULL=-
rule:

Code: Alles auswählen

rule "Zustand weiter schalten"
when
    Item Aqua_Day received command
then
    if(!(Zustand.state instanceof Number)) {       // Item noch nicht initialisiert?
        Zustand.postUpdate(0)                      // dann mit 0 initialisieren
        Thread::sleep(200)                         // openHAB etwas Zeit geben
    }
    var Number Zahl = Zustand.state as Number + 1  // aktuellen Stand hochzählen
    if(Zahl > 3) Zahl = 0                          // Bei Überlauf auf 0 setzen
    Zustand.postUpdate(Zahl)                       // neuen Stand schreiben
end
Sitemap:

Code: Alles auswählen

text item=Zustand
Im Zweifel sollte das Licht ausgeschaltet sein, wenn openHAB gestartet wird, damit der Zustand korrekt ist, sobald das Licht zum ersten mal geschaltet wird. Wenn die Anzeige aus dem Tritt gerät, kannst Du sie mit einem Update des Items auf den korrekten Wert wieder synchron machen. Das geht z.B. einfach über die Karaf Konsole mittels smarthome update Zustand 2 (2 für mittlere Dimmstufe)

Die bessere Variante wäre aber zweifellos, eine gescheite Rückmeldung einzubauen, falls der Schalter das erlaubt. Wenn das nicht der Fall ist, hat er in einer Smarthome-Umgebung eigentlich nichts zu suchen ;)

was dads Nicht-Schalten betrifft, tippe ich darauf, dass Du das Backlog noch ausführen musst. (Ich hab das bisher nicht eingesetzt, aber mir ist so...)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

Hallo Udo1toni,

danke für Deine umfangreiche Unterstützung. Ich habe folgendes gemacht:
Item Schalter:

Code: Alles auswählen

Switch Aqua_Day           "Tagbeleuchtung"                <sun>          ["Lighting"]    {mqtt=">[OH2mqtt:cmnd/BridgeOne/Backlog:command:*:RfSync 7330; RfLow 230; RfHigh 710; RfCode #BC6B70]", autoupdate="false"}
Switch Aqua_Night         "Nachtbeleuchtung"              <moon>         ["Lighting"]    {mqtt=">[OH2mqtt:cmnd/BridgeOne/Backlog:command:*:RfSync 7330; RfLow 230; RfHigh 710; RfCode #BC6B78]", autoupdate="false"} 
Dann zwei neue Items Zustand:

Code: Alles auswählen

Number Zustand_Day   "Licht ist [MAP(stufenday.map):%d]"
Number Zustand_Night "Licht ist [MAP(stufennight.map):%d]" 
dann die Rule erstellt:

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 > 3) Zahl = 0                          // Bei Überlauf auf 0 setzen
    Zustand_Night.postUpdate(Zahl)                       // neuen Stand schreiben

end 
dann habe ich zwei Maps erstellt:
stufenday:

Code: Alles auswählen

0=AUS
1=HELL
2=MITTEL
3=DUNKEL
-=-
NULL=-
stufennight:

Code: Alles auswählen

0=AUS
1=Mittel
-=-
NULL=-
dann die Sidemap wie folgt geändert:

Code: Alles auswählen

Frame label="Aquarium" {
            Switch item=Aquarium
            Switch item=Aqua_Day   mappings=[ON="Day"]
            Text   item=Zustand_Day
            Switch item=Aqua_Night mappings=[ON="Night"]
            Text   item=Zustand_Night
            Text item=Aqua_Temp valuecolor=[>27="red",>21="green",<=21="blue"]
So nun habe ich im log folgende Fehlermeldung:

Code: Alles auswählen

2018-09-11 18:38:07.637 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - couldn't transform value in label because transformationService of type 'MAP' is unavailable

2018-09-11 18:38:07.654 [WARN ] [ui.internal.items.ItemUIRegistryImpl] - couldn't transform value in label because transformationService of type 'MAP' is unavailable 
Was könnte ich falsch gemacht haben in der Anzeige sehe ich Licht ist...dann eine Zahl, diese wird mit dem Schaltvorgang erhöht.
Bin verwirrt
mfg
Micha

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

und hast du noch Infos zum Backlog ??,

meine normalen Funkschalter haben da anscheinend keine Probleme.

danke für Deine Unterstützung !!

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

So das Transforming passt, ich hatte den Dienst nicht bei OH2 installiert.

Fehlermeldung ist weg

madmike
Beiträge: 277
Registriert: 15. Apr 2018 17:09

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von madmike »

Zum anderen habe ich die Überläufe in der Rule auf 3 am Tag und 1 in der Nacht geändert.
Somit werden die Zustände den Schaltvorgängen richtig angezeigt

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

Re: Sonoff RF Bridge und Tasterfunktion

Beitrag von udo1toni »

Ich hab nochmal bei Theo Arends im Wiki nachgelesen, es sollte reichen, alle Befehle aneinandergereiht zu übergeben.

Die anderen Probleme hast Du ja schon selbst lösen könen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten