Idee gesucht: Feststellen, ob sich ein reading längere Zeit nicht geändert hat

Begonnen von gadget, 30 September 2022, 13:54:00

Vorheriges Thema - Nächstes Thema

gadget

Hallo,

Ich lese über httpmod einen über thingspeak angebundenen Temperatursensor aus. Es kann passieren, dass der Sensor aus irgend einem Grund nichts mehr sendet. Normalerweise tut er das alle 10 Minuten. Dann liest httpmod aber trotzdem brav den letzten Wert bei thngspeak. Ich bräuchte also irgend einen Mechanismus, der erkennt, dass sich das reading über einen längeren Zeitraum (z.B. 6 Stunden) überhaupt nicht verändert hat. Das passiert bei der Temperatur nämlich nie.
Irgend eine Idee ?

Grüße, gadget

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

gadget

Der readingswatcher prüft aber nur, ob das reading aktualisiert wird. Das hilft mir nichts. Das httpmod pollt ja unbeirrt weiter und aktualisiert das reading immer wieder mit dem gleichen Wert auch wenn der Sensor nichts mehr sendet.

Beta-User

Zitat von: gadget am 30 September 2022, 13:59:32
Der readingswatcher prüft aber nur, ob das reading aktualisiert wird. Das hilft mir nichts. Das httpmod pollt ja unbeirrt weiter und aktualisiert das reading immer wieder mit dem gleichen Wert auch wenn der Sonsor nichts mehr sendet.
Auch, wenn du dort "event-on-change-reading" entsprechend gesetzt hast und das ergänzt durch ein passendes "timestamp-on-change-reading"?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

jhohmann

Ich überprüfe, ob meine Feuchtigkeitssensoren noch funktionieren. Die klinken sich warum auch immer zwischendurch mal aus.
Das mache ich mit einem AT (hier die RAW-Definition):
defmod atCheckFeuchtigkeitsSensoren at *04:00:00 {\
my @sensoren = devspec2array("type=ZHAHumidity");;\
my $nichterreichbar = "";;\
foreach(@sensoren) {\
  my $reach = ReadingsNum($_, "reachable", 0);;\
  my $time = ReadingsAge($_, "reachable", 0);;\
  if ($reach == 0 && $time > 2000) {\
  $nichterreichbar = $nichterreichbar.$_.";;";;\
  }\
}\
if (length($nichterreichbar) > 0) {\
  #Nachricht verschicken...;;\
}\
}

Die Elemente oder das konkrete Reading und auch das Alter bitte selbst anpassen.
Raspberry Pi 4 - bookworm / EnOcean - Rollo+Licht, deCONZ - Licht+Sensoren, ZWave - CO Messung, HMCCU mit piVCCU - Heizung+Rollo
plus dovecot, minidlna

gadget


sash.sc

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

gadget

Zitat von: frank am 30 September 2022, 21:52:17
warum nicht die maxage attribute von httpmod?

Das Lesen der Readings per httpmod bei Thingspeak funktioniert ja auch dann weiterhin wenn der Sensor nichts mehr an thingspeak sendet. Man bekommt halt immer nur wieder den letzten Wert Würde also nur bei einer Störung der Kommunikation mit fhem>->thingspeak was bringen, aber den Fehler zwischen sensor <-> thingspeak nicht finden.