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!
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
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.
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
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?
Ich probiere es morgen Abend aus, klar! Danke schonmal!!!
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 ;-) ]