NEWS
Test Adapter onvif camera v1.x.x
-
@tombox In den Kameras sind schon micro SD Karten drin. Muss ich dann das mit der Datei kopieren auch machen oder geht das so. Ich muss dazu sagen, ich bin Laie und kenne mich nicht sehr gut aus, geschweige dann kann ich programmieren, Bin froh dass ich so weit gekommen bin. Aber wie gesagt, es geht nicht mehr weiter.
Ich habe jetzt noch gesehen dass ich den Kameras unterschiedliche User und Passwörter vergeben habe. Das habe ich nun gleich gemacht, und wie gesagt SD Karten sind drin. Die Kameras werden dann auch alle erkannt und eingetragen.
Im Protokoll kommen auch soweit ich das sehe keine Fehler.
Wo muss ich nun was eintragen, welches Widget nehme ich, wenns geht bitte verständlich für einen Laien, der dem englischen auch nicht sehr bewandert ist. Ich hoffe ich nerve nicht zu sehr. -
@randyandy
Also 192.168.178.70:80 hat anscheinen keine aktive source via onvif
192_168_178_20_80 liefert keine korrekte onvifich habe nochmal logs hinzugefügt..
nochmal installieren und log gerne auch via mail schicken muss nicht hier im forum sein
tombox2020@gmail.com@tombox
Danke für das Update. Nun wird der Snapshot angezeigt. Allerdings die Kamera findet er nur manuell, automatisch geht das nicht (nur ein Hinweis, ist natürlich nicht so schlimm).
Noch ein Hinweis bei den Objekten. Bei den Events werden nun keine NAmen mehr angezeigt. Ist bei Skripten halt dann schwer zu erkennen. Anbei ein Bild.

-
@tombox
Danke für das Update. Nun wird der Snapshot angezeigt. Allerdings die Kamera findet er nur manuell, automatisch geht das nicht (nur ein Hinweis, ist natürlich nicht so schlimm).
Noch ein Hinweis bei den Objekten. Bei den Events werden nun keine NAmen mehr angezeigt. Ist bei Skripten halt dann schwer zu erkennen. Anbei ein Bild.

@randyandy ist in der GitHub version gefixt
-
@randyandy ist in der GitHub version gefixt
-
@tombox gibt es eine Liste der unterstützen Kameras? Onvif alleine ist es dann wohl nicht, denn die Tapos können zwar Onvif aber eben kein Standbild. Gibt es da was günstiges für indoor, was du empfehlen kannst?
-
Bei mir kommen einige Warnugen und errors beim starten der Instanz.
Habe 4 Tapo C200.
192.168.178.117:2020 No snapshot url available: Error: ONVIF SOAP Fault: {"value":"SOAP-ENV:Receiver","subcode":{"value":"ter:ActionNotSupported"}} <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope ><soap:Header><wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To><wsa:Action>http://schemas.xmlsoap.org/ws/2005/04/discovery/ProbeMatches</wsa:Action><wsa:MessageID>urn:uuid:315681d1-2e37-45ee-b407-9b9c26990de8</wsa:MessageID><wsa:RelatesTo>urn:uuid:5bf5e60a-86f3-cf75-a8b2-ab66a704fde6</wsa:RelatesTo><wsd:AppSequence InstanceId="1677084647" SequenceId="urn:uuid:38e8978f-b114-4596-8aba-06a03425c634" MessageNumber="149"/></soap:Header><soap:Body><wsd:ProbeMatches><wsd:ProbeMatch><wsa:EndpointReference><wsa:Address>urn:uuid:9e09e321-e4b7-4a6d-94a1-4a67070299b6</wsa:Address></wsa:EndpointReference><wsd:Types>wsdp:Device pub:Computer</wsd:Types><wsd:XAddrs>http://CamStation2:5357/9e09e321-e4b7-4a6d-94a1-4a67070299b6</wsd:XAddrs><wsd:MetadataVersion>2</wsd:MetadataVersion></wsd:ProbeMatch></wsd:ProbeMatches></soap:Body></soap:Envelope> -
@randyandy ist in der GitHub version gefixt
ich verwende nun seit einigen Tagen Deinen Adapter und ich muss sagen Hut ab. Das ist ein Adpater der wirklich gefehlt hat. Der vorherige Adpater war ein Ansatz aber schlicht nicht zu Ende geführt.
Was noch nicht richtig funktioniert ist das abfangen von Events. Ich habe wie erwähnt mehrere Kameras. Bei einem Event einer der Kameras löse ich einen Snaphot aus. Da der Platz auf einer VIS Seite limitiert ist, würde ich gerne den letzten und den vorletzen Snapshot einer der 6 Kameras anzeigen. Es scheint aber so, dass eine Kamera in sehr kurzer Folge Events auslöst, sodass der letzte und vorletzte Snapshot immer von der gleichen Kamera sind. Es wäre hilfreich wenn in den Objekten eine Zeitinformation des letzten Event hinterlegt werden könnte, dann könnte man das im Skript abfragen und dann den Event innerhalb eines Zeitfensters ignorieren. Ich habe versucht das mit einem Boolean abzufangen, da scheint aber nicht wirklich zu funktionieren. Ich denke das wäre sehr hilfreich. Noch besser wäre es eine Art Timer (in ms) zu definieren, mit dem man einstellen kann wie lange Events als ein Event erkannt werden und in diesem Zeitfenster werden alle Event ignoriert. -
@randyandy also die Objekte haben das schon native
letzter timestamp obj.state.ts
letzte änderung obj.state.lcdie kann man gegen Date.now() vergleichen
-
@randyandy also die Objekte haben das schon native
letzter timestamp obj.state.ts
letzte änderung obj.state.lcdie kann man gegen Date.now() vergleichen
-
-
funktioniert, vielen Dank, aber habe dennoch viele Fehlermeldungen beim starten.
Und er findet nicht alle Cam´s, es fehlt noch die mit der IP 192.168.0.85. Hat die selben Einstellungen wie die anderen.
-
@chris76e
Da war ein wenig ram verfügbar auf welchem system läuft es?
81-83 sind keine Kameras?
192.168.0.85 wird nicht via discovery entdeckt wie sieht der log aus wenn du die ip manuell suchst.@tombox sagte in Test Adapter onvif camera v1.0.0:
Da war ein wenig ram verfügbar auf welchem system läuft es?
Läuft in einer VM in Proxmox auf einen Intel NUC. Ist eigentlich genug RAM vorhanden.
@tombox sagte in Test Adapter onvif camera v1.0.0:
81-83 sind keine Kameras?
Das sind NAS Laufwerke
@tombox sagte in Test Adapter onvif camera v1.0.0:
192.168.0.85 wird nicht via discovery entdeckt wie sieht der log aus wenn du die ip manuell suchst.
-
@chris76e
Da war ein wenig ram verfügbar auf welchem system läuft es?
81-83 sind keine Kameras?
192.168.0.85 wird nicht via discovery entdeckt wie sieht der log aus wenn du die ip manuell suchst. -
Habe den IP berreich von 192.168.0.84-86 suchen lassen.
Jetzt wo nur 0.85 angegeben ist wird sie gefunden.
-
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 sagte in Test Adapter onvif camera v1.0.0:
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ählenich hätte noch eine Frage zum Server. Ich vermute mal, dass der ioBroker Server verwendet wird (würde ja auch Sinn machen, denn nicht jeder setzt auf dem ioBroker einen eigenen Web-Server auf).
Liegen die Images dann in einem Ordner oder verweist Du auf einen Datenpunkt in dem Fall den Snapshot Datenpunkt mit den Bild-Informationen ? -
@tombox sagte in Test Adapter onvif camera v1.0.0:
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ählenich hätte noch eine Frage zum Server. Ich vermute mal, dass der ioBroker Server verwendet wird (würde ja auch Sinn machen, denn nicht jeder setzt auf dem ioBroker einen eigenen Web-Server auf).
Liegen die Images dann in einem Ordner oder verweist Du auf einen Datenpunkt in dem Fall den Snapshot Datenpunkt mit den Bild-Informationen ?@randyandy Der adapter öffnet ein web server. Dabei werden die Bilder direkt von der Kamera an den Webserver geleitet ohne das Bilder gespeichert werden
-
@randyandy Der adapter öffnet ein web server. Dabei werden die Bilder direkt von der Kamera an den Webserver geleitet ohne das Bilder gespeichert werden
@tombox
cool, das ist ja eine interessanter Ansatz, d.h. ich könnte den Snapshot über die Funktion remote komplett umgehen mit all den Abhängikeiten wie Schreibzeit usw.
Das muss ich mir mal ansehen, bin mir nun nicht ganz sicher wie man ein image updated wenn ein event/trigger ausgelöst wird. Mit dem image widget geht das meiner Meinung nach nicht. -
@tombox
cool, das ist ja eine interessanter Ansatz, d.h. ich könnte den Snapshot über die Funktion remote komplett umgehen mit all den Abhängikeiten wie Schreibzeit usw.
Das muss ich mir mal ansehen, bin mir nun nicht ganz sicher wie man ein image updated wenn ein event/trigger ausgelöst wird. Mit dem image widget geht das meiner Meinung nach nicht.@randyandy Ich habe auch mal in readme und Beitrag 1 eine Anleitung wie man performant ein live stream via webrtc in die vis einbauen kann
-
@randyandy Ich habe auch mal in readme und Beitrag 1 eine Anleitung wie man performant ein live stream via webrtc in die vis einbauen kann
@tombox sagte in Test Adapter onvif camera v1.0.0:
@randyandy Ich habe auch mal in readme und Beitrag 1 eine Anleitung wie man performant ein live stream via webrtc in die vis einbauen kann
webrtc sehe ich nicht wirklich. Ich habe eine VPN zischen zwei Fritzboxen (stehende Verbindung ) aufgebaut. Mein Uploadrate beträgt gerade mal 5Mbit/sek. Müsste ich mal testen ob das überhaupt noch möglich ist. Bei 6 Kameras kommt da schon etwas zusammen.
-
Hallo zusammen,
erstmal super, dass dieser Adapter weiterentwickelt wird!
Folgende Fragen hätte ich zum Verständnis:
- Kann man den Rtsp2Web Docker bedenklos auf dem gleichen Raspi installieren, auf dem auch iobroker liegt oder ist dies zu Ressourcen-hungrig?
- Wenn ich den "Server" im Onvif Adapter aktiviere, erhält man Snapshots mit folgendem Link http://iobrokerIp:8095/CAMERAIP_PORT richtig? Es werden meine beiden Kameras unter Objekte erkannt, aber kein Snapshot mit meinen IP Adressen sichtbar. Ein DP "snapshot" wurde nur bei einer der beiden Kameras angelegt, obwohl beide Kameras baugleich mit gleicher Firmware. Ich nutze aber kein VIS, wie kann ich es noch testen?
Danke vorab :-)