Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Abgreifen des Schaltzustandes eines Markenschalters in JavaScript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Abgreifen des Schaltzustandes eines Markenschalters in JavaScript

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MistyReblaus last edited by

      Hallo,

      ich habe ein Skript für einen Schalter HM-LC-Sw1PBU-FM angelegt, welches folgende Funktionen durchführen soll. Die Wipprichtung zum Einschalten soll für eine Lampe verwendet werden, die andere Wipprichtung für eine andere Lampe. Dabei möchte ich nur die Auslösung abgreifen und nicht über den Schalter direkt die Schaltung durchführen.

      Also

      -Wippenrichtung Schalter an => Steuerung eines seperaten Funkaktors 1

      -Wippenrichtung Schalter aus => Steuerung eines seperaten Funkaktors 2

      Bisher habe ich folgendes verwendet:

      // Auslösung mit Homematic Hardware-Taster

      on({

      id: "hm-rpc.1.NEQ0XXXXX1.1.STATE",

      val: true

      }, function(obj)

      { LogikHier }

      }

      );

      // Auslösung mit Homematic Hardware-Taster

      on({

      id: "hm-rpc.1.NEQ0XXXXX1.1.STATE",

      val: false

      }, function(obj)

      { LogikHier }

      }

      );

      Jedoch bekomme ich immer nur den intialen Wechsel von AN=>US oder AUS=>AN mit und nicht wenn jemand von AUS noch einmal AUS drückt. Muß ich hier noch eine weitere Bedingung in den Header der Funktion einfügen (oldval, ack, change, etc.) ?

      Danke und Grüße, Jens

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        @MistyReblaus:

        Muß ich hier noch eine weitere Bedingung in den Header der Funktion einfügen (oldval, ack, change, etc.) ? `
        Korrekt! change: "any" erfasst auch Aktualisierungen des Zustands. Siehe die Tabelle https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state (ein bisschen runter scrollen)

        Du kannst auch beide Trigger zu einem zusammenfassen, wenn du nicht im "Header" auf val: true/false filterst, sondern das im Callback erledigst:

        on({
          id: "hm-rpc.1.NEQ0XXXXX1.1.STATE",
          change: "any"
        }, function(obj) { 
          if (obj.state.val) {
            // Aktionen bei Druck auf "AN" ausführen
          } else {
            // Aktionen bei Druck auf "AUS" ausführen
          }
        });
        

        P.S.: Bitte Code-Tags benutzen für Code 😉

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        1.0k
        Online

        31.8k
        Users

        80.0k
        Topics

        1.3m
        Posts

        2
        2
        370
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo