Fehler im notify ?

Begonnen von raspklaus, 02 Dezember 2017, 17:22:50

Vorheriges Thema - Nächstes Thema

raspklaus

Hallo zusammen,

ich habe folgendes Notify aktiv:

xmascheck {
fhem("set Xmas off");
{Log 1, "Adventszeit inaktiv"}
if (Advent==1)
{
  {Log 1, "Adventszeit aktiv"}
  fhem("set Xmas on");
  fhem("include ./weihnachten.cfg");
}
return;
}


Bei einem Neustart wird es nicht ausgeführt aber ein trigger erzeugt das gewünschte Ergebnis im laufenden Betrieb

Ich sehe aber keinen Fehler

abc2006

bei einem neustart wird das Event global:INITIALIZED erzeugt.. und afaik nicht "xmascheck" ...

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

raspklaus

1. was heisst afaik
2. und wie bekomme ich es dann bei einem Neustart gebacken ?

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: raspklaus am 02 Dezember 2017, 17:22:50
Ich sehe aber keinen Fehler

ich schon... da sind zuviele geschweifte Klammern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

raspklaus

Sehe ich nicht, im Syntaxcheck sind alle ordnungsgemäss abgeschlossen

abc2006

zuviele != nicht abgeschlossen :

Zitatxmascheck {
fhem("set Xmas off");
{Log 1, "Adventszeit inaktiv"}
  ## geschweifte Klammern sind zuviel.
if (Advent==1)
{

  {Log 1, "Adventszeit aktiv"}
  ## geschweifte Klammern sind zuviel.
  fhem("set Xmas on");
  fhem("include ./weihnachten.cfg");
}
return;
}

Mit der ersten, öffnenden geschweiften Klammer bist du in Perl und kannst Perl-Befehle einfach so absetzen.
Mir stellt sich auch die Frage, ob du hier mit dem wechsel auf Perl gut beraten bist, da sich das auch direkt in FHEM lösen lässt...
aber da es funktioniert, ist diese Frage eher rhetorisch.

Dein Problem wird dieses aber nicht lösen...

Grüße,
Stephan

FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

raspklaus

Es funktioniert ja wie gewünscht aber nur überr die Commandline mit trigger und nicht bei einem Neustart von fhem

abc2006

Dazu muss ich mich wiederholen:

Zitat von: abc2006 am 02 Dezember 2017, 17:35:29
bei einem neustart wird das Event global:INITIALIZED erzeugt.. und afaik nicht "xmascheck" ...

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

raspklaus

und wann wird dann das notify ausgeführt ?

abc2006

immer, wenn das Device "xmascheck" ein Event erzeugt. Doch weil du keine Syntax für das Reading angegeben hast, wahrscheinlich gar nicht.
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

CoolTux

list vom Notify bitte machen
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

raspklaus

Hier das list

Internals:
   DEF        xmascheck {
fhem("set Xmas off");
{Log 1, "Adventszeit inaktiv"}
if (Advent==1)
{
  {Log 1, "Adventszeit aktiv"}
  fhem("set Xmas on");
  fhem("include ./weihnachten.cfg");
}
return;
}
   NAME       xmascheck
   NOTIFYDEV  xmascheck
   NR         2738
   NTFY_ORDER 50-xmascheck
   REGEXP     xmascheck
   STATE      2017-12-02 15:57:30
   TYPE       notify
   READINGS:
     2017-12-02 12:33:33   state           active
Attributes:
   devStateIcon disabled:kreisrot
   disable    0
   room       Weihnacht
   verbose    5

Puschel74

#13
Auch das list ändert nichts daran das abc2006 recht hat.
Zitat von: abc2006 am 02 Dezember 2017, 17:35:29
bei einem neustart wird das Event global:INITIALIZED erzeugt.. und afaik nicht "xmascheck" ...

Grüße,
Stephan
Das notify wird schlicht und einfach nur getriggert wenn xmascheck per trigger aufgerufen wird da es keine Readings besitzt die sich ändern könnten/würden.

Zitat von: abc2006 am 02 Dezember 2017, 19:41:54
immer, wenn das Device "xmascheck" ein Event erzeugt. Doch weil du keine Syntax für das Reading angegeben hast, wahrscheinlich gar nicht.
Wenn das Device xmascheck Readings besitzen würde die sich aktualisieren dann würde das notify immer bei einer Aktualisierung der Readings ausgeführt werden.
Da es das nicht hat wird es nur per trigger xmascheck ausgelöst.
Das hat mit einem Syntax für Reading erstmal nichts zu tun.
Sowas kann gewollt sein wenn ein notify bei
- jeder Änderung eines Readings oder
- als Makro per trigger
ausgeführt werden soll.

ZitatBei einem Neustart wird es nicht ausgeführt aber ein trigger erzeugt das gewünschte Ergebnis im laufenden Betrieb
global:INITIALIZED war schon der richtige Hinweis wenn das notify bei einem (re)start von FHEM ausgeführt werden soll.
Warum das aber nur bei einem Start von FHEM ausgeführt werden soll muss schon raspklaus selber wissen.

Edith: Und wie das notify umgestellt werden muss um bei jedem Start von FHEM ausgelöst zu werden bin ich jetzt zu bequem zu suchen - mit dem Hinweis auf global:INITIALIZED sollte sich das aber leicht per SuFu rausfinden lassen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Benni

#14
Zitat von: Puschel74 am 02 Dezember 2017, 20:36:08
mit dem Hinweis auf global:INITIALIZED sollte sich das aber leicht per SuFu rausfinden lassen.

Eigentlich sollte dafür die Lektüre der Commandref zu notify ausreichen. Da steht doch alles was man braucht.  ::)

Und ich könnte mir auch vorstellen, dass hier ein at, das einmal täglich (kurz nach Mitternacht) ausgeführt wird, sinnvoller ist, als ein notify. Es sei denn, das System wird sowieso einmal täglich neu gestartet. Aber macht denn sowas und warum?

Apropos, "wer macht denn sowas":
Zitat
fhem("include ./weihnachten.cfg");
*grusel*


Zitat von: betateilchen am 02 Dezember 2017, 17:50:02
ich schon... da sind zuviele geschweifte Klammern.
zuviele != falsch
(nur völlig überflüssig! ;))