versuch mal es mal mit
cTemperatur = parseFloat(cTemperatur);
OH+Javascipt stolpert öfter über das Format.
Ggf. wäre die Rückgabe für cTemperatur via Telegramm interessant (Komma oder Punkt als Dezimaltrenner).
je nachdem. Eine Zahl. (z.B. 20.1)Ich bin leider noch nicht so fit in javascript, deshalb habe ich eh nicht verstanden, wieso eine Zahl zurückkommt, die ich aber mit einem String direkt kombinieren kann, ohhe sie vorher in einen String selbst umzuwandeln. Aber wenn ich den in Hochkomma verpacke und dann abfrage, passiert auch nichts.
Kannst Du bitte die Zeile aus dem Log einfügen? Es geht mir nicht darum, dass Du ein Beispiel zeigst, sondern dass ich eine konkrete Zeile aus dem Log sehe.
Grundsätzlich: Die Definition var cTemperatur erzeugt ein Objekt (weil nichts anderes angegeben wurde). Dies ist zunächst vom Typ void (unbestimmt) und mit dem Zuweisen des state wird es vermutlich zu State (oder so).
Was wichtigste dabei: jedes Objekt erbt die Methoden der Eltern. Und es gibt eine Methode, die das Ur-Objekt hat, die also auch alle anderen Objekte haben, diese Methode heißt .toString. openHAB wird bei gemischter Verwendung von Typen immer versuchen, diese ineinander zu konvertieren, es wird also automatisch einen String erzeugen, indem es die Methode .toString anwendet.
Soll der Status hingegen als Zahl betrachtet werden, ist der Fall nicht so einfach, denn es gibt keine Methode .toNumber oder .toDecimal (oder irgendwas in der Art).
In der DSL muss man einfach nur den Type casten var Number nZahl = MeinItem.state as Number aber ob das in JavaScript auch so funktioniert, weiß ich nicht. Bisher wurden bei mir die Werte immer direkt als Zahl verwendet... wobei ich JavaScript auch nur in den Transformations nutze.
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)