neues Modul 98_readingsWatcher , war 98_ReadingsSupervision

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

Vorheriges Thema - Nächstes Thema

Wzut

OK, das tut mir jetzt wirklich leid, die Version die z.Z. noch am ersten Post hängt (V1.3) habe ich gar nicht im Einsatz sondern immer noch den Vorgänger V1.2 :(
Anyway , ich bin gerade dabei das Modul auf den aktuellen Stand zu bringen, inzwischen gibt es ja ReadingsAge in fhem.pl und damit entfällt die ganze Timestamp Rechnerei.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Amenophis86

Kein Problem, haben den "Fehler" ja gefunden. Dann warte ich bis du es neu gemacht hast und teste das dann nochmal, bevor ich es in meiner Produktiv Umgebung einsetze.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

curt

Ich stolpere über https://forum.fhem.de/index.php/topic,97489.0.html - zufälliges Mitlesen.

Wow, das klingt ja spannend - warum sind die echten Perlen immer so versteckt?

Die aktuelle Version ist im ersten Beitrag, richtig? Und sie hat es nie in den offiziellen Zweig geschafft, richtig? Eine Dokumentation gibt es nicht - bzw. besteht lediglich aus diesem Thread, auch richtig?

(Ich weiß, dass meine direkte Fragetechnik manchmal für Verstimmungen sorgt, ich bitte um Verzeihung. Ich möchte lediglich schnell verstehen.)
RPI 4 - Jeelink HomeMatic Z-Wave

Wzut

@curt, ja allles richtig. Ich habe aber eben gesehen das die Version im ersten Post nicht meine letzte war und habe sie gerade ausgetauscht.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

curt

Ehe ich alles kaputt mache - darf ich bitte fragen?


oder
define myRS  ReadingsSupervision Wachhund CUL Jee


Wenn ich zum Beispiel 40 Devices überwachen will, dann muss ich die 40 Devices alle in diese Zeile da oben schreiben?

Noch eine Frage:
Das da "???" je nach meinen Vorgaben geschrieben werden - habe ich verstanden. Nun wäre im nächsten Schritt ja schön, eine Liste (gern auch in FTUI) zu haben: Alle Devices, die nicht reagieren. Würde das denn gehen? Wie würde man das machen?
RPI 4 - Jeelink HomeMatic Z-Wave

TK67

Ein schönes Modul, habe schon länger so was in der Richtung gesucht.
Leider wird das Reading nicht mit dem Ersatzwert überschrieben, egal ob dort Zeichen oder Ziffern eingetragen sind.
Das Modul ansich triggert wie vorgesehen den Timeout. Als Anhang ein Bild dazu.

Hier mal ein List vom Device:
Internals:
   CHANGED   
   DEF        06
   FUUID      5c622c63-f33f-c80d-efa5-d63a30cdec9a51fc
   IODev      myLaCrosseGateway
   IODevMissing 1
   IODevName  JLLaCR
   LASTInputDev myLaCrosseGateway
   LaCrosse_lastRcv 2019-02-18 01:25:34
   MSGCNT     690
   NAME       Test
   NR         351
   STATE      T: 22 H: 47
   TYPE       LaCrosse
   addr       06
   battery_new 1
   corr1      0
   corr2      0
   myLaCrosseGateway_MSGCNT 690
   myLaCrosseGateway_TIME 2019-02-18 01:25:34
   previousH  47
   previousT  22
   sensorType 0=T(H)
   Helper:
     DBLOG:
       humidity:
         logdb:
           TIME       1550449388.78014
           VALUE      47
       temperature:
         logdb:
           TIME       1550449388.78014
           VALUE      22
   READINGS:
     2019-02-18 01:25:34   battery         ok
     2019-02-18 01:25:34   humidity        47
     2019-02-18 01:21:55   state           T: 22 H: 47
     2019-02-18 01:25:34   temperature     22
   helper:
     bm:
       LaCrosse_Define:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        1550445727.88531
         max        0.010977029800415
         tot        0.010977029800415
         mAr:
           HASH(0x60b8ad8)
           Arbeitszimmer2 LaCrosse 01
       LaCrosse_Set:
         cnt        271
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        1550445749.10052
         max        0.0028231143951416
         tot        0.0239062309265137
         mAr:
           HASH(0x60b8ad8)
           Arbeitszimmer2
           replaceBatteryForSec
           600
Attributes:
   IODev      JLLaCR
   doAverage  1
   event-min-interval temperature:600,humidity:600,battery:3600
   filterThreshold 3
   readingsSupervision 120,???,temperature,humidity
   resolution 2
   room       LaCrosse


Habe ich eine Einstellung übersehen ?

Gruß Frank
FHEM auf Raspberry Pi 3 Model B+

Wzut

@curt, da muss ich mal den ersten Post ändern, das mit dem Einzeldevice war einmal. Es wird nach der Definition des Device immer ein globales Attribut readingsSupervison hinzugefügt, dann kannst du in jedem deiner 40 Geräte mit der Parametrierung loslegen.
Eine List bekommst du wenn du die Readings des Device abfragst ( siehe Screenshot von TK67 ) ich kann aber auch ein zusätzliches Readings spendieren das alle Timeout Geräte enthält zwecks Weiterverarbeitung. Was wäre denn z.B. für FTUI sinnvoll, Komma getrennte Liste , JSON ?

@TK57, hast Recht :( da habe ich wohl mal bei einem Test etwas zuviel auskommentiert. Schau nochmal heute Abend rein dann schiebe ich eine gefixte Version im ersten Post nach. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

TK67

#37
Danke werde ich machen, noch eine Frage gibt es dieses Attribut client-event nicht mehr ?
Habe zumindest im Dropdown nichts dazu gefunden.
Vielleicht auch etwas zuviel auskommentiert ?  ;)

Zitat von: Wzut am 24 Februar 2016, 19:23:45
a. ich habe im ersten Post eine neue Version des Moduls angehängt
b.  foreach (keys %{$hash->{READINGS}})   ist so drin
c . Events :
@Frank : ja Timeout,, stellt sicher das das reading unverändert bleibt und kein Event erzeugt wird. Egal wie das neue Attribut client-event gesetzt ist.
Neues Attribut client-event 0 oder 1 (default 0)
Bei client-event 0 wird das zu überwachende Device keinen Event erzeugt auch wenn der Wert des Readings durch das Modul überschieben wird.
Damit lässt sich z.B das Problem von Feurerdrache recht einfach lösen, d.h. ersetzen des Wertes bei Timeout ja aber kein Event und damit auch keine "Zacken" im Logfile.
FHEM auf Raspberry Pi 3 Model B+

curt

Zitat von: Wzut am 18 Februar 2019, 08:45:36
@curt, da muss ich mal den ersten Post ändern, das mit dem Einzeldevice war einmal.

Feinfein.

Zitat von: Wzut am 18 Februar 2019, 08:45:36
Es wird nach der Definition des Device immer ein globales Attribut readingsSupervison hinzugefügt, dann kannst du in jedem deiner 40 Geräte mit der Parametrierung loslegen.

Nicht verstanden.
Also wenn ich ab dem Tag X ein neues Device "Temp_Klo" anlege, bekommt das gleich readingsSupervison dazu, vermutlich. Was ist aber mit den schon existierenden Devices?
[/quote]

Zitat von: Wzut am 18 Februar 2019, 08:45:36
Eine List bekommst du wenn du die Readings des Device abfragst ( siehe Screenshot von TK67 )

Und das kann ich leider nicht, zu wenig Können. Zeigst Du mir bitte konkret , wie das geht?

Zitat von: Wzut am 18 Februar 2019, 08:45:36
ich kann aber auch ein zusätzliches Readings spendieren das alle Timeout Geräte enthält zwecks Weiterverarbeitung. Was wäre denn z.B. für FTUI sinnvoll, Komma getrennte Liste , JSON ?

Hmmm. Im Moment habe ich in FTUI zwei Listen. Die eine ist ein Geburtstagskalender, diese Liste wird durch das FTUI-Widget Calview erzeugt. Die andere Liste sind Blitzer, da hat der Autor vermittels Perl die Tabellenformatierung gleich in das Reading gekloppt.

Ich erzähle am Besten, wie ich darauf komme und was ich *eigentlich* will: Es gibt ja zig Vorschläge für Batterieüberwachung. Nur funktionieren die suboptimal. Bei meinen Jeelink-Temperatur-Dingsern ist die Batterie immer in Ordnung - und das Ding sendet schon seit Wochen nicht mehr. Dann sah ich völlig zufällig über einen anderen Thread Dein Modul - und dachte: Das ist es doch?

Denn bei der Gelegenheit könnte ich gleich mit überwachen, was meine (vielen) HTTPMOD-Dingser eigentlich treiben, ob es denen noch gut geht.
RPI 4 - Jeelink HomeMatic Z-Wave

Wzut

Ich habe den ersten Post etwas aufgeräumt und eine neue Version angehängt.

@TK67, das Attribut hatte ich bei irgendeinem Umbau wieder rausgeworfen da es heute keine Events des überwachten Gerätes mehr gibt,
das spielt sich alles zentral im RS Device ab.

@curt, lege es einfach an , das neue Attribut ist sofort an allen alten Geräten verfügbar.
Zum Thema FTUI kann ich die nicht helfen da ich davon null Ahnung habe, bitte ggf. im passenden Forum nachfragen.
Die neue Version hat ein neues Reading timeoutdevs da steht entweder none oder durch Komma getrennt eine Liste der Geräte mit Timeout,
wenn FTUI irgend etwas anderes brauch bitte nochmal melden.
Thema JeeLink , bzw LaCrosse Sensoren : lies mal den ersten Post, wo die Idee und erste Version des Moduls ursprünglich her kommt.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

curt

Zitat von: Wzut am 18 Februar 2019, 19:20:52
Thema JeeLink , bzw LaCrosse Sensoren : lies mal den ersten Post, wo die Idee und erste Version des Moduls ursprünglich her kommt.

Issjalustich ... nein, ich hatte dem Einleitungssatz nicht hinterhergeforscht.

Zitat von: Wzut am 18 Februar 2019, 19:20:52
lege es einfach an , das neue Attribut ist sofort an allen alten Geräten verfügbar.

Allen Mut zusammengenommen und los. Issjaschick.

Kleiner Stolperer war "verfügbar", ich dachte erst, das Attribut würde allen Devices hinzugefügt. Beim Wiki-Artikel müsste man das klarer fassen - ich nehme an, dass es keinen Artikel gibt?

Zitat von: Wzut am 18 Februar 2019, 19:20:52
Die neue Version hat ein neues Reading timeoutdevs da steht entweder none oder durch Komma getrennt eine Liste der Geräte mit Timeout, wenn FTUI irgend etwas anderes brauch bitte nochmal melden.

Keine Zeit, muss spielen! :D
Nein, im Ernst: Darüber denke ich nach, wenn das bei mir über einen gewissen Zeitraum läuft.

Aber mir sind andere Dinge aufgefallen, immer in Bezug darauf, dass das ein möglichst allgemein nutzbares Device werden soll - ich plappere einfach mal vor mich hin:

1) Internals? Wäre es möglich, Internals zu überwachen?
Die Frage hat den Hintergrund HTTPMOD. Da gibt es ein Internal "code" - und das ist "200", wenn der Abruf auf der Ebene http/https erfolgreich abgeschlossen wurde.

2) addLog grätscht rein: Folgende bekannte Situation:


define addLog("Bad","state");;\
          addLog("Stecker_01","power");;\
          addLog("Stecker_02","power");;\
}

# und das machen wir nun alle 5 Minuten
define a_5min at +*00:05 trigger addLog


Da kann ich vermutlich lange überwachen - der Stecker liegt in der Schublade, aber addLog suggeriert, dass der artig an der Steckdose hängt. Ich habe derzeit keine Idee, wie man damit umgeht.

3) Ausschlussliste: Die dürfen fehlen.
Beispielsweise: Movie (mein freundlicher kleiner Rasenmäher mit den aufgeklebten Wackelaugen) hält in der Servicewerkstatt Winterschlaf. Der steht als "tot" auf der Liste.

Da stellt sich die Frage, was die dümmere Lösung ist: Kein Attribut bei der Device "Movie" - oder eine Art Ausschlussliste bei Deinem Modul.

Darf ich da mal träumen?
Im Herbst ist Movie fürchterlich müde. Also fahre ich ihn zu seinem Winterschlafquartier in die Servicewerkstatt, Dein Modul meldet: Movie tot. Stimmt. - Wenn ich da jetzt irgendwo drauf klicken könnte "der darf das" - das wäre toll.

Warte, der Traum ist doch noch nicht zu Ende:
Um Pfingsten wird Movie wach und quengelt: Rasen mähen. Also hole ich ihn aus dem Winterquartier, er meldet sich selbstständig im Wlan an und mäht los (bisheriger Zustand!). Es wäre wunderfein, wenn das Attribut, der Attributteil "der darf tot sein" damit automatisch gelöscht würde.

Bitte nicht aufregen. Ich habe nur vor mich hingeplappert und geträumt.

Geniale Sache, danke Dir!
RPI 4 - Jeelink HomeMatic Z-Wave

TK67

Das ersetzen des Readings funktioniert jetzt ohne Probleme, allerdings erscheinen jetzt willkürlich "Timestamp not found" bei wechselnden Devices. Mal ist es 1 Device und beim nächsten Scan z.b. 3 Devices.

Müllt dann natürlich ein wenig das Log zu.
2019.02.18 23:16:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Arbeitszimmer
2019.02.18 23:16:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Arbeitszimmer
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Schlafzimmer
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Schlafzimmer
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Flur
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Flur
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Aussen
2019.02.18 23:14:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Aussen
2019.02.18 23:13:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Aussen
2019.02.18 23:13:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Aussen
2019.02.18 23:12:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Badezimmer
2019.02.18 23:12:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Badezimmer
2019.02.18 23:12:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Aussen
2019.02.18 23:12:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Aussen
2019.02.18 23:11:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Kuehlschrank
2019.02.18 23:11:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Kuehlschrank
2019.02.18 23:11:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Aussen
2019.02.18 23:11:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Aussen
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Wohnzimmer
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Wohnzimmer
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Kueche
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Kueche
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Aussen
2019.02.18 23:10:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Aussen
2019.02.18 23:08:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Wohnzimmer
2019.02.18 23:08:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Wohnzimmer
2019.02.18 23:07:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Schlafzimmer
2019.02.18 23:07:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Schlafzimmer
2019.02.18 23:06:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Kueche
2019.02.18 23:06:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Kueche
2019.02.18 23:05:40 3: Watchdog_Readings, reading Timestamp humidity not found for device Arbeitszimmer
2019.02.18 23:05:40 3: Watchdog_Readings, reading Timestamp temperature not found for device Arbeitszimmer

FHEM auf Raspberry Pi 3 Model B+

Wzut

@curt,
a. Wiki  : gibt es nicht, Doku schreiben ist nicht meine starke Seite
b. Internals : Internals haben keinen Zeitstempel also kann man nicht überwachen wann sie zuletzt geschrieben wurden, aber HTTPMOD erzeugt doch Readings und die kann man überwachen, d.h. ist dein Internal Code != 200 wird mit Sicherheit irgend ein Reading nicht mit neuen Werten versorgt. Da muß man ansetzen.
c. AddLog : dann ersetz doch den power Wert bei Timeout durch irgendetwas, dann steht der Fehler auch im Log
d. Mähroboter : solche Saison Geräte kann man auf inactiv oder disable setzen, dann übergeht das Modul das Gerät bis es wieder im Einsatz ist.
 
@TK67, Fehler gefunden , neue Version im ersten Post
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

TK67

Jetzt funktioniert so weit alles ohne Probleme. Es gibt allerdings noch einen kleinen Schönheitsfehler.
Die Timestamps unter "Get Devices" werden nicht mehr gefüllt. Vielleicht lässt sich da noch was machen.

FHEM auf Raspberry Pi 3 Model B+

Wzut

das sieht aber nicht aus wie bei mir, ganz sicher das du die letzte Version aus dem ersten Post am Start hast ?
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher