FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Virsacer am 11 Juli 2015, 19:27:22

Titel: Einmalige Aktion nach jedem fhemstart
Beitrag von: Virsacer am 11 Juli 2015, 19:27:22
Hi,

ich möchte gerne kurz nach dem Start eine Aktion ausführen.

Im Moment hab ich nur die Idee, mit DOIF im Sysmon zu schauen, ob "fhemuptime" unter einem bestimmten Wert liegt...
Finde das aber etwas unpraktisch, weil dann ja dauerhaft Events kommen :-\

Hat da jemand ne bessere Idee?
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: herrmannj am 11 Juli 2015, 19:32:18
Hi,

es gibt ein event "initialized" vom device "global". Genau Dein Ding :)

vg
joerg
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Virsacer am 11 Juli 2015, 19:39:11
Ui, das klingt schon mal perfekt :D
Mal schauen, ob das wirklich so funktuioniert, wie ich es brauche...

Dankeschön :)
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Rince am 11 Juli 2015, 19:42:48
Hier ein Notify dazu:

global:INITIALIZED set cubie_SB_PLAYER sayText Mein Herr und Meister, ich stehe zu deinen Diensten!
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Virsacer am 11 Juli 2015, 20:01:13
Ich bin DOIF-Fan :D

define ActionInit DOIF ([global:?INITIALIZED])(set Speech tts My Master I'm at your service)

Funktioniert perfekt 8)
Danke!
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Zrrronggg! am 13 Juli 2015, 00:38:37
Zitat von: Virsacer am 11 Juli 2015, 20:01:13
Ich bin DOIF-Fan :D

define ActionInit DOIF ([global:?INITIALIZED])(set Speech tts My Master I'm at your service)

Funktioniert perfekt 8)
Danke!

Nur rein interessehalber: Warum machst du das so?  Ist das nicht ein unnötiger Schritt mehr?

Ich fahre z.b. auch nicht am Sonntag auf Arbeit um dann dort erleichtert festzustellen, das Sonntag ist und dann fahr ich wieder nach Hause. Nein, wenn Sonntag ist fahr ich gar nicht erst hin.

Du benutzt - so will mir scheinen - nicht global:INITIALIZED um ein Set auszuführen, sondern nutzt die Existenz von global:INITIALIZED um ein DOIF zu triggern, dass dann das Set ausführt.
Ein Schritt mehr.

Warum?

(und sag nicht dass das daran liegt, das du DOIF Fan bist, denn sonst schlage ich dir vor folgendes zu machen:

Zitatdefine ActionInit DOIF ([global:?INITIALIZED])(set action1 on)
define ActionInit2 DOIF ([action1:?on])(set action2 on)
define ActionInit3 DOIF ([action2:?on])(set action3 on)
define ActionInit4 DOIF ([action3:?on])(set Speech tts My Master I'm at your service)

Da hast du noch VIEL MEHR DOIF!   ;D  )

Bestimmt übersehe ich was - aber was?
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Rince am 13 Juli 2015, 14:20:11
ZitatZitat

    define ActionInit DOIF ([global:?INITIALIZED])(set action1 on)
    define ActionInit2 DOIF ([action1:?on])(set action2 on)
    define ActionInit3 DOIF ([action2:?on])(set action3 on)
    define ActionInit4 DOIF ([action3:?on])(set Speech tts My Master I'm at your service)


Da hast du noch VIEL MEHR DOIF!   ;D  )

Bestimmt übersehe ich was - aber was?

Ähm,
bin nicht Virsacer.

Ich stimme dir mit dem DOIF zu. Deine DOIF Kette hat aber durchaus einen gewissen Reiz!


Besipiel:

Doof (Pseudocode):
define Temperaturansage at *07:00 set Speech tts Die Temperatur draußen beträgt $aussentemperatur Grad

Warum doof?
Weil er damit nicht um 18.30 die Temperatur erfährt. Schlauer wäre hier sicherlich, die Ansage mit einem Dummy zu verbinden, den man dann von verschiedenen Ereignissen aus schalten kann. Wenn einem die Ansage nicht mehr gefällt, ändert man sie einmalig und alles ist wieder gut.

Freilich könnte man es triggern, aber warum man bei einem Druck auf einen Taster ein at 07:00 triggern sollte, wird sich niemandem mehr erschließen, der jemals diese Installation ansieht...

Statt dessen einem Dummy einen Wert zuzuweisen, das macht irgendwie mehr Sinn :)
Titel: Antw:Einmalige Aktion nach jedem fhemstart
Beitrag von: Virsacer am 13 Juli 2015, 18:19:10
Ja, das DOIF mag in dem Fall ein Schritt mehr sein, aber ich will ja auch nicht nur ein SET ausführen ;)
Und evtl. nochmal das gleiche unter anderen Bedingungen ausführen -> also DOIF

Das war auch nur mal ein schneller Test (in Anlehnung an das Notify), obs läuft...
Die DOIF-Kette ist aber auch witzig ;D