Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Bewegungserkennung mit Motioneye, Lösung komplett in Blockly

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Bewegungserkennung mit Motioneye, Lösung komplett in Blockly

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklycommunicationtemplatesecuritymonitoring
62 Beiträge 12 Kommentatoren 17.6k Aufrufe 18 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • fu_zhouF Offline
    fu_zhouF Offline
    fu_zhou
    schrieb am zuletzt editiert von fu_zhou
    #1

    Hallo zusammen, ich habe viel mit dem Thema herumexperimentiert und bin jetzt zu einer für mich schönen Lösung gekommen, die ich hier zur Verfügung stellen möchte.

    Ich habe ioBroker in einer virtuellen Maschine im VM Ware Player laufen: Ubuntu 20.04.01 Server. Motioneye läuft in einer zweiten VM, auch Ubuntu 20.04.01 Server. Die motioneye Installation hat zu 100% nach Anleitung funktioniert:
    https://github.com/ccrisan/motioneye/wiki/(Install-On-Ubuntu-(20.04-or-Newer)
    In beiden VMs ist der selbe shared folder aktiviert:
    Zwischenablage01.jpg

    sudo nano /etc/fstab
    

    Am Ende ergänzen:

    .host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
    

    Damit steht in beiden VMs (iobroker und motioneye) der Ordner /mnt/hgfs/rack_HDD zur Verfügung. Der Name ist im Player natürlich frei wählbar.

    Ich habe beide VMs mit statischen IP-Adressen versehen: iobroker: endet mit .50, motioneye mit .52

    Im ioBroker muss in der Web-Adapter-Instanz (bei mir web.0) noch "Eingebautes 'Simple-API'" aktiviert werden. Wenn der Port nicht 8082 ist, muss das in den curl-Anweisungen in motioneye entsprechend geändert werden. Die Vorgehensweise unten bezieht sich auf 8082.
    Zwischenablage02.jpg

    Konfiguration von motioneye:
    mit putty einloggen

    sudo nano /etc/motioneye/motioneye.conf
    

    Wir wollen mit iobroker neben dem motioneye webinterface auch auf motion zugreifen, daher den Zugriff nicht auf localhost beschränken (motion_control_localhost false):

    # whether motion HTTP control interface listens on
    # localhost or on all interfaces
    motion_control_localhost false
    

    Noch kurz den Control-Port überprüfen:

    motion_control_port 7999
    

    Ich habe bei mir über die Web-Konfiguration der IP-Kamera folgende Werte eingestellt: 1280x720, 15 fps. Damit kriege ich einen ausreichend flüssigen Stream und die CPU-Last der VM (host: i5 3. Generation) liegt bei <20%.

    Jetzt kann die Konfiguration von motioneye im Browser geöffnet werden, ich gebe hier noch Werte an, die bei mir ganz gut funktionieren:
    <IP-Adresse Motioneye>:8765
    ggf. Benutzer wechseln - admin (ohne PW)

    • Preferences: die beiden Dimmer habe ich auf 100% gestellt, die Grenzen habe ich ja in der Kamera konfiguriert
    • Video Device:
      Camera Name: ist wohl selbsterklärend, z.B. Garten
      Camera Device: bei einer IP-Kamera kommt hier der Link zum Stream rein, z.B. rtsp://... bzw. der Wert aus der Erst-Konfiguration ist eingetragen.
      Video Resolution und Framerate: so wie in der Kamera eingestellt, bei mir also 1280x720, 15 fps
    • File Storage:
      Root Directory: hier kommt jetzt der gemeinsam genutzte Ordner rein, z.B. /mnt/hgfs/rack_HDD/motioneye
      Run A Command: ON
      Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f
      Damit übergeben wir den Namen des letzten gespeicherten Bildes (z.B. bei Bewegung) an ioBroker.
    • Text Overlay:
      Left Text: Camera Name
      Right Text: Custom Text: %Y-%m-%d\n%T-%q
      Mit -%q wird der Frame mit angezeigt, d.h. bei 15 fps sieht man in einer Sekunde, wie von 0 bis 14 hochgezählt wird. Damit erkennt man die aktuelle Stream-Geschwindigkeit gut.
      Text Scale: 3, damit kann man bei der Auflösung von 1280x720 die Schrift gut lesen
    • Video Streaming:
      Streaming Frame Rate: 15 (entspricht der Einstellung der IP-Kamera)
      Streaming Quality: 100% (je nach Bedarf kann man auch mit weniger zufrieden sein)
      Motion Optimization: ON Damit wird der Stream ohne erkannte Bewegung auf 1 fps reduziert und hochgefahren, wenn Bewegung erkannt wird. Den Effekt sieht man durch -%q dann auch im Bild rechts unten.
      Streaming URL: Die Adresse kommt in vis z.B. in das Widget "basic -Image": Quelle. Damit hat man dann in der vis-Runtime den Live-Stream
    • Still Images:
      Image File Name: %Y-%m-%d/%H-%M-%S_%q
      Durch %q wird vermieden, dass, sollten mehrere Bilder in einer Sekunde aufgenommen werden, Bilder überschrieben werden. %q hängt die Frame-Nummer an.
      Capture Mode: Motion Triggered (One Picture)
      Damit wird nur der Frame mit der meisten Bewegung (Anzahl geänderte Pixel) bei erkannter Bewegung (Event) gespeichert und nicht jedes einzelne Bild, was zu einer Bilder-Flut führt.
    • Movies: habe ich deaktiviert
    • Motion Detection:
      Frame Change Threshold: 0.4%
      Das sind knapp über 3.500 Pixel. die sich ändern müssen, um Bewegung zu erkennen. Habe ich durch (viel) probieren ermittelt und passt bei mir ganz gut
      Maximum Change Threshold: 50.000
      Damit wird bei mir vermieden, dass Bewegung erkannt wird, wenn z.B. nachts die Scheinwerfer eines Autos Licht in den überwachten Bereich werfen. In Kombination mit Light Switch Detection. Wenn sich die Kamera ziemlich dicht an sich bewegenden Objekten befindet, z.B. direkt über einer Tür, kann 50.000 viel zu niedrig sein. Gilt auch für Light Switch Detection weiter unten. Die Zahl der bewegten Pixel wird weiter unten auch angezeigt, damit bekommt man ein gutes Gefühl für sinnvolle Werte.
      Auto Threshold Tuning: off
      "On" hat bei mir zu viele Fehlauslösungen provoziert
      Auto Noise Detection: off
      "On" hat bei mir zu viele Fehlauslösungen provoziert
      Noise Level: 12%
      Wirkt vor allem nachts/ bei schwarz-weiß Bild der Kamera. Ich habe den Wert durch probieren ermittelt, um Fehlauslösungen zu vermeiden, aber Bewegung trotzdem zu erkennen.
      Light Switch Detection: 10%
      Der Wert darf nicht zu niedrig sein, eher >10%, Weil sonst echte Bewegung mit entsprechend vielen Pixeln als "Licht" interpretiert und nicht gemeldet wird. Wirkt vor allem, wenn die Kamera sich nachts bei Dunkelheit empfindlich einstellt und dann bei Lichteinfall das ganz Bild "weiß" wird, bis sich die Kamera an die neuen Lichtverhältnisse angepasst hat, was ja innerhalb weniger Sekunden der Fall ist.
      Show Frame Changes: ON
      Damit wird rechts oben im Bild die Anzahl der geänderten Pixel angezeigt und das bewegte Motiv wird rot umrandet.
    • Motion Notification:
      Run A Command: ON
      Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStart?value=true
      Damit übergeben wir erkannte Bewegung an ioBroker
      Run An End Command: ON
      Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStop?value=true
      Damit übergeben wir beendete Bewegung an ioBroker

    Jetzt können wir uns an die Blockly-Skripte machen:

    1. Telegram
      Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
      javascript.0.motioneye.getLastPic
      javascript.0.motioneye.takeSnapshot
      Dann die Logik:
    • Foto unabhängig von Bewegung auslösen (z.B. über Telegram oder ein anderes Objekt):
      exec Befehl: muss in der Javascript-Instanz aktiviert sein: Erlaube das Kommando "exec"
      curl <IP-Adresse von motioneye>:7999/1/action/snapshot
      7999 ist der motion_control_port, den wir ganz oben aus der motioneye.conf geholt haben.
      1 ist die Kamera-ID. Bei mehreren Kameras ist hier die entsprechende ID anzugeben. Dann müssen ggf. auch mehrere Skripte mit unterschiedlichen (nummerierten) Datenpunkten
      javascript.0.motioneye.getLastPic
      javascript.0.motioneye.takeSnapshot
      angelegt werden.
    • aktuellestes Foto an Telegram senden (ausgelöst durch Bewegung oder Telegram bzw. anderes Objekt):
      Bildname wird durch curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f (angegeben in der Motioneye-Konfiguration unter "File Storage" - s.o.) an ioBroker übergeben.
      Zwischenablage05.jpg
    1. Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
      Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
      javascript.0.motioneye.getEventStart
      javascript.0.motioneye.getEventStop
      Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
      Dann die Logik:
      "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.
      Zwischenablage02.jpg
      Um ein Bild mit Telegram auszulösen noch ein text2command anlegen:
      Regel: Schalte irgendetwas an oder aus
      Name: Foto
      Zwischenablage07.jpg
      text2command muss in der Telegram-Adapter-Instanz aktiviert sein (=> NACHRICHTEN).

    Wenn man jetzt also "Foto" an seinen Bot schickt, wird ein Foto ausgelöst und geschickt.

    Das war er soweit auch schon. In der Anleitung steckt ein Haufen Arbeit, also nicht einfach hier rauskopieren und weiterverteilen - danke!

    Synology DS920+ VM, S7-315 PN mit ET200S

    haselchenH G YodaY Marc_el_KM 4 Antworten Letzte Antwort
    1
    • fu_zhouF fu_zhou

      Hallo zusammen, ich habe viel mit dem Thema herumexperimentiert und bin jetzt zu einer für mich schönen Lösung gekommen, die ich hier zur Verfügung stellen möchte.

      Ich habe ioBroker in einer virtuellen Maschine im VM Ware Player laufen: Ubuntu 20.04.01 Server. Motioneye läuft in einer zweiten VM, auch Ubuntu 20.04.01 Server. Die motioneye Installation hat zu 100% nach Anleitung funktioniert:
      https://github.com/ccrisan/motioneye/wiki/(Install-On-Ubuntu-(20.04-or-Newer)
      In beiden VMs ist der selbe shared folder aktiviert:
      Zwischenablage01.jpg

      sudo nano /etc/fstab
      

      Am Ende ergänzen:

      .host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
      

      Damit steht in beiden VMs (iobroker und motioneye) der Ordner /mnt/hgfs/rack_HDD zur Verfügung. Der Name ist im Player natürlich frei wählbar.

      Ich habe beide VMs mit statischen IP-Adressen versehen: iobroker: endet mit .50, motioneye mit .52

      Im ioBroker muss in der Web-Adapter-Instanz (bei mir web.0) noch "Eingebautes 'Simple-API'" aktiviert werden. Wenn der Port nicht 8082 ist, muss das in den curl-Anweisungen in motioneye entsprechend geändert werden. Die Vorgehensweise unten bezieht sich auf 8082.
      Zwischenablage02.jpg

      Konfiguration von motioneye:
      mit putty einloggen

      sudo nano /etc/motioneye/motioneye.conf
      

      Wir wollen mit iobroker neben dem motioneye webinterface auch auf motion zugreifen, daher den Zugriff nicht auf localhost beschränken (motion_control_localhost false):

      # whether motion HTTP control interface listens on
      # localhost or on all interfaces
      motion_control_localhost false
      

      Noch kurz den Control-Port überprüfen:

      motion_control_port 7999
      

      Ich habe bei mir über die Web-Konfiguration der IP-Kamera folgende Werte eingestellt: 1280x720, 15 fps. Damit kriege ich einen ausreichend flüssigen Stream und die CPU-Last der VM (host: i5 3. Generation) liegt bei <20%.

      Jetzt kann die Konfiguration von motioneye im Browser geöffnet werden, ich gebe hier noch Werte an, die bei mir ganz gut funktionieren:
      <IP-Adresse Motioneye>:8765
      ggf. Benutzer wechseln - admin (ohne PW)

      • Preferences: die beiden Dimmer habe ich auf 100% gestellt, die Grenzen habe ich ja in der Kamera konfiguriert
      • Video Device:
        Camera Name: ist wohl selbsterklärend, z.B. Garten
        Camera Device: bei einer IP-Kamera kommt hier der Link zum Stream rein, z.B. rtsp://... bzw. der Wert aus der Erst-Konfiguration ist eingetragen.
        Video Resolution und Framerate: so wie in der Kamera eingestellt, bei mir also 1280x720, 15 fps
      • File Storage:
        Root Directory: hier kommt jetzt der gemeinsam genutzte Ordner rein, z.B. /mnt/hgfs/rack_HDD/motioneye
        Run A Command: ON
        Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f
        Damit übergeben wir den Namen des letzten gespeicherten Bildes (z.B. bei Bewegung) an ioBroker.
      • Text Overlay:
        Left Text: Camera Name
        Right Text: Custom Text: %Y-%m-%d\n%T-%q
        Mit -%q wird der Frame mit angezeigt, d.h. bei 15 fps sieht man in einer Sekunde, wie von 0 bis 14 hochgezählt wird. Damit erkennt man die aktuelle Stream-Geschwindigkeit gut.
        Text Scale: 3, damit kann man bei der Auflösung von 1280x720 die Schrift gut lesen
      • Video Streaming:
        Streaming Frame Rate: 15 (entspricht der Einstellung der IP-Kamera)
        Streaming Quality: 100% (je nach Bedarf kann man auch mit weniger zufrieden sein)
        Motion Optimization: ON Damit wird der Stream ohne erkannte Bewegung auf 1 fps reduziert und hochgefahren, wenn Bewegung erkannt wird. Den Effekt sieht man durch -%q dann auch im Bild rechts unten.
        Streaming URL: Die Adresse kommt in vis z.B. in das Widget "basic -Image": Quelle. Damit hat man dann in der vis-Runtime den Live-Stream
      • Still Images:
        Image File Name: %Y-%m-%d/%H-%M-%S_%q
        Durch %q wird vermieden, dass, sollten mehrere Bilder in einer Sekunde aufgenommen werden, Bilder überschrieben werden. %q hängt die Frame-Nummer an.
        Capture Mode: Motion Triggered (One Picture)
        Damit wird nur der Frame mit der meisten Bewegung (Anzahl geänderte Pixel) bei erkannter Bewegung (Event) gespeichert und nicht jedes einzelne Bild, was zu einer Bilder-Flut führt.
      • Movies: habe ich deaktiviert
      • Motion Detection:
        Frame Change Threshold: 0.4%
        Das sind knapp über 3.500 Pixel. die sich ändern müssen, um Bewegung zu erkennen. Habe ich durch (viel) probieren ermittelt und passt bei mir ganz gut
        Maximum Change Threshold: 50.000
        Damit wird bei mir vermieden, dass Bewegung erkannt wird, wenn z.B. nachts die Scheinwerfer eines Autos Licht in den überwachten Bereich werfen. In Kombination mit Light Switch Detection. Wenn sich die Kamera ziemlich dicht an sich bewegenden Objekten befindet, z.B. direkt über einer Tür, kann 50.000 viel zu niedrig sein. Gilt auch für Light Switch Detection weiter unten. Die Zahl der bewegten Pixel wird weiter unten auch angezeigt, damit bekommt man ein gutes Gefühl für sinnvolle Werte.
        Auto Threshold Tuning: off
        "On" hat bei mir zu viele Fehlauslösungen provoziert
        Auto Noise Detection: off
        "On" hat bei mir zu viele Fehlauslösungen provoziert
        Noise Level: 12%
        Wirkt vor allem nachts/ bei schwarz-weiß Bild der Kamera. Ich habe den Wert durch probieren ermittelt, um Fehlauslösungen zu vermeiden, aber Bewegung trotzdem zu erkennen.
        Light Switch Detection: 10%
        Der Wert darf nicht zu niedrig sein, eher >10%, Weil sonst echte Bewegung mit entsprechend vielen Pixeln als "Licht" interpretiert und nicht gemeldet wird. Wirkt vor allem, wenn die Kamera sich nachts bei Dunkelheit empfindlich einstellt und dann bei Lichteinfall das ganz Bild "weiß" wird, bis sich die Kamera an die neuen Lichtverhältnisse angepasst hat, was ja innerhalb weniger Sekunden der Fall ist.
        Show Frame Changes: ON
        Damit wird rechts oben im Bild die Anzahl der geänderten Pixel angezeigt und das bewegte Motiv wird rot umrandet.
      • Motion Notification:
        Run A Command: ON
        Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStart?value=true
        Damit übergeben wir erkannte Bewegung an ioBroker
        Run An End Command: ON
        Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStop?value=true
        Damit übergeben wir beendete Bewegung an ioBroker

      Jetzt können wir uns an die Blockly-Skripte machen:

      1. Telegram
        Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
        javascript.0.motioneye.getLastPic
        javascript.0.motioneye.takeSnapshot
        Dann die Logik:
      • Foto unabhängig von Bewegung auslösen (z.B. über Telegram oder ein anderes Objekt):
        exec Befehl: muss in der Javascript-Instanz aktiviert sein: Erlaube das Kommando "exec"
        curl <IP-Adresse von motioneye>:7999/1/action/snapshot
        7999 ist der motion_control_port, den wir ganz oben aus der motioneye.conf geholt haben.
        1 ist die Kamera-ID. Bei mehreren Kameras ist hier die entsprechende ID anzugeben. Dann müssen ggf. auch mehrere Skripte mit unterschiedlichen (nummerierten) Datenpunkten
        javascript.0.motioneye.getLastPic
        javascript.0.motioneye.takeSnapshot
        angelegt werden.
      • aktuellestes Foto an Telegram senden (ausgelöst durch Bewegung oder Telegram bzw. anderes Objekt):
        Bildname wird durch curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f (angegeben in der Motioneye-Konfiguration unter "File Storage" - s.o.) an ioBroker übergeben.
        Zwischenablage05.jpg
      1. Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
        Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
        javascript.0.motioneye.getEventStart
        javascript.0.motioneye.getEventStop
        Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
        Dann die Logik:
        "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.
        Zwischenablage02.jpg
        Um ein Bild mit Telegram auszulösen noch ein text2command anlegen:
        Regel: Schalte irgendetwas an oder aus
        Name: Foto
        Zwischenablage07.jpg
        text2command muss in der Telegram-Adapter-Instanz aktiviert sein (=> NACHRICHTEN).

      Wenn man jetzt also "Foto" an seinen Bot schickt, wird ein Foto ausgelöst und geschickt.

      Das war er soweit auch schon. In der Anleitung steckt ein Haufen Arbeit, also nicht einfach hier rauskopieren und weiterverteilen - danke!

      haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von
      #2

      @fu_zhou

      Hi....zu allererst natürlich ein dickes Lob für die Mühe und die Arbeit, die du in den Thread gesteckt hast.
      Sehr gut geschrieben und erklärt.
      Was wäre aber das Leben , wenn es nicht auch ein Haar in der Suppe geben würde :)
      Dein Einstellungen hast du zwar solange getestet, bis sie bei DIR funktioniert haben, aber bei MotionEye gibt es keine allgemeinen Einstellungen für alles.
      Dafür gibt es zuviele Kamerahersteller und Gegebenheiten vor Ort.
      Du glaubst gar nicht, wie oft ich nach DEN Einstellungen gesucht habe.
      Die richtigen Settings muss jeder selber herausfinden.
      Meine Kameras haben zum Beispiel keine Einstellung bezüglich Auflösung und Frameraten.
      Was ich aber wichtig in deinen Thread finde, ist die Erklärung zu den einzelnen Punkten.
      Das macht das Probieren sehr viel einfacher.
      Ich denke, das wird viele User ne Spur weiterbringen.

      In dem Sinne...Merry Xmas

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      fu_zhouF 1 Antwort Letzte Antwort
      0
      • haselchenH haselchen

        @fu_zhou

        Hi....zu allererst natürlich ein dickes Lob für die Mühe und die Arbeit, die du in den Thread gesteckt hast.
        Sehr gut geschrieben und erklärt.
        Was wäre aber das Leben , wenn es nicht auch ein Haar in der Suppe geben würde :)
        Dein Einstellungen hast du zwar solange getestet, bis sie bei DIR funktioniert haben, aber bei MotionEye gibt es keine allgemeinen Einstellungen für alles.
        Dafür gibt es zuviele Kamerahersteller und Gegebenheiten vor Ort.
        Du glaubst gar nicht, wie oft ich nach DEN Einstellungen gesucht habe.
        Die richtigen Settings muss jeder selber herausfinden.
        Meine Kameras haben zum Beispiel keine Einstellung bezüglich Auflösung und Frameraten.
        Was ich aber wichtig in deinen Thread finde, ist die Erklärung zu den einzelnen Punkten.
        Das macht das Probieren sehr viel einfacher.
        Ich denke, das wird viele User ne Spur weiterbringen.

        In dem Sinne...Merry Xmas

        fu_zhouF Offline
        fu_zhouF Offline
        fu_zhou
        schrieb am zuletzt editiert von
        #3

        @haselchen sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

        Die richtigen Settings muss jeder selber herausfinden.

        ... deswegen schreibe ich ja z.B. auch "hat bei mir zu viele Fehlauslösungen provoziert" und nicht "provoziert generell zu viele Fehlauslösungen" ...
        Auf jeden Fall hat das Christkind keine Chance, dieses Jahr unerkannt zu bleiben!

        Synology DS920+ VM, S7-315 PN mit ET200S

        haselchenH 1 Antwort Letzte Antwort
        0
        • fu_zhouF fu_zhou

          @haselchen sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

          Die richtigen Settings muss jeder selber herausfinden.

          ... deswegen schreibe ich ja z.B. auch "hat bei mir zu viele Fehlauslösungen provoziert" und nicht "provoziert generell zu viele Fehlauslösungen" ...
          Auf jeden Fall hat das Christkind keine Chance, dieses Jahr unerkannt zu bleiben!

          haselchenH Offline
          haselchenH Offline
          haselchen
          Most Active
          schrieb am zuletzt editiert von
          #4

          @fu_zhou

          Nimm das bitte nicht als Kritik sondern als Anregung.
          Ich habe Monate verbracht die "richtigen" Einstellungen zu finden.
          Vergebens.
          Ich behelfe mir jetzt zusätzlich mit Bewegungsmeldern.
          Das klappt wunderbar.
          Motion Eye selber nutze ich als Streamserver.
          Schön kleiner TV an der Wand und alle Kameras drauf abgebildet, wie im Science Fiction Filmen :)

          Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

          1 Antwort Letzte Antwort
          0
          • fu_zhouF fu_zhou

            Hallo zusammen, ich habe viel mit dem Thema herumexperimentiert und bin jetzt zu einer für mich schönen Lösung gekommen, die ich hier zur Verfügung stellen möchte.

            Ich habe ioBroker in einer virtuellen Maschine im VM Ware Player laufen: Ubuntu 20.04.01 Server. Motioneye läuft in einer zweiten VM, auch Ubuntu 20.04.01 Server. Die motioneye Installation hat zu 100% nach Anleitung funktioniert:
            https://github.com/ccrisan/motioneye/wiki/(Install-On-Ubuntu-(20.04-or-Newer)
            In beiden VMs ist der selbe shared folder aktiviert:
            Zwischenablage01.jpg

            sudo nano /etc/fstab
            

            Am Ende ergänzen:

            .host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
            

            Damit steht in beiden VMs (iobroker und motioneye) der Ordner /mnt/hgfs/rack_HDD zur Verfügung. Der Name ist im Player natürlich frei wählbar.

            Ich habe beide VMs mit statischen IP-Adressen versehen: iobroker: endet mit .50, motioneye mit .52

            Im ioBroker muss in der Web-Adapter-Instanz (bei mir web.0) noch "Eingebautes 'Simple-API'" aktiviert werden. Wenn der Port nicht 8082 ist, muss das in den curl-Anweisungen in motioneye entsprechend geändert werden. Die Vorgehensweise unten bezieht sich auf 8082.
            Zwischenablage02.jpg

            Konfiguration von motioneye:
            mit putty einloggen

            sudo nano /etc/motioneye/motioneye.conf
            

            Wir wollen mit iobroker neben dem motioneye webinterface auch auf motion zugreifen, daher den Zugriff nicht auf localhost beschränken (motion_control_localhost false):

            # whether motion HTTP control interface listens on
            # localhost or on all interfaces
            motion_control_localhost false
            

            Noch kurz den Control-Port überprüfen:

            motion_control_port 7999
            

            Ich habe bei mir über die Web-Konfiguration der IP-Kamera folgende Werte eingestellt: 1280x720, 15 fps. Damit kriege ich einen ausreichend flüssigen Stream und die CPU-Last der VM (host: i5 3. Generation) liegt bei <20%.

            Jetzt kann die Konfiguration von motioneye im Browser geöffnet werden, ich gebe hier noch Werte an, die bei mir ganz gut funktionieren:
            <IP-Adresse Motioneye>:8765
            ggf. Benutzer wechseln - admin (ohne PW)

            • Preferences: die beiden Dimmer habe ich auf 100% gestellt, die Grenzen habe ich ja in der Kamera konfiguriert
            • Video Device:
              Camera Name: ist wohl selbsterklärend, z.B. Garten
              Camera Device: bei einer IP-Kamera kommt hier der Link zum Stream rein, z.B. rtsp://... bzw. der Wert aus der Erst-Konfiguration ist eingetragen.
              Video Resolution und Framerate: so wie in der Kamera eingestellt, bei mir also 1280x720, 15 fps
            • File Storage:
              Root Directory: hier kommt jetzt der gemeinsam genutzte Ordner rein, z.B. /mnt/hgfs/rack_HDD/motioneye
              Run A Command: ON
              Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f
              Damit übergeben wir den Namen des letzten gespeicherten Bildes (z.B. bei Bewegung) an ioBroker.
            • Text Overlay:
              Left Text: Camera Name
              Right Text: Custom Text: %Y-%m-%d\n%T-%q
              Mit -%q wird der Frame mit angezeigt, d.h. bei 15 fps sieht man in einer Sekunde, wie von 0 bis 14 hochgezählt wird. Damit erkennt man die aktuelle Stream-Geschwindigkeit gut.
              Text Scale: 3, damit kann man bei der Auflösung von 1280x720 die Schrift gut lesen
            • Video Streaming:
              Streaming Frame Rate: 15 (entspricht der Einstellung der IP-Kamera)
              Streaming Quality: 100% (je nach Bedarf kann man auch mit weniger zufrieden sein)
              Motion Optimization: ON Damit wird der Stream ohne erkannte Bewegung auf 1 fps reduziert und hochgefahren, wenn Bewegung erkannt wird. Den Effekt sieht man durch -%q dann auch im Bild rechts unten.
              Streaming URL: Die Adresse kommt in vis z.B. in das Widget "basic -Image": Quelle. Damit hat man dann in der vis-Runtime den Live-Stream
            • Still Images:
              Image File Name: %Y-%m-%d/%H-%M-%S_%q
              Durch %q wird vermieden, dass, sollten mehrere Bilder in einer Sekunde aufgenommen werden, Bilder überschrieben werden. %q hängt die Frame-Nummer an.
              Capture Mode: Motion Triggered (One Picture)
              Damit wird nur der Frame mit der meisten Bewegung (Anzahl geänderte Pixel) bei erkannter Bewegung (Event) gespeichert und nicht jedes einzelne Bild, was zu einer Bilder-Flut führt.
            • Movies: habe ich deaktiviert
            • Motion Detection:
              Frame Change Threshold: 0.4%
              Das sind knapp über 3.500 Pixel. die sich ändern müssen, um Bewegung zu erkennen. Habe ich durch (viel) probieren ermittelt und passt bei mir ganz gut
              Maximum Change Threshold: 50.000
              Damit wird bei mir vermieden, dass Bewegung erkannt wird, wenn z.B. nachts die Scheinwerfer eines Autos Licht in den überwachten Bereich werfen. In Kombination mit Light Switch Detection. Wenn sich die Kamera ziemlich dicht an sich bewegenden Objekten befindet, z.B. direkt über einer Tür, kann 50.000 viel zu niedrig sein. Gilt auch für Light Switch Detection weiter unten. Die Zahl der bewegten Pixel wird weiter unten auch angezeigt, damit bekommt man ein gutes Gefühl für sinnvolle Werte.
              Auto Threshold Tuning: off
              "On" hat bei mir zu viele Fehlauslösungen provoziert
              Auto Noise Detection: off
              "On" hat bei mir zu viele Fehlauslösungen provoziert
              Noise Level: 12%
              Wirkt vor allem nachts/ bei schwarz-weiß Bild der Kamera. Ich habe den Wert durch probieren ermittelt, um Fehlauslösungen zu vermeiden, aber Bewegung trotzdem zu erkennen.
              Light Switch Detection: 10%
              Der Wert darf nicht zu niedrig sein, eher >10%, Weil sonst echte Bewegung mit entsprechend vielen Pixeln als "Licht" interpretiert und nicht gemeldet wird. Wirkt vor allem, wenn die Kamera sich nachts bei Dunkelheit empfindlich einstellt und dann bei Lichteinfall das ganz Bild "weiß" wird, bis sich die Kamera an die neuen Lichtverhältnisse angepasst hat, was ja innerhalb weniger Sekunden der Fall ist.
              Show Frame Changes: ON
              Damit wird rechts oben im Bild die Anzahl der geänderten Pixel angezeigt und das bewegte Motiv wird rot umrandet.
            • Motion Notification:
              Run A Command: ON
              Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStart?value=true
              Damit übergeben wir erkannte Bewegung an ioBroker
              Run An End Command: ON
              Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStop?value=true
              Damit übergeben wir beendete Bewegung an ioBroker

            Jetzt können wir uns an die Blockly-Skripte machen:

            1. Telegram
              Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
              javascript.0.motioneye.getLastPic
              javascript.0.motioneye.takeSnapshot
              Dann die Logik:
            • Foto unabhängig von Bewegung auslösen (z.B. über Telegram oder ein anderes Objekt):
              exec Befehl: muss in der Javascript-Instanz aktiviert sein: Erlaube das Kommando "exec"
              curl <IP-Adresse von motioneye>:7999/1/action/snapshot
              7999 ist der motion_control_port, den wir ganz oben aus der motioneye.conf geholt haben.
              1 ist die Kamera-ID. Bei mehreren Kameras ist hier die entsprechende ID anzugeben. Dann müssen ggf. auch mehrere Skripte mit unterschiedlichen (nummerierten) Datenpunkten
              javascript.0.motioneye.getLastPic
              javascript.0.motioneye.takeSnapshot
              angelegt werden.
            • aktuellestes Foto an Telegram senden (ausgelöst durch Bewegung oder Telegram bzw. anderes Objekt):
              Bildname wird durch curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f (angegeben in der Motioneye-Konfiguration unter "File Storage" - s.o.) an ioBroker übergeben.
              Zwischenablage05.jpg
            1. Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
              Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
              javascript.0.motioneye.getEventStart
              javascript.0.motioneye.getEventStop
              Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
              Dann die Logik:
              "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.
              Zwischenablage02.jpg
              Um ein Bild mit Telegram auszulösen noch ein text2command anlegen:
              Regel: Schalte irgendetwas an oder aus
              Name: Foto
              Zwischenablage07.jpg
              text2command muss in der Telegram-Adapter-Instanz aktiviert sein (=> NACHRICHTEN).

            Wenn man jetzt also "Foto" an seinen Bot schickt, wird ein Foto ausgelöst und geschickt.

            Das war er soweit auch schon. In der Anleitung steckt ein Haufen Arbeit, also nicht einfach hier rauskopieren und weiterverteilen - danke!

            G Offline
            G Offline
            Grinface
            schrieb am zuletzt editiert von Grinface
            #5

            @fu_zhou
            Moin,
            grossartig, vielen Dank dafür.

            Ich habe ein leicht anderes Setup, Motioneye läuft in einem Docker Container, auf dem gleichen Raspi wie auch der ioBroker.

            Ich bekomme beim Versuch den Motioneye Snapshot zu erstellen immer die Fehlermeldung "Failed to connect to <IP Adresse> port 7999: Verbindungsaufbau abgelehnt"

            Ich habe die Ports 7999, 8081 und 8765 im Container frei gegeben (der ioBroker läuft auf Port 7777, also kein Konflikt)
            Der Eintrag motion_control_localhost false ist auch gesetzt (und motioneye auch neu gestartet)

            Ansonsten kann ich problemlos auf den Videostream in VIS zugreifen, in Motioneye werden Bilder / Videos gespeichert, alles fein.
            Manuell kommt auch ein Bild in Telegram an.

            Ich nehme an, es hängt mit der Netzwerkconfiguration des Containers zusammen, als wenn die Verbindungen nur aus dem Container heraus gehen, nicht jedoch hinein.

            Kann jemand helfen?

            Grinface

            Edit:

            Nach diversen Neustarts, Änderung an den Berechtigungen funktioniert es jetzt.

            Ich habe weitere Scripte erstellt, die die Bewegungserkennung steuern, je nachdem, ob jemand zu Hause ist oder nicht.

            Dazu gibt es laut Motion die Actions

            {IP}:{port}/{camid}/detection/start Start or resume motion detection.
            {IP}:{port}/{camid}/detection/pause Pause the motion detection.

            Quelle: https://motion-project.github.io/motion_config.html#Signals_Sent

            Wenn ich das Pause Kommando absetze ist alles fein, die Erkennung läuft nicht mehr.
            Leider funktioniert das Start Kommando nicht. Gehe ich über die GUI, kann ich die Erkennung wieder starten, wenngleich dort der pausierte Status nicht angezeigt wird.

            Hat jemand eine Idee wie die Start Action funktioniert?

            1 Antwort Letzte Antwort
            1
            • fu_zhouF fu_zhou

              Hallo zusammen, ich habe viel mit dem Thema herumexperimentiert und bin jetzt zu einer für mich schönen Lösung gekommen, die ich hier zur Verfügung stellen möchte.

              Ich habe ioBroker in einer virtuellen Maschine im VM Ware Player laufen: Ubuntu 20.04.01 Server. Motioneye läuft in einer zweiten VM, auch Ubuntu 20.04.01 Server. Die motioneye Installation hat zu 100% nach Anleitung funktioniert:
              https://github.com/ccrisan/motioneye/wiki/(Install-On-Ubuntu-(20.04-or-Newer)
              In beiden VMs ist der selbe shared folder aktiviert:
              Zwischenablage01.jpg

              sudo nano /etc/fstab
              

              Am Ende ergänzen:

              .host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
              

              Damit steht in beiden VMs (iobroker und motioneye) der Ordner /mnt/hgfs/rack_HDD zur Verfügung. Der Name ist im Player natürlich frei wählbar.

              Ich habe beide VMs mit statischen IP-Adressen versehen: iobroker: endet mit .50, motioneye mit .52

              Im ioBroker muss in der Web-Adapter-Instanz (bei mir web.0) noch "Eingebautes 'Simple-API'" aktiviert werden. Wenn der Port nicht 8082 ist, muss das in den curl-Anweisungen in motioneye entsprechend geändert werden. Die Vorgehensweise unten bezieht sich auf 8082.
              Zwischenablage02.jpg

              Konfiguration von motioneye:
              mit putty einloggen

              sudo nano /etc/motioneye/motioneye.conf
              

              Wir wollen mit iobroker neben dem motioneye webinterface auch auf motion zugreifen, daher den Zugriff nicht auf localhost beschränken (motion_control_localhost false):

              # whether motion HTTP control interface listens on
              # localhost or on all interfaces
              motion_control_localhost false
              

              Noch kurz den Control-Port überprüfen:

              motion_control_port 7999
              

              Ich habe bei mir über die Web-Konfiguration der IP-Kamera folgende Werte eingestellt: 1280x720, 15 fps. Damit kriege ich einen ausreichend flüssigen Stream und die CPU-Last der VM (host: i5 3. Generation) liegt bei <20%.

              Jetzt kann die Konfiguration von motioneye im Browser geöffnet werden, ich gebe hier noch Werte an, die bei mir ganz gut funktionieren:
              <IP-Adresse Motioneye>:8765
              ggf. Benutzer wechseln - admin (ohne PW)

              • Preferences: die beiden Dimmer habe ich auf 100% gestellt, die Grenzen habe ich ja in der Kamera konfiguriert
              • Video Device:
                Camera Name: ist wohl selbsterklärend, z.B. Garten
                Camera Device: bei einer IP-Kamera kommt hier der Link zum Stream rein, z.B. rtsp://... bzw. der Wert aus der Erst-Konfiguration ist eingetragen.
                Video Resolution und Framerate: so wie in der Kamera eingestellt, bei mir also 1280x720, 15 fps
              • File Storage:
                Root Directory: hier kommt jetzt der gemeinsam genutzte Ordner rein, z.B. /mnt/hgfs/rack_HDD/motioneye
                Run A Command: ON
                Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f
                Damit übergeben wir den Namen des letzten gespeicherten Bildes (z.B. bei Bewegung) an ioBroker.
              • Text Overlay:
                Left Text: Camera Name
                Right Text: Custom Text: %Y-%m-%d\n%T-%q
                Mit -%q wird der Frame mit angezeigt, d.h. bei 15 fps sieht man in einer Sekunde, wie von 0 bis 14 hochgezählt wird. Damit erkennt man die aktuelle Stream-Geschwindigkeit gut.
                Text Scale: 3, damit kann man bei der Auflösung von 1280x720 die Schrift gut lesen
              • Video Streaming:
                Streaming Frame Rate: 15 (entspricht der Einstellung der IP-Kamera)
                Streaming Quality: 100% (je nach Bedarf kann man auch mit weniger zufrieden sein)
                Motion Optimization: ON Damit wird der Stream ohne erkannte Bewegung auf 1 fps reduziert und hochgefahren, wenn Bewegung erkannt wird. Den Effekt sieht man durch -%q dann auch im Bild rechts unten.
                Streaming URL: Die Adresse kommt in vis z.B. in das Widget "basic -Image": Quelle. Damit hat man dann in der vis-Runtime den Live-Stream
              • Still Images:
                Image File Name: %Y-%m-%d/%H-%M-%S_%q
                Durch %q wird vermieden, dass, sollten mehrere Bilder in einer Sekunde aufgenommen werden, Bilder überschrieben werden. %q hängt die Frame-Nummer an.
                Capture Mode: Motion Triggered (One Picture)
                Damit wird nur der Frame mit der meisten Bewegung (Anzahl geänderte Pixel) bei erkannter Bewegung (Event) gespeichert und nicht jedes einzelne Bild, was zu einer Bilder-Flut führt.
              • Movies: habe ich deaktiviert
              • Motion Detection:
                Frame Change Threshold: 0.4%
                Das sind knapp über 3.500 Pixel. die sich ändern müssen, um Bewegung zu erkennen. Habe ich durch (viel) probieren ermittelt und passt bei mir ganz gut
                Maximum Change Threshold: 50.000
                Damit wird bei mir vermieden, dass Bewegung erkannt wird, wenn z.B. nachts die Scheinwerfer eines Autos Licht in den überwachten Bereich werfen. In Kombination mit Light Switch Detection. Wenn sich die Kamera ziemlich dicht an sich bewegenden Objekten befindet, z.B. direkt über einer Tür, kann 50.000 viel zu niedrig sein. Gilt auch für Light Switch Detection weiter unten. Die Zahl der bewegten Pixel wird weiter unten auch angezeigt, damit bekommt man ein gutes Gefühl für sinnvolle Werte.
                Auto Threshold Tuning: off
                "On" hat bei mir zu viele Fehlauslösungen provoziert
                Auto Noise Detection: off
                "On" hat bei mir zu viele Fehlauslösungen provoziert
                Noise Level: 12%
                Wirkt vor allem nachts/ bei schwarz-weiß Bild der Kamera. Ich habe den Wert durch probieren ermittelt, um Fehlauslösungen zu vermeiden, aber Bewegung trotzdem zu erkennen.
                Light Switch Detection: 10%
                Der Wert darf nicht zu niedrig sein, eher >10%, Weil sonst echte Bewegung mit entsprechend vielen Pixeln als "Licht" interpretiert und nicht gemeldet wird. Wirkt vor allem, wenn die Kamera sich nachts bei Dunkelheit empfindlich einstellt und dann bei Lichteinfall das ganz Bild "weiß" wird, bis sich die Kamera an die neuen Lichtverhältnisse angepasst hat, was ja innerhalb weniger Sekunden der Fall ist.
                Show Frame Changes: ON
                Damit wird rechts oben im Bild die Anzahl der geänderten Pixel angezeigt und das bewegte Motiv wird rot umrandet.
              • Motion Notification:
                Run A Command: ON
                Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStart?value=true
                Damit übergeben wir erkannte Bewegung an ioBroker
                Run An End Command: ON
                Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStop?value=true
                Damit übergeben wir beendete Bewegung an ioBroker

              Jetzt können wir uns an die Blockly-Skripte machen:

              1. Telegram
                Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
                javascript.0.motioneye.getLastPic
                javascript.0.motioneye.takeSnapshot
                Dann die Logik:
              • Foto unabhängig von Bewegung auslösen (z.B. über Telegram oder ein anderes Objekt):
                exec Befehl: muss in der Javascript-Instanz aktiviert sein: Erlaube das Kommando "exec"
                curl <IP-Adresse von motioneye>:7999/1/action/snapshot
                7999 ist der motion_control_port, den wir ganz oben aus der motioneye.conf geholt haben.
                1 ist die Kamera-ID. Bei mehreren Kameras ist hier die entsprechende ID anzugeben. Dann müssen ggf. auch mehrere Skripte mit unterschiedlichen (nummerierten) Datenpunkten
                javascript.0.motioneye.getLastPic
                javascript.0.motioneye.takeSnapshot
                angelegt werden.
              • aktuellestes Foto an Telegram senden (ausgelöst durch Bewegung oder Telegram bzw. anderes Objekt):
                Bildname wird durch curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f (angegeben in der Motioneye-Konfiguration unter "File Storage" - s.o.) an ioBroker übergeben.
                Zwischenablage05.jpg
              1. Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
                Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
                javascript.0.motioneye.getEventStart
                javascript.0.motioneye.getEventStop
                Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
                Dann die Logik:
                "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.
                Zwischenablage02.jpg
                Um ein Bild mit Telegram auszulösen noch ein text2command anlegen:
                Regel: Schalte irgendetwas an oder aus
                Name: Foto
                Zwischenablage07.jpg
                text2command muss in der Telegram-Adapter-Instanz aktiviert sein (=> NACHRICHTEN).

              Wenn man jetzt also "Foto" an seinen Bot schickt, wird ein Foto ausgelöst und geschickt.

              Das war er soweit auch schon. In der Anleitung steckt ein Haufen Arbeit, also nicht einfach hier rauskopieren und weiterverteilen - danke!

              YodaY Offline
              YodaY Offline
              Yoda
              schrieb am zuletzt editiert von Yoda
              #6

              @fu_zhou eine sehr schöne / Gute Anleitung von dir!

              vielleicht kannst du mir aber etwas auf die Sprünge Helfen.
              Ich hänge an den Punkt, das wenn ich ein Objekt Trigger, das EventStart ausgeführt werden sollte.
              Das passiert bei mir aber scheinbar nicht, es wird keine Video / Datei gespeichert.

              Ich habe das soweit nun auch nachgebaut. Die Position wäre dann wohl für mich Interessant:

              Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
              Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
              javascript.0.motioneye.getEventStart
              javascript.0.motioneye.getEventStop
              Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
              Dann die Logik:
              "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.

              10-13.jpg

              curl <192.168.178.53>:8081/set/javascript.0.motioneye.getEventStart?value=true
              
              curl <192.168.178.53>:8081/set/javascript.0.motioneye.getEventStop?value=true
              

              oder so habe ich es auch versucht:

              curl 192.168.178.53:8082/set/javascript.0.motioneye.getEventStart?value=true
              
              curl 192.168.178.53:8082/set/javascript.0.motioneye.getEventStop?value=true
              

              Über das Objekt/Trigger ( Live_Bild_Hof_2_Trigger) sollte nun die Aufnahme gestartet werden
              10-14.jpg

              Müsste das Blocky nicht etwas anderes aussehen?
              Ich würde es mehr verstehen wen der Externe Trigger das Event start oder stop ausführen würde.
              Oder ich habe noch wo ein anderen Fehler drin?

              LG mit den Besten Grüßen

              Gruß Yoda
              Stand 05.2025
              Raspberry5,linux,arm64,CPUs:4,Geschwindigkeit:2400 MHz,Modell:Cortex-A76,RAM:15.8 GB,Node.js:v20.19.2

              fu_zhouF 1 Antwort Letzte Antwort
              0
              • YodaY Yoda

                @fu_zhou eine sehr schöne / Gute Anleitung von dir!

                vielleicht kannst du mir aber etwas auf die Sprünge Helfen.
                Ich hänge an den Punkt, das wenn ich ein Objekt Trigger, das EventStart ausgeführt werden sollte.
                Das passiert bei mir aber scheinbar nicht, es wird keine Video / Datei gespeichert.

                Ich habe das soweit nun auch nachgebaut. Die Position wäre dann wohl für mich Interessant:

                Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
                Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
                javascript.0.motioneye.getEventStart
                javascript.0.motioneye.getEventStop
                Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
                Dann die Logik:
                "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.

                10-13.jpg

                curl <192.168.178.53>:8081/set/javascript.0.motioneye.getEventStart?value=true
                
                curl <192.168.178.53>:8081/set/javascript.0.motioneye.getEventStop?value=true
                

                oder so habe ich es auch versucht:

                curl 192.168.178.53:8082/set/javascript.0.motioneye.getEventStart?value=true
                
                curl 192.168.178.53:8082/set/javascript.0.motioneye.getEventStop?value=true
                

                Über das Objekt/Trigger ( Live_Bild_Hof_2_Trigger) sollte nun die Aufnahme gestartet werden
                10-14.jpg

                Müsste das Blocky nicht etwas anderes aussehen?
                Ich würde es mehr verstehen wen der Externe Trigger das Event start oder stop ausführen würde.
                Oder ich habe noch wo ein anderen Fehler drin?

                LG mit den Besten Grüßen

                fu_zhouF Offline
                fu_zhouF Offline
                fu_zhou
                schrieb am zuletzt editiert von
                #7

                @yoda die Kommandos in motioneye sind ohne <> vor und nach der IP, also

                curl 192.168.0.50:8082/set/javascript.0.motioneye.getEventStart?value=true
                

                Definiere auch mal den Typ "Bool" unter "Common":
                Bild_2021-03-08_171330.png

                Ansonsten sehen die Blocklys in Ordnung aus.

                In den Objekten unter javascript.0 sind die Datenpunkte angelegt?

                Ist curl installiert?
                hast du schon einmal probiert, den curl Befehl in einem Terminal auszuführen und geschaut, ob der Datenpunkt in iobroker gesetzt wird?

                Synology DS920+ VM, S7-315 PN mit ET200S

                YodaY 2 Antworten Letzte Antwort
                0
                • fu_zhouF fu_zhou

                  @yoda die Kommandos in motioneye sind ohne <> vor und nach der IP, also

                  curl 192.168.0.50:8082/set/javascript.0.motioneye.getEventStart?value=true
                  

                  Definiere auch mal den Typ "Bool" unter "Common":
                  Bild_2021-03-08_171330.png

                  Ansonsten sehen die Blocklys in Ordnung aus.

                  In den Objekten unter javascript.0 sind die Datenpunkte angelegt?

                  Ist curl installiert?
                  hast du schon einmal probiert, den curl Befehl in einem Terminal auszuführen und geschaut, ob der Datenpunkt in iobroker gesetzt wird?

                  YodaY Offline
                  YodaY Offline
                  Yoda
                  schrieb am zuletzt editiert von Yoda
                  #8

                  @fu_zhou Danke für deine Antwort,
                  Ich habe die Camera nun wieder zurückgeschickt und werde mein System nochmal neu Aufsetzten.
                  Warte Aktuell auf die Lieferung vom neuen Raspi 4.

                  Der Plan ist dann Iobroker + Motioneye auf einen Raspi zu bringen.
                  Ich hatte noch Probleme das mein Raspi 3 wo mein Vis aufruf im Firefox Browser lief (Monitor Ansicht) 1 mal am Tag "hängen" geblieben ist.
                  Hier schein ein Problem zu sein bei der Verwendung von 2 Raspis.

                  In den Objekten unter javascript.0 sind die Datenpunkte angelegt?

                  • Ja hatte ich.

                  Ist curl installiert?

                  • Nein

                  Werde dann später mal deine Schritt Anleitung durchführen.

                  Gruß Yoda
                  Stand 05.2025
                  Raspberry5,linux,arm64,CPUs:4,Geschwindigkeit:2400 MHz,Modell:Cortex-A76,RAM:15.8 GB,Node.js:v20.19.2

                  1 Antwort Letzte Antwort
                  0
                  • fu_zhouF fu_zhou

                    @yoda die Kommandos in motioneye sind ohne <> vor und nach der IP, also

                    curl 192.168.0.50:8082/set/javascript.0.motioneye.getEventStart?value=true
                    

                    Definiere auch mal den Typ "Bool" unter "Common":
                    Bild_2021-03-08_171330.png

                    Ansonsten sehen die Blocklys in Ordnung aus.

                    In den Objekten unter javascript.0 sind die Datenpunkte angelegt?

                    Ist curl installiert?
                    hast du schon einmal probiert, den curl Befehl in einem Terminal auszuführen und geschaut, ob der Datenpunkt in iobroker gesetzt wird?

                    YodaY Offline
                    YodaY Offline
                    Yoda
                    schrieb am zuletzt editiert von
                    #9

                    @fu_zhou
                    Ich habe mir nun einen neuen Raspi aufgesetzt. Die Anleitung bin ich soweit durch.

                    1. Ich würde als erstes gerne zum testen per Vis Objekt Schalter bei True ein Bild an Telegramm schicken.
                    2. später dann noch Per Trigger True ein Video auf dem Raspi speichern, bei False dann die Aufnahme beenden.

                    Aber schon beim versuch die curl Befehle über die Konsole, klappt es nicht.
                    192.168.178.118:7999/1 = IP vom Raspi + CamID 1
                    Mein Raspi selbst hat den port 8081
                    Motioneye + Iobroker laufen auf den gleichen Raspi.

                    Wäre klasse wenn du / jemand meinen Fehler finden könnte.

                    Das ist sind die Antworten wen ich es auf die Konsole eingebe:

                    pi@raspberrypi:~ $ curl 192.168.178.118:7999/1/action/snapshot
                    curl: (7) Failed to connect to 192.168.178.118 port 7999: Verbindungsaufbau abgelehnt
                    pi@raspberrypi:~ $ curl 192.168.178.118:8081/set/javascript.0.motioneye.getEventStart?value=true
                    <!DOCTYPE html>
                    <html lang="en">
                    <head>
                    <meta charset="utf-8">
                    <title>Error</title>
                    </head>
                    <body>
                    <pre>Cannot GET /set/javascript.0.motioneye.getEventStart</pre>
                    </body>
                    </html>
                    pi@raspberrypi:~ $ 
                    
                    
                    

                    Datenpunkte sind Angelegt:
                    M1.jpg
                    In Motioney wurden die curl Befehle eingefügt:
                    m2.jpg
                    m3.jpg

                    Diese Blockys habe ich erstellt.
                    Das Objekt "Live_Bild_Hof_2_Trigger" ist dabei der einfache Schalten der bei True das Bild an Telegramm senden soll.
                    m4.jpg

                    <xml xmlns="https://developers.google.com/blockly/xml">
                      <block type="create" id="Dr!Fx~Beoz0vD-u,=b,/" x="-1137" y="-762">
                        <field name="NAME">motioneye.getEventStart</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="Wy?;T+5.gri54{%BRoya">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <value name="COMMON">
                          <block type="text" id="}PVYZ$ApfE[JT./zl9YQ">
                            <field name="TEXT">{"type":"boolean"}</field>
                          </block>
                        </value>
                        <next>
                          <block type="create" id="bLTZ|UzK$d7XZMob_k%D">
                            <field name="NAME">motioneye.getEventStop</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="%.syN]|jrZG9f7D6+)zh">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <value name="COMMON">
                              <block type="text" id="|M`,^Y_#h}E_B_m!`,lx">
                                <field name="TEXT">{"type":"boolean"}</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                      <block type="on" id="mjP?5E~a[.nxfq92+x03" x="-562" y="-762">
                        <field name="OID">javascript.0.motioneye.getEventStart</field>
                        <field name="CONDITION">true</field>
                        <field name="ACK_CONDITION"></field>
                        <statement name="STATEMENT">
                          <block type="control" id="Irj+AdQe](/s{qwwY9.*">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">kamera.0.Live_Bild_Hof_2_Trigger</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="#LR7R{hJpO8gK-7^_G0T">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </statement>
                        <next>
                          <block type="on" id="L{?ik@,9~9LVA1E4T58$">
                            <field name="OID">javascript.0.motioneye.getEventStop</field>
                            <field name="CONDITION">true</field>
                            <field name="ACK_CONDITION"></field>
                            <statement name="STATEMENT">
                              <block type="control" id="lQ=/_:?F.0wx,,$]yam?">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">kamera.0.Live_Bild_Hof_2_Trigger</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="xE%8._#@P2Zo@:v5;=gD">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="q(s^_W@O`za#6xyWCRAt">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">javascript.0.motioneye.getEventStart</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="#P;mKyGsx;lWF4@El%;l">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="MUmVEx!MA)NpV^jmSbU9">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">javascript.0.motioneye.getEventStop</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="logic_boolean" id="j6bL:Ydvc])|`e]!;;0E">
                                            <field name="BOOL">FALSE</field>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                      <block type="create" id="RkQbX[_+})vJ?5UekXGS" x="-1137" y="-312">
                        <field name="NAME">motioneye.getLastPic</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="P6=?$BEKQNHr20:N{Y/t">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <value name="COMMON">
                          <block type="text" id="l]060%Q7?l)-dFwh!;1x">
                            <field name="TEXT">{"type":"boolean"}</field>
                          </block>
                        </value>
                        <next>
                          <block type="create" id="5%dh/|_UT[|9zy-`Ow;!">
                            <field name="NAME">motioneye.takeSnapshot</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="6O+eV`T?YupBPAzQWO=0">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <value name="COMMON">
                              <block type="text" id="-!FR!~a21vuCPCLJppg/">
                                <field name="TEXT">{"type":"boolean"}</field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                      <block type="on" id="wfa-Dpk:nkUhIb{RU%uh" x="-562" y="-312">
                        <field name="OID">javascript.0.motioneye.takeSnapshot</field>
                        <field name="CONDITION">true</field>
                        <field name="ACK_CONDITION"></field>
                        <statement name="STATEMENT">
                          <block type="exec" id="]/8s/`J^W;XQ{qftY}Db">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG">log</field>
                            <value name="COMMAND">
                              <shadow type="text" id="(K$1|n(y2}Vo)e[F`t$[">
                                <field name="TEXT">curl 192.168.178.118:7999/1/action/snapshot</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="upr-7(fur`]75F6uEFcD">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">javascript.0.motioneye.takeSnapshot</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id=".AqlQids|W*gXLc^`/M8">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                        <next>
                          <block type="on" id="i$|PYR#c.Qc3*,lk?O*`">
                            <field name="OID">javascript.0.motioneye.getLastPic</field>
                            <field name="CONDITION">ne</field>
                            <field name="ACK_CONDITION"></field>
                            <statement name="STATEMENT">
                              <block type="telegram" id="WC]o9!Q[E=rY6~s#U[0q">
                                <field name="INSTANCE">.0</field>
                                <field name="LOG"></field>
                                <field name="SILENT">FALSE</field>
                                <field name="PARSEMODE">default</field>
                                <value name="MESSAGE">
                                  <shadow type="text" id="@rpRAn.t]M40U2v,qZ%2">
                                    <field name="TEXT">curl 192.168.178.118:7999/1/action/snapshot</field>
                                  </shadow>
                                  <block type="get_value" id="G2%KCoV,9q)w;P-cWe8F">
                                    <field name="ATTR">val</field>
                                    <field name="OID">javascript.0.motioneye.getLastPic</field>
                                  </block>
                                </value>
                                <value name="USERNAME">
                                  <block type="text" id=".b;[`=6Wv:j9?Oe_z4ZK">
                                    <field name="TEXT">Yoda</field>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </xml>
                    

                    Gruß Yoda
                    Stand 05.2025
                    Raspberry5,linux,arm64,CPUs:4,Geschwindigkeit:2400 MHz,Modell:Cortex-A76,RAM:15.8 GB,Node.js:v20.19.2

                    fu_zhouF 1 Antwort Letzte Antwort
                    0
                    • YodaY Yoda

                      @fu_zhou
                      Ich habe mir nun einen neuen Raspi aufgesetzt. Die Anleitung bin ich soweit durch.

                      1. Ich würde als erstes gerne zum testen per Vis Objekt Schalter bei True ein Bild an Telegramm schicken.
                      2. später dann noch Per Trigger True ein Video auf dem Raspi speichern, bei False dann die Aufnahme beenden.

                      Aber schon beim versuch die curl Befehle über die Konsole, klappt es nicht.
                      192.168.178.118:7999/1 = IP vom Raspi + CamID 1
                      Mein Raspi selbst hat den port 8081
                      Motioneye + Iobroker laufen auf den gleichen Raspi.

                      Wäre klasse wenn du / jemand meinen Fehler finden könnte.

                      Das ist sind die Antworten wen ich es auf die Konsole eingebe:

                      pi@raspberrypi:~ $ curl 192.168.178.118:7999/1/action/snapshot
                      curl: (7) Failed to connect to 192.168.178.118 port 7999: Verbindungsaufbau abgelehnt
                      pi@raspberrypi:~ $ curl 192.168.178.118:8081/set/javascript.0.motioneye.getEventStart?value=true
                      <!DOCTYPE html>
                      <html lang="en">
                      <head>
                      <meta charset="utf-8">
                      <title>Error</title>
                      </head>
                      <body>
                      <pre>Cannot GET /set/javascript.0.motioneye.getEventStart</pre>
                      </body>
                      </html>
                      pi@raspberrypi:~ $ 
                      
                      
                      

                      Datenpunkte sind Angelegt:
                      M1.jpg
                      In Motioney wurden die curl Befehle eingefügt:
                      m2.jpg
                      m3.jpg

                      Diese Blockys habe ich erstellt.
                      Das Objekt "Live_Bild_Hof_2_Trigger" ist dabei der einfache Schalten der bei True das Bild an Telegramm senden soll.
                      m4.jpg

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <block type="create" id="Dr!Fx~Beoz0vD-u,=b,/" x="-1137" y="-762">
                          <field name="NAME">motioneye.getEventStart</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="Wy?;T+5.gri54{%BRoya">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <value name="COMMON">
                            <block type="text" id="}PVYZ$ApfE[JT./zl9YQ">
                              <field name="TEXT">{"type":"boolean"}</field>
                            </block>
                          </value>
                          <next>
                            <block type="create" id="bLTZ|UzK$d7XZMob_k%D">
                              <field name="NAME">motioneye.getEventStop</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="%.syN]|jrZG9f7D6+)zh">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <value name="COMMON">
                                <block type="text" id="|M`,^Y_#h}E_B_m!`,lx">
                                  <field name="TEXT">{"type":"boolean"}</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                        <block type="on" id="mjP?5E~a[.nxfq92+x03" x="-562" y="-762">
                          <field name="OID">javascript.0.motioneye.getEventStart</field>
                          <field name="CONDITION">true</field>
                          <field name="ACK_CONDITION"></field>
                          <statement name="STATEMENT">
                            <block type="control" id="Irj+AdQe](/s{qwwY9.*">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">kamera.0.Live_Bild_Hof_2_Trigger</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="#LR7R{hJpO8gK-7^_G0T">
                                  <field name="BOOL">TRUE</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                          <next>
                            <block type="on" id="L{?ik@,9~9LVA1E4T58$">
                              <field name="OID">javascript.0.motioneye.getEventStop</field>
                              <field name="CONDITION">true</field>
                              <field name="ACK_CONDITION"></field>
                              <statement name="STATEMENT">
                                <block type="control" id="lQ=/_:?F.0wx,,$]yam?">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">kamera.0.Live_Bild_Hof_2_Trigger</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="xE%8._#@P2Zo@:v5;=gD">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="q(s^_W@O`za#6xyWCRAt">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">javascript.0.motioneye.getEventStart</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="#P;mKyGsx;lWF4@El%;l">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id="MUmVEx!MA)NpV^jmSbU9">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">javascript.0.motioneye.getEventStop</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="logic_boolean" id="j6bL:Ydvc])|`e]!;;0E">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                        <block type="create" id="RkQbX[_+})vJ?5UekXGS" x="-1137" y="-312">
                          <field name="NAME">motioneye.getLastPic</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="P6=?$BEKQNHr20:N{Y/t">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <value name="COMMON">
                            <block type="text" id="l]060%Q7?l)-dFwh!;1x">
                              <field name="TEXT">{"type":"boolean"}</field>
                            </block>
                          </value>
                          <next>
                            <block type="create" id="5%dh/|_UT[|9zy-`Ow;!">
                              <field name="NAME">motioneye.takeSnapshot</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="6O+eV`T?YupBPAzQWO=0">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <value name="COMMON">
                                <block type="text" id="-!FR!~a21vuCPCLJppg/">
                                  <field name="TEXT">{"type":"boolean"}</field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                        <block type="on" id="wfa-Dpk:nkUhIb{RU%uh" x="-562" y="-312">
                          <field name="OID">javascript.0.motioneye.takeSnapshot</field>
                          <field name="CONDITION">true</field>
                          <field name="ACK_CONDITION"></field>
                          <statement name="STATEMENT">
                            <block type="exec" id="]/8s/`J^W;XQ{qftY}Db">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                              <field name="WITH_STATEMENT">FALSE</field>
                              <field name="LOG">log</field>
                              <value name="COMMAND">
                                <shadow type="text" id="(K$1|n(y2}Vo)e[F`t$[">
                                  <field name="TEXT">curl 192.168.178.118:7999/1/action/snapshot</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="control" id="upr-7(fur`]75F6uEFcD">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">javascript.0.motioneye.takeSnapshot</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id=".AqlQids|W*gXLc^`/M8">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </statement>
                          <next>
                            <block type="on" id="i$|PYR#c.Qc3*,lk?O*`">
                              <field name="OID">javascript.0.motioneye.getLastPic</field>
                              <field name="CONDITION">ne</field>
                              <field name="ACK_CONDITION"></field>
                              <statement name="STATEMENT">
                                <block type="telegram" id="WC]o9!Q[E=rY6~s#U[0q">
                                  <field name="INSTANCE">.0</field>
                                  <field name="LOG"></field>
                                  <field name="SILENT">FALSE</field>
                                  <field name="PARSEMODE">default</field>
                                  <value name="MESSAGE">
                                    <shadow type="text" id="@rpRAn.t]M40U2v,qZ%2">
                                      <field name="TEXT">curl 192.168.178.118:7999/1/action/snapshot</field>
                                    </shadow>
                                    <block type="get_value" id="G2%KCoV,9q)w;P-cWe8F">
                                      <field name="ATTR">val</field>
                                      <field name="OID">javascript.0.motioneye.getLastPic</field>
                                    </block>
                                  </value>
                                  <value name="USERNAME">
                                    <block type="text" id=".b;[`=6Wv:j9?Oe_z4ZK">
                                      <field name="TEXT">Yoda</field>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </xml>
                      
                      fu_zhouF Offline
                      fu_zhouF Offline
                      fu_zhou
                      schrieb am zuletzt editiert von
                      #10

                      @yoda
                      Wenn ich ein curl auf mein motioneye loslasse kriege ich folgende Antwort:

                      curl 192.168.0.52:7999/1/action/snapshot
                      Snapshot for camera 1 
                      Done
                      
                      

                      Bei dir kommt "Verbindungsaufbau abgelehnt" ==> da solltest du ansetzen. Ist der Port über die Firewall geblockt, ist in der motioneye config localhost etc. deaktiviert?

                      Synology DS920+ VM, S7-315 PN mit ET200S

                      YodaY 1 Antwort Letzte Antwort
                      0
                      • fu_zhouF fu_zhou

                        @yoda
                        Wenn ich ein curl auf mein motioneye loslasse kriege ich folgende Antwort:

                        curl 192.168.0.52:7999/1/action/snapshot
                        Snapshot for camera 1 
                        Done
                        
                        

                        Bei dir kommt "Verbindungsaufbau abgelehnt" ==> da solltest du ansetzen. Ist der Port über die Firewall geblockt, ist in der motioneye config localhost etc. deaktiviert?

                        YodaY Offline
                        YodaY Offline
                        Yoda
                        schrieb am zuletzt editiert von
                        #11

                        @fu_zhou sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                        motioneye config localhost etc. deaktiviert?

                        ja wurde zuvor schon auf false angepasst.
                        Schon mal gut zu wissen wie deine Antwort auf den curl Befehl aussieht.

                        Habe nun schon versucht diverse Ports mal freizugeben bekomme aber einfach kein connect per curl Befehl hin :-(
                        Snapshot per Url klappt: http://192.168.178.118:8765/picture/1/current/
                        Könntest du mir einmal deine Freigabe für die Ports zeigen?
                        evtl. mache ich da auch etwas Falsch.

                        Motioneye läuft soweit, das bei einer Bewegungserkennung ein Bild gespeichert wird.
                        Die Bewegungserkennung läuft hier aber noch über die Bewegungserkennung der Kamera.
                        2021-03-24 08_44_56-Window.jpg

                        Werde es weiterversuchen muss doch klappen ...

                        Gruß Yoda
                        Stand 05.2025
                        Raspberry5,linux,arm64,CPUs:4,Geschwindigkeit:2400 MHz,Modell:Cortex-A76,RAM:15.8 GB,Node.js:v20.19.2

                        fu_zhouF S 2 Antworten Letzte Antwort
                        0
                        • YodaY Yoda

                          @fu_zhou sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                          motioneye config localhost etc. deaktiviert?

                          ja wurde zuvor schon auf false angepasst.
                          Schon mal gut zu wissen wie deine Antwort auf den curl Befehl aussieht.

                          Habe nun schon versucht diverse Ports mal freizugeben bekomme aber einfach kein connect per curl Befehl hin :-(
                          Snapshot per Url klappt: http://192.168.178.118:8765/picture/1/current/
                          Könntest du mir einmal deine Freigabe für die Ports zeigen?
                          evtl. mache ich da auch etwas Falsch.

                          Motioneye läuft soweit, das bei einer Bewegungserkennung ein Bild gespeichert wird.
                          Die Bewegungserkennung läuft hier aber noch über die Bewegungserkennung der Kamera.
                          2021-03-24 08_44_56-Window.jpg

                          Werde es weiterversuchen muss doch klappen ...

                          fu_zhouF Offline
                          fu_zhouF Offline
                          fu_zhou
                          schrieb am zuletzt editiert von
                          #12

                          @yoda Ich habe keine Ports explizit freigeben müssen, war nur so eine Idee... Da du motioneye und iobroker auf dem selben Pi hast, sollte das eigentlich keine Rolle spielen, da habe ich aber nur gefährliches Halbwissen...
                          Hast du mal von einem anderen PC im Netz versucht per curl auf den Pi zu kommen?

                          Synology DS920+ VM, S7-315 PN mit ET200S

                          1 Antwort Letzte Antwort
                          0
                          • YodaY Yoda

                            @fu_zhou sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                            motioneye config localhost etc. deaktiviert?

                            ja wurde zuvor schon auf false angepasst.
                            Schon mal gut zu wissen wie deine Antwort auf den curl Befehl aussieht.

                            Habe nun schon versucht diverse Ports mal freizugeben bekomme aber einfach kein connect per curl Befehl hin :-(
                            Snapshot per Url klappt: http://192.168.178.118:8765/picture/1/current/
                            Könntest du mir einmal deine Freigabe für die Ports zeigen?
                            evtl. mache ich da auch etwas Falsch.

                            Motioneye läuft soweit, das bei einer Bewegungserkennung ein Bild gespeichert wird.
                            Die Bewegungserkennung läuft hier aber noch über die Bewegungserkennung der Kamera.
                            2021-03-24 08_44_56-Window.jpg

                            Werde es weiterversuchen muss doch klappen ...

                            S Offline
                            S Offline
                            saint
                            schrieb am zuletzt editiert von
                            #13

                            @yoda

                            Du musst zusätzlich noch in /etc/motioneye/motion.conf den Eintrag "webcontrol_localhost on" zu "webcontrol_localhost off" ändern

                            YodaY 1 Antwort Letzte Antwort
                            1
                            • S saint

                              @yoda

                              Du musst zusätzlich noch in /etc/motioneye/motion.conf den Eintrag "webcontrol_localhost on" zu "webcontrol_localhost off" ändern

                              YodaY Offline
                              YodaY Offline
                              Yoda
                              schrieb am zuletzt editiert von
                              #14

                              @saint sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                              /etc/motioneye/motion.conf den Eintrag "webcontrol_localhost on" zu "webcontrol_localhost off"

                              Genau das wars - Danke @saint
                              Habe es geändert und bekomme nun auch das Bild per curl Befehl.

                              2021-03-29 08_26_00-Neuer Raspi 4 Aufsetzten 03.2021 - Word.jpg

                              Dann kann es nun weitergehen, das ich das jeweils letzte Bild per Telegramm verschicke.
                              2021-03-29 08_27_49-Window.jpg

                              Gruß Yoda
                              Stand 05.2025
                              Raspberry5,linux,arm64,CPUs:4,Geschwindigkeit:2400 MHz,Modell:Cortex-A76,RAM:15.8 GB,Node.js:v20.19.2

                              1 Antwort Letzte Antwort
                              0
                              • fu_zhouF fu_zhou

                                Hallo zusammen, ich habe viel mit dem Thema herumexperimentiert und bin jetzt zu einer für mich schönen Lösung gekommen, die ich hier zur Verfügung stellen möchte.

                                Ich habe ioBroker in einer virtuellen Maschine im VM Ware Player laufen: Ubuntu 20.04.01 Server. Motioneye läuft in einer zweiten VM, auch Ubuntu 20.04.01 Server. Die motioneye Installation hat zu 100% nach Anleitung funktioniert:
                                https://github.com/ccrisan/motioneye/wiki/(Install-On-Ubuntu-(20.04-or-Newer)
                                In beiden VMs ist der selbe shared folder aktiviert:
                                Zwischenablage01.jpg

                                sudo nano /etc/fstab
                                

                                Am Ende ergänzen:

                                .host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0
                                

                                Damit steht in beiden VMs (iobroker und motioneye) der Ordner /mnt/hgfs/rack_HDD zur Verfügung. Der Name ist im Player natürlich frei wählbar.

                                Ich habe beide VMs mit statischen IP-Adressen versehen: iobroker: endet mit .50, motioneye mit .52

                                Im ioBroker muss in der Web-Adapter-Instanz (bei mir web.0) noch "Eingebautes 'Simple-API'" aktiviert werden. Wenn der Port nicht 8082 ist, muss das in den curl-Anweisungen in motioneye entsprechend geändert werden. Die Vorgehensweise unten bezieht sich auf 8082.
                                Zwischenablage02.jpg

                                Konfiguration von motioneye:
                                mit putty einloggen

                                sudo nano /etc/motioneye/motioneye.conf
                                

                                Wir wollen mit iobroker neben dem motioneye webinterface auch auf motion zugreifen, daher den Zugriff nicht auf localhost beschränken (motion_control_localhost false):

                                # whether motion HTTP control interface listens on
                                # localhost or on all interfaces
                                motion_control_localhost false
                                

                                Noch kurz den Control-Port überprüfen:

                                motion_control_port 7999
                                

                                Ich habe bei mir über die Web-Konfiguration der IP-Kamera folgende Werte eingestellt: 1280x720, 15 fps. Damit kriege ich einen ausreichend flüssigen Stream und die CPU-Last der VM (host: i5 3. Generation) liegt bei <20%.

                                Jetzt kann die Konfiguration von motioneye im Browser geöffnet werden, ich gebe hier noch Werte an, die bei mir ganz gut funktionieren:
                                <IP-Adresse Motioneye>:8765
                                ggf. Benutzer wechseln - admin (ohne PW)

                                • Preferences: die beiden Dimmer habe ich auf 100% gestellt, die Grenzen habe ich ja in der Kamera konfiguriert
                                • Video Device:
                                  Camera Name: ist wohl selbsterklärend, z.B. Garten
                                  Camera Device: bei einer IP-Kamera kommt hier der Link zum Stream rein, z.B. rtsp://... bzw. der Wert aus der Erst-Konfiguration ist eingetragen.
                                  Video Resolution und Framerate: so wie in der Kamera eingestellt, bei mir also 1280x720, 15 fps
                                • File Storage:
                                  Root Directory: hier kommt jetzt der gemeinsam genutzte Ordner rein, z.B. /mnt/hgfs/rack_HDD/motioneye
                                  Run A Command: ON
                                  Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f
                                  Damit übergeben wir den Namen des letzten gespeicherten Bildes (z.B. bei Bewegung) an ioBroker.
                                • Text Overlay:
                                  Left Text: Camera Name
                                  Right Text: Custom Text: %Y-%m-%d\n%T-%q
                                  Mit -%q wird der Frame mit angezeigt, d.h. bei 15 fps sieht man in einer Sekunde, wie von 0 bis 14 hochgezählt wird. Damit erkennt man die aktuelle Stream-Geschwindigkeit gut.
                                  Text Scale: 3, damit kann man bei der Auflösung von 1280x720 die Schrift gut lesen
                                • Video Streaming:
                                  Streaming Frame Rate: 15 (entspricht der Einstellung der IP-Kamera)
                                  Streaming Quality: 100% (je nach Bedarf kann man auch mit weniger zufrieden sein)
                                  Motion Optimization: ON Damit wird der Stream ohne erkannte Bewegung auf 1 fps reduziert und hochgefahren, wenn Bewegung erkannt wird. Den Effekt sieht man durch -%q dann auch im Bild rechts unten.
                                  Streaming URL: Die Adresse kommt in vis z.B. in das Widget "basic -Image": Quelle. Damit hat man dann in der vis-Runtime den Live-Stream
                                • Still Images:
                                  Image File Name: %Y-%m-%d/%H-%M-%S_%q
                                  Durch %q wird vermieden, dass, sollten mehrere Bilder in einer Sekunde aufgenommen werden, Bilder überschrieben werden. %q hängt die Frame-Nummer an.
                                  Capture Mode: Motion Triggered (One Picture)
                                  Damit wird nur der Frame mit der meisten Bewegung (Anzahl geänderte Pixel) bei erkannter Bewegung (Event) gespeichert und nicht jedes einzelne Bild, was zu einer Bilder-Flut führt.
                                • Movies: habe ich deaktiviert
                                • Motion Detection:
                                  Frame Change Threshold: 0.4%
                                  Das sind knapp über 3.500 Pixel. die sich ändern müssen, um Bewegung zu erkennen. Habe ich durch (viel) probieren ermittelt und passt bei mir ganz gut
                                  Maximum Change Threshold: 50.000
                                  Damit wird bei mir vermieden, dass Bewegung erkannt wird, wenn z.B. nachts die Scheinwerfer eines Autos Licht in den überwachten Bereich werfen. In Kombination mit Light Switch Detection. Wenn sich die Kamera ziemlich dicht an sich bewegenden Objekten befindet, z.B. direkt über einer Tür, kann 50.000 viel zu niedrig sein. Gilt auch für Light Switch Detection weiter unten. Die Zahl der bewegten Pixel wird weiter unten auch angezeigt, damit bekommt man ein gutes Gefühl für sinnvolle Werte.
                                  Auto Threshold Tuning: off
                                  "On" hat bei mir zu viele Fehlauslösungen provoziert
                                  Auto Noise Detection: off
                                  "On" hat bei mir zu viele Fehlauslösungen provoziert
                                  Noise Level: 12%
                                  Wirkt vor allem nachts/ bei schwarz-weiß Bild der Kamera. Ich habe den Wert durch probieren ermittelt, um Fehlauslösungen zu vermeiden, aber Bewegung trotzdem zu erkennen.
                                  Light Switch Detection: 10%
                                  Der Wert darf nicht zu niedrig sein, eher >10%, Weil sonst echte Bewegung mit entsprechend vielen Pixeln als "Licht" interpretiert und nicht gemeldet wird. Wirkt vor allem, wenn die Kamera sich nachts bei Dunkelheit empfindlich einstellt und dann bei Lichteinfall das ganz Bild "weiß" wird, bis sich die Kamera an die neuen Lichtverhältnisse angepasst hat, was ja innerhalb weniger Sekunden der Fall ist.
                                  Show Frame Changes: ON
                                  Damit wird rechts oben im Bild die Anzahl der geänderten Pixel angezeigt und das bewegte Motiv wird rot umrandet.
                                • Motion Notification:
                                  Run A Command: ON
                                  Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStart?value=true
                                  Damit übergeben wir erkannte Bewegung an ioBroker
                                  Run An End Command: ON
                                  Command: curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getEventStop?value=true
                                  Damit übergeben wir beendete Bewegung an ioBroker

                                Jetzt können wir uns an die Blockly-Skripte machen:

                                1. Telegram
                                  Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
                                  javascript.0.motioneye.getLastPic
                                  javascript.0.motioneye.takeSnapshot
                                  Dann die Logik:
                                • Foto unabhängig von Bewegung auslösen (z.B. über Telegram oder ein anderes Objekt):
                                  exec Befehl: muss in der Javascript-Instanz aktiviert sein: Erlaube das Kommando "exec"
                                  curl <IP-Adresse von motioneye>:7999/1/action/snapshot
                                  7999 ist der motion_control_port, den wir ganz oben aus der motioneye.conf geholt haben.
                                  1 ist die Kamera-ID. Bei mehreren Kameras ist hier die entsprechende ID anzugeben. Dann müssen ggf. auch mehrere Skripte mit unterschiedlichen (nummerierten) Datenpunkten
                                  javascript.0.motioneye.getLastPic
                                  javascript.0.motioneye.takeSnapshot
                                  angelegt werden.
                                • aktuellestes Foto an Telegram senden (ausgelöst durch Bewegung oder Telegram bzw. anderes Objekt):
                                  Bildname wird durch curl <IP-Adresse von iobroker>:8082/set/javascript.0.motioneye.getLastPic?value=%f (angegeben in der Motioneye-Konfiguration unter "File Storage" - s.o.) an ioBroker übergeben.
                                  Zwischenablage05.jpg
                                1. Aktion bei erkannter Bewegung auslösen, z.B. Licht schalten (=Bewegungsmelder)
                                  Zuerst müssen die Datenpunkte angelegt werden (übernimmt Blockly):
                                  javascript.0.motioneye.getEventStart
                                  javascript.0.motioneye.getEventStop
                                  Auch hier gilt: Bei mehr als einer Kamera ggf. mehrere Skripte mit nummerierten Datenpunkten anlegen.
                                  Dann die Logik:
                                  "Bewegung_erkannt_durch_Kamera_EINGANG" ist aus meinem Datenpunkt-Haushalt, bei euch ist das ein entsprechend anderes Objekt.
                                  Zwischenablage02.jpg
                                  Um ein Bild mit Telegram auszulösen noch ein text2command anlegen:
                                  Regel: Schalte irgendetwas an oder aus
                                  Name: Foto
                                  Zwischenablage07.jpg
                                  text2command muss in der Telegram-Adapter-Instanz aktiviert sein (=> NACHRICHTEN).

                                Wenn man jetzt also "Foto" an seinen Bot schickt, wird ein Foto ausgelöst und geschickt.

                                Das war er soweit auch schon. In der Anleitung steckt ein Haufen Arbeit, also nicht einfach hier rauskopieren und weiterverteilen - danke!

                                Marc_el_KM Offline
                                Marc_el_KM Offline
                                Marc_el_K
                                schrieb am zuletzt editiert von
                                #15

                                @fu_zhou Hallo, Danke für deinen interessanten Beitrag.

                                Ist es denn möglich, auch von ioBroker einen Datenpunkt zu setzen, welcher die Bewegungserkennung der Kameras ein und ausschaltet. Ich nutze einen Pi4 und Vis und nun kam mir die Idee, dass die Bewegungserkennung und auch die Funktion "Still Images" nur dann aktiviert werden soll, wenn ich nicht zu Hause bin. Gibts dafür auch eine Lösung?

                                Danke vorab
                                Gruß Marcel

                                1 Antwort Letzte Antwort
                                0
                                • Marc_el_KM Offline
                                  Marc_el_KM Offline
                                  Marc_el_K
                                  schrieb am zuletzt editiert von
                                  #16

                                  @fu_zhou Hat sich erledigt. Habe es mit "/detection/pause" gelöst

                                  crunchipC 1 Antwort Letzte Antwort
                                  0
                                  • Marc_el_KM Marc_el_K

                                    @fu_zhou Hat sich erledigt. Habe es mit "/detection/pause" gelöst

                                    crunchipC Abwesend
                                    crunchipC Abwesend
                                    crunchip
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von crunchip
                                    #17

                                    @marc_el_k bin da irgendwie zu blöd für, wie muss denn das blockly aussehen bzw der Befehl, um zu senden?

                                    umgestiegen von Proxmox auf Unraid

                                    1 Antwort Letzte Antwort
                                    0
                                    • Marc_el_KM Offline
                                      Marc_el_KM Offline
                                      Marc_el_K
                                      schrieb am zuletzt editiert von
                                      #18

                                      @crunchip Ich bin hier nach gegangen

                                      MotioneyeOS Aktivierung/Deaktivierung Bewegungserkennung

                                      Als Script habe ich den EXEC Befehl ausgeführt mit

                                      curl http://IPIOBROKER:7999/1/detection/start
                                      

                                      bzw.

                                      curl http://IPIOBROKER:7999/1/detection/pause
                                      

                                      Die 1 im Link steht für Kamera 1...also anpassen.

                                      Den Status kannst du mit

                                      http://IPIOBROKER:7999/1/detection/status
                                      

                                      abfragen.

                                      Bei mir hatte es erst nicht geklappt, bis ich in der motion.conf auf

                                      webcontrol_localhost off
                                      

                                      geändert habe.

                                      Hoffe das hilft dir!

                                      crunchipC WszeneW 2 Antworten Letzte Antwort
                                      0
                                      • Marc_el_KM Marc_el_K

                                        @crunchip Ich bin hier nach gegangen

                                        MotioneyeOS Aktivierung/Deaktivierung Bewegungserkennung

                                        Als Script habe ich den EXEC Befehl ausgeführt mit

                                        curl http://IPIOBROKER:7999/1/detection/start
                                        

                                        bzw.

                                        curl http://IPIOBROKER:7999/1/detection/pause
                                        

                                        Die 1 im Link steht für Kamera 1...also anpassen.

                                        Den Status kannst du mit

                                        http://IPIOBROKER:7999/1/detection/status
                                        

                                        abfragen.

                                        Bei mir hatte es erst nicht geklappt, bis ich in der motion.conf auf

                                        webcontrol_localhost off
                                        

                                        geändert habe.

                                        Hoffe das hilft dir!

                                        crunchipC Abwesend
                                        crunchipC Abwesend
                                        crunchip
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von crunchip
                                        #19

                                        @marc_el_k sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                                        curl http://IPIOBROKER:7999/1/detection/pause

                                        ja, so habe ich es auch, klappt aber nicht

                                        @marc_el_k sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                                        webcontrol_localhost off

                                        steht bei mir auf off

                                        Edit:
                                        ich hatte es die ganze Zeit mit Kamera ID 0 probiert, für alle Kamera`s

                                        So issuing a command of {IP}:{port}/0/detection/pause is going to pause all the cameras.
                                        

                                        geht aber nicht, einzelne funktionieren

                                        umgestiegen von Proxmox auf Unraid

                                        1 Antwort Letzte Antwort
                                        0
                                        • P Offline
                                          P Offline
                                          Pittini
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #20

                                          @fu_zhou sagte in Bewegungserkennung mit Motioneye, Lösung komplett in Blockly:

                                          curl 192.168.0.50:8082/set/javascript.0.motioneye.getEventStart?value=true

                                          Hi allerseits, ich hab mich auch mal an die Sache gewagt und es läuft....fast. Also Bild, curlbefehle etc alles gut, aber wie krieg ich den shared Folder unter Proxmox hin? Iobroker läuft in ner VM, Motioneye in nem unprivilegierten Lxc. Ich krieg auch wunderbar den Pfad zum Image geschickt, nur wie greif ich da jetzt zu?

                                          crunchipC 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          817

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe