[Gelöst] nicht funktionierende Abwesenheitssimulation

Begonnen von martin99, 04 Februar 2018, 15:40:45

Vorheriges Thema - Nächstes Thema

martin99

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

amenomade

Versteht dein MQTT device "ON" und "OFF" oder "on" und "off" ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KernSani

Am Besten ein "list" deines Devices posten und code tags (das # oben im Editor über den Smilies) verwenden, dann sieht man mehr...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

martin99

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!

martin99

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

amenomade

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.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

martin99

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!

amenomade

Zitat von: amenomade am 06 Februar 2018, 19:48:14
Dann musst Du beim RandomTimer die attr oncmd und offcmd entsprechend setzen. Siehe CommandRef.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

martin99

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!

KernSani

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.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...