SOMFY - PERL WARNING: Argument "go-my" isn't numeric in addition (+) at ./FHEM/1

Begonnen von fron, 11 Mai 2016, 12:56:43

Vorheriges Thema - Nächstes Thema

fron

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

=> 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!

Cubietruck
2x CUL: CUL-868 (MAX, MAX-Basic, Wandtermostat, ECO-Taster, Türkontakt) ; CUL-433 (4x SomfyRTS Rolladenmotor)
2x Jeelink (div Lacrosse/Technoline TX29DTH) ; (div PCA301)
HMUSB (KFM100 Füllstandssensor, HM-LC-BL1-FM)

viegener

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
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

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.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fron

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

Cubietruck
2x CUL: CUL-868 (MAX, MAX-Basic, Wandtermostat, ECO-Taster, Türkontakt) ; CUL-433 (4x SomfyRTS Rolladenmotor)
2x Jeelink (div Lacrosse/Technoline TX29DTH) ; (div PCA301)
HMUSB (KFM100 Füllstandssensor, HM-LC-BL1-FM)

viegener

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)

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?
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

fron

Cubietruck
2x CUL: CUL-868 (MAX, MAX-Basic, Wandtermostat, ECO-Taster, Türkontakt) ; CUL-433 (4x SomfyRTS Rolladenmotor)
2x Jeelink (div Lacrosse/Technoline TX29DTH) ; (div PCA301)
HMUSB (KFM100 Füllstandssensor, HM-LC-BL1-FM)

fron

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 ;-) ]
Cubietruck
2x CUL: CUL-868 (MAX, MAX-Basic, Wandtermostat, ECO-Taster, Türkontakt) ; CUL-433 (4x SomfyRTS Rolladenmotor)
2x Jeelink (div Lacrosse/Technoline TX29DTH) ; (div PCA301)
HMUSB (KFM100 Füllstandssensor, HM-LC-BL1-FM)