[gelöst] Widerspenstige Kamera so lange restarten bis sie pingbar ist

Begonnen von pula, 17 Mai 2023, 23:07:48

Vorheriges Thema - Nächstes Thema

pula

Hallo,

mal so eine Frage nach der best practice.
Ich habe eine lupus-cam, die sich immer mal wieder aufhängt und nicht mehr pingbar ist.
Presence geht dann natürlich auch auf nicht present. Die Kamera hängt an einem Relais, das in fhem eingebunden ist.
Nun ist es so, daß die Cam nicht immer nach dem ersten stromlos machen/Strom wieder geben wieder kommt, sondern oft 2-3 Versuche mit Wartezeit nötig sind.
Wie würdet Ihr eine Routine einbauen, die das abfängt und so oft den Strom ab- und wieder aufdreht, bis die Cam wieder präsent ist?
cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Frank_Huber

Ich würde die Kamera tauschen. 😉

Ansonsten per doif mit entsprechenden warte Attributen. 

MadMax-FHEM

#2
Zitat von: Frank_Huber am 18 Mai 2023, 08:49:29Ich würde die Kamera tauschen. 😉

Da gehe ich mit ;)

Meine Variante wäre:

notify auf absent -> Sub in myUtils: prüfen ob (immer noch) absent (für späteren at-Durchlauf), wenn ja: power off, sleep, power on -> defmod at auf x Zeit und dann da auch die Sub aufrufen

Das läuft dann so lange, bis die Kamera (wieder) present ist...
...und auch falls es nach dem ersten mal off/on nicht geklappt hat, also weiterhin auf absent steht (auch ohne neuen Event, der ja nicht kommt/kommen muss:  weil ja u.U. kein Wechsel zu present war und mit event-on-)...

Wichtig: event-on- bei Presence, nicht dass absent "dauernd" kommt...

Bzw. wäre das auch eine Möglichkeit: "Dauer-Events" zulassen und dann immer nur per notify: off, sleep, on

Die Wiederholung kommt ja dann vom Presence Device solange bis die Kamera wieder tut...
EDIT: die Events halt nicht öfter/schneller als die Wartezeit/sleep ;) (drum würde ich meine erste Variante nehmen)

Aber in summe bin und bleibe ich auch eher hier:
Zitat von: Frank_Huber am 18 Mai 2023, 08:49:29Ich würde die Kamera tauschen. 😉

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)

pula

danke für die hinweise....
ja, die cam tauschen. ist eigentlich ein qualitätsprodukt aus deutschland und war nicht ganz billig. lupus...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Torxgewinde

#4
Ich denke mit einem DOIF und RepeatCmd ist das recht übersichtlich erledigt.

defmod LupusRestarter DOIF ([DeinLupusPresenceDevice] eq "offline")\
    (setreading $SELF Hinweis Lupus ist offline...([$SELF:cmd_count]))\
    (set LupusRelais off-for-timer 10)\
DOELSE\
    (setreading $SELF Hinweis Lupus ist online)
attr LupusRestarter repeatcmd 300
attr LupusRestarter repeatsame 99:1

Wenn das Presence-Device in den State "offline" geht, dann wird der erste DOIF Fall ausgeführt und alle 300s wiederholt. Nach 99 Wiederholung wird aufgegeben. Ist das Device wieder online, wird das Relais nicht geschaltet.

Alternativ hat PRESENCE auch noch ein Attribut powerCmd das man sich anschauen könnte.

pula

danke.
habs mit dem vorschlag von @MadMax-FHEM gelöst, scheint zu tun...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram