Hallo, ich habe an einem Beckhoff Modbus Koppler BK9000 eine PT100 Temperatureingangsklemme KL3202 und einen Widerstand angeschlossen. Das ganze läuft prima unter Homegear.
Folgender Aufruf liefert:
Dies entspräche einer korrekten Temperatur von 121.7 °C
In openhab3 wird die Klemme erkannt und ich habe die Temperatur in einem .items File folgendermaßen definiert:
Number SolarThermieTemp01 "Temperatur 01 [%f °C]" (UG_HeizungsKeller) {channel="homematic:HG-Beckhoff-KL3202:ccu:KL32020001:1#LEVEL" }
Als Temperatur wird hier allerdings: 0.07 °C ausgegeben. Der Wert ändert sich, wenn ich den PT100 abklemme. Vielleicht hat jemand eine Idee, was ich falsch gemacht haben könnte.
Es wird halt schon mal nicht der Eingangswert zu Openhab korrekt übermittelt. Wenn er kommen würde, könnte ich ihn mit z.b. einer JS-Formatierung ‘passend’ machen.
Z.b. so:
Number SolarThermieTemp01 "Temperatur 01 [JS(pt100.js):%s °C]" (UG_HeizungsKeller) {channel="homematic:HG-Beckhoff-KL3202:ccu:KL32020001:1#LEVEL" }
pt100.js
(function(i) {
var result = Number(i) / 10.0;
return result ;
})(input)
Vielleicht könnte ich auch Homegear upgraden (Bin auf 0.7.48-3324 stable).
Oder ich nutzte gleich das Openhab Modbus Binding. Hatte ich vor 1 Jahr mal versucht. Lief zwar, ist aber immer wieder abgestürzt. Aber da tut sich auch immer mal was…
Habe es jetzt für mich so gelöst, dass ich in Openhab über das exec Binding ein Python Script aufrufe und darin den Wert von Homegear abfrage und zurechtbiege:
GetTemperature.py
#/etc/openhab/scripts
import os
import re
stream = os.popen("sudo homegear -e rc 'print_v($hg->getValue(75,1, "'"LEVEL"'"));'")
actTemp = stream.read()
searchTemp = re.findall('[0-9.]+', actTemp)
if searchTemp:
print float((searchTemp[0]))/10.0
Und im openhab .items File folgendermaßen definiere
Number SolarThermieTemp01 "Temperatur 01 [%.1f °C]" (UG_HeizungsKeller) {channel="exec:command:511e0be1:output"}
Wer sich für einen ähnlichen ‘festverdrahteten’ Aufbau mit Beckhoff KL Klemmen interessiert, der kann sich die Website von Patrick Mayer anschauen: