Ausschalten von Geräten verhindern (bzw. wieder einschalten)?

Begonnen von choenig, 17 Februar 2018, 10:45:41

Vorheriges Thema - Nächstes Thema

choenig

Hallo zusammen,

ich möchte gerne sicherstellen, dass bestimmte Geräte bzw. Aktoren nicht ausgeschaltet werden können, oder kurz nach dem Ausschalten wieder eingeschaltet werden. Beispiel ist der Kühlschrank, der an einer Schaltsteckdose mit Verbrauchsmessung (HM-ES-PMSw1-Pl) angeschlossen ist.

Meine Fibaro-Steckdosen sind da hilfreich, weil man sie so konfigurieren kann, dass sie nicht ausgeschaltet werden können. Das geht bei den Homematic-Steckdosen nur sehr eingeschränkt.

Zwei Ansätze habe ich mir überlegt. Beide basieren darauf, dass ich bei allen Geräten, die Immer-An sein sollen, ein Attribut keepAlwaysOn auf 1 setze.

Der erste Ansatz verwendet die Aggregationsfunktion von DOIF:

([#"":state:$_ eq "off" and AttrVal($name,"keepAlwaysOn","0") eq "1"] > 0)
(set [@"":state:$_ eq "off" and AttrVal($name,"keepAlwaysOn","0") eq "1"] on)


Der zweite Ansatz wird regelmäßig (z.B. alle 10 Sekunden) ausgeführt:

([+10])
(set .*:FILTER=keepAlwaysOn=1:FILTER=state=off on)


Zusätzlich würde ich mir gerne eine Pushnotification senden, wenn ein Gerät (und welches) eingeschaltet wurde. Dies ist in dem ersten Ansatz leicht möglich, im zweiten habe ich jedoch keine Idee, wie ich das machen könnte. Der erste Ansatz verunsichert mich, da das DOIF ja auf alles und jeden reagiert ;-).

Meine Frage nun: Hat jemand noch eine bessere Idee, wie ich das bewerkstellen könnte? Habe ich was Übersehen?

[Diese Frage ist nicht DOIF-spezifisch, auch wenn ich beide Ansätze mittels DOIF geschrieben habe. Ich bin für alles offen!]

Vielen Dank!
LG
Christian

Bennemannc

Hallo,

mal die brutale Metode - aufschrauben und den Taster ausbauen, dann kann der nicht mehr manuell ausgeschaltet werden. Dann gibt es einen Parameter den man setzen kann "bei Spannungswiederkehr ein". In Fhem das Gerät (den switch) verstecken oder sperren. Dann wüßte ich nicht, was die Steckdose ausschalten sollte.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Wuehler

Hi,

Wenn ich mich richtig erinnere könnte das auch mit dem Modzl monitoring funktionierrn.

justme1968

bei den hm zwischenstecker kannst du dad power on verhalten und die reaktion auf den tastendruck mi figurieren. im wiki gibt es ein beispiel.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

choenig

Hi,

Zitat von: Wuehler am 17 Februar 2018, 13:43:14
Wenn ich mich richtig erinnere könnte das auch mit dem Modzl monitoring funktionierrn.

Monitoring benutze ich bereits in anderem Kontext, das schau ich mir nochmal hierfür an. Danke :)

Zitat von: justme1968 am 17 Februar 2018, 13:51:25
bei den hm zwischenstecker kannst du das power on verhalten und die reaktion auf den tastendruck mi figurieren. im wiki gibt es ein beispiel.

Das hab' ich bereits gemacht :). Das hätte ich explizit in meinem Post schreiben sollen.

Zitat von: Bennemannc am 17 Februar 2018, 11:42:34
Dann wüßte ich nicht, was die Steckdose ausschalten sollte.

Ehrlich gesagt habe ich am meisten Angst vor einem fehlerhaften Befehl von mir (set .* off). Jaja, sowas triviales mein' ich nicht, aber wenn ich z.B. mit so einem DOIF rumexperimentiere, wie oben, dann kann sowas leider schonmal passieren.

LG
Christian

loescher

Hi!

Die HM Steckdosen senden einen Event, wenn geschaltet wird.
Darauf könntest du ein notify/doif reagieren lassen und ein "on" senden.

Ich hab sowas ähnliches mit meinen HM Steckern für die Weihnachtsbeleuchtung gemacht:


define LichterGartenSteuerung DOIF (([Weihnachtszeit] eq "true") and (["LichterGarten.+:1.WORKING"] and ([6:30-7:45] or [16:30-22:50]) ))\
(set LichterGarten "on")\
DOELSE\
(set LichterGarten "off")


Egal, was passiert: Das DOIF schaltet die Beleuchtung immer in den richtigen Soll-Zustand.

LG,
Stephan.

rvideobaer

Hallo,

wenn Du die Dose nicht peer FHEM schalten willst, dann peere sie doch einfach nicht. Die Readings sollten doch auch so ankommen nur Schalten wäre dann nicht möglich?

Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

roedert

Ich habe die Teile auch am Kühlschrank. Ich hatte sie allerdings als Bausatz gekauft und beim Zusammenbau auch gleich eine Brücke über den Schaltkontakt des Relais gelegt. Somit ist die Steckdose immer an - unabhängig vom Schaltzustand.
Messwerte werden trotzdem kontinuierlich gemeldet. Spart sogar noch ein bisschen Strom, da das Relais nicht permanent angezogen sein muss.

Zitat von: Bennemannc am 17 Februar 2018, 11:42:34gibt es einen Parameter den man setzen kann "bei Spannungswiederkehr ein"

Hast da mehr Infos zu? Habe da nix zu finden können.

rvideobaer

Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

choenig

Hi,

nicht zu peeren ist natürlich auch ein interessanter Ansatz, das probiere ich mal aus :).

Änderungen an der Hardware wollte ich eigentlich vermeiden, insbesondere weil ich die Lösung nicht auf HM-Schaltsteckdosen einschränken wollte (jaja, habe ich nicht gesagt ;)). Aber Cool wäre, wenn ich einen zusätzlichen Schalter an der Schaltsteckdose hätte, der das Relais brückt und ich so zwischen »Auto« und »An« umschalten könnte. Das hat den Vorteil, dass ich sie dann auch wo anders verwenden kann. Die wandern nämlich immer mal im Haus umher ;).

LG
Christian

choenig

Hallo nochmal,

ich habe mich jetzt zunächst (und kurzfristig) mal für die folgende Software-Variante entschieden:

defmod doif__KeepAlwaysOn DOIF ([+60])\
({\
my @devsToSwitch = devspec2array("a:keepAlwaysOn=1:FILTER=r:state=off");;\
if (@devsToSwitch) {\
my $str = join(",", @devsToSwitch);;\
fhem("msg push \@rr_Christian Folgende »keepAlwaysOn«-Geräte wurden automatisch eingeschaltet: $str");;\
fhem("set $str on");;\
}\
})\

attr doif__KeepAlwaysOn do always


Zusätzlich setze ich bei den betroffenen Aktoren das von mir definierte userattr »keepAlwaysOn« auf 1.

Bei Zeiten werde ich mir aber die Ansätze »monitoring-Modul«,  »nicht peeren« und »Hardwaremodifikation« ansehen.

@loescher: Deinue Variante entspricht ja im Prinzip meiner ersten mit der Aggregationsfunktion von DOIF, oder? Mein Problem ist, dass Aktoren nicht einheitlich benannt sind und ich halt ungerne auf ein .*:state reagieren möchte.

Danke erstmal :)

LG
Christian