FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: mfeske am 05 Juli 2016, 22:03:01

Titel: PERL WARNING: Argument "???" isn't numeric in sprintf at ./FHEM/10_SOMFY.pm line
Beitrag von: mfeske am 05 Juli 2016, 22:03:01
Nach dem Update fährt die Markise nicht mehr ein und aus :-(.
In den logs habe ich ein PERL WARNING: Argument "???" isn't numeric in sprintf at ./FHEM/10_SOMFY.pm line 706. gefunden.

Aber egal ob auf / zu / on /off oder pos es passiert nichts mehr :-(
Internals:
   ADDRESS    000001
   CUL433_MSGCNT 5
   CUL433_RAWMSG YsA4290004010000
   CUL433_TIME 2016-07-05 21:59:54
   DEF        000001
   IODev      CUL433
   LASTInputDev CUL433
   MSGCNT     5
   NAME       Markise
   NR         176
   STATE      open
   TYPE       SOMFY
   exact      0
   move       stop
   position   0
   Code:
     1          000001
   Readings:
     2016-07-05 21:59:53   enc_key         A5
     2016-07-05 22:00:43   exact           0
     2016-07-05 21:59:54   parsestate      off
     2016-07-05 22:00:43   position        0
     2016-07-05 21:59:53   rolling_code    0005
     2016-07-05 22:00:43   state           open
Attributes:
   IODev      CUL433
   devStateIcon 100|auf:fts_sunblind  20:fts_shutter_20:open 50:shutter_4 zu|0:shutter_open stop:ampel_rot:FS20.off
   drive-down-time-to-100 46.4
   drive-down-time-to-close 46.4
   drive-up-time-to-100 1
   drive-up-time-to-open 50.4
   eventMap   on:auf off:zu
   room       Garten


Gruß
Micha
Titel: Antw:PERL WARNING: Argument "???" isn't numeric in sprintf at ./FHEM/10_SOMFY.pm line
Beitrag von: viegener am 06 Juli 2016, 12:00:35
Kann es sein, dass bei Dir ein Teil der Readings verlorengegangen ist? m.a.W. ist der statefile möglicherweise nicht gesichert gewesen?
Der rolling code scheint zurückgesetzt zu sein (steht jetzt auf 5 und war vermutlich wg. fehlendem State nach dem Update auf 0 und wird bei jedem Befehl erhöht). Damit akzeptiert der Somfy-device die Befehle nicht, da er einen anderen Rolling-Code erwartet.

Lösungen:
- Rolling code aus altem Statefile verwenden (Backup ?) und zusammen mit enc_key als Attribut setzen.
- Rolladen neu anlernen
- Rolling code solange durch Befehle hochsetzen (alle 5 sec), bis Markise wieder läuft
Titel: Antw:PERL WARNING: Argument "???" isn't numeric in sprintf at ./FHEM/10_SOMFY.pm line
Beitrag von: mfeske am 10 Juli 2016, 13:44:25
Hallo viegener,

danke für die Tipps, da wollte ich gerade anfangen im Backup zu suchen und dann funktioneirt die Markise wieder wie von Geisterhand ;-)

Es gibt eine extra Datei statefile ? Vielleicht sollte ich die einfach mal öfter sichern ;-)

jetzt ist wieder alles okay.
Internals:
   ADDRESS    000001
   CUL433_MSGCNT 23
   CUL433_RAWMSG YsA64E0016010000
   CUL433_TIME 2016-07-09 16:36:49
   DEF        000001
   IODev      CUL433
   LASTInputDev CUL433
   MSGCNT     23
   NAME       Markise
   NR         176
   STATE      100
   TYPE       SOMFY
   exact      100
   move       on
   position   100
   updateState 100
   Code:
     1          000001
   Readings:
     2016-07-09 16:36:48   enc_key         A7
     2016-07-09 16:36:48   exact           100
     2016-07-09 16:36:49   parsestate      on
     2016-07-09 16:36:48   position        100
     2016-07-09 16:36:48   rolling_code    0017
     2016-07-09 16:36:48   state           100
Attributes:
   IODev      CUL433
   devStateIcon 100|auf:fts_sunblind  20:fts_shutter_20:open 50:shutter_4 zu|0:shutter_open stop:ampel_rot:FS20.off
   drive-down-time-to-100 46.4
   drive-down-time-to-close 46.4
   drive-up-time-to-100 1
   drive-up-time-to-open 50.4
   eventMap   on:auf off:zu
   room       Garten