Zeitschaltuhr über Slider realisieren - bekomme es nicht hin!

Begonnen von Jogi, 19 Dezember 2017, 14:28:41

Vorheriges Thema - Nächstes Thema

Jogi

Hallo,
ich würde gerne eine Zeitschaltuhr in FHEM realisieren, mit der ich Lampen schalten kann.
Dabei möchte ich die Zeiten nicht fest programmieren (das kann ich!), sondern mittels Slider verändern können. Leider bekomme ich das nicht hin.
Ich habe im Forum und auch über Google jede Menge recherchiert, aber leider nichts gefunden. Es gibt zwar jede Menge Beiträge in denen es um Zeitschaltungen geht, aber entweder sind das fest programmierte Zeiten oder sie richten sich nach dem Sonnenuntergang, oder ist nicht das, was ich suche. Kein Problem, habe ich gedacht, dann nehme ich einfach etwas, was ungefähr passt und bastele das um. Aber, das bekomme ich nicht hin.
Was will ich: Ich möchte gerne eine Ein- und eine Ausschaltzeit für ein Gerät per Slider eingeben können. Optisch am schönsten wäre es, wenn die beiden Slider nebeneinander sind.
Mein bisher bestes Ergebnis (teilweise aus anderen Beiträgen kopiert) ist das hier:
#     Zeitschalter 1 EINschalten
#
define Wohnz_EIN dummy
attr Wohnz_EIN alias Wohnz_EIN stellen
attr Wohnz_EIN devStateIcon Aus:general_aus@red
attr Wohnz_EIN group Zeitschaltuhr
attr Wohnz_EIN icon time_clock
attr Wohnz_EIN room Test
attr Wohnz_EIN setList state:Aus,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,1900,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00
attr Wohnz_EIN sortby 1
attr Wohnz_EIN webCmd state:Aus
#
define noWohnz_EIN notify Wohnz_EIN { Wohnz_EINStellen();;}
attr noWohnz_EIN group Zeitschaltuhr
attr noWohnz_EIN room Test
#
define Zeitschalter1 dummy
attr Zeitschalter1 icon time_clock
attr Zeitschalter1 room Test
attr Zeitschalter1 group Zeitschaltuhr
#
define Zeit1n notify at [Wohnz_EIN:state] set Zeitschalter1 on
#
#
#     Zeitschalter 1 AUSschalten
#
define Wohnz_AUS dummy
attr Wohnz_AUS alias Wohnz_AUS stellen
attr Wohnz_AUS devStateIcon Aus:general_aus@red
attr Wohnz_AUS group Zeitschaltuhr
attr Wohnz_AUS icon time_clock
attr Wohnz_AUS room Test
attr Wohnz_AUS setList state:Aus,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,1900,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00
attr Wohnz_AUS sortby 1
attr Wohnz_AUS webCmd state:Aus
#
define noWohnz_AUS notify Wohnz_AUS { Wohnz_AUSStellen();;}
attr noWohnz_AUS group Zeitschaltuhr
attr noWohnz_AUS room Test
#
#
define Zeit2n notify at [Wohnz_AUS:state] set Zeitschalter1 off
#

Leider funktioniert es aber nicht. Ich weiß nicht, wie ich den Wert des Sliders an den notify übergeben muss, damit es schaltet.
Außerdem ist die Anzeige untereinander. Würde mich aber nicht stören, wenn es wenigstens funktionieren würde.

Es mag sein, dass in meinem Versuch noch ein paar grundlegende Fehler stecken. Daher wäre ich für einen Tipp dankbar!


MadMax-FHEM

Evtl. hilft das hier weiter:

https://forum.fhem.de/index.php?topic=18294.0

Hab mal spaßeshalber die DropDown-Version umgesetzt...
...aber (noch) keine Anwendung dafür, daher nicht weiter verfolgt...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Jogi

Zitat von: MadMax-FHEM am 19 Dezember 2017, 14:49:09
Evtl. hilft das hier weiter:

https://forum.fhem.de/index.php?topic=18294.0

Hab mal spaßeshalber die DropDown-Version umgesetzt...
...aber (noch) keine Anwendung dafür, daher nicht weiter verfolgt...

Gruß, Joachim

Den Beitrag hatte ich bei meinen Recherchen auch schon gefunden.
Hat mir aber leider nicht weiter geholfen.
Ich kann es mir aber gerne noch mal anschauen.

Ellert

Hier gibt es ein einfaches Beispiel mit DOIF und Beispiel für Raw definition zum ausprobieren: https://wiki.fhem.de/wiki/DOIF/Ein-_und_Ausgabe_in_FHEMWEB_und_Tablet-UI_am_Beispiel_einer_Schaltuhr

Beispiel


define lamp_Labor000 dummy
attr lamp_Labor000 alias Lampe
attr lamp_Labor000 group Labor: Zeitsteuerung mit manuell Ein/Aus
attr lamp_Labor000 room DOIF_Labor

define time_switch_Labor DOIF (["$SELF:P_mybutton: on"] or [[$SELF:P_mybegin,"00:00"]])\
   (set lamp_Labor000 on)\
DOELSEIF (["$SELF:P_mybutton: off"] or [[$SELF:P_myend,"00:01"]])\
   (set lamp_Labor000 off)
attr time_switch_Labor alias Schaltuhr
attr time_switch_Labor cmdState on|off
attr time_switch_Labor group Labor: Zeitsteuerung mit manuell Ein/Aus
attr time_switch_Labor readingList P_mybutton P_mybegin P_myend
attr time_switch_Labor room DOIF_Labor
attr time_switch_Labor setList P_mybutton:uzsuSelectRadio,on,off P_mybegin:time P_myend:time
attr time_switch_Labor webCmd P_mybutton:P_mybegin:P_myend

Jogi

Zitat von: Ellert am 19 Dezember 2017, 15:30:34
Hier gibt es ein einfaches Beispiel mit DOIF und Beispiel für Raw definition zum ausprobieren: https://wiki.fhem.de/wiki/DOIF/Ein-_und_Ausgabe_in_FHEMWEB_und_Tablet-UI_am_Beispiel_einer_Schaltuhr

Beispiel


define lamp_Labor000 dummy
attr lamp_Labor000 alias Lampe
attr lamp_Labor000 group Labor: Zeitsteuerung mit manuell Ein/Aus
attr lamp_Labor000 room DOIF_Labor

define time_switch_Labor DOIF (["$SELF:P_mybutton: on"] or [[$SELF:P_mybegin,"00:00"]])\
   (set lamp_Labor000 on)\
DOELSEIF (["$SELF:P_mybutton: off"] or [[$SELF:P_myend,"00:01"]])\
   (set lamp_Labor000 off)
attr time_switch_Labor alias Schaltuhr
attr time_switch_Labor cmdState on|off
attr time_switch_Labor group Labor: Zeitsteuerung mit manuell Ein/Aus
attr time_switch_Labor readingList P_mybutton P_mybegin P_myend
attr time_switch_Labor room DOIF_Labor
attr time_switch_Labor setList P_mybutton:uzsuSelectRadio,on,off P_mybegin:time P_myend:time
attr time_switch_Labor webCmd P_mybutton:P_mybegin:P_myend

Super, vielen Dank, das ist genau das, was ich gesucht habe.
Das ist eine gute Basis, die ich halbwegs verstehe und die ich nutzen kann, um meine eigene Zeitschaltuhr daraus zu bauen.
Bin schon dabei.

Immer wieder interessant zu sehen, was "doif" alles kann.

Gruß,
Jogi