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. [Script] HomeMatic-RF Dimmer mit Tastern schalten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[Script] HomeMatic-RF Dimmer mit Tastern schalten

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
1 Beiträge 1 Kommentatoren 626 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.
  • andreaskosA Offline
    andreaskosA Offline
    andreaskos
    schrieb am zuletzt editiert von andreaskos
    #1

    Hallo zusammen,

    in einer HomeMatic-Installation von mir werden HM-wired und HM-RF Komponenten eingesetzt. Da bei HM - im Gegensatz zu HM-IP - keine direkten Verknüpfungen von wired auf Funk möglich sind und ich ursprünglich einmal vorhatte, alle Programme als Scripts in ioBroker umzusetzen, wollte ich mit einer Wired-Taste einen Dimmaktor ein- bzw. ausschalten (nicht dimmen).
    Von diesem Vorgehen bin ich zwar schon abgekommen, da ich nun alle Subsysteme in sich selbst werken lasse und ioBroker tatsächlich nur den Broker bei systemübergreifenden Funktionen darstellt. Aber, ich dachte, dass dieses Skript möglichweise auch überall dort sinnvoll sein und von jemanden gebraucht werden kann, wo ein HM-RF Dimmer über eine beliebige Taste eines anderen Systems geschaltet (beachte wieder: nicht gedimmmt) werden kann. Der Taster muss nur einen Datenpunkt auf true setzen beim betätigen.
    Leider reicht der LEVEL-Datenpunkt beim Dimmer alleine nicht aus, aber zum Glück bringt der Dimmer ja noch die Datenpunkte DIRECTION und WORKING mit, die auch benötigt werden, um ihn sauber auf- und abzudimmen.

    Hier das Script:

    /* ##################################################
       # Script schaltet einen Dimmaktor von            #
       # HomeMatic-RF aus und ein über einen beliebigen #
       # Taster (von HM wired, KNX, Amazon Dash, etc.). #
       #                                                #
       # Kos A. am 28.12.2017                           #
       ##################################################
    */
    
    // #### DIMMPEGEL ####
    const ON_LEVEL  = 100;      // Pegel mit dem eingeschaltet wird
    const OFF_LEVEL = 0;        // Pegel mit dem ausgeschaltet wird
    
    // #### TASTER ####
    // Hier alle Datenpunkte aller Taster angeben, die den Dimmer
    // schalten sollen. Wenn nur einer, dann ohne Beistrich hinten.
    // Wichtig: Taster muss true liefern beim betätigen.
    var idTaster    = [
        "hm-rpc.1.IEQ0382640.1.PRESS_SHORT",
        "hm-rpc.1.IEQ0382640.2.PRESS_SHORT"
        ];
    
    // #### DIMM-AKTOR ####
    // Hier die 3 richtigen Datenpunkte für LEVEL, WORKING und DIRECTION angeben:
    var idAktorLevel        = "hm-rpc.0.JEQ0053892.1.LEVEL";
    var idAktorWorking      = "hm-rpc.0.JEQ0053892.1.WORKING";
    var idAktorDirection    = "hm-rpc.0.JEQ0053892.1.DIRECTION";
    
    
    // ########### Nach dieser Zeile nicht mehr ändern ##############
    // ########### Do not change anything below this Line ###########
    
    on({id: idTaster, change: "any", val: true}, function(){
        var working = getState(idAktorWorking).val;
        var direction = getState(idAktorDirection).val;
    
        // Wenn der Dimmer gerade noch arbeitet (in eine Richtung dimmt)
        if (working) {
            // Wenn gerade DOWN-gedimmt wird, dann aufdimmen
            if (direction == 2)
                setState(idAktorLevel, ON_LEVEL);
            // Wenn gerade UP-gedimmt wird, dann abdimmen
            if (direction == 1)
                setState(idAktorLevel, OFF_LEVEL);
        } else {
            // Wenn der Dimmer gerade nicht arbeitet, dann abhängig vom derzeitigen
            // Status dimmen
            setState(idAktorLevel, getState(idAktorLevel).val > 0 ? OFF_LEVEL : ON_LEVEL);
        }
        
    });
    

    Liebe Grüße,
    Andreas

    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

    794

    Online

    32.6k

    Benutzer

    82.2k

    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