[Gelöst] Anzeige Aussentemperatur aus Log File

Begonnen von kickero, 09 Mai 2022, 13:15:10

Vorheriges Thema - Nächstes Thema

kickero

Hallo zusammen, habe eine kurze Frage.

habe meine LWZ über FHEM laufen zum auslesen. Alles über Anleitungen erstellt.
Unter anderem wird über die LWZ die Aussentemperatur ausgelesen und in der entsprechenden log Datei fortlaufend (mit den anderen Wert aus der LWZ) gespeichert.
Nun würde ich gerne in dem Fhem Raum Heizung eine direkte Anzeige haben, an der die Aussentemperatur angezeigt wird. (um dies dann auch in FTUI (Tablet) anzeigen zu lassen)

Leider habe ich in den ganzen Beschreibungen die entsprechende Vorgehensweise nicht gefunden.

Kann mir hier jemand einen Tipp geben ? Vielen Dank Grüße Stefan



Beta-User

Um in FHEMWEB "ohne Umweg" über das Logfile einzelne Reading-Werte in einem anderen Raum darzustellen, gäbe es "readingsProxy" (für einen einzelnen Wert) oder readingsGroup (für mehrere, ggf. auch aus verschiedenen Devices).

FTUI kenne ich nicht näher, aber über passende "data-get"-Abgaben sollten sich afaik im Prinzip auch beliebige Werte aus beliebigen Devices darstellen lassen, ohne, dass man dafür irgendwas aus den geloggten Daten "rausgruschteln" müßte.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kickero

Danke für die Rückmeldung.
Über die entsprechende Wiki habe ich es leider nicht geschafft.

Kann jemand mal kurz die entsprechenden Befehle mitteilen ?

Beta-User

https://forum.fhem.de/index.php/topic,71806.0.html

und (FHEM-Kommando-Feld):
help readingsProxy

Die Anfänger-Doku hast du gelesen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

buec65

Commandref  EN

readingsProxy

Define
define <name> readingsProxy <device>:<reading>

Examples:
define myProxy readingsProxy myDS2406:latch.A

jhohmann

Ich kenne das Teil jetzt nicht und FTUI nutze ich auch nicht. Aber wenn die Werte in ein Log File kommen, sollte es auch ein passendes Reading direkt am Objekt geben, oder?
Und wenn ja, kann man sich ein passendes stateFormat basteln, in dem dieser Wert und andere angezeigt werden.
Hier mal ein Beispiel stateFormat von mir für einen Temperatursensor:
attr TemperaturSensorBalkon stateFormat {ReadingsVal($name,'state',undef)." um ".ReadingsTimestamp($name,'state',undef).'<br>Bat '.ReadingsVal($name,'batteryState',undef)." am ".ReadingsTimestamp($name,'batteryState',undef)}
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

kickero

Danke für die Rückmeldung, setzte mich heute Abend mal dran

kickero

ich bekomme es leider nicht hin...hier mal der auszug aus list device

Internals:
   DEF        /dev/ttyUSB0@115200
   DeviceName /dev/ttyUSB0@115200
   FD         8
   FUUID      5fd8ee54-f33f-acdd-5ae5-474e797820dee861
   NAME       Mythz
   NR         15
   NTFY_ORDER 50-Mythz
   PARTIAL   
   STATE      opened
   TYPE       THZ
   VERSION    0.200
   model      n.a._07.02HW239SW4.11Date
   READINGS:
     2022-05-07 20:56:19   AussenTemp      17.5
     2022-05-09 19:49:57   p01RoomTempDayHC1 20 °C
     2022-05-12 19:24:15   p01RoomTempDayHC1SummerMode 25 °C
     2022-05-09 19:49:37   p01RoomTempDayHC2 21 °C
     2022-05-09 19:51:29   p01RoomTempDayHC2SummerMode 25 °C
     2022-05-12 19:24:11   p02RoomTempNightHC1 10 °C
2022-05-09 19:50:23   sFirmware-Id    HW: 239 SW: 4.11 Date: SEP  8 2020
     2022-05-12 19:22:55   sGlobal        outsideTemp: 23.5 flowTemp: 25.1 returnTemp: 23.6 hotGasTemp: 27.5 dhwTemp: 43.2 flowTempHC2: -60 evaporatorTemp: 26.1 condenserTemp: 25.4 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 0 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 0 evaporatorIceMonitor: 1 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 27 inputVentilatorPower: 27 mainVentilatorPower: 0 outputVentilatorSpeed: 31 inputVentilatorSpeed: 23 mainVentilatorSpeed: 0 outside_tempFiltered: 24.4 relHumidity: 0 dewPoint: 0 P_Nd: 15.94 P_Hd: 16.04 actualPower_Qc: 0.000 actualPower_Pel: 0.000 collectorTemp: -60 insideTemp: -60 windowOpen: 0 quickAirVent: 0 flowRate: 0 p_HCw: 1.31 humidityAirOut: 34.04
     2022-05-12 19:21:47   sHC1            outsideTemp: 23.5 x08: 0 returnTemp: 23.7 integralHeat: 0 flowTemp: 25.2 heatSetTemp: 8 heatTemp: 23.7 seasonMode: summer integralSwitch: 100 hcOpMode: normal roomSetTemp: 25 x60: 0 x64: 0 insideTempRC: 25 x72: 51.2 x76: 0 onHysteresisNo: 0 offHysteresisNo: 0 hcBoosterStage: 0
     2022-05-12 19:24:43   sHC2            outsideTemp: 23.5 returnTemp: 23.3 vorlaufTemp: -60 heatSetTemp: 8 heatTemp: 23.3 stellgroesse: 0 seasonMode: summer hcOpMode: normal
  2022-05-12 19:20:20   state           opened
   helper:
Attributes:
   devStateIcon opened:10px-kreis-gruen disconnected:10px-kreis-rot
   dummy      1
   icon       status_frost
   interval_sDisplay 300
   interval_sGlobal 300
   interval_sHC1 300
   interval_sHistory 28800
   interval_sLast10errors 120
   room       1 Heizung



Habe das Reading etwas gekürzt
Hier ist ja der Wert (sglobal outsidetemp) den ich als Anzeige haben möchte.

Kann mir vlt. ein letztes Mal ein Hinweis geben, wie ich die Anzeige hin bekommen. Vielen Dank

Beta-User

Ok, das sieht tricky aus, und das Stammdevice ist auch etwas speziell...

Hier der Versuch eines readingsProxy:
defmod rp_test readingsProxy Mythz:sGlobal
attr rp_test valueFn { my $val = ReadingsNum('Mythz','sGlobal','-1');; $val }


Das klappt aber nur, weil die gewünschte Temperatur die erste Zahl ist, die in dem Reading steht. Falls das sich ändern kann oder du einen weiteren Wert rausextrahieren willst, musst du mit regex arbeiten.

(Und ja, liebe Mitleser, man kann auch userReadings definieren, etc. pp....)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kickero

Zitat von: Beta-User am 13 Mai 2022, 09:06:08
Ok, das sieht tricky aus, und das Stammdevice ist auch etwas speziell...

Hier der Versuch eines readingsProxy:
defmod rp_test readingsProxy Mythz:sGlobal
attr rp_test valueFn { my $val = ReadingsNum('Mythz','sGlobal','-1');; $val }


Das klappt aber nur, weil die gewünschte Temperatur die erste Zahl ist, die in dem Reading steht. Falls das sich ändern kann oder du einen weiteren Wert rausextrahieren willst, musst du mit regex arbeiten.

(Und ja, liebe Mitleser, man kann auch userReadings definieren, etc. pp....)

Danke, hat funktioniert !!

Beta-User

Zitat von: kickero am 13 Mai 2022, 17:15:09
Danke, hat funktioniert !!
:)

Vielleicht noch ein paar hoffentlich weiterführende Hinweise:
/dev/ttyUSB
führt möglicherweise mittelfristig zu Problemen. Meine Empfehlung: Alles was geht "by-id" adressieren (https://wiki.fhem.de/wiki/Mehrere_USB-Ger%C3%A4te_einbinden)

Falls du das Aufhübschen willst, kannst du stateFormat benutzen. Ungetestet z.B.:
attr rp_test stateFormat state °C
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors