Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. einfaches Script will nicht.... [solved]

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    305

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.8k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    778

einfaches Script will nicht.... [solved]

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
javascriptschedule
8 Beiträge 4 Kommentatoren 775 Aufrufe 4 Beobachtet
  • Ä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.
  • Johannes BauerstatterJ Offline
    Johannes BauerstatterJ Offline
    Johannes Bauerstatter
    schrieb am zuletzt editiert von Johannes Bauerstatter
    #1

    Hallo,

    kann mir bitte jemand sagen, warum dieses Script nicht will?:

    Der Teil mit dem Zeitprogramm funktioniert also ein um 11:15 und aus um 18:15 aber der Teil mit dem Verbrauch will nicht.

    const id_Verbrauch1 = '0_userdata.0.Verbräuche.Differenzverbrauch';
    const idWarmwasser = '0_userdata.0.Variablen.Warmwasser';
    
    //Variable ein per Zeitprogramm
    schedule('15 11 * * *', function ein() 
    {setState(idWarmwasser, true);
    sendTo('telegram.0', 'send', {text: 'Wasser ein Zeit'});});
    
    //Variable aus per Zeitprogramm
    schedule('15 18 * * *', function ein() 
    {setState(idWarmwasser, false);
    sendTo('telegram.0', 'send', {text: 'Wasser aus Zeit'});});
    
    //Variable ein per Verbrauch
    on (id_Verbrauch1, function ()
    {   var Verbrauch = getState(id_Verbrauch1).val; 
        if (Verbrauch < -500)
            {setState(idWarmwasser, true);}
    });
    
    //Ein - Aus per Variable
    on (idWarmwasser, function ()
    {
        var Warmwasser = getState(idWarmwasser).val;
        if (Warmwasser = true)
        {setState('sonoff.0.S4 Warmwasser.POWER', true);
        sendTo('telegram.0', 'send', {text: 'Wasser ein'})} 
        else if (Warmwasser = false) 
        {setState('sonoff.0.S4 Warmwasser.POWER', false);
        sendTo('telegram.0', 'send', {text: 'Wasser aus'})}
    });
    
    A E 2 Antworten Letzte Antwort
    0
    • Johannes BauerstatterJ Johannes Bauerstatter

      Hallo,

      kann mir bitte jemand sagen, warum dieses Script nicht will?:

      Der Teil mit dem Zeitprogramm funktioniert also ein um 11:15 und aus um 18:15 aber der Teil mit dem Verbrauch will nicht.

      const id_Verbrauch1 = '0_userdata.0.Verbräuche.Differenzverbrauch';
      const idWarmwasser = '0_userdata.0.Variablen.Warmwasser';
      
      //Variable ein per Zeitprogramm
      schedule('15 11 * * *', function ein() 
      {setState(idWarmwasser, true);
      sendTo('telegram.0', 'send', {text: 'Wasser ein Zeit'});});
      
      //Variable aus per Zeitprogramm
      schedule('15 18 * * *', function ein() 
      {setState(idWarmwasser, false);
      sendTo('telegram.0', 'send', {text: 'Wasser aus Zeit'});});
      
      //Variable ein per Verbrauch
      on (id_Verbrauch1, function ()
      {   var Verbrauch = getState(id_Verbrauch1).val; 
          if (Verbrauch < -500)
              {setState(idWarmwasser, true);}
      });
      
      //Ein - Aus per Variable
      on (idWarmwasser, function ()
      {
          var Warmwasser = getState(idWarmwasser).val;
          if (Warmwasser = true)
          {setState('sonoff.0.S4 Warmwasser.POWER', true);
          sendTo('telegram.0', 'send', {text: 'Wasser ein'})} 
          else if (Warmwasser = false) 
          {setState('sonoff.0.S4 Warmwasser.POWER', false);
          sendTo('telegram.0', 'send', {text: 'Wasser aus'})}
      });
      
      A Offline
      A Offline
      Ahnungsbefreit
      schrieb am zuletzt editiert von
      #2

      @johannes-bauerstatter Durch was wird denn id_Verbrauch1 aktualisiert? Ein anderes Script? Nur wenn sich das ändert, wird ja der untere Teil aufgerufen.

      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

      Johannes BauerstatterJ 1 Antwort Letzte Antwort
      0
      • Johannes BauerstatterJ Johannes Bauerstatter

        Hallo,

        kann mir bitte jemand sagen, warum dieses Script nicht will?:

        Der Teil mit dem Zeitprogramm funktioniert also ein um 11:15 und aus um 18:15 aber der Teil mit dem Verbrauch will nicht.

        const id_Verbrauch1 = '0_userdata.0.Verbräuche.Differenzverbrauch';
        const idWarmwasser = '0_userdata.0.Variablen.Warmwasser';
        
        //Variable ein per Zeitprogramm
        schedule('15 11 * * *', function ein() 
        {setState(idWarmwasser, true);
        sendTo('telegram.0', 'send', {text: 'Wasser ein Zeit'});});
        
        //Variable aus per Zeitprogramm
        schedule('15 18 * * *', function ein() 
        {setState(idWarmwasser, false);
        sendTo('telegram.0', 'send', {text: 'Wasser aus Zeit'});});
        
        //Variable ein per Verbrauch
        on (id_Verbrauch1, function ()
        {   var Verbrauch = getState(id_Verbrauch1).val; 
            if (Verbrauch < -500)
                {setState(idWarmwasser, true);}
        });
        
        //Ein - Aus per Variable
        on (idWarmwasser, function ()
        {
            var Warmwasser = getState(idWarmwasser).val;
            if (Warmwasser = true)
            {setState('sonoff.0.S4 Warmwasser.POWER', true);
            sendTo('telegram.0', 'send', {text: 'Wasser ein'})} 
            else if (Warmwasser = false) 
            {setState('sonoff.0.S4 Warmwasser.POWER', false);
            sendTo('telegram.0', 'send', {text: 'Wasser aus'})}
        });
        
        E Offline
        E Offline
        ente34
        schrieb am zuletzt editiert von
        #3

        @johannes-bauerstatter sagte in einfaches Script will nicht....:

        if (Warmwasser = true)                                                                    
        

        Vergleiche mit "==" oder bei bool ganz weglassen:

        if (Warmwasser) {
            setState('sonoff.0.S4 Warmwasser.POWER', true);
            sendTo('telegram.0', 'send', {text: 'Wasser ein'})
        } else {
            setState('sonoff.0.S4 Warmwasser.POWER', false);
            sendTo('telegram.0', 'send', {text: 'Wasser aus'})
        }
        
        
        1 Antwort Letzte Antwort
        1
        • A Ahnungsbefreit

          @johannes-bauerstatter Durch was wird denn id_Verbrauch1 aktualisiert? Ein anderes Script? Nur wenn sich das ändert, wird ja der untere Teil aufgerufen.

          Johannes BauerstatterJ Offline
          Johannes BauerstatterJ Offline
          Johannes Bauerstatter
          schrieb am zuletzt editiert von
          #4

          @ahnungsbefreit Das ist die Einspeisung meiner PV-Anlage. Dieser Wert ändert sich ca. alle 5 Sek.

          @ente34 Vielen Dank werd ich ändern, wobei dieser Teil ja funktionieren muss, sonst würde das Zeitprogramm auch nicht laufen.

          A OliverIOO 2 Antworten Letzte Antwort
          0
          • Johannes BauerstatterJ Johannes Bauerstatter

            @ahnungsbefreit Das ist die Einspeisung meiner PV-Anlage. Dieser Wert ändert sich ca. alle 5 Sek.

            @ente34 Vielen Dank werd ich ändern, wobei dieser Teil ja funktionieren muss, sonst würde das Zeitprogramm auch nicht laufen.

            A Offline
            A Offline
            Ahnungsbefreit
            schrieb am zuletzt editiert von
            #5

            @johannes-bauerstatter Hast Du mal einen log-Block eingebaut in die

            on (id_Verbrauch1, function ()
            {   
            

            Funktion? Damit man sieht, ob das überhaupt alle 5 Sek getriggert wird? Es sieht für mich so aus, als ob das nicht passiert...

            Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

            1 Antwort Letzte Antwort
            0
            • Johannes BauerstatterJ Johannes Bauerstatter

              @ahnungsbefreit Das ist die Einspeisung meiner PV-Anlage. Dieser Wert ändert sich ca. alle 5 Sek.

              @ente34 Vielen Dank werd ich ändern, wobei dieser Teil ja funktionieren muss, sonst würde das Zeitprogramm auch nicht laufen.

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #6

              @johannes-bauerstatter said in einfaches Script will nicht....:

              @ahnungsbefreit Das ist die Einspeisung meiner PV-Anlage. Dieser Wert ändert sich ca. alle 5 Sek.

              @ente34 Vielen Dank werd ich ändern, wobei dieser Teil ja funktionieren muss, sonst würde das Zeitprogramm auch nicht laufen.

              Das sind die Tücken von Javascript
              Durch das = wird der Wert true der variable Warmwasser zugewiesen.
              Diese Zuweisung erzeugt in Javascript einen truthy-Wert
              https://developer.mozilla.org/de/docs/Glossary/Truthy
              Daher der Wahrteil dieser Prüfung wird immer,immer,immer ausgeführt

              if (Warmwasser = true)
              

              falls es dann immer noch nicht funktioniert, musst du schauen ob im Datenpunkt Warmwasser wirklich der bool-Wert true/false steht oder evtl nur der Text "true" / "false"
              61fef3d6-b425-448a-b5ae-ffbf88fcb1d4-image.png

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

              Johannes BauerstatterJ 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @johannes-bauerstatter said in einfaches Script will nicht....:

                @ahnungsbefreit Das ist die Einspeisung meiner PV-Anlage. Dieser Wert ändert sich ca. alle 5 Sek.

                @ente34 Vielen Dank werd ich ändern, wobei dieser Teil ja funktionieren muss, sonst würde das Zeitprogramm auch nicht laufen.

                Das sind die Tücken von Javascript
                Durch das = wird der Wert true der variable Warmwasser zugewiesen.
                Diese Zuweisung erzeugt in Javascript einen truthy-Wert
                https://developer.mozilla.org/de/docs/Glossary/Truthy
                Daher der Wahrteil dieser Prüfung wird immer,immer,immer ausgeführt

                if (Warmwasser = true)
                

                falls es dann immer noch nicht funktioniert, musst du schauen ob im Datenpunkt Warmwasser wirklich der bool-Wert true/false steht oder evtl nur der Text "true" / "false"
                61fef3d6-b425-448a-b5ae-ffbf88fcb1d4-image.png

                Johannes BauerstatterJ Offline
                Johannes BauerstatterJ Offline
                Johannes Bauerstatter
                schrieb am zuletzt editiert von
                #7

                Danke an Alle für die Tips und Hinweise.

                Habs jetzt umgestellt und es läuft:

                const id_Verbrauch = '0_userdata.0.Verbräuche.Differenzverbrauch';
                const id_Warmwasser = 'sonoff.0.S4 Warmwasser.POWER';
                
                //Variable ein per Zeitprogramm
                schedule('15 11 * * *', function() 
                    {setState(id_Warmwasser, true);
                    sendTo('telegram.0', 'send', {text: 'Wasser ein Zeit'});});
                
                //Variable aus per Zeitprogramm
                schedule('15 18 * * *', function() 
                    {setState(id_Warmwasser, false);
                    sendTo('telegram.0', 'send', {text: 'Wasser aus Zeit'});});
                
                //Variable ein per Verbrauch
                on (id_Verbrauch, function ()
                {   var Verbrauch = getState(id_Verbrauch).val; 
                    if (Verbrauch < -500)
                    {setState(id_Warmwasser, true);}
                });
                
                
                OliverIOO 1 Antwort Letzte Antwort
                0
                • Johannes BauerstatterJ Johannes Bauerstatter

                  Danke an Alle für die Tips und Hinweise.

                  Habs jetzt umgestellt und es läuft:

                  const id_Verbrauch = '0_userdata.0.Verbräuche.Differenzverbrauch';
                  const id_Warmwasser = 'sonoff.0.S4 Warmwasser.POWER';
                  
                  //Variable ein per Zeitprogramm
                  schedule('15 11 * * *', function() 
                      {setState(id_Warmwasser, true);
                      sendTo('telegram.0', 'send', {text: 'Wasser ein Zeit'});});
                  
                  //Variable aus per Zeitprogramm
                  schedule('15 18 * * *', function() 
                      {setState(id_Warmwasser, false);
                      sendTo('telegram.0', 'send', {text: 'Wasser aus Zeit'});});
                  
                  //Variable ein per Verbrauch
                  on (id_Verbrauch, function ()
                  {   var Verbrauch = getState(id_Verbrauch).val; 
                      if (Verbrauch < -500)
                      {setState(id_Warmwasser, true);}
                  });
                  
                  
                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #8

                  @johannes-bauerstatter

                  damit es bei komplexeren skripten besser lesbar (auch für andere) ist
                  schau dir mal den style guide für javascript an.
                  Deiner Klammersetzung ist nicht so optimal
                  https://www.w3schools.com/js/js_conventions.asp

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

                  1 Antwort Letzte Antwort
                  0

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  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

                  328

                  Online

                  32.9k

                  Benutzer

                  83.0k

                  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