Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Wert von Somfy IO Temperatursensor in K lesen und in neues Objekt in °C schreiben

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Wert von Somfy IO Temperatursensor in K lesen und in neues Objekt in °C schreiben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 2 Kommentatoren 798 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • R Offline
    R Offline
    ronny82
    schrieb am zuletzt editiert von
    #1

    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!

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2
      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);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        ronny82
        schrieb am zuletzt editiert von
        #3

        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

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @ronny82:

          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);
          
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          424

          Online

          32.5k

          Benutzer

          81.6k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe