FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: fron am 11 Mai 2016, 12:56:43

Titel: SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: fron am 11 Mai 2016, 12:56:43
Moin moin,

klarer Fall, "go-my" kann man nicht runden ;-)

was haltet ihr davon, die Funktion "SOMFY_RoundInternal($)" etwas robuster zu gestalten, so dass sie nur Zahlen rundet?

* die Erkennung, ob Zahl (ja/nein) frei nach
http://www.perl-community.de/bat/poard/thread/14715 (http://www.perl-community.de/bat/poard/thread/14715)

=> welche Eingabewerte werden eigentlich übergeben?
=> man müsste ggf. noch "." oder "," im Ausdruck zulassen, nicht nur Ziffern!?

IST:
###################################
sub SOMFY_RoundInternal($) {
        my ($v) = @_;
        return sprintf("%d", ($v + ($somfy_posAccuracy/2)) / $somfy_posAccuracy) * $somfy_posAccuracy;
} # end sub SOMFY_RoundInternal


NEU:
##################################
sub SOMFY_RoundInternal($) {
        my ($v) = @_;
###     return sprintf("%d", ($v + ($somfy_posAccuracy/2)) / $somfy_posAccuracy) * $somfy_posAccuracy;
        return (sprintf("%d", ($v + ($somfy_posAccuracy/2)) / $somfy_posAccuracy) * $somfy_posAccuracy) if($v=~ y/0-9// == length($v));
        return $v;
} # end sub SOMFY_RoundInternal


Cheers!

Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: viegener am 11 Mai 2016, 14:40:10
Hi fron,
ich schaue mir das mal an, da sind wohl noch ein paar Überbleibsel enthalten, wenn die Routine nicht mit text-werten rechnet muss ich auch im Umfeld schauen wann das vorkommen kann.
Gruss,
Johannes
Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: viegener am 11 Mai 2016, 22:43:37
Ich habe jetzt mir den Code nochmal angeschaut, allerdings ist mir nicht klar, wie es zu dem Problem kommen kann. Kannst Du mal ein list von Deinem Device posten, bei dem der Fehler auftritt und eine kurze Beschreibung wie es dazu kommt?

In meinen logs sind keine entsprechenden Meldungen enthalten, allerdings nutze ich go-my bei mir auch nicht.

Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: fron am 29 Mai 2016, 15:40:37
Hi,

sorry für die Verzögerung, hab deine Nachricht wohl übersehen...

* die Geschichte ist nicht "go-my"-spezifisch, ich kann auch mit
2016.05.11 08:00:00 1: PERL WARNING: Argument "closed" isn't numeric in addition (+) at ./FHEM/10_SOMFY.pm line 956.
2016.05.11 08:00:00 3: SOMFY_set: handled command off --> move :off:  newState :open:
2016.05.11 08:00:00 3: SOMFY_set: handled command off --> move :off:  newState :open:
2016.05.11 08:00:00 3: SOMFY_set: handled command off --> move :off:  newState :open:
2016.05.11 08:00:00 3: SOMFY_set: handled command off --> move :off:  newState :open:
2016.05.11 08:52:12 1: PERL WARNING: Argument "open" isn't numeric in addition (+) at ./FHEM/10_SOMFY.pm line 956.
2016.05.11 08:52:12 3: SOMFY_set: handled command go-my --> move :stop:  newState :open:


dienen.

hier wird erst eine Gruppe von 4 Somfy-Rollos hochgefahren - meine Steuerung verwendet überhaupt keine nummerischen Werte sondern ausschließlich "on/off/go-my"...

---
#list rollo_4
Internals:
   ADDRESS    1111D4
   CUL1_MSGCNT 37
   CUL1_RAWMSG YsA12D03F1D41111
   CUL1_TIME  2016-05-29 08:00:03
   DEF        1111D4
   IODev      CUL1
   LASTInputDev CUL1
   MSGCNT     37
   NAME       rollo_4
   NR         35
   STATE      open
   TYPE       SOMFY
   exact      open
   move       off
   position   0
   Code:
     1          1111D4
   Readings:
     2016-05-29 08:00:00   enc_key         A2
     2016-05-29 08:00:00   exact           open
     2016-05-29 08:00:03   parsestate      off
     2016-05-29 08:00:00   position        0
     2016-05-29 08:00:00   rolling_code    03F2
     2016-05-29 08:00:00   state           open
Attributes:
   IODev      CUL1
   eventMap   off:hoch on:runter
   icon       fts_shutter
   room       somfy
   somfy      rollo
   userattr   somfy somfy_map structexclude
   webCmd     stop:on:off:go-my

---
und
---
#list rollo_wz

Internals:
   ATTR       somfy
   DEF        somfy rollo_1 rollo_2 rollo_3
   NAME       rollo_wz
   NR         93
   NTFY_ORDER 50-rollo_wz
   STATE      open
   TYPE       structure
   Content:
     rollo_1    open
     rollo_2    open
     rollo_3    open
   Readings:
     2016-05-29 08:00:02   LastDevice      rollo_3
     2016-05-29 08:00:02   LastDevice_Abs  rollo_3
     2016-05-29 08:00:02   state           open
Attributes:
   eventMap   off:hoch on:runter
   room       somfy
   somfy      rollo
   userattr   somfy somfy_map structexclude

Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: viegener am 29 Mai 2016, 22:10:47
OK, ich habe die Ursache jetzt gefunden und einige Umstellungen gemacht. Ich habe eine neue Version in github eingecheckt.
(https://github.com/viegener/Telegram-fhem/tree/master/Somfy (https://github.com/viegener/Telegram-fhem/tree/master/Somfy))

Eigentliche Ursache ist der Wert im Reading exact, dieser war u.U. nicht numerisch. Nach Einspielen der neuen Version wird die Meldung noch einmal kommen (der Wert ist ja noch immer nicht numerisch und wird erst bei der nächsten Steuerung korrigiert).

Ich würde aber auch noch auf Feedback von Dir warten, bevor ich das über update verfügbar mache. Vielleicht hast Du ja eine Möglichkeit, auch bei Dir zu testen?
Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: fron am 30 Mai 2016, 00:08:25
Ich probiere es morgen Abend aus, klar! Danke schonmal!!!
Titel: Antw:SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1
Beitrag von: fron am 01 Juni 2016, 00:49:26
sorry, ich hab's nicht geschafft - bin in den Fehler mit den korrupten svg-Files im images/openautomation-Folder gestürzt - beim Aufruf einer FHEM-Webseite, die eines der svg-Files verwendete, ist der FHEM-Webserver in einer Endlosschleife stehengeblieben und ich habe bis eben gebraucht, um den Fehler zu diagnostizieren und die svg-files zu tauschen :-(   [und, dann lässt man mal nen update-check durchlaufen, da werden ein paar der defekten Files sofort angeboten, nicht zu fassen ;-) ]