Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Homematic Heizkörperthermostate gehen in Auto-Modus

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Homematic Heizkörperthermostate gehen in Auto-Modus

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 3 Posters 503 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Jens KatheJ Offline
    Jens KatheJ Offline
    Jens Kathe
    wrote on last edited by
    #1

    Guten Abend,

    zur Steuerung meiner Homematic Heizkörperthermostate anhand des Status der Fenster im Raum, habe ich eigene Funk-Fensterkontakte entwickelt. Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.
    Der Fensterkontakt liefert dem ioBroker je nach Fensterstatus ein "close" oder "open". Für jeden Raum in meinem Haus gibt es dann eine zusammenfassende User-Variable (wichtig für Räume mit mehreren Fenstern), welche auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind. Abhängig von dem Status dieser Raum-Variablen setze ich die Heizkörperthermostate im Raum entweder auf 5°C wenn die Fenster auf sind oder auf den Auto-Modus wenn die Fenster zu sind.

    // Bath downstairs
    on({id: [].concat(['0_userdata.0.Window.BathDownstairs']), change: "ne"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("0_userdata.0.Window.BathDownstairs").val == '0') {
        setStateDelayed('hm-rpc.0.MEQ1587544.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ1587544.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
      } else if (getState("0_userdata.0.Window.BathDownstairs").val == '1') {
        setStateDelayed('hm-rpc.0.MEQ1587544.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
      }
    });
    

    Für Räume mit nur einem Heizkörperthermostat funktioniert das auch sehr gut und das schon seit einigen Wochen.

    Problematisch ist es jedoch bei Räumen, in denen mehrere Heizkörperthermostate und ein Raumthermostat (auch Homematic) sind. Für das Wohnzimmer sieht das Skript da z.B. so aus:

    // Livingroom/kitchen
    on({id: [].concat(['0_userdata.0.Window.Livingroom']), change: "ne"}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (getState("0_userdata.0.Window.Livingroom").val == '0') {
          setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.NEQ0311531.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200930.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ1587567.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200913.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ0048839.2.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.NEQ0311531.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200930.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ1587567.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200913.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ0048839.2.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
      } else if (getState("0_userdata.0.Window.Livingroom").val == '1') {
        setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
      }
    });
    

    In den meisten Fällen funktioniert es einfach gar nicht und die Heizkörperthermostate bleiben einfach in dem Zustand in dem sie gerade sind. Wenn es jedoch doch funktioniert, dann setzen sich die Heizkörperthermostate nach kurzer oder etwas längerer Zeit von selbst wieder zurück auf die im Auto-Modus eingestellte Temperatur. Der Manu-Modus bleibt jedoch aktiviert.

    Könnt ihr mir da weiterhelfen?

    David G.D paul53P 3 Replies Last reply
    0
    • Jens KatheJ Jens Kathe

      Guten Abend,

      zur Steuerung meiner Homematic Heizkörperthermostate anhand des Status der Fenster im Raum, habe ich eigene Funk-Fensterkontakte entwickelt. Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.
      Der Fensterkontakt liefert dem ioBroker je nach Fensterstatus ein "close" oder "open". Für jeden Raum in meinem Haus gibt es dann eine zusammenfassende User-Variable (wichtig für Räume mit mehreren Fenstern), welche auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind. Abhängig von dem Status dieser Raum-Variablen setze ich die Heizkörperthermostate im Raum entweder auf 5°C wenn die Fenster auf sind oder auf den Auto-Modus wenn die Fenster zu sind.

      // Bath downstairs
      on({id: [].concat(['0_userdata.0.Window.BathDownstairs']), change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("0_userdata.0.Window.BathDownstairs").val == '0') {
          setStateDelayed('hm-rpc.0.MEQ1587544.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ1587544.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        } else if (getState("0_userdata.0.Window.BathDownstairs").val == '1') {
          setStateDelayed('hm-rpc.0.MEQ1587544.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        }
      });
      

      Für Räume mit nur einem Heizkörperthermostat funktioniert das auch sehr gut und das schon seit einigen Wochen.

      Problematisch ist es jedoch bei Räumen, in denen mehrere Heizkörperthermostate und ein Raumthermostat (auch Homematic) sind. Für das Wohnzimmer sieht das Skript da z.B. so aus:

      // Livingroom/kitchen
      on({id: [].concat(['0_userdata.0.Window.Livingroom']), change: "ne"}, async function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("0_userdata.0.Window.Livingroom").val == '0') {
            setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.NEQ0311531.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200930.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ1587567.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200913.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ0048839.2.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.NEQ0311531.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200930.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ1587567.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200913.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ0048839.2.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
        } else if (getState("0_userdata.0.Window.Livingroom").val == '1') {
          setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
          setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
        }
      });
      

      In den meisten Fällen funktioniert es einfach gar nicht und die Heizkörperthermostate bleiben einfach in dem Zustand in dem sie gerade sind. Wenn es jedoch doch funktioniert, dann setzen sich die Heizkörperthermostate nach kurzer oder etwas längerer Zeit von selbst wieder zurück auf die im Auto-Modus eingestellte Temperatur. Der Manu-Modus bleibt jedoch aktiviert.

      Könnt ihr mir da weiterhelfen?

      David G.D Offline
      David G.D Offline
      David G.
      wrote on last edited by David G.
      #2

      @jens-kathe

      Hast du mal probiert die ganzen Thermostate als Gruppe zu schalten?

      Ich habe zwar nur 3 Thermostate in meiner größten Gruppe, jedoch klappt da alles wenn ich es in meiner Visualisierung über die Gruppe stelle.

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      1 Reply Last reply
      0
      • Jens KatheJ Offline
        Jens KatheJ Offline
        Jens Kathe
        wrote on last edited by
        #3

        Ich habe sie zwar gruppiert, aber noch nicht versucht es darüber zu machen. Bisher konnte ich die Gruppe noch nicht offensichtlich im ioBroker Adapter finden. Ist denn mein grundsätzliches Vorgehen so richtig? Also das ich erstmal den Auto-Modus wieder auf "false" setze, dann die Manu-Temperatur einstelle und dann noch den Manu-Modus aktiviere? Oder ist das theoretisch alles doppelt gemoppelt?

        paul53P David G.D 2 Replies Last reply
        0
        • Jens KatheJ Jens Kathe

          Ich habe sie zwar gruppiert, aber noch nicht versucht es darüber zu machen. Bisher konnte ich die Gruppe noch nicht offensichtlich im ioBroker Adapter finden. Ist denn mein grundsätzliches Vorgehen so richtig? Also das ich erstmal den Auto-Modus wieder auf "false" setze, dann die Manu-Temperatur einstelle und dann noch den Manu-Modus aktiviere? Oder ist das theoretisch alles doppelt gemoppelt?

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by paul53
          #4

          @jens-kathe sagte: Auto-Modus wieder auf "false" setze, dann die Manu-Temperatur einstelle und dann noch den Manu-Modus aktiviere?

          Nur MANU_MODE aktivieren! Die Rückmeldung erfolgt im CONTROL_MODE und in SET_TEMPERATURE. Der CONTROL_MODE ist "read only".

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Reply Last reply
          0
          • Jens KatheJ Jens Kathe

            Ich habe sie zwar gruppiert, aber noch nicht versucht es darüber zu machen. Bisher konnte ich die Gruppe noch nicht offensichtlich im ioBroker Adapter finden. Ist denn mein grundsätzliches Vorgehen so richtig? Also das ich erstmal den Auto-Modus wieder auf "false" setze, dann die Manu-Temperatur einstelle und dann noch den Manu-Modus aktiviere? Oder ist das theoretisch alles doppelt gemoppelt?

            David G.D Offline
            David G.D Offline
            David G.
            wrote on last edited by
            #5

            @jens-kathe sagte in Homematic Heizkörperthermostate gehen in Auto-Modus:

            Ich habe sie zwar gruppiert, aber noch nicht versucht es darüber zu machen. Bisher konnte ich die Gruppe noch nicht offensichtlich im ioBroker Adapter finden. Ist denn mein grundsätzliches Vorgehen so richtig? Also das ich erstmal den Auto-Modus wieder auf "false" setze, dann die Manu-Temperatur einstelle und dann noch den Manu-Modus aktiviere? Oder ist das theoretisch alles doppelt gemoppelt?

            Für die Gruppen musst du eine eigene Instanz vom rpc anlegen.

            Dort als Daemon "Virtual Devices" auswählen.

            Zeigt eure Lovelace-Visualisierung klick
            (Auch ideal um sich Anregungen zu holen)

            Meine Tabellen für eure Visualisierung klick

            1 Reply Last reply
            0
            • Jens KatheJ Jens Kathe

              Guten Abend,

              zur Steuerung meiner Homematic Heizkörperthermostate anhand des Status der Fenster im Raum, habe ich eigene Funk-Fensterkontakte entwickelt. Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.
              Der Fensterkontakt liefert dem ioBroker je nach Fensterstatus ein "close" oder "open". Für jeden Raum in meinem Haus gibt es dann eine zusammenfassende User-Variable (wichtig für Räume mit mehreren Fenstern), welche auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind. Abhängig von dem Status dieser Raum-Variablen setze ich die Heizkörperthermostate im Raum entweder auf 5°C wenn die Fenster auf sind oder auf den Auto-Modus wenn die Fenster zu sind.

              // Bath downstairs
              on({id: [].concat(['0_userdata.0.Window.BathDownstairs']), change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if (getState("0_userdata.0.Window.BathDownstairs").val == '0') {
                  setStateDelayed('hm-rpc.0.MEQ1587544.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ1587544.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                } else if (getState("0_userdata.0.Window.BathDownstairs").val == '1') {
                  setStateDelayed('hm-rpc.0.MEQ1587544.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                }
              });
              

              Für Räume mit nur einem Heizkörperthermostat funktioniert das auch sehr gut und das schon seit einigen Wochen.

              Problematisch ist es jedoch bei Räumen, in denen mehrere Heizkörperthermostate und ein Raumthermostat (auch Homematic) sind. Für das Wohnzimmer sieht das Skript da z.B. so aus:

              // Livingroom/kitchen
              on({id: [].concat(['0_userdata.0.Window.Livingroom']), change: "ne"}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if (getState("0_userdata.0.Window.Livingroom").val == '0') {
                    setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.NEQ0311531.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200930.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ1587567.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200913.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ0048839.2.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.NEQ0311531.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200930.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ1587567.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200913.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ0048839.2.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                } else if (getState("0_userdata.0.Window.Livingroom").val == '1') {
                  setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                  setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                }
              });
              

              In den meisten Fällen funktioniert es einfach gar nicht und die Heizkörperthermostate bleiben einfach in dem Zustand in dem sie gerade sind. Wenn es jedoch doch funktioniert, dann setzen sich die Heizkörperthermostate nach kurzer oder etwas längerer Zeit von selbst wieder zurück auf die im Auto-Modus eingestellte Temperatur. Der Manu-Modus bleibt jedoch aktiviert.

              Könnt ihr mir da weiterhelfen?

              paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              @jens-kathe sagte: auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind.

              Als Zahl oder als String? Mit Zahl:

              Bild_2022-09-26_212435244.png

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              Jens KatheJ 1 Reply Last reply
              0
              • paul53P paul53

                @jens-kathe sagte: auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind.

                Als Zahl oder als String? Mit Zahl:

                Bild_2022-09-26_212435244.png

                Jens KatheJ Offline
                Jens KatheJ Offline
                Jens Kathe
                wrote on last edited by
                #7

                @paul53 Als Zahl.
                Ich werde das nachher mal ausprobieren und gebe euch dann Rückmeldung

                1 Reply Last reply
                0
                • Jens KatheJ Jens Kathe

                  Guten Abend,

                  zur Steuerung meiner Homematic Heizkörperthermostate anhand des Status der Fenster im Raum, habe ich eigene Funk-Fensterkontakte entwickelt. Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.
                  Der Fensterkontakt liefert dem ioBroker je nach Fensterstatus ein "close" oder "open". Für jeden Raum in meinem Haus gibt es dann eine zusammenfassende User-Variable (wichtig für Räume mit mehreren Fenstern), welche auf 0 gesetzt wird sobald ein Fenster auf ist und auf 1 sobald alle Fenster wieder zu sind. Abhängig von dem Status dieser Raum-Variablen setze ich die Heizkörperthermostate im Raum entweder auf 5°C wenn die Fenster auf sind oder auf den Auto-Modus wenn die Fenster zu sind.

                  // Bath downstairs
                  on({id: [].concat(['0_userdata.0.Window.BathDownstairs']), change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    if (getState("0_userdata.0.Window.BathDownstairs").val == '0') {
                      setStateDelayed('hm-rpc.0.MEQ1587544.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ1587544.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                    } else if (getState("0_userdata.0.Window.BathDownstairs").val == '1') {
                      setStateDelayed('hm-rpc.0.MEQ1587544.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                    }
                  });
                  

                  Für Räume mit nur einem Heizkörperthermostat funktioniert das auch sehr gut und das schon seit einigen Wochen.

                  Problematisch ist es jedoch bei Räumen, in denen mehrere Heizkörperthermostate und ein Raumthermostat (auch Homematic) sind. Für das Wohnzimmer sieht das Skript da z.B. so aus:

                  // Livingroom/kitchen
                  on({id: [].concat(['0_userdata.0.Window.Livingroom']), change: "ne"}, async function (obj) {
                    var value = obj.state.val;
                    var oldValue = obj.oldState.val;
                    if (getState("0_userdata.0.Window.Livingroom").val == '0') {
                        setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', false, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.NEQ0311531.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200930.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ1587567.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200913.4.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ0048839.2.MANU_MODE', 5, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.NEQ0311531.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200930.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ1587567.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200913.4.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ0048839.2.CONTROL_MODE', "MANU-MODE", false, parseInt(((0) || "").toString(), 10), false);
                    } else if (getState("0_userdata.0.Window.Livingroom").val == '1') {
                      setStateDelayed('hm-rpc.0.NEQ0311531.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200930.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ1587567.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.LEQ1200913.4.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                      setStateDelayed('hm-rpc.0.MEQ0048839.2.AUTO_MODE', true, false, parseInt(((0) || "").toString(), 10), false);
                    }
                  });
                  

                  In den meisten Fällen funktioniert es einfach gar nicht und die Heizkörperthermostate bleiben einfach in dem Zustand in dem sie gerade sind. Wenn es jedoch doch funktioniert, dann setzen sich die Heizkörperthermostate nach kurzer oder etwas längerer Zeit von selbst wieder zurück auf die im Auto-Modus eingestellte Temperatur. Der Manu-Modus bleibt jedoch aktiviert.

                  Könnt ihr mir da weiterhelfen?

                  David G.D Offline
                  David G.D Offline
                  David G.
                  wrote on last edited by
                  #8

                  @jens-kathe sagte in Homematic Heizkörperthermostate gehen in Auto-Modus:

                  Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.

                  Warum wechselst du zu deiner Eigenentwicklung wenn Homatic bereits verbaut war?
                  Läuft bei mir sowas von stabil, dass mir eigentlich kein Grund einfällt (abgesehen vom Preis).

                  Zeigt eure Lovelace-Visualisierung klick
                  (Auch ideal um sich Anregungen zu holen)

                  Meine Tabellen für eure Visualisierung klick

                  Jens KatheJ 1 Reply Last reply
                  1
                  • David G.D David G.

                    @jens-kathe sagte in Homematic Heizkörperthermostate gehen in Auto-Modus:

                    Ich weiß es gibt auch welche von Homematic, welche ich auch erst im Einsatz hatte, aber nach und nach möchte ich Homematic durch eine Eigenentwicklung ablösen.

                    Warum wechselst du zu deiner Eigenentwicklung wenn Homatic bereits verbaut war?
                    Läuft bei mir sowas von stabil, dass mir eigentlich kein Grund einfällt (abgesehen vom Preis).

                    Jens KatheJ Offline
                    Jens KatheJ Offline
                    Jens Kathe
                    wrote on last edited by
                    #9

                    @david-g Der Spaß es selbst zu machen ;-)

                    1 Reply Last reply
                    0
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    678

                    Online

                    32.6k

                    Users

                    82.3k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe