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. ioBroker Allgemein
  4. Chat GPT im Javascript Adapter verwenden

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Chat GPT im Javascript Adapter verwenden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
47 Beiträge 12 Kommentatoren 10.0k Aufrufe 16 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.
  • ch90045C ch90045

    @oliverio Nun ja, skript war 0 gross, ChatGPT sollte, rein zum testen, ein Skript zur Änderung EINES Zustandes erstellen - denke die Frage war kleiner als 100 Token, der Rest waren Interna.

    T Offline
    T Offline
    TomTom24
    schrieb am zuletzt editiert von
    #37

    ist im Moment unbrauchbar...leider

    Error: 400 This model's maximum context length is 16385 tokens. However, your messages resulted in 49186 tokens

    1 Antwort Letzte Antwort
    0
    • haus-automatisierungH haus-automatisierung

      @oliverio sagte in Chat GPT im Javascript Adapter verwenden:

      wahrscheinlich wurde als context das komplette script mit versendet

      Als Context wird immer die Dokumentation angehangen (als Markdown). Die ist halt alleine schon sehr lang. Und wenn man viele Geräte definiert hat, dann werden die auch noch mitgeliefert, damit ChatCPT auch die richtigen Objekt-IDs, Räume, usw. kennt.

      Das wird ggf. natürlich sehr groß.

      N Offline
      N Offline
      nerg
      schrieb am zuletzt editiert von
      #38

      @haus-automatisierung said in Chat GPT im Javascript Adapter verwenden:

      @oliverio sagte in Chat GPT im Javascript Adapter verwenden:

      wahrscheinlich wurde als context das komplette script mit versendet

      Als Context wird immer die Dokumentation angehangen (als Markdown). Die ist halt alleine schon sehr lang. Und wenn man viele Geräte definiert hat, dann werden die auch noch mitgeliefert, damit ChatCPT auch die richtigen Objekt-IDs, Räume, usw. kennt.

      Das wird ggf. natürlich sehr groß.

      Lässt sich das mit der Dokumentation eigentlich ausschalten? Meiner Erfahrung nach macht GPT auch so ganz gute Skripte

      haus-automatisierungH 1 Antwort Letzte Antwort
      0
      • N nerg

        @haus-automatisierung said in Chat GPT im Javascript Adapter verwenden:

        @oliverio sagte in Chat GPT im Javascript Adapter verwenden:

        wahrscheinlich wurde als context das komplette script mit versendet

        Als Context wird immer die Dokumentation angehangen (als Markdown). Die ist halt alleine schon sehr lang. Und wenn man viele Geräte definiert hat, dann werden die auch noch mitgeliefert, damit ChatCPT auch die richtigen Objekt-IDs, Räume, usw. kennt.

        Das wird ggf. natürlich sehr groß.

        Lässt sich das mit der Dokumentation eigentlich ausschalten? Meiner Erfahrung nach macht GPT auch so ganz gute Skripte

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #39

        @nerg Und dann gibst Du immer die Verison des Adapters mit, damit ChatGPT alle verfügbaren Funktionen der Version kennt?!

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        N 1 Antwort Letzte Antwort
        0
        • haus-automatisierungH haus-automatisierung

          @nerg Und dann gibst Du immer die Verison des Adapters mit, damit ChatGPT alle verfügbaren Funktionen der Version kennt?!

          N Offline
          N Offline
          nerg
          schrieb am zuletzt editiert von nerg
          #40

          @haus-automatisierung mit ein bisschen Fingerspitzengefühl hab ich ihn bisher ganz gut angeleitet auch ganz ohne Anbindung an die Doku.
          Da ich nur tier1 bei der API habe, sprengt die Doku direkt das token Limit. Im Gegensatz zu Lindner würde ich die Schnittstelle lieber schlecht als gar nicht nutzen 🥴😉

          Edit: falls jemand noch einen chatGPT Plus Account hat, dann könnte der-/diejenige auch einen individuellen iobroker GPT anlegen, der mit der Doku gefüttert wird und ein paar individuelle Anweisungen zur Codeerstellung bekommt. Zur Not würde ich auch noch Mal Plus abschließen, falls da Interesse besteht. Das würde auch die Schwelle reduzieren für Einsteiger

          haus-automatisierungH 1 Antwort Letzte Antwort
          0
          • N nerg

            @haus-automatisierung mit ein bisschen Fingerspitzengefühl hab ich ihn bisher ganz gut angeleitet auch ganz ohne Anbindung an die Doku.
            Da ich nur tier1 bei der API habe, sprengt die Doku direkt das token Limit. Im Gegensatz zu Lindner würde ich die Schnittstelle lieber schlecht als gar nicht nutzen 🥴😉

            Edit: falls jemand noch einen chatGPT Plus Account hat, dann könnte der-/diejenige auch einen individuellen iobroker GPT anlegen, der mit der Doku gefüttert wird und ein paar individuelle Anweisungen zur Codeerstellung bekommt. Zur Not würde ich auch noch Mal Plus abschließen, falls da Interesse besteht. Das würde auch die Schwelle reduzieren für Einsteiger

            haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #41

            @nerg sagte in Chat GPT im Javascript Adapter verwenden:

            mit ein bisschen Fingerspitzengefühl hab ich ihn bisher ganz gut angeleitet auch ganz ohne Anbindung an die Doku.

            Da kommt sehr häufig unnötig komplexer Code raus, welcher dann erstmal fetch importiert, statt z.B die internen Methoden zu nutzen. Das Ergebnis ist in den meisten Fällen nicht gut. Das bestätigen auch zig Screenshots in der Facebook-Gruppe, wo Leute ihre "top Ergebnisse" gezeigt haben.

            Ich habe schonmal überlegt ein Custom GPT (heißt das so?) zu erstellen, welches dann den ioBroker-Adapter kennt und dann nur noch die Version übergeben werden muss. Damit man auch vernünftigen Code bekommt, welcher die internen Methoden nutzt.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            N 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @nerg sagte in Chat GPT im Javascript Adapter verwenden:

              mit ein bisschen Fingerspitzengefühl hab ich ihn bisher ganz gut angeleitet auch ganz ohne Anbindung an die Doku.

              Da kommt sehr häufig unnötig komplexer Code raus, welcher dann erstmal fetch importiert, statt z.B die internen Methoden zu nutzen. Das Ergebnis ist in den meisten Fällen nicht gut. Das bestätigen auch zig Screenshots in der Facebook-Gruppe, wo Leute ihre "top Ergebnisse" gezeigt haben.

              Ich habe schonmal überlegt ein Custom GPT (heißt das so?) zu erstellen, welches dann den ioBroker-Adapter kennt und dann nur noch die Version übergeben werden muss. Damit man auch vernünftigen Code bekommt, welcher die internen Methoden nutzt.

              N Offline
              N Offline
              nerg
              schrieb am zuletzt editiert von
              #42

              @haus-automatisierung ja das stimmt. Blind übernehmen kann man das nicht. Er ist aber auch mit 4o wieder deutlich besser geworden und auch kooperativer.
              Ich glaube custom gpt ist richtig. Ich schau mir das Mal an. Hatte das seinerzeit Mal versucht, da waren die Tokens aber sehr niedrig, die man mitgeben konnte.

              1 Antwort Letzte Antwort
              0
              • N Offline
                N Offline
                nerg
                schrieb am zuletzt editiert von nerg
                #43

                @haus-automatisierung
                ChatGPT Link
                hier mal ein erster Wurf. Gefüttert mit den Docs aus Github, die auch bei der API genutzt werden und ein paar angepassten Anweisungen.

                // edit: Mit 3 Anweisungen zu diesem Ergebnis:

                // Anwesenheitserkennung für verschiedene User anhand von boolean-Datenpunkten
                
                // Liste der zu überwachenden Datenpunkte für jeden User
                const userPresenceDataPoints = {
                    user1: ['geofence.user1', 'wlan.user1'],
                    user2: ['geofence.user2', 'wlan.user2'],
                    // Weitere User und deren Datenpunkte hier hinzufügen
                };
                
                // Funktion zur Überprüfung der Anwesenheit eines Users
                async function isUserPresent(user, dataPoints) {
                    for (let dp of dataPoints) {
                        let state = await getStateAsync(dp);
                        if (state && state.val === true) {
                            return true;
                        }
                    }
                    return false;
                }
                
                // Funktion zur Überprüfung und Erstellung eines Datenpunkts
                async function checkAndCreateDataPoint(user) {
                    const dpPath = `userdata.0.${user}.presence`;
                    const dpObj = await getObjectAsync(dpPath);
                    if (!dpObj) {
                        await setObjectAsync(dpPath, {
                            type: 'state',
                            common: {
                                name: `${user} Presence`,
                                type: 'boolean',
                                role: 'indicator',
                                read: true,
                                write: true,
                            },
                            native: {},
                        });
                    }
                    return dpPath;
                }
                
                // Anwesenheitsprüfung für alle User
                async function checkAllUsersPresence() {
                    for (let user in userPresenceDataPoints) {
                        let isPresent = await isUserPresent(user, userPresenceDataPoints[user]);
                        const dpPath = await checkAndCreateDataPoint(user);
                        await setStateAsync(dpPath, isPresent);
                        console.log(`${user} ist ${isPresent ? 'anwesend' : 'abwesend'}`);
                    }
                }
                
                // Starte die Anwesenheitsprüfung alle 17 Sekunden
                setInterval(checkAllUsersPresence, 17000);
                
                

                habs nicht ausprobiert, aber schaut brauchbar aus.

                haus-automatisierungH 1 Antwort Letzte Antwort
                0
                • N nerg

                  @haus-automatisierung
                  ChatGPT Link
                  hier mal ein erster Wurf. Gefüttert mit den Docs aus Github, die auch bei der API genutzt werden und ein paar angepassten Anweisungen.

                  // edit: Mit 3 Anweisungen zu diesem Ergebnis:

                  // Anwesenheitserkennung für verschiedene User anhand von boolean-Datenpunkten
                  
                  // Liste der zu überwachenden Datenpunkte für jeden User
                  const userPresenceDataPoints = {
                      user1: ['geofence.user1', 'wlan.user1'],
                      user2: ['geofence.user2', 'wlan.user2'],
                      // Weitere User und deren Datenpunkte hier hinzufügen
                  };
                  
                  // Funktion zur Überprüfung der Anwesenheit eines Users
                  async function isUserPresent(user, dataPoints) {
                      for (let dp of dataPoints) {
                          let state = await getStateAsync(dp);
                          if (state && state.val === true) {
                              return true;
                          }
                      }
                      return false;
                  }
                  
                  // Funktion zur Überprüfung und Erstellung eines Datenpunkts
                  async function checkAndCreateDataPoint(user) {
                      const dpPath = `userdata.0.${user}.presence`;
                      const dpObj = await getObjectAsync(dpPath);
                      if (!dpObj) {
                          await setObjectAsync(dpPath, {
                              type: 'state',
                              common: {
                                  name: `${user} Presence`,
                                  type: 'boolean',
                                  role: 'indicator',
                                  read: true,
                                  write: true,
                              },
                              native: {},
                          });
                      }
                      return dpPath;
                  }
                  
                  // Anwesenheitsprüfung für alle User
                  async function checkAllUsersPresence() {
                      for (let user in userPresenceDataPoints) {
                          let isPresent = await isUserPresent(user, userPresenceDataPoints[user]);
                          const dpPath = await checkAndCreateDataPoint(user);
                          await setStateAsync(dpPath, isPresent);
                          console.log(`${user} ist ${isPresent ? 'anwesend' : 'abwesend'}`);
                      }
                  }
                  
                  // Starte die Anwesenheitsprüfung alle 17 Sekunden
                  setInterval(checkAllUsersPresence, 17000);
                  
                  

                  habs nicht ausprobiert, aber schaut brauchbar aus.

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #44

                  @nerg sagte in Chat GPT im Javascript Adapter verwenden:

                  aber schaut brauchbar aus.

                  Auch wieder unnötig kompliziert, statt setObjectAsync kann man einfach createState aus der Sandbox nutzen. Dann braucht man den Zugriff auf die Objekte auch nicht freigeben. Genauso gibt es existsState

                  • https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createstateasync
                  • https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#existsState

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  N 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    @nerg sagte in Chat GPT im Javascript Adapter verwenden:

                    aber schaut brauchbar aus.

                    Auch wieder unnötig kompliziert, statt setObjectAsync kann man einfach createState aus der Sandbox nutzen. Dann braucht man den Zugriff auf die Objekte auch nicht freigeben. Genauso gibt es existsState

                    • https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#createstateasync
                    • https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#existsState
                    N Offline
                    N Offline
                    nerg
                    schrieb am zuletzt editiert von nerg
                    #45

                    @haus-automatisierung ja das stimmt. wenn man das ganz nochmal probiert, kommt auch wieder anderer Code raus:

                    // Funktion, um Anwesenheit der User zu prüfen
                    function checkUserPresence() {
                        const users = ['user1', 'user2', 'user3']; // Liste der User
                        const userPresenceDataPoints = {
                            'user1': ['geofence.user1', 'wifi.user1'],
                            'user2': ['geofence.user2', 'wifi.user2'],
                            'user3': ['geofence.user3', 'wifi.user3']
                        };
                    
                        users.forEach(user => {
                            let isPresent = false;
                    
                            // Überprüfe alle Datenpunkte für jeden User
                            userPresenceDataPoints[user].forEach(dp => {
                                if (getState(dp).val) {
                                    isPresent = true;
                                }
                            });
                    
                            const userPresenceState = `userdata.0.${user}.presence`;
                    
                            // Falls der Datenpunkt nicht existiert, lege ihn an
                            if (!existsState(userPresenceState)) {
                                createState(userPresenceState, { type: 'boolean', def: false });
                            }
                    
                            // Setze den Anwesenheitsstatus
                            setState(userPresenceState, isPresent);
                        });
                    }
                    
                    // Die Funktion alle 17 Sekunden ausführen
                    schedule("*/17 * * * * *", checkUserPresence);
                    
                    // Initiale Ausführung beim Start des Skripts
                    checkUserPresence();
                    
                    

                    Eventuell muss man die Anweisungen nochmal konkreter fassen.

                    //edit: habe ihn nochmal konkreter angewiesen, die docs.md zu befolgen. Probiere es gerne aus: https://chatgpt.com/g/g-y65cMkHAC-iobroker-javascriptgpt

                    1 Antwort Letzte Antwort
                    0
                    • R Offline
                      R Offline
                      rolsch
                      schrieb am zuletzt editiert von
                      #46

                      Gibt es schon eine Möglichkeit lokale KI zu nutzen? Anbindung an Ollama oder LMStudio?

                      Jey CeeJ 1 Antwort Letzte Antwort
                      0
                      • R rolsch

                        Gibt es schon eine Möglichkeit lokale KI zu nutzen? Anbindung an Ollama oder LMStudio?

                        Jey CeeJ Online
                        Jey CeeJ Online
                        Jey Cee
                        Developer
                        schrieb am zuletzt editiert von
                        #47

                        @rolsch kommt halt drauf an für was. mit ai-toolbox und ai-assistant gibt es zwei adapter für die Verwendung von KI Modellen, darunter auch Ollama.

                        Persönlicher Support
                        Spenden -> paypal.me/J3YC33

                        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
                        FAQ Cloud / IOT
                        HowTo: Node.js-Update
                        HowTo: Backup/Restore
                        Downloads
                        BLOG

                        663

                        Online

                        32.6k

                        Benutzer

                        82.3k

                        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