Seite 1 von 1
Umrechnung ModBus Daten
Verfasst: 8. Feb 2019 12:31
von PeterA
Hallo zusammen,
von unserer Lüftungsanlage hole ich über das ModBus Binding (Raspi mit Rs485 shield) Temperaturen aus 4 Unterschiedlichen Registern.
Das wird auch in der PaperUi ohne Probleme angezeigt.
Allerdings kommen die Werte ohne Kommastelle aus der Anlage.
14,5c kommen zb als 145 zurück.
Wie kann ich das Umrechnen lassen? Ich habe schon in der Openhab Doku gelesen das das nur per Js Script geht (divide by ten.js)
Aber hier ist mein Coding Wissen erstmal am Ende.
Kann mir hier jemand vielleicht Tips geben?
Vielen Dank
Re: Umrechnung ModBus Daten
Verfasst: 8. Feb 2019 12:39
von udo1toni
Schau mal hier:
https://www.openhab.org/addons/bindings ... ng-example Das ist die Beispielkonfiguration mit dem Transformation Service.
Das angegebene Script ist natürlich die falsche Richtung, aber Du siehst, wie die Konfiguration aussehen muss. Die passenden Scripte findest Du hier:
https://www.openhab.org/addons/bindings ... le-scaling Die musst Du jeweils in eine eigene Datei speichern und im Konfigurationszweig ./transform/ speichern (angedeutet im Dateinamen).
Weiterhin muss der passende Transformation Service natürlich installiert sein.
Re: Umrechnung ModBus Daten
Verfasst: 8. Feb 2019 20:37
von PeterA
Hi, danke für die Infos.
leider bin ich hier mit meinem "Latein" schnell am ende.
Das mit den ganzen Scripten ist echt hart.
Also... ich habe was in den docs gefunden....
transform/divide10.js:
// Wrap everything in a function (no global variable pollution)
// variable "input" contains data passed by openhab
(function(inputData) {
// on read: the polled number as string
// on write: openHAB command as string
var DIVIDE_BY = 10;
return parseFloat(inputData) / DIVIDE_BY;
})(input)
das muss als divide10.js in den transform Ordner ?
Und wo wird das dann aufgerufen ?
Fragen über Fragen...
Re: Umrechnung ModBus Daten
Verfasst: 8. Feb 2019 22:55
von udo1toni
Exakt, das packst Du in eine Datei mit dem Namen divide10.js, diese Datei kommt in den Ordner transform.
Dieses Script wird von openHAB automatisch aufgerufen, wenn das Modbus Binding einen neuen Wert empfängt. Damit das passiert, trägst Du den Transformation Service ein (siehe erster Link)
Code: Alles auswählen
Thing data holding5Scaled [ readStart="5", readValueType="int16", readTransform="JS(divide10.js)" ]
Ich gehe mal davon aus, dass es sich um ein Nur-Lese-Thing handelt.
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 00:39
von PeterA
Ok das Script ist angelegt.
Ja es sind sogar 4 Lese Things (Temperatur)
Aber wo finde ich die Datei wo ich das readtransform eintrage.
Denn ich habe bisher alles mit der PaperUi gemacht.
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 02:06
von udo1toni
Dann musst Du die Transformation in Paper UI im Thing eintragen

dort sollte es ein Feld dafür geben (Syntax ist ansonsten die gleiche)
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 11:07
von PeterA
Hallo,
Vielen Dank für den Tipp! Das funktioniert nun.
Jetzt ist mir aufgefallen das im Log brav alle 4 Temperatur Werte
mit einer Kommastelle zu sehen sind.
Im Control Center d. PaperUi aber nur einer der drei Werte mit Kommastelle angezeigt wird.
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 14:00
von udo1toni
Vergiss die Control-Seite in Paper UI

Paper UI ist eine administrative Oberfläche und nicht für die tägliche Nutzung gedacht. die Control-Seite ist mehr für erste Tests interessant. Wichtig ist, was im Log und in der Sitemap (oder in HABpanel) angezeigt wird.
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 14:02
von PeterA
Ok,
eine gescheite Sitemap hab ich noch nicht

.
Aber im Log sieht's gut aus.
2019-02-09 13:54:25.261 [vent.ItemStateChangedEvent] - Abluft changed from 18.3 to 18.4
2019-02-09 13:54:30.360 [vent.ItemStateChangedEvent] - Zuluft changed from 14.9 to 14.8
2019-02-09 13:54:30.469 [vent.ItemStateChangedEvent] - Fort_Luft changed from 10.4 to 10.3
2019-02-09 13:54:30.502 [vent.ItemStateChangedEvent] - Abluft changed from 18.4 to 18.3
2019-02-09 13:54:35.643 [vent.ItemStateChangedEvent] - Zuluft changed from 14.8 to 14.9
2019-02-09 13:54:35.696 [vent.ItemStateChangedEvent] - Aussenluft changed from 8.7 to 8.6
2019-02-09 13:54:35.740 [vent.ItemStateChangedEvent] - Fort_Luft changed from 10.3 to 10.4
2019-02-09 13:54:40.876 [vent.ItemStateChangedEvent] - Zuluft changed from 14.9 to 14.8
2019-02-09 13:54:40.950 [vent.ItemStateChangedEvent] - Aussenluft changed from 8.6 to 8.7
Re: Umrechnung ModBus Daten
Verfasst: 9. Feb 2019 17:48
von PeterA
Ok, im Habpanel ist alles okay.
Funktioniert auch mit Charts Jetzt