Hallo,
ich versuche eine Abwesenheitssimulation mit fhem einzurichten. Sie soll während eines Zeitraumes von Sonnenuntergang bis 5 Stunden danach immer wieder die Lampe im Vorratsraum zufällig immer wieder ein- und ausschalten. Leider wird nur zu Beginn eingeschaltet und nur am Ende wieder ausgeschaltet! In der fhem.cfg habe ich dafür folgendes eingetragen:
attr global latitude 50.9734
attr global longitude 6.7984
define Vorratsraum_Licht MQTT_DEVICE
attr Vorratsraum_Licht IODev myBroker
attr Vorratsraum_Licht devStateIcon ON:on OFF:off
attr Vorratsraum_Licht publishSet ON OFF cmnd/Vorratsraum_Licht/POWER
attr Vorratsraum_Licht stateFormat transmission-state
attr Vorratsraum_Licht subscribeReading_power stat/Vorratsraum_Licht/POWER
attr Vorratsraum_Licht subscribeReading_state tele/Vorratsraum_Licht/TELEMETRY
attr Vorratsraum_Licht webCmd ON:OFF
define Zufall_Vorratsraum RandomTimer *{sunset_abs()} Vorratsraum_Licht *{sunset_abs(5*3600)} 600
attr Zufall_Vorratsraum switchmode 800/200
Leider finde ich den Fehler nicht!
Ich bitte um Hilfe.
Gruß
Martin
			
			
			
				Versteht dein MQTT device "ON" und "OFF" oder "on" und "off" ?
			
			
			
				Am Besten ein "list" deines Devices posten und code tags (das # oben im Editor über den Smilies) verwenden, dann sieht man mehr...
			
			
			
				Hallo,
Vielen Dank für die Antworten.
Anbei die Ausgabe:
Internals: 
   IODev      myBroker 
   NAME       Vorratsraum_Licht 
   NR         34 
   STATE      incoming publish received 
   TYPE       MQTT_DEVICE 
   READINGS: 
     2018-02-05 16:49:14   power           ON 
     2018-02-05 16:49:14   state           on 
     2018-02-05 16:49:14   transmission-state incoming publish received 
   message_ids: 
   publishSets: 
     : 
       topic      cmnd/Vorratsraum_Licht/POWER 
       values: 
         ON 
         OFF 
   sets: 
     OFF 
     ON 
   subscribe: 
     stat/Vorratsraum_Licht/POWER 
     tele/Vorratsraum_Licht/TELEMETRY 
   subscribeExpr: 
     ^stat\/Vorratsraum_Licht\/POWER$ 
     ^tele\/Vorratsraum_Licht\/TELEMETRY$ 
   subscribeReadings: 
     stat/Vorratsraum_Licht/POWER: 
       cmd 
       name       power 
     tele/Vorratsraum_Licht/TELEMETRY: 
       cmd 
       name       state 
Attributes: 
   IODev      myBroker 
   devStateIcon ON:on OFF:off 
   publishSet ON OFF cmnd/Vorratsraum_Licht/POWER 
   stateFormat transmission-state 
   subscribeReading_power stat/Vorratsraum_Licht/POWER 
   subscribeReading_state tele/Vorratsraum_Licht/TELEMETRY 
   webCmd     on:off 
Das manuelle Ein- und Ausschalten funktioniert. Auch das Ein- und Ausschalten am Anfang und Ende des Abwesenheitszeitraumes klappt. Nur das Ein- und Ausschalten zwischen dem Abwesenheitszeitraumes erfolgt nicht.
Was fhem als Steuerung  raus gibt kann man doch im Event Monitor verfolgen. Hier erfolgt zwischendurch leider auch keine Steuerung!
			
			
			
				Nachtrag
Internals: 
   COMMAND    on 
   DEF        *{sunset_abs()} Vorratsraum_Licht *{sunset_abs(5*3600)} 600 
   DEVICE     Vorratsraum_Licht 
   NAME       Zufall_Vorratsraum 
   NR         41 
   STATE      on 
   TYPE       RandomTimer 
   READINGS: 
     2018-02-05 00:10:30   Startzeit       2018-02-05 18:05:22 
     2018-02-05 00:10:30   Stoppzeit       2018-02-05 23:05:22 
     2018-01-30 20:27:24   TimeToSwitch    600 
     2018-02-05 18:15:49   active          1 
     2018-02-05 20:54:54   state           on 
   TIMER: 
     Zufall_Vorratsraum_Exec: 
       HASH       Zufall_Vorratsraum 
       MODIFIER   Exec 
       NAME       Zufall_Vorratsraum_Exec 
     Zufall_Vorratsraum_SetTimer: 
       HASH       Zufall_Vorratsraum 
       MODIFIER   SetTimer 
       NAME       Zufall_Vorratsraum_SetTimer 
   helper: 
     REL 
     REP        * 
     SIGMAWHENOFF 800 
     SIGMAWHENON 200 
     STARTTIME  05.02.2018  18:05:22 
     STOPTIME   05.02.2018  23:05:22 
     SWITCHMODE 800/200 
     S_REL 
     S_REP      * 
     TIMESPEC_START *{sunset_abs()} 
     TIMESPEC_STOP *{sunset_abs(5*3600)} 
     TIMETOSWITCH 600 
     active     1 
     startTime  1517850322 
     stopTime   1517868322 
Attributes: 
   switchmode 800/200 
			
			
			
				Anscheinend hast Du definiert, dass dein MQTT Device die Kommandos "set xxx ON" und "set xxx OFF" verstehen muss. Und nicht "set xxx on" und "set xxx off".
Dann musst Du beim RandomTimer die attr oncmd und offcmd entsprechend setzen. Siehe CommandRef.
			
			
			
				Ich habe es jetzt wohl verstanden wo das Problem liegt. Nämlich an der Prüfung ob die Lampe an oder aus ist. Die Lampe wird über einen SonOff angesteuert. Dieser gibt den Status aber in Großbuchstaben (ON OFF) aus. Das RandomTimer Modul erwartet aber den Status in Kleinbuchstaben!
Alle Versuche dies mit webcmd oder stateFormat anzupassen brachten keine Lösung. Evtl. habe ich aber auch die falschen Parmeter verwendet. 
Als Anfänger konnte ich die Beispiele nicht rictig umsetzen und brauche Hilfe!
			
			
			
				Zitat von: amenomade am 06 Februar 2018, 19:48:14
Dann musst Du beim RandomTimer die attr oncmd und offcmd entsprechend setzen. Siehe CommandRef.
			 
			
			
				Habe zum Glück das Problem gefunden.
Ich konnte leider die gegeben Hinweise mangels Wissen nicht richtig umsetzen.
Nach Eingabe von attr Vorratsraum_Licht stateFormat {(ReadingsVal("Vorratsraum_Licht","state","nF") =~ m/(ON|on)/i)  ? "on" : "off" }
klappt es jetzt!
			
			
			
				Bitte Themen nicht schliessen, sondern das Subject des ersten Posts ändenr und [Gelöst] davor schreiben. Das gibt anderen die Möglichkeit Folgefragen zu stellen.