NEWS
Wert von Somfy IO Temperatursensor in K lesen und in neues Objekt in °C schreiben
-
Hallo zusammen,
ich bin Neuling bei ioBroker und auch mit Javascript.
Folgende Problemstellung:
Mein Somy IO Temperatursensor, den ich über FHEM in ioBroker eingebunden habe liefert den Temperaturwert nur in °K. Ich möchte diesen nun also per Javascript in °C umrechnen und in ein neues Objekt zurückschreiben um diesen dann per Alexa abfragen zu können.
Auslesen mit JS funktioniert:
var tempK = getState("fhem.0.tahoma_11319490.TemperatureState");
Mit createState kann ich auch einen neuen State anlegen:
createState('tempC', 1, {name: 'WohnzimmerTemp', unit: '°C'});
Würde nun gerne bei Änderung des Temperaturwertes das Script starten und den °C Wert in den neue State schreiben und verwende hierzu "on"
__// On change
//on('fhem.0.tahoma_11319490.TemperatureState', function (obj) {__
Die Funktion setState funktioniert leider auch noch nicht:
setState('tempC', getState("fhem.0.tahoma_11319490.TemperatureState")-273, true/ack/);
Kann mir hier jemand dazu helfen?
Vielen Dank!
-
const idTempK = 'fhem.0.tahoma_11319490.TemperatureState'; const idTempC = 'javascript.' + instance + '.tempC'; // Skriptstart setState(idTempC, getState(idTempK).val - 273.1, true); // Triggern bei Wertänderung on(idTempK, function(dp) { setState(idTempC, dp.state.val - 273.1, true); });
-
Hallo
danke für die schnelle Antwort. Das Script funktioniert soweit und gibt die Temperatur in °C das Objekt "tempC" zurück.
Besteht die Möglichkeit den Temperaturwert auf 1 Nachkommastelle zu runden, z.B. 20.1°C?
Im Cloud Adapter wird das Objekt "tempC" unterschiedlich zu dem Objekt aus FHEM (ursprünglicher Wert in Kelvin) erkannt, dadurch kann der Wert mit Alexa nicht abgefragt werden. Wie kann hier die Geräteart geändert werden, vgl. Bild im Anhang.
Danke im Voraus!
MfG Ronny
4404_cloud_adapter_temperatur.png -
Besteht die Möglichkeit den Temperaturwert auf 1 Nachkommastelle zu runden, z.B. 20.1°C? `
setState(idTempC, Math.round(10 * (dp.state.val - 273.1)) / 10, true);