Hauptmenü

Fehler im notify

Begonnen von Wolle02, 02 Dezember 2023, 10:32:45

Vorheriges Thema - Nächstes Thema

Wolle02

Hallo zusammen, ich habe hier folgendes notify

*00:15:00 {if($month==8 && $mday==15) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 15.0:100.0")};
           if($month==9 && $mday==9) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 12.5:100.0")};
           if($month==9 && $mday==23) {fhem("attr R_EG_WZ_Ost_.* ASC_Shading_Min_OutsideTemperature 20;attr R_EG_Kueche ASC_Shading_Min_OutsideTemperature 20;attr attr R_OG_.* ASC_Shading_Min_OutsideTemperature 20")};
           if({Advent} == 1) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -30")};
           if({Advent} == 0) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -4")}
           }

Die ersten drei if's funktionierten bislang problemlos. Jetzt habe ich für die Adventszeit die beiden letzten if's hinzugefügt, die aber leider nicht funktionieren. Im Log erhalte ich dazu folgende Meldung:

2023.12.02 00:15:00 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 59913647) line 4.
2023.12.02 00:15:00 3: eval: my $SELF=   $evalSpecials->{'%SELF'};{if($month==8 && $mday==15) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 15.0:100.0")};
           if($month==9 && $mday==9) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 12.5:100.0")};
           if($month==9 && $mday==23) {fhem("attr R_EG_WZ_Ost_.* ASC_Shading_Min_OutsideTemperature 20;attr R_EG_Kueche ASC_Shading_Min_OutsideTemperature 20;attr attr R_OG_.* ASC_Shading_Min_OutsideTemperature 20")};
           if({Advent} == 1) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -30")};
           if({Advent} == 0) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -4")}
           }
2023.12.02 00:15:00 1: PERL WARNING: Odd number of elements in anonymous hash at (eval 59913647) line 5.
2023.12.02 00:15:00 3: eval: my $SELF=   $evalSpecials->{'%SELF'};{if($month==8 && $mday==15) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 15.0:100.0")};
           if($month==9 && $mday==9) {fhem("attr R_EG_WZ_West ASC_Shading_MinMax_Elevation 12.5:100.0")};
           if($month==9 && $mday==23) {fhem("attr R_EG_WZ_Ost_.* ASC_Shading_Min_OutsideTemperature 20;attr R_EG_Kueche ASC_Shading_Min_OutsideTemperature 20;attr attr R_OG_.* ASC_Shading_Min_OutsideTemperature 20")};
           if({Advent} == 1) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -30")};
           if({Advent} == 0) {fhem("attr R_EG_WZ_Ost_re ASC_AutoAstroModeEveningHorizon -4")}
           }

Leider verstehe ich nicht was mir Perl hier mitteilen möchte. Von welcher ungeraden Anzahl an Elementen ist hier die Rede und wie behebe ich das?

MadMax-FHEM

#1
Zitat{Advent}

Was soll das sein?
Wenn du eine Sub hast, die dir Advent 0/1 zurückliefert (so sieht es aus), dann ohne geschweifte Klammern...
Also einfach die Sub aufrufen Advent() (wobei in Perl die runden Klammern auch weg können?)...

Wenn es eine Variable sein soll, dann $Advent (und sie müsste irgendwo [global] definiert sein)...

Und: es ist verm. kein notify sondern ein at? ;)
EDIT: macht es Sinn das alle 15min zu tun? Es wird doch nur auf Monat/Tag geprüt (oder übersehe ich was)? Das ändert sich doch im Laufe eines Tages nicht mehr? :D
EDIT: gut so "überleben" die Attributänderungen "indirekt" einen Neustart... Weil ohne "save" sind die Änderungen ja sonst weg...

8)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Nobbynews

Zitat von: Wolle02 am 02 Dezember 2023, 10:32:45
ZitatR_EG_Kueche ASC_Shading_Min_OutsideTemperature 20;attr attr R_OG_.* ASC_Shading_Min_OutsideTemperature 20")};
Ist da nicht ein 'attr' zu viel drin?

Wolle02

Zitat von: MadMax-FHEM am 02 Dezember 2023, 10:49:15
Zitat{Advent}

Was soll das sein?
Wenn du eine Sub hast, die dir Advent 0/1 zurückliefert (so sieht es aus), dann ohne geschweifte Klammern...
Also einfach die Sub aufrufen Advent() (wobei in Perl die runden Klammern auch weg können?)...

Ja, das soll ein Subaufruf sein. Dachte das ginge so und hätte ich auch anderswo so verwendet. Ok, danke für den Tip; ich hab es in Advent() geändert und schaue mal. Bin halt der Syntaxlegasteniker.

ZitatUnd: es ist verm. kein notify sondern ein at? ;)

Da hast du natürlich vollkommen Recht. Sorry. ;-)

ZitatEDIT: macht es Sinn das alle 15min zu tun? Es wird doch nur auf Monat/Tag geprüt (oder übersehe ich was)? Das ändert sich doch im Laufe eines Tages nicht mehr? :D

Ich rufe das ja nicht alle 15 min auf (+*00:15:00), sondern jeden Tag um 00:15 Uhr (*00:15:00).

Wolle02

Zitat von: Nobbynews am 02 Dezember 2023, 10:52:45
Zitat von: Wolle02 am 02 Dezember 2023, 10:32:45
ZitatR_EG_Kueche ASC_Shading_Min_OutsideTemperature 20;attr attr R_OG_.* ASC_Shading_Min_OutsideTemperature 20")};
Ist da nicht ein 'attr' zu viel drin?

Danke. Das hatte ich noch gar nicht gesehen. Habs weggemacht. :-)

MadMax-FHEM

Zitat von: Wolle02 am 02 Dezember 2023, 13:29:47Ich rufe das ja nicht alle 15 min auf (+*00:15:00), sondern jeden Tag um 00:15 Uhr (*00:15:00).
Sorry, stimmt mein Fehler ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)