Viseron NVR per MQTT an Fhem anbinden *gelöst*

Begonnen von lynckmeister, 12 Juli 2021, 21:41:35

Vorheriges Thema - Nächstes Thema

lynckmeister

ok das scheint ja über die Readinglist zu funktionieren, es heisst ja man könne bestimmte MQTT-topics abonnieren , also automatische Benachrichtigungen empfangen ...

ich habe hier eine Readinglist in der alles was ich brauch auftaucht :

viseron:viseron/lwt:.* lwt
viseron:homeassistant/binary_sensor/garage/motion_detected/config:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/binary_sensor/garage/object_detected/config:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/object_detected/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/binary_sensor/garage/object_detected_person/config:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/switch/garage/config:.* { json2nameValue($EVENT) }
viseron:homeassistant/camera/garage/config:.* { json2nameValue($EVENT) }
viseron:homeassistant/sensor/garage/status/config:.* { json2nameValue($EVENT) }
viseron:viseron/garage/sensor/status/state:.* { json2nameValue($EVENT) }
viseron:viseron/garage/camera/image:.* image
viseron:homeassistant/camera/garage/latest_thumbnail/config:.* { json2nameValue($EVENT) }
viseron:viseron/garage/camera/latest_thumbnail/image:.* image
viseron:homeassistant/binary_sensor/terrasse_hinten/motion_detected/config:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/binary_sensor/terrasse_hinten/object_detected/config:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/binary_sensor/object_detected/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/binary_sensor/terrasse_hinten/object_detected_person/config:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT) }
viseron:homeassistant/switch/terrasse_hinten/config:.* { json2nameValue($EVENT) }
viseron:homeassistant/camera/terrasse_hinten/config:.* { json2nameValue($EVENT) }
viseron:homeassistant/sensor/terrasse_hinten/status/config:.* { json2nameValue($EVENT) }
viseron:homeassistant/camera/terrasse_hinten/latest_thumbnail/config:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/sensor/status/state:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/camera/image:.* image
viseron:viseron/terrasse_hinten/camera/latest_thumbnail/image:.* image



Wie  man sieht gibt es eben die beiden Cams... wo ich das Bild herkriege weiß ich ja , also muss ich eigentlich nur auf die Events

viseron:viseron/garage/binary_sensor/object_detected/state

oder eben

viseron:viseron/terrasse_hinten/binary_sensor/object_detected/state:.*

reagieren.... dazu muss man sie Abonieren?

Beta-User

Haben da mehrere Clients dieselbe Client-ID? Dann bitte so ändern, dass jedes Geräte eine eigene hat.
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

lynckmeister

hmm naja das ist ja ein NVR , der verbindet sich mit dem FHEM MQTT Server , der NVR hat 2 CAMs konfiguriert... aber die Client-ID ist für den NVR , also hat er auch nur eine
die unterschiede müssten die Pfade , in denen ja die Namen der CAMs codiert sind kommen :


{client_id}/{mqtt_name from camera config}/sensor/status/state

Ich sehe ja auch in der Readinglist, dass die da sind, ich verstehe nur nicht wie das mit dem Abonieren funktionieren soll, sodass man drauf reagieren kann ...

Beta-User

Ah, ok. Dann wäre mein Vorschlag, pro cam je eine MQTT2_device-Instanz einzurichten.
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

lynckmeister

ja kling gut, mir ist nur nicht klar, wie ich zwei Instanzen so anlege, dass die Daten jeweils dann in die Richtige laufen... aktuell schreibt fhem ja alles in eine Instanz...

hier mal das Listing des Devices...

Internals:
   CFGFN     
   CID        viseron
   DEF        viseron
   DEVICETOPIC MQTT2_viseron
   FUUID      6162fc08-f33f-c4df-4047-272632788c94034c
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 194
   MQTT2_FHEM_Server_TIME 2021-10-10 16:46:49
   MSGCNT     194
   NAME       MQTT2_viseron
   NR         2786
   STATE      on
   TYPE       MQTT2_DEVICE
   READINGS:
     2021-10-10 16:43:20   IODev           MQTT2_FHEM_Server
     2021-10-10 16:45:23   attributes_count 1
     2021-10-10 16:45:33   attributes_last_recording_end 2021-10-10T16:45:33.540045
     2021-10-10 16:45:33   attributes_last_recording_start 2021-10-10T16:45:23.439796
     2021-10-10 16:46:49   attributes_objects_1_confidence 0.723
     2021-10-10 16:46:49   attributes_objects_1_label person
     2021-10-10 16:46:49   attributes_objects_1_rel_height 0.346
     2021-10-10 16:46:49   attributes_objects_1_rel_width 0.115
     2021-10-10 16:46:49   attributes_objects_1_rel_x1 0.8700000047683716
     2021-10-10 16:46:49   attributes_objects_1_rel_x2 0.9850000143051147
     2021-10-10 16:46:49   attributes_objects_1_rel_y1 0.18199999630451202
     2021-10-10 16:46:49   attributes_objects_1_rel_y2 0.527999997138977
     2021-10-10 16:44:13   attributes_objects_2_confidence 0.5
     2021-10-10 16:44:13   attributes_objects_2_label person
     2021-10-10 16:44:13   attributes_objects_2_rel_height 0.564
     2021-10-10 16:44:13   attributes_objects_2_rel_width 0.151
     2021-10-10 16:44:13   attributes_objects_2_rel_x1 0.5299999713897705
     2021-10-10 16:44:13   attributes_objects_2_rel_x2 0.6809999942779541
     2021-10-10 16:44:13   attributes_objects_2_rel_y1 0.20100000500679016
     2021-10-10 16:44:13   attributes_objects_2_rel_y2 0.7649999856948853
     2021-10-10 16:45:23   image           ����JFIF��C    (noch viel mehr Bild-binär-müll)
     2021-10-10 16:43:20   lwt             alive
     2021-10-10 16:46:49   state           on
Attributes:
   readingList viseron:viseron/lwt:.* lwt
viseron:viseron/terrasse_hinten/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/binary_sensor/object_detected/state:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/object_detected/state:.* { json2nameValue($EVENT) }
viseron:viseron/garage/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/sensor/status/state:.* { json2nameValue($EVENT) }
viseron:viseron/garage/sensor/status/state:.* { json2nameValue($EVENT) }
viseron:viseron/terrasse_hinten/camera/latest_thumbnail/image:.* image
viseron:viseron/garage/camera/latest_thumbnail/image:.* image
   room       MQTT2_DEVICE



man sieht schon unten in der Readinglist das die beiden thumbnails jeweils nach CAM unterschiedliche Pfade haben...


TomLee


Beta-User

Zitat von: lynckmeister am 10 Oktober 2021, 16:50:50
ja kling gut, mir ist nur nicht klar, wie ich zwei Instanzen so anlege, dass die Daten jeweils dann in die Richtige laufen... aktuell schreibt fhem ja alles in eine Instanz...
Entweder mit "bridgeRegexp" beschäftigen oder halt manuell sortieren. Etwa so:
attr MQTT2_viseron readingList viseron/lwt:.* lwt\
homeassistant/.*/config:.* { }\
viseron/garage/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT,'motion_') }\
viseron/garage/binary_sensor/object_detected/state:.* { json2nameValue($EVENT,'object_') }\
viseron/garage/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT,'person_') }\
viseron/garage/sensor/status/state:.* { json2nameValue($EVENT) }
viseron/garage/camera/image:.* image\
viseron/garage/camera/latest_thumbnail/image:.* tn_image


defmod MQTT2_viseron_2 MQTT2_DEVICE
attr MQTT2_viseron_2 readingList viseron/terrasse_hinten/binary_sensor/motion_detected/state:.* { json2nameValue($EVENT,'motion_') }\
viseron/terrasse_hinten/binary_sensor/object_detected/state:.* { json2nameValue($EVENT,'object_') }\
viseron/terrasse_hinten/binary_sensor/object_detected_person/state:.* { json2nameValue($EVENT,'person_') }\
viseron/terrasse_hinten/sensor/status/state:.* { json2nameValue($EVENT) }\
viseron/terrasse_hinten/camera/image:.* image\
viseron/terrasse_hinten/camera/latest_thumbnail/image:.* tn_image


Zur Erläuterung: die "homeassistant"-config-Infos sind völlig irrelevant für FHEM, die werden durch das erste Device abgefangen und sind dann weg (sollte eigentlich eine ignoreRegepx am IO machen). Da vermutlich viele Infos in den JSON gleich/ähnlich sind, bekommen die einen Präfix, damit man sieht, wo was herkommt. Muss man dann ggf. noch sortieren, was man wie braucht und kann es ggf. umbenennen.
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

lynckmeister

genauso hat es auch geklappt, sobald man das zweite Device anlegt und die Readinglist einträgt, werden die richtigen Daten in dieses Device geschrieben... vielen Dank auch !