Hallo zusammen
ich bringe gerade einen DS18B20 in meinem FHEM-System zu laufen.
FHEM (frisch geupdated) läuft auf einen Raspi Zero 2 W auf einen aktuellen Bullseye Betriebssystem. Der DS18B20 ist direkt am GPIO 4 angeschlossen.
define TemperaturSensor RPI_1Wire 28-3cfff0958729
attr TemperaturSensor decimals 1
attr TemperaturSensor event-on-update-reading state,Temp
attr TemperaturSensor group Heizung
attr TemperaturSensor mode nonblocking
attr TemperaturSensor pollingInterval 600
attr TemperaturSensor room RPI_1Wire
attr TemperaturSensor stateFormat {sprintf("%1.1f °C",ReadingsNum( $name, "temperature", "?"))}
attr TemperaturSensor userReadings Temp {sprintf("%1.1f °C",ReadingsNum( $name, "temperature", "?"))}
# DEF 28-3cfff0958729
# FUUID 6388507b-f33f-b9fe-0c1f-e202f265cd1382ec
# NAME TemperaturSensor
# NOTIFYDEV global
# NR 64
# NTFY_ORDER 50-TemperaturSensor
# STATE 21.5 °C
# TYPE RPI_1Wire
# eventCount 84
# family 28
# id 3cfff0958729
# model DS18B20
# READINGS:
# 2022-12-01 22:07:43 Temp 21.5 °C
# 2022-12-01 18:27:42 conv_time 95
# 2022-12-01 22:07:43 duration 0.18
# 2022-12-01 18:27:42 precision 9
# 2022-12-01 22:07:43 state T: 21.5
# 2022-12-01 22:07:43 temperature 21.5
# getList:
# udev noArg
# helper:
# duration 0
# write conv_time resolution
# RUNNING_PID:
# abortArg
# abortFn
# bc_pid 85
# finishFn RPI_1Wire_FinishFn
# fn RPI_1Wire_Poll
# pid 1521
# terminated 1
# timeout
# arg:
# setList:
# update noArg
#
setstate TemperaturSensor 21.5 °C
setstate TemperaturSensor 2022-12-01 22:07:43 Temp 21.5 °C
setstate TemperaturSensor 2022-12-01 18:27:42 conv_time 95
setstate TemperaturSensor 2022-12-01 22:07:43 duration 0.18
setstate TemperaturSensor 2022-12-01 18:27:42 precision 9
setstate TemperaturSensor 2022-12-01 22:07:43 state T: 21.5
setstate TemperaturSensor 2022-12-01 22:07:43 temperature 21.5
Soweit funktioniert alles auf Anhieb.
Im Event-Monitor steht aber bei jedem Sensor-Event die Zeichenkette "T: " vor der Temperatur:
2022-12-01 18:27:42 RPI_1Wire TemperaturSensor T: 21.5
Mit UserReadings bekomme ich zwar das "T: " weg, aber dafür steht dann der Name des UserReadings vor der Temperatur:
2022-12-01 18:27:42 RPI_1Wire TemperaturSensor Temp: 21.5 °C
Mit StateFormat bekomme ich nur die Anzeige in FHEM Oberfläche aber nicht im Event-Monitor verändert.
Bei meinen KNX Temperatursensoren wird mir im Event-Monitor nur der Sensorname und die Temperatur dargestellt und so hätte ich es auch gerne bei den 1wire Sensoren .
2022-12-01 22:09:04 KNX Bad_Ist_Temperatur 22.20 °C
Der Grund ist dass ich beim Auswerten der Temperaturen als Plot einfach die Temperaturwerte verwenden möchte ohne immer aufpassen zu müssen von welchen Bus die Daten kommen und welche Spalte ich somit verwenden muss.
Hat jemand von euch eine Lösung wie ich das "T: " weg bekomme?
Beste Grüße
Ned
ich habe mal in der 58_RPI_1Wire.pm die Zeile 591 bearbeitet:
$state.="T: $val ";
umgeändert in
$state.="$val ";
Das "T: " ist jetzt weg:
2022-12-01 22:34:11 RPI_1Wire TemperaturSensor 21.5
Aber ich suche eine noch bessere Lösung. die
1. nicht mit dem nächsten Modul-Update wieder zunichte gemacht wird
2. und wo ich nicht im fremden Code überschreiben muss, vor allem in Respekt zum Ersteller dieses richtig guten Moduls!