Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Chat GPT im Javascript Adapter verwenden

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Chat GPT im Javascript Adapter verwenden

Scheduled Pinned Locked Moved ioBroker Allgemein
45 Posts 10 Posters 9.2k 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.
  • CodierknechtC Codierknecht

    @ch90045
    Nicht ich, sondern @OliverIO hat das herausgefunden 😉

    Das liegt nicht an "Deiner" Installation, sondern an der Größe der Doku, die ja jedes mal mitgesendet wird.
    Das kannst Du nicht beeinflussen.

    Funktioniert übrigens bei mir mittlerweile auch nicht mehr.

    ch90045C Offline
    ch90045C Offline
    ch90045
    wrote on last edited by
    #29

    @codierknecht wie gut, dass ich "nur" 5$+Tax versenkt habe - schade eigentlich.

    ch90045C 1 Reply Last reply
    0
    • ch90045C ch90045

      @codierknecht wie gut, dass ich "nur" 5$+Tax versenkt habe - schade eigentlich.

      ch90045C Offline
      ch90045C Offline
      ch90045
      wrote on last edited by
      #30

      @Codierknecht & @haus-automatisierung macht es Sinn eine Issue Report gegen die JS Adapter aufzumachen?

      Christian

      haus-automatisierungH 1 Reply Last reply
      0
      • ch90045C ch90045

        @Codierknecht & @haus-automatisierung macht es Sinn eine Issue Report gegen die JS Adapter aufzumachen?

        Christian

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        wrote on last edited by
        #31

        @ch90045 Sich mit dem Thema zu beschäftigen und einen PR mit einer Lösung zu erstellen wäre besser 🙂 Ich werde da erstmal keine Zeit für investieren, weil die Ergebnisse von ChatGPT bisher eigentlich nicht zu gebrauchen waren, ...

        Also gern öffnen, aber nicht hoffen dass sich da bald jemand dran setzt

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

        1 Reply Last reply
        0
        • ch90045C ch90045

          @haus-automatisierung ahhhh ....

          Cannot request: Error: 429 Request too large for gpt-3.5-turbo-16k in organization org-6XonBlBfqBtiOYpdmqzcoXW0 on tokens per min (TPM): Limit 60000, Requested 62890. The input or output tokens must be reduced in order to run successfully. Visit https://platform.openai.com/account/rate-limits to learn more., {
            "status": 429,
            "headers": {
              "content-length": "416",
              "content-type": "application/json; charset=utf-8"
            },
            "error": {
              "message": "Request too large for gpt-3.5-turbo-16k in organization org-6XonBlBfqBtiOYpdmqzcoXW0 on tokens per min (TPM): Limit 60000, Requested 62890. The input or output tokens must be reduced in order to run successfully. Visit https://platform.openai.com/account/rate-limits to learn more.",
              "type": "tokens",
              "param": null,
              "code": "rate_limit_exceeded"
            },
            "code": "rate_limit_exceeded",
            "param": null,
            "type": "tokens"
          }```
          
          

          Frage ist, warum habe ich so viele Token?

          Christian

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by OliverIO
          #32

          @ch90045 sagte in Chat GPT im Javascript Adapter verwenden:

          on tokens per min (TPM): Limit 60000, Requested 62890.

          du hast ein limit von 60000 tokens pro minute
          das llm gpt-3.5-turbo-16k
          kann eh nur 16000 tokens (16k) verarbeiten. alles andere wird ignoriert

          https://platform.openai.com/docs/models#:~:text=updated%20GPT%2D3.5%20Turbo%20(16k%20context%20window
          

          direkt kopiert funktioniert der link nicht, daher bitte hier kopieren und im browser öffnen

          daher musst du deinen input verkleinern. als context wird auf der oberfläche immer der komplette chat mitgesendet. das gilt in der api eigentlich auch.

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

          ch90045C 1 Reply Last reply
          0
          • OliverIOO OliverIO

            @ch90045 sagte in Chat GPT im Javascript Adapter verwenden:

            on tokens per min (TPM): Limit 60000, Requested 62890.

            du hast ein limit von 60000 tokens pro minute
            das llm gpt-3.5-turbo-16k
            kann eh nur 16000 tokens (16k) verarbeiten. alles andere wird ignoriert

            https://platform.openai.com/docs/models#:~:text=updated%20GPT%2D3.5%20Turbo%20(16k%20context%20window
            

            direkt kopiert funktioniert der link nicht, daher bitte hier kopieren und im browser öffnen

            daher musst du deinen input verkleinern. als context wird auf der oberfläche immer der komplette chat mitgesendet. das gilt in der api eigentlich auch.

            ch90045C Offline
            ch90045C Offline
            ch90045
            wrote on last edited by
            #33

            @oliverio Was meinst du genau mit "du musst deinen input verkleinern" - meine Anfrage für ein einfaches Script war "Schalte am Wochende scene.0.WohnzimmerLicht um 7:00 an" - noch weniger?

            OliverIOO 1 Reply Last reply
            0
            • ch90045C ch90045

              @oliverio Was meinst du genau mit "du musst deinen input verkleinern" - meine Anfrage für ein einfaches Script war "Schalte am Wochende scene.0.WohnzimmerLicht um 7:00 an" - noch weniger?

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              wrote on last edited by
              #34

              @ch90045

              gemäß fehlermeldung wurden 62000 tokens versendet.
              https://deinkikompass.de/blog/openai-gpt-token-guide
              das verhältnis buchstaben zu tokens hängt von der sprache ab (von 1:1 bis 1:4 tokens/buchstaben)

              dann musst du prüfen warum da mehr tokens versendet wurden.
              wahrscheinlich wurde als context das komplette script mit versendet

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

              haus-automatisierungH ch90045C 2 Replies Last reply
              0
              • OliverIOO OliverIO

                @ch90045

                gemäß fehlermeldung wurden 62000 tokens versendet.
                https://deinkikompass.de/blog/openai-gpt-token-guide
                das verhältnis buchstaben zu tokens hängt von der sprache ab (von 1:1 bis 1:4 tokens/buchstaben)

                dann musst du prüfen warum da mehr tokens versendet wurden.
                wahrscheinlich wurde als context das komplette script mit versendet

                haus-automatisierungH Online
                haus-automatisierungH Online
                haus-automatisierung
                Developer Most Active
                wrote on last edited by haus-automatisierung
                #35

                @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ß.

                🧑‍🎓 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
                • OliverIOO OliverIO

                  @ch90045

                  gemäß fehlermeldung wurden 62000 tokens versendet.
                  https://deinkikompass.de/blog/openai-gpt-token-guide
                  das verhältnis buchstaben zu tokens hängt von der sprache ab (von 1:1 bis 1:4 tokens/buchstaben)

                  dann musst du prüfen warum da mehr tokens versendet wurden.
                  wahrscheinlich wurde als context das komplette script mit versendet

                  ch90045C Offline
                  ch90045C Offline
                  ch90045
                  wrote on last edited by
                  #36

                  @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 1 Reply Last reply
                  0
                  • 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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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
                          wrote on last edited by 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 Reply Last reply
                          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
                            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

                                    692

                                    Online

                                    32.4k

                                    Users

                                    81.4k

                                    Topics

                                    1.3m

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

                                    • Don't have an account? Register

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