Hallo Rudi,
aktuell kommt es in json2nameValue() zu Problemen, wenn ein nicht vorhandener Wert durch None (ohne Anführungszeichen) dargestellt wird. Offenbar gibt es ein paar APIs, die das so tun.
https://forum.fhem.de/index.php?msg=1322121
Durch einen kleinen patch
Index: fhem.pl
===================================================================
--- fhem.pl (revision 29180)
+++ fhem.pl (working copy)
@@ -5492,7 +5492,7 @@
setVal($ret, $prefix, $name, $1);
$in = $2;
- } elsif($val =~ m/^(null)(.*)$/s) {
+ } elsif($val =~ m/^(null|none)(.*)$/is) {
setVal($ret, $prefix, $name, undef);
$in = $2;
könnte man die Prüfung auf null so erweitern, dass keine Fehlermeldung/kein Abbruch mehr in der Funktion passiert.
Habs mit leichten Bauchschmerzen eingebaut.
Eigentlich(TM) ist None nicht Bestandteil der JSON Spezifikation, auf der anderen Seite: wieso sollten wir das Leben fuer Leute schwermachen, die gezwungen sind kaputte Software zu verwenden, wenn wir deswegen keine Nachteile haben.
Letzteres bin ich noch nicht ganz sicher :)
Deine Bedenken bezüglich "nicht in der Spezifikation" teile ich vollumfänglich.
Aber vermutlich dürfte hier einfach der Nutzen für die Anwender überwiegen.
Sollte ein JSON tatsächlich den Wert "None" - mit Anführungszeichen - liefern, wird der Wert ja korrekt behandelt und auch als solcher in ein reading geschrieben.
Danke fürs Einbauen!