Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Heizungssteuerung

    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

    Heizungssteuerung

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

      Danke für die rasche Hilfe.

      Aber irgendwie hab ich hier einen Hund drinne 🙂

      Leider passiert nämlich nix 🙂

      Anbei 2 Screenshots

      Habe ich irgendwo einen Denkfehler ??

      lg

      Chris
      6416_script.jpg
      6416_aufz.jpg

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

        Ändere die erste Zeile von:var cacheVentile = $('channel(functions=heizungsventile)[state.id=*.valveposition]');in````
        var cacheVentile = $('state(functions=heizungsventile)');

        
        Und versuch es dann nochmal.
        
        Gruß
        1 Reply Last reply Reply Quote 0
        • N
          nolimitek last edited by

          Funktioniert 😄 😄

          Vielen Dank. Erste Baustelle fertig.

          Die restlichen Sachen bekomme ich glaube ich mit Blockly und & Co selbst hin

          Wahnsinns Forum echt

          lg

          Chris

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

            @nolimitek:

            Funktioniert `
            Dann markiere bitta das Thema als gelöst (im Betreff des ersten Beitrags).

            1 Reply Last reply Reply Quote 0
            • N
              nolimitek last edited by

              Zu früh gefreut :twisted:

              Das Script verbläst mi die credits schneller als ich schauen kann 🙂

              Jedes mal wenn sich ein Ventil verändert schickt es einen befehl an den Schalter

              siehe

              fhem.0	2018-03-15 16:34:22.659	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:34:03.517	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:32:40.554	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:32:39.354	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:30:37.377	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:30:35.793	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:29:43.956	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:28:00.133	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:27:58.931	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:23:19.912	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:23:18.668	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:22:11.590	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              fhem.0	2018-03-15 16:15:42.659	info	fhem.0.HA_Heizung_Schalter.state.true ==> writeFHEM: set HA_Heizung_Schalter on
              

              kann man da evtl noch eine if abfrage mit einbauen zb wenn schalter bereits ein dann nichts machen.. wenn schalter aus dann einschalten . In fhem den perl code könnte ich aber in java bin ich noch ne nuss 🙂

              lg

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

                @nolimitek:

                kann man da evtl noch eine if abfrage mit einbauen zb wenn schalter bereits ein dann nichts machen.. wenn schalter aus dann einschalten `
                Kann man.

                const idAktor = "fhem.0.HA_Heizung_Schalter.state";
                
                var cacheVentile = $('state(functions=heizungsventile)');
                var aktor = getState(idAktor).val;
                
                function therme() {
                    var highest = 0;
                
                    cacheVentile.each(function(id) {
                        if (getState(id).val > highest) {
                            highest = getState(id).val;
                        }
                    });
                
                    if (highest <= 30 && aktor) {
                        setState(idAktor, false);
                    }
                    if (highest >= 40 && !aktor) {
                        setState(idAktor, true);
                    }
                }
                
                therme(); // Skriptstart
                
                cacheVentile.on(therme);
                
                on({id: idAktor, ack: true}, function(dp) {
                   aktor = dp.state.val;
                });
                
                1 Reply Last reply Reply Quote 0
                • N
                  nolimitek last edited by

                  Vielen Dank für den super duper Support 🙂

                  Sorry für die späte Rückmeldung. Funktioniert super

                  Habe jetzt in der Zwischenzeit an meiner Fhem Installation etwas gebastelt und iobroker hinten angestellt.

                  Ist es auch möglich statt der Abfrage der Ventilstellung die Temperatur herzunehmen .

                  Also zb so

                  Alle ist Temperaturen wieder in eine Aufzählung.

                  und dann eine Abfrage

                  Soll Temperatur (Ist Temperatur + 0,5 Grad) = Therme ausschalten

                  Soll Temperatur (Ist Temperatur - 0,5 Grad) = Therme einschalten

                  Also zb Soll Temperatur = 22,5 Grad

                  Ist Temperatur ist 23 Grad also Therme ausschalten

                  Ist Temperatur ist 22 Grad als Therme einschalten

                  Vielen Dank für Eure Hilfe vorab

                  Will jetzt demnächst wenn ich alle meine Befehle von Fhem zu Iobroker portieren konnte auf Iobroker komplett umsteigen

                  (Nach der Heizperiode ) 🙂

                  lg

                  Chris

                  N 1 Reply Last reply Reply Quote 0
                  • BuZZy
                    BuZZy last edited by

                    Klar, höchste ist Temperatur feststellen, mit höchster soll Temperatur vergleichen… 😉

                    Gruß

                    1 Reply Last reply Reply Quote 0
                    • N
                      nolimitek @nolimitek last edited by

                      Bin nun endlich dabei von Fhem auf Iobroker umzusteigen

                      Habe nun dieses Script im Einsatz wie oben beschrieben

                      const idAktor = "sonoff.0.DVES_12A646.POWER1";
                       
                      var cacheVentile = $('state(functions=heizungsventile)');
                      var aktor = getState(idAktor).val;
                       
                      function therme() {
                          var highest = 0;
                       
                          cacheVentile.each(function(id) {
                              if (getState(id).val > highest) {
                                  highest = getState(id).val;
                              }
                          });
                       
                          if (highest <= 30 && aktor) {
                              setState(idAktor, false);
                          }
                          if (highest >= 60 && !aktor) {
                              setState(idAktor, true);
                          }
                      }
                       
                      therme(); // Skriptstart
                       
                      cacheVentile.on(therme);
                       
                      on({id: idAktor, ack: true}, function(dp) {
                         aktor = dp.state.val;
                      });
                      

                      Ansich sollte der Schalter erst unter 30 Prozentt Ventilöffnung ausschalten
                      Er schaltet aber bereits früher ab. Soeben waren noch 2 Thermostet über 30% Ventilöffnung und das Script hat den Schalter aber ausgeschalten

                      Jemand eine Idee warum dem so ist

                      besten Dank

                      lg
                      Chris

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

                        @nolimitek
                        Der Selektor ist richtig ?
                        Kann getestet werden mit

                        $('state(functions=heizungsventile)').each(function(id, i) {
                           log(id);
                        });
                        
                        N 1 Reply Last reply Reply Quote 0
                        • N
                          nolimitek @paul53 last edited by

                          @paul53

                          Danke für die rasche Antwort.
                          Was meinst du mit Selektor ?

                          lg

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

                            @nolimitek sagte:

                            Was meinst du mit Selektor ?

                            Der Ausdruck mit dem $ nennt sich Selektor.

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

                              @paul53

                              Da kommt dann im Log folgendes.
                              Das Script hat doch mit den anderen Blocklys gar nichts zu tun . ???

                              javascript.0	2020-12-30 20:12:44.573	info	(5874) script.js.Heizung.Pumpeheizung: registered 10 subscriptions and 0 schedules
                              javascript.0	2020-12-30 20:12:44.571	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.571	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.570	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.570	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.570	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.569	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.569	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.566	info	(5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.526	info	(5874) Start javascript script.js.Heizung.Pumpeheizung
                              javascript.0	2020-12-30 20:12:44.525	info	(5874) script.js.Heizung.WCOBEN_Heizung: registered 10 subscriptions and 0 schedules
                              javascript.0	2020-12-30 20:12:44.524	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.524	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.523	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.523	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.523	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.523	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.523	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.522	info	(5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.508	info	(5874) Start javascript script.js.Heizung.WCOBEN_Heizung
                              javascript.0	2020-12-30 20:12:44.507	info	(5874) script.js.Heizung.Badezimmer_heizung: registered 10 subscriptions and 0 schedules
                              javascript.0	2020-12-30 20:12:44.506	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.505	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.505	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.505	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.504	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.504	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.503	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.503	info	(5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.480	info	(5874) Start javascript script.js.Heizung.Badezimmer_heizung
                              javascript.0	2020-12-30 20:12:44.479	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: registered 9 subscriptions and 2 schedules
                              javascript.0	2020-12-30 20:12:44.474	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.474	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.473	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.473	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.472	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.472	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.471	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.471	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.453	info	(5874) Start javascript script.js.Zeitschaltuhren.Aquarium_Licht1
                              javascript.0	2020-12-30 20:12:44.452	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: registered 9 subscriptions and 2 schedules
                              javascript.0	2020-12-30 20:12:44.444	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.444	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.443	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.443	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.443	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.442	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.442	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.441	info	(5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.413	info	(5874) Start javascript script.js.Zeitschaltuhren.Solar_aus_Nacht
                              javascript.0	2020-12-30 20:12:44.406	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: registered 9 subscriptions and 2 schedules
                              javascript.0	2020-12-30 20:12:44.377	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Wohnzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.377	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Wintergarten.valveposition
                              javascript.0	2020-12-30 20:12:44.376	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Vorraum.valveposition
                              javascript.0	2020-12-30 20:12:44.376	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Kueche.valveposition
                              javascript.0	2020-12-30 20:12:44.375	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Kinderzimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.375	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Gaestezimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.374	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Esszimmer.valveposition
                              javascript.0	2020-12-30 20:12:44.374	info	(5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Buegelzimmer.valveposition
                              
                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @nolimitek last edited by paul53

                                @nolimitek sagte:

                                Da kommt dann im Log folgendes.

                                Das scheint zu passen (8 mal valveposition).
                                FHEM: Ich glaube, der Adapter liefert Strings, die in eine Zahl gewandelt werden müssen.

                                        if (parseFloat(getState(id).val) > highest) {
                                            highest = parseFloat(getState(id).val);
                                        }
                                
                                N 1 Reply Last reply Reply Quote 0
                                • N
                                  nolimitek @paul53 last edited by

                                  @paul53

                                  Ahhh das wirds sein . Hatte das bereits bei einem anderen Script das ich in Blockly gemacht habe. Da musste auch in Zahl geändert werden.

                                  Ich teste das mal . Besten Dank für deine Hilfe.
                                  Wenn ich den Fhem Adapter deaktiviere und die Heizungsthermostate direkt in iobroker anlege (letzte Baustelle) kann ich das Script so weiterlaufen lassen oder wieder retour stellen ?

                                  Danke

                                  lg
                                  Chris

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

                                    @nolimitek sagte:

                                    kann ich das Script so weiterlaufen lassen oder wieder retour stellen ?

                                    parseFloat() funktioniert auch mit Zahlen, verbraucht nur unnötig Ressourcen.

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

                                      @paul53 Alles klar dann stelle ich es wieder zurück sobald die Thermostate direkt in Iobroker sind.

                                      Eine letzte Frage hätte ich noch 🙂
                                      Ich möchte das Script vormittags von 05:00 bis 06:00 deaktivieren und für diese Stunde die Heizung einschalten da ich das Warmwasser aufheizen möchte.

                                      Einfach über ein Blockly deaktivieren oder ginge das im Script direkt

                                      Danke

                                      lg
                                      Chris

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

                                        @nolimitek sagte:

                                        ginge das im Script direkt

                                        Ich würde es auf jeden Fall im Script machen.

                                        var warmwasser = compareTime('05:00', '06:00', 'between');
                                        
                                        function therme() {
                                            if(warmwasser) setState(idAktor, true);
                                            else {
                                                // bisherige Funktion
                                        

                                        und am Ende des Scripts

                                        schedule('0 5 * * *', function() {
                                            warmwasser = true;
                                            therme();
                                        });
                                        schedule('0 6 * * *', function() {
                                            warmwasser = false;
                                            therme();
                                        });
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        697
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        3
                                        24
                                        2936
                                        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