NEWS
Test Adapter onvif camera v1.x.x
-
@jb_sullivan
Es müsste im Log nach dem drücken des Buttons "Manuel Kamera suchen"
info Starting manual search
zu sehen sein und dann die einzelnen VersucheGeht denn der "Kamera Suche starten" button kommt da im log "Starting discovery" ?
@tombox sagte in Test Adapter onvif camera v1.0.0:
Es müsste im Log nach dem drücken des Buttons "Manuel Kamera suchen"
info Starting manual search
zu sehen sein und dann die einzelnen VersucheKam bei mir nie.
-
@jb_sullivan
Es müsste im Log nach dem drücken des Buttons "Manuel Kamera suchen"
info Starting manual search
zu sehen sein und dann die einzelnen VersucheGeht denn der "Kamera Suche starten" button kommt da im log "Starting discovery" ?
@tombox sagte in Test Adapter onvif camera v1.0.0:
Geht denn der "Kamera Suche starten" button kommt da im log "Starting discovery" ?
Wenn das der gleiche Text ist wie "Start onvif discovery" - ja, der kommt - aber der Button Farbumschlag verhält sich analog zur manuellen Suche.
onvif.0 1728 2023-02-19 12:56:51.443 info Finished onvif discovery onvif.0 1728 2023-02-19 12:56:46.437 info Start onvif discovery onvif.0 1728 2023-02-19 12:56:46.273 info starting. Version 1.0.0 (non-npm: iobroker-community-adapters/ioBroker.onvif#bc7fea2c45037c4557f2e8ec88b760f393cc5378) in C:/iobroker/GLT/node_modules/iobroker.onvif, node: v14.16.0, js-controller: 4.0.24 onvif.0 1728 2023-02-19 12:56:45.689 debug Plugin sentry Initialize Plugin (enabled=true) onvif.0 1728 2023-02-19 12:56:45.389 debug States connected to redis: 127.0.0.1:9000 onvif.0 1728 2023-02-19 12:56:45.321 debug States create User PubSub Client onvif.0 1728 2023-02-19 12:56:45.320 debug States create System PubSub Client onvif.0 1728 2023-02-19 12:56:45.288 debug Redis States: Use Redis connection: 127.0.0.1:9000 onvif.0 1728 2023-02-19 12:56:45.243 debug Objects connected to redis: 127.0.0.1:9001 onvif.0 1728 2023-02-19 12:56:45.237 debug Objects client initialize lua scripts onvif.0 1728 2023-02-19 12:56:45.105 debug Objects create User PubSub Client onvif.0 1728 2023-02-19 12:56:45.104 debug Objects create System PubSub Client onvif.0 1728 2023-02-19 12:56:45.103 debug Objects client ready ... initialize now onvif.0 1728 2023-02-19 12:56:45.035 debug Redis Objects: Use Redis connection: 127.0.0.1:9001 -
@tombox sagte in Test Adapter onvif camera v1.0.0:
Geht denn der "Kamera Suche starten" button kommt da im log "Starting discovery" ?
Wenn das der gleiche Text ist wie "Start onvif discovery" - ja, der kommt - aber der Button Farbumschlag verhält sich analog zur manuellen Suche.
onvif.0 1728 2023-02-19 12:56:51.443 info Finished onvif discovery onvif.0 1728 2023-02-19 12:56:46.437 info Start onvif discovery onvif.0 1728 2023-02-19 12:56:46.273 info starting. Version 1.0.0 (non-npm: iobroker-community-adapters/ioBroker.onvif#bc7fea2c45037c4557f2e8ec88b760f393cc5378) in C:/iobroker/GLT/node_modules/iobroker.onvif, node: v14.16.0, js-controller: 4.0.24 onvif.0 1728 2023-02-19 12:56:45.689 debug Plugin sentry Initialize Plugin (enabled=true) onvif.0 1728 2023-02-19 12:56:45.389 debug States connected to redis: 127.0.0.1:9000 onvif.0 1728 2023-02-19 12:56:45.321 debug States create User PubSub Client onvif.0 1728 2023-02-19 12:56:45.320 debug States create System PubSub Client onvif.0 1728 2023-02-19 12:56:45.288 debug Redis States: Use Redis connection: 127.0.0.1:9000 onvif.0 1728 2023-02-19 12:56:45.243 debug Objects connected to redis: 127.0.0.1:9001 onvif.0 1728 2023-02-19 12:56:45.237 debug Objects client initialize lua scripts onvif.0 1728 2023-02-19 12:56:45.105 debug Objects create User PubSub Client onvif.0 1728 2023-02-19 12:56:45.104 debug Objects create System PubSub Client onvif.0 1728 2023-02-19 12:56:45.103 debug Objects client ready ... initialize now onvif.0 1728 2023-02-19 12:56:45.035 debug Redis Objects: Use Redis connection: 127.0.0.1:9001@jb_sullivan Nach Neuinstallation sollten jetzt auch die buttons gehen.
-
@jb_sullivan Nach Neuinstallation sollten jetzt auch die buttons gehen.
@tombox AH jetzt ja - eine Insel, besser gesagt eine Kamera - na dann wollen wir mal gucken ob er die anderen manuell auch noch findet - automatisch hat er jedenfalls nichts gefunden.
Aber es geht jetzt schonmal auf manuell.......
-
Vielen Dank für den Adapter
Install und hinzufügen der Kameras hat perfekt funktioniertUnd da habe ich doch gleich eine Frage
Ich habe meine Cams im Garten und würde diese gern vor dem Betreten deaktievieren
Also die Aufzeichnung und die AlamierungMomentan mache ich es über die App aber es wäre schön wenn ich in der VIS einen Button hätte mit dem ich das machen könnte
Ist es möglich diese Option zu integrieren?
Danke im Voraus
Marcel -
Vielen Dank für den Adapter
Install und hinzufügen der Kameras hat perfekt funktioniertUnd da habe ich doch gleich eine Frage
Ich habe meine Cams im Garten und würde diese gern vor dem Betreten deaktievieren
Also die Aufzeichnung und die AlamierungMomentan mache ich es über die App aber es wäre schön wenn ich in der VIS einen Button hätte mit dem ich das machen könnte
Ist es möglich diese Option zu integrieren?
Danke im Voraus
Marcel -
@wszene ich sehe nicht das dies über onvif Protokoll möglich ist dann wäre das eher etwas individuell für jeden Hersteller
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> -
@wszene ich sehe nicht das dies über onvif Protokoll möglich ist dann wäre das eher etwas individuell für jeden Hersteller
-
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>@chris76e Ja genau das ist die Info das Tapes kein snapshot url anbieten also ein url wo man das aktuelle bild abgreifen kann. Das ist sehr ärgerlich. Es bietet nur video Urls. Für ein snapshot müsste man ffmpeg installieren und vom aktuellen stream ein screenshot erstellen
-
@chris76e Ja genau das ist die Info das Tapes kein snapshot url anbieten also ein url wo man das aktuelle bild abgreifen kann. Das ist sehr ärgerlich. Es bietet nur video Urls. Für ein snapshot müsste man ffmpeg installieren und vom aktuellen stream ein screenshot erstellen
-
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:
Den Datenpunkt nicht als Stream verwenden, da sonst die Festplatte zu hohe Last hat.
Den Datenpunkt onvif.0.IP_PORT.snapshot ein String img src element zuordnen
Den Datenpunkt onvif.0.IP_PORT.snapshot als HTML element in die vis einfügen mit folgendem InhaltIrgenwie kann ich das nicht nachvollziehen was Du da machst.
Die Kameras sind alle da, aber bei meinen Hikvisions bekomme ich einfach keine Bilder im VIS angezeigt.Kannst Du das bitte Schritt für Schritt erklären was da zu tun ist.
Danke
Andreas
-
@tombox sagte in Test Adapter onvif camera v1.0.0:
Den Datenpunkt nicht als Stream verwenden, da sonst die Festplatte zu hohe Last hat.
Den Datenpunkt onvif.0.IP_PORT.snapshot ein String img src element zuordnen
Den Datenpunkt onvif.0.IP_PORT.snapshot als HTML element in die vis einfügen mit folgendem InhaltIrgenwie kann ich das nicht nachvollziehen was Du da machst.
Die Kameras sind alle da, aber bei meinen Hikvisions bekomme ich einfach keine Bilder im VIS angezeigt.Kannst Du das bitte Schritt für Schritt erklären was da zu tun ist.
Danke
Andreas
@randyandy Was möchtest du genau ein stream oder ein bild auf Knopfdruck
-
@randyandy Was möchtest du genau ein stream oder ein bild auf Knopfdruck
-
Ich würde gerne bei einem Event (ausgelöst von der Kamera) das Bild updaten und dann im VIS anzeigen.
Die URI sieht so aus : http://192.168.178.11/onvif-http/snapshot?Profile_1@randyandy Hast du ein Datenpunkt onvif.0.IP_PORT.snapshot der sich aktualisiert wenn du onvif.0.IP_PORT.remote.snapshot auf true setzt?
-
@randyandy Hast du ein Datenpunkt onvif.0.IP_PORT.snapshot der sich aktualisiert wenn du onvif.0.IP_PORT.remote.snapshot auf true setzt?
-
ich habe nun mal onvif.0.IP_PORT.remote.snapshot auf true gesetzt und siehe da, dann wurde ein Datenpunkt onvif.0.IP_PORT.snapshot erzeugt.
Mit folgenden Inhalt: data:image/jpg;base64,/9j/4AAQSkZJR......Andreas
@randyandy Genau und dann wie in Beitrag #1 einfügen
-
@tombox sagte in Test Adapter onvif camera v1.0.0:
Den Datenpunkt onvif.0.IP_PORT.snapshot als HTML element in die vis einfügen mit folgendem Inhalt
Diesen Schritt verstehe ich noch nicht ganz.
Das Bild taucht doch mit dem Widget String img src im VIS auf.
Oder ist das nur ein alternative Lösung ?Andreas
-
@tombox sagte in Test Adapter onvif camera v1.0.0:
Den Datenpunkt onvif.0.IP_PORT.snapshot als HTML element in die vis einfügen mit folgendem Inhalt
Diesen Schritt verstehe ich noch nicht ganz.
Das Bild taucht doch mit dem Widget String img src im VIS auf.
Oder ist das nur ein alternative Lösung ?Andreas
@randyandy Achse das sind alternativen
-
@randyandy Achse das sind alternativen
-
Noch ein kleiner aber vielleicht für RaspberryPi Benutzer nicht ganz unwesentlicher Punkt.
Das Beschreiben des Datenpunkts wird die SD-Karte, die typisch verwendet wird, belasten. Bei einer SSD sollte das nicht die Rolle spielen aber im Datenpunkt wird das gesamte Bild abgelegt wenn ich das richtig interpretiere.
Schön wäre es eigentlich wenn man den Datenpunkt nur im DRAM halten könnte. Ich habe aber keine Möglichkeit gefunden das aus ioBroker heraus zu bewerkstelligen.
Alternative könnte man vielleicht Redis verwenden, aber am Ende werden die Datenpunkte dann doch wieder auf die SD geschrieben.
Ich habe lange ein Skript verwendet das mit das Bild in eine RAMDisk geschrieben hat. Das Bild aus der RAMdisk habe ich dann als html-Element in VIS eingebunden. Damit umgeht man das Schreiben großer Dantenmengen auf die SD-Karte.Andreas