Autor Thema: Anwesenheitssimulation  (Gelesen 11733 mal)

Offline docb

  • Sr. Member
  • ****
  • Beiträge: 554
Anwesenheitssimulation
« am: 15 Oktober 2013, 21:20:23 »
Hallo Gemeinde,
ich möchte gerne, dass wenn mein dummy Abwesenheit auf nein steht, dass sich dann ein paar devices in einem bestimmten Zeitraum (z.B. 19:00-23:30 Uhr) zufällig für einen zufälligen Zeitraum (z.B. von 5 bis 15 Minuten) einschalten.
Ich habe mich schon durchs Forum und alte google groups Beiträge gewühlt und werde nicht schlauer. Ein Modul "98_HOL" das dort immer erwähnt wird, finde ich in meiner kompletten fhem Installation genau so wenig wie eine manchmal erwähntes "fs20_holidays.sh". Mal abgesehen davon, dass ich aus den Beiträgen nicht schlau geworden bin. Hat jemand so etwas ähnliches in Betrieb und könnte mir ggf. Schützenhilfe leisten?
Viele Grüße
doc
I love FHEM!

Offline Joachim

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1460
Antw:Anwesenheitssimulation
« Antwort #1 am: 15 Oktober 2013, 21:23:47 »
Moin docb,

da findest Du die Module
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/

wie die funktionieren, weiß ich allerdings auch nicht.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19165
Antw:Anwesenheitssimulation
« Antwort #2 am: 15 Oktober 2013, 21:35:35 »
schau dir mal RandomTimer an.

hier http://forum.fhem.de/index.php/topic,14010.0.html gibt es einen thread dazu. die aktuelle version ist ganz normal eingecheckt.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:Anwesenheitssimulation
« Antwort #3 am: 15 Oktober 2013, 23:16:54 »
ich empfehle RandomTimer.
Ist am einfachsten einzurichten.

define ZufallsTimerTisch      RandomTimer  *{sunset()} StehlampeTisch  +03:30:00 480
attr   ZufallsTimerTisch      disableCond  (!isVerreist())

Bei Fragen, stehe ich zur Verfügung.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline docb

  • Sr. Member
  • ****
  • Beiträge: 554
Antw:Anwesenheitssimulation
« Antwort #4 am: 16 Oktober 2013, 10:54:17 »
Moin,
mensch klasse, das schaut gut aus. Nur zum Verständnis: das Modul schaltet dann im angegebenen Zeitraum zufällig das Device für den angegebenen Zeitraum. Es kann also sein, dass es 5 mal kurz hintereinander schaltet oder im gesamten Zeitraum nur einmal?
Und noch eine kleine Bitte - das mit der condition ist genial, könnte mir jemand helfen, meinen vorhandenen dummy da reinzupassen? Der dummy heißt du_Anwesenheit und wird entweder "Ja" oder "Nein". Nachdem mehrere Routinen darauf zugreifen, würde ich ihn ungerne in "true" und "false" umbenennen. Kann ich das irgendwie passend per code umwandeln, so dass die condition das versteht?
Viele Grüße
I love FHEM!

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:Anwesenheitssimulation
« Antwort #5 am: 16 Oktober 2013, 13:26:13 »
define ZufallsTimerTisch      RandomTimer  *{sunset()} StehlampeTisch  +03:30:00 480
ca. alle 480 Sekunden mit einer Wahrscheinlichkeit von 20% aus und einer Wahrscheinlichkeit von 80%an(so ungefähr). So bleibt die Lampe eher an.

muss in die 99_utils:
#
sub isVerreist       () { return(YesNo("du_Anwesenheit "));}
#
#
#
sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "nein");
  if ($state eq "nein") {
    return 0;
  }
  return 1;
}

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline docb

  • Sr. Member
  • ****
  • Beiträge: 554
Antw:Anwesenheitssimulation
« Antwort #6 am: 16 Oktober 2013, 13:34:50 »
Mensch danke, du bist ein Schatz! Werde es gleich testen!
Viele Grüße
doc
I love FHEM!

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:Anwesenheitssimulation
« Antwort #7 am: 16 Oktober 2013, 15:13:56 »
sub isVerreist       () { return(YesNo("du_Anwesenheit "));}
ich sehe soben, dass hier ein Leerzeichen zu viel ist.
sub isVerreist       () { return(YesNo("du_Anwesenheit"));}
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Meesus

  • Jr. Member
  • **
  • Beiträge: 75
Antw:Anwesenheitssimulation
« Antwort #8 am: 07 November 2013, 21:54:07 »
Ich hätte da noch eine kleine Frage zum Random Timer.

Nun habe ich mir den Random Timer einmal eingebaut. Das klappt auch alles wunderbar, auch in Verbindung mit dem Absent Modus bei mir. Thx für das tolle Modul.
Es wird ja auch beim "disablen" des Random Timer  bei mir das Device (Switch_02_WZ) abgeschaltet. Was ja auch in der Regel sinnvoll ist.

Ich hätte es nun aber gerne so, dass beim abschalten des Random Timer das Device nicht mehr geschaltet wird. Ist dieses möglich?
Hintergrund ist der, dass ich den "Switch_02_WZ"  noch anderweitig aktiviere. Durch meine Anwesenheitssteuerung (de)aktiviere ich den Random Timer und wenn ich nach Hause komme wird dieser dann auch abgeschaltet. Beim deaktivieren des Random Timers wird aber immer noch als letztes in der Kette der "Switch_02_WZ" auf "Off" geschaltet und das möchte ich verhindern.
2013.11.07 17:23:12 3: Notify gesendet
2013.11.07 17:23:13 2: IT set Switch_01_WZ on
2013.11.07 17:23:13 2: IT set Switch_02_WZ on
2013.11.07 17:23:13 2: IT set Switch_03_WZ on
2013.11.07 17:23:14 2: IT set Switch_04_WZ on
2013.11.07 17:23:14 2: IT set Switch_01_K on
2013.11.07 17:23:15 3: Nachricht von Smartphone_All: present - Alarmanlage OFF
2013.11.07 17:27:26 2: IT set Switch_02_WZ off
2013.11.07 17:27:27 3: [ZufallsTimerTisch] Switch_02_WZ disabled - going down ...

# Bei Sonnenuntergang schalte RandomTimer bis 23:50 Lampe im WZ
define ZufallsTimerTisch RandomTimer *{sunset_abs(-2600)} Switch_02_WZ 23:50:00 480
attr ZufallsTimerTisch disableCond (!isVerreist())

99_myUtils.pm
# RandomTimer mit Absend
sub isVerreist       () { return(YesNo("Auto_Alarm_Erdgeschoss"));}
#
#
#
sub YesNo ($) {

  my ($dummy) = @_;
  my $state = ReadingsVal($dummy, "state", "off");
  if ($state eq "off") {
    return 0;
  }
  return 1;
}
1;

Gruß Micha
banana pi - FHEM 5.8 - HMLAN, CUL V3 433Mhz & 868Mhz, HMUARTLGW, HM, Intertechno, Max! und Alexa
Raspberry - FHEM mit SqueezePlug & TTS (Küchenradio)

Offline Meesus

  • Jr. Member
  • **
  • Beiträge: 75
Antw:Anwesenheitssimulation
« Antwort #9 am: 11 November 2013, 22:39:04 »
Hat den keiner eine Idee dazu?
Dietmar, du auch nicht?
banana pi - FHEM 5.8 - HMLAN, CUL V3 433Mhz & 868Mhz, HMUARTLGW, HM, Intertechno, Max! und Alexa
Raspberry - FHEM mit SqueezePlug & TTS (Küchenradio)

Offline Dietmar63

  • Hero Member
  • *****
  • Beiträge: 2329
Antw:Anwesenheitssimulation
« Antwort #10 am: 11 November 2013, 22:50:01 »
nein, so eine Funktion ist nicht implementiert.

Du kannst doch sowieso nicht sicher sein, dass das zu schaltende Gerät nicht schon vorher abgeschaltet ist, bevor der RT sich beendet. Mit ca. 10% tiger Wahrscheinlichkeit ist das Gerät am Ende des Schaltzyklus eh ausgeschaltet.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Offline Meesus

  • Jr. Member
  • **
  • Beiträge: 75
Antw:Anwesenheitssimulation
« Antwort #11 am: 11 November 2013, 23:38:34 »
mhmm,

aber was ich dann nur nicht verstehe ist das er jedes mal, also zumindest wenn ich drauf achte, das Gerät abschaltet wenn der Random Timer abgeschaltet wird ???
Also aus meiner Sicht wird "Switch_02_WZ off" immer kurz vor dem "disabled" ausgeführt. Wenn man es nicht abschalten kann, würde mir schon ein negieren reichen, von "off" nach "on". Wäre das machbar?

2013.11.11 17:10:39 2: IT set Switch_02_WZ off
2013.11.11 17:10:40 3: [ZufallsTimerTisch] Switch_02_WZ disabled - going down ...
 

Gruß Micha
banana pi - FHEM 5.8 - HMLAN, CUL V3 433Mhz & 868Mhz, HMUARTLGW, HM, Intertechno, Max! und Alexa
Raspberry - FHEM mit SqueezePlug & TTS (Küchenradio)

Offline Meesus

  • Jr. Member
  • **
  • Beiträge: 75
Antw:Anwesenheitssimulation
« Antwort #12 am: 12 November 2013, 23:15:59 »
ok, ich hab´s selber hinbekommen.
Für alle die auch das Problem haben, so wie ich:

In der 98_RandomTimer.pm ab Zeile 181

if (RandomTimer_disable($hash)) {
     if (defined $hash->{ABSCHALTZEIT}) {
        $hash->{COMMAND} = "off";
        $hash->{STATE}   = "off";

die beiden Werte auf "on" setzen

Dann wird wie in meinem Fall, wenn ich nach Hause komme der RandomTimer zwar abgeschaltet, aber das Licht bleibt trotzdem an (wird zwar nochmal auf "on" geschaltet, aber egal)  was vorher durch present auch eingeschaltet wurde. 



2013.11.12 22:39:01 2: IT set Switch_03_K on
2013.11.12 22:42:01 2: IT set Switch_03_K off
2013.11.12 22:42:59 2: IT set Switch_03_K on
2013.11.12 22:45:57 2: IT set Switch_03_K on
2013.11.12 22:45:57 3: [ZufallsTimerTisch] Switch_03_K disabled - going down ...

Gruß Micha
banana pi - FHEM 5.8 - HMLAN, CUL V3 433Mhz & 868Mhz, HMUARTLGW, HM, Intertechno, Max! und Alexa
Raspberry - FHEM mit SqueezePlug & TTS (Küchenradio)