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. Tester
  4. Test Adapter ioBroker.n8n

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    876

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Test Adapter ioBroker.n8n

Geplant Angeheftet Gesperrt Verschoben Tester
39 Beiträge 11 Kommentatoren 3.3k Aufrufe 20 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.
  • F FritzTheCat

    Hi, vielleicht könnt Ihr mir helfen, ich habe leider weiterhin Probleme bei der Installation.

    Ich habe den Adapter heute nach einigen Vorsuchen in der letzten Zeit wieder deinstalliert und (über das GUI) neu installiert. Wir hier weiter oben bereits beschrieben lauft es ungewöhnlich schnell durch und danach kommen bald Fehlermeldungen.

    Unter Hosts bekomme ich die Meldung "Restart loop detected"
    und mehrfach: "Exception-Code: ENOENT: ENOENT: no such file or directory, open '/opt/iobroker/iobroker-data/n8n-engine/node_modules/n8n-editor-ui/dist/index.html'"

    Auf der Commandline schaut das dann so aus:

    grafik.png

    Das Verzeichnis /opt/iobroker/iobroker-data/n8n-engine/node_modules/n8n-editor-ui/dist ist also vom Oktober, wo ich das wohl zum ersten Mal (auch über das GUI) versucht habe, und der versuchten Installation über "iobroker url iobroker.n8n @latest --host $HOSTNAME --debug" komme ich scheinbar auch nicht weiter.
    index.html fehlt also tatsächlich, was sonst noch dort sein sollte, weiß ich auch nicht.

    Ich muss noch dazusagen, dass ich den aktuellsten IOBroker mit https unter Docker mit einer "macvlan" IP-Adresse fahre (was wiederum bedeuten sollte, dass ich das Port 5678 in dem Fall nicht gesondert behandeln muss).

    Hat jemand von Euch einen Tipp?

    Danke und liebe Grüße!

    F Offline
    F Offline
    FritzTheCat
    schrieb am zuletzt editiert von
    #30

    Falls sich mal jemand mit der selben Frage hier her verirrt: Die Lösung war dann recht einfach - nach der Deinstallation vom n8n-Adapter mussten noch zusätzlich auf der Commandline nach n8n-Resten gesucht und diese einfach gelöscht werden. Danach hat eine Neu-Installation problemlos funktioniert.

    1 Antwort Letzte Antwort
    0
    • F Offline
      F Offline
      FritzTheCat
      schrieb am zuletzt editiert von
      #31

      Hallo in die Runde,

      Eine Frage, vielleicht fällt Euch was dazu ein:

      Ich habe den Aufbau des (sehr tollen!) Videos (Danke!!) nachgestellt und es funktioniert teilweise gut!

      Aber bei bestimmten Geräten bekomme ich immer Müll als Antwort.

      In dieser Grafik sieht man beim Befehl "Schalte die Lampe in der Küche ein" die (fast richtige) Antwort "Esstischlampe" mit der (entsprechenden) Shelly-ID

      Meldung in Telegram: Esstisch auf true gesetzt...

      Die Frage nach der Fernsehlampe findet diese zwar, erfindet aber eine ID "hm-rpc.1.0023A95A88E2A2.1.STATE" - sagt das jemandem was - ich finde diese ID nicht in den JSON Daten in IOBroker-Read.

      grafik.png

      Auch die Bitte die "Esstischlampe" oder "Esstisch" einzuschalten liedert eine solche hm-rpc-ID und es funktioniert nicht, es geht nur mit "Lampe in der Küche"

      Während ich diese Nachricht schreibe, hat sich mit dem gleichen Befehl "Schalte die Lampe in der Küche ein" eine andere Lampe (eigentlich nun wirklich die richtige) eingeschalten - es heißt ja, man bekommt bei KI immer wieder mal was anderes :)

      In Telegram: shelly-dimmer-kueche auf true gesetzt...

      OliverIOO 1 Antwort Letzte Antwort
      0
      • F FritzTheCat

        Hallo in die Runde,

        Eine Frage, vielleicht fällt Euch was dazu ein:

        Ich habe den Aufbau des (sehr tollen!) Videos (Danke!!) nachgestellt und es funktioniert teilweise gut!

        Aber bei bestimmten Geräten bekomme ich immer Müll als Antwort.

        In dieser Grafik sieht man beim Befehl "Schalte die Lampe in der Küche ein" die (fast richtige) Antwort "Esstischlampe" mit der (entsprechenden) Shelly-ID

        Meldung in Telegram: Esstisch auf true gesetzt...

        Die Frage nach der Fernsehlampe findet diese zwar, erfindet aber eine ID "hm-rpc.1.0023A95A88E2A2.1.STATE" - sagt das jemandem was - ich finde diese ID nicht in den JSON Daten in IOBroker-Read.

        grafik.png

        Auch die Bitte die "Esstischlampe" oder "Esstisch" einzuschalten liedert eine solche hm-rpc-ID und es funktioniert nicht, es geht nur mit "Lampe in der Küche"

        Während ich diese Nachricht schreibe, hat sich mit dem gleichen Befehl "Schalte die Lampe in der Küche ein" eine andere Lampe (eigentlich nun wirklich die richtige) eingeschalten - es heißt ja, man bekommt bei KI immer wieder mal was anderes :)

        In Telegram: shelly-dimmer-kueche auf true gesetzt...

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #32

        @FritzTheCat

        Wenn die KI solche ID erfindet, dann hat sie zu wenig Input.
        Hast du denn ihr genügend Informationen gegeben, dass sie deine menschlichen Anweisungen auf irgendwelche Geräte mappen kann?
        Eventuell musst du auch den Prompt noch verbessern, so dass die ki dort auch nachschaut

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • F Offline
          F Offline
          FritzTheCat
          schrieb am zuletzt editiert von
          #33

          Hallo Oliver,

          Ich habe eine Testprogramm gebaut, dass mit dem selben Systemprompt arbeitet und auch das orignal JSON aus dem n8n "IOBroker-Reader Devices" übernommen.
          Damit komme ich zu folgenden Ergebnissen:

          Frage: Esstischlampe einschalten 6.1.2026, 01:56:07
          Antwort:

          [
            {
              "id": "shelly.1.shellyplus1pm#d48afc4163e8#1.Relay0.Switch",
              "name": "Esstisch",
              "value": true
            }
          ]
          
          Tokens: 8927/574 · Kosten: 0.0038 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-nano
          

          Frage: Wohnzimmerlampe 50% 6.1.2026, 14:41:23
          Antwort:

          [
            {
              "id": "shelly.0.SHDM-2#C8C9A325A9BB#1.lights.brightness",
              "name": "Wohnzimmerlampe",
              "value": 50
            }
          ]
          
          Tokens: 8997/1024 · Kosten: 0.0040 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-nano
          

          Frage: Fernsehlampe ein, rot, 30% 6.1.2026, 14:42:28
          Antwort:

          [
            {
              "id": "shelly.0.SHCB-1#3494546B298D#1.lights.Switch",
              "name": "Fernsehlampe",
              "value": true
            },
            {
              "id": "shelly.0.SHCB-1#3494546B298D#1.lights.brightness",
              "name": "Fernsehlampe",
              "value": 30
            },
            {
              "id": "shelly.0.SHCB-1#3494546B298D#1.lights.hue",
              "name": "Fernsehlampe",
              "value": 0
            },
            {
              "id": "shelly.0.SHCB-1#3494546B298D#1.lights.saturation",
              "name": "Fernsehlampe",
              "value": 100
            }
          ]
          
          Tokens: 9073/1421 · Kosten: 0.0042 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-mini
          

          Frage: Fernsehlampe ein, weiß, 100% 6.1.2026, 14:43:57
          Antwort:

          [
              {
                  "id": "shelly.0.SHCB-1#3494546B298D#1.lights.Switch",
                  "name": "Fernsehlampe",
                  "value": true
              },
              {
                  "id": "shelly.0.SHCB-1#3494546B298D#1.lights.white",
                  "name": "Fernsehlampe",
                  "value": 100
              }
          ]
          
          Tokens: 9141/104 · Kosten: 0.0000 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI-older/gpt-3.5-turbo
          

          Schaut für mich alles perfekt aus. Wie Du siehst, habe ich auch die Modelle durchgewechselt, wobei gpt-3.5-turbo eigentlich am Ende eh am Besten abgeschnitten hat.
          gpt-5-nano sollte wesentlich "billiger" sein, war aber auch um 2-3 Sekunden langsamer und daher für diesen Einsatzzweck nicht wirklich brauchbar.

          Ich habe alle Modelle natürlich auch wechselweise in n8n/IObroker versucht!

          Leider bleibt dort bisher als einziger Zufallstreffer "Schalte die Lampe in der Küche ein" erfolgreich, bei allen anderen Versuchen kommen immer wieder diese RFC-IDs daher, aber vor allem sehe ich auch, dass nicht nur die IDs falsch sind sondern auch die Geräte entsprechend "falsch" gefunden werden.

          A. hat jemand eine Idee woher diese RPC-IDs kommen könnten (kommt das irgendwo im IOBroker vor?)
          B. wie kann ich sicherstellen, dass n8n-GPT auch wirklich mit der "richtigen" JSON arbeitet (obwohl ich die Daten für meine Tests ja eh aus dem Adapter kopiert hab und sie für mich richtig erscheinen!)

          [offtopic:] Eine für mich wichtige Erkenntniss bei meinen Versuchen:
          Zuerst habe ich versucht, einfach alles in einen Prompt zu stecken. Den Systemprompt, die Frage und das JSON.

          Bei gpt-3.5-turbo kommt es dann in meinem Testprogramm zu einem Fehler:

          OpenAI HTTP 400: { "error": { "message": "This model's maximum context length is 16385 tokens.
          However, your messages resulted in 20559 tokens.
          Please reduce the length of the messages.", "type": "invalid_request_error", "param": "message...
          

          Mit gpt-5-nano ging das dann...

          Frage: Schalte das Licht in der Küche ein

          Antwort:

          [
            {
              "id": "shelly.1.shellydimmerg3#e4b063ec4c10#1.Light0.Switch",
              "name": "shelly-dimmer-kueche",
              "value": true
            }
          ]
          
          Tokens: 20982/1283 · Kosten: 0.0089 $ · Session: 9f7027df-8649-4a90-a4ac-26f03a017bc4 · OpenAI/gpt-5-nano
          

          Erst als ich mein Programm so umgebaut habe, dass ich gesondert System-Prompt und Roles schicken kann, wie es wohl auch der n8n-Adapter macht, hat es überhaupt mit gpt-3.5-turbo geklappt.

          Wie man oben sieht, schaut es mit den Tokens ganz anders aus, wenn man den System-Prompt wirklich als solchen schickt und das JSON als Datei und dann separat die Frage...

          OliverIOO 1 Antwort Letzte Antwort
          0
          • F FritzTheCat

            Hallo Oliver,

            Ich habe eine Testprogramm gebaut, dass mit dem selben Systemprompt arbeitet und auch das orignal JSON aus dem n8n "IOBroker-Reader Devices" übernommen.
            Damit komme ich zu folgenden Ergebnissen:

            Frage: Esstischlampe einschalten 6.1.2026, 01:56:07
            Antwort:

            [
              {
                "id": "shelly.1.shellyplus1pm#d48afc4163e8#1.Relay0.Switch",
                "name": "Esstisch",
                "value": true
              }
            ]
            
            Tokens: 8927/574 · Kosten: 0.0038 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-nano
            

            Frage: Wohnzimmerlampe 50% 6.1.2026, 14:41:23
            Antwort:

            [
              {
                "id": "shelly.0.SHDM-2#C8C9A325A9BB#1.lights.brightness",
                "name": "Wohnzimmerlampe",
                "value": 50
              }
            ]
            
            Tokens: 8997/1024 · Kosten: 0.0040 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-nano
            

            Frage: Fernsehlampe ein, rot, 30% 6.1.2026, 14:42:28
            Antwort:

            [
              {
                "id": "shelly.0.SHCB-1#3494546B298D#1.lights.Switch",
                "name": "Fernsehlampe",
                "value": true
              },
              {
                "id": "shelly.0.SHCB-1#3494546B298D#1.lights.brightness",
                "name": "Fernsehlampe",
                "value": 30
              },
              {
                "id": "shelly.0.SHCB-1#3494546B298D#1.lights.hue",
                "name": "Fernsehlampe",
                "value": 0
              },
              {
                "id": "shelly.0.SHCB-1#3494546B298D#1.lights.saturation",
                "name": "Fernsehlampe",
                "value": 100
              }
            ]
            
            Tokens: 9073/1421 · Kosten: 0.0042 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI/gpt-5-mini
            

            Frage: Fernsehlampe ein, weiß, 100% 6.1.2026, 14:43:57
            Antwort:

            [
                {
                    "id": "shelly.0.SHCB-1#3494546B298D#1.lights.Switch",
                    "name": "Fernsehlampe",
                    "value": true
                },
                {
                    "id": "shelly.0.SHCB-1#3494546B298D#1.lights.white",
                    "name": "Fernsehlampe",
                    "value": 100
                }
            ]
            
            Tokens: 9141/104 · Kosten: 0.0000 $ · Session: a9763548-0100-4360-b892-e110096daf20 · OpenAI-older/gpt-3.5-turbo
            

            Schaut für mich alles perfekt aus. Wie Du siehst, habe ich auch die Modelle durchgewechselt, wobei gpt-3.5-turbo eigentlich am Ende eh am Besten abgeschnitten hat.
            gpt-5-nano sollte wesentlich "billiger" sein, war aber auch um 2-3 Sekunden langsamer und daher für diesen Einsatzzweck nicht wirklich brauchbar.

            Ich habe alle Modelle natürlich auch wechselweise in n8n/IObroker versucht!

            Leider bleibt dort bisher als einziger Zufallstreffer "Schalte die Lampe in der Küche ein" erfolgreich, bei allen anderen Versuchen kommen immer wieder diese RFC-IDs daher, aber vor allem sehe ich auch, dass nicht nur die IDs falsch sind sondern auch die Geräte entsprechend "falsch" gefunden werden.

            A. hat jemand eine Idee woher diese RPC-IDs kommen könnten (kommt das irgendwo im IOBroker vor?)
            B. wie kann ich sicherstellen, dass n8n-GPT auch wirklich mit der "richtigen" JSON arbeitet (obwohl ich die Daten für meine Tests ja eh aus dem Adapter kopiert hab und sie für mich richtig erscheinen!)

            [offtopic:] Eine für mich wichtige Erkenntniss bei meinen Versuchen:
            Zuerst habe ich versucht, einfach alles in einen Prompt zu stecken. Den Systemprompt, die Frage und das JSON.

            Bei gpt-3.5-turbo kommt es dann in meinem Testprogramm zu einem Fehler:

            OpenAI HTTP 400: { "error": { "message": "This model's maximum context length is 16385 tokens.
            However, your messages resulted in 20559 tokens.
            Please reduce the length of the messages.", "type": "invalid_request_error", "param": "message...
            

            Mit gpt-5-nano ging das dann...

            Frage: Schalte das Licht in der Küche ein

            Antwort:

            [
              {
                "id": "shelly.1.shellydimmerg3#e4b063ec4c10#1.Light0.Switch",
                "name": "shelly-dimmer-kueche",
                "value": true
              }
            ]
            
            Tokens: 20982/1283 · Kosten: 0.0089 $ · Session: 9f7027df-8649-4a90-a4ac-26f03a017bc4 · OpenAI/gpt-5-nano
            

            Erst als ich mein Programm so umgebaut habe, dass ich gesondert System-Prompt und Roles schicken kann, wie es wohl auch der n8n-Adapter macht, hat es überhaupt mit gpt-3.5-turbo geklappt.

            Wie man oben sieht, schaut es mit den Tokens ganz anders aus, wenn man den System-Prompt wirklich als solchen schickt und das JSON als Datei und dann separat die Frage...

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #34

            @FritzTheCat

            sag mir mal noch wo ich

            mit dem selben Systemprompt arbeitet und auch das orignal JSON aus dem n8n "IOBroker-Reader Devices"

            finde?

            Das ist evtl auch eines deiner Probleme

            This model's maximum context length is 16385 tokens

            Die Modelle haben alle ein unterschiedlich großes Kontextfenster.
            16K ist relativ klein. hängt aber davon ab, wieviel Datenpunkte und Details du da reinpackst.
            Um ein Gefühl dafür zu bekommen kann man den link ausprobieren
            https://platform.openai.com/tokenizer
            Der tokenizer ist aber für jedes Modell (auch bei unterschiedlichen Anbietern) anders.

            Hier kannst du mal schauen welche Modelle mit größeren Kontextfenster existieren und die Kostentechnisch nicht so teuer ist (openai gehört mehr zu den teueren Anbietern)
            https://explodingtopics.com/blog/list-of-llms?utm_source=chatgpt.com

            Acuh kann man ggfs über andere Provider, die einheitlichen API Zugriff für mehrere Modelle anbieten ggfs auch Kostenvorteile erhalten.

            Falls die Kontextfenster nix sagt:
            Das ist der Größe des Gehirns, das einem LLM in einem Durchgang als ERinnerungsvermögen zur Verfügung steht. Alles was da nicht reinpasst, weiß die KI nicht. Wenn man im laufe eines Chatverlaufs die Grenze überschreitet fällt irgend etwas älteres heraus. Mittlerweile gibt es so Komprimierungs Strategien bei dem älteres "Wissen" komprimiert wird, so das das wichtigste erhalten bleibt, aber das ist aktuell erst am werden.
            die nano modelle von openai haben zwar ein größeres Kontextfenster (1Million), allerdings ist die parametergröße eher Klein (geschätzt 7 Milliarden. das normale 5.2 Modell hat geschätzt 2-5Billionen und ist eine Größe für die Gesamtintelligenz.
            Per N8N ist mehr oder weniger wirklich jedes Modell anbindbar.

            Eine weitere Alternative wäre noch, die iobroker Daten in eine vektoren Datenbank "hineinzutrainieren" (ist kein echtes Training). Dazu würde deine Anfrage zu einer Vorauswahl auf Basis der Vekotendaten führen, welche dann letztendlich zu Anfrage bei einem LLM führt. Bein so volatilen Daten wie die Datenpunkte und deren Inhalte bei iobroker habe ich noch keine Tests gemacht.

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • F Offline
              F Offline
              FritzTheCat
              schrieb am zuletzt editiert von FritzTheCat
              #35

              Der Systemprompt ist:

              You are a Smart Home assistant for ioBroker.
              Always use tool to get the structure of rooms and devicses in rooms.
              Based on the user input below, extract all commands and return them as a JSON array of objects:
              
              ```json
              [
                {
                  "id": "stateId",       // Take ID from the JSON structure
                  "name": "Device name",  // Take the name from the provided JSON structure
                  "value": commandValue   // take the value from command context
                }
              ]
              
              * One object per device/action.
              * If the input is unclear, return an empty array `[]`.
              * **Return only valid JSON. No explanation.**
              
              **Critical: use only IDs from by tool provided schema!**
              

              Das ist der originale Wert aus dem Video von @bluefox - wie ich oben gezeigt habe, funktioniert er mit meinem eigenen (Test)Tool perfekt, es werden alle Geräte richitg erkannt. (wohlbemerkt nicht in n8n, nur im Tool)

              Das JSON findest Du im IO-Broker Reader:

              grafik.png

              Das JSON hat 19KB und 2474 Zeilen. Im Tokenizer werden ähnlich wie in meinem Test-Tool dafür 20,370 Tokens berechnet. (Sollte es von Belang sein, kann ich die Datei hochladen oder schicken, aber es ist wohl eine "normale bis kleine" IObroker-Config...)

              Schickt man den Systemprompt gemeinsam mit dem JSON (als Datei) und der anschließenden Frage, dann kommt man ja nach Modell auf 8000-9000 Tokens, also alles im grünen Bereich.

              Was das Kontextfenster betrifft, habe ich oben doch recht genaue Überlegungen gepostet. Wie auch die Überlegungen und Tests zu anderen Modellen. gpt-5-nano würde rund 10% von gpt3.5-turbo kosten und hat auch alle Anfragen sauber gelöst (dann sind die Parameter doch egal) aber es braucht halt für den Schaltvorgang ca. 3-4 Sekunden... (wäre für meinen Boiler OK, für meine Lampen eher nix) - wie gesagt bleibe ich momentan einfach beim Beispiel von bluefox und versuche das sauber hinzubekommen.

              Generell werden wir an dieser Stelle wohl in Zukunft alle so was wie TOON verwenden um günstiger und schneller zu werden oder länger im Kontextfenster zu bleiben. https://github.com/toon-format/toon
              Für meine ersten Versuche hier wird nun aber wohl auch das aktuelle Setup von bluefox mit JSON reichen.

              Danke für den Hinweis zu anderen Providern, aber Du musst doch bei jedem einen Basis-Account von ca. 20€/Monat kaufen um überhaupt auf die API-Funktion zu kommen. Ich hab aktuell welche von OpenAI und Perplexity mit denen ich meine Tests ausführe. Für die APIs habe ich bisher gerade mal 5€ gezahlt, aber für die Möglichkeit sie zu haben, schon einige hundert...

              Ich habe gestern übrigens auch noch mit lokalel Modellen experimentiert (LLAMA) , aber bei diesen muss man dann wohl doch den Prompt noch entsprechend anpassen, da habe ich bisher noch keine perfekten Ergebnisse bekommen. (Ist aber momentan nicht relevant, weil meine LLAMA-Modelle und IOBroker sich nicht im gleichen Netz befinden, das kann ich wirklich nur für Prompt-Tests verwenden und Euch dann ggf. Bescheid geben...)

              Aus meiner Sicht sind alle KI-technischen Fragen beantwortet - mein n8n-Setup liefert dennoch falsche Ergebnisse. Es müssen aus meiner Sicht also zur Laufzeit falsche Daten reinfließen.

              Kann mir jemand helfen, herauszufinden, warum bei meinem Setup anscheinend am Ende dann doch ein anderes JSON bei GPT landet als hier im Screenshot sichtbar ist und hat jemand Hinweise, woher die IDs wie "hm-rpc.1.0023A95A88E2A2.1.STATE" kommen könnten. Diese sind nicht in meinem (mir bekannten) JSON enthalten, müssen aber irgendwo herkommen. (könnte auch reine Haluzination sein - aber warum??)

              OliverIOO 1 Antwort Letzte Antwort
              0
              • B Online
                B Online
                bloop
                schrieb am zuletzt editiert von
                #36

                @fritzthecat
                Ich habe ebenfalls bereits mit dem im Video beschriebenen Workflow "gespielt".
                Allerdings habe ich es auch nicht geschafft einen verlässlich Funktionierenden "Assistenten" aufzusetzen.
                Aufgrund der relativ Großen Datenbank von ioBroker und den unterschiedlichsten Datenpunkten welche bin ich am Ende immer in ein Token runout gelaufen.
                auch die Rooms und Devices reader konnten da nicht wirklich Abhilfe schaffen.
                Nachdem ich es dann mit Vektor Datenbank, Lokalen Llama Modellen, usw. probiert habe, hab ich es dann beiseite gelegt und mich anderen Workflows gewidmet.

                Was du tun könntest wenn es sich bei deinen Geräten nur um Shellys handelt.
                Erwähne die Shellys und den Datenpunktpfad (shelly.0) explizit im System Prompt. Zusätzlich Erwähnst du, dass Andere Datenpunktformate welche zb. mit hm-rpc.1 oder zigbee.0 usw. anfangen nicht verwendet werden sollen.
                Wenn du unterschiedliche Geräte verwendest dann im Prompt auch ganz klar sagen welche Geräte für was verwendet werden:
                Lichter = Shellys = shelly.0
                Heizung = HomaticIP = hm-rpc.1
                usw.
                Ich vermute der "hm-rpc.1" kommt daher, das die für die Analyse hergezogenen Daten einst mit vielen Homematic Geräten "gefüttert" wurden. Und die Modelle nun immer wieder auf diese Datenpunkt Struktur zurückfallen.

                Es gibt bereits einen ShowCase Beitrag von mir: https://forum.iobroker.net/topic/82726/n8n-iobroker-workflows-showcase
                Eventuell findest du da etwas für dich brauchbares.

                Aktuell teste ich eine Workflow um den ioBroker Log fortlaufend zu analysieren, mich zu benachrichtigen wenn etwas wirklich relevant ist und entsprechende Fehlerbehebungen anzubieten und auszuführen (SSH)

                F 1 Antwort Letzte Antwort
                0
                • F FritzTheCat

                  Der Systemprompt ist:

                  You are a Smart Home assistant for ioBroker.
                  Always use tool to get the structure of rooms and devicses in rooms.
                  Based on the user input below, extract all commands and return them as a JSON array of objects:
                  
                  ```json
                  [
                    {
                      "id": "stateId",       // Take ID from the JSON structure
                      "name": "Device name",  // Take the name from the provided JSON structure
                      "value": commandValue   // take the value from command context
                    }
                  ]
                  
                  * One object per device/action.
                  * If the input is unclear, return an empty array `[]`.
                  * **Return only valid JSON. No explanation.**
                  
                  **Critical: use only IDs from by tool provided schema!**
                  

                  Das ist der originale Wert aus dem Video von @bluefox - wie ich oben gezeigt habe, funktioniert er mit meinem eigenen (Test)Tool perfekt, es werden alle Geräte richitg erkannt. (wohlbemerkt nicht in n8n, nur im Tool)

                  Das JSON findest Du im IO-Broker Reader:

                  grafik.png

                  Das JSON hat 19KB und 2474 Zeilen. Im Tokenizer werden ähnlich wie in meinem Test-Tool dafür 20,370 Tokens berechnet. (Sollte es von Belang sein, kann ich die Datei hochladen oder schicken, aber es ist wohl eine "normale bis kleine" IObroker-Config...)

                  Schickt man den Systemprompt gemeinsam mit dem JSON (als Datei) und der anschließenden Frage, dann kommt man ja nach Modell auf 8000-9000 Tokens, also alles im grünen Bereich.

                  Was das Kontextfenster betrifft, habe ich oben doch recht genaue Überlegungen gepostet. Wie auch die Überlegungen und Tests zu anderen Modellen. gpt-5-nano würde rund 10% von gpt3.5-turbo kosten und hat auch alle Anfragen sauber gelöst (dann sind die Parameter doch egal) aber es braucht halt für den Schaltvorgang ca. 3-4 Sekunden... (wäre für meinen Boiler OK, für meine Lampen eher nix) - wie gesagt bleibe ich momentan einfach beim Beispiel von bluefox und versuche das sauber hinzubekommen.

                  Generell werden wir an dieser Stelle wohl in Zukunft alle so was wie TOON verwenden um günstiger und schneller zu werden oder länger im Kontextfenster zu bleiben. https://github.com/toon-format/toon
                  Für meine ersten Versuche hier wird nun aber wohl auch das aktuelle Setup von bluefox mit JSON reichen.

                  Danke für den Hinweis zu anderen Providern, aber Du musst doch bei jedem einen Basis-Account von ca. 20€/Monat kaufen um überhaupt auf die API-Funktion zu kommen. Ich hab aktuell welche von OpenAI und Perplexity mit denen ich meine Tests ausführe. Für die APIs habe ich bisher gerade mal 5€ gezahlt, aber für die Möglichkeit sie zu haben, schon einige hundert...

                  Ich habe gestern übrigens auch noch mit lokalel Modellen experimentiert (LLAMA) , aber bei diesen muss man dann wohl doch den Prompt noch entsprechend anpassen, da habe ich bisher noch keine perfekten Ergebnisse bekommen. (Ist aber momentan nicht relevant, weil meine LLAMA-Modelle und IOBroker sich nicht im gleichen Netz befinden, das kann ich wirklich nur für Prompt-Tests verwenden und Euch dann ggf. Bescheid geben...)

                  Aus meiner Sicht sind alle KI-technischen Fragen beantwortet - mein n8n-Setup liefert dennoch falsche Ergebnisse. Es müssen aus meiner Sicht also zur Laufzeit falsche Daten reinfließen.

                  Kann mir jemand helfen, herauszufinden, warum bei meinem Setup anscheinend am Ende dann doch ein anderes JSON bei GPT landet als hier im Screenshot sichtbar ist und hat jemand Hinweise, woher die IDs wie "hm-rpc.1.0023A95A88E2A2.1.STATE" kommen könnten. Diese sind nicht in meinem (mir bekannten) JSON enthalten, müssen aber irgendwo herkommen. (könnte auch reine Haluzination sein - aber warum??)

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von OliverIO
                  #37

                  @FritzTheCat sagte in Test Adapter ioBroker.n8n:

                  mein n8n-Setup liefert dennoch falsche Ergebnisse. Es müssen aus meiner Sicht also zur Laufzeit falsche Daten reinfließen.

                  aber das kann man in n8n doch ganz gut verifizieren. du hast ja immer an jedem step die input und output sicht. wo ist dann der unterschied?

                  welche node nimmst du für gpt nano? eine openai node oder eine der LangChain Nodes?

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  F 1 Antwort Letzte Antwort
                  0
                  • B bloop

                    @fritzthecat
                    Ich habe ebenfalls bereits mit dem im Video beschriebenen Workflow "gespielt".
                    Allerdings habe ich es auch nicht geschafft einen verlässlich Funktionierenden "Assistenten" aufzusetzen.
                    Aufgrund der relativ Großen Datenbank von ioBroker und den unterschiedlichsten Datenpunkten welche bin ich am Ende immer in ein Token runout gelaufen.
                    auch die Rooms und Devices reader konnten da nicht wirklich Abhilfe schaffen.
                    Nachdem ich es dann mit Vektor Datenbank, Lokalen Llama Modellen, usw. probiert habe, hab ich es dann beiseite gelegt und mich anderen Workflows gewidmet.

                    Was du tun könntest wenn es sich bei deinen Geräten nur um Shellys handelt.
                    Erwähne die Shellys und den Datenpunktpfad (shelly.0) explizit im System Prompt. Zusätzlich Erwähnst du, dass Andere Datenpunktformate welche zb. mit hm-rpc.1 oder zigbee.0 usw. anfangen nicht verwendet werden sollen.
                    Wenn du unterschiedliche Geräte verwendest dann im Prompt auch ganz klar sagen welche Geräte für was verwendet werden:
                    Lichter = Shellys = shelly.0
                    Heizung = HomaticIP = hm-rpc.1
                    usw.
                    Ich vermute der "hm-rpc.1" kommt daher, das die für die Analyse hergezogenen Daten einst mit vielen Homematic Geräten "gefüttert" wurden. Und die Modelle nun immer wieder auf diese Datenpunkt Struktur zurückfallen.

                    Es gibt bereits einen ShowCase Beitrag von mir: https://forum.iobroker.net/topic/82726/n8n-iobroker-workflows-showcase
                    Eventuell findest du da etwas für dich brauchbares.

                    Aktuell teste ich eine Workflow um den ioBroker Log fortlaufend zu analysieren, mich zu benachrichtigen wenn etwas wirklich relevant ist und entsprechende Fehlerbehebungen anzubieten und auszuführen (SSH)

                    F Offline
                    F Offline
                    FritzTheCat
                    schrieb am zuletzt editiert von FritzTheCat
                    #38

                    @bloop

                    Danke für diese Infos! Vor allem die Überlegung zu "hm-rpc.1..." klingt einleuchtend. Ich hatte ja auch schon vermutet, dass es sich hier um Halluzination handeln könnte, das hat mich ganz verrückt gemacht.

                    Das seltsamste: ohne jede Änderung habe ich es nun vor meiner Antwort an dich nochmal getestet und bekomme nun plötzlich viel bessere Ergebnisse als zuvor (Uhrzeitabhängige Antworten der API?)

                    Dafür wurde trotz nun richtig gefundener Shellys plötzlich nicht mehr geschalten. Weil nun bei "Value" statt true/false "ein" und "aus" von GPT geliefert wird.

                    Aber auch bei mir bleibt es vorerst ein Spielprojekt und hat eigentlich noch noch keinen realen Wert, denn ich kann ja ohnehin bereits alles mit IPhone und Siri schalten was sich steuern lässt. Ich werden dennoch bei Gelegenheit Verbesserungsversuche machen und die Erkenntnisse hier posten! Es ist ein tolles Projekt um mit n8n zu spielen!

                    Die Erweiterung im Knoten "Parsing" die nun auch mit plötzlichem Auftreten von "Ein" "Aus" fertig wird, schaut dann so aus:

                    let text = $input.first().json.output;
                    
                    if (typeof text === 'string') {
                      text = text.replaceAll('```', '');
                      text = text.replace(/^json/, '');
                      text = JSON.parse(text);
                    }
                    
                    return text.map(it => {
                      let v = it.value;
                    
                      if (typeof v === 'string') {
                        const norm = v.trim().toLowerCase();
                        if (norm === 'ein') v = true;
                        else if (norm === 'aus') v = false;
                      }
                    
                      return {
                        json: {
                          ...it,
                          value: v
                        }
                      };
                    });
                    
                    1 Antwort Letzte Antwort
                    1
                    • OliverIOO OliverIO

                      @FritzTheCat sagte in Test Adapter ioBroker.n8n:

                      mein n8n-Setup liefert dennoch falsche Ergebnisse. Es müssen aus meiner Sicht also zur Laufzeit falsche Daten reinfließen.

                      aber das kann man in n8n doch ganz gut verifizieren. du hast ja immer an jedem step die input und output sicht. wo ist dann der unterschied?

                      welche node nimmst du für gpt nano? eine openai node oder eine der LangChain Nodes?

                      F Offline
                      F Offline
                      FritzTheCat
                      schrieb am zuletzt editiert von
                      #39

                      @OliverIO im ersten Beitrag siehst Du im Screenshot "OpenAI Chat Model" und bei Model "gpt-3.5-turbo"
                      an dieser Stelle, habe ich (immer korrespondierend zu meinen Versuchen in meinem eigenen Tool) verschiedene Modelle ausgewählt und die Ergebnisse verglichen.
                      Wähle ich hier etwa "gpt-5-nano", dann dauert der Schaltvorgang ca. 3-4 Sekunden. Jedenfalls deutlich länger als bei den "teureren" Varianten. Die Qualität der Ergebnisse war aber immer gleich/ähnlich.

                      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

                      771

                      Online

                      32.6k

                      Benutzer

                      82.1k

                      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