[ GELOEST ] HM-Aktor - Wiederherstellung Schaltzustand nach Stromausfall

Begonnen von Ralph, 02 Januar 2021, 16:52:57

Vorheriges Thema - Nächstes Thema

frank

die methode des speicherns der zustände vor dem blackout funktioniert auch nur bedingt für homematic.

alle timer in den aktoren bleiben dabei unberücksichtigt.

beispiel:
ein kurzer druck am device schaltet das device für 10min ein. nach 5min kommt ein blackout von 1min.
jetzt müsste das device eigentlich mit einem on-for-timer 4min nach dem blackout eingeschaltet werden.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Pfriemler

Wie man sieht, kann die automatische Wiederherstellung nur eine Krücke sein. An die von frank genannten Fälle mit autark laufenden Timern in Homematic-Geräten habe ich noch gar nicht gedacht. Dass es Timer gibt, kann ja zumindest am Register timedOn gesehen werden. Das ist teilweise sehr wichtig, weil viele meiner Schaltfunktionen tatsächlich so arbeiten, mindestens als Sicherheitsfunktion. Meine Technik ist diesbezüglich noch in keinster Weise "gehärtet", wohl auch weil Stromausfälle bisher hier absolut kein Thema sind (ich kann mich kaum erinnern wann der letzte war). Ich müsste hier für mich auch ganz fallweise entscheiden was und nach welcher Ausfallzeit von den entsprechenden Zuständen überhaupt wiederhergestellt werden müsste. Dabei ist auch nicht gesagt, ob eine Restlaufzeit sinnvoll ist oder ob der Vorgang nicht komplett neu gestartet werden müsste.
Wirklich wichtige Dinge wie etwa ein Homematic-Powermeter, die wirklich immer eingeschaltet werden müssen, damit der Kühlschrankinhalt nicht verdirbt, löse ich ohnehin per powerUpAction.
Ralphs Fragestellung richtet sich aber gezielt auf kurze "Wischer" in der Versorgung. Man kann die automatische Wiederherstellung ja auch zeitabhängig gestalten.

Solche Dinge wie uhrzeit- oder situationsabhängige Schaltungen kann man, geschickte Programmierung vorausgesetzt, bei DOIFs etwa auch gezielt mit einem "set ... checkall" anstoßen, von alleine machen die das aber nicht. Funktioniert natürlich nicht bei eventbasierten Auslösungen.

Insofern ist die gute alte Methode "speichere den Schaltwunsch in einer Variablen und sorge mithilfe deren Überwachung für die richtigen Aktionen" irgendwie die bessere Lösung. Dafür muss dann aber auch ggf. der manuelle Schaltvorgang als Wunsch allda registriert werden.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Ralph

Moin,
habe nochmal eine Runde weitergespielt.

Zur Erklärung:
im konkreten Fall ging es darum, dass ein Modul HM-LC-SW4-BA-PCB 4-fach Aktor zur Anzeige SCHARF , UNSCHARF , CODEMISSBRAUCH
an der Haustür außen in Verwendung ist und nur mit ON / OFF ohne Timerschnickschack, dass das Modul eh nicht kann, arbeitet.

Nach (mehrfachen) Stromausfällen steht man außen vor der Tür und ist blind, weil das Modul ja im OFF-Zustand ist.   ! WAF !

Ziel (bei diesem Projekt) ist es, die Anzeige wiederherzustellen.

Und das geht (nur geprüft für dieses Model) noch einfacher als gedacht, nämlich

defmod HM-LC-SW4-BA-PCB CUL_HM ......
attr HM-LC-SW4-BA-PCB IODev HmUART
attr HM-LC-SW4-BA-PCB IOgrp VCCU:HmUART
attr HM-LC-SW4-BA-PCB model HM-LC-SW4-BA-PCB

# Gruppe:
# HM-LC-SW4-BA-PCB,
# HM-LC-SW4-BA-PCB_Sw_01,HM-LC-SW4-BA-PCB_Sw_02,HM-LC-SW4-BA-PCB_Sw_03,HM-LC-SW4-BA-PCB_Sw_04

setstate HM-LC-SW4-BA-PCB 2021-01-06 19:57:01 timedOn off   # trigger Chip StromWiederkehr


defmod HM-LC-SW4-BA-PCB_Sw_01

defmod HM-LC-SW4-BA-PCB_Sw_02

defmod HM-LC-SW4-BA-PCB_Sw_03

defmod HM-LC-SW4-BA-PCB_Sw_04


defmod wd_HM-LC-SW4-BA-PCB watchdog HM-LC-SW4-BA-PCB:timedOn:.off 00:00:07 SAME {foreach my $dev("HM-LC-SW4-BA-PCB_Sw_01","HM-LC-SW4-BA-PCB_Sw_02","HM-LC-SW4-BA-PCB_Sw_03","HM-LC-SW4-BA-PCB_Sw_04") {my $pre = ReadingsVal($dev,"state","0");; fhem("set ".$dev." ".$pre);;} }
attr wd_HM-LC-SW4-BA-PCB autoRestart 1


Alles andere voher von mir angesprochene sind nur Randschauplätze.

Viel Vergnügen damit und bis neulich ...
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

Pfriemler

Hm ...ich steige da gerade nicht durch.
Ein HM-LC-SW4-BA-PCB  hat im Device kein timedOn. Man kann es manuell setzen, ok. Das machst Du offenbar mit der Stromwiederkehr und das soll ein Event erzeugen, was dann den watchdog triggert und nach 7 Sekunden den noch in FHEM bekannten Status des Aktors kurzerhand als Schaltbefehle an diesen sendet. Wenn das vor der automatischen Statusmeldung des Batterieaktors passiert, kann das klappen, aber sendet der nicht auch einen "Status nach Stomausfall"?

BTW:
Die (Unter/Schalt-)Kanäle können natürlich auch mit Timern arbeiten, mutze ich ja hier ständig im Sommer bei der Beregnung (die Timer geben eine maximale Beregnungszeit vor, je nach Situation wird von FHEM vorher abgeschaltet - hier wäre es sehr fatal, wenn sie nach einem Stromausfall auf Dauer-Ein gingen ...).

Und jetzt kommt die Hardwarelösung des Problems (SCNR :-)):
Der HM-LC-Sw(x)-BA-PTB (gilt gleichermaßen für die 4- und 1-Kanal-Variante) ist so wunderbar sparsam im Betrieb, dass man das Modul allein problemlos längere Zeit von einer Pufferbatterie betreiben kann. Also das Durchschalten der Anzeigen erfolgt ja von einer (Netz-)Versorgung durch die Anzeigen (LED?/Lampen) über die MOSFETs des Aktors nach GND, vermutlich ist die Stromversorgung des Moduls ebenso an der Signalisierungs-Versorgung angeschlossen. Wenn man das jetzt über eine Diode führt und als zweiten Versorgungszweig eine Pufferbatterie mit geringer Spannung nimmt (ebenfalls mit Entkopplungsdiode), dann würde bei einem Stromausfall das Modul von der Pufferbatterie weiterlaufen - die Anzeigen sind freilich so lange aus. Wenn man ledMode auf off setzt (also keine Anzeige des Schaltzustandes mit den onboard-LEDs), dann läuft der Aktor auch mit eingeschalteten Kanälen locker Wochen (wenn nicht gar Monate) weiter, weil die MOSFETs praktisch keine Energie im Ein-Zustand ziehen. Lediglich die 100k am Gate stellen eine Dauerlast dar.
So wird das Modul jedenfalls nie stromlos und vergisst auch keinen Status. Die Anzeigen leuchten nach Stromwiederkehr ohne jedes Zutun wieder auf.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."