FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: andies am 14 Januar 2024, 16:24:59

Titel: [gelöst, Schusselfehler] Ist $EVTPART1 kein String?
Beitrag von: andies am 14 Januar 2024, 16:24:59
Ich habe ein Modul, das mir die Abfuhrtermine bereitstellt:
Internals:
   DEF        XXXXXX YYYYYYYY
   FVERSION   57_bsrabfallkalender.pm:0.000050/2019-10-01
   NAME       abfuhrtermine_bsr
   NR         545
   STATE      1
   TYPE       bsrabfallkalender
   eventCount 15
   READINGS:
     2024-01-14 16:17:27   biogut_hinweis 
     2024-01-14 16:17:27   biogut_next_datum 22.01.2024
     2024-01-14 16:17:27   biogut_next_tage 8
     2024-01-14 16:17:27   biogut_next_wochentag Montag
     2024-01-14 16:17:27   hausmuell_hinweis
     2024-01-14 16:17:27   hausmuell_next_datum 24.01.2024
     2024-01-14 16:17:27   hausmuell_next_tage 10
     2024-01-14 16:17:27   hausmuell_next_wochentag Mittwoch
     2024-01-14 16:17:27   state           1
     2024-01-14 16:17:28   weihnachtsbaeume_hinweis
     2024-01-14 16:17:28   weihnachtsbaeume_next_datum 20.01.2024
     2024-01-14 16:17:28   weihnachtsbaeume_next_tage 6
     2024-01-14 16:17:28   weihnachtsbaeume_next_wochentag Samstag
     2024-01-14 16:17:27   wertstoffe__abholung_durch_alba__hinweis
     2024-01-14 16:17:27   wertstoffe__abholung_durch_alba__next_datum 15.01.2024
     2024-01-14 16:17:27   wertstoffe__abholung_durch_alba__next_tage 1
     2024-01-14 16:17:27   wertstoffe__abholung_durch_alba__next_wochentag Montag
   helper:
     SetCookie  PHPSESSID=8g1qqjhbvulntr46qsk0lt6lho; path=/
     bsradrkey  XXXXXX, YYYYY
Attributes:
   comment    siehe auch
device wertstoff
   group      Info
   sortby     3
Man erkennt, dass durch das Modul ein Event erzeugt wurde, das ich auswerten will. Das Event enthält die Angaben, welche Art von Abfuhr erfolgt (hier zB  wertstoffe__abholung_durch_alba__next_tage) und wie viele Tage es noch dauert (hier 1). Genau die 1 will ich nutzen, um mir dann ein Telegram schicken zu lassen.

Das habe ich in einem notify umgesetzt, und zwar wie folgt:
Internals:
   DEF        abfuhrtermine_bsr:.*_next_tage:.* {
    Log3 "", 1, "event ".$EVTPART0." und ".$EVTPART1;
  if (ReadingsVal("abfuhrtermine_bsr", $EVTPART1, 0) eq "1"){
    Log3 "", 1, "BSR ja";
        $EVTPART0 =~ /^([a-zA-Z]+)_.*/;
          fhem("set TelegramBot _msg @AAAAAAA 🚮: $1;attr abfuhrtermine_bsr room Info;attr abfuhrtermine_bsr stateFormat $1;save")
  } else {
    Log3 "", 1, "BSR nein ";
          fhem ("deleteattr abfuhrtermine_bsr room;save")
  }
  }
   FVERSION   91_notify.pm:0.258880/2022-03-27
   NAME       abfuhrtermine_bsr_notify
   NOTIFYDEV  abfuhrtermine_bsr
   NR         546
   NTFY_ORDER 50-abfuhrtermine_bsr_notify
   REGEXP     abfuhrtermine_bsr:.*_next_tage:.*
   STATE      2024-01-14 16:17:28
   TRIGGERTIME 1705245448.31825
   TYPE       notify
   eventCount 12
   READINGS:
     2024-01-14 16:13:54   state           active
     2024-01-14 16:17:28   triggeredByDev  abfuhrtermine_bsr
     2024-01-14 16:17:28   triggeredByEvent weihnachtsbaeume_next_tage: 6
Attributes:
Obwohl das Ereignis ordentlich erkannt wird, klappt da etwas nicht. Im Logfile steht
2024.01.14 16:17:28 1: event wertstoffe__abholung_durch_alba__next_tage: und 1
2024.01.14 16:17:28 1: BSR nein
2024.01.14 16:17:28 1: event biogut_next_tage: und 8
2024.01.14 16:17:28 1: BSR nein
2024.01.14 16:17:28 1: event hausmuell_next_tage: und 10
2024.01.14 16:17:28 1: BSR nein
2024.01.14 16:17:28 1: event weihnachtsbaeume_next_tage: und 6
2024.01.14 16:17:28 1: BSR nein
und das kann doch nicht sein? Es wird erkannt, dass es noch einen Tag bis zur Wertstoffabfuhr dauert und dennoch wird das beim if-else nicht richtig erkannt. Ist denn $EVTPART1 kein string? Oder muss ich die anders vergleichen?

(PS Und kann mir jemand einen Tipp mit "save" geben, ich erinnere dunkel, dass das dennoch eine User-Eingabe notwendig machte.)
Titel: Aw: Ist $EVTPART1 kein String?
Beitrag von: andies am 14 Januar 2024, 16:29:50
OK, hat sich erledigt - Abfrage beim ReadingsVal ist falsch.