NEWS
negative Werte mit cli state set
-
Der CLI-Befehl
iobroker state set 0_userdata.0.Fehnwetter.temp_out 2.5
funktioniert korrekt. Aber bei negativem Wert
iobroker state set 0_userdata.0.Fehnwetter.temp_out -2.5
wird dieser Befehl mit
The required argument "value" is missing!
beantwortet. Vermutlich wird der negative Wert als Option behandelt. Ich habe alles mögliche probiert mit Maskierungen aller Art. Aber leider waren alle meine Versuche erfolglos. Gibt es dafür eine Lösung oder ist das ein Bug?
-
Ne Idee?
-
@werner-schäffer Probier mal die -2.5 in Gänsefüsschen zu setzen.
-
@mickym
Könnte gehen - fragt sich dann nur ob cli dass dann als string oder noch immer als numeric bewertet ... -
@mcm1957 Die Frage ob das nicht grundsätzlich auf Kommandoebene immer Strings sind und iobroker konvertiert das ggf. automatisch anhand des Typs des Datenpunktes automatisch - aber gut - ausprobieren.
Ich ging bisher immer davon aus, dass alles auf der Kommandozeile als Strings behandelt wird. Warum die Fehlermeldung kommt, liegt doch mE eher daran, dass der Interpreter einer bash shell den Bindestrich als Option oder Parameter eines Befehls interpretiert.
-
iobroker state set 0_userdata.0.Fehnwetter.temp_out -- -2.5
Wär auch einen Versuch wert - ja nach verwendetem Parser.
-
Ich hab spaßes halber so ziemlich alles ausprobiert was mir eingefallen ist,
"'
wie auch-- -
oder\"
(und ne ganze Menge mehr). Einige hat er geschluckt aber nicht geschrieben, ist wohl ne Typenprüfung auf dem Weg zum Val. Bei 2-2.5 nimmt er die 2 und schreib sie ins feld -
OK dann bitte auf @apollon77 oder @foxriver76 warten.
Oder - wenn da nichts kommt - ein Issue anlegen. cli würd ich beim js-controller ansiedeln. -
das hatte ich fast alles auch schon probiert und es wird fast alles akzeptiert, aber in dem numerischen Objekt steht dann null, vermutlich weil das dann ein String ist und kein numerischer Wert.
Nachtrag:
auf dieses Problem stieß ich da es gerade so kalt ist draußen. -
was wäre mit \-2.5das - ist auf kommandozeile evtl ein spezielles Zeichen (wegen Optionen und so)
wenn man das Zeichen escaped könnte es evtl angenommen werdenNachtrag
geht leider auch nicht -
@oliverio
Ich hab kein escape zeichen gefundentim@iobroker-lxc:~$ test=-2.5 tim@iobroker-lxc:~$ iob s set 0_userdata.0.Test $test
dat auch net... lustig
geht wohl nur sowas: iob s set 0_userdata.0.testString val:-2.5
und dann in einem on()
val = parseInt(val.replace('val:', ''));
EDIT: geht auch net
iob s set 0_userdata.0.Test "{\"val\": -2.5}"
-
so jetzt, das escaped das forum weg
-
@werner-schäffer
Wenn's unbedingt über die Shell erfolgen muss, nimm doch als Workaroundcurl
curl http://192.168.178.9:8082/set/0_userdata.0.Test.differenz?value=-2.5
-
@codierknecht
Jetzt nimmste den ganzen Spass raus@all
Wenns interessiert hier findet man die Stelle im Code:
https://github.com/ioBroker/ioBroker.js-controller/blob/ea2722d8dd5e71948413bd1bffd891df2f0a4497/packages/cli/src/lib/cli/cliStates.ts#L207 -
@ticaki sagte in negative Werte mit cli state set:
Wenns interessiert hier findet man die Stelle im Code
Bin ja bekanntermaßen nicht unbedingt ein JS-Crack. Aber so wie ich das verstehe, liegt's eher an der Shell und nicht am Code selbst. "Da kannse dann machen watte wills"
-
@codierknecht said in negative Werte mit cli state set:
@ticaki sagte in negative Werte mit cli state set:
Wenns interessiert hier findet man die Stelle im Code
Bin ja bekanntermaßen nicht unbedingt ein JS-Crack. Aber so wie ich das verstehe, liegt's eher an der Shell und nicht am Code selbst. "Da kannse dann machen watte wills"
Wurde aber - wenn ich den PR richtig lese - als BUG eingestuft und schon GEFIXED:
https://github.com/ioBroker/ioBroker.js-controller/pull/3003
Danke an @foxriver76
Sollte wahrscheinlich in der nächsten Release des js-controllers dann gehen.