Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Fritz dect - drei Heizungsthermostate mit einem Widget steuern

    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

    [gelöst] Fritz dect - drei Heizungsthermostate mit einem Widget steuern

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

      Hallo zusammen,

      bin leicht am verzweifeln mit dem Skripten. Folgendes möchte ich gerne realisieren.

      Ich habe in einem Raum "Wohnzimmer" drei Heizungsthermostate (Heizung1, Heizung2, Heizung3) die ich gerne mit folgendem hqwidget steuern möchte:

      ~~![](</s><URL url=)http://forum.iobroker.net/download/file.php?id=17986" />

      Leider bietet das Plugin "fritz dect" nicht die Möglichkeit Heater Groups zu steuern, dann wäre das sehr komfortabel ohne skript möglich.

      Folgendes soll das skript können:

      1. eingestellte Soll-Temperatur rechts anzeigen (wo NaN°C im Screenshot steht)

      2. über das drehen am Widget soll die Soll-Temperatur aller Heizkörper geändert werden

      3. die Ist-Temperatur soll in der Mitte (wo 19°C im Screenshot steht), es reicht hier den Wert der Heizung1 anzuzeigen, der Mittelwert wäre natürlich delux

      Hoffe es kann mir jemand helfen?~~ 4571_widget.jpg

      1 Reply Last reply Reply Quote 0
      • Scrounger
        Scrounger Developer last edited by

        Sodele, es hat ein bissle gedauert, aber ich habe es hinbekommen 🙂

        <u>Raumtemperatur ermitteln (Mittelwert aller 3 Heizungsthermostate)</u>:

        Zuerst hab ich mir ein Objekt angelegt, in dem die Raumtermperatur gespeichert wird:
        4571_objekt_room_temp.jpg

        Mit folgendem Skript wird dann von jedem Heizungsthermostate die aktuelle Temperatur ausgelesen und der Mittelwert berechnet und im oben angelegten Objekt gespeichert

        `// durchschnittliche Temperatur aller Thermostate ermitteln
        
        // Ids aller Thermostate (Wert .temp) im Raum Wohnzimmer
        var liste = ["thermostatId1.temp","thermostatId2.temp","thermostatId3.temp"];
        
        //Listener für Wert .temp aller Thermostate
        on({id: liste},
        function(){
            // Mittelwert berechnen
            var middletemp = 0;
            for (var i=0; i<liste.length;i++) {/middletemp="middletemp" +/getstate(liste[i]).val;/}/liste.length;/objekt/var/setzen,/wird/im/vis/widget/verwendet/setstate("hzg.0.wz.roomtemp",/middletemp);/console.log("objekt/'hzg.0.wz.roomtemp'/set/to:/"/})<e=""></liste.length;i++)>`
        
        <u>~~[u]~~**~~[b]~~VIS mit HQwidget:[/b]**[/u]</u>:
        
        Im vis habe ich für den Schalter die thermostatId1.targettemp hinterlegt.  Bei Ist ID habe ich das Objekt für die Raumtemperatur hinterlegt.
         ![4571_vis_widget_settings.jpg](/assets/uploads/files/4571_vis_widget_settings.jpg) 
        
        Das Thermostat mit der Id 'thermostatId1' fungiert als Master-Thermostat. D.h. wenn sich dort die targetTemp ändert, werden alle anderen Thermostat ebenfalls auf diesen neuen Wert verändert. Das bringt den Vorteil, dass man direkt am Master-Thermostat per Hand die Temperatur ändern kann und alle anderen Thermostate werden dann auch gleich mit verändert.
        
        Realisiert habe ich das über folgendes Skript:
        `~~[code]~~// TargetTemp für alle Thermostate festlegen, sobald TargetTemp vom Master-Thermostat ändert
        
        var masterTargetTempId = "thermostatId1.targettemp";
        
        var slavesTargetTempIds = ["thermostatId2.targettemp", "thermostatId3.targettemp"];
        
        // Listener für Wert .targettemp des Master Thermostat
        on({id: masterTargetTempId},
        function(){
        
            // TargetTemp vom Master Thermostat lesen
            var targetTemp = getState(masterTargetTempId).val
            console.log("Master targetTemp changed to: " +  targetTemp);
        
            // TargetTemp für alle Slaves setzen
            for (var i=0; i<slavestargettempids.length;i++) {/setstate(slavestargettempids[i],/targettemp);/console.log("slave/'"/+/slavestargettempids[i]/"'/targettemp/changed/to:/"/}/})<e=""></slavestargettempids.length;i++)>`[/i][/i][/code][/i]
        
        1 Reply Last reply Reply Quote 0
        • Webranger
          Webranger last edited by

          Darf ich fragen welche Heizkörperthermostate du benutzt?

          1 Reply Last reply Reply Quote 0
          • Scrounger
            Scrounger Developer last edited by

            Eurotronic Comet 300 und Fritz!DECT 301

            1 Reply Last reply Reply Quote 0
            • F
              foxthefox Developer last edited by

              Die Heater Groups sind übrigens in der Version 0.1.0 vom fritzdect nun drin.

              Hat mich einiges an Nerven gekostet, aber nun brauchts kein Script mehr.

              Wenn keine Probleme mehr gemeldet werden, werde ich ihn demnächst auf npm veröffentlichen.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              833
              Online

              31.7k
              Users

              79.8k
              Topics

              1.3m
              Posts

              3
              5
              1546
              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