Hallo zusammen,
Ich finde an einem Punkt schon wieder keine Lösung.
Ich benötige einen Schalter mit 3 Zuständen on / off / auto.
Dieser Schalter soll die Überwachung eines Reedkontakt der Garage steuern.
Mein Gedanke war
on: Notify zur überwachung aktiv (Zustand für Urlaub oder Ähliches)
off: Notify zur überwachung inaktiv (Zustand für längere Abende ::))
auto: zwei at Befehle 22Uhr an; 6Uhr aus. (wenn nicht auf Auto dann inaktiv)
Wenn ich den Zustand nach 22Uhr auf Auto wechseln, wird doch erstmal der bis dahin gültige Zustand bis zum nächten at erhalten bleiben.
Wie würdet ihr diese Problemstellung lösen?
Gruß
Dirk
Hallo Dirk,
an was oder wo ist der Schalter angeschlossen. Wie viele Leitungen hast du für den Schalter zur Verfügung ?
LG
Papa Romeo
Hallo Papa Romeo
Der "Schalter" ist nicht physisch.
Daher 0 Leitungen.
Es soll ein Schalter innerhalb von Fhem sein, der über ein Tablet geschaltet werden kann.
Daher dachte ich an einen Dummy wobei ich bei einem Beitrag zur Poolautomation gelesen hatte, das kein Dummy dafür notwendig wäre.
Leider Endete der Beitrag mal wieder ohne das Resultat zu zeigen.
Gruß
Dirk
Ich bin zwar in Fhem auch nicht soo fit, aber ich glaube du kannst doch die Werte "On", "Off" oder "Auto" an Fhem übergeben und entsprechend darauf reagieren lassen.
Ich glaube DOIF hat (mittlerweile) die Möglichkeit sowohl "Anzeigen" zu "Klicken" als auch Reaktion darauf zur Verfügung zu stellen...
Also mal Wiki/commandref bzgl. DOIF bemühen.
Ansonsten einen dummy und entsprechende notify für on/off/auto (oder eins mit Perl: if/elsif/else) und dann eben entsprechend "steuern".
Also das mit dem on/off habe ich noch nicht verstenden: was soll damit aktiviert/deaktiviert werden!?
Das notify selbst, das die "Umschaltung" macht bzw. "Reaktion" auf den dummy kannst du NICHT deaktvierien, da es ja sonst nicht mehr "automatisch" (mittels on/auto) reagieren kann...
Evtl. noch mal genauer erläutern WAS du wirklich tun/haben willst...
Gruß, Joachim
Zitat...der über ein Tablet ...
Das ist wohl die eigentliche Frage: (Wahrscheinlich) in der Tablet-UI ein Button der mit Klick jeweils in den nächsten von 3 möglichen Zuständen wechselt.
Die Überwachung würde ich in einem DOIF machen.
attr <device> disable toggle
Schaltet zumindest schonmal zwischen den beiden möglichen Zuständen um.
Und mit dem Attribut disabledForIntervals lässt sich eine Abschaltung des notify für einen bestimmten Zeitraum abschalten, z.B. von 22 - 06 Uhr.
Zitat von: rabehd am 01 Oktober 2020, 14:19:36
ein Button der mit Klick jeweils in den nächsten von 3 möglichen Zuständen wechselt.
Auch sowas läßt sich mit FHEM Bordmitteln recht einfach umsetzen.
Frage dazu:
Zitatattr <device> disable toggle
und wie umgehst du das rote Fragezeichen mit dem Vorschlag,
du würdest doch nicht bei jeder Ausführung noch ein
save anhängen ? Oder doch ?
Gruß
Thomas
Warum sollte ich das umgehen wollen? Das Fragezeichen taucht doch nur im "Standard" Webfrontend von FHEM auf, und damit bediene ich mein FHEM so gut wie nie. Wenn ich das Attribut über einen Button z.B. in einem InfoPanel device umschalte, taucht in diesem device nirgends ein rotes Fragezeichen auf.
Und warum sollte ich den Zustand nach dem Ändern des Attributes abspeichern wollen, wenn ich doch weiß, dass er sich in absehbarer Zeit ohnehin wieder ändert?
Du machst doch auch nach dem Einschalten einer Lampe kein "save", oder?
ZitatUnd warum sollte ich den Zustand nach dem Ändern des Attributes abspeichern wollen, wenn ich doch weiß, dass er sich in absehbarer Zeit ohnehin wieder ändert?
Ein Grund könnte sein man möchte den Zustand des Schalters an einem Infodisplay von unterwegs / außer Haus im Auge haben, nach einem Stromausfall ist die Kontrolle hin (ohne USV).
ZitatDu machst doch auch nach dem Einschalten einer Lampe kein "save", oder?
Da kommt die Frage mit dem ? auch gar nicht auf ? Oder übersehe ich da was das der Zustand der in FHEM eingebundenen Lampe ( die angenommen ihren Status auch zurückmeldet ) hier nach einem Stromausfall weg wäre ?
Kleines einfaches Beispiel mit einem Bewegungsmelder und manuellem On/Off/Auto:
define di_Licht (Bewegungsmelder1:"motion"] and [$SELF:Modus] eq "Auto") (set mq2_ShellyStiege1 on-for-timer 300)
DOELSEIF ([$SELF:Modus] eq "On") (set mq2_ShellyStiege1 on)
DOELSEIF ([$SELF:Modus] =~ /(Off|Auto)/) (set mq2_ShellyStiege1 off)
attr di_Licht do always
attr di_Licht readingList Modus
attr di_Licht repeatsame 0
attr di_Licht setList Modus:On,Off,Auto
attr di_Licht webCmd Modus
Hallo zusammen
Vielen Dank für die ganzen antworten.
Ich hatte auch noch was in den Commandrefs gefunden zum doif.
Leider funktionier der auto modus noch nicht.
Und die Fragestellung was außerhalb der Zeit passiert bleibt auch.
hier mal meine Testdevice ( eine abwandlung vom Time_switch https://fhem.de/commandref_DE.html#DOIF_setList__readingList (https://fhem.de/commandref_DE.html#DOIF_setList__readingList))
defmod time_switch3 DOIF (["$SELF:mybutton: on"]) (set lamp on) DOELSEIF (["$SELF:mybutton: off"]) (set lamp off) DOELSEIF (["$SELF:mybutton: auto"] and [[$SELF:mybegin,"00:00"]]) (set lamp on) DOELSEIF (["$SELF:mybutton: auto"] and [[$SELF:mysnd,"00:00"]]) (set lamp off)
attr time_switch3 alias time_switch3
attr time_switch3 do always
attr time_switch3 readingList mybutton mybegin myend
attr time_switch3 room 01-Test
attr time_switch3 setList mybutton:on,off,auto mybegin:time myend:time
attr time_switch3 webCmd mybutton:mybegin:myend
setstate time_switch3 initialized
setstate time_switch3 2020-10-01 20:12:15 cmd 0
setstate time_switch3 2020-10-01 20:12:15 mode enabled
setstate time_switch3 2020-10-01 20:06:23 mybegin 20:07
setstate time_switch3 2020-10-01 20:03:58 mybutton auto
setstate time_switch3 2020-10-01 20:06:27 myend 20:08
setstate time_switch3 2020-10-01 20:12:15 state initialized
setstate time_switch3 2020-10-01 20:12:15 timer_01_c03 02.10.2020 20:07:00
setstate time_switch3 2020-10-01 20:12:15 timer_02_c04 02.10.2020 00:00:00
Vielleicht sieht ja einer von euch den Fehler
Gruß
Dirk
heyy gefunden
ich hab die vergleiche anders gesetzt und jetzt läuft´s
defmod time_switch3 DOIF ([$SELF:mybutton] eq "on") (set lamp on) DOELSEIF ([$SELF:mybutton] eq "off") (set lamp off) DOELSEIF ([$SELF:mybutton] eq "auto" and [[$SELF:mybegin,"00:00"]]) (set lamp on) DOELSEIF ([$SELF:mybutton] eq "auto" and [[$SELF:myend,"00:00"]]) (set lamp off)
attr time_switch3 alias time_switch3
attr time_switch3 do always
attr time_switch3 readingList mybutton mybegin myend
attr time_switch3 room 01-Test
attr time_switch3 setList mybutton:on,off,auto mybegin:time myend:time
attr time_switch3 webCmd mybutton:mybegin:myend
setstate time_switch3 cmd_4
setstate time_switch3 2020-10-01 20:52:00 cmd 4
setstate time_switch3 2020-10-01 20:52:00 cmd_event timer_2
setstate time_switch3 2020-10-01 20:52:00 cmd_nr 4
setstate time_switch3 2020-10-01 20:50:35 e_time_switch3_mybutton auto
setstate time_switch3 2020-10-01 20:50:26 mode enabled
setstate time_switch3 2020-10-01 20:50:45 mybegin 20:51
setstate time_switch3 2020-10-01 20:50:35 mybutton auto
setstate time_switch3 2020-10-01 20:50:51 myend 20:52
setstate time_switch3 2020-10-01 20:52:00 state cmd_4
setstate time_switch3 2020-10-01 20:51:00 timer_01_c03 02.10.2020 20:51:00
setstate time_switch3 2020-10-01 20:52:00 timer_02_c04 02.10.2020 20:52:00