Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
Wenn ich Gast richtig verstanden habe, fehlt da noch der Faktor 0,1. Die Status-Baustein-Lösung ist schön kompakt, aber leider ist der benötigte Statuswert für Zeile 1 <v2.1/10>-<v1.1/10> nicht zulässig. Ich sehe auch keine andere Möglichkeit, ohne vorbereitende Logik auszukommen.
romildo Vielleicht hast Du ja in Sachen Status-Baustein noch einen (undokumentierten) genialen Gedanken
Eine funktionierende Lösung (ohne Statusbaustein) wäre auf jeden Fall:
Sorry, ich habe ihn gelöscht, da ich beim zweiten Mal lesen, gemerkt habe dass die Zahl noch durch 10 geteilt und zudem auch noch als Minuswert ausgegeben werden soll.
Ihr seid halt alle viel zu schnell
Hallöchen....
Auch wenn dieser Thread schon einige Monde her ist,
Aber ich habe in etwa die selbe Situation und zwar lese ich über Modbus Tcp einen Außentemperatur - Wert einer Remeha Therme aus,
Das funktioniert bei "positiven" Temperatur-Werten, sobald aber die Werte ins "Negative" fallen bekomme ich Werte wie 3277,6 für -0,8 °C (tatsächlicher Wert) oder 3277,4 für -0,6 °C etc....
Was ich nun dazu gefunden habe ist folgendes:
"Bei Diematic-Controllern werden negative Werte nicht im Zweierkomplement kodiert. Das höchstwertige Bit (B15) wird auf 1 gesetzt, und die Bits 0 bis 14 enthalten den Absolutwert des Parameters"
"In PHP wird dies folgendermaßen dekodiert: if ($this->rxReg[$regAddr+$i] >= 0x8000) $this->rxReg[$regAddr+$i]=-($this->rxReg[$regAddr+$i] & 0x7FFF);"
Bei meiner Suche bin ich im Jeedom-Forum auf folgende Formel zur "Berechnung" gestoßen
Ich kenne weder die Therme noch die Modbus Registereinstellungen dazu.
INT (Signed 16-bit Integer) müsste ja Beispielsweise Werte von -32,768 bis +32,767 liefern.
Sind denn die Modbus Registereinstellungen richtig?
Wenn die Werte bei richtiger Einstellung so kommen wie in Post 5 beschrieben, würde ich folgende Formel in Loxone versuchen:
Könnte man nicht einfach in der Modbus Sensor Einstellung den Datentyp auf "16bit signed integer" setzen ?
Wenn man dann auch noch eine Skalierung braucht (z.B. * 0.1) dann das auch direkt dort per Korrektur machen.
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar