Anwesenheitssimulation - zufällig schalten

Begonnen von stobor, 18 März 2013, 18:06:46

Vorheriges Thema - Nächstes Thema

Dietmar63

Du müsstest an/aus Schaltungen des Gerätes finden:


2013.03.24 18:12:36 2: FS20 set StehlampeTV on
2013.03.24 18:12:36 2: FS20 set StehlampeTisch on


Du kannst den loglevel des Gerätes auf 3 setzen, dann wird einiges mehr geloggt
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

bzw. so:


2013.03.23 22:07:22 2: FS20 set StehlampeTV off
2013.03.23 22:07:22 3: ZufallsTimerTv/StehlampeTV going down ...
2013.03.23 22:02:41 2: FS20 set StehlampeTisch off
2013.03.23 22:02:41 3: ZufallsTimerTisch/StehlampeTisch going down ...
2013.03.23 21:59:35 2: FS20 set StehlampeTV off
2013.03.23 21:46:37 2: FS20 set StehlampeTisch on
2013.03.23 21:38:52 2: FS20 set StehlampeTisch off
2013.03.23 21:06:34 2: FS20 set StehlampeTisch on
2013.03.23 20:58:11 2: FS20 set StehlampeTisch off
2013.03.23 20:31:43 2: FS20 set StehlampeTV on
2013.03.23 20:23:21 2: FS20 set StehlampeTV off
2013.03.23 19:35:37 2: FS20 set StehlampeTV on
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

stobor

Scheint alles zu funktionieren.
Ist das auch mit den Dimmern möglich (FS20 DI-5)? Sendet der ein on an den Dimmer oder können auch Dimmerwerte gesendet werden?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (FW 1.57 CUL868) für FS20 und CCU3 für HM(IP) + Arduino Mega (Firmata) - FHEM Revision: 29534 - FS20, HM(IP), MQTT, Philips HUE, ModBus

Dietmar63

es wird nur on/off gesendet.

Hierzu wäre eine Erweiterung nötig, die den "on" "off" Befehl als Parameter  übergibt.
Es gibt aber im Moment aber nur zwei Zustände.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

stobor

ok, danke. Aber on an einen Dimmer zu senden schaltet bestimmt auf 100%.

Trotzdem hätte ich noch Fragen:


1. Im Beispiel startet der Timer ja ab Sonnenuntergang:
define ZufallsTimerTisch RandomTimer *{sunset_abs("REAL")} LampeTisch Verreist 22:00 480 800/100

Kann man auch einen Timer ab einer festen Uhrzeit starten lassen (bspw. täglich ab 20:20) und die anderen definierten Timer wie im Beispiel ab Sonnenunterang?
Wie würde das aussehen?


2. Und schaltet die Zufallsfunktion eigentlich am Ende immer aus?


3. Kan man auch längere Schaltzeiten als 999sec erlauben?


Danke für Deine Hilfe.
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (FW 1.57 CUL868) für FS20 und CCU3 für HM(IP) + Arduino Mega (Firmata) - FHEM Revision: 29534 - FS20, HM(IP), MQTT, Philips HUE, ModBus

Dietmar63

Zitat1. Im Beispiel startet der Timer ja ab Sonnenuntergang:
define ZufallsTimerTisch RandomTimer *{sunset_abs("REAL")} LampeTisch Verreist 22:00 480 800/100

 Kann man auch einen Timer ab einer festen Uhrzeit starten lassen (bspw. täglich ab 20:20) und die anderen definierten Timer wie im Beispiel ab Sonnenunterang?
 Wie würde das aussehen?

define <name> RandomTimer <timespec> <device> <verreist> <stopTime> <timeToSwitch> [<switchmode>]

<timespec> format: [+][*]<timedet>

 The optional + indicates that the specification is relative(i.e. it will be added to the current time).
 The optional * indicates that the command should be executed repeatedly.
 <timedet> is either HH:MM, HH:MM:SS or {perlfunc()}, where perlfunc must return a HH:MM or HH:MM:SS date.


ja - <timespec> von RandomTimer funktioniert fast wie <timespec> von at: http://fhem.de/commandref.html#at. {N} habe ich nicht realisiert, weil ich es nicht für sinnvoll gehalten habe.

define ZufallsTimerTisch RandomTimer 20:20 LampeTisch Verreist 22:10 780 800/100

 
Zitat2. Und schaltet die Zufallsfunktion eigentlich am Ende immer aus?
ja - aber mit einer Zeitverzögerung von bis zu <timeToSwitch> Sekunden - das ist Absicht, damit niemand ein Muster erkennen kann.


2013.03.23 22:07:22 2: FS20 set StehlampeTV off
2013.03.23 22:07:22 3: ZufallsTimerTv/StehlampeTV going down ...


 
Zitat3. Kan man auch längere Schaltzeiten als 999sec erlauben?
Im Moment nicht - läßt sich bei Bedarf aber ändern. Es ist die Zeit, nach der RT zufällig(<switchmode>) an/ausschaltet. Die Zeit von <timeToSwitch> Sekunden wird nicht genau eingehalten. Es ist eine Abweichung von ca. 10% fest eigebaut, damit auch hier niemand erkennen kann, dass eine Zeitschaltuhr am Werke ist. Ich hatte ursprünglich einen "FS20 ZE Funk-Timer". Dieser schaltete immer genau nach 8 Minuten - :(.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

justme1968

hallo ditmar,

wäre es für dich eine option in deinem modul das kommando zum aus und ein schalten jeweils konfigurierbar zu machen? dann könnte man zum einen einen dimmer direkt mit einem level ( z.b.:  on:50 off:off )ansteuern und zum anderen mit dem LightScene modul eine ganze gruppe von lampen auf einmal schalten (z.b. /on:scene on/off:scene off/ oder /on:scene alles/off:scene aus/).

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Dietmar63

Wie müßte deiner Meinung nach die Definition erweitert werden bzw. wuerdest du es über ein attr lösen?

Ich habe bisher nicht den Bedarf gehabt etwas anderes als eine fs20st zu schalten.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

Am Bestem wäre gleich die "grosse Lösung":
eine Perlfunc, die das on-Kommando ersetzt und eine Perlfunk, die das off-Kommando ersetzt?
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

justme1968

ich denke ich würde zwei attribute werwenden. dann wird die definition nicht noch länger und schwieriger zu parsen.

z.b.:
attr zufall1 onCmd 50
attr zufall1 offCmd off
attr zufallWohnzimmer onCmd scene alles
attr zufallWohnzimmer offCmd scene aus
attr zufallPerl onCmd {...}
attr zufallPerl offCmd {...}


wenn es ein {..} ausdruck ist als perl ausführen sonst mit set ...

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Dietmar63

scheint mir spannend und nicht schwer umsetzbar zu sein.

attr zufall1          onCmd   set @ dim06%
attr zufall1          offCmd  set @ off
attr zufallWohnzimmer onCmd   set scene alles
attr zufallWohnzimmer offCmd  set scene aus
attr zufallPerl       onCmd   {...}
attr zufallPerl       offCmd  {...}


@ würde durch das <device> ersetzt.
Dann sollte alles Mögliche machbar sein!
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Dietmar63

@ Andre:

habe es eben eingebaut und mit folgenden attr getestet - scheint zu laufen. Als onCmd/offCmd sind ganze Befehlsketten möglich!


attr   Timer                  onCmd   {fhem("set @ on-for-timer 14")}
attr   Timer                  offCmd  {fhem("set @ off 16")}

attr   Timer                  onCmd  set @ on-for-timer 12
attr   Timer                  offCmd set @ off 12

attr   Timer                  onCmd  set @ on
attr   Timer                  offCmd set @ off



Anbei das Modul - kannst Du es mal testen - Wenn du es für ok befindest kann ich es einchecken, dann hat kann die ganze fhem-Gemeide davon profitieren. Es ist zwar eine weitere Lösung der Anwesenheissimulation, aber viel flexibler - hoffentlich.

Gib mir bitte in Info, ob es deinen Vorstellungen nahe kommt bzw. ob du noch weitere Wünche/Anregungen hast.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

justme1968

das klingt klasse. ich probiere es nachher gleich aus.

eine kurze anmerkung vorweg: wäre es nicht besser im perl code statt dem @ besser $name zu verwenden und zu setzen? dann muss nichts maskiert werden wenn doch mal ein @ gebraucht wird und das risiko aus versehen etwas zu  ersetzten ist geringer. rudolf stellt das an anderer stelle auch gerade um: Link

gruss
  andre

edit: ich habe grad ein paar Kombinationen durch gespielt und von meiner seite aus funktioniert es. ich kann alles damit tun was ich mir vorgestellt habe.

zwei erweiterungen die vielleicht etwas für eine spätere version sind:
- eine art täglichen single shot mechanismus um z.b. einen rolladen irgendwann zwischen 9 und 10 hochzufahren. wenn man z.b. das onCmd auf {} konfiguriert  und das offCmd auf 'set rolladen hoch' und der timer nach dem ersten off abschaltet sollte es gehen.
- statt dem urlaubs dummy vielleicht optional auch holliday unterstützen. damit hab ich mir zur zeit meine rollladen eingerichtet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Dietmar63

@ deshalb weil es bei vielen Funktionen schon weit verbreitet ist.

Irgendwie hänge ich an dem dummy.
Es ist so einfach möglich es von unterwegs zu schalten. Ich könnte holiday zusätzlich unterstützen, bin aber der Meinung, dass man dann nur Satzart 4 verwenden sollte.

Hast du ein Beispiel wie man es machen könnte?

Wäre dieses Modul es Wert es ins fhem Verzeichnis einzustecken?

Ich bin der Meinung, dass alle anderen Möglichkeiten die Abwesenheit zu simulieren viel komplizierter handzuhaben sind. Von HOL findet sich kein Eintrag in der Statistik. Und die Lösung mit dem Script... ist meiner Meinung nach nichts für Anfänger.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

stobor

Hallo Dietmar,
Die neue Variante des 99_RandomTimer.pm klingt spannend. Aber wie kann ich die neuen Features nutzen?
Gerade nutze ich die Konfiguration so:
define ZufallsTimerFlurlicht2 RandomTimer *05:30 Flurlicht Verreist 07:45 999 800/100

Wie könnte ich das mit der neuen Version nutzen und dabei die neuen Features einsetzen? Mir fehlt die Vorstellung, um

attr   Timer                  onCmd   {fhem("set @ on-for-timer 14")}
attr   Timer                  offCmd  {fhem("set @ off 16")}
attr   Timer                  onCmd  set @ on-for-timer 12
attr   Timer                  offCmd set @ off 12
attr   Timer                  onCmd  set @ on
attr   Timer                  offCmd set @ off


zu adaptieren.

Wenn das Modul jetzt gerade von Dir bearbeitet wird, könnte man dann auch die maximal mögliche Einschaltzeit verlängern (von derzeit 999sec.)?

Danke für Hilfe.
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-113-generic x86_64))  mit CUL V3.2 (FW 1.57 CUL868) für FS20 und CCU3 für HM(IP) + Arduino Mega (Firmata) - FHEM Revision: 29534 - FS20, HM(IP), MQTT, Philips HUE, ModBus