at länger als 24 Stunden möglich

Begonnen von ArduPino, 11 November 2018, 15:02:57

Vorheriges Thema - Nächstes Thema

ArduPino

Hallo.

Ich habe mir eine Warnung gebaut, um zu sehen ob z.B. ein Temperaturfühler noch sendet.

GT_WT_02_1:.* defmod at_AussenTemp at +02:00:00 set telegram send @xxx GT_WT_02_1 sendet seit 2 Stunden nicht mehr!

Es gibt zwar ein Modul mit dem man Sensoren überprüfen kann, das ist mir aber zu kompliziert, für die paar Geräte habe ich das von Hand eingebaut.

Nun habe ich einen Bewegungsmelder der aber auch mal mehr als 24 Stunden nicht aktiviert wird.
Ein "at" hat anscheinend den maximalen Zeitraum von 24h.

Deshalb habe ich nun das gemacht:
PIR433:on defmod at_PIR433_24 at +24:00:00 defmod at_PIR433_48 at +24:00:00 set telegram send @xxx Sensor: PIR433 sendet seit 2 Tagen nicht mehr!

Habe das gerade mal mit einer Minute getestet, hat funktioniert soweit ich das erkennen konnte.
Oder gibt es eine "saubere" oder bessere Lösung ?

Beta-User

Wenn at tatsächlich 48:00:00 nicht mögen sollte: stattdessen ein sleep verwenden. Wenn der Vorgang optional auch abgebrochen werden soll: man kann auch sleeps benennen, dann kann man sie auch canceln.
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

Damian

Mit sleep kannst du beliebig verzögern. Beim DOIF gibt´s das Attribut wait für beliebige Verzögerungen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bartman121

Wie heißt das Modul im Sensor-Ausfall zu überwachen?

MadMax-FHEM

Zitat von: bartman121 am 11 November 2018, 20:02:29
Wie heißt das Modul im Sensor-Ausfall zu überwachen?

Vermutlich das hier: 98_Monitoring

https://forum.fhem.de/index.php?topic=68765.0

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)


ArduPino

#6
Ich dachte sleep blockiert das System ?
Oder war das mal so ?

Genau ich meinte "Monitoring", da hab ich aber nicht ganz durchgeblickt, bzw. war mir das zu umständlich.
Auch Watchdog war das jetzt nicht wirklich einfacher.
Es sind ja nur 2 Geräte, deshalb ist das im Moment mit einem at ok gewesen.
Ich behalte das ganze aber mal im Hinterkopf, denn es werden irgend wann mal mehr. Fensterkontakte haben zwar eine Batterieüberwachung, aber man weiß ja nie.

Sleep werde ich mir jetzt mal ansehen.

EDIT:
Ach so ist das, sleep ohne weiteren Befehl blockiert das System ! Mit Befehl also nicht...ok, das teste ich mal.

Danke für die Antworten !

bartman121

das ist jetzt zwar nicht ganz die Antwort auf deine Frage. Aber auch ich überwache Sensoren per AT und Readingsage...


+*3:00:00 {
  my @mzdev=devspec2array("TYPE=LaCrosse");
  my $age_in_seconds;;
  my $max_seconds;;
$max_seconds=900;
    foreach(@mzdev){

$age_in_seconds=ReadingsAge("$_","temperature","");;
if ($age_in_seconds>$max_seconds) {
fhem("set PB message $_:Reading zu alt ($age_in_seconds Sekunden) | LaCrosse | Andreas_PB");
}


    }
}


Alle 3 Stunden werden ALLE LaCrosse Sensoren geprüft. Ist das Reading "temperature" älter als 900Sekunden gibt es eine Meldung per Pushbullet.

Der Code kann natürlich auch beliebig abgewandelt werden.

Hinsichtlich des Monitoring-Moduls bin ich mir nicht sicher ob das überhaupt dafür geht. Dort geht es um den Wert eines Readings, nicht um das Alter. *glaub*

Grüße


ArduPino

#8
Also mit sleep funktioniert das gar nicht bei mir.

In einem notify habe ich diese def
PIR433_Carport:on sleep 60.0 ;; set telegram send ....

Zuerst hatte ich sleep 60;; das meldete mir aber "Cannot interpret 60; as seconds"
Also habe ich ein Leerzeichen dahinter gemacht, dann auch als Dezimalzahl 60.0
Aber es passiert nichts, ich erhalte keine Meldung per Telegram

Was mache ich falsch ?

@bartman121
Vielleicht hilft das anderen, ich bin da etwas überfordert :-)

EDIT:
Also ich musste ein ; entfernen, dann geht es. Habe mir gerade mein FHEM blokiert, zum Glück hatte ich 60 Sekunden eingetragen.
Sind die Beispiele gedachte wenn man direkt in der fhem.cfg arbeitet ???
Das ist immer etwas verwirrend.