Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Bitte testen: zWave Associations

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Bitte testen: zWave Associations

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

      Hallo Leute,

      habe vor kurzem den zWave-Adapter um Associations ergänzt. D.h. direkte Steuerung von Geräten untereinander ohne ioBroker/Controller. Ich nutze es z.B., um eine Kreuzschaltung von zwei Lichtschaltern zu realisieren, die an zwei verschiedenen Sicherungen hängen. Informationen, was möglich ist, sollte in der Anleitung der Geräte zu finden sein.

      Das ganze funktioniert noch nicht über die GUI, kann aber wunderbar per JavaScript angesprochen werden.

      Wäre super, wenn das jemand testen könnte (von Github aktualisieren), damit wir den aktualisierten Adapter freigeben können.

      Aufruf der Funktionen erfolgt via sendTo aus JavaScript (oder einem eigenen Adapter):

      sendTo("zwave.0", "getAssociations", {nodeID: 2, group: 1}, function (obj) {
          if (obj.error) {
              log(obj.error, "error");
          } else {
              log("group " + group + " associations: " + obj.result);
          }
      });
      

      Der Funktionsname wird hinter "zwave.0" in Anführungszeichen angegeben. Die Funktionsargumente stehen in der ersten Zeile in den geschweiften Klammern. In obj.result steht der Rückgabewert der Funktion, sofern es keinen Fehler beim Aufrufen gab.

      Folgende Funktionen sind unterstützt:

      // Anzahl der association groups ermitteln
      // Parameter nodeID {number}: Node-Nr des angefragten Knotens (1, 2, ...)
      // Rückgabewert {number}: Anzahl der Gruppen "numGroups"
      getNumGroups(nodeID)
      
      // Namen/Beschreibung der Gruppen ermitteln
      // Parameter group {number}: Nr der Gruppe - im Bereich 1..numGroups
      // Rückgabewert {string}: Name der Gruppe
      getGroupLabel(nodeID, group)
      
      // Associations des Knotens ermitteln
      // Parameter: s.o.
      // Rückgabewert {number[]}: NodeIDs der zugeordneten Knoten
      getAssociations(nodeID, group)
      
      // Maximale Anzahl der Associations des Knotens ermitteln
      // Parameter: s.o.
      // Rückgabewert {number}: Maximale Anzahl der Associations. Werden von open-zwave angegeben, können fehlerhaft sein (z.b. Fibaro)
      getMaxAssociations(nodeID, group)
      
      // Einem Knoten eine Association hinzufügen oder entfernen
      // Parameter target_nodeid {number}: Knoten, der in die Liste hinzugefügt oder entfernt werden soll
      // Rückgabewert: 'ok'
      addAssociation(nodeID, group, target_nodeid)
      removeAssociation(nodeID, group, target_nodeid)
      
      1 Reply Last reply Reply Quote 0
      • P
        Pman last edited by

        Ein bisschen rumgespielt, hat so weit alles geklappt.

        Konkrekt habe ich den S2 (Gruppe 4) vom Fibaro Dimmer 2 mit einem Fibaro Switch 2 gekoppelt. In der Standardkonfiguration wird dadurch S1 beim Switch geschaltet und das hat auch funktioniert.

        Immerhin weiß ich jetzt, dass der S2 beim Dimmer überhaupt funktioniert, denn dessen Zustanden wird bei OZW nicht korrekt an den Controller gemeldet.

        Eine GUI zum verwalten der Associations wird vermutlich noch etwas auf sich warten lassen? 🙂

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

          Danke!

          @Pman:

          Eine GUI zum verwalten der Associations wird vermutlich noch etwas auf sich warten lassen? 🙂 `
          Ja, da bin ich mir auch noch nicht im Klaren, wie das am besten aussieht. Und die knappe Zeit… 😄

          Aber vielleicht kommt ja kurzfristig jemand anderes dazu.

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

            Läuft bei mir seit Einrichtung problemlos. Allerdings bestätigt die Admin-UI seitdem jeden Druck auf "Add Node" mit einem OK-Fenster. Kann das jemand nachvollziehen?

            1 Reply Last reply Reply Quote 0
            • P
              Pman last edited by

              Vorher wurde z. B. bei include gesendet:

              case 'addNode':
              	if (inclusion) {
              		disableInclusion();
              		if (obj.callback) adapter.sendTo(obj.from, obj.command, {error: null}, obj.callback);
              		return;
              	}
              

              Also nur````
              {error: null}

              
              Nun sendet der Adapter:
              

              var predefinedResponses = {
              OK: { error: null, result: 'ok' },
              ERROR_UNKNOWN_COMMAND: { error: 'Unknown command!' },
              ERROR_NOT_RUNNING: {error: 'zwave driver is not running!'}
              }
              [...]
              respond(predefinedResponses.OK);

              
              In Admin wird ein Popup aufgerufen, sobald die Antwort ein Attribut "result" enthält:
              
                  if (nodeCommands[val].name) {
                      // enter additional parameter
                      var param = prompt(_(nodeCommands[val].name), '');
                      if (param !== '') {
                          sendTo(null, val, {nodeID: id, param: param}, function (result) {
                              $this.val('');
                              if ($.ui.selectmenu) $this.selectmenu('refresh');
                              if (result && result.error) {
                                  showMessage(result.error, _('Error'), 'alert');
                              } else if (result && result.result) {
                                  showMessage(_(result.result), _('Success'), 'check');
                              }
                          });
                      }
                  } else {
                      sendTo(null, val, {nodeID: id}, function (result) {
                          $this.val('');
                          if ($.ui.selectmenu) $this.selectmenu('refresh');
                          if (result && result.error) {
                              showMessage(result.error, _('Error'), 'alert');
                          } else if (result && result.result) {
                              showMessage(_(result.result), _('Success'), 'check');
                          }
                      });
                  }
              
              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer last edited by

                Top, das erspart mir ein paar Minuten suchen. Ändere ich heute abend und erstelle neuen PR.

                1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 last edited by

                  Änderungen von AlCazone sind auf Github … Bitte testen!!

                  1 Reply Last reply Reply Quote 0
                  • A
                    Anzic last edited by

                    can you tell me how to assign an Association to group 2? when running the script I get this error:

                    2.05.2019, 19:37:45.929 [info ]: javascript.0 Stop script script.js.Z-Wave.associations
                    12.05.2019, 19:38:01.690 [info ]: javascript.0 Start javascript script.js.Z-Wave.associations
                    12.05.2019, 19:38:01.695 [info ]: javascript.0 script.js.Z-Wave.associations: registered 0 subscriptions and 0 schedules
                    12.05.2019, 19:38:01.707 [error]: javascript.0 ReferenceError: group is not defined
                        at Object.cb (script.js.Z-Wave.associations:5:24)
                        at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4013:71)
                        at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:53:30)
                        at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                        at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:278:10)
                        at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12)
                        at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                        at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                        at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:345:8)
                        at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                    
                    12.05.2019, 19:38:07.001 [info ]: javascript.0 Stop script script.js.Z-Wave.associations
                    

                    z-wave 1.4.1

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    750
                    Online

                    31.7k
                    Users

                    79.8k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    1376
                    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