[gelöst] Triggerung Aktor durch BM für einige Zeit unterbinden

Begonnen von Gernott, 01 Mai 2018, 01:10:42

Vorheriges Thema - Nächstes Thema

Gernott

Hallo

Ich zergrübele mir das Hirn und finde keine Lösung.
Ist:
Für ein Terrassenlicht habe ich einen HM-LC-Sw1PBU-FM, der mit einem Außen-BM gepeered ist. Register wurden mit template motionOnSw gesetzt und die Triggerung mit Zeitschaltung funktioniert. Die Register der internen Taster self01 (->Aus) und self02 (->An) wurden nicht verändert.
Soll:
Ich möchte nun mit dem internen Schalter self01, bei langem Druck das Licht ausschalten und die Triggerung durch den BM für eine bestimmte Zeit unterbinden. Wenn ich auf "off" springe und eine endliche lgOffTime setze, geht der Aktor nach dieser Zeit ja auf "on" und das Licht an. Macht keinen Sinn. Er soll ja ausbleiben und in dieser Zeit eben nicht mehr auf die Triggerung durch den BM reagieren, danach aber wie gehabt.

Kann man so eine Lösung überhaupt mit den Registern umsetzen? Müßte ich möglicherweise per notify die Register des BM-Kanals temporär ändern, z.B. shActionType -> off? Hat das schon mal jemand gemacht und könnte mir bitte auf die Sprünge helfen?

Viele Grüße
G.
P.S.
In der Homematic-Einführung zur StateMachine auf S. 80 ist vermutlich ein Fehler. Sollte es nicht
dlyOn-> warten bis dlyOnTime vorbei ist, gehe nach On (statt dlyOn) heißen?

Gernott

#1
Ich antworte mir mal selbst. Nachdem ich eine Nacht drüber geschlafen habe, folgender Ansatz:

lg self01 schickt den Schalter in den state dlyOn, mit lgOnDly=Sperrzeit und lgOnTime=0. Damit springt der Zustand nach Ablauf der Sperrzeit, ohne daß das Licht angeht, dann wieder auf off und bleibt da, bis ein neuer Trigger kommt. - Das scheint zumindest in einem ersten Test zu funktionieren. Mir war aus der Einsteigerdoku nicht so ganz klar ersichtlich, daß ein Sprung nach dlyOn in jedem Fall den Schalter ausschaltet.

Dann muß nur noch dem Bewegungsmelderkanal mitgeteilt werden, daß er aus dem state dlyOn nichts machen soll, also shSwJtDlyOn=no. Der Tasterkanal sh self02 spring dann direkt nach on, d.h. befreit den Schalter aus der Sperrzeitschleife und macht das Licht wieder an.

Werde es heute nach Einbruch der Dunkelheit mal testen.

Gruß
G.

pwlr

Moin Gernott,

ich denke das geht. Ich benutze die Zustände DlyOn und DlyOff bei einigen Actoren zur Blockade irgendwelcher anderer Peers.
Zum Beispiel
shOnDly=Sperrzeit
shOnTime=0
shOffDly=0
shOffTime=0
Damit läuft die Statemachine "im Kreis" und das Device bleibt dauerhaft aus.
Die Sperre für einige Peers wird dann in den Statemachines dieser Peers mit
shSwJtDlyOn=no realisiert.
Die Aufhebung dieser Blockade erfolgt dann durch einen Peer mit shSwJtDlyOn=on oder was auch immer gewünscht ist.
Zur Steuerung kann man auch gut ein virtuelles Device nehmen.
sh oder lg is ja prinzipiell egal

Anwendung bei mir zum Bespiel in der Lampensteuerung durch Türkontakte - die bei Helligkeit aber gesperrt werden.
Also Türkontakte mit Helligkeitsteuerung in Analogie zu den BM :-)


Moin
Bernd


Gernott

Hallo Bernd

Ja, das geht so. Gestern Abend noch erfolgreich getestet. Danke für die Rückmeldung.

Viele Grüße
G.