Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Alle Thermostate mit neuem Partymodus updaten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Alle Thermostate mit neuem Partymodus updaten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 4 Kommentatoren 1.5k Aufrufe
  • Ä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.
  • D Offline
    D Offline
    destulp
    schrieb am zuletzt editiert von
    #1

    Moin!

    Ich, Neuling in der Materie, bin auf der Suche nach Hilfe.

    Ich versuche folgendes umzusetzte:

    Ich möchte per Skript, in meinem Fall in Blockly gebaut (siehe Bild, oder als Code im P.S.), alle meine Heizkörperthermostate per PARTY_MODE_SUBMIT auf eine geplante längere Abwesenheit vorbereiten.

    1715_urlaub.jpg

    Ich habe KEINE Wandthermostate, sondern "nur" 26 Heizkörperthermostate und eine CCU2 im Einsatz.

    Mein Probleme ist nun folgende:

    1. Wenn ich das Script anstoße, dann bekomme ich in der CCU einen Haufen Servicemeldungen, das die Kommunikation gestört sein.

    2. Die Daten kommen nicht bei den Thermostaten an. (Nervt am meisten)

    3. Die CCU weigert sich, auch wenn alle Servicemeldungen wieder weg sind, eine ganze Zeit lang andere Befehle an die Thermostate zu senden. Immer wieder ist die Kommunikation gestört, auch bei einzelnen Befehlen an nur ein Gerät.

    Ich hoffe hier kann mir jemand den ein oder anderen Tip geben.

    Viele Grüße

    DeStulp

    P.S.:

    ! var DELAY, Check_Datum, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Pre_fix, Post_fix, TempListe_Urlaub, WERTE_URLAUB_AUS, Timer01, i, Timer02, k;
    ! DELAY = 10000;
    ! Check_Datum = false;
    ! Temp_Urlaub_Baustelle = 8;
    ! Temp_Urlaub_Rest = 15;
    ! Pre_fix = ['hm-rpc.0.MEQxxx1761', 'hm-rpc.0.MEQxxx3589', 'hm-rpc.0.MEQxxx3590', 'hm-rpc.0.MEQxxx3592', 'hm-rpc.0.MEQxxx3595', 'hm-rpc.0.MEQxxx3599', 'hm-rpc.0.MEQxxx3616', 'hm-rpc.0.MEQxxx3620', 'hm-rpc.0.MEQxxx3637', 'hm-rpc.0.MEQxxx3643', 'hm-rpc.0.MEQxxx3867', 'hm-rpc.0.MEQxxx3873', 'hm-rpc.0.MEQxxx4312', 'hm-rpc.0.MEQxxx4328', 'hm-rpc.0.MEQxxx4819', 'hm-rpc.0.MEQxxx4826', 'hm-rpc.0.MEQxxx5477', 'hm-rpc.0.MEQxxx5655', 'hm-rpc.0.MEQxxx5728', 'hm-rpc.0.MEQxxx6165', 'hm-rpc.0.MEQxxx6171', 'hm-rpc.0.NEQxxx7006', 'hm-rpc.0.NEQxxx7332', 'hm-rpc.0.NEQxxx7339', 'hm-rpc.0.NEQxxx7920', 'hm-rpc.0.NEQxxx0878'];
    ! TempListe_Urlaub = [Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Baustelle, Temp_Urlaub_Baustelle, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Rest, Temp_Urlaub_Baustelle];
    ! on({id: "javascript.0.scriptEnabled.common.Skripte.Set_Urlaub"/Set_Urlaub/, val: true}, function (obj) {
    ! var value = obj.state.val;
    ! var oldValue = obj.oldState.val;
    ! if (getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val).getTime() > (new Date().getTime()) && getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val).getTime() < getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Stop").val).getTime()) {
    ! Check_Datum = true;
    ! Timer01 = DELAY;
    ! var i_end = Pre_fix.length;
    ! var i_inc = 1;
    ! if (1 > i_end) {
    ! i_inc = -i_inc;
    ! }
    ! for (i = 1; i_inc >= 0 ? i <= i_end : i >= i_end; i += i_inc) {
    ! setStateDelayed((String(Pre_fix[(i - 1)]) + String('.4.PARTY_MODE_SUBMIT')), ([String(TempListe_Urlaub[(i - 1)]) + String(','),String((function () {var v = getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val); return v.getHours() * 60 + v.getMinutes();})()) + String(','),String(getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val).getDate()) + String(','),String((getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val).getMonth() + 1)) + String(','),String(parseFloat(getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Start").val).getFullYear()) % 100) + String(','),String((function () {var v = getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Stop").val); return v.getHours() * 60 + v.getMinutes();})()) + String(','),String(getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Stop").val).getDate()) + String(','),String((getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Stop").val).getMonth() + 1)) + String(','),parseFloat(getDateObject(getState("javascript.0.scriptEnabled.common.Skripte.Urlaub_Stop").val).getFullYear()) % 100].join('')), false, parseInt(Timer01, 10), false);
    ! Timer01 = (typeof Timer01 == 'number' ? Timer01 : 0) + DELAY;
    ! }
    ! console.log('URLAUB GESETZT');
    ! } else {
    ! setStateDelayed("javascript.0.scriptEnabled.common.Skripte.Set_Urlaub"/Set_Urlaub/, false, 100, false);
    ! Check_Datum = false;
    ! console.log('URLAUB NICHT GESETZT -> Datumcheck == falsch');
    ! }
    ! });
    ! // Urlaubsmodus AUS erreicht nihct alle Thermostate???
    ! // Frage: Müssen alle Werte gesetzt werden, oder reicht "AUTO_MODUS AN"?
    ! on({id: "javascript.0.scriptEnabled.common.Skripte.Set_Urlaub"/Set_Urlaub/, val: false}, function (obj) {
    ! var value = obj.state.val;
    ! var oldValue = obj.oldState.val;
    ! if (Check_Datum == true) {
    ! Timer02 = DELAY;
    ! var k_end = Pre_fix.length;
    ! var k_inc = 1;
    ! if (1 > k_end) {
    ! k_inc = -k_inc;
    ! }
    ! for (k = 1; k_inc >= 0 ? k <= k_end : k >= k_end; k += k_inc) {
    ! setStateDelayed((String(Pre_fix[(k - 1)]) + String('.4.AUTO_MODE')), true, false, parseInt(Timer02, 10), false);
    ! Timer02 = (typeof Timer02 == 'number' ? Timer02 : 0) + DELAY;
    ! }
    ! console.log('ABSCHALTUNG URLAUB AUSGEFÜHRT');
    ! } else {
    ! console.log('ABSCHALTUNG URLAUB NICHT AUSGEFÜHRT -> Datum Check == FALSCH');
    ! }
    ! });

    1 Antwort Letzte Antwort
    0
    • T Offline
      T Offline
      Tigeradler
      schrieb am zuletzt editiert von
      #2

      Hallo destulp,

      ich kann das nachvollziehen, ich beobachte das gleiche Verhalten, wenn ich den Party-Modus via Skript ansteuern möchte. Mir ist allerdings aufgefallen, dass es nicht durchgehend zu sein scheint. Nach einigen Minuten kann ich kurzfristig wieder Party-Modi-Befehle absetzen - es scheint nicht am Befehl selbst zu liegen.

      Bist Du "damals" damit weitergekommen?

      Meine Homematic-Erfahrungen: http://www.erkenntnis-des-tages.de/category/homematic/

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        steff517
        schrieb am zuletzt editiert von
        #3

        Ich hatte ein ähnliches Problem. Das liegt am duty cycle. Wenn zu viel Daten übertragen werden, sperrt die CCU die Kommunikation für eine Weile, um den Funkkanal freizuhalten.

        1 Antwort Letzte Antwort
        0
        • L Offline
          L Offline
          looxer01
          schrieb am zuletzt editiert von
          #4

          Hi,

          ich beschäftige mich schon eine Zeit lang mit der Steuerung von Thermostaten. (Heizungsscript ist veröffentlicht)

          Beim Heizungsscript habe ich immer auf den DC geachtet. Ausschläge gibt es nur, wenn ich mehrfach hintereinander an alle Thermostate sende.

          Hochgerechnet au deine 26 Thermostate dürfte es bei z.B. einer Temperaturänderung nicht zu einer Überschreitung des DC kommen. (PartyMode Änderungen sind allerdings bei mir nicht vorgesehen , da das Konzept ein anderes ist)- könnte also mit längerer Sendezeit bei der Änderung des Party-Modus zusammenhängen)

          Aus meiner Sicht hast du die folgenden Optionen:

          • du fügst Hardware hinzu, die den DC aufteilt.
          • Das sind z.B. Wandthermostate, die dann mehrere Heizungsthermostate steuern müssten. Ich nehme mal nicht an, dass du 26 Räume hast.

          • Du fügst LAN Adapter hinzu (bei nicht IP-Geräten)

          • du versuchst software technisch den DC in den Griff zu bekommen
          • du Gruppierst die Geräte mit der CCU (wenn es denn keine alten Thermostate sind) und sprichst dann nur jeweils ein Gerät an. Könnte aber sein, dass da ein Problem auftaucht. Ich hatte das mal mit dem Boost Modus. Der wurde zwar weitergereicht, wenn ich den Boost Modus am WT manuell bediene aber nicht per Software. Kommt auf einen Versuch an.

          • du sendest zeitversetzt über Verzögerungen

          vG Looxer

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          304

          Online

          32.6k

          Benutzer

          82.3k

          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