FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Bastel-Frank am 02 November 2016, 11:01:00

Titel: Verständnisfrage: State Machine
Beitrag von: Bastel-Frank am 02 November 2016, 11:01:00
Hallo zusammen,

ich habe bzgl. der State Machine eine Frage:
Ich habe den Bewegungsmelder (HM-Sen-MDIR-WM55) mit dem Schaltaktor für Markenschalter (HM-LC-Sw1PBU-FM) gepeeret. Solange eine Bewegung registriert wird, soll die Beleuchtung an sein.
Ich habe dabei die State Machine geändert, dass nur der on- und off-Status genutzt wird. Weiterhin habe ich im Bewegungsmelder das minInterval=15 Sekunden und im Markenschalter "shOnTime=20" Sekunden eingestellt. Ich hätte jetzt erwartet, dass der Markenschalter von off auf on wechselt, sobald eine Bewegung festgestellt wird, anschließend die shOnTime abläuft und dann der Schalter wieder auf off geht. Dieses funktioniert leider nicht: Der Markenschalter reagiert zwar auf die erste Bewegung und geht an, schalten dann aber zunächst aus, bis dann wieder eine nächste Bewegung festgestellt wird.
Erst wenn ich die State Machine in der Form ändere, dass vom on-Status nach der shOnTime wieder auf on-gestellt wird (also ohne auf off zu gehen), funktioniert das ganze.

Wie ist das zu erklären?

Viele Grüße
Frank
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: sumsum am 02 November 2016, 15:23:40
Hallo Frank,

Im FHEM-Einsteiger http://fhem.de/Heimautomatisierung-mit-fhem.pdf (http://fhem.de/Heimautomatisierung-mit-fhem.pdf) ist die State Machine recht gut erklärt.
Es gibt Default-Übergänge (von welchem State automatisch nach Zeitablauf in den nächsten State übergegangen wird ). Sollte jetzt ein Trigger kommen, kann man definieren in welchen nächsten State gesprungen werden soll.

Dein Fall ist hier am Ende erläutert. http://www.fhemwiki.de/wiki/HM-Sec-MDIR_Funk-Bewegungsmelder_innen (http://www.fhemwiki.de/wiki/HM-Sec-MDIR_Funk-Bewegungsmelder_innen)

Die Lampe geht alleine, also ohne eine neue Bewegung, nach Ablauf von shOnTime aus.
Sollte ein neuer Trigger kommen (Bewegung) dann definiert
set Lampe regSet shSwJtOn on Bewegungsmelder
folgendes: Sollte die Lampe An sein, dann springe bei Trigger zurück zum State On. Dadurch wird die Zeit  shOnTime neu gestartet.

Der Bewegungsmelder sendet nichts bei keiner Bewegung.

Gruss

Ulf
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: Pfriemler am 02 November 2016, 16:42:50
Zusätzlich sollte man wissen, dass der HM-Bewegungsmelder nicht so feingranuliert sendet. Im Auslieferungszustand sendet nicht jede erkannte Bewegung, sondern gönnt sich nach einer Zustandsänderung keine Bewegung > Bewegung erkannt 240 Sekunden Sendepause. Läuft der Aktor kürzer, geht er erst einmal aus, bevor das nächste Telegramm kommt.
Zweite Falle: Der Bewegungsmelder sendet normalerweise nur bei erkannter Bewegung, also nach den 240 Sekunden. Man kann ihn auch so einstellen, dass er zwischendurch Bewegung registriert (captInInterval) und das eben nach der Sendewartezeit von 240 Sekunden nachreicht. Dann geht das Licht nach vier Minuten wieder an, obwohl schon gar keiner mehr im Raum ist ...
Die Abläufe sollten einem bewusst sein, bevor man die Statemachine möglicherweise unnötig manipuliert...

Das minInterval hast Du ja schon angepasst, gut. Dein Licht bleibt jetzt nur an, wenn er in den 5 Sekunden zwischen minInterval und shOnTime eine Bewegung registriert. Sonst setze mal captInInterval auf on und schaue dann nochmal.
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: Gernott am 17 November 2016, 21:01:06
Hallo

Ich hänge mich hier mal an, weil ich dieselbe Konfiguration mit einem Dimmer laufen habe und noch mit einem weiteren Phänomen bei der Verlängerung der Beleuchtungszeit kämpfe.
Mein Dimmer schaltet ein, wenn der BM anschlägt und die Helligkeit unter 60 ist (es ist dunkel). Die Verlängerung der Laufzeit über den BM per "shSwJtOn on" scheint aber nach meinen Beobachtungen nicht zu funktionieren, wenn durch das noch eingeschaltete Licht die Helligkeit nun größer als 60 ist.
Kann man das Verhalten noch per Register korrigieren, so daß eine wiederholte Bewegungsmeldung die Zeit im Aktor unabhängig vom Helligkeitswert verlängert?

Hier die aktuellen Register:
shActionTypeDim jmpToTarget
shCtDlyOff ltLo
shCtDlyOn ltLo
shCtOff ltLo
shCtOn ltLo
shCtRampOff ltLo
shCtRampOn ltLo
shCtValHi 100
shCtValLo 60
shDimElsActionType off
shDimElsJtDlyOff rampOff
shDimElsJtDlyOn rampOn
shDimElsJtOff dlyOn
shDimElsJtOn dlyOff
shDimElsJtRampOff off
shDimElsJtRampOn on
shDimElsOffTimeMd absolut
shDimElsOnTimeMd absolut
shDimJtDlyOff dlyOn
shDimJtDlyOn rampOn
shDimJtOff dlyOn
shDimJtOn on
shDimJtRampOff dlyOn
shDimJtRampOn on
shDimMaxLvl 100 %
shDimMinLvl 0 %
shDimStep 5 %
shMultiExec off
shOffDly 0 s
shOffDlyBlink on
shOffDlyNewTime 0.4 s
shOffDlyOldTime 0.4 s
shOffDlyStep 5 %
shOffLevel 0 %
shOffTime unused
shOffTimeMode absolut
shOnDly 0 s
shOnDlyMode setToOff
shOnLevel oldLevel
shOnLvlPrio high
shOnMinLevel 10 %
shOnTime 480 s
shOnTimeMode absolut
shRampOffTime 0.5 s
shRampOnTime 0.5 s
shRampSstep 5 %


Gruß
G.
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: frank am 18 November 2016, 10:00:07
shCtOn ltLo
hiermit legst du fest, welche bedingung erfüllt werden muss, damit im zustand on ein short trigger eine aktion auslöst. zur zeit: kleiner als low, also kleiner 60.

mit get regList kannst du alle optionen sehen, die hier erlaubt sind.

wahrscheinlich funktioniert geLo (gösser und gleich low).
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: sumsum am 18 November 2016, 13:09:23
Leider weiss ich nicht welche Lichtstärke der Wert 60 bedeutet. Das Beispiel von @frank würde "nur" für Werte >= 60 eine Aktion auslösen. Sollte der Wert aber darunter sein, dann nicht. Sollte bei "on" immer ausgelöst werden sollen, dann
könntest Du shCtValHi auf das Maximum und shCtOn auf ltHi (less than High) setzten.
Titel: Antw:Verständnisfrage: State Machine
Beitrag von: Gernott am 18 November 2016, 21:07:36
Hallo frank, sumsum

Das war's, vielen Dank für die hilfreichen Hinweise. Die Funktion vieler Register erschließt sich mir trotz der fhem-Anleitung nicht vollständig. Wo wäre ich nur ohne das Forum?

Viele Grüße
G.