Ankündigung

Einklappen
Keine Ankündigung bisher.

Modbuswerte Formatierung in der Things

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Modbuswerte Formatierung in der Things

    Hallo,

    leider habe ich zu diesem Thema nur ältere Beträge gefunden. Da es Mittlerweile auch andere Möglichkeiten für Temperatur Items gibt diese zu formatieren, wolte ich mal fragen ob es auch Möglichkeiten gibt, dies für andere Items auch zu tun.

    In der Hilfe steht ja für Temperatur Items.
    Code:
    Number:Temperature TemperatureItem "Temperature [%.1f °C]" { channel="modbus:data:localhostTCP3:holdingPoller:temperatureDeciCelsius:number"[ profile="modbus:gainOffset", gain="0.1 °C", pre-gain-offset="0" ] }​
    gibt es so etwas auch ohne Temperatur Format?

    Oderverstehe ich da was falsch und erkenne Die Lösung nicht?
    Gruß

    Guido

    #2
    Worauf genau willst Du hinaus?

    Number:Temperature ist ein UoM Item, UoM steht für Units of Measurement, Maßeinheiten. Das heißt, das Item führt nicht nur die Zahl mit sich, sondern auch die Einheit. Der Punkt dabei ist, dass Du als Einheit (in der Anzeige, und nur da) z.B. auch °F für Grad Fahrenheit hinschreiben und bekommst die Temperatur in Grad Fahrenheit (ohne irgendwo eine Formel einzugeben) Oder Du gibst K an und bekommst die Temperatur in Kelvin.

    Allerdings muss dazu der eingespeiste Wert schon mit Einheit übergeben werden (hier mit gain="0.1 °C").
    Wenn Du den Wert ohne Einheit willst, gib sie nicht an.

    Kommentar


      #3
      Du meinst also so

      Code:
      Number:Temperatur Victron_InputVL1              "Input Volt Phase1 [%.1f ] "       { channel="modbus:data:Victron_ruebe:inputRegistersVictron:Float1:number" [ profile="modbus:gainOffset", gain="0.1", pre-gain-offset="0" ]}
      leider wird das Komma nicht gesetzt. Es stehen immer xxxx als Wert drin nur nach den Änderungen als °C

      Victron_InputVL1' changed from 2325 °C to 2335 °C
      Gruß

      Guido

      Kommentar


        #4
        Ich habe es jetzt anders gelöst. Falls jemand ein ähnliches Problem hat. Und nicht vergessen die JS Transform zu installieren ;-)

        Code:
        Bridge poller inputRegistersVictron  [ start=3, length=12, refresh=5000, type="input" ] {
                // Note the zero based indexing: first coil is index 0.
                Thing data Float1  [ readStart="3", readValueType="uint16", readTransform="JS:transformint_to_float.js"]     // Spannung L1
                Thing data Float2  [ readStart="4", readValueType="uint16", readTransform="JS:transformint_to_float.js"]    // Spannung L2
                Thing data Float3  [ readStart="5", readValueType="uint16", readTransform="JS:transformint_to_float.js"]    // Spannung L3​
        die js dazu sieht so aus.
        Code:
        (function(inputData) {
            return inputData/10 ;
        })(input)​
        Gruß

        Guido

        Kommentar


          #5
          Ah. Also eigentlich sollte das Profile auch den Faktor steuern. Siehe hier: https://www.openhab.org/addons/bindi...bus-gainoffset

          Wenn also bei einem Gain von 0.1 der Messwert um den Faktor 100 zu groß ist, müsstest Du gain="0.001" angeben, oder eben gain="0.001 °C" um direkt UoM zu haben.
          Ich habe allerdings kein modbus und weiß nicht, ob das tatsächlich funktioniert, vielleicht kannst Du ja mal zum Testen einen Channel doppelt anlegen und es ausprobieren.

          Der Itemtype heißt übrigens Number:Temperature, nicht Number:Temperatur. (oben hast Du das korrekt gesetzt, unten nicht)
          Wenn Du im Channel (-Link) keine Einheit setzt, solltest Du den Itemtype auf Number ändern, also ohne das :Temperature hinten dran.

          Kommentar


            #6
            Hallo Udo,

            ja das was Du vorschlägst funktioniert genau so.

            also auch ohne : Temperature ;-)
            Gruß

            Guido

            Kommentar

            Lädt...
            X