NEWS
Test Adapter onvif camera v1.x.x
-
@crazy32
Ich habe dasselbe Problem wie du mit einer Reolink doorbell bei der ich das Klingeltaster Signal abgreife. Dieses wird nach Neustart des adapters zuverlässig Umgestellt bei Tastendruck aber nach Zeit X nicht mehr und ein Neustart ist erforderlich.
An was kann das liegen? Hat jemand einen Tipp wo ich ansetzen könnte? Das mit dem stündlichen Neustart des Adapters ist ein funktionierender Workarround.Wie realisiert man einen Neustart eines Adapters @Crazy32 ?Vielen Dank für eure Rückmeldungen!
-
Hallo zusammen, ich verwende die BU-320 Kamera, die bei Amazon oft verkauft werden. Ich habe bemerkt, dass ich keine Events bekomme bei ioBroker. Sind diese Kameras dafür nicht geeignet oder mache ich da etwas falsch? Der Events folder ist immer leer, obwohl ich auch Motion Events generiere


-
Hallo zusammen, ich verwende die BU-320 Kamera, die bei Amazon oft verkauft werden. Ich habe bemerkt, dass ich keine Events bekomme bei ioBroker. Sind diese Kameras dafür nicht geeignet oder mache ich da etwas falsch? Der Events folder ist immer leer, obwohl ich auch Motion Events generiere


@burak-hüseyinoglu Mal den debug log aktiveren und schauen was so passiert
-
@burak-hüseyinoglu Mal den debug log aktiveren und schauen was so passiert
@tombox iobroker.current.log.html
habs mal hier hochgeladen, pw's sind test pw's -
@mars mal i debug log laufen lassen dann sollte alle 30min kommen "Reconnecting to XXXXX" kommt das bei dir
-
@tombox iobroker.current.log.html
habs mal hier hochgeladen, pw's sind test pw's@burak-hüseyinoglu ist ein wenig kurz über längerer zeit mit eventuellen events wäre gut
und mit onvif device manager testen ob der events sieht
-
@tombox ich habe das Log Level auf debug gestellt für den ONVIF Adapter und konnte keine Nachricht finden mit dem "Reconnecting" Stichwort.
-
Hi ich habe ein neuen Adapter für ONVIF Kameras geschrieben, da die bisherigen Adapter nicht mehr gewartet werden und ich kein snapshot bei meiner Kamera erhalten habe.
Zum Installieren:
https://github.com/iobroker-community-adapters/ioBroker.onvifFür die aktuelle Version
bitte das latest Repo auswählen:

Kameras hinzufügen
Discovery:
Bei jedem Adapterstart wird mit dem in der Einstellungen eingetragen Benutzername und Passwort eine Discovery durchgeführt und versuch sich in die Kamera einzuloggen. Falls die Kamera noch nicht unter Objekte hinzugefügt wurde.
In den Einstellungen kann man die Discovery manuell ausführen. Falls die Kameras unterschiedliche Zugangsdaten haben müssen die jeweils eingegeben werden und eine discovery durchgeführt werden. Im Log sieht man Details zu dem Prozess.
Damit eine Kamera neu erkannt wird muss sie einfach unter Objekte gelöscht werden.
Manuelle Suche
Es können Kameras manuell gesucht werden, falls Discovery nicht funktioniert. Dazu muss eine IP Range und Ports eingegeben und manuell ausgeführt werden. Im Log sieht man Details zu dem Prozess.
Datenpunkte
onvif.0.IP_PORT.events Events der Kamera wie z.b. Bewegungserkennung
onvif.0.IP_PORT.general Generelle Information über die Kameras
onvif.0.IP_PORT.infos Informationen über die Kamera werden nur bei Adapterstart aktualisiert oder bei remote.refresh
Video und Snapshot URL:
onvif.0.IP_PORT.infos.streamUris.MediaProfile_Channel1_MainStream.snapshotUrl.urionvif.0.IP_PORT.remote Steuerung der Kamera
onvif.0.IP_PORT.remote.refresh Aktualisierung der Infodaten
onvif.0.IP_PORT.remote.gotoHomePosition PTZ Kamera in die HomePosition setzen
onvif.0.IP_PORT.remote.gotoPreset PTZ Kamera Preset Nummer auswählen
onvif.0.IP_PORT.remote.snapshot Speichert ein snapshot unter onvif.0.IP_PORT.snapshot
Message
Adapter nimmt Message "snapshot" entgegen und gibt ein Bild zurück
sendTo("onvif.0", "snapshot", "192_168_178_100_80", (result) => { if (result) { sendTo("telegram.0", { text: result, type: "photo", caption: "Kamera 2", }); } });Bewegungsmeldung zu Telegram
on("onvif.0.192_168_178_100_80.events.RuleEngine/CellMotionDetector/Motion", (obj) => { if (obj.state.val === true) { sendTo("onvif.0", "snapshot", "192_168_178_100_80", (result) => { if (result) { sendTo("telegram.0", { text: result, type: "photo", caption: "Camera 2", }); } }); } });Snapshot Server in vis einbinden
Der Adapter bietet ein Snapshot Server ohne Passwort an. Dazu Server aktivieren in den Instanzeinstellungen und dann kann der aktuelle Snapshot http://iobrokerIp:8095/CAMERAIP_PORT z.B. http://192.168.0.1:8095/192_168_0_1_80 abgerufen werden.
In der Vis ein Image Widget einfügen und die Url als Quelle angeben und eine Updatezeit auswählen

Stream in vis einbinden
go2rtsp Docker
Ein Stream wird normalerweise via rtsp stream bereitgestellt. Eine Umwandlung via motion eye ist sehr resourcen aufwändig und hat ein Verzögerng. Ein Umwandlung in webrtc ist schneller und resourcenschonender. Meine Empfehlung ist ein go2rtsp. Dazu muss ein Docker von alexxit/go2rtc erstellt werden.
https://hub.docker.com/r/alexxit/go2rtcOder go2rtc lokal zu installieren:
https://www.youtube.com/watch?v=4VEEpRYerZg
https://forum.iobroker.net/post/1031526image: alexxit/go2rtc network_mode: host # important for WebRTC, HomeKit, UDP cameras privileged: true # only for FFmpeg hardware transcoding restart: unless-stopped # autorestart on fail or config change from WebUI environment: - TZ=Europe/Berlin # timezone in logs volumes: - "~/go2rtc:/config" # folder for go2rtc.yaml file (edit from WebUI)Es muss ein Volume für den Pfad /config und das network als host eingestellt werden.
Dann ist go2rtsp erreichbar über
http://IP:1984Dann kann man ein Stream hinzufügen. Die Stream url findet man z.B. unter
onvif.0.IP_PORT.infos.streamUris.ProfileName.live_stream_tcp.uri
Stream als iFrame einfügen
Das Widget
iFramein der Vis hinzufügen und als Quelle den stream link von go2rtsp verwendenhttp://192.168.178.1:1984/stream.html?src=camera&mode=webrtcUnter links kann noch die Art des Players ausgewählt werden (Mikrofon)
Rtsp2Web Docker
Eine Alternative ist ein RTSPtoWeb Docker. Dies ist aber von der Einrichtun komplizierter.
Dazu muss ein Docker von ghcr.io/deepch/rtsptoweb:latest erstellt werden.FFMpeg Unterstützung
Wenn die Kamera keine Snapshot Unterstützng hat wird mit ffmpeg ein snapshot aus dem rtsp stream erzeugt.
Snapshot Server in vis einbinden
Der Adapter bietet ein Snapshot Server ohne Passwort an. Dazu Server aktivieren in den Instanzeinstellungen und dann kann der aktuelle Snapshot http://iobrokerIp:8095/CAMERAIP_PORT z.B. http://192.168.0.1:8095/192_168_0_1_80 abgerufen werden.
In der Vis ein Image Widget einfügen und die Url als Quelle angeben und eine Updatezeit auswählen
Snapshot in vis einbinden
Wenn möglich die snapshotUri verwenden z.B.
onvif.0.IP_PORT.infos.streamUris.MediaProfile_Channel1_MainStream.snapshotUrl.uriDen Datenpunkt nicht als Stream verwenden, da sonst die Festplatte zu hohe Last hat.
Den Datenpunkt aktualisieren via t onvif.0.IP_PORT.remote.snapshot
Den Datenpunkt onvif.0.IP_PORT.snapshot ein
String img srcelement zuordnen

Oder als Alternative falls String img src nicht funktioniert
Den Datenpunkt onvif.0.IP_PORT.snapshot alsHTMLelement in die vis einfügen mit folgendem Inhalt<img src="{onvif.0.IP_PORT.snapshot}" width="500px" />@tombox Erstmal super arbeit.
Ich konnte den onvif adapter erfolgreich im IOBroker aktivieren und finde auch die Kamera.
Ich habe eine Hikam A9 Kamera verbunden und würde nun gerne die Events näher verstehen.
Heißt: Wenn eine Bewebung per OnVif als Event erkannt wird, soll eine andere IoBroker Variable den Status true erhalten.
Per MotionEye ist gerade die Nachterkennung eher "mäßig" mit der Normalen HiKam app funktioniert aber die personen erkennung und auch der Nachtmodus richtig gut.
Kannst du mir erklären, wie genau ich die Events tiefer auswerten kann? Speziell: Bewegung erkannt?
Im Forum hatte ich dazu leider nix gefunden.
Danke -
@mars schick mal ein log über 1h per mail zu
tombox2020@gmail.com@tombox
Ich hab wie in deiner Anleitung beschrieben RSTPtoWEB installiert und den Livestream im HTML Widget eingebunden.
Wenn ich die einzelne VIS-Seite in der Runtime öffne klappt das auch wunderbar. Oben die "Multiview" unten die "Single View" im HTMl Widget mit Skript.

Wenn ich das ganze über meine reguläre VIS mit View in Widget aufrufe bleibt das HTML Widget leer, bzw. es werden nur die Player Tasten (ohne Funktion) angezeigt.

In der Browserkonsole wird auch kein Fehler angemeckert. Hast du eine Idee woran das liegen könnte? -
@tombox Erstmal super arbeit.
Ich konnte den onvif adapter erfolgreich im IOBroker aktivieren und finde auch die Kamera.
Ich habe eine Hikam A9 Kamera verbunden und würde nun gerne die Events näher verstehen.
Heißt: Wenn eine Bewebung per OnVif als Event erkannt wird, soll eine andere IoBroker Variable den Status true erhalten.
Per MotionEye ist gerade die Nachterkennung eher "mäßig" mit der Normalen HiKam app funktioniert aber die personen erkennung und auch der Nachtmodus richtig gut.
Kannst du mir erklären, wie genau ich die Events tiefer auswerten kann? Speziell: Bewegung erkannt?
Im Forum hatte ich dazu leider nix gefunden.
Danke -
@tombox
Ich hab wie in deiner Anleitung beschrieben RSTPtoWEB installiert und den Livestream im HTML Widget eingebunden.
Wenn ich die einzelne VIS-Seite in der Runtime öffne klappt das auch wunderbar. Oben die "Multiview" unten die "Single View" im HTMl Widget mit Skript.

Wenn ich das ganze über meine reguläre VIS mit View in Widget aufrufe bleibt das HTML Widget leer, bzw. es werden nur die Player Tasten (ohne Funktion) angezeigt.

In der Browserkonsole wird auch kein Fehler angemeckert. Hast du eine Idee woran das liegen könnte?@bommel_030 mmh eigentlich nicht müsste eigentlich was im log sein wenn du die streams einzeln hinzufügst geht das?
-
@bommel_030 mmh eigentlich nicht müsste eigentlich was im log sein wenn du die streams einzeln hinzufügst geht das?
@tombox
Sorry schon mal für den Screenshot... Wenn ich eine Seite nur mit dem HTML Stream anlege (im View in Widget) geht es leider auch nicht.
Das sind die Fehler die in der Konsole kommen. Bis auf den markierten kommen die auch bei der "Einzelseite" mit den 2 Streams und dem Snapshot.const webrtcUrl = document.querySelector("#webrtc-url").value;Da kann ich aber keinen Fehler erkennen/verstehen.

-
@tombox
Sorry schon mal für den Screenshot... Wenn ich eine Seite nur mit dem HTML Stream anlege (im View in Widget) geht es leider auch nicht.
Das sind die Fehler die in der Konsole kommen. Bis auf den markierten kommen die auch bei der "Einzelseite" mit den 2 Streams und dem Snapshot.const webrtcUrl = document.querySelector("#webrtc-url").value;Da kann ich aber keinen Fehler erkennen/verstehen.

@bommel_030 in der vis gibt es nicht ds Objekt mit id webrtc-url hast du ein html mit Objekt
<input
type="hidden"
name="webrtc-url"
id="webrtc-url" ....angelegt
-
@bommel_030 in der vis gibt es nicht ds Objekt mit id webrtc-url hast du ein html mit Objekt
<input
type="hidden"
name="webrtc-url"
id="webrtc-url" ....angelegt
@tombox
Ich hab ein Basic HTML Widget und dort diesen Inhalt.<input type="hidden" name="webrtc-url" id="webrtc-url" value="http://192.168.10.99:8083/stream/27aec28e-6181-4753-9acd-0456a75f0289/channel/0/webrtc" /> <video id="webrtc-video" autoplay muted playsinline controls style="max-width: 100%; max-height: 100%;"></video> -
@tombox
Ich hab ein Basic HTML Widget und dort diesen Inhalt.<input type="hidden" name="webrtc-url" id="webrtc-url" value="http://192.168.10.99:8083/stream/27aec28e-6181-4753-9acd-0456a75f0289/channel/0/webrtc" /> <video id="webrtc-video" autoplay muted playsinline controls style="max-width: 100%; max-height: 100%;"></video> -
@tombox
Danke, ab 15000 geht es. -
hallo zusammen
Ich habe eine Ctronics Camera bei mir im Eingangsbereich und möchte das Bild in vis einbinden.
Ich habe die Snapshot Ip direkt in ein I-Frame eingebunden. Bild sehe ich nachdem ich benutzer und Paswort eingegeben habe.
Sobald ich die IP mit Benutzer und Passwort eingebe ,kommt kein Bild mehr.
Jetzt habe ich den Onvif Adapter installiert ,Kamera wurde gefunden, Server habe ich gestartet ,die Adressse in das HTML Widget eingegeben.. Bild sehe ich leider nur manchmal sonst kommt im log folgende Fehlermeldung.Error getting snapshot via digest: {"data":{"type":"Buffer","data":[60,104,116,109,108,62,13,10,60,104,101,97,100,62,13,10,60,116,105,116,108,101,62,76,111,103,105,110,60,47,116,105,116,108,101,62,13,10,60,109,101,116,97,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,104,116,109,108,34,59,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,32,104,116,116,112,45,101,113,117,105,118,61,34,99,111,110,116,101,110,116,45,116,121,112,101,34,62,13,10,60,77,69,84,65,32,72,84,84,80,45,69,81,85,73,86,61,34,67,111,110,116,101,110,116,45,83,99,114,105,112,116,45,84,121,112,101,34,32,67,79,78,84,69,78,84,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,62,13,10,60,77,69,84,65,32,104,116,116,112,45,101,113,117,105,118,61,34,80,114,97,103,109,97,34,32,67,79,78,84,69,78,84,61,34,110,111,45,99,97,99,104,101,34,62,13,10,60,77,69,84,65,32,72,84,84,80,45,69,81,85,73,86,61,34,67,97,99,104,101,45,67,111,110,116,114,111,108,34,32,67,79,78,84,69,78,84,61,34,110,111,45,99,97,99,104,101,34,62,13,10,60,109,101,116,97,32,72,84,84,80,45,69,81,85,73,86,61,34,69,120,112,105,114,101,115,34,32,67,79,78,84,69,78,84,61,34,83,117,110,44,32,49,50,32,78,111,118,32,50,48,50,51,32,49,49,58,53,50,58,48,52,32,71,77,84,34,62,13,10,60,47,104,101,97,100,62,13,10,60,98,111,100,121,62,13,10,69,114,114,111,114,58,32,117,115,101,114,110,97,109,101,32,111,114,32,112,97,115,115,119,111,114,100,32,101,114,114,111,114,44,112,108,101,97,115,101,32,105,110,112,117,116,32,97,103,97,105,110,46,13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,10]},"status":401,"statusCode":401,"statusText":"Unauthorized","headers":{"date":"Sun, 12 Nov 2023 11:52:04 GMT","last-modified":"Sun, 12 Nov 2023 11:52:04 GMT","connection":"close","cache-control":"no-cache,no-store","www-authenticate":"Basic realm=\"\""},"url":"http://192.168.178.43/tmpfs/auto.jpg","redirected":false,"requestUrls":["http://192.168.178.43/tmpfs/auto.jpg"],"res":{"status":401,"statusCode":401,"statusText":"Unauthorized","headers":{"date":"Sun, 12 Nov 2023 11:52:04 GMT","last-modified":"Sun, 12 Nov 2023 11:52:04 GMT","connection":"close","cache-control":"no-cache,no-store","www-authenticate":"Basic realm=\"\""},"size":0,"aborted":false,"rt":9.597,"keepAliveSocket":true,"requestUrls":["http://192.168.178.43/tmpfs/auto.jpg"],"timing":{"queuing":0.271,"connected":3.328,"requestHeadersSent":3.486,"requestSent":3.628,"waiting":8.596,"contentDownload":9.07},"socket":{"id":40,"localAddress":"192.168.178.38","localPort":36596,"remoteAddress":"192.168.178.43","remotePort":80,"remoteFamily":"IPv4","bytesWritten":143,"bytesRead":635,"handledRequests":1,"handledResponses":1,"connectedTime":"2023-11-12T11:52:05.104Z"},"retries":0,"socketErrorRetries":0}}Was mache ich falsch?
Danke
Knusterus -
hallo zusammen
Ich habe eine Ctronics Camera bei mir im Eingangsbereich und möchte das Bild in vis einbinden.
Ich habe die Snapshot Ip direkt in ein I-Frame eingebunden. Bild sehe ich nachdem ich benutzer und Paswort eingegeben habe.
Sobald ich die IP mit Benutzer und Passwort eingebe ,kommt kein Bild mehr.
Jetzt habe ich den Onvif Adapter installiert ,Kamera wurde gefunden, Server habe ich gestartet ,die Adressse in das HTML Widget eingegeben.. Bild sehe ich leider nur manchmal sonst kommt im log folgende Fehlermeldung.Error getting snapshot via digest: {"data":{"type":"Buffer","data":[60,104,116,109,108,62,13,10,60,104,101,97,100,62,13,10,60,116,105,116,108,101,62,76,111,103,105,110,60,47,116,105,116,108,101,62,13,10,60,109,101,116,97,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,104,116,109,108,34,59,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,32,104,116,116,112,45,101,113,117,105,118,61,34,99,111,110,116,101,110,116,45,116,121,112,101,34,62,13,10,60,77,69,84,65,32,72,84,84,80,45,69,81,85,73,86,61,34,67,111,110,116,101,110,116,45,83,99,114,105,112,116,45,84,121,112,101,34,32,67,79,78,84,69,78,84,61,34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,62,13,10,60,77,69,84,65,32,104,116,116,112,45,101,113,117,105,118,61,34,80,114,97,103,109,97,34,32,67,79,78,84,69,78,84,61,34,110,111,45,99,97,99,104,101,34,62,13,10,60,77,69,84,65,32,72,84,84,80,45,69,81,85,73,86,61,34,67,97,99,104,101,45,67,111,110,116,114,111,108,34,32,67,79,78,84,69,78,84,61,34,110,111,45,99,97,99,104,101,34,62,13,10,60,109,101,116,97,32,72,84,84,80,45,69,81,85,73,86,61,34,69,120,112,105,114,101,115,34,32,67,79,78,84,69,78,84,61,34,83,117,110,44,32,49,50,32,78,111,118,32,50,48,50,51,32,49,49,58,53,50,58,48,52,32,71,77,84,34,62,13,10,60,47,104,101,97,100,62,13,10,60,98,111,100,121,62,13,10,69,114,114,111,114,58,32,117,115,101,114,110,97,109,101,32,111,114,32,112,97,115,115,119,111,114,100,32,101,114,114,111,114,44,112,108,101,97,115,101,32,105,110,112,117,116,32,97,103,97,105,110,46,13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,13,10]},"status":401,"statusCode":401,"statusText":"Unauthorized","headers":{"date":"Sun, 12 Nov 2023 11:52:04 GMT","last-modified":"Sun, 12 Nov 2023 11:52:04 GMT","connection":"close","cache-control":"no-cache,no-store","www-authenticate":"Basic realm=\"\""},"url":"http://192.168.178.43/tmpfs/auto.jpg","redirected":false,"requestUrls":["http://192.168.178.43/tmpfs/auto.jpg"],"res":{"status":401,"statusCode":401,"statusText":"Unauthorized","headers":{"date":"Sun, 12 Nov 2023 11:52:04 GMT","last-modified":"Sun, 12 Nov 2023 11:52:04 GMT","connection":"close","cache-control":"no-cache,no-store","www-authenticate":"Basic realm=\"\""},"size":0,"aborted":false,"rt":9.597,"keepAliveSocket":true,"requestUrls":["http://192.168.178.43/tmpfs/auto.jpg"],"timing":{"queuing":0.271,"connected":3.328,"requestHeadersSent":3.486,"requestSent":3.628,"waiting":8.596,"contentDownload":9.07},"socket":{"id":40,"localAddress":"192.168.178.38","localPort":36596,"remoteAddress":"192.168.178.43","remotePort":80,"remoteFamily":"IPv4","bytesWritten":143,"bytesRead":635,"handledRequests":1,"handledResponses":1,"connectedTime":"2023-11-12T11:52:05.104Z"},"retries":0,"socketErrorRetries":0}}Was mache ich falsch?
Danke
Knusterus@knusterus Er sagt username password falsch. Die GitHub version sollte auch ein bessere Fehlermeldung haben bitte mal testen
-
@knusterus Er sagt username password falsch. Die GitHub version sollte auch ein bessere Fehlermeldung haben bitte mal testen