NEWS
Test Adapter onvif camera v1.x.x
-
@randyandy Kannst du die genauen Zeitabstände sagen wenn die errors kommen.
Nutz du den snapshot server? wie oft kommen die snapshot response timeouts -
@tombox
ich verwende den js-controller 6.1.4 (sollte die aktuelle Version sein).
Kann das mit den zusätzlichen npm-Modulen zusamenhängen.

Ich habe früher Standbilder per javascript gespeichert und dann als Bild angezeigt. Entsprechend benötigte ich das node-onvif module.Andreas
-
@tombox
ich verwende den js-controller 6.1.4 (sollte die aktuelle Version sein).
Kann das mit den zusätzlichen npm-Modulen zusamenhängen.

Ich habe früher Standbilder per javascript gespeichert und dann als Bild angezeigt. Entsprechend benötigte ich das node-onvif module.Andreas
@randyandy Ich meine den js controller unter host aber kannst du den restart nach 6h deaktivieren und auf die aktuellste version von github aktualisieren
-
@randyandy Ich meine den js controller unter host aber kannst du den restart nach 6h deaktivieren und auf die aktuellste version von github aktualisieren
Das ist die Version 4.0.24.
Ich habe das node-onvif nun mal herausgenommen und seitdem scheint es stabil zu laufen (seit heute früh)
Ich nehme den restart aber mal raus und dann melde ich mich.
ich habe bereits die onvif-Version 1.07 seit ein paar Tagen installiert, dies scheint die neueste Version zu sein.Andreas
-
Hallo zusammen.
Muss mich mal mit meinen Problem(en) auch hier dran hängen.
Hardware ist eine Reolink RLC 523WA.
Adapter Version ist von Git in der Version 1.07 ( bei 1.04 selbe Verhalten )
Cam wurde sauber per onvif auf port 8000 gefunden. Es werden ein Haufen DP erzeugt. So weit so gut!
Wenn ich aber versuche eine PTZ Aktion über einen DP auszulösen, zum Beispiel .../remote/gotoPreset "3", bekomme ich im LOG folgende Fehler:
"Error while executing command gotoPreset on device 192_168_1_245_8000: Error: ONVIF SOAP Fault: {"value":"SOAP-ENV:Sender"}
Diesen SOAP Fehler bekomme ich eigentlich bei jeden DP :-(
Ich google nun schon seid Tagen nach der Ursache , werde aber nirgends fündig.
Hat jemand hier noch einer einen Tipp für mich, was mir diesen Fehler erzeugt, oder wo ich danach suchen muss ???
Danke !
PS: Super das es mit dem Adapter weiter geht !
-
Hallo zusammen.
Muss mich mal mit meinen Problem(en) auch hier dran hängen.
Hardware ist eine Reolink RLC 523WA.
Adapter Version ist von Git in der Version 1.07 ( bei 1.04 selbe Verhalten )
Cam wurde sauber per onvif auf port 8000 gefunden. Es werden ein Haufen DP erzeugt. So weit so gut!
Wenn ich aber versuche eine PTZ Aktion über einen DP auszulösen, zum Beispiel .../remote/gotoPreset "3", bekomme ich im LOG folgende Fehler:
"Error while executing command gotoPreset on device 192_168_1_245_8000: Error: ONVIF SOAP Fault: {"value":"SOAP-ENV:Sender"}
Diesen SOAP Fehler bekomme ich eigentlich bei jeden DP :-(
Ich google nun schon seid Tagen nach der Ursache , werde aber nirgends fündig.
Hat jemand hier noch einer einen Tipp für mich, was mir diesen Fehler erzeugt, oder wo ich danach suchen muss ???
Danke !
PS: Super das es mit dem Adapter weiter geht !
-
Das ist die Version 4.0.24.
Ich habe das node-onvif nun mal herausgenommen und seitdem scheint es stabil zu laufen (seit heute früh)
Ich nehme den restart aber mal raus und dann melde ich mich.
ich habe bereits die onvif-Version 1.07 seit ein paar Tagen installiert, dies scheint die neueste Version zu sein.Andreas
Das ist die Version 4.0.24.
Ich habe das node-onvif nun mal herausgenommen und seitdem scheint es stabil zu laufen (seit heute früh)
Ich nehme den restart aber mal raus und dann melde ich mich.
ich habe bereits die onvif-Version 1.07 seit ein paar Tagen installiert, dies scheint die neueste Version zu sein.Andreas
Ich beobachte das nun seit 3 Tagen und nun scheint der Adpater wieder stabil zu arbeiten. Ich kann das nun nicht bewerten aber da scheint sich etwas gestört zu haben zischen dem node-onvif-module im javascript-adapter und dem onvif-adapert. Die DB-Fehler sind jedenfalls weg :blush:. ich werde das nun noch ein wenig beoachten und sollte es wieder auftreten melde ich mich wieder.
Was immer noch ist, dass bei bei kurz aufeinanderfolgenden Events Fehlermeldeungen wie dieser auftreten:onvif.0 2023-05-11 19:11:12.719 error Error getting snapshot: {"code":"ECONNRESET","name":"ResponseError","path":"/cgi-bin/snapshot.cgi?stream=0","status":-1,"headers":{},"res":{"status":-1,"statusCode":-1,"statusMessage":null,"headers":{},"size":0,"aborted":false,"rt":957,"keepAliveSocket":false,"requestUrls":["http://192.168.178.78/cgi-bin/snapshot.cgi?stream=0"],"timing":null,"remoteAddress":"192.168.178.78","remotePort":80,"socketHandledRequests":1,"socketHandledResponses":0}} onvif.0 2023-05-11 19:11:12.712 error Error getting snapshot: {"code":"ECONNRESET","name":"ResponseError","path":"/cgi-bin/snapshot.cgi?stream=0","status":-1,"headers":{},"res":{"status":-1,"statusCode":-1,"statusMessage":null,"headers":{},"size":0,"aborted":false,"rt":1331,"keepAliveSocket":false,"requestUrls":["http://192.168.178.78/cgi-bin/snapshot.cgi?stream=0"],"timing":null,"remoteAddress":"192.168.178.78","remotePort":80,"socketHandledRequests":1,"socketHandledResponses":0}}Ich gehe mal davon aus, dass in zu kurzrn Abständen events ausgelöst werden und der server dies dann nicht mehr abarbeiten kann (4 ms unterscheid zwischen den Events sind für einen Raspberry Pi 4 dann wahrscheinlich nicht mehr auflösbar)
Ich würde mir da so eine Art timer wünschen in dem man einstellen kann nach wievielen Sek. ab einem Event z.B. Bewegung ein snapshot gemacht werden soll und dann nur ein snapshot. Alle davor und danach werden dann ignoriert. Ich habe versucht dies per Skript aufzufangen, aber das war nicht erfolgreich. Vermutlich sind die delays noch länger.Andreas
-
Das ist die Version 4.0.24.
Ich habe das node-onvif nun mal herausgenommen und seitdem scheint es stabil zu laufen (seit heute früh)
Ich nehme den restart aber mal raus und dann melde ich mich.
ich habe bereits die onvif-Version 1.07 seit ein paar Tagen installiert, dies scheint die neueste Version zu sein.Andreas
Ich beobachte das nun seit 3 Tagen und nun scheint der Adpater wieder stabil zu arbeiten. Ich kann das nun nicht bewerten aber da scheint sich etwas gestört zu haben zischen dem node-onvif-module im javascript-adapter und dem onvif-adapert. Die DB-Fehler sind jedenfalls weg :blush:. ich werde das nun noch ein wenig beoachten und sollte es wieder auftreten melde ich mich wieder.
Was immer noch ist, dass bei bei kurz aufeinanderfolgenden Events Fehlermeldeungen wie dieser auftreten:onvif.0 2023-05-11 19:11:12.719 error Error getting snapshot: {"code":"ECONNRESET","name":"ResponseError","path":"/cgi-bin/snapshot.cgi?stream=0","status":-1,"headers":{},"res":{"status":-1,"statusCode":-1,"statusMessage":null,"headers":{},"size":0,"aborted":false,"rt":957,"keepAliveSocket":false,"requestUrls":["http://192.168.178.78/cgi-bin/snapshot.cgi?stream=0"],"timing":null,"remoteAddress":"192.168.178.78","remotePort":80,"socketHandledRequests":1,"socketHandledResponses":0}} onvif.0 2023-05-11 19:11:12.712 error Error getting snapshot: {"code":"ECONNRESET","name":"ResponseError","path":"/cgi-bin/snapshot.cgi?stream=0","status":-1,"headers":{},"res":{"status":-1,"statusCode":-1,"statusMessage":null,"headers":{},"size":0,"aborted":false,"rt":1331,"keepAliveSocket":false,"requestUrls":["http://192.168.178.78/cgi-bin/snapshot.cgi?stream=0"],"timing":null,"remoteAddress":"192.168.178.78","remotePort":80,"socketHandledRequests":1,"socketHandledResponses":0}}Ich gehe mal davon aus, dass in zu kurzrn Abständen events ausgelöst werden und der server dies dann nicht mehr abarbeiten kann (4 ms unterscheid zwischen den Events sind für einen Raspberry Pi 4 dann wahrscheinlich nicht mehr auflösbar)
Ich würde mir da so eine Art timer wünschen in dem man einstellen kann nach wievielen Sek. ab einem Event z.B. Bewegung ein snapshot gemacht werden soll und dann nur ein snapshot. Alle davor und danach werden dann ignoriert. Ich habe versucht dies per Skript aufzufangen, aber das war nicht erfolgreich. Vermutlich sind die delays noch länger.Andreas
@randyandy Wie erstellst du denn die snapshots bei einem event gerade
-
@randyandy Wie erstellst du denn die snapshots bei einem event gerade
Ich verwende vom MaterialDesign das Widget Html Card. Das hat ein Feld "Objekt-ID" zum Aktualisieren.
Hier die entsprechenden Settings. Bei den unteren beiden Werten habe ich keinen Einfluss gefunden -> habe ich dann so gelassen.

-
Ich verwende vom MaterialDesign das Widget Html Card. Das hat ein Feld "Objekt-ID" zum Aktualisieren.
Hier die entsprechenden Settings. Bei den unteren beiden Werten habe ich keinen Einfluss gefunden -> habe ich dann so gelassen.

@randyandy Probier mal die GitHub version die hat jetzt eine 0.5s Mindestabstand zwischen zwei snapshots
-
@randyandy Probier mal die GitHub version die hat jetzt eine 0.5s Mindestabstand zwischen zwei snapshots
-
@tombox
Danke für die Weiterentwicklung.
Ich habe es auch tatsächlich geschafft einen Snapshot zu erzeugen.
Jetzt habe ich eine Frage oder Bitte:Ist es möglich eine Snapshotserie zu erstellen?
Also das bei Triggerauslösung beispielsweise 4 oder 5 Bilder in einem zeitlichen Abstand auf der Platte gespeichert werden.
Ich mach das derzeit zwar über ein Script bei der Türklingel, aber es ist ja auch bei einer Alarmauslösung eentuell interessant was 10 oder 20 Sekunden nach dem Event passiert ist. -
@randyandy Probier mal die GitHub version die hat jetzt eine 0.5s Mindestabstand zwischen zwei snapshots
ich habe nun die letzte Github Version mit 0,5 Sek seit ein paar Tagen im EInsatz. Die error Messages sind nicht gänzlich weg aber deutlich weniger geworden. Könnte man vielleicht den Mindestabstand einstellbar machen als Parameter. Muss ja nicht gleich sein in einer der nächsten Releases ?
Danke
Andreas
-
Ich habe zwei Fragen in die Runde:
-
ich schalte meine Reolink E1 outdoor tagsüber per schaltbarer Steckdose ab - wenn die Kamera dann Nachts wieder eingeschaltet wird, funktioniert der Personenalarm nicht mehr (Datenpunkt "MyRuleDetector/PeopleDetect") - erst wieder nach einem Neustart des Adapters - kann das jemand bestätigen bzw. prüfen?
-
hat jemand die "Schnappschuss an Telegram" in Blockly gelöst? Leider kann ich kein Javascript und bekomme es in Blockly leider nicht hin :(
Danke!!!
-
-
Ich habe zwei Fragen in die Runde:
-
ich schalte meine Reolink E1 outdoor tagsüber per schaltbarer Steckdose ab - wenn die Kamera dann Nachts wieder eingeschaltet wird, funktioniert der Personenalarm nicht mehr (Datenpunkt "MyRuleDetector/PeopleDetect") - erst wieder nach einem Neustart des Adapters - kann das jemand bestätigen bzw. prüfen?
-
hat jemand die "Schnappschuss an Telegram" in Blockly gelöst? Leider kann ich kein Javascript und bekomme es in Blockly leider nicht hin :(
Danke!!!
-
-
@heimweh Sollte nach ca 30min wieder funktionieren..
Hast du schon den reolink adapter getestet@tombox ok solange hab ich nicht gewartet. Ich starte den Adapter jetzt per Script 2 Minuten nach Kamera Start neu... ja den Reolink hab ich auch - der kann aber nur Motion allgemein - mir geht es speziell um die Personenerkennung, sonst geht bei jedem Igel / Katze nachts die Flutbeleuchtung an...
-
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 Hallo Zusammen,
erstmal Danke für den Adapter .
wie kann ich Rtsptoweb auf Debian(Proxmox VM) installieren ? wollte Motioneye löschen@chucky666 am einfachsten als docker