DO ALWAYS ist seit gestern nicht mehr "always"

Begonnen von Manos, 23 März 2020, 17:41:30

Vorheriges Thema - Nächstes Thema

Manos


Vielleicht ist es Zufall aber ich habe gestern ein Update von FHEM gemacht weil der Indicator hat mich über die Verfügbarkeit von Updates informiert.

Seitdem habe ich Probleme mit mein DOIF.

sogar ein ganz einfacher DOIF funktioniert richtig!
nur beim ersten Mal oder bei set outside_lights_DOIF checkall, danach nicht mehr.
Obwohl do always gesetzt ist.

Ist irgendetwas mit dem DO ALWAYS passiert, oder mache ich irgendwo einen Anfängerfehler?

Die Information von meinen Bewegungsmeldern (Philips HUE und IKEA Tradfri, beide mit ConBee2 angeschlossen) kommen korrekt an, werden auch in FHEM angezeigt.
Nur der DOIF schaltet die Shelly nicht an  >:(


Internals:
   DEF        (
((ReadingsVal("Philips1Motion","state","") eq "motion")
or
(ReadingsVal("TrafdriMotion_01","state","") eq "motion"))
)
(set Shelly1PM_765FC5 on-for-timer 30,
set deCONZ_HUEDevice5 on-for-timer 30)


   FUUID      5e5ee3a2-f33f-6a06-b5b0-7d3cf68e16af5e97
   FVERSION   98_DOIF.pm:0.212240/2020-02-18
   MODEL      FHEM
   NAME       outside_lights_DOIF
   NOTIFYDEV  global
   NR         128
   NTFY_ORDER 50-outside_lights_DOIF
   STATE      cmd_1
   TYPE       DOIF
   VERSION    21224 2020-02-18 18:45:49
   READINGS:
     2020-03-23 17:26:35   cmd             1
     2020-03-23 17:26:35   cmd_event       outside_lights_DOIF
     2020-03-23 17:26:35   cmd_nr          1
     2020-03-23 15:00:48   mode            enabled
     2020-03-23 17:26:35   state           cmd_1
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0           ((ReadingsVal("Philips1Motion","state","") eq "motion") or (ReadingsVal("TrafdriMotion_01","state","") eq "motion"))
   do:
     0:
       0          set Shelly1PM_765FC5 on-for-timer 30,   set deCONZ_HUEDevice5 on-for-timer 30
     1:
   helper:
     DEVFILTER  ^global$
     NOTIFYDEV  global
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventa:
       cmd_nr: 1
       cmd: 1
       cmd_event: outside_lights_DOIF
       cmd_1
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: outside_lights_DOIF
       state: cmd_1
   perlblock:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Outside_Perimeter
(set Shelly1PM_765FC5 on-for-timer 30,
set deCONZ_HUEDevice5 on-for-timer 30)


HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

CoolTux

Du solltest Deinen Thread besser nach Automatisierung -> DOIF verschieben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

KernSani

Da hat cooltux recht. Verschieben Button findest du ganz unten links.
Ich frage mich allerdings:
A) Was für einen ,,Indicator" zeigt dir updates an? FHEM Updates gibt es ja eigentlich täglich...
B) Hat das DOIF wirklich mal funktioniert? Bei DOIF brauche ich doch eigentlich kein ReadingsVal... triggert das überhaupt?


Gesendet von iPhone mit Tapatalk
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Damian

Ein DOIF muss einen Trigger haben (Angaben in eckigen Klammern). Deine DOIF-Defintion hat keinen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Manos

Zitat von: Damian am 23 März 2020, 18:27:20
Ein DOIF muss einen Trigger haben (Angaben in eckigen Klammern). Deine DOIF-Defintion hat keinen.

vielen Dank, das war es!

Grund war das die ursprüngliche Version bereits einen Trigger mit eckigen Klammern hatte:


(
([Ring_FrontDoor] eq "motion")
and ([17:00-23:59] or [00:00-07:00])
and ReadingsNum("Philips1Lumin","lux",0) < 70
)
(set Shelly1PM_765FC5 on-for-timer 90, set deCONZ_HUEDevice5 blink 4 1)


und ich habe die ganze Zeit versucht eine Lösung für das nicht funktionierende ReadingsNum("Philips1Lumin","lux",0) < 70 

Jetzt habe ich verstanden, dass es es viel einfacher geht: [Philips1Lumin:lux] < 100  :)



HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Manos


Ich habe noch eine Verständnis Frage:

Dass, was mich die ganze Zeit auf die falsche fährte gelockt hat war die Tatasache das checkall ("set outside_lights_DOIF checkall") das DOIF korrekt interpretiert hat und mir die korrekt Antwort gegeben hat  (cmd_1) sowie die Lichte korrekt eingeschaltet hat (siehe Bild).

daher bin ich immer davon ausgegangen, dass das DOIF korrekt ist.

Mache ich ein Denkfehler irgendwo? Hätte nicht das "set outside_lights_DOIF checkall" die Lichte aus lassen sollen?
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Damian

Mit set ... checkall werden die Bedingungen auf Wahrheit geprüft und ggf. Anweisungen ausgeführt (siehe Commandref), den Trigger hast du dann selbst gespielt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF