FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: HoTi am 30 August 2014, 16:59:07

Titel: Rollosteurung mit 4fach schalter (Sperre des anderen Kanals)
Beitrag von: HoTi am 30 August 2014, 16:59:07
Hallo zusammen,

ich sitze jetzt seit 3 Tagen an einem Problem. Ich schaffe es nicht bitte helft mir.
Ich habe mein Rollo an einem Homematic 4 Fach Schalter.
Kanal 1 für runter, Kanal2 für hoch. Die Taster am Schalter nutze ich auch.
Ich möchte nun, dass wenn jemand die Taste1 am Funkschalter drückt der Kanal1 für 20Sekunden geschaltet wird und in der Zeit der Kanal2 gesperrt ist. Sollte die Taste1 nochmal gedrückt werden soll der Kanal1 abgeschaltet werden und der Kanal2 wieder freigegeben werden.
Ich bekomme das nicht hin. Stichpunkt wie inhibit habe ich gefunden aber ich bekomme es trotzdem nicht hin dieses in einen Code zu gießen.
Ich hoffe es kann mir jemand helfen. Die Zeitsteuerung funktioniert:


define Wohnzimmer_Tuer_down_an at *{sunset(0,"17:30","21:30")} set Wohnzimmer_Tuer_down on-for-timer 25
define Wohnzimmer_Tuer_up_an at *{sunrise(0,"07:00","08:00")} set Wohnzimmer_Tuer_up on-for-timer 30


Danke euch schon mal

Grüße
Tim
PS. Hardware mäßig sind die Relais verschaltet! Da passiert nichts.
Titel: Antw:Rollosteurung mit 4fach schalter (Sperre des anderen Kanals)
Beitrag von: HoTi am 02 September 2014, 09:20:29
Hallo zusammen,

brauche immer noch eure Hilfe.
Ich probiere das ganze derzeit so aus.
Ich habe den 4-Fach Aktor von ELV.

Das heißt:
Kanal 1 ist nur der Taster verwende für "Rollo hoch"
Kanal 2 ist nur der Taster verwende für "Rollo runter"
Kanal 3 schaltet das Relay hoch
Kanal 4 schaltet das Relay runter

Nun versuche ich schon seit Tagen mit Kanal 1 und 2 einen Taster zur simulieren, da ich anscheinen dem 4 Fach Schalter keine Zeit direkt vorgeben kann, muss das über FHEM laufen.
Unschön wenn FHEM ausfällt aber leider nicht zu ändern.

Ich bekomme es nicht hin dass ich auch das Fahren des Rollos stoppen kann. Irgendwo hab ich eine Denkblockade

Derzeit bin ich im code so weit:

#*** Wohnzimmer ***

define Wohnzimmer_Tuer CUL_HM 28A47C
attr Wohnzimmer_Tuer IODev hmusb
attr Wohnzimmer_Tuer autoReadReg 4_reqStatus
attr Wohnzimmer_Tuer expert 2_full
attr Wohnzimmer_Tuer firmware 1.1
attr Wohnzimmer_Tuer model HM-LC-SW4-BA-PCB
attr Wohnzimmer_Tuer msgRepeat 1
attr Wohnzimmer_Tuer serialNr LEQ0412123
attr Wohnzimmer_Tuer subType switch
attr Wohnzimmer_Tuer webCmd getConfig:clear msgEvents
define FileLog_Wohnzimmer_Tuer FileLog ./log/Wohnzimmer_Tuer-%Y.log Wohnzimmer_Tuer
attr FileLog_Wohnzimmer_Tuer logtype text
attr FileLog_Wohnzimmer_Tuer room FileLog
define Wohnzimmer_Tuer_Sw_up CUL_HM 28A47C01
attr Wohnzimmer_Tuer_Sw_up group Wohnzimmer
attr Wohnzimmer_Tuer_Sw_up model HM-LC-SW4-BA-PCB
attr Wohnzimmer_Tuer_Sw_up peerIDs 00000000,
attr Wohnzimmer_Tuer_Sw_up room hidden
attr Wohnzimmer_Tuer_Sw_up webCmd statusRequest:toggle:on:off
define Wohnzimmer_Tuer_Sw_down CUL_HM 28A47C02
attr Wohnzimmer_Tuer_Sw_down group Wohnzimmer
attr Wohnzimmer_Tuer_Sw_down model HM-LC-SW4-BA-PCB
attr Wohnzimmer_Tuer_Sw_down peerIDs 00000000,
attr Wohnzimmer_Tuer_Sw_down room hidden
attr Wohnzimmer_Tuer_Sw_down webCmd statusRequest:toggle:on:off
define Wohnzimmer_Tuer_down CUL_HM 28A47C03
attr Wohnzimmer_Tuer_down group Wohnzimmer
attr Wohnzimmer_Tuer_down model HM-LC-SW4-BA-PCB
attr Wohnzimmer_Tuer_down peerIDs 00000000,
attr Wohnzimmer_Tuer_down room hidden
attr Wohnzimmer_Tuer_down webCmd statusRequest:toggle:on:off
define Wohnzimmer_Tuer_up CUL_HM 28A47C04
attr Wohnzimmer_Tuer_up group Wohnzimmer
attr Wohnzimmer_Tuer_up model HM-LC-SW4-BA-PCB
attr Wohnzimmer_Tuer_up peerIDs 00000000,
attr Wohnzimmer_Tuer_up room hidden
attr Wohnzimmer_Tuer_up webCmd statusRequest:toggle:on:off
define WZT_dummy dummy
attr WZT_dummy alias Rollo Wohnzimmertür
attr WZT_dummy eventMap zu:shutter_closed auf:shutter_open
attr WZT_dummy group Rollos
attr WZT_dummy room Fenster/Türen
attr WZT_dummy webCmd zu:auf
define WZT_zu notify WZT_dummy:zu {\
    fhem("set Wohnzimmer_Tuer_up off");;\
    fhem("set Wohnzimmer_Tuer_down on-for-timer 25");;\
}
define WZT_auf notify WZT_dummy:auf {\
    fhem("set Wohnzimmer_Tuer_down off");;\
    fhem("set Wohnzimmer_Tuer_up on-for-timer 30");;\
}
define Timer_WZT_down notify Wohnzimmer_Tuer_Sw_down:on {fhem "delete offTimer_WZT";;fhem "define offTimer_WZT at +00:00:01 set Wohnzimmer_Tuer_Sw_down off";;fhem("set Wohnzimmer_Tuer_down off");;fhem("set Wohnzimmer_Tuer_up off");;fhem "set WZT_dummy zu";;}

define Timer_WZT_up notify Wohnzimmer_Tuer_Sw_up:on {fhem "delete offTimer_WZT";;fhem "define offTimer_WZT at +00:00:01 set Wohnzimmer_Tuer_Sw_up off";;fhem("set Wohnzimmer_Tuer_down off");;fhem("set Wohnzimmer_Tuer_up off");;fhem "set WZT_dummy auf";;}

define Wohnzimmer_Tuer_down_an at *{sunset(0,"17:30","21:30")} set WZT_dummy zu
define Wohnzimmer_Tuer_up_an at *{sunrise(0,"06:45","08:00")} set WZT_dummy auf



Viele Grüße
Tim
Titel: Antw:Rollosteurung mit 4fach schalter (Sperre des anderen Kanals)
Beitrag von: Bennemannc am 02 September 2014, 20:30:10
Hallo,

dem Actor bzw. jedem Kanal kann man eine eigene Zeit (für on) vorgeben. Das geht mit "set [Kanal 1] regSet timedOn [sekunden]" das in den Eckigen Klammern musst Du natürlich anpassen. Anschließend den Actor in den Cofigurationsmodus bringen, damit fhem die neuen Registerwerte übertragen kann.
Eine Verriegelung softwareseitig bringt nichts, da fhem nicht den Tastendruck sondern das Schalten sieht - und dann ist es zu spät. Es muss also mechanisch/elektrisch Verriegelt werden. Hierzu kann man ein Relais an einem Ausgang anschließen, das den anderen Ausgang unterbricht. Ein Kanal hat dann eben quasi Vorrang.
Die andere Art zu schalten - wie auch der Original Rolloschalter es macht. Ein Relais gibt die Richtung an - also rauf oder runter - und der andere Kanal gibt den Befehl jetzt fahren. Also Fahren mit Richtungsvorwahl. Das ist leider weniger intuitiv wie ein Kanal rauf und einer für runter.

Gruß Christoph