FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Mihca am 16 September 2020, 12:27:34

Titel: [gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: Mihca am 16 September 2020, 12:27:34
Seit dem heutigen (16.09.2020) Update kommt bei mir folgende Fehlermeldung bei allenDoIf's, die mit sunrise arbeiten:

2020.09.16 08:18:25 1: PERL WARNING: Argument "07:14" isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm line 106.
2020.09.16 08:18:25 3: eval: {sunrise(2790,"07:14","09:00")}


Vielen Dank vorab für Hilfe!
VG Achim
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: Damian am 16 September 2020, 12:50:48
Zitat von: Mihca am 16 September 2020, 12:27:34
Seit dem heutigen (16.09.2020) Update kommt bei mir folgende Fehlermeldung bei allenDoIf's, die mit sunrise arbeiten:

2020.09.16 08:18:25 1: PERL WARNING: Argument "07:14" isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm line 106.
2020.09.16 08:18:25 3: eval: {sunrise(2790,"07:14","09:00")}


Vielen Dank vorab für Hilfe!
VG Achim

Poste mal ein list von so einem DOIF.
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: yersinia am 16 September 2020, 12:56:17
Hast du heute morgen ein Update gemacht? Wenn ja, könnte das hiermit (https://forum.fhem.de/index.php/topic,113722.msg1085339.html#msg1085339) zu tun haben:
Zitat von: rudolfkoenigIch habe die beiden optionalen Parameter $lat,$long zu sr_alt hinzugefuegt. Wenn gesetzt, dann werden nicht die globalen Attribute abgefragt.

Weiterhin einen Fehler gefixt: falls man fuer altitude keinen gueltigen Wert spezifiziert hat, dann wurden die weiteren Parameter (offset, min, max) eins versetzt ausgewertet.
(Revision 22774)

Aber ein List des DOIFs sollte auch kommen.
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: CoolTux am 16 September 2020, 13:00:09
Rude hat die Tage was an dem Modul gemacht. Ich gehe davon aus das es etwas damit zu tun hat.

Hast Du in global Latitude und Longitude gesetzt?
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: Mihca am 16 September 2020, 13:00:44
Zitat von: Damian am 16 September 2020, 12:50:48
Poste mal ein list von so einem DOIF.

Hier das List:

Internals:
   DEF        (([{sunrise(2790,"07:14","09:00")}]) and ([Heiss] ne "on") and ([Sonne] ne "on") and ([Frost] ne "on"))
(
set OG.Buero.Rollo_2 on, set OG.Buero.Rollo_3 on
)
DOELSEIF (([12:00-22:30]) and [Frost] eq "on" and ([Rollo.OG.Buero] ne "off"))
(
set Rollo.OG.Buero off
)
   FUUID      5c42e919-f33f-9d8a-7761-dedac98ea38ac6f8
   MODEL      FHEM
   NAME       RolloOGBueroTimer
   NOTIFYDEV  Heiss,Rollo.OG.Buero,global,Sonne,Frost
   NR         375
   NTFY_ORDER 50-RolloOGBueroTimer
   STATE      initialized
   TYPE       DOIF
   VERSION    22764 2020-09-12 20:06:36
   READINGS:
     2020-09-16 07:20:00   Device          Sonne
     2020-09-16 08:41:57   cmd             0
     2020-09-10 07:14:00   cmd_event       timer_1
     2020-09-16 08:41:57   cmd_nr          0
     2020-09-11 00:40:00   e_Heiss_STATE   on
     2020-09-15 19:32:12   e_Rollo.OG.Buero_STATE off
     2020-09-16 07:20:00   e_Sonne_STATE   on
     2020-07-14 12:18:07   mode            enabled
     2020-09-16 08:41:57   state           initialized
     2020-09-16 08:41:57   timer_01_c01    17.09.2020 07:22:43
     2020-09-16 08:41:57   timer_02_c02    16.09.2020 12:00:00
     2020-09-16 08:41:57   timer_03_c02    16.09.2020 22:30:00
   Regex:
     accu:
     cond:
       Frost:
         0:
           &STATE     ^Frost$
         1:
           &STATE     ^Frost$
       Heiss:
         0:
           &STATE     ^Heiss$
       Rollo.OG.Buero:
         1:
           &STATE     ^Rollo.OG.Buero$
       Sonne:
         0:
           &STATE     ^Sonne$
   condition:
     0          (::DOIF_time_once($hash,0,$wday)) and (::InternalDoIf($hash,'Heiss','STATE') ne "on") and (::InternalDoIf($hash,'Sonne','STATE') ne "on") and (::InternalDoIf($hash,'Frost','STATE') ne "on")
     1          (::DOIF_time($hash,1,2,$wday,$hms)) and ::InternalDoIf($hash,'Frost','STATE') eq "on" and (::InternalDoIf($hash,'Rollo.OG.Buero','STATE') ne "off")
   days:
   do:
     0:
       0            set OG.Buero.Rollo_2 on, set OG.Buero.Rollo_3 on
     1:
       0            set Rollo.OG.Buero off
     2:
   helper:
     DEVFILTER  ^global$|^Frost$|^Rollo.OG.Buero$|^Heiss$|^Sonne$
     NOTIFYDEV  global|Frost|Rollo.OG.Buero|Heiss|Sonne
     event      timer_2
     globalinit 1
     last_timer 3
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   internals:
     all         Heiss:STATE Sonne:STATE Frost:STATE Rollo.OG.Buero:STATE
   interval:
     1          -1
     2          1
   intervalfunc:
   intervaltimer:
   localtime:
     0          1600320163
     1          1600250400
     2          1600288200
   perlblock:
   realtime:
     0          07:22:43
     1          12:00:00
     2          22:30:00
   time:
     0          {sunrise(2790,"07:14","09:00")}
     1          12:00:00
     2          22:30:00
   timeCond:
     0          0
     1          1
     2          1
   timer:
     0          0
     1          0
     2          0
   timers:
     0           0
     1           1  2
   triggertime:
     1600288200:
       localtime  1600288200
       hash:
     1600320163:
       localtime  1600320163
       hash:
   uiTable:
Attributes:
   devStateIcon cmd_1:EG.Bad.Rollo.Nord.on cmd_2:EG.Bad.Rollo.Nord.off
   do         always
   icon       fts_shutter
   initialize initialized
   room       OG_Buero,z.at
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: Mihca am 16 September 2020, 13:02:00
Zitat von: CoolTux am 16 September 2020, 13:00:09
Rude hat die Tage was an dem Modul gemacht. Ich gehe davon aus das es etwas damit zu tun hat.

Hast Du in global Latitude und Longitude gesetzt?

Ja, Latitude und Longitude sind beide gesetzt.
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: yersinia am 16 September 2020, 13:05:52
Sieht so aus, als wäre der fix (rev 22778) (https://forum.fhem.de/index.php/topic,114272.0) schon da (thx @rudi) und steht spätestens morgen früh mit dem regulären Update zur Verfügung.
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: Damian am 16 September 2020, 13:27:57
Zitat von: Mihca am 16 September 2020, 12:27:34
Seit dem heutigen (16.09.2020) Update kommt bei mir folgende Fehlermeldung bei allenDoIf's, die mit sunrise arbeiten:

Dann benutzt du wohl keinen at-Befehl, denn da müsste es auch Probleme geben ;)
Titel: Antw:PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUNRISE_EL.pm
Beitrag von: rudolfkoenig am 16 September 2020, 13:28:32
Sorry, mein Fehler.

Ich habe damals den altit-Patch uebernommen, ohne die "Filosofie" zu verinnerlichen, und deswegen gestern beim Umbau das "optionale" ausser gefecht gesetzt.

Sollte jetzt gefixt sein.
Titel: Antw:[gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: Mihca am 17 September 2020, 08:18:21
Bug ist beseitigt. Danke  :)
Titel: Antw:[gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: d.zoellner am 18 September 2020, 07:48:58
Hallo,
ich habe den Eindruck, dass der Fehler im Sunrise noch nicht 100%ig gelöst wurde.
In meinen DIOFs und WeekdayTimers habe ich seit Jahren diese Anweisung:
{sunrise_abs(+3500,"05:26","08:29")}
Seit den letzten Updates im August/September liefert dieser Befehlt immer nur noch die Zeit des Sonnenaufgangs. Der Offset (hier von +3500) wird nicht mehr berücksichtigt.

Bei der Anweisung {sunset_abs(-2800,"16:00","21:55")} musste ich jetzt (seit Semptemberupdate) "CIVIL" davor schreiben, damit der Offset (hier von -2800) wieder berücksichtigt wird.
So funktioniert der Sunset Befehlt bei mir wieder: {sunset_abs("CIVIL",-2800,"16:00","21:55")} - ich musste halt in allen meinen DOIFs das "CIVIL" davorsetzen.

Kleiner Nachtrag zur initialen Meldung von Mihca: wenn ich den Befehl {sunrise(2790,"07:14","09:00")} ausführe, dann meldet er die Uhrzeit von 31:14:00 (Stand heute 18.9.2020) zurück. Ist das so korrekt?

Könnt ihr (Herr König) hier bitte noch mal nachbessern? oder verwende ich die Befehle falsch?

Vielen Dank und Viele Grüße

Übrigens super Arbeit und großes "Daumen hoch" an das FHEM Team.

Auszug aus meinen WeekdayTimer:
Licht_Wohnzimmer 0123456|{sunset_abs("CIVIL",-2800,"16:00","21:55")}|on 12345|22:20|off 06|22:29|off 12345|05:25|on 12345|{sunrise_abs(+3500,"05:26","08:29")}|off {
  if ( Value("sw_Licht_Wohnzimmer_Automatik") eq "on") {
    if (($EVENT eq "off") and (Value("sw_Fernsehabend") eq "on")) {
      Log(3,"Licht_Wohnzimmer bleibt an, da Fernsehabend aktiv");
    } else {
      fhem("set $NAME $EVENT");
      Log(3,"Licht_Wohnzimmer $EVENT");
    }
  }
}
Titel: Antw:[gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: Mihca am 18 September 2020, 14:47:50
Zitat von: d.zoellner am 18 September 2020, 07:48:58

ich habe den Eindruck, dass der Fehler im Sunrise noch nicht 100%ig gelöst wurde. ....


Ja, da stimmt auch meiner Meinung nach immer noch etwas nicht. Bei mir tritt Ähnliches auf, siehe hier: https://forum.fhem.de/index.php/topic,114306.0.html#new (https://forum.fhem.de/index.php/topic,114306.0.html#new)
Titel: Antw:[gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: rudolfkoenig am 18 September 2020, 21:02:24
Habs gefixt, bitte um Feedback.
Titel: Antw:[gelöst] PERL WARNING: Argument isn't numeric in division (/) at ./FHEM/99_SUN
Beitrag von: d.zoellner am 19 September 2020, 09:05:13
Hallo Hr. König,
aus meiner Sicht verlief der Test positiv:
{sunrise_abs(+3600,"05:27","08:30")} liefert korrekten Wert
{sunset_abs(-2700,"16:00","21:31")} liefert korrekten Wert

Die Anweisungen {sunset_abs(-2700,"16:00","21:31")} und {sunset(-2700,"16:00","21:31")} liefern beide den gleichen Wert (19:17:24). Was aus meiner Sicht OK  ist.

Vielen Dank für die schnelle Korrektur