pgerke / homebridge-freeathome-local-api

A Homebridge plugin that allows controlling you free@home setup using the local API provided by the System Access Point
MIT License
18 stars 2 forks source link

Dimming actuators aren't discovered #84

Closed SimonLit closed 9 months ago

SimonLit commented 9 months ago

Describe The Bug: The dimming actuators from Busch Jeager do not show up in the apple home app. Normal light switches work, dimmers do not.

To Reproduce: Connect to free@home system with dimming actuators.

Expected behavior:

Logs [30/12/2023, 14:31:58] [Busch Jaeger] Connection opened [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Hoek lamp [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Hoek lamp [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Switch Woonkamer [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Switch [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Switch [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Hal [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Voorgevel [30/12/2023, 14:31:59] [Busch Jaeger] Restoring existing accessory from cache: Poort [30/12/2023, 14:31:59] [Busch Jaeger] Discovery completed: 8 accessories detected

System Node.js: v18.18.2 SAP: 2.399

Screenshots: IMG_0843 IMG_0842 IMG_0841

pgerke commented 9 months ago

Not sure this is a bug or a just a kind of accessory that is not supported (yet). My plugin communicates with the System Access Point using the local API REST interface. Each device type has a unique function ID and devices with the same function ID use the same data points to exchange information. The reason the actuators are not recognizes could simply be that they have a different function ID compared to the other (e.g. wired) dimming actuators that the plugin does not know. If a device is reported by the SysAP that the plugin does not recognize, it ignores it.

To support a new device type I need to know the data points on which the device provides data and expects updates. And for that I need a sample configuration from the device. I have created a guide (here: https://github.com/pgerke/homebridge-freeathome-local-api/wiki/Retrieving-the-Configuration-for-a-Device-from-the-System-Access-Point) as to how retrieve a device configuration from the System Access Point. If you provide the configuration, I can try and support the new type in the plugin.

SimonLit commented 9 months ago

Thanks for the quick response and clarification. Looks like it should be a feature request instead of bug. Hereby the device info.

{
  "00000000-0000-0000-0000-000000000000": {
    "devices": {
      "ABB702FB83EF": {
        "floor": "01",
        "room": "04",
        "interface": "RF",
        "displayName": "Lamp",
        "unresponsive": false,
        "unresponsiveCounter": 0,
        "defect": false,
        "channels": {
          "ch0001": {
            "floor": "01",
            "room": "04",
            "displayName": "Lamp",
            "functionID": "1010",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "0"
              },
              "idp0001": {
                "pairingID": 18,
                "value": "0"
              },
              "idp0002": {
                "pairingID": 257,
                "value": "0"
              },
              "idp0003": {
                "pairingID": 273,
                "value": "0"
              },
              "idp0004": {
                "pairingID": 261,
                "value": "0"
              },
              "idp0005": {
                "pairingID": 262,
                "value": "0"
              },
              "idp0006": {
                "pairingID": 278,
                "value": "0"
              },
              "idp0007": {
                "pairingID": 359,
                "value": "0"
              },
              "idp0008": {
                "pairingID": 272,
                "value": "0"
              },
              "idp0009": {
                "pairingID": 277,
                "value": "0"
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "0"
              },
              "odp0001": {
                "pairingID": 4,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 418,
                "value": "65535"
              },
              "odp0003": {
                "pairingID": 360,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 16,
                "value": "0"
              }
            },
            "parameters": {
              "par0002": "50",
              "par0001": "50",
              "par0007": "1"
            }
          },
          "ch0007": {
            "floor": "01",
            "room": "04",
            "displayName": "Lamp",
            "functionID": "101a",
            "inputs": {
              "idp0000": {
                "pairingID": 256,
                "value": "0"
              },
              "idp0002": {
                "pairingID": 359,
                "value": "0"
              },
              "idp0006": {
                "pairingID": 272,
                "value": "0"
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 1,
                "value": "0"
              },
              "odp0001": {
                "pairingID": 418,
                "value": "65535"
              },
              "odp0002": {
                "pairingID": 360,
                "value": "0"
              },
              "odp000f": {
                "pairingID": 16,
                "value": "0"
              },
              "odp0010": {
                "pairingID": 17,
                "value": "0"
              }
            },
            "parameters": {
              "par0010": "1"
            }
          },
          "ch000d": {
            "floor": "01",
            "room": "04",
            "displayName": "Lamp-Ⓐ",
            "functionID": "1810",
            "inputs": {
              "idp0000": {
                "pairingID": 1,
                "value": "0"
              },
              "idp0001": {
                "pairingID": 2,
                "value": "0"
              },
              "idp0002": {
                "pairingID": 3,
                "value": "0"
              },
              "idp0003": {
                "pairingID": 4,
                "value": "0"
              },
              "idp0004": {
                "pairingID": 6,
                "value": "0"
              },
              "idp0005": {
                "pairingID": 16,
                "value": "0"
              },
              "idp0006": {
                "pairingID": 17,
                "value": "0"
              },
              "idp0007": {
                "pairingID": 18,
                "value": "0"
              },
              "idp0008": {
                "pairingID": 428,
                "value": "0"
              }
            },
            "outputs": {
              "odp0000": {
                "pairingID": 256,
                "value": "0"
              },
              "odp0001": {
                "pairingID": 272,
                "value": "0"
              },
              "odp0002": {
                "pairingID": 357,
                "value": "4"
              },
              "odp0003": {
                "pairingID": 273,
                "value": "0"
              },
              "odp0004": {
                "pairingID": 257,
                "value": "0"
              },
              "odp0005": {
                "pairingID": 417,
                "value": "65535"
              },
              "odp0006": {
                "pairingID": 429,
                "value": "0t+0"
              }
            },
            "parameters": {
              "par0003": "1",
              "par0004": "1",
              "par013f": "100",
              "par0005": "100",
              "par0012": "100",
              "par0015": "60",
              "par0029": "1",
              "par00fe": "2"
            }
          }
        },
        "parameters": {
          "par00ed": "1",
          "par0038": "553713923"
        }
      }
    }
  }
}
pgerke commented 9 months ago

Thanks for providing the config file! I'll check it out when I have a minute!

pgerke commented 9 months ago

Hi @SimonLit, you can try version 1.11.0-pre.0. If you enable "Experimental Accessories", the wireless dimming actuator should be recognized and usable. Any feedback you can give me is highly appreciated!

SimonLit commented 9 months ago

@pgerke Thanks for updating the code. Works like a charm. Many thanks.

pgerke commented 9 months ago

Very happy to hear that, @SimonLit! Then I'll release the change later today.

pgerke commented 9 months ago

Release as v1.11.0. Please note that the experimental flag is no longer required in the officially released version.

github-actions[bot] commented 7 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.