[gelöst] frigate

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

Vorheriges Thema - Nächstes Thema

pula

Hallo,

wurde von einem Freund auf frigate aufmerksam gemacht, das ich mal testweise in einem container installiert habe. schaut nicht schlecht aus.
hat das jemand schon in fhem integriert und wäre bereit die (mqtt) config zu teilen?
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

betateilchen

Zitat von: pula am 26 Mai 2023, 21:16:41und wäre bereit die (mqtt) config zu teilen?

Das ist doch vollständig dokumentiert - was ist Dir unklar, um das in FHEM zu nutzen?

https://github.com/blakeblackshear/frigate/blob/dev/docs/docs/integrations/mqtt.md
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

pula

nix, ich hatte nur gehofft, daß jemand das schon gemacht hat und evtl ein template hat oder so...
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

Zusatzfrage:
in readings der cam werden (anscheinend) binärdaten mit einem bild (snapshot) geliefert.
die daten fangen so an:
����␐JFIF␁␁␁␁��C
␇␇␈␇␆
␈␈␈␋

␋␎␘␐␎

␎␝␕␖␑␘#␟%$"␟"!&+7/&)4)!"0A149;>>>%.DIC<H7=>;��C␁
␋␋␎
Dürfte also ein jfif-bild sein. Gibt es eine Möglichkeit, das in fhem anzeigen zu lassen?
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

rudolfkoenig

ZitatDürfte also ein jfif-bild sein. Gibt es eine Möglichkeit, das in fhem anzeigen zu lassen?
Ja, sinnvollerweise speichert man es irgendwo unter /opt/fhem/www (z.Bsp. mit der WriteFile($filename, $data) Funktion aus Utils.pm), dann kann man auf diese gespeicherte Datei einen (HTML) Link setzen.

pula

Danke für die rasche und tolle Antwort!
WriteFile haut so weit mal hin, das bild wird mit einem viewer angezeigt.
{WriteFile("www/test.jpg", ReadingsVal('frigate','garage_person_snapshot',''))}Leider tu ich mich in fhemweb schwer, dann dieses Bild anzeigen zu lassen.
mit einem define blubb weblink image www/test.jpg und anschliessendem set WEB rereadicons wird das bild nur "broken" angezeigt.
Bei der img-source im Browser wird das so aufgelöst:
<img src="www/test.jpg">Die Adresse des Bildes ist dann https://192.168.1.11:8083/www/test.jpgIch hab jetzt alle möglichen Pfade ausprobiert, die mir so eingefallen sind, aber irgendwie komm ich nicht weiter. Wie müsste denn die img-src aussehen, damit fhem das bild per http serviert?
Sorry, wenn ich mich dämlich anstelle....
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

rudolfkoenig

Bei Anzeigen aus dem www Verzeichnis habe ich mich geirrt, es muss ein Unterverzeichnis von www sein, z.Bsp. www/images.

Wenn die Datei gespeichert ist, hat man mehrere Moeglichkeiten.
- mit einem unbenutzten Attribut (statt comment kann man auch per userattr was Eigenes definieren):
attr dev comment <html><img src="fhem/images/test.jpg"></html>- mit einem weblink:
define wl weblink image fhem/images/test.jpg

Mit eine readingsList Zeile wie
<topic>:.* { WriteFile("www/images/test.jpg", $EVENT) } koennte man die Daten auch direkt speichern, ohne die Detailansicht "kaputtzumachen".

pula

Super, vielen, vielen Dank!
Das funktioniert wie es soll :-)
Und das direkt ins readingsList mit reinzunehmen ist genial!
Danke!
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

pula

#8
hm. wobei das WriteFile spannenderweise nicht ausgeführt wird. Stattdessen wird ein attribut mit folgendem Namen erzeugt:
{ WriteFile("www/images/stiege_snap.jpg", $EVENT) }Also inklusive der geschwungenen Klammern. Und in dem Attribut werden die Bilddaten abgelegt. Spannend.
Ein fhem:frigate/events:.* { json2nameValue($EVENT, 'events_', $JSONMAP) } in der ReadingList funktioniert tadellos.
Die Zeile, die ich in der ReadingList eingefügt habe:
fhem:frigate/stiege/person/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT) }ist doch eigentlich syntaktisch gleich und sollte auch ausgeführt werden.
Im log findet sich dazu nur folgendes:
MQTT2_DEVICE_Parse: frigate frigate/stiege/cat/snapshot => { WriteFile("www/images/stiege_snap.jpg", $EVENT) } Merkwürdig
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

Icinger

readingList <regexp> [readingName|perl-Expression] ...
If the regexp matches topic:message or cid:topic:message either set readingName to the published message, or evaluate the perl expression, which has to return a hash consisting of readingName=>readingValue entries.

Ich unterstelle mal, dass WriteFile keinen hash zurückgibt.

Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

rudolfkoenig

ZitatIch unterstelle mal, dass WriteFile keinen hash zurückgibt.
Stimmt, das kommt davon, wenn man die eigenen Beispiele nicht durchtestet.

Naechster Versuch:

Wenn readingList folgende Zeile enthaelt:
fhem:frigate/stiege/person/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT);; {snapshot =>'<html><img src="fhem/images/stiege_snap.jpg"></html>' } }
dann erzeugt
mosquitto_pub -i fhem -t frigate/stiege/person/snapshot -f SP-120.jpg
das angehaengte Bild.

pula

Danke für Eure Bemühungen.
Ich muss zu meiner Schande gestehen, daß das Problem an meinem System lag :-(
Ich hatte die Bilder im Eifer des Gefechts zum Testen als root im filesystem kopiert und übersehen, daß der fhem-user dann ja nicht drüberschreiben kann. Schande über mich, aber das ist mir leider wirklich erst jetzt beim Test Deiner Zeilen aufgefallen.
Im log wäre das eh auch aufgefallen:
2023.06.05 07:00:15 1: ERROR WriteFile www/images/stiege_snap.jpg: Permission deniednur hab ich grad ziemlich viel auf verbose und das übersehen :-(
Danke auf jeden Fall nun _scheint_ es zu tun. schaumamoi die nächsten Tage...
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

pula

hm. irgendwas mache ich wahrscheinlich falsch.
Es werden jetzt zwar die Attribute mit den Bildern richtig angezeigt, ZUSÄTZLICH habe ich aber Readings mit den Bildern UND den Binärdaten.  :o
Das ist zwar nicht tragisch, weil es der Funktionalität keinen Abbruch tut, aber schön ist es irgendwie auch nicht.
Ich hab mal ein list von dem Device angehängt, ich hoffe, man kann das so halbwegs lesen - die Bilder sieht man natürlich nicht. Falls jemand noch Ideen hätte, würde ich mich sehr freuen.
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

rudolfkoenig

Zitathm. irgendwas mache ich wahrscheinlich falsch.
Davon gehe ich auch aus, ich weiss aber nicht was, meine Experimente erzeugen kein "Reading-Muell" wie im Anhang.


Mein abgewandelter Vorschlag mit
WriteFile("www/images/garage_snap.jpg", $EVENT); {snap_garage =>'' } } ist vermutlich auch nicht das, was man will, ich tippe da eher auf sowas:
WriteFile("www/images/garage_snap.jpg", $EVENT); undef }

Ich hab mal ein list von dem Device angehängt,
Bitte statt list den "Copy for forum.fhem.de" Link verwenden (oder "Raw definition, With internals" kopieren), da sind Mehrdeutigkeiten wegen fehlende \ oder ;; ausgeschlossen.

pula

#14
vielen, vielen Dank!
Das mit dem copy_for_forum ist mir neu (oder ich hab es vergessen), danke für den Hinweis!
Hab noch ein wenig herumgebastelt, komm aber irgendwie nicht weiter. Evtl mach ich das dann doch mit notify und einer einer sub.
So schaut das device momentan aus (die Bilddaten hab ich durch den String BINAERDATEN ersetzt)

define frigate MQTT2_DEVICE frigate
attr frigate userattr snap_stiege snap_garage
attr frigate IODev mqtt2
attr frigate readingList 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/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/available:.* frigate_available\
fhem:frigate/stiege/all:.* stiege_all\
fhem:frigate/garage/all:.* garage_all\
fhem:frigate/events:.* { json2nameValue($EVENT, 'events_', $JSONMAP) }\
fhem:frigate/stiege/person:.* stiege_person\
fhem:frigate/stiege/cat:.* stiege_cat\
fhem:frigate/stiege/.*/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT);; undef }\
fhem:frigate/stiege/dog:.* stiege_dog\
fhem:frigate/garage/person:.* garage_person\
fhem:frigate/garage/.*/snapshot:.* { WriteFile("www/images/garage_snap.jpg", $EVENT);; undef }\
fhem:frigate/garage/car:.* garage_car
attr frigate room MQTT,Verschiedenes
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 connected
attr frigate verbose 5
#   CID        frigate
#   DEF        frigate
#   FUUID      647ef00f-f33f-527c-fc0f-87aab36aa7d19255
#   IODev      mqtt2
#   LASTInputDev mqtt2
#   MSGCNT     168
#   NAME       frigate
#   NR         861
#   STATE      connected
#   TYPE       MQTT2_DEVICE
#   eventCount 167
#   mqtt2_MSGCNT 168
#   mqtt2_TIME 2023-06-06 12:11:35
#   OLDREADINGS:
#   READINGS:
#     2023-06-06 10:45:25   IODev           mqtt2
#     2023-06-06 12:11:14   events_after_area 195940
#     2023-06-06 12:11:14   events_after_box_1 108
#     2023-06-06 12:11:14   events_after_box_2 568
#     2023-06-06 12:11:14   events_after_box_3 496
#     2023-06-06 12:11:14   events_after_box_4 1073
#     2023-06-06 12:11:14   events_after_camera stiege
#     2023-06-06 11:58:31   events_after_end_time 1686045510.222514
#     2023-06-06 12:11:14   events_after_false_positive false
#     2023-06-06 12:11:14   events_after_frame_time 1686046274.23953
#     2023-06-06 12:11:14   events_after_has_clip true
#     2023-06-06 12:11:14   events_after_has_snapshot false
#     2023-06-06 12:11:14   events_after_id 1686044416.660174-tnn62d
#     2023-06-06 12:11:14   events_after_label person
#     2023-06-06 12:11:14   events_after_motionless_count 8905
#     2023-06-06 12:11:14   events_after_position_changes 1
#     2023-06-06 12:11:14   events_after_ratio 0.7683168316831683
#     2023-06-06 12:11:14   events_after_region_1 0
#     2023-06-06 12:11:14   events_after_region_2 356
#     2023-06-06 12:11:14   events_after_region_3 724
#     2023-06-06 12:11:14   events_after_region_4 1080
#     2023-06-06 12:11:14   events_after_score 0.74609375
#     2023-06-06 12:11:14   events_after_snapshot_time 1686044424.630513
#     2023-06-06 12:11:14   events_after_start_time 1686044416.660174
#     2023-06-06 12:11:14   events_after_stationary true
#     2023-06-06 12:11:14   events_after_top_score 0.84375
#     2023-06-06 12:11:14   events_before_area 195940
#     2023-06-06 12:11:14   events_before_box_1 108
#     2023-06-06 12:11:14   events_before_box_2 568
#     2023-06-06 12:11:14   events_before_box_3 496
#     2023-06-06 12:11:14   events_before_box_4 1073
#     2023-06-06 12:11:14   events_before_camera stiege
#     2023-06-06 12:11:14   events_before_false_positive false
#     2023-06-06 12:11:14   events_before_frame_time 1686046214.020258
#     2023-06-06 12:11:14   events_before_has_clip true
#     2023-06-06 12:11:14   events_before_has_snapshot false
#     2023-06-06 12:11:14   events_before_id 1686044416.660174-tnn62d
#     2023-06-06 12:11:14   events_before_label person
#     2023-06-06 12:11:14   events_before_motionless_count 8606
#     2023-06-06 12:11:14   events_before_position_changes 1
#     2023-06-06 12:11:14   events_before_ratio 0.7683168316831683
#     2023-06-06 12:11:14   events_before_region_1 0
#     2023-06-06 12:11:14   events_before_region_2 356
#     2023-06-06 12:11:14   events_before_region_3 724
#     2023-06-06 12:11:14   events_before_region_4 1080
#     2023-06-06 12:11:14   events_before_score 0.74609375
#     2023-06-06 12:11:14   events_before_snapshot_time 1686044424.630513
#     2023-06-06 12:11:14   events_before_start_time 1686044416.660174
#     2023-06-06 12:11:14   events_before_stationary true
#     2023-06-06 12:11:14   events_before_top_score 0.84375
#     2023-06-06 12:11:14   events_type     update
#     2023-06-06 10:45:32   frigate_available online
#     2023-06-06 11:58:31   garage_all      0
#     2023-06-06 10:45:34   garage_detect_state ON
#     2023-06-06 10:45:34   garage_improve_contrast_state OFF
#     2023-06-06 10:45:34   garage_motion_contour_area_state 30
#     2023-06-06 10:45:34   garage_motion_state ON
#     2023-06-06 10:45:34   garage_motion_treshold_state 25
#     2023-06-06 10:45:34   garage_recordings_state ON
#     2023-06-06 10:45:34   garage_snapshots_state OFF
#     2023-06-06 11:58:26   stiege_all      1
#     2023-06-06 10:45:32   stiege_detect_state ON
#     2023-06-06 10:45:32   stiege_improve_contrast_state OFF
#     2023-06-06 12:11:35   stiege_motion   OFF
#     2023-06-06 10:45:32   stiege_motion_contour_area_state 30
#     2023-06-06 10:45:32   stiege_motion_state ON
#     2023-06-06 10:45:32   stiege_motion_treshold_state 25
#     2023-06-06 10:45:32   stiege_recordings_state ON
#     2023-06-06 10:45:32   stiege_snapshots_state OFF
#     2023-06-06 11:58:31   { WriteFile("www/images/garage_snap.jpg", $EVENT); undef }  BINAERDATEN
setstate frigate connected
setstate frigate 2023-06-06 10:45:25 IODev mqtt2
setstate frigate 2023-06-06 12:11:14 events_after_area 195940
setstate frigate 2023-06-06 12:11:14 events_after_box_1 108
setstate frigate 2023-06-06 12:11:14 events_after_box_2 568
setstate frigate 2023-06-06 12:11:14 events_after_box_3 496
setstate frigate 2023-06-06 12:11:14 events_after_box_4 1073
setstate frigate 2023-06-06 12:11:14 events_after_camera stiege
setstate frigate 2023-06-06 11:58:31 events_after_end_time 1686045510.222514
setstate frigate 2023-06-06 12:11:14 events_after_false_positive false
setstate frigate 2023-06-06 12:11:14 events_after_frame_time 1686046274.23953
setstate frigate 2023-06-06 12:11:14 events_after_has_clip true
setstate frigate 2023-06-06 12:11:14 events_after_has_snapshot false
setstate frigate 2023-06-06 12:11:14 events_after_id 1686044416.660174-tnn62d
setstate frigate 2023-06-06 12:11:14 events_after_label person
setstate frigate 2023-06-06 12:11:14 events_after_motionless_count 8905
setstate frigate 2023-06-06 12:11:14 events_after_position_changes 1
setstate frigate 2023-06-06 12:11:14 events_after_ratio 0.7683168316831683
setstate frigate 2023-06-06 12:11:14 events_after_region_1 0
setstate frigate 2023-06-06 12:11:14 events_after_region_2 356
setstate frigate 2023-06-06 12:11:14 events_after_region_3 724
setstate frigate 2023-06-06 12:11:14 events_after_region_4 1080
setstate frigate 2023-06-06 12:11:14 events_after_score 0.74609375
setstate frigate 2023-06-06 12:11:14 events_after_snapshot_time 1686044424.630513
setstate frigate 2023-06-06 12:11:14 events_after_start_time 1686044416.660174
setstate frigate 2023-06-06 12:11:14 events_after_stationary true
setstate frigate 2023-06-06 12:11:14 events_after_top_score 0.84375
setstate frigate 2023-06-06 12:11:14 events_before_area 195940
setstate frigate 2023-06-06 12:11:14 events_before_box_1 108
setstate frigate 2023-06-06 12:11:14 events_before_box_2 568
setstate frigate 2023-06-06 12:11:14 events_before_box_3 496
setstate frigate 2023-06-06 12:11:14 events_before_box_4 1073
setstate frigate 2023-06-06 12:11:14 events_before_camera stiege
setstate frigate 2023-06-06 12:11:14 events_before_false_positive false
setstate frigate 2023-06-06 12:11:14 events_before_frame_time 1686046214.020258
setstate frigate 2023-06-06 12:11:14 events_before_has_clip true
setstate frigate 2023-06-06 12:11:14 events_before_has_snapshot false
setstate frigate 2023-06-06 12:11:14 events_before_id 1686044416.660174-tnn62d
setstate frigate 2023-06-06 12:11:14 events_before_label person
setstate frigate 2023-06-06 12:11:14 events_before_motionless_count 8606
setstate frigate 2023-06-06 12:11:14 events_before_position_changes 1
setstate frigate 2023-06-06 12:11:14 events_before_ratio 0.7683168316831683
setstate frigate 2023-06-06 12:11:14 events_before_region_1 0
setstate frigate 2023-06-06 12:11:14 events_before_region_2 356
setstate frigate 2023-06-06 12:11:14 events_before_region_3 724
setstate frigate 2023-06-06 12:11:14 events_before_region_4 1080
setstate frigate 2023-06-06 12:11:14 events_before_score 0.74609375
setstate frigate 2023-06-06 12:11:14 events_before_snapshot_time 1686044424.630513
setstate frigate 2023-06-06 12:11:14 events_before_start_time 1686044416.660174
setstate frigate 2023-06-06 12:11:14 events_before_stationary true
setstate frigate 2023-06-06 12:11:14 events_before_top_score 0.84375
setstate frigate 2023-06-06 12:11:14 events_type update
setstate frigate 2023-06-06 10:45:32 frigate_available online
setstate frigate 2023-06-06 11:58:31 garage_all 0
setstate frigate 2023-06-06 10:45:34 garage_detect_state ON
setstate frigate 2023-06-06 10:45:34 garage_improve_contrast_state OFF
setstate frigate 2023-06-06 10:45:34 garage_motion_contour_area_state 30
setstate frigate 2023-06-06 10:45:34 garage_motion_state ON
setstate frigate 2023-06-06 10:45:34 garage_motion_treshold_state 25
setstate frigate 2023-06-06 10:45:34 garage_recordings_state ON
setstate frigate 2023-06-06 10:45:34 garage_snapshots_state OFF
setstate frigate 2023-06-06 11:58:26 stiege_all 1
setstate frigate 2023-06-06 10:45:32 stiege_detect_state ON
setstate frigate 2023-06-06 10:45:32 stiege_improve_contrast_state OFF
setstate frigate 2023-06-06 12:11:35 stiege_motion OFF
setstate frigate 2023-06-06 10:45:32 stiege_motion_contour_area_state 30
setstate frigate 2023-06-06 10:45:32 stiege_motion_state ON
setstate frigate 2023-06-06 10:45:32 stiege_motion_treshold_state 25
setstate frigate 2023-06-06 10:45:32 stiege_recordings_state ON
setstate frigate 2023-06-06 10:45:32 stiege_snapshots_state OFF
setstate frigate 2023-06-06 11:58:31 { WriteFile("www/images/garage_snap.jpg", $EVENT); undef }  BINAERDATEN

Wobei auch noch eigenartig ist, daß zwar garage_snap.jpg hier in dem list ist, aber nicht als file geschrieben wird. Bei stiege_snap.jpg ist es umgekehrt: es scheint hier nicht auf, wird aber geschrieben?!
Die beiden Pfade sind aber bis auf die Namen gleich?!
fhem:frigate/stiege/.*/snapshot:.* { WriteFile("www/images/stiege_snap.jpg", $EVENT);; undef }
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

#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  ....