Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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
    16
    1
    1.8k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Chat GPT im Javascript Adapter verwenden

Scheduled Pinned Locked Moved ioBroker Allgemein
45 Posts 10 Posters 9.8k Views 14 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      0
      • N Offline
        N Offline
        nerg
        wrote on last edited by 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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by 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 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            730

            Online

            32.6k

            Users

            82.1k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe