FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Byllyy am 09 Februar 2020, 14:56:12

Titel: (Gelöst) Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 09 Februar 2020, 14:56:12
Ich versuche mich an einem notify das zeitverzögert nach hochfahren von Fhem ein Event auslöst.

Mein Notify global:INITIALIZED:.* sleep 30;;set ROut6_StartINIT on    ---  bei mir wird hier sofort ohne "sleep" geschaltet.

Ich habe versucht durch Foreneinträge und die Commdref weiter zu kommen aber bisher ohne Erfolg. Es gibt leider auch unterschiedliche Beispiele die mal mit ; und mal mit;; laufen sollen.

Hat hier Jemand einen Tipp für mich?
Danke und LG,
Byllyy
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Otto123 am 09 Februar 2020, 15:12:07
Hi,

wenn das die DEF ist, dann nur eins ;

Also in der FHEM  Kommandozeile und/oder im Raw Definition Editor
define willi notify global:INITIALIZED:.* sleep 30;;set ROut6_StartINIT on
Sieht im DEF editor so aus:
global:INITIALIZED:.* sleep 30;set ROut6_StartINIT on

In Deiner Variante werde beide Befehle quasi parallel ausgeführt.

Gruß Otto
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 09 Februar 2020, 15:35:40
Hallo Otto,
danke für deine schnelle Antwort.

Wenn ich global:INITIALIZED:.* sleep 30;set ROut6_StartINIT on definiere, wird leider trotzdem sofort ausgelöst.

Die Zeit ist doch in Sekunden? Oder ist das Problem vielleicht das "global:INITIALIZED", ich meine damit, das "sleep" nicht so früh ausgeführt werden kann?

Gruß,
Byllyy
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Otto123 am 09 Februar 2020, 16:43:02
Bei mir funktioniert das  :D

kannst Du bitte list vom Gerät liefern?

Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 09 Februar 2020, 16:57:13
Na klar, gerne

List von ROut6_StartINIT: Internals:
   DEF        6
   FUUID      5e21cc06-f33f-bc18-3ea5-df72bfbe43e9bfbb
   GPIO_Basedir /sys/class/gpio
   GPIO_Nr    6
   NAME       ROut6_StartINIT
   NR         82
   STATE      on
   TYPE       RPI_GPIO
   WiringPi_gpio /usr/bin/gpio
   READINGS:
     2020-02-09 16:52:56   Pinlevel        high
     2020-02-09 15:29:11   state           on
   fhem:
     interfaces switch
Attributes:
   active_low yes
   direction  output
   room       GPIOOut


List von "global": Internals:
   DEF        no definition
   FD         3
   NAME       global
   NR         1
   STATE      no definition
   TYPE       Global
   currentlogfile ./log/fhem-2020-02.log
   logfile    ./log/fhem-%Y-%m.log
Attributes:
   autoload_undefined_devices 1
   autosave   0
   configfile fhem.cfg
   latitude   51.3765096
   logfile    ./log/fhem-%Y-%m.log
   longitude  7.6960842
   modpath    .
   motd       1
   statefile  ./log/fhem.save
   userattr   alexaName alexaRoom cmdIcon devStateIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,scene homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride
   verbose    3
   version    fhem.pl:21056/2020-01-26


List von notify StartINIT: Internals:
   DEF        global:INITIALIZED:.* sleep 60;set ROut6_StartINIT on
   FUUID      5e22e199-f33f-bc18-ac1a-c65f9b99f96ec57a
   NAME       StartINIT
   NOTIFYDEV  global
   NR         84
   NTFY_ORDER 50-StartINIT
   REGEXP     global:INITIALIZED:.*
   STATE      active
   TYPE       notify
   READINGS:
     2020-02-09 15:29:09   state           active
Attributes:
   comment    Erst nach booten von Fhem werden Relais von Arduino mit Strom versorgt
   verbose    0


Danke
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Otto123 am 09 Februar 2020, 17:24:03
Mir fällt noch auf, der Trigger sollte nur global:INITIALIZED sein. Aber das ist sicher egal sicher ein Problem: der Doppelpunkt hinter INITIALIZED.

Du hattest save gemacht nach der Änderung? :D Denn dein notify wurde noch nie getriggert?

Du solltest Deine Position aus dem posting von global rauslöschen, das ist sozusagen privat :)
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 09 Februar 2020, 19:37:37
Hallo Otto,

das werde ich mal testen und probieren. Komme aber erst morgen dazu, bei uns hat es gerade einen Dachziegel vom Haus geweht.

Danke und noch einen schönen Abend,
Byllyy
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 10 Februar 2020, 10:16:30
Nachdem ich heute noch einmal alles neu definiert habe, scheine ich den Grund für das Verhalten gefunden zu haben.

Der im Notify zu schaltende Ausgang "ROut6_StartINIT" schaltet, sogar ohne Notify, nach dem Start von Fhem immer in seinen letzten Zustand.
Ich dachte nach Neustart von Fhem ginge dies nur mit Attributen wie "restoreOnStartup" aber hier macht der Ausgang das immer.

Habe ich da noch etwas übersehen?

LG,
Byllyy
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Otto123 am 10 Februar 2020, 10:24:39
Moin,

naja es ist ein definierter GPIO Ausgang. Wenn Du Dir die Raw Definition ansiehst, stehen dort setstate Befehle drin.
Es ist normales Verhalten von FHEM, den alten Zustand vorm Neustart in den Readings wieder her zu stellen. Ich nehme an, das Modul steuert die Pins auch entsprechend des state an.
Also: FHEM stellt alten Zustand her, das Modul RPI_GPIO setzt das Pin.

Aber ich verwende das Modul nicht, ich kann das nicht nachvollziehen. Aber es steht ja auch so in der Doku:
ZitatrestoreOnStartup
Restore Readings and sets after reboot
Default: last

Gruß Otto
Titel: Antw:Notify mit Zeitverzögerung (Sleep)
Beitrag von: Byllyy am 10 Februar 2020, 10:39:55
Moin Otto,

alles klar, das erklärt das Verhalten.
Nachdem ich jetzt "restoreOnStartup = off" gesetzt habe und das Notify wieder richtig gesetzt habe, läuft alles wie gewollt.

Lieber Otto, vielen Dank für deine Unterstützung.
Bis dahin und LG,
Byllyy