Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skript vorschlag von ChatGPT korrekt?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Skript vorschlag von ChatGPT korrekt?

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 385 Aufrufe 2 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.
  • rtwlR Offline
    rtwlR Offline
    rtwl
    schrieb am zuletzt editiert von
    #1

    Ich habe ChatGPT gefragt wie man täglich einen Objekt auf true setzen kann sobald eine von 3 Lampen eingeschaltet wird.
    kann mir jemand der Ahnung hat die Antwort bestätigen? Ich denke nämlich hier wird der state nicht auf false zurück gesetzt. zb um Mitternacht.

    on({id: 'lamp1', val: true}, {id: 'lamp2', val: true}, {id: 'lamp3', val: true}, function (obj1, obj2, obj3) {
        var d = new Date();
        var today = d.toDateString();
        var objectState = getState('light1').val;
        if ((objectState == false) && (getState(obj1.id).ts > d.setHours(0, 0, 0, 0)) && (getState(obj2.id).ts > d.setHours(0, 0, 0, 0)) && (getState(obj3.id).ts > d.setHours(0, 0, 0, 0))) {
            setState('light1', true);
        }
    });
    
    

    der zusätzliche Text von ChatGPT:
    In diesem Beispielcode wird das Objekt "light1" nur einmal täglich auf "true" gesetzt, wenn eine der drei Lampen (mit den IDs "lamp1", "lamp2" und "lamp3") eingeschaltet wird und dies noch nicht an diesem Tag geschehen ist.

    -Peter

    paul53P 1 Antwort Letzte Antwort
    0
    • rtwlR rtwl

      Ich habe ChatGPT gefragt wie man täglich einen Objekt auf true setzen kann sobald eine von 3 Lampen eingeschaltet wird.
      kann mir jemand der Ahnung hat die Antwort bestätigen? Ich denke nämlich hier wird der state nicht auf false zurück gesetzt. zb um Mitternacht.

      on({id: 'lamp1', val: true}, {id: 'lamp2', val: true}, {id: 'lamp3', val: true}, function (obj1, obj2, obj3) {
          var d = new Date();
          var today = d.toDateString();
          var objectState = getState('light1').val;
          if ((objectState == false) && (getState(obj1.id).ts > d.setHours(0, 0, 0, 0)) && (getState(obj2.id).ts > d.setHours(0, 0, 0, 0)) && (getState(obj3.id).ts > d.setHours(0, 0, 0, 0))) {
              setState('light1', true);
          }
      });
      
      

      der zusätzliche Text von ChatGPT:
      In diesem Beispielcode wird das Objekt "light1" nur einmal täglich auf "true" gesetzt, wenn eine der drei Lampen (mit den IDs "lamp1", "lamp2" und "lamp3") eingeschaltet wird und dies noch nicht an diesem Tag geschehen ist.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @rtwl
      Dieser Code funktioniert nicht, da der Trigger falsch gebildet wird und ein Zeit-Trigger (Mitternacht) zum Ausschalten fehlt. Zeile 1 enthält völligen Blödsinn.

      @rtwl sagte in Skript vorschlag von ChatGPT korrekt?:

      täglich einen Objekt auf true setzen

      Welches Objekt?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • rtwlR Offline
        rtwlR Offline
        rtwl
        schrieb am zuletzt editiert von rtwl
        #3

        Hab meine Frage an ChatGPT genauer gestellt und folgendes bekommen. Ich denke so sieht es besser aus:
        oder?


        Ich brauche bitte eine Javascript Code für iobroker. Ich habe 3 Lampen. Ich möchte gerne täglich ein Zielobjekt auf true setzen sobald die erste der drei Lampen auf true gesetzt wurde. Am restlichen Tag muss nichts mehr überprüft werden. Um Mitternacht soll der state vom Zielobjekt wieder auf false.

        // Objekt-ID des Zielobjekts
        const ZielobjektID = 'zielobjekt.0.state';
        
        // Objekt-IDs der drei Lampen
        const Lampe1ID = 'lampe1.0.state';
        const Lampe2ID = 'lampe2.0.state';
        const Lampe3ID = 'lampe3.0.state';
        
        // Aktuelles Datum
        const heute = new Date();
        
        // Mitternacht des aktuellen Tages
        const mitternacht = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate(), 24);
        
        // Funktion, um das Zielobjekt auf true zu setzen
        function setzeZielobjekt() {
            setState(ZielobjektID, true);
        }
        
        // Funktion, um das Zielobjekt auf false zu setzen
        function resetZielobjekt() {
            setState(ZielobjektID, false);
        }
        
        // Funktion, um zu überprüfen, ob das Zielobjekt bereits auf true gesetzt wurde
        function istZielobjektGesetzt() {
            const zielobjekt = getState(ZielobjektID);
            return (zielobjekt && zielobjekt.val === true);
        }
        
        // Funktion, um das Einschalten einer der Lampen zu überwachen
        function ueberwacheLampen() {
            if (!istZielobjektGesetzt()) {
                if (getState(Lampe1ID).val === true) {
                    setzeZielobjekt();
                } else if (getState(Lampe2ID).val === true) {
                    setzeZielobjekt();
                } else if (getState(Lampe3ID).val === true) {
                    setzeZielobjekt();
                }
            }
        }
        
        // Überwache die Lampen
        on({id: Lampe1ID, change: 'ne'}, ueberwacheLampen);
        on({id: Lampe2ID, change: 'ne'}, ueberwacheLampen);
        on({id: Lampe3ID, change: 'ne'}, ueberwacheLampen);
        
        // Setze das Zielobjekt jeden Tag um Mitternacht zurück auf false
        schedule('0 0 * * *', resetZielobjekt);
        
        

        -Peter

        paul53P 1 Antwort Letzte Antwort
        0
        • rtwlR rtwl

          Hab meine Frage an ChatGPT genauer gestellt und folgendes bekommen. Ich denke so sieht es besser aus:
          oder?


          Ich brauche bitte eine Javascript Code für iobroker. Ich habe 3 Lampen. Ich möchte gerne täglich ein Zielobjekt auf true setzen sobald die erste der drei Lampen auf true gesetzt wurde. Am restlichen Tag muss nichts mehr überprüft werden. Um Mitternacht soll der state vom Zielobjekt wieder auf false.

          // Objekt-ID des Zielobjekts
          const ZielobjektID = 'zielobjekt.0.state';
          
          // Objekt-IDs der drei Lampen
          const Lampe1ID = 'lampe1.0.state';
          const Lampe2ID = 'lampe2.0.state';
          const Lampe3ID = 'lampe3.0.state';
          
          // Aktuelles Datum
          const heute = new Date();
          
          // Mitternacht des aktuellen Tages
          const mitternacht = new Date(heute.getFullYear(), heute.getMonth(), heute.getDate(), 24);
          
          // Funktion, um das Zielobjekt auf true zu setzen
          function setzeZielobjekt() {
              setState(ZielobjektID, true);
          }
          
          // Funktion, um das Zielobjekt auf false zu setzen
          function resetZielobjekt() {
              setState(ZielobjektID, false);
          }
          
          // Funktion, um zu überprüfen, ob das Zielobjekt bereits auf true gesetzt wurde
          function istZielobjektGesetzt() {
              const zielobjekt = getState(ZielobjektID);
              return (zielobjekt && zielobjekt.val === true);
          }
          
          // Funktion, um das Einschalten einer der Lampen zu überwachen
          function ueberwacheLampen() {
              if (!istZielobjektGesetzt()) {
                  if (getState(Lampe1ID).val === true) {
                      setzeZielobjekt();
                  } else if (getState(Lampe2ID).val === true) {
                      setzeZielobjekt();
                  } else if (getState(Lampe3ID).val === true) {
                      setzeZielobjekt();
                  }
              }
          }
          
          // Überwache die Lampen
          on({id: Lampe1ID, change: 'ne'}, ueberwacheLampen);
          on({id: Lampe2ID, change: 'ne'}, ueberwacheLampen);
          on({id: Lampe3ID, change: 'ne'}, ueberwacheLampen);
          
          // Setze das Zielobjekt jeden Tag um Mitternacht zurück auf false
          schedule('0 0 * * *', resetZielobjekt);
          
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @rtwl sagte: so sieht es besser aus: oder?

          Viel zu kompliziert. Vorschlag:

          const idObject = '0_userdata.0.light';
          on({id: ['adapter.0.lamp1','adapter.0.lamp2','adapter.0.lamp3'], change: 'gt'}, function() {
              if(!getState(idObject).val) setState(idObject, true, true)
          });
          schedule('0 0 * * *', function() {
              if(getState(idObject).val) setState(idObject, false, true)
          });
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • rtwlR Offline
            rtwlR Offline
            rtwl
            schrieb am zuletzt editiert von
            #5

            Super danke.
            ich dachte mir, dass es einfacher gehen würde.
            das heißt also ChatGPT kann es wenn man die richtige Frage stellt es ist aber zu kompliziert. gut zu wissen 👍🏼

            -Peter

            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

            354

            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