FHEM Forum

FHEM => Automatisierung => Thema gestartet von: raspklaus am 02 Dezember 2017, 17:22:50

Titel: Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 17:22:50
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
Titel: Antw:Fehler im notify ?
Beitrag 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
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 17:47:35
1. was heisst afaik
2. und wie bekomme ich es dann bei einem Neustart gebacken ?
Titel: Antw:Fehler im notify ?
Beitrag von: betateilchen am 02 Dezember 2017, 17:48:59
afaik = as far as I know
Titel: Antw:Fehler im notify ?
Beitrag von: betateilchen am 02 Dezember 2017, 17:50:02
Zitat von: raspklaus am 02 Dezember 2017, 17:22:50
Ich sehe aber keinen Fehler

ich schon... da sind zuviele geschweifte Klammern.
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 17:57:27
Sehe ich nicht, im Syntaxcheck sind alle ordnungsgemäss abgeschlossen
Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 02 Dezember 2017, 18:08:22
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

Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 18:12:58
Es funktioniert ja wie gewünscht aber nur überr die Commandline mit trigger und nicht bei einem Neustart von fhem
Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 02 Dezember 2017, 18:58:42
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
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 19:39:43
und wann wird dann das notify ausgeführt ?
Titel: Antw:Fehler im notify ?
Beitrag 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.
Titel: Antw:Fehler im notify ?
Beitrag von: CoolTux am 02 Dezember 2017, 19:54:42
list vom Notify bitte machen
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 02 Dezember 2017, 20:06:40
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
Titel: Antw:Fehler im notify ?
Beitrag von: Puschel74 am 02 Dezember 2017, 20:36:08
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.
Titel: Antw:Fehler im notify ?
Beitrag von: Benni am 02 Dezember 2017, 20:50:27
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 (http://commandref.fhem.de/commandref_DE.html#notify) ausreichen. Da steht doch alles was man braucht.  ::)

Und ich könnte mir auch vorstellen, dass hier ein at (http://commandref.fhem.de/commandref_DE.html#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! ;))

Titel: Antw:Fehler im notify ?
Beitrag von: marvin78 am 02 Dezember 2017, 21:09:09
Zitat
zuviele != falsch
(nur völlig überflüssig! ;))

Das kommt darauf an, wie man "falsch" definiert. Aus meiner Sicht ist es deshalb falsch, zu viele Klammern zu verwenden, weil man dann viel leichter die Übersicht verliert. Zudem ist es ein Zeichen dafür, dass das Verständnis für die Klammern fehlt, also liegt an der Stelle ein "Fehler" vor. Die Perspektive entscheidet hier ;)
Titel: Antw:Fehler im notify ?
Beitrag von: Benni am 02 Dezember 2017, 21:18:12
Zitat von: marvin78 am 02 Dezember 2017, 21:09:09
Die Perspektive entscheidet hier ;)

Na ja, die Perspektive ist hier doch eigentlich eindeutig vorgegeben: Die Frage war, was ist der Fehler, dass das notify nicht ausgeführt wird. Ursächlich dafür sind nicht die (zu) vielen Klammern. Ergo sind die hier auch nicht der Fehler.  8)
Ansonsten stimme ich deiner Aussage aber uneingeschränkt zu ;)!
Titel: Antw:Fehler im notify ?
Beitrag von: Puschel74 am 02 Dezember 2017, 21:23:04
Zitat von: Benni am 02 Dezember 2017, 20:50:27
Eigentlich sollte dafür die Lektüre der Commandref zu notify (http://commandref.fhem.de/commandref_DE.html#notify) ausreichen. Da steht doch alles was man braucht.  ::)
Tja, dazu müsste man ja die commandref mit der Browsersuche füttern.
Das Forum lässt sich aber per Forensuche - meiner Meinung nach - leichter nach "notify bei FHEM Start" durchsuchen.
Klar gibt es jede Menge Treffer die erstmal nichts mit der eigenen Frage zu tun haben aber lesen soll ja bilden  8)

Und jetzt kommt sicher der "Tipp" das man doch einfach nur den Code für das notify posten sollte da das ja viel effektiver wäre als auf irgendwelche Dokus oder Suchmöglichkeiten zu verweisen.
Titel: Antw:Fehler im notify ?
Beitrag von: betateilchen am 03 Dezember 2017, 00:08:56
Zitat von: marvin78 am 02 Dezember 2017, 21:09:09
Das kommt darauf an, wie man "falsch" definiert. Aus meiner Sicht ist es deshalb falsch, zu viele Klammern zu verwenden, weil man dann viel leichter die Übersicht verliert. Zudem ist es ein Zeichen dafür, dass das Verständnis für die Klammern fehlt, also liegt an der Stelle ein "Fehler" vor. Die Perspektive entscheidet hier ;)

In erster Linie entscheidet der Inhalt zwischen den geschweiften Klammern, ob das gewünschte Ergebnis rauskommt oder nicht. In diesem Fall war das jetzt unkritisch. Aber es gibt Situationen, in denen beispielsweise einfach "1" rauskommt anstatt einer gewünschten Aktion.

Insofern sind geschweifte Klammern an Stellen, wo sie nicht zwingend erforderlich sind, immer falsch.
Titel: Antw:Fehler im notify ?
Beitrag von: rudolfkoenig am 03 Dezember 2017, 12:44:37
Ich habe mal das o.g. Notify in FHEMWEB in der Detailansicht einer notify eingegeben, und habs versucht zu speichern.
Ich bekomme eine Fehlermeldung in einem Dialog:
ZitatBareword "Advent" not allowed while "strict subs" in use at (eval 18) line 4.
und kann nicht speichern. Da im Beispiel kein \ oder ;; zu sehen ist, gehe ich davon aus, dass es auch in einer Detailansich erstellt wurde. Ich frage mich, wie man dabei diese Fehlermeldung uebersehen kann.
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 03 Dezember 2017, 16:24:37
Advent ist der Wert den eine sub aus MyUtils erzeugt

Aber es funktioniert nun

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


Es war auch ein Sonderfall, denn der Neustart war nach einem Update.

und trotz dummer Bemerkungen, da ich die 20 Adventssteckdosen nicht das ganze Jahr mitschleifen will wird die entsprechende Config nur vor Weihnachten geladen
auch wenn diese Vorgehensweise den diversen Grössen hier nicht gefällt.

Der Hinweiss mit global:INITIALIZED hätte gereicht aber manche hier haben anscheinend keine anderen Ansprechpartner, deshalb schreiben sie dann ewig lang zum Thema RTFM
Es könnte natürlich auch sein, dass dies schon bereitgehaltene Textmodule sind, denn der Wortlaut bei diversen hier ist immer der Gleiche.

Es stellt sich allerdings noch die Frage ob ich die RegEx nicht einfach kombinieren kann

global:INITIALIZED or Advent==1
{
  fhem("set Xmas on");
  fhem("include ./weihnachten.cfg");
return;
}
Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 04 Dezember 2017, 11:08:34
Siehe Antwort 1:

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

Zum Thema kombinieren: Beispiele gibts in der commandref.
Wenn du ein konkretes Problem hast, melde dich einfach nochmal.

Grüße,
Stephan
Titel: Antw:Fehler im notify ?
Beitrag von: dev0 am 04 Dezember 2017, 12:06:51
Zitat von: raspklaus am 03 Dezember 2017, 16:24:37
Advent ist der Wert den eine sub aus MyUtils erzeugt

Aber es funktioniert nun

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

Um lernwillige Anwender, die das Forum als Wissensquelle nutzen, nicht in die rirre zu führen: in dem gezeigten Code sind mindestens drei Fehler, die FHEM auch anmeckern würde, wenn man versuchen würde das so zu speichern. Besser den Beitrag ignorieren, da das einfach nur Mist ist, auch wenn der TE behauptet, dass das funktionieren würde.

Zitat von: raspklaus am 03 Dezember 2017, 16:24:37
Der Hinweiss mit global:INITIALIZED hätte gereicht aber manche hier haben anscheinend keine anderen Ansprechpartner, deshalb schreiben sie dann ewig lang zum Thema RTFM
Es könnte natürlich auch sein, dass dies schon bereitgehaltene Textmodule sind, denn der Wortlaut bei diversen hier ist immer der Gleiche.
Besser als Textbausteine zu posten (gute Idee!) wäre vermutlich ein Bot, der passende Links raussucht: https://www.youtube.com/watch?v=tuBUwlnxQNU
So wäre auch bei Beiträgen dieser Art ein gewisser Unterhaltungswert gewährleistet.
Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 04 Dezember 2017, 12:41:40
Zitatmindestens drei Fehler, die FHEM auch anmeckern würde

Das musste ich jetzt ausprobieren ;D
Titel: Antw:Fehler im notify ?
Beitrag von: nils_ am 04 Dezember 2017, 13:44:27
auf den code will ich gar nicht eingehen.

aaaaaaber:
Zitat von: raspklaus am 03 Dezember 2017, 16:24:37
da ich die 20 Adventssteckdosen nicht das ganze Jahr mitschleifen will wird die entsprechende Config nur vor Weihnachten geladen
warum? was ist an den steckdosen so schlimm?
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 04 Dezember 2017, 15:30:38
Zitat von: dev0 am 04 Dezember 2017, 12:06:51
Um lernwillige Anwender, die das Forum als Wissensquelle nutzen, nicht in die rirre zu führen: in dem gezeigten Code sind mindestens drei Fehler, die FHEM auch anmeckern würde, wenn man versuchen würde das so zu speichern. Besser den Beitrag ignorieren, da das einfach nur Mist ist, auch wenn der TE behauptet, dass das funktionieren würde.

Das mit den Fehlern ist richtig

allerdings nur wenn man nicht die entsprechende myUtils und die passenden Dummys hat  :P
Titel: Antw:Fehler im notify ?
Beitrag von: Benni am 04 Dezember 2017, 15:32:26
Zitat von: raspklaus am 03 Dezember 2017, 16:24:37
Es stellt sich allerdings noch die Frage ob ich die RegEx nicht einfach kombinieren kann

Ganz schön frech! Erst die Helfer beschimpfen und dann nach mehr Hilfe fragen!  >:(

Und zu deiner (Zusatz-)Frage hier nochmal der Verweis auf die Commandref zu notify (http://commandref.fhem.de/commandref_DE.html#notify), da du das entweder noch nicht gelesen hast und/oder einfach noch nicht verstanden hast

Zitat von: raspklaus am 04 Dezember 2017, 15:30:38
allerdings nur wenn man nicht die entsprechende myUtils und die passenden Dummys hat  :P

Und das war jetzt sogar unverschämt (v.a. der Smiley)!

*und weg*

Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 04 Dezember 2017, 15:37:26
Zitat von: raspklaus am 04 Dezember 2017, 15:30:38
allerdings nur wenn man nicht die entsprechende myUtils und die passenden Dummys hat

Aus reinem wissenschaftlichem Interesse würde mich interessieren, welche Dummys das sind und was in der myUtils steht ...

Grüße,
Stephan
Titel: Antw:Fehler im notify ?
Beitrag von: raspklaus am 04 Dezember 2017, 16:00:45
wie steht es weiter oben mindestens 20mal:

lesen!!!!!!!!!!!!!!!!!!!!!!!!!

Hier steht es

https://forum.fhem.de/index.php/topic,42209.0.html (https://forum.fhem.de/index.php/topic,42209.0.html)

Der Threat stammt von einem Mitglied dieses Forums mit dem man hervorragend zusammenarbeiten konnte :)
Titel: Antw:Fehler im notify ?
Beitrag von: abc2006 am 04 Dezember 2017, 16:09:57
Danke, wieder was gelernt :-)

Grüße,
Stephan