[gelöst] frigate

Begonnen von pula, 26 Mai 2023, 21:16:41

Vorheriges Thema - Nächstes Thema

pula

#15
hm. mit dieser readingList _scheint_ es jetzt zu funktionieren, ich werde das weiter beobachten
fhem:frigate/available:.* frigate_available
fhem:frigate/events:.* { json2nameValue($EVENT, 'events_', $JSONMAP) }
fhem:frigate/stiege/motion:.* stiege_motion
fhem:frigate/stiege/recordings/state:.* stiege_recordings_state
fhem:frigate/stiege/snapshots/state:.* stiege_snapshots_state
fhem:frigate/stiege/detect/state:.* stiege_detect_state
fhem:frigate/stiege/motion/state:.* stiege_motion_state
fhem:frigate/stiege/improve_contrast/state:.* stiege_improve_contrast_state
fhem:frigate/stiege/motion_threshold/state:.* stiege_motion_treshold_state
fhem:frigate/stiege/motion_contour_area/state:.* stiege_motion_contour_area_state
fhem:frigate/stiege/all:.* stiege_all
fhem:frigate/stiege/person:.* stiege_person
fhem:frigate/stiege/cat:.* stiege_cat
fhem:frigate/stiege/dog:.* stiege_dog
fhem:frigate/stiege/.*/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT); undef }
fhem:frigate/garage/motion:.* garage_motion
fhem:frigate/garage/recordings/state:.* garage_recordings_state
fhem:frigate/garage/snapshots/state:.* garage_snapshots_state
fhem:frigate/garage/detect/state:.* garage_detect_state
fhem:frigate/garage/motion/state:.* garage_motion_state
fhem:frigate/garage/improve_contrast/state:.* garage_improve_contrast_state
fhem:frigate/garage/motion_threshold/state:.* garage_motion_treshold_state
fhem:frigate/garage/motion_contour_area/state:.* garage_motion_contour_area_state
fhem:frigate/garage/all:.* garage_all
fhem:frigate/garage/person:.* garage_person
fhem:frigate/garage/cat:.* garage_cat
fhem:frigate/garage/dog:.* garage_dog
fhem:frigate/garage/.*/snapshot:.* { WriteFile("www/images/garage_snap.jpg", $EVENT); undef }
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

pula

Danke für die Hilfe nochmal!
Funktioniert jetzt super, ich setze den Thread auf gelöst...
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

JF Mennedy

Hi,

Frigate scheint ja noch nicht so angekommen zu sein in FHEM.. Ist der einzige Thread dazu...

Ich habe meine Kameras alle separat als MQTT2 Devices angelegt. In der setList habe ich noch

Detection:select,ON,OFF frigate/Kameraname/detect/set $EVTPART1

hinzugefügt. Alle Innenkameras als structure definiert. So kann ich, wenn wir zu hause sind die Detection aller Innenkameras mit set strFrigateInnen Detection OFF deaktivieren und wenn das Haus leer ist mit set strFrigateInnen Detection ON aktivieren :-)

Gruss Jan

Stumpf

Zitat von: JF Mennedy am 16 November 2023, 11:05:14Frigate scheint ja noch nicht so angekommen zu sein in FHEM.. Ist der einzige Thread dazu...

Hi,

aber es scheinen mehr zu werden  ;D .
Habe mir Frigate auch installiert und muss sagen bin echt begeistert was da schon geht.
Dann habe ich mir Gedanken über die Integration in FHEM gemacht und bin dabei über das hier gestolpert.

Freut mich das hier welche schon damit erfolg hatten!!!


@Pula: Könntet ihr vielleicht eine mögliche Konfig hier einstellen?

Grüße Jürgen

pula

klar, gerne. Meine config sieht so aus:
define frigate MQTT2_DEVICE frigate
attr frigate userattr snap_stiege snap_garage
attr frigate IODev mqtt2
attr frigate disable 0
attr frigate readingList fhem:frigate/available:.* frigate_available\
fhem:frigate/events:.* { json2nameValue($EVENT, 'events_', $JSONMAP) }\
fhem:frigate/stiege/motion:.* stiege_motion\
fhem:frigate/stiege/recordings/state:.* stiege_recordings_state\
fhem:frigate/stiege/snapshots/state:.* stiege_snapshots_state\
fhem:frigate/stiege/detect/state:.* stiege_detect_state\
fhem:frigate/stiege/motion/state:.* stiege_motion_state\
fhem:frigate/stiege/improve_contrast/state:.* stiege_improve_contrast_state\
fhem:frigate/stiege/motion_threshold/state:.* stiege_motion_treshold_state\
fhem:frigate/stiege/motion_contour_area/state:.* stiege_motion_contour_area_state\
fhem:frigate/stiege/all:.* stiege_all\
fhem:frigate/stiege/person:.* stiege_person\
fhem:frigate/stiege/cat:.* stiege_cat\
fhem:frigate/stiege/dog:.* stiege_dog\
fhem:frigate/stiege/.*/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT);; undef }\
fhem:frigate/garage/motion:.* garage_motion\
fhem:frigate/garage/recordings/state:.* garage_recordings_state\
fhem:frigate/garage/snapshots/state:.* garage_snapshots_state\
fhem:frigate/garage/detect/state:.* garage_detect_state\
fhem:frigate/garage/motion/state:.* garage_motion_state\
fhem:frigate/garage/improve_contrast/state:.* garage_improve_contrast_state\
fhem:frigate/garage/motion_threshold/state:.* garage_motion_treshold_state\
fhem:frigate/garage/motion_contour_area/state:.* garage_motion_contour_area_state\
fhem:frigate/garage/all:.* garage_all\
fhem:frigate/garage/person:.* garage_person\
fhem:frigate/garage/cat:.* garage_cat\
fhem:frigate/garage/dog:.* garage_dog\
fhem:frigate/garage/car:.* garage_car\
fhem:frigate/garage/.*/snapshot:.* { WriteFile("www/images/garage_snap.jpg", $EVENT);; undef }
attr frigate snap_garage <html><img src="fhem/images/garage_snap.jpg"></html>
attr frigate snap_stiege <html><img src="fhem/images/stiege_snap.jpg"></html>
attr frigate stateFormat frigate_available
attr frigate verbose 5

Das muss aber mit an Sicherheit grenzender Wahrscheinlichkeit angepasst werden...
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

Stumpf

Guten Morgen,

ja klar muss die angepasst werden.Aber es macht es doch viel einfacher.
Danke Dir.


Beta-User

Moin. Vielleicht wollt ihr einen Blick auf den Code hier werfen https://forum.fhem.de/index.php?msg=1298472.

Damit sollte sich die Zahl der readingList-Einträge reduzieren lassen....

Würde ggf. noch ein "pop" ergänzen für das zumindest auf den ersten Blick unnötige "state"-Element am Ende des Topic-trees (zusätzliche if-Abfrage).
Das Ganze könnte dann ggf. auch besser in eine myUtils wandern.
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

Reinschki

Zitat von: Beta-User am 05 Januar 2024, 08:56:44Moin. Vielleicht wollt ihr einen Blick auf den Code hier werfen https://forum.fhem.de/index.php?msg=1298472.

Damit sollte sich die Zahl der readingList-Einträge reduzieren lassen....

Würde ggf. noch ein "pop" ergänzen für das zumindest auf den ersten Blick unnötige "state"-Element am Ende des Topic-trees (zusätzliche if-Abfrage).
Das Ganze könnte dann ggf. auch besser in eine myUtils wandern.

Hallo Beta-User,
dein Verweis ist umgesetzt und erzeugt alle Readings! Top!
attr frigate readingList frigate/[^:]+:.* { my @toptree = split m{/}x, $TOPIC;;;; shift @toptree;;;; my $rname = join q{_}, @toptree;;;; return {$rname => $EVENT}}
Was bedeutet der letzte Satz mit "pop" usw.?
Wie bekomme ich die Daten vom übermittelten Bild jetzt am besten als Bild, statt wie jetzt als Binärdaten angezeigt.
Das bekomme ich ohne Hilfe leider nicht hin :-(

Kannst du das bitte noch etwas ausführlicher erklären?

VG
Reiner


Beta-User

Zitat von: Reinschki am 21 Januar 2024, 15:22:36Was bedeutet der letzte Satz mit "pop" usw.?
pop wirft einfach das hinterste Element aus dem Array.

Der verlinkte Code dort dazu, dynamisch einen Reading-Namen zu erstellen.

Wie bereits angemerkt: Hier will man etwas mehr, und packt man das ganze daher sinnvollerweise in eine myUtils, um dann zwischen den "normalen" Inhalten und den Bildern zu unterscheiden und die letzteren dann eben direkt auf die Platte zu schreiben - und für alles dann entsprechende Reading- bzw. Dateinamen zu ermitteln...
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

Sany

Hallo frigate-Nutzer,

der Thread ist zwar schon etwas älter, sieht aber so aus, als dreht es sich recht allgemein um frigate und die Integration in fhem.
Nach dem Update von frigate auf 0.14.1 habe ich mich nochmals intensiver damit auseinandergesetzt und eben auch die Integration in fhem vorangetrieben. Deshalb erst mal vielen Dank an die geleistete Vorarbeit. Das macht die Anbindung leichter.
Im wesentlichen habe ich das attribut für ReadingList übernommen und erweitert:
attr frigate readingList frigate/[^:]+:.* { my @toptree = split m{/}x, $TOPIC;; shift @toptree;; my $rname = join q{_}, @toptree;; return {$rname => $EVENT}}\
frigate/available:.* availability
available von frigate schreibt nach availability (damit ist das Reading gleich wie bei meinen zigbee2mqtt devices)

Zusätzlich habe ich aber die "Geschwätzigkeit" von frigate schon im MQTT2_SERVER unterbunden, per ignoreRegexp:
attr myMQTT2Srv ignoreRegexp frigate/(stats|reviews|events|camera_activity)|frigate/[^:"]+/(snapshot:|motion|ptz_autotracker_state)
Das filtert schon eine Menge Zeugs weg, was ich nicht brauche. Muss aber jeder für sich entscheiden. Der Filter filtert auch die Bilder, habe aber dann herausgefunden, dass man das auch in frigate unterdrücken kann. Dazu auf Camera-Level
    mqtt:     
      enabled: false  ## nur das Bild wird hiermit abgeschaltet

eintragen. Wie beschrieben wird nur das Bild nicht per MQTT übertragen, auch wenn man meinen könnte, MQTT wird komplett abgeschaltet.

Was noch durchkommt sind, für jede Camera, im wesentlichen die Detections, wenn das in frigate eingerichtet ist, also person, dog, cat, car etc sowie der Status ob detection, record oder snapshot eingeschaltet ist.
Über setList habe ich für alle Cameras diese 3 Punkte schaltbar eingerichtet:
attr frigate setList Detection_Cam1:select,ON,OFF frigate/Cam1/detect/set $EVTPART1\
Detection_Cam2:select,ON,OFF frigate/Cam2/detect/set $EVTPART1\
Recording_Cam1:select,ON,OFF frigate/Cam1/recordings/set $EVTPART1\
Recording_Cam2:select,ON,OFF frigate/Cam2/recordings/set $EVTPART1\
Snapshot_Cam1:select,ON,OFF frigate/Cam1/snapshots/set $EVTPART1\
Snapshot_Cam2:select,ON,OFF frigate/Cam2/snapshots/set $EVTPART1\
Mit einem IPCAM-Device hole ich per http den snapshot von frigate, dieser wird dann im IPCAM-Modul zwischengespeichrt und per SignalBot verschickt. Das ist erst mal für die Einfahrt realisiert und funktioniert eigentlich besser als ein Bewegungsmelder. Personen die meine Einfahrt zum Haus kommen werden 100% erkannt, auch nachts.

Dann kommt noch ein wenig "fhemagie" in Form von DOIF/notify/at (was jedem so beliebt) dazu und am Ende (in meinem Fall, bestimmt noch nicht alles fertig umgesetzt) schalte ich die Innencameras aus, wenn irgendwer von der Familie zu Hause ist, nachts und bei genereller Abwesenheit werden alle Cameras scharf geschaltet und es kommt eine Meldung, wenn eine Person erkannt wurde. Ich überlege noch, ob ich auch die snapshots in diesem Fall verschicken werde, prinzipiell eigentlich schon, dann sind die Bilder schon mal "außer Haus" fall einer das NAS klaut ;-)
Da sind der Phantasie keine Granzen gesetzt.

Vielleicht ist das für den einen oder anderen eine Anregung, oder es können sich hier ja noch weitere Ideen sammeln, was mit frigate und fhem so alles machbar ist.


Grüße



Sany
fhem als LXC auf Proxmox auf einem minix Z100 , weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....