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. Z-Wave Fibaro Dimmer 2 kein "Binary Switch"

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Z-Wave Fibaro Dimmer 2 kein "Binary Switch"

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
23 Beiträge 8 Kommentatoren 2.5k Aufrufe 2 Watching
  • Ä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 Dragondrummer71

    Hallo Zusammen,

    ich werde hier mal meine Erfahrungen bezüglich des "FIBARO System FGD212 Dimmer 2" posten, da ich jetzt über einige Tage mit Lesen, try and error eine Lösung zusammen gestrickt habe.

    Folgendes Szenario:

    Mit einem ZME_WALLC-S wollte ich mit den Tasten des Schalters bei kurzem Druck auf die Tasten die Lampe auf den zuletzt gedimmten Wert einschalten bzw. bei der anderen Taste den Timmer ausschalten.

    Bei langem Druck sollte der Dimmer langsam nach oben dimmen bis ich die Taste wieder loslasse - und das natürlich schön gleichmäßig :D . Bei der anderen Taste natürlich das gleiche nur nach unten.

    Da ich so etwas tatsächlich nirgends gefunden habe, hier meine Lösung mit Erklärung:
    18311_blockly-fibaro_system_fgd212_dimmer.png

    var Intervall, Intervall2;
    
    createState("Wandtaster-betätigt", function () {
      on({id: "zwave.0.NODE10.CLASSES91.Scene_Number_1"/*Scene Number*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("zwave.0.NODE10.CLASSES91.Scene_Number_1").val == 10) {
          setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Level_1"/*Level*/, 0);
        } else if (getState("zwave.0.NODE10.CLASSES91.Scene_Number_1").val == 50) {
          setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Level_1"/*Level*/, 255);
        } else if (getState("zwave.0.NODE10.CLASSES91.Scene_Number_1").val == 52) {
          setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Inc_1"/*Inc*/, true);
          Intervall = setInterval(function () {
            if (getState("zwave.0.NODE10.CLASSES91.Scene_KeyAttribute_1").val != 2) {
              setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Inc_1"/*Inc*/, false);
              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
            }
          }, 500);
        } else if (getState("zwave.0.NODE10.CLASSES91.Scene_Number_1").val == 12) {
          setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Dec_1"/*Dec*/, true);
          Intervall2 = setInterval(function () {
            if (getState("zwave.0.NODE10.CLASSES91.Scene_KeyAttribute_1").val != 2) {
              setState("zwave.0.NODE8.SWITCH_MULTILEVEL.Dec_1"/*Dec*/, false);
              (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})();
            }
          }, 500);
        }
      });
    });
    

    Ich verwende am Wandtaster ZME_WALLC-S den Wert: "zwave.0.NODE10.CLASSES91.Scene_Number_1" und den Wert: "zwave.0.NODE10.CLASSES91.Scene_KeyAttribute_1".

    Der Erste zeigt mir an ob der Wert nur kurz gedrückt wurde (hier die Werte 10 und 50) oder lang gedrückt wird (52 bzw. 12).

    Nachdem der Schalter lange gedrückt wird:

    steht der Wert Scene_KeyAttribute_1 = 2 (Key held down) wenn er losgelassen wird,

    wird dieser Wert Scene_KeyAttribute_1 =1 (Key released) gesetzt.

    Nun zum Fibaro Dimmer:

    An bzw. Ausschalten läßt sich diese über "zwave.0.NODE8.SWITCH_MULTILEVEL.Level_1" hierzu muss man für An den Wert "255" übergeben und für Aus den Wert "0".

    Beim Multilevel_switch entspricht somit "255" dem Wert "ON" und ersetzt den Binary_Switch.

    Um den Dimmer gleichmäßig zu dimmen, verwende ich hier das event "start level change".

    Dieses event startet man in dem man increase "zwave.0.NODE8.SWITCH_MULTILEVEL.Inc_1" auf "wahr" setzt.

    Der Dimmer erhöht dann den Dimmwert solange bis ein "stop level change" gesendet wird. Dies erzeugt man in dem man den Wert "zwave.0.NODE8.SWITCH_MULTILEVEL.Inc_1" auf "unwahr" setzt.

    Das gleiche gilt für decrease = "zwave.0.NODE8.SWITCH_MULTILEVEL.Dec_1".

    Ich hoffe das hilft.

    Ich denke ähnliches kann man auch für Rolladensteuerung verwenden.

    R Offline
    R Offline
    Rolli100
    schrieb am zuletzt editiert von
    #21

    @Dragondrummer71
    Kannst Du mal erlären, wie Du in den Wandschalter die Werte CLASSES91.Scene_Number_1 und CLASSES91.Scene_KeyAttribute_1 hineinbekommen hast?
    Ich bekomme das einfach nicht hin und Scene_Count steht bei meinem Taster auch immer auf 0.

    Ein Tipp hierfür wäre echt super :)

    1 Antwort Letzte Antwort
    0
    • C CrazyCreator

      So … Erst mal an alle: Gesundes neues Jahr :)

      Hat ein bisschen gedauert, aber die Feiertage fordern ihren Tribut :)

      Also ich habe jetzt zwei verschiedene Scripte laufen.

      Das erste Script ist für den virtuellen Schaltvorgang durch Yahka bzw. HomeKit und das andere für den Schaltvorgang durch den FibaroDimmerSwitch

      Wie schonmal geschrieben, habe ich mir innerhalb des zwaveDevices einen Datenpunkt erstellt, der durch yahka auf true/false geschaltet wird.

      @https://forum.iobroker.net/memberlist.php?mode=viewprofile&u=1097

      Falls du gemeint hast, ich soll durch yahka schon direkt 0 und 255 schalten, dann bräuchte ich da noch einen Denkanstoß … Denn ich wüsste nicht wie ich das realisieren soll.

      Hier mal die beiden Blockly's und unten drunter jeweils das javasript:

      Das für HomeKit:
      9744_bildschirmfoto_2019-01-01_um_21.59.28.png

      var var_zahler;
      
      on({id: 'zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter").val == false && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.zwave.0') {
          if (var_zahler == 100) {
            console.log('AnAusSchalter=false / Quelle=ZWAVE / var_zahler=100 -> LICHT WURDE EIGENTLICH ANGESCHALTET -> TUE NICHTS -> Setze var_zahler wieder auf 0');
            var_zahler = 0;
          } else {
            setStateDelayed("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1"/*Level_1*/, 0, 1000, false);
            console.log('AnAusSchalter=false / Quelle=ZWAVE / var_zahler=NICHT100 -> LICHT AUS => Level_1=0 UND var_zahler=0');
            var_zahler = 0;
          }
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter").val == true && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0) {
          if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val == 100 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.yahka.0') {
            console.log('AnAusSchalter=true+Level_1>0+Level_1=100+Quelle=Yahka =>> Level_1=255');
            setStateDelayed("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1"/*Level_1*/, 255, 1100, false);
          } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.javascript.0') {
            console.log('AnAusSchalter=true+Level_1>0+Level_1>100+Quelle=JAVASCRIPT =>> Level_1=255 + var_zahler=100');
            var_zahler = 100;
            setStateDelayed("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1"/*Level_1*/, 255, 1100, false);
          } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.zwave.0') {
            console.log('AnAusSchalter=true+Level_1>0+Level_1=100+Quelle=ZWAVE =>> Level_1=255');
            setStateDelayed("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1"/*Level_1*/, 255, 1100, false);
          }
        }
      });
      
      

      Das für FibaroDimmerSwitch:
      9744_bildschirmfoto_2019-01-01_um_22.01.43.png

      var var_handy;
      
      on({id: 'zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.javascript.0') {
          console.log('AnDurchHandy / LEVEL_1 > 0 / Quelle=JAVA');
          setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, true);
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.zwave.0') {
          console.log('AnDurchSchalter / LEVEL_1 > 0 / Quelle=ZWAVE');
          setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, true);
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val > 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.yahka.0') {
          setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, true);
          console.log('AnDurchHandy 1.SCHRITT / LEVEL_ > 0 / Quelle=YAHKA');
          var_handy = true;
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val == 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.javascript.0') {
          console.log('AusDurchHandy / LEVEL_1=0 / Quelle=JAVASCRIPT');
          setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, false);
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val == 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.zwave.0') {
          if (var_handy == true) {
            console.log('Level_1=0 / Quelle=ZWAVE / var_handy=true =>> AnAusSchalter->true UND var_handy=false');
            setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, true);
            var_handy = false;
          } else if (var_handy == false) {
            console.log('Level_1=0 / Quelle=ZWAVE / var_handy=false =>> AnAusSchalter->false UND var_handy=true');
            setState("zwave.0.NODE14.SWITCH_MULTILEVEL.AnAusSchalter"/*AnAusSchalter*/, false);
            var_handy = true;
          }
        } else if (getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").val == 0 && getState("zwave.0.NODE14.SWITCH_MULTILEVEL.Level_1").from == 'system.adapter.yahka.0') {
          console.log('NICHT VERWENDETER WERT - DAS DÜRFTE EIGENTLICH NIE EINTRETEN');
        }
      });
      

      Ich "bastel" derweil mal noch ein bisschen weiter, vielleicht geht das ja alles noch irgendwie kürzer.

      G Offline
      G Offline
      Günther711
      schrieb am zuletzt editiert von
      #22

      @crazycreator ist zwar schon länger her dein Post, aber trotzdem die Frage: Hast du es zum laufen bekommen?

      C 1 Antwort Letzte Antwort
      0
      • G Günther711

        @crazycreator ist zwar schon länger her dein Post, aber trotzdem die Frage: Hast du es zum laufen bekommen?

        C Offline
        C Offline
        CrazyCreator
        schrieb am zuletzt editiert von
        #23

        @günther711 Tut mir leid, da kann ich nicht mehr helfen. Habe alles platt gemacht und das komplette System gewechselt.

        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

        713

        Online

        32.6k

        Benutzer

        82.1k

        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