RPI_1Wire & DS18B20 : state ohne "T:"

Begonnen von Ned, 01 Dezember 2022, 22:17:40

Vorheriges Thema - Nächstes Thema

Ned

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

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!