OH3 - IPCamera Binding und onvif

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »

Frage in die Runde:
Ich habe das Binding am laufen, so das der Stream in meiner Webseite angezeigt wird.

Code: Alles auswählen

  Video url="http://1xx.1xx.1xx.xx:8200/ipcamera.mjpeg" encoding="mjpeg"
  
Leider habe ich kein aktuelles Bild (Snapshot) von der Kamera, nur ein Bild kurz nach der Installation von ffmpeg.
Ich habe ein Item mit der URL zu der .jpg Datei, aber das Bild aktualisiert leider nicht.

Code: Alles auswählen

http://1xx.1xx.1xx.xx:8200/ipcamera.jpg
Muß ich in den ffmpeg Einstellungen etwas ändern, bzw. kann ich das irgendwo nachschauen, ob es einen Fehler gibt?
Im OH-log (Frontail) läuft alles einwandfrei, also ohne Fehler.
Oder muß ich noch etwas beim Thing einstellen?
Wo kann ich denn das Bild auf dem RPI finden? In dem html/camera Verzeichniss finde ich das nicht, sondern dort werden 5 .ts Dateien abgelegt (Ich denke, gemäß Einstellung von ffmpeg, oder?) und eine .m3u8 um mit vlc den Stream zu schauen.
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »

Ich habe mal ein wenig in anderen Foren gelesen und bin auf folgende Zeile getroffen

Code: Alles auswählen

ffmpeg -loglevel fatal -i http://localhost:8200/ipcamera.mjpeg -vframes 1 -y -r 1 /etc/openhab/html/camera1/live.jpg
Ich bin leider Linux-Nichtkenner, oder wie man es anders nennen kann: Habe keine Ahnung.

Die oben stehende Zeile erstellt mir nur ein Bild, wenn ich den Befehl "sudo" davor stelle, also den Befehl als Superuser, Admin, Chef, oder wie das auch immer heißt, ausführe.

Wenn ich mich per SSH auf dem RPI anmelde und den Befehl das erste Mal ausführe, dann fragt er mich nach dem Benutzerpasswort.

Jetzt habe ich folgende Frage(n):
In openhab habe ich einen Homematic-Klingelsensor und ich möchte gerne ein Bild aus dem Stream per telegram an mich schicken lassen.
Ich habe das Telegram Binding eingerichtet und bekomme die Nachricht: "Es hat an der Tür geklingelt".
Was kann ich jetzt machen, damit ein Bild aus dem Stream extrahiert wird.
Das versenden des Bildes geht ja per Telegram recht simpel, aber wie führe ich den Befehl aus, um ein aktuelles Bild zu bekommen?

Also:
Item Klingel schaltet auf ON (Geht aber sofort wieder auf Off, wenn derjenige an der Tür nicht dauerhaft drückt) - Das ist der Trigger für die Rule
sudo ffmpeg .../live.jpg wird ausgeführt
Telegram wird versendet.

FFMPEG und OPENHAB3 laufen auf dem selben RPI
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: OH3 - IPCamera Binding und onvif

Beitrag von sihui »

Hoggle hat geschrieben: 12. Jun 2021 12:32 Ich habe mal ein wenig in anderen Foren gelesen und bin auf folgende Zeile getroffen
Warum willst du das denn über diesen Umweg und ffmpeg machen wenn dir doch das IPCamera Binding bereits alles zur Verfügung stellt?

Code: Alles auswählen

http://<IP_openHAB>:<Port_der_Kamera>/ipcamera.jpg
Hoggle hat geschrieben: 24. Mai 2021 18:00 Wo kann ich denn das Bild auf dem RPI finden?
Da wo du es im Thing eingestellt hast, z.B.

Code: Alles auswählen

ffmpegOutput="/opt/openhab/conf/html/kamera1/",
Hoggle hat geschrieben: 12. Jun 2021 12:32 ... aber wie führe ich den Befehl aus, um ein aktuelles Bild zu bekommen?

Code: Alles auswählen

val telegramAction = getActions("telegram", "telegram:telegramBot:<deineID>")
telegramAction.sendTelegramAnimation("file:///opt/openhab/conf/html/kamera1/ipcamera.jpg", "Testbild")
https://community.openhab.org/t/ipcamer ... ding/42771
https://www.openhab.org/addons/bindings/ipcamera/
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »


sihui hat geschrieben:
Hoggle hat geschrieben: 12. Jun 2021 12:32 Ich habe mal ein wenig in anderen Foren gelesen und bin auf folgende Zeile getroffen
Warum willst du das denn über diesen Umweg und ffmpeg machen wenn dir doch das IPCamera Binding bereits alles zur Verfügung stellt?
Leider ist das Bild im angegebenen Pfad nicht aktuell(so wie oben im ersten Beitrag geschrieben).
Iss halt eine Kamera, die keine oder nur schlechte Dokumentaion hat.
Aus diesem Grund der "Umweg".

Wie kann ich denn eine Befehlszeile ausführen, besonders ohne ein Passwort, oder mit Übergabe eines Passworts.

Gesendet von meinem SM-G998B mit Tapatalk

RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: OH3 - IPCamera Binding und onvif

Beitrag von sihui »

Hoggle hat geschrieben: 13. Jun 2021 11:27 Wie kann ich denn eine Befehlszeile ausführen, besonders ohne ein Passwort, oder mit Übergabe eines Passworts.

Code: Alles auswählen

executeCommandLine(Duration.ofSeconds(timeout), String commandLine)
https://www.openhab.org/docs/configurat ... ec-actions
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »

sihui hat geschrieben:
Hoggle hat geschrieben: 13. Jun 2021 11:27 Wie kann ich denn eine Befehlszeile ausführen, besonders ohne ein Passwort, oder mit Übergabe eines Passworts.

Code: Alles auswählen

executeCommandLine(Duration.ofSeconds(timeout), String commandLine)
https://www.openhab.org/docs/configurat ... ec-actions
Das war schnell.

Danke

Gesendet von meinem SM-G998B mit Tapatalk

RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »

Mhh, bin wohl doch zu blöd.
Habe im "scripts"-Ordner eine Datei camerash.sh erstellt und per "chmod +x camerash.sh" ausführbar gemacht
mit "bash camerash.sh" wird ein Screenshoot gemacht.
Dann noch: sudo chown openhab:openhab camerash.sh
Im thing (exec-Binding)habe ich unter Befehl folgendes eingegeben: bash /etc/openhab/scripts/camerash.sh
und in der whitelist die Zeile eingefügt.
Wenn ich jetzt das item Ausführung auf ON stelle, dann sehe ich im frontail Logviewer, das alles klappt, also der switch geht auf On und im Item Zeitpunkt letzte Ausführung steht die richtige Zeit.
Aber leider wird kein Image im Verzeichnis erstellt.
Wo liegt mein Fehler?
Habe es vorher ohne "bash" vor dem Script probiert, aber auch das ging nicht.
Kann mir jemand helfen?
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
udo1toni
Beiträge: 13934
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: OH3 - IPCamera Binding und onvif

Beitrag von udo1toni »

Das ist ein grundsätzliches Missverständnis. Das Verzeichnis ./scripts/ ist nicht für bash-Scripte gedacht. Stattdessen musst Du den kompletten Pfad übergeben. Alternativ kannst Du das Script evtl. auch irgendwo im System ablegen und in den Standardsuchpfad für den User openhab einbauen, das ist allerdings meist umständlicher, als den kompletten Pfad dazu zu schreiben.

Denke auch daran, dass, nur weil ein Script für User a anstandslos funktioniert, das für User b nicht zwingend auch so sein muss.
Teste also am besten auf der Konsole per

Code: Alles auswählen

sudo -u openhab camera.sh
ob das Script tatsächlich korrekt ausgeführt wird.


Gesendet von iPad mit Tapatalk
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: OH3 - IPCamera Binding und onvif

Beitrag von Hoggle »

Hallo Udo.
Genau das funktioniert leider nicht.
Aber wo kann ich mit der Suche nach dem Problem anfangen?
Es kommt kein Fehler, aber auch kein Bild.
Doch Fehler.
Er fragt nach dem PW von Benutzer openhab, aber habopen funktioniert nicht.




RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
udo1toni
Beiträge: 13934
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: OH3 - IPCamera Binding und onvif

Beitrag von udo1toni »

Der Befehl

Code: Alles auswählen

sudo -u openhab camera.sh
führt das Script camera.sh unter dem Kontext des Users openhab aus. Das erfragte Passwort ist aber nicht das vom User openhab, sondern das Passwort des angemeldeten Users (also z.B. openhabian).
sudo -> SuperUser Do. Genau wie su (womit man sich eine shell in einem anderen Userkontext aufrufen kann) kann der Befehl nicht nur dazu verwendet werden, mit root-Rechten zu arbeiten, sondern man kann als ein beliebiger anderer User auftreten.

Voraussetzung ist natürlich, dass der angemeldete User berechtigt ist, sudo auszuführen und weiterhin berechtigt ist, in dem aufgerufenen Kontext zu arbeiten (das kann man nämlich einschränken).
Gewöhnlich hat ein User entweder volle Rechte oder gar keine, um sudo auszuführen.

habopen ist im Übrigen nicht das Passwort des Users openhab in der normalen Shell!
Vielmehr ist dies das default Passwort, mit dem man sich als openHAB User openhab an der Karaf Konsole anmeldet.
Für den User openhab ist im Betriebssystem kein Passwort hinterlegt. Es ist auch keine Shell eingetragen. Beides führt dazu, dass man sich normalerweise nicht als User openhab an der GNU/Linux Shell anmelden kann (es gibt natürlich Umwege, das dennoch zu erreichen).

Wenn sich das Script nicht erfolgreich im Kontext des Shell Users openhab ausführen lässt, hängt dies mit fehlenden Rechten zusammen. z.B. kann ein Pfad zum Speichern genutzt werden, den der User openhab nicht beschreiben darf. Oder das Programm benötigt Zugriff auf eine Ressource, die dem User openhab nicht zur Verfügung steht.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten