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. ioBroker Allgemein
  4. KNX Heizungsaktor steuern?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    502

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

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

KNX Heizungsaktor steuern?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
4 Beiträge 2 Kommentatoren 984 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.
  • Merlin123M Offline
    Merlin123M Offline
    Merlin123
    schrieb am zuletzt editiert von
    #1

    Ich werde zukünftig einen KNX Heizungsaktor haben, der die Ventile der Heizkörper ansteuert. Die IST-Temperatur kommt von Temperatursensoren in den Tastern in jedem Raum.

    Ich würde jetzt gern pro Raum ein Wochenprogramm erstellen, dass dem Aktor die SOLL-Temperatur pro Raum vorgibt. Wie kann ich das realisieren?

    Beta-Tester

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Ich habe es mit diesen Datenpunkten für Tagesprofile und Wochenprofil
      493_wohnen_profil.jpg
      , diesen Datenpunkten für die Sollwerte
      493_wohnen_sollwerte.jpg
      und mit diesem Skript für jeden Raum gelöst:

      ! ```
      // Sollwert aus akt. Tagesprofil / Abwesenheit / Party ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! var abwid = getIdByName("Abwesenheit.Modus"); // Auto, kurz abwesend, Reise, Aufheizen var partyid = getIdByName(raum + ".Unterbrechung"); // Auto, Manu, Party var akttagid = getIdByName(raum + ".Tagesprofil"); var swabwid = getIdByName(raum + ".SW.Abwesend"); var swheizid = getIdByName(raum + ".SW.Aufheizen"); var swecoid = getIdByName(raum + ".SW.Economy"); var swcomfid = getIdByName(raum + ".SW.Komfort"); var swmanuid = getIdByName(raum + ".SW.Manu"); // SW Manu/Party var swnachtid = getIdByName(raum + ".SW.Nacht"); var swreiseid = getIdByName(raum + ".SW.Reise"); var swid = getIdByName(raum + ".SW.Profil"); // Profilsollwert ! var abw = getState(abwid).val; var party = getState(partyid).val; var akttag = getState(akttagid).val; ! function sollwert() { if(abw == 3) setState(swid, getState(swheizid).val, true); else if(abw == 2) setState(swid, getState(swreiseid).val, true); else if(abw == 1) setState(swid, getState(swabwid).val, true); else if(!abw) { if(party) setState(swid, getState(swmanuid).val, true); else { var jetzt = new Date(); jetzt = 60 * jetzt.getHours() + jetzt.getMinutes(); var profil = akttag.split(";"); var anzahl = profil.length; for(var i = anzahl - 1; i >= 0; i--) { var change = profil[i].split(" "); var time = change[0].split(":"); time = 60 * parseInt(time[0]) + parseInt(time[1]); if(time <= jetzt) { var level = change[1].toUpperCase(); switch(level) { case "C": case "K": setState(swid, getState(swcomfid).val, true); break; case "E": case "S": setState(swid, getState(swecoid).val, true); break; case "N": setState(swid, getState(swnachtid).val, true); break; case "A": setState(swid, getState(swabwid).val, true); break; default: log("Falscher Sollwertlevel !", "warn"); } return; } } } } } ! sollwert(); // Script start ! on(abwid, function(dp) { abw = dp.state.val; sollwert(); }); ! on(partyid, function(dp) { party = dp.state.val; sollwert(); }); ! on(akttagid, function(dp) { akttag = dp.state.val; sollwert(); }); ! schedule("*/10 * * * *", sollwert); [/i]

      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 Antwort Letzte Antwort
      0
      • Merlin123M Offline
        Merlin123M Offline
        Merlin123
        schrieb am zuletzt editiert von
        #3

        ah ok. danke!

        Beta-Tester

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          Nachtrag: Mit dem folgenden Skript wird jeweils um Mitternacht das aktuelle Tagesprofil gesetzt:

          ! // aktuelles Tagesprofil ! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname var raum = name.split(".")[2]; ! var selectid = getIdByName(raum + ".Profilauswahl"); var wocheid = getIdByName(raum + ".Wochenprofil"); var aktid = getIdByName(raum + ".Tagesprofil"); var tag1id = getIdByName(raum + ".Tagesprofil-1"); var tag2id = getIdByName(raum + ".Tagesprofil-2"); var tag3id = getIdByName(raum + ".Tagesprofil-3"); var tag4id = getIdByName(raum + ".Tagesprofil-4"); var tag5id = getIdByName(raum + ".Tagesprofil-5"); var fhid = getIdByName("Feiertag.heute"); var fmid = getIdByName("Feiertag.morgen"); ! function aktprofil(select) { var profil; if(select == 6) { // Wochenprogramm select = getState(wocheid).val; select = select.split(","); var wd = new Date(); wd = wd.getDay() - 1; if(wd < 0) wd = 6; // Sonntag var fh = getState(fhid).val; var fm = getState(fmid).val; if(fh && !fm && (wd < 4 || wd == 6)) wd = 6; if(fh && (fm || wd == 4 || wd == 5)) wd = 5; if(fm && !fh && wd < 4) wd = 4; if(fm && wd == 6) wd = 5; select = parseInt(select[wd]); } switch(select) { case 1: profil = getState(tag1id).val; break; case 2: profil = getState(tag2id).val; break; case 3: profil = getState(tag3id).val; break; case 4: profil = getState(tag4id).val; break; case 5: profil = getState(tag5id).val; break; default: profil = "00:00 A"; } setState(aktid, profil, true); } ! on(selectid, function(dp) { aktprofil(dp.state.val); }); ! schedule("1 0 0 * * *", function() { // 1 s nach Mitternacht aktprofil(getState(selectid).val); }); aktprofil(getState(selectid).val); // Script start !
          Dabei werden auch Feiertage (heute, morgen) berücksichtigt.

          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 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
          FAQ Cloud / IOT
          HowTo: Node.js-Update
          HowTo: Backup/Restore
          Downloads
          BLOG

          636

          Online

          32.7k

          Benutzer

          82.5k

          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