Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript vorschlag von ChatGPT korrekt?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript vorschlag von ChatGPT korrekt?

    This topic has been deleted. Only users with topic management privileges can see it.
    • rtwl
      rtwl last edited by

      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.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @rtwl last edited by paul53

        @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?

        1 Reply Last reply Reply Quote 0
        • rtwl
          rtwl last edited by 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);
          
          
          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @rtwl last edited by

            @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)
            });
            
            1 Reply Last reply Reply Quote 0
            • rtwl
              rtwl last edited by

              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 👍🏼

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              854
              Online

              31.8k
              Users

              80.0k
              Topics

              1.3m
              Posts

              2
              5
              348
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo