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. JavaScript
  5. Personenerkennung: Aufruf Linux Script mit Parameter

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Personenerkennung: Aufruf Linux Script mit Parameter

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
39 Beiträge 8 Kommentatoren 3.9k Aufrufe 11 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.
  • U Offline
    U Offline
    uwe72
    schrieb am zuletzt editiert von uwe72
    #1

    Ich schreibe erst einmal was in der Linux console bereits funktioniert.

    Ich rufe ein Script auf:
    a6c57c26-d977-43aa-9cc0-4a7e2dc1ec70-image.png

    Dieses Script "startet ein Programm":
    e856e9c3-1987-4706-aff1-6becd015613a-image.png

    Nach dem "das Programm" gestartet ist, kann man in der Console ein relativen Pfad zu einem Bild eingeben, z.B. "data/dog.jpg"
    abdd9d52-0419-4336-aa81-d0a4d971529e-image.png

    Im Anschluss bekomme ich auf der Konsole das Ergebnis, dass auf dem Bild sich ein Fahrrad, ein Hund, usw. befindet.
    448c05b9-c47d-41dd-b707-753a8a94202d-image.png

    Rein theoretisch könnte man sich auch noch das Ergebnis auf dem Output anschauen:
    1c39f113-f373-46ae-9f1b-174eb3bd82b4-image.png

    Danach kann ich beliebig oft eine andere Bilddatei angeben, z.b. ein Bild einer Schulklasse:
    9d8d7959-cb27-4bd8-bc41-7bc870c3c305-image.png

    Das starten des Scriptes dauert >5 Sekunden. Die anschließende Bildanalyse jeweils pro Bild <1 Sekunde.

    So warum schreibe ich dies im ioBroker-Forum?

    Ich möchte diese Personenerkennung in ioBroker einbinden.

    Das Linux-Script kann ich aufrufen über ioBroker-JavaScript. Aber ich habe gerade keine Idee/Ahnung wie ich es irgendwie schaffe, dass ich das Linux-Script nur einmal aufrufe und im Anschluss immer eine neue Bilddatei übergeben kann zur Analyse?

    Hintergrund: Ich möchte alle paar wenige Sekunden ein Bild von der Kamera abgreifen, dieses dem laufenden "Linux Programm/Script" übergeben und somit auslesen, ob eine Person erkannt wird oder nicht. So spare ich mir einen Bewegungsmelder an der Kamera und habe eine nahezu 100% Personenerkennung, dies auch noch lokal. Habe das selbe schon am Laufen über einen Microsoft Webservice. Das hat für mich aber keine Zukunft. Ich möchte dies lokal machen. Es funktioniert auch wie gesagt in Linux, aber es fehlt noch die Brücke zum ioBroker.

    Kann mir hier jemand - bei dem zugegeben speziellen Thema - weiterhelfen?

    Ich find das Thema äußerst spannend.

    Das Linux-Script bekomme ich schon über mein ioBroker-JavaScript aufgerufen:

    // Xiaomi Schalter (Smart Switch) hat ausgelöst im Büro:
    on({id: sensor_taster_buero.sensorTasterStateButtonPressed, change: 'any'}, function (obj) { 
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (value == 0 && oldValue == 1002) {
          log("test");
          execabc();
        }
    });
    
     
    function execabc() {
      var conn = new Client();
      conn.on('ready', function() {
        conn.exec('/home/uwe72/darknet/start.sh', function(err, stream) {
        //conn.exec('/root/darknet/darknet detect yolov3.cfg yolov3.weights data/uwe.jpg', function(err, stream) {        
          if (err) throw err;
          stream.on('close', function(code, signal) {
            conn.end();
          }).on('data', function(data) {
            log('Ausgabe: ' + data);
          }).stderr.on('data', function(data) {
            log('Fehler: ' + data);
          });
        });
      }).connect({
        host: '192.168.178.135', // IP des RPi
        port: 22,
        username: 'uwe72',
        password: 'SmartHxxx'
      });
    }
    

    3d8efeb6-0bbf-4567-9504-a48d072bd734-image.png
    Aber wie gesagt, weiß ich nicht wie ich nun laufend die Bilder übergeben kann.

    SBorgS AlCalzoneA 2 Antworten Letzte Antwort
    0
    • U uwe72

      Ich schreibe erst einmal was in der Linux console bereits funktioniert.

      Ich rufe ein Script auf:
      a6c57c26-d977-43aa-9cc0-4a7e2dc1ec70-image.png

      Dieses Script "startet ein Programm":
      e856e9c3-1987-4706-aff1-6becd015613a-image.png

      Nach dem "das Programm" gestartet ist, kann man in der Console ein relativen Pfad zu einem Bild eingeben, z.B. "data/dog.jpg"
      abdd9d52-0419-4336-aa81-d0a4d971529e-image.png

      Im Anschluss bekomme ich auf der Konsole das Ergebnis, dass auf dem Bild sich ein Fahrrad, ein Hund, usw. befindet.
      448c05b9-c47d-41dd-b707-753a8a94202d-image.png

      Rein theoretisch könnte man sich auch noch das Ergebnis auf dem Output anschauen:
      1c39f113-f373-46ae-9f1b-174eb3bd82b4-image.png

      Danach kann ich beliebig oft eine andere Bilddatei angeben, z.b. ein Bild einer Schulklasse:
      9d8d7959-cb27-4bd8-bc41-7bc870c3c305-image.png

      Das starten des Scriptes dauert >5 Sekunden. Die anschließende Bildanalyse jeweils pro Bild <1 Sekunde.

      So warum schreibe ich dies im ioBroker-Forum?

      Ich möchte diese Personenerkennung in ioBroker einbinden.

      Das Linux-Script kann ich aufrufen über ioBroker-JavaScript. Aber ich habe gerade keine Idee/Ahnung wie ich es irgendwie schaffe, dass ich das Linux-Script nur einmal aufrufe und im Anschluss immer eine neue Bilddatei übergeben kann zur Analyse?

      Hintergrund: Ich möchte alle paar wenige Sekunden ein Bild von der Kamera abgreifen, dieses dem laufenden "Linux Programm/Script" übergeben und somit auslesen, ob eine Person erkannt wird oder nicht. So spare ich mir einen Bewegungsmelder an der Kamera und habe eine nahezu 100% Personenerkennung, dies auch noch lokal. Habe das selbe schon am Laufen über einen Microsoft Webservice. Das hat für mich aber keine Zukunft. Ich möchte dies lokal machen. Es funktioniert auch wie gesagt in Linux, aber es fehlt noch die Brücke zum ioBroker.

      Kann mir hier jemand - bei dem zugegeben speziellen Thema - weiterhelfen?

      Ich find das Thema äußerst spannend.

      Das Linux-Script bekomme ich schon über mein ioBroker-JavaScript aufgerufen:

      // Xiaomi Schalter (Smart Switch) hat ausgelöst im Büro:
      on({id: sensor_taster_buero.sensorTasterStateButtonPressed, change: 'any'}, function (obj) { 
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (value == 0 && oldValue == 1002) {
            log("test");
            execabc();
          }
      });
      
       
      function execabc() {
        var conn = new Client();
        conn.on('ready', function() {
          conn.exec('/home/uwe72/darknet/start.sh', function(err, stream) {
          //conn.exec('/root/darknet/darknet detect yolov3.cfg yolov3.weights data/uwe.jpg', function(err, stream) {        
            if (err) throw err;
            stream.on('close', function(code, signal) {
              conn.end();
            }).on('data', function(data) {
              log('Ausgabe: ' + data);
            }).stderr.on('data', function(data) {
              log('Fehler: ' + data);
            });
          });
        }).connect({
          host: '192.168.178.135', // IP des RPi
          port: 22,
          username: 'uwe72',
          password: 'SmartHxxx'
        });
      }
      

      3d8efeb6-0bbf-4567-9504-a48d072bd734-image.png
      Aber wie gesagt, weiß ich nicht wie ich nun laufend die Bilder übergeben kann.

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @uwe72 Hi,
      lässt sich das "Programm" per Parameter (für das Image) aufrufen? Ev. könnte man es auch mal mit pipen probieren:

      xyz | echo bild.jpg
      

      Dann könnte man die start.sh derart abändern, dass du das Bild als Parameter übergeben kannst und es in JS dann mittels '/home/uwe72/darknet/start.sh bild.jpg' aufrufen könntest.

      LG SBorg ( SBorg auf GitHub)
      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

      U 1 Antwort Letzte Antwort
      0
      • SBorgS SBorg

        @uwe72 Hi,
        lässt sich das "Programm" per Parameter (für das Image) aufrufen? Ev. könnte man es auch mal mit pipen probieren:

        xyz | echo bild.jpg
        

        Dann könnte man die start.sh derart abändern, dass du das Bild als Parameter übergeben kannst und es in JS dann mittels '/home/uwe72/darknet/start.sh bild.jpg' aufrufen könntest.

        U Offline
        U Offline
        uwe72
        schrieb am zuletzt editiert von
        #3

        @SBorg Ja, das würde schon gehen. Aber dann würde das "Programm" leider immer wieder von neuem "starten" und ich bräuchte immer die 6-7 Sekunden. Wenn das "Programm" mal gestartet ist kriege ich die Bildanalyse dann im Nachgang in kleiner als 1 Sekunde. Ich muss mal schauen, danke Dir!

        SBorgS 1 Antwort Letzte Antwort
        0
        • U uwe72

          @SBorg Ja, das würde schon gehen. Aber dann würde das "Programm" leider immer wieder von neuem "starten" und ich bräuchte immer die 6-7 Sekunden. Wenn das "Programm" mal gestartet ist kriege ich die Bildanalyse dann im Nachgang in kleiner als 1 Sekunde. Ich muss mal schauen, danke Dir!

          SBorgS Offline
          SBorgS Offline
          SBorg
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4

          @uwe72 Problem verstanden ;)
          Wenn du das "Programm" in einem Screen laufen lässt? Dann wartet der Screen auf die Eingabe des Dateinamens. Dann könntest du den Dateinamen per JS an den Screen schicken.

          LG SBorg ( SBorg auf GitHub)
          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

          U 1 Antwort Letzte Antwort
          0
          • SBorgS SBorg

            @uwe72 Problem verstanden ;)
            Wenn du das "Programm" in einem Screen laufen lässt? Dann wartet der Screen auf die Eingabe des Dateinamens. Dann könntest du den Dateinamen per JS an den Screen schicken.

            U Offline
            U Offline
            uwe72
            schrieb am zuletzt editiert von uwe72
            #5

            @SBorg Kannst Du mir hier noch bitte 2-3 Sätze schreiben, was meinst Du mit Screen? Bin nicht der Held in Linux. Bzw. habe nun mal nach screen gegoogelt. Werde ich mir mal anschauen. Danke!

            SBorgS 1 Antwort Letzte Antwort
            0
            • mickymM Offline
              mickymM Offline
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #6

              Gelöscht

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              1 Antwort Letzte Antwort
              0
              • U uwe72

                @SBorg Kannst Du mir hier noch bitte 2-3 Sätze schreiben, was meinst Du mit Screen? Bin nicht der Held in Linux. Bzw. habe nun mal nach screen gegoogelt. Werde ich mir mal anschauen. Danke!

                SBorgS Offline
                SBorgS Offline
                SBorg
                Forum Testing Most Active
                schrieb am zuletzt editiert von SBorg
                #7

                @uwe72 Kein Problem, mag nur nicht unnütz eine Litanei schreiben wenn mein "Gegenüber" ev. nur einen Denkanstoß benötigte ;)
                Du öffnest testweise mal zwei Sessions mittels putty oä.
                In die #2 gibst du ein screen -S test und dann einfach date (aber diesmal ohne ENTER, der Cursor soll einfach hinter "date" stehen bleiben)
                In die #1 nun screen -S test -X stuff $'\n'
                Du siehst was in #2 passiert ist :sunglasses:

                Du musst also in #2 nur dein Programm starten damit es auf die Bildeingabe wartet, dann kannst du #2 schließen (nicht per exit beenden, sonst wird auch der Screen geschlossen! )
                In #1 wird dann mittels screen -S test -X stuff $'bild.jpg\n'

                bild.jpg (\n ist der Code für ein ENTER) an #2 geschickt der es verarbeitet. "test" würde ich dann natürlich noch aussagekräftiger benennen. Wenn das soweit klappt musst du nur noch den Teil "Screen #2 mit 'Programm' starten" automatisieren, damit es auch automatisch nach einem Reboot wieder läuft ;)

                btw: mittels screen -ls kannst du dir alle geöffneten Screens anschauen

                LG SBorg ( SBorg auf GitHub)
                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                U 2 Antworten Letzte Antwort
                1
                • SBorgS SBorg

                  @uwe72 Kein Problem, mag nur nicht unnütz eine Litanei schreiben wenn mein "Gegenüber" ev. nur einen Denkanstoß benötigte ;)
                  Du öffnest testweise mal zwei Sessions mittels putty oä.
                  In die #2 gibst du ein screen -S test und dann einfach date (aber diesmal ohne ENTER, der Cursor soll einfach hinter "date" stehen bleiben)
                  In die #1 nun screen -S test -X stuff $'\n'
                  Du siehst was in #2 passiert ist :sunglasses:

                  Du musst also in #2 nur dein Programm starten damit es auf die Bildeingabe wartet, dann kannst du #2 schließen (nicht per exit beenden, sonst wird auch der Screen geschlossen! )
                  In #1 wird dann mittels screen -S test -X stuff $'bild.jpg\n'

                  bild.jpg (\n ist der Code für ein ENTER) an #2 geschickt der es verarbeitet. "test" würde ich dann natürlich noch aussagekräftiger benennen. Wenn das soweit klappt musst du nur noch den Teil "Screen #2 mit 'Programm' starten" automatisieren, damit es auch automatisch nach einem Reboot wieder läuft ;)

                  btw: mittels screen -ls kannst du dir alle geöffneten Screens anschauen

                  U Offline
                  U Offline
                  uwe72
                  schrieb am zuletzt editiert von
                  #8

                  @SBorg Danke!!

                  Das klingt schon ein mal sehr vielversprechend. Funktioniert grundsätzlich auch:
                  d11fe52f-e4c3-4790-9e8f-0afdc5dddb61-image.png

                  Ich muss nun nur schauen, wie ich an das Ergebnis komme, denn das steht ja eigentlich in #2. ggf. lässt sich diese aber auch in eine Datei ausleiten.

                  1 Antwort Letzte Antwort
                  0
                  • SBorgS SBorg

                    @uwe72 Kein Problem, mag nur nicht unnütz eine Litanei schreiben wenn mein "Gegenüber" ev. nur einen Denkanstoß benötigte ;)
                    Du öffnest testweise mal zwei Sessions mittels putty oä.
                    In die #2 gibst du ein screen -S test und dann einfach date (aber diesmal ohne ENTER, der Cursor soll einfach hinter "date" stehen bleiben)
                    In die #1 nun screen -S test -X stuff $'\n'
                    Du siehst was in #2 passiert ist :sunglasses:

                    Du musst also in #2 nur dein Programm starten damit es auf die Bildeingabe wartet, dann kannst du #2 schließen (nicht per exit beenden, sonst wird auch der Screen geschlossen! )
                    In #1 wird dann mittels screen -S test -X stuff $'bild.jpg\n'

                    bild.jpg (\n ist der Code für ein ENTER) an #2 geschickt der es verarbeitet. "test" würde ich dann natürlich noch aussagekräftiger benennen. Wenn das soweit klappt musst du nur noch den Teil "Screen #2 mit 'Programm' starten" automatisieren, damit es auch automatisch nach einem Reboot wieder läuft ;)

                    btw: mittels screen -ls kannst du dir alle geöffneten Screens anschauen

                    U Offline
                    U Offline
                    uwe72
                    schrieb am zuletzt editiert von uwe72
                    #9

                    @SBorg Sehe schon, das geht ggf. mit

                    screen -rx test
                    

                    `

                    U 1 Antwort Letzte Antwort
                    0
                    • U uwe72

                      @SBorg Sehe schon, das geht ggf. mit

                      screen -rx test
                      

                      `

                      U Offline
                      U Offline
                      uwe72
                      schrieb am zuletzt editiert von uwe72
                      #10

                      @SBorg es funktioniert nun alles. Habe es so hingekriegt, dass es grundsätzlich funktioniert.

                      Gebe den Consolenoutput noch in eine Datei aus.

                      Diese Datei kann ich in iobroker wieder einlesen um an das Ergebnis (der Bildanalyse) zu kommen.

                      Muss mal schauen, was ich noch optimieren kann. Beispielsweise ohne den Umweg über die Datei zu gehen.

                      Danke auf alle Fälle!!

                      SBorgS 1 Antwort Letzte Antwort
                      0
                      • U uwe72

                        @SBorg es funktioniert nun alles. Habe es so hingekriegt, dass es grundsätzlich funktioniert.

                        Gebe den Consolenoutput noch in eine Datei aus.

                        Diese Datei kann ich in iobroker wieder einlesen um an das Ergebnis (der Bildanalyse) zu kommen.

                        Muss mal schauen, was ich noch optimieren kann. Beispielsweise ohne den Umweg über die Datei zu gehen.

                        Danke auf alle Fälle!!

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @uwe72 sagte in Personenerkennung: Aufruf Linux Script mit Parameter:

                        Beispielsweise ohne den Umweg über die Datei zu gehen.

                        Würde ich eigentlich als Parameter "-Q" verstehen, habe ich aber bis dato nicht hinbekommen.

                        LG SBorg ( SBorg auf GitHub)
                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                        1 Antwort Letzte Antwort
                        1
                        • U uwe72

                          Ich schreibe erst einmal was in der Linux console bereits funktioniert.

                          Ich rufe ein Script auf:
                          a6c57c26-d977-43aa-9cc0-4a7e2dc1ec70-image.png

                          Dieses Script "startet ein Programm":
                          e856e9c3-1987-4706-aff1-6becd015613a-image.png

                          Nach dem "das Programm" gestartet ist, kann man in der Console ein relativen Pfad zu einem Bild eingeben, z.B. "data/dog.jpg"
                          abdd9d52-0419-4336-aa81-d0a4d971529e-image.png

                          Im Anschluss bekomme ich auf der Konsole das Ergebnis, dass auf dem Bild sich ein Fahrrad, ein Hund, usw. befindet.
                          448c05b9-c47d-41dd-b707-753a8a94202d-image.png

                          Rein theoretisch könnte man sich auch noch das Ergebnis auf dem Output anschauen:
                          1c39f113-f373-46ae-9f1b-174eb3bd82b4-image.png

                          Danach kann ich beliebig oft eine andere Bilddatei angeben, z.b. ein Bild einer Schulklasse:
                          9d8d7959-cb27-4bd8-bc41-7bc870c3c305-image.png

                          Das starten des Scriptes dauert >5 Sekunden. Die anschließende Bildanalyse jeweils pro Bild <1 Sekunde.

                          So warum schreibe ich dies im ioBroker-Forum?

                          Ich möchte diese Personenerkennung in ioBroker einbinden.

                          Das Linux-Script kann ich aufrufen über ioBroker-JavaScript. Aber ich habe gerade keine Idee/Ahnung wie ich es irgendwie schaffe, dass ich das Linux-Script nur einmal aufrufe und im Anschluss immer eine neue Bilddatei übergeben kann zur Analyse?

                          Hintergrund: Ich möchte alle paar wenige Sekunden ein Bild von der Kamera abgreifen, dieses dem laufenden "Linux Programm/Script" übergeben und somit auslesen, ob eine Person erkannt wird oder nicht. So spare ich mir einen Bewegungsmelder an der Kamera und habe eine nahezu 100% Personenerkennung, dies auch noch lokal. Habe das selbe schon am Laufen über einen Microsoft Webservice. Das hat für mich aber keine Zukunft. Ich möchte dies lokal machen. Es funktioniert auch wie gesagt in Linux, aber es fehlt noch die Brücke zum ioBroker.

                          Kann mir hier jemand - bei dem zugegeben speziellen Thema - weiterhelfen?

                          Ich find das Thema äußerst spannend.

                          Das Linux-Script bekomme ich schon über mein ioBroker-JavaScript aufgerufen:

                          // Xiaomi Schalter (Smart Switch) hat ausgelöst im Büro:
                          on({id: sensor_taster_buero.sensorTasterStateButtonPressed, change: 'any'}, function (obj) { 
                              var value = obj.state.val;
                              var oldValue = obj.oldState.val;
                              if (value == 0 && oldValue == 1002) {
                                log("test");
                                execabc();
                              }
                          });
                          
                           
                          function execabc() {
                            var conn = new Client();
                            conn.on('ready', function() {
                              conn.exec('/home/uwe72/darknet/start.sh', function(err, stream) {
                              //conn.exec('/root/darknet/darknet detect yolov3.cfg yolov3.weights data/uwe.jpg', function(err, stream) {        
                                if (err) throw err;
                                stream.on('close', function(code, signal) {
                                  conn.end();
                                }).on('data', function(data) {
                                  log('Ausgabe: ' + data);
                                }).stderr.on('data', function(data) {
                                  log('Fehler: ' + data);
                                });
                              });
                            }).connect({
                              host: '192.168.178.135', // IP des RPi
                              port: 22,
                              username: 'uwe72',
                              password: 'SmartHxxx'
                            });
                          }
                          

                          3d8efeb6-0bbf-4567-9504-a48d072bd734-image.png
                          Aber wie gesagt, weiß ich nicht wie ich nun laufend die Bilder übergeben kann.

                          AlCalzoneA Offline
                          AlCalzoneA Offline
                          AlCalzone
                          Developer
                          schrieb am zuletzt editiert von AlCalzone
                          #12

                          @uwe72 sagte in Personenerkennung: Aufruf Linux Script mit Parameter:

                          Aber wie gesagt, weiß ich nicht wie ich nun laufend die Bilder übergeben kann.

                          Wenn es lokal läuft, kannst du mit dem child_process-Module und exec einen Prozess starten und in stdin schreiben:
                          https://nodejs.org/api/child_process.html#child_process_subprocess_stdin
                          Das entspricht einer manuellen Eingabe auf der Konsole.

                          Gebe den Consolenoutput noch in eine Datei aus.
                          Diese Datei kann ich in iobroker wieder einlesen um an das Ergebnis (der Bildanalyse) zu kommen.

                          Und da kommst du über stdout dran.

                          Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                          U 1 Antwort Letzte Antwort
                          1
                          • AlCalzoneA AlCalzone

                            @uwe72 sagte in Personenerkennung: Aufruf Linux Script mit Parameter:

                            Aber wie gesagt, weiß ich nicht wie ich nun laufend die Bilder übergeben kann.

                            Wenn es lokal läuft, kannst du mit dem child_process-Module und exec einen Prozess starten und in stdin schreiben:
                            https://nodejs.org/api/child_process.html#child_process_subprocess_stdin
                            Das entspricht einer manuellen Eingabe auf der Konsole.

                            Gebe den Consolenoutput noch in eine Datei aus.
                            Diese Datei kann ich in iobroker wieder einlesen um an das Ergebnis (der Bildanalyse) zu kommen.

                            Und da kommst du über stdout dran.

                            U Offline
                            U Offline
                            uwe72
                            schrieb am zuletzt editiert von
                            #13

                            @AlCalzone mit "lokal" meinst Du, die "Bilderkennungssoftware" und "iobroker" laufen auf dem selben "Rechner"?

                            AlCalzoneA 1 Antwort Letzte Antwort
                            0
                            • U uwe72

                              @AlCalzone mit "lokal" meinst Du, die "Bilderkennungssoftware" und "iobroker" laufen auf dem selben "Rechner"?

                              AlCalzoneA Offline
                              AlCalzoneA Offline
                              AlCalzone
                              Developer
                              schrieb am zuletzt editiert von
                              #14

                              @uwe72 genau

                              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                              1 Antwort Letzte Antwort
                              0
                              • U Offline
                                U Offline
                                uwe72
                                schrieb am zuletzt editiert von
                                #15

                                Danke Euch beiden mal @SBorg @AlCalzone !!

                                Hab schon ein mal dank Euch dazu gelernt. Bin noch nicht ganz am Ziel, aber Bauchgefühl, sollte vollends möglich sein.

                                @AlCalzone: Hab die Sachen auf unterschiedlichen Rechnern. Da kann und möchte ich auch nichts ändern. iobroker läuft auf einem leistungsstarkem NUC und die Bilderkennung auf einem Jetson Nano.

                                @SBorg Läuft grundsätzlich, nur komme ich noch nicht an den Konsolenoutput ran von #2. Versuche gerade, dass #2 die Konsole in eine Datei schreibt. Über NFS-Server-/Client lese ich im iobroker den Inhalt ein. Das ist noch ein wenig umständlich und #1 liest schneller ein als #2 schreibt. Kann zwar ein timeout vor dem einlesen einbauen, aber da verliere ich auch Zeit. Ist alles noch ein wenig "umständlich" :-) Aber ich gebe noch nicht auf :-)

                                AlCalzoneA 1 Antwort Letzte Antwort
                                0
                                • U uwe72

                                  Danke Euch beiden mal @SBorg @AlCalzone !!

                                  Hab schon ein mal dank Euch dazu gelernt. Bin noch nicht ganz am Ziel, aber Bauchgefühl, sollte vollends möglich sein.

                                  @AlCalzone: Hab die Sachen auf unterschiedlichen Rechnern. Da kann und möchte ich auch nichts ändern. iobroker läuft auf einem leistungsstarkem NUC und die Bilderkennung auf einem Jetson Nano.

                                  @SBorg Läuft grundsätzlich, nur komme ich noch nicht an den Konsolenoutput ran von #2. Versuche gerade, dass #2 die Konsole in eine Datei schreibt. Über NFS-Server-/Client lese ich im iobroker den Inhalt ein. Das ist noch ein wenig umständlich und #1 liest schneller ein als #2 schreibt. Kann zwar ein timeout vor dem einlesen einbauen, aber da verliere ich auch Zeit. Ist alles noch ein wenig "umständlich" :-) Aber ich gebe noch nicht auf :-)

                                  AlCalzoneA Offline
                                  AlCalzoneA Offline
                                  AlCalzone
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #16

                                  @uwe72 Ich habe das hier gefunden, was ähnlich aussieht wie der Code in deinem ursprünglichen Code:
                                  https://stackoverflow.com/a/51886884/10179833

                                  Du kannst also auch per SSH in stdin schreiben und aus stdout lesen.

                                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                  U 1 Antwort Letzte Antwort
                                  1
                                  • AlCalzoneA AlCalzone

                                    @uwe72 Ich habe das hier gefunden, was ähnlich aussieht wie der Code in deinem ursprünglichen Code:
                                    https://stackoverflow.com/a/51886884/10179833

                                    Du kannst also auch per SSH in stdin schreiben und aus stdout lesen.

                                    U Offline
                                    U Offline
                                    uwe72
                                    schrieb am zuletzt editiert von
                                    #17

                                    @AlCalzone Sehr gut! Danke schon einmal. Werde ich mir heute Abend anschauen!

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • U uwe72

                                      @AlCalzone Sehr gut! Danke schon einmal. Werde ich mir heute Abend anschauen!

                                      S Offline
                                      S Offline
                                      Solear
                                      schrieb am zuletzt editiert von
                                      #18

                                      @uwe72

                                      Kam etwas heraus?
                                      Schafft der Jetson Nano auch mehrere Kameras(-Bilder) nach Objekten/Personen überwachen?

                                      iobroker als LXC unter Proxmox

                                      U 1 Antwort Letzte Antwort
                                      0
                                      • S Solear

                                        @uwe72

                                        Kam etwas heraus?
                                        Schafft der Jetson Nano auch mehrere Kameras(-Bilder) nach Objekten/Personen überwachen?

                                        U Offline
                                        U Offline
                                        uwe72
                                        schrieb am zuletzt editiert von uwe72
                                        #19

                                        @Solear Nein das schafft er nicht.

                                        habe nun 2 jetson nano. auf einem läuft die personenerkennung der Haustüre-Kamera.

                                        Beim 2. Jetson Nano laufen nacheinander die Erkennung von 3 weiteren Kameras aus dem Gartenbereich. aber eben sequentiell. Das reicht mir trotzdem noch.

                                        Eine Detection dauert ca. 475ms.

                                        Habe noch ein Restproblem. Ab und zu schafft mein iobroker nicht das Bild von der Kamera zu holen, sieht man an den Stellen wo der Bereich unter der roten Linie liegt. Das muss ich noch irgendwie lösen. Aber insgesamt läuft es gut.

                                        15c9f6d0-9e23-41c5-a9fb-75a66febc29e-image.png

                                        coyoteC 1 Antwort Letzte Antwort
                                        0
                                        • U uwe72

                                          @Solear Nein das schafft er nicht.

                                          habe nun 2 jetson nano. auf einem läuft die personenerkennung der Haustüre-Kamera.

                                          Beim 2. Jetson Nano laufen nacheinander die Erkennung von 3 weiteren Kameras aus dem Gartenbereich. aber eben sequentiell. Das reicht mir trotzdem noch.

                                          Eine Detection dauert ca. 475ms.

                                          Habe noch ein Restproblem. Ab und zu schafft mein iobroker nicht das Bild von der Kamera zu holen, sieht man an den Stellen wo der Bereich unter der roten Linie liegt. Das muss ich noch irgendwie lösen. Aber insgesamt läuft es gut.

                                          15c9f6d0-9e23-41c5-a9fb-75a66febc29e-image.png

                                          coyoteC Offline
                                          coyoteC Offline
                                          coyote
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          @uwe72 kannst du das Ganze etwas mehr erläutern? Momentan nutze ich Zoneminder für die Personenerkennung in einem LXC Container. Die Erkennung Zoneminder -> iobroker ZM Adapter -> Telegram Nachricht ist aber "relativ" langsam. Die Personenerkennung an sich ist recht schnell, nur bis der ZM Adapter es mitbekommen hat und ich eine Nachricht bekomme, dauert recht lange.
                                          Du nutzt also ein Script/Programm für die Erkennung, die auf einem Jetson Nano läuft richtig? Würdest du das Programm bereitstellen?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          516

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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