FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bicmac am 06 Mai 2020, 15:36:46

Titel: im Notify Variablen zuweisen
Beitrag von: bicmac am 06 Mai 2020, 15:36:46
Hi,
ich versuche in einem Notify folgendes:

my $TIMERON="$year-$month-$mday".AttrVal("STEUERUNG","TIMER-ON","09:00");

Das geht aber irgendwie nicht. Ziel ist es die Variable TIMERON zum Beispiel den Wert
"2020-05-06 08:00" enthält. die Uhrzeit am Ende steht in einem Device Attribut was ich versuche dem aktuellem Datum hinzuzufügen.
Dachte mit . geht das. Bin leide rnicht der wirkliche Perl Mensch :-(
Titel: Antw:im Notify Variablen zuweisen
Beitrag von: Beta-User am 06 Mai 2020, 15:41:21
Wie wäre es, wenn du ein vollständiges list von dem notify liefern würdest?

So sagt die Glaskugel, dass vermutlich nur der "Hinweis an AnalyzeCommand()" fehlt, dass es sich um Perl handeln soll (die Klammern "{"& "}")....
Titel: Antw:im Notify Variablen zuweisen
Beitrag von: bicmac am 06 Mai 2020, 16:02:51
die DEF sieht momentan nur so aus:


STEUERUNG {

  my $TIMERON="$year-$month-$mday " . AttrVal("STEUERUNG","TIMER_ON","09:00");
  my $TIMEROFF="$year-$month-$mday " . AttrVal("STEUERUNG","TIMER_OFF","22:00");
 
  if ((time() >= time_str2num($TIMERON)) && (time() < time_str2num($TIMEROFF))
  {
  $pump_action = "on";
  }
}
Titel: Antw:im Notify Variablen zuweisen
Beitrag von: Beta-User am 06 Mai 2020, 16:08:06
Das ist zum einen kein list, zum anderen kommt mir der Trigger "komisch" vor, und vor allem anderen "macht" das notify am Ende nichts. Was erwartest du, wenn du keine Anweisung an FHEM am Ende stehen hast?

Tipp: Du scheinst irgendwas vorzuhaben, was nicht ein "Einzeiler" ist. Würde das nach myUtils auslagern, da kannst du ggf. auch leichter loggen, und brauchst insgesamt nicht die "escape"-Syntax, die man innerhalb der reinen notify-Lösung sonst verwenden muß.

Lesetipps im Wiki: notify und 99_myUtils anlegen.
Titel: Antw:im Notify Variablen zuweisen
Beitrag von: bicmac am 06 Mai 2020, 17:20:59
habe den fehler gefunden. Das Notify war eigentlich länger als ich es gepostet hatte (wollte nur nicht den extrem langen code einfügen). Hatte an einer anderen Stelel eine Klammer vergessen.
Danke trotzdem für die Hilfe.