neues Modul 98_readingsWatcher , war 98_ReadingsSupervision

Begonnen von Wzut, 15 Februar 2016, 20:49:53

Vorheriges Thema - Nächstes Thema

frober

Zitat von: Gisbert am 04 Mai 2023, 15:41:16Hallo frober,

danke für deine Hinweise. Ich werde das prüfen und versuche deine Vorschläge umzusetzen.

Die log-Einträge kommen im Minutentakt, manchmal ist aber eine halbe Stunde kein log-Eintrag da. Anschließend geht es wieder im Minutentakt weiter.

2023.05.03 22:38:08.867 1:  'setreading tuya_local_bf40c31ece6575958bzage active alive' called form userReadings is prohibitedDer Eintrag kommt, egal ob ich das im userReading- oder stateFormat-Attribut definiert habe.

Viele Grüße Gisbert

Da passt was nicht, du hast im stateFormat kein setreading und wieso benutzt du überhaupt setreading im userReading? Mach keinen Sinn ..
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Gisbert

Hallo frober,

zu der Erkenntnis, dass etwas nicht stimmt bin ich auch gekommen - insofern Zustimmung zu deiner Aussage.

Ich benutze kein setreading im Attribut userReading oder stateFormat:
attr tuya_local_bf40c31ece6575958bzage stateFormat {if (ReadingsVal($name,'active','') eq "alive" or ReadingsVal($name,'state','') eq "alive" ) {"power: ".round(ReadingsVal($name,'cur_power',''),1)." W<br/>voltage: ".round(ReadingsVal($name,'cur_voltage',''),1)." V<br/>relay state: ".ReadingsVal($name,'state','')."<br/>device: ".ReadingsVal($name,'active','')} else {"device: ".ReadingsVal($name,'active','')}}
Der log-Eintrag ist ja auch noch witzigerweise identisch, auch dann, wenn es gar kein userReading gibt sondern stattdessen stateFormat.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

frober

#122
Du hast irgendwo ein userReading, das folgendes macht:setreading tuya_local_bf40c31ece6575958bzage active alive
Hast du mal im readingsWatcher selbst geschaut.

Bin mir nicht sicher, ob das auch indirekt geht. D.h. dass du übers userReading den readingsWatcher triggerst.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

Gisbert

Hallo frober,

im readingsWatcher gibt es kein userReading-Attribut:

define myreadingsWatcher readingsWatcher global
attr myreadingsWatcher interval 60
attr myreadingsWatcher readingActivity active
attr myreadingsWatcher room Heizung,Network,Weather
#   CFGFN      ./FHEM/Monitoring.cfg
#   DEF        global
#   FUUID      5f283b49-f33f-e986-a37b-6e4760f3e10ebe51
#   FVERSION   98_readingsWatcher.pm:v2.1.3-s25053/2021-10-07
#   INTERVAL   60
#   NAME       myreadingsWatcher
#   NR         869
#   STATE      ok
#   SVN        25053
#   TYPE       readingsWatcher
#   eventCount 2800
#   READINGS:
#     2023-05-04 22:49:47   HeizungGB112_Heizung.System.Info ok
#     2023-05-04 22:49:47   Klingel_Klingel.System.Info ok
#     2023-05-04 22:49:47   Lichtstaerke.West_MAX44009_Illuminance ok
#     2023-05-04 22:49:47   Lichtstaerke_BH1750_Illuminance ok
#     2023-05-04 22:49:47   Pulsemeter_Pulsemeter.System.Info ok
#     2023-05-04 22:49:47   Stellantriebe.EG_EG.System.Info ok
#     2023-05-04 22:49:47   Temp.EG_EG.System.Info ok
#     2023-05-04 22:49:47   alive           9
#     2023-05-04 22:49:47   dead            0
#     2023-05-04 22:49:47   deadDevs        none
#     2023-05-04 22:49:47   devices         9
#     2023-05-04 22:49:47   readings        9
#     2023-05-04 22:49:47   skipped         0
#     2023-05-04 22:49:47   skippedDevs     none
#     2023-05-04 22:49:47   state           ok
#     2023-05-04 22:49:47   timeoutDevs     none
#     2023-05-04 22:49:47   timeouts        0
#     2023-05-04 22:49:47   tuya_local_bf1f765162617dcd31ido7_cur_voltage ok
#     2023-05-04 22:49:47   tuya_local_bf40c31ece6575958bzage_cur_voltage ok
#
setstate myreadingsWatcher ok
setstate myreadingsWatcher 2023-05-04 22:49:47 .associatedWith HeizungGB112,Klingel,Lichtstaerke,Lichtstaerke.West,Pulsemeter,Stellantriebe.EG,Temp.EG,tuya_local_bf1f765162617dcd31ido7,tuya_local_bf40c31ece6575958bzage
setstate myreadingsWatcher 2023-05-04 22:49:47 HeizungGB112_Heizung.System.Info ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Klingel_Klingel.System.Info ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Lichtstaerke.West_MAX44009_Illuminance ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Lichtstaerke_BH1750_Illuminance ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Pulsemeter_Pulsemeter.System.Info ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Stellantriebe.EG_EG.System.Info ok
setstate myreadingsWatcher 2023-05-04 22:49:47 Temp.EG_EG.System.Info ok
setstate myreadingsWatcher 2023-05-04 22:49:47 alive 9
setstate myreadingsWatcher 2023-05-04 22:49:47 dead 0
setstate myreadingsWatcher 2023-05-04 22:49:47 deadDevs none
setstate myreadingsWatcher 2023-05-04 22:49:47 devices 9
setstate myreadingsWatcher 2023-05-04 22:49:47 readings 9
setstate myreadingsWatcher 2023-05-04 22:49:47 skipped 0
setstate myreadingsWatcher 2023-05-04 22:49:47 skippedDevs none
setstate myreadingsWatcher 2023-05-04 22:49:47 state ok
setstate myreadingsWatcher 2023-05-04 22:49:47 timeoutDevs none
setstate myreadingsWatcher 2023-05-04 22:49:47 timeouts 0
setstate myreadingsWatcher 2023-05-04 22:49:47 tuya_local_bf1f765162617dcd31ido7_cur_voltage ok
setstate myreadingsWatcher 2023-05-04 22:49:47 tuya_local_bf40c31ece6575958bzage_cur_voltage ok

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

frober

Hmm, setze mal ein 'attr global stactrace 1'.

Eines der ersten Meldungen, bevor die Warnung kommt, sollte weiterhelfen.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

dirk.k

Hallo erst mal.
Vielen Dank für das Modul. Ich nutze es intensiv und es hat schon oft geholfen.

Ich hätte noch mal eine Anfrage/feature-request aufzuwärmen, den ich vor langer Zeit gestellt habe...

Problem:
Einzelne Geräte werden zeitweise (z.B. nur im Winterhalbjahr) nicht genutzt. (bei mir immer 2-5 Geräte)
Diese gehen auf DEAD. Ist soweit ja richtig.
Nur möchte ich diese "temporär stillgelegten" Geräte dort nicht haben.
Die Mischung mit "echten" Ausfällen ist unübersichtlich.

Den Hinweis diese Geräte auf "disabled" oder "ignore" zu setzen ... OK, aber einige Geräte haben kein "disabled" (SD_WS07, MQTT_DEVICE). Ausserdem müssten diese bei Wiederanlauf manuell "enabled" werden ... ungünstig, schlechter WAF
Ignore gibt es bei einigen Geräten ebenfalls nicht ... ausserdem verschwinden sie dann (fast) komplett aus dem WebUI und ich müsste sie auch erst manuell wiederbeleben.

Lösungsvorschlag:
Wäre es nicht möglich, wenn ich das Reading für den ReadingsWatcher (activ) manuell auf "disabled" oder "paused" setze, dieses im nächsten Durchlauf nicht auf "dead" geändert wird, sondern erst wieder, wenn ein "alive" kommt?
Dann würde das Gerät in diesem Moment aus seinem Winterschlaf erwachen und ohne manuellen Eingriff vollständig funktionieren...
Und die Liste der "toten" Geräte bliebe sauber .. und ich habe sogar eine neue Liste der pausierten Geräte.

Was haltet ihr davon?

viele Grüße,
Dirk

 

mb201

Hallo Wzut und Co,

vielen Dank für das Modul. Ich nutze die Version:
#  $Id: 98_readingsWatcher.pm 25053 2021-10-07 07:39:29Z Wzut $

Genau so etwas habe ich gesucht, um die Aktualität der Werte von meinen Funkmodulen zu überwachen.
Für die Readings funktioniert das auch soweit und wenn z.B. 10min kein neuer Wert empfangen wird, wird das Reading mit z.B. -255 überschrieben. So weit so gut.

Allerdings habe ich mir eine Device-Übersicht mit stateFormat erstellt, aber da bleiben die alten Werte sichtbar.
Liest stateFormat nicht die aktuellen Readings-Werte?

Meine stateFormat ist folgendes:
attr MQTT2_zigbee_0xa4c138802ad396b9 stateFormat { sprintf ( "Temperature: %.1f°C Humidity: %.1f%% Batt: %d%%", ReadingsVal($name,"temperature",0), ReadingsVal($name,"humidity",0), ReadingsVal($name,"battery",0) ) }

Ist das ein bekanntes Problem?

Danke und Viele Grüße

mb201

OK, nach setzen des Attr readingActivity im ReadingsWatcher wird im zu überwachenden Modul die stateFormat-Ausgabe mit den geänderten Readings aktualisiert.

Viele Grüße