ReadingsHistory Refresh Probleme

Begonnen von rspecht, 13 September 2020, 21:44:31

Vorheriges Thema - Nächstes Thema

rspecht

Hallo Leute,

ich bin gerade an meiner Heizung dran...
Dazu gibts ein ModbusAttr mit div. Readings die per UserReading zusammengepuzzled werden.
FBH_Ergänzung Außentemperatur liegt über der eingestellten Heizgrenze 2020-09-13 21:39:59
FBH_Pumpe Aus 2020-09-13 21:39:59
FBH_Status Bereit 2020-09-13 21:39:59
FBH_Text Bereit (Aus): Außentemperatur liegt über der eingestellten Heizgrenze 2020-09-13 21:40:00


FBH_Text {ReadingsVal("ETA_PU15_Modbus", "FBH_Status", "error")." (".ReadingsVal("ETA_PU15_Modbus", "FBH_Pumpe", "error")."): ".ReadingsVal("ETA_PU15_Modbus", "FBH_Ergänzung", "error")}

Nun sind alle Readings in "event-on-change-reading" damit ich die Datenbank aufgeräumt halte.

Zusätzlich existiert eine ReadingsHistory:
defmod FBH_TextLog readingsHistory ETA_PU15_Modbus:FBH_Text
attr FBH_TextLog alias Fußbodenheizung - Historie
attr FBH_TextLog alwaysTrigger 1
attr FBH_TextLog group Heizung
attr FBH_TextLog room Heizung


Hier tauchen die Zeilen nur auf wenn ich das Reading FBH_Text in event-on-update-reading schiebe - dann aber im 1/10 sek. Takt und ohne Rücksicht auf Änderung.
Das UserReading "FBH_Text" in ETA_PU15_Modbus wird fleißig geupdatet wenn ich die Heizung ein/aus schalte. Die ReadingsHistory lässts aber kalt (Sofern FBH_Text in event-on-change ist)
Was mache ich falsch?

Eine ReadingHistory auf ein anderes Reading des Modbus Devices geht ebenso nicht (wohlgemerkt "on Change").
Greife ich auf ein HTTPMOD Device zu geht es auch mit "on change" und zeigt nur geänderte Werte. Es macht mich schier wahnsinnig.

Gruß Raphael

amenomade

Ein "list" von ETA_PU15_Modbus wäre hilfreich.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rspecht

Das ist nicht gerade klein...
Bitteschön :)

Internals:
   CFGFN     
   DEF        1 60 192.168.0.247:502 TCP
   DeviceName 192.168.0.247:502
   EXPECT     idle
   FD         11
   FUUID      5f57640a-f33f-5fc1-8d07-8586f16b248bf02a
   INTERVAL   60
   IODev      ETA_PU15_Modbus
   LASTOPEN   1600064733.3724
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       ETA_PU15_Modbus
   NOTIFYDEV  global
   NR         4915
   NTFY_ORDER 50-ETA_PU15_Modbus
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TRIGGERTIME 1600064760.98696
   TRIGGERTIME_FMT 2020-09-14 08:26:00
   TRIGGERTIME_SAVED
   TYPE       ModbusAttr
   devioLoglevel 3
   lastUpdate 1600064700.98696
   nextOpenDelay 60
   Helper:
     DBLOG:
       FBH_Ergänzung:
         logdb:
           TIME       1599953573.73355
           VALUE       -
       FBH_Mischer:
         logdb:
           TIME       1599813344.59092
           VALUE      0
       FBH_Pumpe:
         logdb:
           TIME       1599813344.48136
           VALUE      Aus
       FBH_Status:
         logdb:
           TIME       1599813344.25642
           VALUE      Bereit
       FBH_Text:
         logdb:
           TIME       1599986937.18916
           VALUE      Bereit (Aus)
       FWM_Beimischpumpe:
         logdb:
           TIME       1599813345.85442
           VALUE      0
       FWM_Pufferpumpe:
         logdb:
           TIME       1599813345.74238
           VALUE      0
       FWM_Status:
         logdb:
           TIME       1599813345.62871
           VALUE      Bereit
       FWM_Zirkulation:
         logdb:
           TIME       1599813345.97138
           VALUE      Aus
       Kessel_Kesselpumpe:
         logdb:
           TIME       1599813344.14562
           VALUE      0
       Kessel_Pelletsbehälter:
         logdb:
           TIME       1599813343.99071
           VALUE      4200
       Kessel_Status:
         logdb:
           TIME       1599813343.76872
           VALUE      Bereit
       Kesseldruck:
         logdb:
           TIME       1599813343.65747
           VALUE      1.46
       Solar_Ertrag_Heute:
         logdb:
           TIME       1599813345.2242
           VALUE      0.1
       Solar_Kollektorpumpe:
         logdb:
           TIME       1599813344.70098
           VALUE      23.2
       Solar_Ladepumpe:
         logdb:
           TIME       1599813344.81179
           VALUE      20
       Solar_Leistung:
         logdb:
           TIME       1599813345.32741
           VALUE      1
       Solar_Schichtladeventil:
         logdb:
           TIME       1599813344.99097
           VALUE      Mitte
       Solar_Solarvorrang:
         logdb:
           TIME       1599813345.50442
           VALUE      Mittel
       Solar_Status:
         logdb:
           TIME       1599813345.10253
           VALUE      Laden
       WW_Status:
         logdb:
           TIME       1599568106.41553
           VALUE      Bereit
       state:
         logdb:
           TIME       1600064733.38268
           VALUE      CONNECTED
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-09-14 08:25:01   FBH_Ergänzung   -
     2020-09-14 08:25:01   FBH_Mischer     0
     2020-09-14 08:25:01   FBH_Pumpe       Ein
     2020-09-14 08:25:01   FBH_Status      Heizen
     2020-09-14 08:25:03   FBH_Text        Heizen (Ein):  -
     2020-09-14 08:25:03   FWM_Beimischpumpe 0
     2020-09-14 08:25:02   FWM_Pufferpumpe 0
     2020-09-14 08:25:02   FWM_Status      Bereit
     2020-09-14 08:25:03   FWM_Zirkulation Aus
     2020-09-14 08:25:01   Kessel_Kesselpumpe 0
     2020-09-14 08:25:01   Kessel_Pelletsbehälter 4200
     2020-09-14 08:25:01   Kessel_Status   Bereit
     2020-09-14 08:25:01   Kesseldruck     1.5
     2020-09-14 08:25:02   Solar_Ertrag_Heute 0
     2020-09-14 08:25:02   Solar_Kollektorpumpe 0
     2020-09-14 08:25:02   Solar_Ladepumpe 0
     2020-09-14 08:25:02   Solar_Leistung  0
     2020-09-14 08:25:02   Solar_Schichtladeventil Mitte
     2020-09-14 08:25:02   Solar_Solarvorrang Hoch
     2020-09-14 08:25:02   Solar_Status    Bereit
     2020-09-08 14:28:26   WW_Status       Bereit
     2020-09-14 08:25:33   state           opened
   REMEMBER:
     lid        1
     lname      ETA_PU15_Modbus
     lrecv      1600064703.19273
     lsend      1600064703.18587
   defptr:
     ETA_PU15_Modbus 1
   gotReadings:
     FWM_Zirkulation Aus
   lastRead:
     h-1000     1599563982.81209
     h-1100     1599563982.64801
     h1000      1600064701.03045
     h1002      1600064701.19796
     h1004      1600064701.30723
     h1006      1600064701.41814
     h1008      1600064701.5278
     h1100      1600064701.63797
     h1102      1600064701.74821
     h1104      1600064701.86193
     h1106      1600064701.97361
     h1300      1600064702.08632
     h1302      1600064702.19843
     h1304      1600064702.30756
     h1306      1600064702.41825
     h1308      1600064702.52857
     h1310      1600064702.63825
     h1312      1600064702.74852
     h1400      1600064702.85916
     h1402      1600064702.9694
     h1404      1600064703.08382
     h1406      1600064703.19725
Attributes:
   event-on-change-reading FBH_Mischer, FBH_Pumpe, FWM_Beimischpumpe, FWM_Pufferpumpe, FWM_Status, FWM_Zirkulation, Kessel_Kesselpumpe, Kessel_Pelletsbehälter, Kessel_Status, Kesseldruck, Solar_Ertrag_Heute, Solar_Kollektorpumpe, Solar_Ladepumpe, Solar_Leistung, Solar_Schichtladeventil, Solar_Solarvorrang, Solar_Status, WW_Status, state, FBH_Ergänzung, FBH_Status, FBH_Text
   group      Heizung
   obj-h1000-expr $val/100
   obj-h1000-len 2
   obj-h1000-poll 1
   obj-h1000-reading Kesseldruck
   obj-h1000-unpack N
   obj-h1002-len 2
   obj-h1002-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
   obj-h1002-poll 1
   obj-h1002-reading Kessel_Status
   obj-h1002-unpack N
   obj-h1004-len 2
   obj-h1004-map 1080:Voll, 1081:Nicht Voll, 1082:Verriegelt, 1083:Sicherung defekt, 1084:Keine Klemme zugewiesen, 1085:Keine Antwort des CAN-Knotens
   obj-h1004-poll 1
   obj-h1004-reading Kessel_Pelletsbehälter
   obj-h1004-unpack N
   obj-h1006-len 2
   obj-h1006-map 4201:Aschebox wurde entfernt, 4202:Emissionsmessung für Nennlast durchführen, 4203:Emissionsmessung für Teillast durchführen, 4204:Entaschung ist fehlgeschlagen, 4205:Entaschung wird anschließend gestartet, 4206:Es liegt eine Störung vor, 4207:Kessel ist zu heiß (Übertemperatur), 4208:Isoliertür ist offen, 4209:Kessel wurde Ausgeschaltet, 4210:Lambdasonde wird kalibriert, 4211:Pelletsbehälter wird aufgefüllt, 4212:Stoker wird entleert, 4213:TWIN Betrieb,4214:Verriegelung ist aktiv, 4215:Verzögerungszeit läuft ab, 4216:Vorbereitung auf Emissionsmessung, 4217:Zündung ist eingeschaltet, 4218:Feuerraumtür ist offen, 4219:Emissionsmessung durchführen, 4220:Außerhalb der Bereitschaftszeiten, 4221:Solltemperatur ist überschritten, 4222:Versorgungsspannung für Pumpe Mischer oder Umschaltventil fehlt
   obj-h1006-poll 1
   obj-h1006-reading Kessel_Pelletsbehälter
   obj-h1006-unpack N
   obj-h1008-expr $val/10
   obj-h1008-len 2
   obj-h1008-poll 1
   obj-h1008-reading Kessel_Kesselpumpe
   obj-h1008-unpack N
   obj-h1100-len 2
   obj-h1100-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
   obj-h1100-poll 1
   obj-h1100-reading FBH_Status
   obj-h1100-unpack N
   obj-h1102-len 2
   obj-h1102-map 4050:Urlaubsprogramm ist Aktiv, 4051:Erzeuger ist nicht warm Genug, 4052:Berechnete Vorlauftemperatur liegt unter dem Mindestwert, 4053:Raumtemperatur ist überschritten, 4054:Außentemperatur liegt über der eingestellten Heizgrenze, 4055:Warmwasser wird vorrangig geladen, 4056:Raumtemperatur liegt unter der Frostschutzgrenze, 4057:Vorlauftemperatur liegt unter der Frostschutzgrenze, 4058:Restwärme wird abgeführt, 4059:Überschüssige Wärme wird abgeführt, 4060:Estrichausheizprogramm ist aktiv, 4061:Vorlauftemperaturfühler ist defekt, 4062:Externe Freigabe ist nicht aktiv, 4063:Keine Anforderung der Räume vorhanden, 4064:Ventile werden geöffnet, 4065:Mischer wird aufgrund zu hoher Vorlauftemperatur geschlossen, 4066:Handtuchtrockner ist Aktiv, 4067: -
   obj-h1102-poll 1
   obj-h1102-reading FBH_Ergänzung
   obj-h1102-unpack N
   obj-h1104-expr $val
   obj-h1104-len 2
   obj-h1104-map 1040:Aus, 1041:Ein, 1042:Verriegelt, 1043:Sicherung defekt
   obj-h1104-poll 1
   obj-h1104-reading FBH_Pumpe
   obj-h1104-unpack N
   obj-h1106-expr $val/10
   obj-h1106-len 2
   obj-h1106-poll 1
   obj-h1106-reading FBH_Mischer
   obj-h1106-unpack N
   obj-h1300-expr $val/10
   obj-h1300-len 2
   obj-h1300-poll 1
   obj-h1300-reading Solar_Kollektorpumpe
   obj-h1300-unpack N
   obj-h1302-expr $val/10
   obj-h1302-len 2
   obj-h1302-poll 1
   obj-h1302-reading Solar_Ladepumpe
   obj-h1302-unpack N
   obj-h1304-len 2
   obj-h1304-map 3880:Mitte, 3881:Oben
   obj-h1304-poll 1
   obj-h1304-reading Solar_Schichtladeventil
   obj-h1304-unpack N
   obj-h1306-len 2
   obj-h1306-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
   obj-h1306-poll 1
   obj-h1306-reading Solar_Status
   obj-h1306-unpack N
   obj-h1308-expr $val/10
   obj-h1308-len 2
   obj-h1308-poll 1
   obj-h1308-reading Solar_Ertrag_Heute
   obj-h1308-unpack N
   obj-h1310-expr $val/10
   obj-h1310-len 2
   obj-h1310-poll 1
   obj-h1310-reading Solar_Leistung
   obj-h1310-unpack N
   obj-h1312-len 2
   obj-h1312-map 2570:Aus, 2571:Hoch, 2572:Mittel, 2573:Aus - zu kalt, 2574:Deaktiviert
   obj-h1312-poll 1
   obj-h1312-reading Solar_Solarvorrang
   obj-h1312-unpack N
   obj-h1400-len 2
   obj-h1400-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
   obj-h1400-poll 1
   obj-h1400-reading FWM_Status
   obj-h1400-unpack N
   obj-h1402-expr $val/10
   obj-h1402-len 2
   obj-h1402-poll 1
   obj-h1402-reading FWM_Pufferpumpe
   obj-h1402-unpack N
   obj-h1404-expr $val/10
   obj-h1404-len 2
   obj-h1404-poll 1
   obj-h1404-reading FWM_Beimischpumpe
   obj-h1404-unpack N
   obj-h1406-expr $val
   obj-h1406-len 2
   obj-h1406-map 1040:Aus, 1041:Ein, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen, 1045:Keine Antwort des CAN-Knoten
   obj-h1406-poll 1
   obj-h1406-reading FWM_Zirkulation
   obj-h1406-unpack N
   room       Heizung
   sortUpdate 1
   userReadings FBH_Text {ReadingsVal("ETA_PU15_Modbus", "FBH_Status", "error")." (".ReadingsVal("ETA_PU15_Modbus", "FBH_Pumpe", "error")."): ".ReadingsVal("ETA_PU15_Modbus", "FBH_Ergänzung", "error")}
   userattr   obj-h1000-expr obj-h1000-len obj-h1000-poll obj-h1000-reading obj-h1000-unpack obj-h1002-len obj-h1002-map obj-h1002-poll obj-h1002-reading obj-h1002-unpack obj-h1004-expr obj-h1004-len obj-h1004-map obj-h1004-poll obj-h1004-reading obj-h1004-unpack obj-h1006-len obj-h1006-map obj-h1006-poll obj-h1006-reading obj-h1006-unpack obj-h1008-expr obj-h1008-len obj-h1008-poll obj-h1008-reading obj-h1008-unpack obj-h1100-len obj-h1100-map obj-h1100-poll obj-h1100-reading obj-h1100-unpack obj-h1102-len obj-h1102-map obj-h1102-poll obj-h1102-reading obj-h1102-unpack obj-h1104-expr obj-h1104-len obj-h1104-map obj-h1104-poll obj-h1104-reading obj-h1104-unpack obj-h1106-expr obj-h1106-len obj-h1106-poll obj-h1106-reading obj-h1106-unpack obj-h1300-expr obj-h1300-len obj-h1300-poll obj-h1300-reading obj-h1300-unpack obj-h1302-expr obj-h1302-len obj-h1302-poll obj-h1302-reading obj-h1302-unpack obj-h1304-len obj-h1304-map obj-h1304-poll obj-h1304-reading obj-h1304-unpack obj-h1306-len obj-h1306-map obj-h1306-poll obj-h1306-reading obj-h1306-unpack obj-h1308-expr obj-h1308-len obj-h1308-poll obj-h1308-reading obj-h1308-unpack obj-h1310-expr obj-h1310-len obj-h1310-poll obj-h1310-reading obj-h1310-unpack obj-h1312-len obj-h1312-map obj-h1312-poll obj-h1312-reading obj-h1312-unpack obj-h1400-len obj-h1400-map obj-h1400-poll obj-h1400-reading obj-h1400-unpack obj-h1402-expr obj-h1402-len obj-h1402-poll obj-h1402-reading obj-h1402-unpack obj-h1404-expr obj-h1404-len obj-h1404-poll obj-h1404-reading obj-h1404-unpack obj-h1406-expr obj-h1406-len obj-h1406-map obj-h1406-poll obj-h1406-reading obj-h1406-unpack

amenomade

#3
Mach im event-on-change-reading Attribut die Leerzeichen weg.
Wobei ich nicht ganz versteh, warum Du alle Readings da auflistest. ein "event-on-change-reading .*" ,hätte gereicht, oder?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rspecht

Zitat von: amenomade am 14 September 2020, 08:52:14
Mach im event-on-change-reading Attribut die Leerzeichen weg.
Wobei ich nicht ganz versteh, warum Du alle Readings da auflistest. ein "event-on-change-reading .*" ,hätte gereicht, oder?

Sehr cool, das war es :)
Das .* ist mir nicht eingefallen - danke dafür.
Nun gibts nur noch das "Problem" dass das User-Reading immer aktualisiert wird wenn sich etwas ändert - die Readings fliegen aber nach und nach ein. So bekomme ich solche komischen Artefakte:
Fußbodenheizung - Historie
10:54:02  ETA_PU15_Modbus FBH_Text: Bereit (Aus): Außentemperatur liegt über der eingestellten Heizgrenze
10:54:02  ETA_PU15_Modbus FBH_Text: Bereit (Aus): -
10:53:37  ETA_PU15_Modbus FBH_Text: Ausgeschaltet (Aus): -
10:53:37  ETA_PU15_Modbus FBH_Text: Ausgeschaltet (Aus): Außentemperatur liegt über der eingestellten Heizgrenze


Dabei ist das richtig:
Fußbodenheizung - Historie
10:54:02  ETA_PU15_Modbus FBH_Text: Bereit (Aus): Außentemperatur liegt über der eingestellten Heizgrenze
10:53:37  ETA_PU15_Modbus FBH_Text: Ausgeschaltet (Aus): -


Wie bekomme ich das gelöst?

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

rspecht

Zitat von: amenomade am 14 September 2020, 12:30:00
Trigger auf dem userReading definieren.
https://fhem.de/commandref_DE.html#userReadings

Ich könnte nun herausfinden wierum die Modbus Daten aktualisiert werden und dann auf das Letzte triggern.
Aber ich fände es cooler einen Trigger zu setzen der schaut ob das Device komplett gelesen wurde - nur wie?

Wie finde ich solch informationen ohne zu wissen was man genau sucht? Ich arbeite parallel das Tutorial von m Kleine durch (haus-automatisierung.com).

amenomade

Zitat von: rspecht am 14 September 2020, 12:48:23

Aber ich fände es cooler einen Trigger zu setzen der schaut ob das Device komplett gelesen wurde - nur wie?

Das gibt es nicht. Aber idR werden die Readings immer in der gleichen Reihenfolge erstellt, entweder als "Packet" oder einzeln. Mit mseclog Attribut kannst Du ggf feststellen, welches das letzte immer ist. Darauf triggern
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus