Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage] Auslesen bestimmter States

    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

    [Frage] Auslesen bestimmter States

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

      Hallo zusammen,

      bin absoluter Javascript Neuling, mit php würde ich es bestimmt hinbekommen.

      und zwar würde ich gerne meine HM-CC-RT-DN von bestimmten Räumen (Wohnzimmer, Flur, Küche, Bad) auslesen, bzw dort brauche ich die Eingestellten Temperaturen, diese würde ich in einem Array speichern. wenn eine bestimmte Bedingung erfüllt ist würde ich diese Werte um 1°C erhöhen und an die Thermostate übergeben.

      mein größtes Problem ist das einlesen aller Thermostate, da habe ich momentan gedanklich noch kein Ansatz.

      Vielleicht mag mir ja einer helfen 😉

      Viele Grüße

      Dominique

      1 Reply Last reply Reply Quote 0
      • Peoples
        Peoples last edited by

        Hi Dominique,

        so in etwa?:

        var Thermostate = [];
              Thermostate[0] = "hm-rpc.0.MEQXXXXXXX";  // Hier nur deine GeräteID
              Thermostate[1] = "hm-rpc.0.MEQXXXXXXX"; // Hier nur deine GeräteID
              Thermostate[2] = "hm-rpc.0.MEQXXXXXXX"; // Hier nur deine GeräteID
        //   ...
        //   Thermostate[99] = .....
        
        function WerteErhoehen (){
            Thermostate.forEach(function(ID) {
                    setState(ID+'.4.SET_TEMPERATURE',getState(ID+'.4.SET_TEMPERATURE').val + 1);
                    //log(getState(ID+'.4.SET_TEMPERATURE').val + 1);
            });
            setState("Dein Auslöse Datenpunkt",false);  //Datenpunkt wieder zurück setzen
        }
        
        //Wenn deine bestimmte Bedingung ein Datenpunkt wäre könntest du es so machen:
        on({id:"Dein Auslöse Datenpunkt",  val: true}, function (obj) {
            WerteErhoehen();
        });
        
        

        Gruß

        Steffen

        1 Reply Last reply Reply Quote 0
        • Z
          znyde last edited by

          Danke!

          ja so in etwa kommt es schon hin,

          richtig nice wäre ein array zu bilden mit den räumen die betroffen sind

          raum[0] = "Wohnzimmer";

          raum[1] = "Flur";

          raum[2] = "Schlafzimmer";

          …

          ...

          ...

          alle Thermostate im system einlesen, mit der Raumzuordnung (keine ahnung ob es möglich ist) array[thermostate][raum]

          dieses array für eine abfrage benutzen

          if (array[thermostate][raum] == array[raum])

          {

          if (aussentemp<5)

          {

          gefundenes Thermostat um 1°C erhöhen

          }

          elseif (aussentemp <4)

          {

          gefundenes Thermostat um 2°C erhöhen

          }

          }

          hoffe ich hab es verständlich erklärt :roll:

          aber deinen code werde ich aufjedenfall mal ausprobieren

          VG

          Dominique

          1 Reply Last reply Reply Quote 0
          • Peoples
            Peoples last edited by

            Hi Dominique,

            ich könnte mir schon vorstellen dass dies möglich ist, jedoch überschreitet das meine Kenntnisse hier bräuchte man dann die wirklichen Profis sorry.

            Es gibt hier ein Heizungsthermostat - Steuerungsscript von looxer01 http://forum.iobroker.net/viewtopic.php?f=21&t=10096 vielleicht kannst du dir hier die ein oder andere Inspiration hohlen.

            Gruß

            Steffen

            1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active last edited by

              Dieses Script nutze ich um mir per telegram alle Heizkörper mit Soll und Ist-Temp darzustellen.

                 if (vEingabe == "/Heizung") {
                      var cacheSelectorLevel = $('channel[state.id=*.SET_TEMPERATURE](functions="Heizung")');
                      var atext = [];
                      vText= "";
              
                      cacheSelectorLevel.each(function (id, i) { 
                          var name = getObject(id).common.name;
                          var devicename = name.substring(0, name.indexOf(".SET_TEMPERATURE")); //.set_temperature aus Text entfernen
                          var hm = id.substring(0, id.indexOf(".SET_TEMPERATURE"));   // Variablenname
                          var Temp_soll = getState(id).val;     
                          var Temp_akt =  getState(hm+ '.ACTUAL_TEMPERATURE').val;
                          vText = devicename + '; --> ' + Temp_soll + '°C; ' + Temp_akt + '°C';
                          vText = vText.replace(/Heizung: /g, '');      
                          atext.push(vText);  
                      });
                      atext.sort();
                      vText = "Heizung:       Temperatur: Soll; Ist" + "\n--------------------------------------------------------" + "\n";
                      for (x=0; x < atext.length; x=x+1){
                          vText = vText + atext[x] + '\n';
                      }
                      sendTo('telegram', vText); 
                  }
              
              

              Davon kannst du bestimmt etwas gebrauchen.

              mfg

              Dieter

              1 Reply Last reply Reply Quote 0
              • Z
                znyde last edited by

                habe schonmal einen kleinen Teil hinbekommen.

                vielen dank euch beiden.

                var vrooms = ["Wohnzimmer", "Esszimmer", "Keller_Buero"];
                var selectedIDs = [];
                var aussentemperatur = [];
                var selectedIDs_aussen = [];
                for (var f=0, j=vrooms.length; f
                

                jetzt möchte ich die selecteIDs nur erhöhen wenn die aussentemperatur <5°C ist. so gesehen ist das ja kein Problem, nur müsste ich irgendwie die alten Temperaturen speichern damit sich das system nicht hochschaukelt.

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

                Support us

                ioBroker
                Community Adapters
                Donate

                556
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                3
                6
                822
                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