Seite 2 von 2

Re: Unterstützung bei Rule für Beleuchtung

Verfasst: 22. Jan 2021 12:31
von ThomasW
Schön zu hören das es läuft.

ja das ausschalten geht tatsächlich nicht da hat sich in der else if ein Fehler eingeschlichen richtig wäre hier

Code: Alles auswählen

}else if(Shellie_Dimmer_KW_Gross_RelayBrightness.state != 0 && Shellie_Dimmer_KW_Klein_RelayBrightness.state != 0) { //Wenn KW Groß an ist und KW Klein an
         logInfo("Spotklein", "KW Klein aus")
        //hier KW Klein ausschalten und wen WW Klein aus ist Relay ausschalten
    }
und deine Rule für das syncronisierte dimmen sollte auch möglich sein mit einer kleinen klammer

Code: Alles auswählen

rule "spot klein ww synchron"

when 
    Item Shellie_Dimmer_WW_Gross_RelayBrightness changed 
then 
    if(Shellie_Dimmer_WW_Klein_RelayON.state == ON){
        logInfo("Spotklein", "WW synchron")
        Shellie_Dimmer_WW_Klein_RelayBrightness.sendCommand(Shellie_Dimmer_WW_Gross_RelayBrightness.state)
    }
end 

Re: Unterstützung bei Rule für Beleuchtung

Verfasst: 22. Jan 2021 14:52
von udo1toni
Frage zum Shelly Input: Könnte man den auch so konfigurieren, als wenn ein Schalter angeschlossen ist? Mit verbundenem Taster kämme dann beim Drücken ein ON und beim Loslassen ein OFF.
Der nächste Schritt wäre dann eine Rule in openHAB, die auswertet, wie lange der Taster gedrückt wurde. Ist die ON-Phase z.B. unter 150 Millisekunden, wäre es ein kurzer Tastendruck. dauert der Tastendruck länger, so wird der Dimmvorgang gestartet und gestoppt, sobald das OFF kommt.

Nicht ganz unwichtig ist in dem Zusammenhang natürlich, wie zuverlässig das Timing ausgewertet wird, das müsste man dann halt ausgiebig testen.

Re: Unterstützung bei Rule für Beleuchtung

Verfasst: 22. Jan 2021 19:42
von Backbe01
@ThomasW
Vielen Dank, ich habe schon nicht mehr daran geglaubt, aber jetzt läuft es genau so, wie es soll! Vielen Dank! Ich hoffe für mich, dass Du dich nicht erst seit deinem Registrierungsdatum mit OH befasst, echt Klasse dein Wissen! :lol:

@udo1toni
Ich bin mir sicher, du kannst da eine Rule aus dem Hut zaubern. Die Frage für mich ist, ob sich das lohnt. Wie auch du schreibst, könnte ich mir vorstellen, dass das Ganze immer Fehleranfälliger wird.

Mein Gedanke war jetzt eher: Im Paper UI gibts ja den Eintrag "Enable Switch events" so wie er jetzt läuft. Mein Gedanke war, ich brücke den Input 2 mit dem Input1(der derzeit nicht in Benutzung ist). Hier könnte ich dann leichter das ON/OFF Signal abgreifen. Noch komme ich relativ einfach an den Shelly2.5 ran. (Aber neugierig wäre ich schon, wie so eine Rule aussehen könnte, ich habe ja noch viele Taster :lol: :lol: )

Nochmals vielen Dank für Eure sehr freundliche und kompetente Unterstützung!!!!

Re: Unterstützung bei Rule für Beleuchtung

Verfasst: 22. Jan 2021 22:22
von udo1toni
Die Rule sollte nicht all zu kompliziert sein. Für OH3 muss der createTimer Aufruf angepasst werden. Die Rule muss zwingend aus einer .rules-Datei heraus ausgeführt werden, weil die Timer-Variable zwingend eine globale Variable sein muss. Oder man baut die Rule in Java Script nach...

Code: Alles auswählen

var Timer tStart = null

rule "short of long press with stop"
when
    Item Taster received command
then
    if(receivedCommand == ON) {
        tStart?.cancel
        tStart = createTimer(now.plusMillis(150),[ |
            // long press started
                tStart = null
        ])
    } else {
        if(tStart !== null) {
            tStart.cancel
            tStart = null
            // short press
        } else {
            // long press stopped
        }
    }
end

Re: Unterstützung bei Rule für Beleuchtung

Verfasst: 2. Feb 2021 15:39
von Backbe01
letzte Frage..

ist dieser Text

Code: Alles auswählen

(Shellie_25_Relay2Input.receivedCommand == OFF)
oder lieber

Code: Alles auswählen

Shellie_25_Relay2Input changed from ON to OFF
für den Teil mit der Dimmung in Ordnung in dem Teil "Abbruchbedingung Schalter losgelassen"? Der Inputschalter ist immer OFF. Wenn des Steuersignal anliegt (Taster gedrückt) wechselt es so lange auf ON bis der Taster wieder losgelassen wird und wechselt wieder auf OFF.

Code: Alles auswählen

var i = 1 //als schalter ob heller oder dunkler
if (LEDstripe_EG_EsszimmerDH.state instanceof DecimalType) {
        percent = ((LEDstripe_EG_EsszimmerDH.state as DecimalType)/5).intValue * 5 //round to 5
        fade_Timer = createTimer(now.plusMillis(200)) [|
            LEDstripe_EG_EsszimmerDH.sendCommand(percent)
            if (percent < 5){ //Richtungswechsel
                i=0
            }else if (percent > 95){
                i=1
            }
            if (i == 1 ) { //runterdimmen
                percent = percent - 5
                fade_Timer.reschedule(now.plusMillis(200))
            }
            else if (i == 0){ //hochdimmen
                percent = percent + 5
                fade_Timer.reschedule(now.plusMillis(200))
            }
          //  if (/* Abbruchbedingung Schalter lossgelassen*/){
             //   fade_Timer.cancel
            //}
        ]
    }