Nach Stromausfall Steckdose wieder einschalten

Begonnen von mhelgers, 13 Mai 2015, 09:31:51

Vorheriges Thema - Nächstes Thema

mhelgers

Hallo Zusammen,


vielleicht hier im Forum schon beantwortet aber so richtig gefunden habe ich nichts.

Folgendes Szenario: Teichpumpe wird über eine FS20 Steckdose geschaltet und über fhem gesteuert. Sie läuft täglich von 07:00 - 22:00
Um 07:30 kommt es zu einem Stromausfall. Nachdem der Strom um 08:00 wieder da ist soll fhem die Steckdose wieder einschalten.
Wie macht man das oder gibt es ein globales Modul welches diese Aufgabe übernimmt alle Aktoren in den Zustand von vor dem Stromausfall setzt??


Danke für die Hilfe (und gefährliche Ein-Wort-Sätze wie zB "mach's mit Notify" nutzen mir nix, da wäre ein komplettes Beispiel schon netter)


Elektrolurch

Hallo,

define fhem_neustart_not notify global:initialized set Teichpumpe ein

Dann musst Du noch die Uhrzeit abragen (nur einschalten, wenn zwischen 7 und 22 Uhr)

Elektrolurch
configDB und Windows befreite Zone!

mhelgers

Danke für die Antwort....

könnte man das so machen..???????


define fhem_neustart_not notify global:initialized  { if($hour > 7 || $hour < 22) { fhem "set Teichpumpe ein" } }

duke-f

Auf den ersten Blick würde ich sagen:
statt
if($hour > 7 || $hour < 22)
lieber
if($hour > 7 && $hour < 22)
Cubietruck, 3 Raspberry Pis,
CUL868, RFXtrx433, CUL433, SCC868, HM-USB,
IRTrans, EZcontrol XS1, IguanaWorks USB IR Transceiver
ESPEasy, Fritz!Box, Samsung TV+BD, LMS, Squeezelite

mhelgers


frank

funktioniert natürlich nur, wenn der fhem-server beim stromausfall auch "abschmiert".
ausserdem muss "INITIALIZED" gross geschrieben sein.
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

mhelgers

TOP! das funktioniert schon!!! :D :D :D :D

Aber gibt es auch eine Möglichkeit den Wert "$hour > 7" durch den vorher definierten Wert zu ersetzen??
Man ist ja bequem und wenn ich die Zeit zum Beispiel im Winter änder dann müßte ich ja blöderweise auch noch daran denken den $hour Wert anzupassen  :-\

die Laufzeit definiere ich so
define TeichpumpeOnOff DOIF ([07:00|1234560]) (set Teichpumpe on) DOELSEIF ([22:00|1234560]) (set Teichpumpe off)

Rince

Ein Dummy, dessen Wert mit ReadingsVal in eine Variable kopiert wird, die du statt der 7 in den Code schreibst.

$wunschZeitPumpeAn = ReadingsVal("NameDesDummy", "state", undef);
(Ungetestet)

Dann eben statt 7 $wunschZeitPumpeAn schreiben...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

flurin

#8
Zitat von: mhelgers am 13 Mai 2015, 16:24:03
TOP! das funktioniert schon!!! :D :D :D :D

Aber gibt es auch eine Möglichkeit den Wert "$hour > 7" durch den vorher definierten Wert zu ersetzen??
Man ist ja bequem und wenn ich die Zeit zum Beispiel im Winter änder dann müßte ich ja blöderweise auch noch daran denken den $hour Wert anzupassen  :-\

die Laufzeit definiere ich so
define TeichpumpeOnOff DOIF ([07:00|1234560]) (set Teichpumpe on) DOELSEIF ([22:00|1234560]) (set Teichpumpe off)

Versuchs mal so:


define du_begin dummy
set du_begin 07:00

define du_end dummy
set du_end 22:00



define TeichpumpeOnOff DOIF ([[du_begin]-[du_end]] or ([global:?INITIALIZED] and [?[du_begin]-[du_end]]))
  (set Teichpumpe on)
DOELSE
  (set Teichpumpe off)


Gruss
flurin

mhelgers

Danke für die Antwort, schön das es hier so kreative Köpfe gibt! Weiter so!!

flurin

#10
Zitat von: mhelgers am 19 Mai 2015, 07:19:11
Danke für die Antwort, schön das es hier so kreative Köpfe gibt! Weiter so!!

Falls du mich meinst, Danke für das Kompliment. Solche Lösungen sind nur möglich, weil andere hier mit viel Aufwand die Voraussetzung dafür geschaffen haben.

Gruss
flurin

Ralli

Zitat von: flurin am 13 Mai 2015, 19:35:10

define TeichpumpeOnOff DOIF ([[du_begin]-[du_end]] or ([global:?INITIALIZED] and [?[du_begin]-[du_end]]))
  (set Teichpumpe on)
DOELSE
  (set Teichpumpe off)


m.E. muss das Fragezeichen bei global:INITIALIZED da noch weg - denn das ist der Trigger, der auslösen soll und die Zeit wird lediglich als Bedingung noch angehangen.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

flurin

Zitat von: Ralli am 19 Mai 2015, 14:13:25
m.E. muss das Fragezeichen bei global:INITIALIZED da noch weg - denn das ist der Trigger, der auslösen soll und die Zeit wird lediglich als Bedingung noch angehangen.

Siehe "DOIF > Ereignissteuerung über Auswertung von Events".

Gruss
flurin

Ralli

Hast Recht. Habe mich von der Position des Fragezeichen irreführen lassen.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa