Anwesenheitssimulation - zufällig schalten

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

Vorheriges Thema - Nächstes Thema

Dietmar63

Ja, werde ich nach meinem Urlaub in Angriff nehmen.

Dann werde ich es einchecken, so dass es für alle im nächsten Release allgemein zur Verfügung steht.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

ErdBaer

Hallo zusammen.

Nach erfolgreicher Verwendung der Zufallsschaltung habe ich aktuell ein Problemchen mit FHEMobile und dem STATE-Parameter. "RandomTimer" erwartet im STATE-Parameter ("Verreist") ein "ja" oder "nein", über "attr Verreist fm_type offbutton,onbutton" wird der STATE-Parameter aber auf "on"/"off" gesetzt?!

define Verreist dummy
attr Verreist fm_type offbutton,onbutton
attr Verreist group AlarmStatus
attr Verreist room AlarmStatus
attr Verreist webCmd ja:nein

define ZufallsTimer_BZ RandomTimer *{sunset_abs("REAL")} bz_Licht Verreist 23:30 260 500/800
attr ZufallsTimer_BZ loglevel 3
attr ZufallsTimer_BZ room AlarmStatus


Gibt es eine einfache Möglichkeit, "on"/"off" in "ja"/"nein" zu "übersetzen" oder ist die Anpassung im Perl-Code von RandomTimer die einzige Möglichkeit?

Danke und Grüße.
FritzBox 7390 mit FHEM-Community Image, HMLan-Adapter
AVM: Dect200, 546E
HM: Funk-Zwischenstecker, Funk-Bewegungsmelder, Funk-Tür-/Fensterkontakte

justme1968

schau mal hier: http://forum.fhem.de/index.php?t=msg&goto=87704&rid=430&srch=98_RandomTimer#msg_87704

in der neuesten version ist kannst du eine beliebige perl funktion zum disable verwenden.

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

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

ErdBaer

Na das passt ja ... druckfrisch ... hatte ich noch nicht gesehen.

Danke für den Hinweis!
FritzBox 7390 mit FHEM-Community Image, HMLan-Adapter
AVM: Dect200, 546E
HM: Funk-Zwischenstecker, Funk-Bewegungsmelder, Funk-Tür-/Fensterkontakte

Wolle02

Hallo,

ich hole diesen alten Thread mal wieder hoch, weil ich dachte, dass meine Frage dazu passen könnte und ich dafür nichts neues aufmachen wollte.

Ich verwende den Random Timer aktuell für zweierlei. Einmal für eine Anwesenheitssimulation wenn ich verreist bin und einmal für eine Anwesenheitssimulation wenn ich einfach nur nicht zu Hause bin. Der RandomTimer soll im "Verreist"-Fall abends bei Sonnenuntergang mit der Simulation beginnen. Hierfür verwende ich den Aufruf:

*{sunset_abs("REAL")} Flur_Decke 23:55:00 300

Das funktioniert soweit auch ganz gut.

Mein Problem ist beim zweiten Anwendungsfall.
Wenn ich abends noch mal weggehe, soll die Anwesenheitssimulation auch starten. Wenn ich als Startzeit allerdings auch hier den Sonnenuntergang wähle, dann startet die Simulation nicht, wenn ich erst weggehe, wenn die Sonne bereits untergegangen ist. Ich müsste hier also eine dynamische Startzeit einstellen, die anhand meiner Anwesenheitserkennung definiert wird.
Ich bin nun leider völlig überfragt, wie ich im RandomTimer eine Startzeit angeben kann, die ich aus dem State Reading nehmen könnte, wenn ein Dummy von "Anwesend" zu "Abwesend" springt.

Kann mir hier eventuell jemand einen Tip geben? Falls ich mich unklar ausgedrückt habe oder bestimmte Angaben vergessen habe, so bitte ich um Nachsicht und werde es so gut ich kann nachreichen.

Gruß
Wolle

Dietmar63

Ich denke schon darüber nach, wie man diesen Fall auch abdecken kann. Melde mich wenn ich etwas habe
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Wolle02

Ui, toll. Da bin ich sehr gespannt. Vielen Dank schon mal.

MarioS1969

Hallo,
ich denke ich habe ein ähnliches Problem mit meiner Anwesenheitssimulation.
Wenn ich innerhalb er Aktivierungszeit (nach Sonnenuntergang und vor 23:30) den dummy "Verreis" von ja auf nein und wieder auf ja selle, wird der Alarm erst wieder am nächsten Tag aktiv. Mein Wunsch wäre aber, dass der Alarm noch am gleichen Tag aktiv wird.
Jetzt die Frage, habe ich irgendeinen Bug in meinem Code oder ist das Vehalten von RandomTimer so?
Für mich ist nicht klar wie RandomTimer wieder aktiv wird wenn er zuvor mit disableCond deaktiviert wurde. Könnt ihr mich darüber aufschlauen.

Hier mein Code dazu:


define Verreist dummy
attr Verreist devStateIcon nein:Wecker.Wochentags:ja ja:Wecker.Immer:nein
attr Verreist group Alarm
attr Verreist room Alarm,Gesamtansicht
attr Verreist setList State:nein,ja
attr Verreist webCmd :
define ZufallsTimerVerreist RandomTimer *{sunset("HORIZON=-3",0,"16:30","21:00")} Wohnzimmer_Vitrinen 23:30:00 180
attr ZufallsTimerVerreist verbose 5
attr ZufallsTimerVerreist room Alarm
attr ZufallsTimerVerreist disableCond (Value("Verreist") eq "nein")
attr ZufallsTimerVerreist switchmode  800/200

define act_Verreist_Aus notify Verreist:nein set Wohnzimmer_Vitrinen off
attr act_Verreist_Aus room Alarm



Vielen Dank für eure Unterstützung.
Mario
PI 2, PI4,  RFXtrx433, IT-1500, CMR-1000, ITM 100, TFA Temperatursensor, IR-Sensor, FB 7590, LIRC mit Logitech Harmony, FI9821W, Sonos, Twilight, Benzinpreismonitor, HMLAN, HM-Sen-DB-PCB, HM-LC-Bl1PBU-FM, HM-SEC-SC-2, GPIO4 mit fhem2fhem, Shelly

Dietmar63

siehe:
http://forum.fhem.de/index.php/topic,14010.msg226371.html#msg226371

Ich werden das Modul umschreiben, so dass es während der Laufzeit wieder aktiv wird, wenn die Bedingung darfür wieder eintreten.

Das wird allerdings ein wenig dauern. Ein erster Versuch war noch nicht erfolgreich.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

MarioS1969

Super, vielen Dank.
Wenn ich dir beim Testen unterstützen kann, dann bitte einfach melden

Gruß Mario
PI 2, PI4,  RFXtrx433, IT-1500, CMR-1000, ITM 100, TFA Temperatursensor, IR-Sensor, FB 7590, LIRC mit Logitech Harmony, FI9821W, Sonos, Twilight, Benzinpreismonitor, HMLAN, HM-Sen-DB-PCB, HM-LC-Bl1PBU-FM, HM-SEC-SC-2, GPIO4 mit fhem2fhem, Shelly

Toto1973

Könnte man dieses Modul auch dazu nutzen, um nur einen Schaltbefehl innerhalb eine begrenzten Zeit zu schalten?
Also zum Steuern der Rolläden?
Da brauch ich ja nur zwischen Sunrise und +30 Minuten den Befehl zum herunterfahren.
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

nicor2k

Hallo!

Ich habe (allerdings ohne das  RandomTimer Modul) eine zufällige Start-Sequenz gebaut, die abhängig von sunset mit einem kleinen Zeitfenster Lampen - oder auch Rollläden schalten kann. Für den Rollladen müsstest du dann statt "on-for-timer" einfach "off" setzen, damit er zu der gewünschten Zeit heruntergefahren wird. Das Skript wählt zufällig einen offset (per "HORIZON") für den sunset Befehl und auch eine zufällige Start-und-Ziel-Zeit, damit man trotzdem ein bestimmtes Zeitfenster vorgeben kann, während dessen Lampe/Rollladen auf jeden Fall geschaltet werden sollen - hoffe das hilft dir?

http://www.computerhilfen.de/info/smart-home-programmieren-zufallszahlen-fhem.html#sunset
FHEM auf Raspberry Pi 1 - 4 | Meine Browser-Plugins | Meine FHEM-Tipps

Dietmar63

Zitat von: Toto1973 am 13 Februar 2015, 12:28:15
Könnte man dieses Modul auch dazu nutzen, um nur einen Schaltbefehl innerhalb eine begrenzten Zeit zu schalten?
Also zum Steuern der Rolläden?
Da brauch ich ja nur zwischen Sunrise und +30 Minuten den Befehl zum herunterfahren.

eher nicht dafür geeignet.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Damian

Zitat von: nicor2k am 24 April 2015, 12:38:50
Hallo!

Ich habe (allerdings ohne das  RandomTimer Modul) eine zufällige Start-Sequenz gebaut, die abhängig von sunset mit einem kleinen Zeitfenster Lampen - oder auch Rollläden schalten kann. Für den Rollladen müsstest du dann statt "on-for-timer" einfach "off" setzen, damit er zu der gewünschten Zeit heruntergefahren wird. Das Skript wählt zufällig einen offset (per "HORIZON") für den sunset Befehl und auch eine zufällige Start-und-Ziel-Zeit, damit man trotzdem ein bestimmtes Zeitfenster vorgeben kann, während dessen Lampe/Rollladen auf jeden Fall geschaltet werden sollen - hoffe das hilft dir?

http://www.computerhilfen.de/info/smart-home-programmieren-zufallszahlen-fhem.html#sunset

Oder inzwischen ganz einfach ohne Scripte, Auszug aus der Commandref zu DOIF:

ZitatAnwendungsbeispiele:

Lampe wird nach Sonnenuntergang zwischen 900 und 1500 (900+600) Sekunden zufällig zeitverzögert eingeschaltet. Ausgeschaltet wird die Lampe nach 23:00 Uhr um bis zu 600 Sekunden zufällig verzögert:

define di_light DOIF ([({sunset()}+900+int(rand(600)))])
(set lamp on)
DOELSEIF ([([23:00]+int(rand(600)))])
(set lamp off)


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Borderwalk

Hallo @ Dietmar63,

ich beschäftige mich seit kurzer Zeit mit Fhem. Hab im Forum nach einem "Zufallsgenerator" gesucht und bin über deinen RandomTimer "gestolpert".

Vielen Dank für dieses tolle Modul.

Mein Erstes, welches ich einbinde.

Gruß vom Niederrhein

Borderwalk