Hallo Rudi,
mir ist aufgefallen, dass toJSON() nummerische Werte als String seralisiert.
Für den Fall, dass der korrekte Datentyp exportiert werden soll, habe ich einen Patch angehängt.
Grüße
Julian
Ich habe jetzt folgenden Patch eingebaut :--- fhem.pl (revision 19463)
+++ fhem.pl (working copy)
@@ -5050,6 +5050,9 @@
if(not defined $val) {
return "null";
+ } elsif (length( do { no warnings "numeric"; $val & "" } )) {
+ return $val;
+
} elsif (not ref $val) {
$val =~ s/([\x00-\x1f\x22\x5c\x7f])/sprintf '\u%04x', ord($1)/ge;
getestet mit perl 5.18 und 5.28:fhem> { toJSON({a=>1, b=>"b",c=>"3",d=>{a=>1,b=>"b"},e=>[1,2,"3"]}) }
{"a":1,"b":"b","c":"3","d":{"a":1,"b":"b"},"e":[1,2,"3"]}
und eingecheckt.
Diese Idee habe ich hier (https://stackoverflow.com/questions/12647/how-do-i-tell-if-a-variable-has-a-numeric-value-in-perl) geklaut.
Ziemlich smart! 8)