Umrechnung ModBus Daten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Umrechnung ModBus Daten

Beitrag 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
Zuletzt geändert von PeterA am 9. Feb 2019 00:41, insgesamt 1-mal geändert.
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Umrechnung ModBus Daten

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Umrechnung ModBus Daten

Beitrag 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...
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Umrechnung ModBus Daten

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Umrechnung ModBus Daten

Beitrag 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.
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Umrechnung ModBus Daten

Beitrag 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)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Umrechnung ModBus Daten

Beitrag 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.
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15246
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Umrechnung ModBus Daten

Beitrag 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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Umrechnung ModBus Daten

Beitrag 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
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Umrechnung ModBus Daten

Beitrag von PeterA »

Ok, im Habpanel ist alles okay.
Funktioniert auch mit Charts Jetzt
- OpenHab 2.4
#PWRUP

Antworten