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. (Erledigt) http post request für CodeProject.AI calls

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

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

(Erledigt) http post request für CodeProject.AI calls

Geplant Angeheftet Gesperrt Verschoben JavaScript
23 Beiträge 3 Kommentatoren 2.4k Aufrufe 3 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 uwe72

    @marc-berg Kommt auch stark auf die Bildgröße darauf an. Je nach Größe/Auflösung schwankt die Erkennungszeit bei mir zwischen 250ms und 5s.

    Marc BergM Offline
    Marc BergM Offline
    Marc Berg
    Most Active
    schrieb am zuletzt editiert von
    #10

    @uwe72 sagte in http post request für CodeProject.AI calls:

    Kommt auch stark auf die Bildgröße darauf an. Je nach Größe/Auflösung schwankt die Erkennungszeit bei mir zwischen 250ms und 5s.

    Ich finde das schon richtig cool. Eine halbe Sekunde für einen älteren i3 ist okay.

    fc3b1f45-1c99-4703-8966-1de05e5f25b4-grafik.png

    Jetzt fehlt mir nur noch ein Anwendungsfall. :-)

    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

    1 Antwort Letzte Antwort
    1
    • ofri2607O ofri2607

      @uwe72

      im Skript das @2 weglassen (das ist nur für den Installer, dass er die v2 installiert und nicht die v3), d.h.

      const fetch2 = require('node-fetch');
      
      
      U Offline
      U Offline
      uwe72
      schrieb am zuletzt editiert von
      #11

      @ofri2607 Funktioniert jetzt, danke!! Nun habe ich 2 Optionen. D.h. mit node-fetch oder axios

      U 1 Antwort Letzte Antwort
      0
      • U uwe72

        @ofri2607 Funktioniert jetzt, danke!! Nun habe ich 2 Optionen. D.h. mit node-fetch oder axios

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

        Hab nun diesen Zwischenstand. Der aber leider nicht funktioniert.

        var fetch = require('node-fetch');
        const FormData = require('form-data');
        
        doDetection();
        function doDetection() {
            request.get({url: "http://192.168.178.124/kennzeichen.png", 
                encoding: null},  async function (err, response, body) {
                if (err) {
                    throw err;
                }
        
                var formData = new FormData();
                formData.append('image', body);
        
                const response2 = await fetch('http://192.168.178.124:32168/v1/vision/custom/licence-plates',         
                    {method: 'POST', body: formData});
                const result = await response2.json();
                log("Result: " + JSON.stringify(result))
            });
        }
        

        Fehlermeldung:

        javascript.1 (25773) script.js.common.Automatisierungen.KI5_works_better: Result: {"success":false,"error":"Unable to create YOLO detector for model licence-plates","code":500,"command":"custom","moduleId":"ObjectDetectionYolo","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":28}
        
        ofri2607O Marc BergM 2 Antworten Letzte Antwort
        0
        • U uwe72

          Hab nun diesen Zwischenstand. Der aber leider nicht funktioniert.

          var fetch = require('node-fetch');
          const FormData = require('form-data');
          
          doDetection();
          function doDetection() {
              request.get({url: "http://192.168.178.124/kennzeichen.png", 
                  encoding: null},  async function (err, response, body) {
                  if (err) {
                      throw err;
                  }
          
                  var formData = new FormData();
                  formData.append('image', body);
          
                  const response2 = await fetch('http://192.168.178.124:32168/v1/vision/custom/licence-plates',         
                      {method: 'POST', body: formData});
                  const result = await response2.json();
                  log("Result: " + JSON.stringify(result))
              });
          }
          

          Fehlermeldung:

          javascript.1 (25773) script.js.common.Automatisierungen.KI5_works_better: Result: {"success":false,"error":"Unable to create YOLO detector for model licence-plates","code":500,"command":"custom","moduleId":"ObjectDetectionYolo","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":28}
          
          ofri2607O Online
          ofri2607O Online
          ofri2607
          schrieb am zuletzt editiert von
          #13

          @uwe72
          Ich kenne zwar den request / das Thema jetzt nicht, aber ist an sich spannend :-)
          Bist du dir sicher das du den body vom callback aus dem request direkt so weiter verarbeiten kannst und keine Aufbereitung (oder ähnliches) dazu brauchst?

          1 Antwort Letzte Antwort
          0
          • Marc BergM Offline
            Marc BergM Offline
            Marc Berg
            Most Active
            schrieb am zuletzt editiert von
            #14

            @uwe72

            Sicher, dass dieser Aufruf hier korrekt ist?

            /v1/vision/custom/licence-plates

            Hier und hier steht

            /v1/image/alpr
            

            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

            U 1 Antwort Letzte Antwort
            0
            • U uwe72

              Hab nun diesen Zwischenstand. Der aber leider nicht funktioniert.

              var fetch = require('node-fetch');
              const FormData = require('form-data');
              
              doDetection();
              function doDetection() {
                  request.get({url: "http://192.168.178.124/kennzeichen.png", 
                      encoding: null},  async function (err, response, body) {
                      if (err) {
                          throw err;
                      }
              
                      var formData = new FormData();
                      formData.append('image', body);
              
                      const response2 = await fetch('http://192.168.178.124:32168/v1/vision/custom/licence-plates',         
                          {method: 'POST', body: formData});
                      const result = await response2.json();
                      log("Result: " + JSON.stringify(result))
                  });
              }
              

              Fehlermeldung:

              javascript.1 (25773) script.js.common.Automatisierungen.KI5_works_better: Result: {"success":false,"error":"Unable to create YOLO detector for model licence-plates","code":500,"command":"custom","moduleId":"ObjectDetectionYolo","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":28}
              
              Marc BergM Offline
              Marc BergM Offline
              Marc Berg
              Most Active
              schrieb am zuletzt editiert von
              #15

              @uwe72 sagte in http post request für CodeProject.AI calls:

              Fehlermeldung:

              Nach einigen Fehlversuchen beim korrekten Parametrieren des POST Requests habe ich es jetzt in NodeRed hinbekommen. Es gibt einen "Deepstack" Node, die die Anfrage offensichtlich korrekt formatiert:

              11a27548-a279-42a6-877c-141d1c417802-grafik.png

              Der Aufruf erfolgt mit

              v1/vision/alpr
              

              NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

              Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

              Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

              U 1 Antwort Letzte Antwort
              1
              • Marc BergM Marc Berg

                @uwe72 sagte in http post request für CodeProject.AI calls:

                Fehlermeldung:

                Nach einigen Fehlversuchen beim korrekten Parametrieren des POST Requests habe ich es jetzt in NodeRed hinbekommen. Es gibt einen "Deepstack" Node, die die Anfrage offensichtlich korrekt formatiert:

                11a27548-a279-42a6-877c-141d1c417802-grafik.png

                Der Aufruf erfolgt mit

                v1/vision/alpr
                
                U Offline
                U Offline
                uwe72
                schrieb am zuletzt editiert von uwe72
                #16

                @marc-berg ich schau mir dies heute abend an, wenn ich "zuhause" bin. Danke dafür! Kenne mich mit nodered nicht aus. Kannst du zeigen wie der post request nun bei dir konfiguriert ist oder alternativ fällt dir bei meinem request noch was auf? Vielen Dank und Gruß aus Brasilien

                Marc BergM 1 Antwort Letzte Antwort
                0
                • U uwe72

                  @marc-berg ich schau mir dies heute abend an, wenn ich "zuhause" bin. Danke dafür! Kenne mich mit nodered nicht aus. Kannst du zeigen wie der post request nun bei dir konfiguriert ist oder alternativ fällt dir bei meinem request noch was auf? Vielen Dank und Gruß aus Brasilien

                  Marc BergM Offline
                  Marc BergM Offline
                  Marc Berg
                  Most Active
                  schrieb am zuletzt editiert von
                  #17

                  @uwe72 sagte in http post request für CodeProject.AI calls:

                  fällt dir bei meinem request noch was auf?

                  Probiere es erstmal mit

                  /v1/image/alpr
                  

                  oder

                  /v1/vision/alpr
                  

                  Dann kommt mindestens mal eine andere Fehlermeldung, denn deine Meldung bekomme ich auch, wenn ich diese URL (...license-plates) benutze.

                  NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

                  Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                  Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                  U 2 Antworten Letzte Antwort
                  0
                  • Marc BergM Marc Berg

                    @uwe72 sagte in http post request für CodeProject.AI calls:

                    fällt dir bei meinem request noch was auf?

                    Probiere es erstmal mit

                    /v1/image/alpr
                    

                    oder

                    /v1/vision/alpr
                    

                    Dann kommt mindestens mal eine andere Fehlermeldung, denn deine Meldung bekomme ich auch, wenn ich diese URL (...license-plates) benutze.

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

                    @marc-berg Du hattest recht, es kommt eine andere Fehlermeldung ;-)

                    Das Bild existiert. Habe auch eine Version wo ich das Bild zuerst auf der Festplatte zwischenspeichere. Gleiches Verhalten.

                    Kann kein Unterschied mehr erkennen zu:
                    https://www.codeproject.com/AI/docs/api/api_reference.html

                    http://192.168.178.124:32168/v1/image/alpr --> Funktioniert bei mir nicht.

                    Hast Du mir noch einen Tipp?

                    var fetch = require('node-fetch');
                    const FormData = require('form-data');
                    
                    doDetection();
                    function doDetection() {
                        request.get({url: "http://192.168.178.124/kennzeichen.png", 
                            encoding: null},  async function (err, response, body) {
                            if (err) {
                                throw err;
                            }
                    
                            var formData = new FormData();
                            formData.append('upload', body);
                    
                            var url = 'http://192.168.178.124:32168/v1/vision/alpr';
                            const response2 = await fetch(url, {method: 'POST', body: formData});
                            const result =  await response2.json();
                            log("Result: " + JSON.stringify(result));
                        });
                    }
                    

                    Neue Fehlermeldung:

                    javascript.1 (30020) script.js.common.Automatisierungen.KI5_works_better: Result: {"type":"https://tools.ietf.org/html/rfc7231#section-6.5.4","title":"Not Found","status":404,"traceId":"00-7635e33346ec49308c1960652c3a9519-6f9794d0678c038f-00"}
                    
                    1 Antwort Letzte Antwort
                    0
                    • Marc BergM Marc Berg

                      @uwe72 sagte in http post request für CodeProject.AI calls:

                      fällt dir bei meinem request noch was auf?

                      Probiere es erstmal mit

                      /v1/image/alpr
                      

                      oder

                      /v1/vision/alpr
                      

                      Dann kommt mindestens mal eine andere Fehlermeldung, denn deine Meldung bekomme ich auch, wenn ich diese URL (...license-plates) benutze.

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

                      @marc-berg Darf ich fragen. welche AI-Server Version du verwendest? Über docker/docker-compose? Falls ja, welches tag? Danke&Grüße

                      Marc BergM 1 Antwort Letzte Antwort
                      0
                      • U uwe72

                        @marc-berg Darf ich fragen. welche AI-Server Version du verwendest? Über docker/docker-compose? Falls ja, welches tag? Danke&Grüße

                        Marc BergM Offline
                        Marc BergM Offline
                        Marc Berg
                        Most Active
                        schrieb am zuletzt editiert von Marc Berg
                        #20

                        @uwe72 sagte in http post request für CodeProject.AI calls:

                        Falls ja, welches tag?

                        Ich habe einfach die aktuellste Version mit dem CPU Tag genommen, da ist das Image etwas kleiner. Ich kann mir aber nicht vorstellen, dass es daran liegt. Welche Module sind bei dir installiert?


                        IMG_5784.jpeg

                        codeproject:
                            container_name: codeproject
                            image: codeproject/ai-server:cpu-2.4.7
                            hostname: codeproject
                            restart: unless-stopped
                            networks:
                              test:
                            volumes:
                              - /opt/docker/codeproject/data:/etc/codeproject/ai
                              - /opt/docker/codeproject/modules:/app/modules      
                              - /etc/localtime:/etc/localtime:ro
                            ports:
                              - "32168:32168"
                        

                        EDIT: habe das mal im Javascript Adapter nachgestellt. Dieser Code läuft bei mir, musst du nur noch mit dem Abfragen des Bildes per http ergänzen:

                        let imageUrl = '/opt/iobroker/1600-1200-max.jpg';
                        let apiURL = 'http://nuc.fritz.box:32168/v1/vision/alpr';
                        
                        var request = require('request');
                        var fs = require('fs');
                        
                        var options = {
                            method: 'POST',
                            url: apiURL,
                            headers: {
                                'Content-Type': 'multipart/form-data'
                            },
                            formData: {
                                image: fs.createReadStream(imageUrl)
                            }
                        };
                        
                        request(options, function (error, response) {
                            if (error) throw new Error(error);
                            log("Result: "+response.body);
                        });
                        

                        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

                        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                        U 1 Antwort Letzte Antwort
                        1
                        • Marc BergM Marc Berg

                          @uwe72 sagte in http post request für CodeProject.AI calls:

                          Falls ja, welches tag?

                          Ich habe einfach die aktuellste Version mit dem CPU Tag genommen, da ist das Image etwas kleiner. Ich kann mir aber nicht vorstellen, dass es daran liegt. Welche Module sind bei dir installiert?


                          IMG_5784.jpeg

                          codeproject:
                              container_name: codeproject
                              image: codeproject/ai-server:cpu-2.4.7
                              hostname: codeproject
                              restart: unless-stopped
                              networks:
                                test:
                              volumes:
                                - /opt/docker/codeproject/data:/etc/codeproject/ai
                                - /opt/docker/codeproject/modules:/app/modules      
                                - /etc/localtime:/etc/localtime:ro
                              ports:
                                - "32168:32168"
                          

                          EDIT: habe das mal im Javascript Adapter nachgestellt. Dieser Code läuft bei mir, musst du nur noch mit dem Abfragen des Bildes per http ergänzen:

                          let imageUrl = '/opt/iobroker/1600-1200-max.jpg';
                          let apiURL = 'http://nuc.fritz.box:32168/v1/vision/alpr';
                          
                          var request = require('request');
                          var fs = require('fs');
                          
                          var options = {
                              method: 'POST',
                              url: apiURL,
                              headers: {
                                  'Content-Type': 'multipart/form-data'
                              },
                              formData: {
                                  image: fs.createReadStream(imageUrl)
                              }
                          };
                          
                          request(options, function (error, response) {
                              if (error) throw new Error(error);
                              log("Result: "+response.body);
                          });
                          
                          U Offline
                          U Offline
                          uwe72
                          schrieb am zuletzt editiert von uwe72
                          #21

                          @marc-berg Ganz herzlichen Dank an Dich!!

                          Jetzt läuft sowohl die Kennzeichenerkennung

                          javascript.1 (138637) script.js.common.Automatisierungen.DISK_ALPR: Result: {"success":true,"predictions":[{"confidence":0.7975177963574728,"label":"Plate: MUC 0 HF29","plate":"MUC 0 HF29","x_min":450,"y_min":220,"x_max":654,"y_max":260}],"message":"Found Plate: MUC 0 HF29","processMs":166,"inferenceMs":150,"code":200,"command":"alpr","moduleId":"ALPR","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":187}
                          

                          als auch die Erkennung von spezifischen Personen:

                          javascript.1 (138637) script.js.common.Automatisierungen.DISK_FACE: Result: {"message":"A face was recognised","count":1,"predictions":[{"confidence":0.9747644662857056,"userid":"Uwe","x_min":433,"y_min":163,"x_max":677,"y_max":504}],"success":true,"inferenceMs":223,"processMs":233,"code":200,"command":"recognize","moduleId":"FaceProcessing","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":238,"processedBy":"localhost"}
                          

                          Diese Änderungen habe ich - aufgrund deiner Hilfe - noch gemacht:

                          • In JavaScript deinen Ansatz gewählt über request, statt fetch.
                          • Zudem speichere ich das Bild noch auf der Festplatte und lese es wieder bevor ich es an den Server (als Stream) sende.. Hier will ich noch optimieren. Es würde mir im Normalfall reichen das Bild im Speicher zu haben
                          • Das war es vermutlich schon. In Docker hatte ich nun noch exakt deine Version (cpu-2.4.7), statt "latest" verwendet (2.3.2 alpha)

                          Ich denke auf Basis dessen kann was Gutes erstehen :-)

                          Marc BergM 1 Antwort Letzte Antwort
                          0
                          • U uwe72

                            @marc-berg Ganz herzlichen Dank an Dich!!

                            Jetzt läuft sowohl die Kennzeichenerkennung

                            javascript.1 (138637) script.js.common.Automatisierungen.DISK_ALPR: Result: {"success":true,"predictions":[{"confidence":0.7975177963574728,"label":"Plate: MUC 0 HF29","plate":"MUC 0 HF29","x_min":450,"y_min":220,"x_max":654,"y_max":260}],"message":"Found Plate: MUC 0 HF29","processMs":166,"inferenceMs":150,"code":200,"command":"alpr","moduleId":"ALPR","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":187}
                            

                            als auch die Erkennung von spezifischen Personen:

                            javascript.1 (138637) script.js.common.Automatisierungen.DISK_FACE: Result: {"message":"A face was recognised","count":1,"predictions":[{"confidence":0.9747644662857056,"userid":"Uwe","x_min":433,"y_min":163,"x_max":677,"y_max":504}],"success":true,"inferenceMs":223,"processMs":233,"code":200,"command":"recognize","moduleId":"FaceProcessing","executionProvider":"CPU","canUseGPU":false,"analysisRoundTripMs":238,"processedBy":"localhost"}
                            

                            Diese Änderungen habe ich - aufgrund deiner Hilfe - noch gemacht:

                            • In JavaScript deinen Ansatz gewählt über request, statt fetch.
                            • Zudem speichere ich das Bild noch auf der Festplatte und lese es wieder bevor ich es an den Server (als Stream) sende.. Hier will ich noch optimieren. Es würde mir im Normalfall reichen das Bild im Speicher zu haben
                            • Das war es vermutlich schon. In Docker hatte ich nun noch exakt deine Version (cpu-2.4.7), statt "latest" verwendet (2.3.2 alpha)

                            Ich denke auf Basis dessen kann was Gutes erstehen :-)

                            Marc BergM Offline
                            Marc BergM Offline
                            Marc Berg
                            Most Active
                            schrieb am zuletzt editiert von
                            #22

                            @uwe72 sagte in (Erledigt) http post request für CodeProject.AI calls:

                            Ich denke auf Basis dessen kann was Gutes erstehen

                            Ja, coole Sache das. Schön, dass es läuft! Bekommt man eigentlich eleganter raus, welche URL jeweils benutzt werden muss, außer über die Browser Entwicklerkonsole?

                            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

                            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                            1 Antwort Letzte Antwort
                            0
                            • Marc BergM Marc Berg

                              @uwe72

                              Sicher, dass dieser Aufruf hier korrekt ist?

                              /v1/vision/custom/licence-plates

                              Hier und hier steht

                              /v1/image/alpr
                              
                              U Offline
                              U Offline
                              uwe72
                              schrieb am zuletzt editiert von
                              #23

                              @marc-berg ich habe alle URs in dem von dir geposteten Link entnommen:
                              https://www.codeproject.com/AI/docs/api/api_reference.html#license-plate-reader

                              Im AI Server Log kann man noch ein wenig schauen was passiert wenn man die Erkennungen über die Webseite macht.

                              Sonst habe ich keine Idee.

                              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

                              524

                              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