New binding that's almost duplicate of existing one?

There is already an existing bindning for Nibe Uplink in openhab, that I beleive are used by quite a number of people. I however am currently using my own external implementation which I am thinking about porting to a proper binding. the thing is, my proposed binding uses a different API than the current one.

The current binding uses Nibe Uplinks private api, that are used by the nibeuplink.com webservice, while I would use Nibe’s public REST API. Both approches have their pros and cons, and have different capabilities, so I wouldn’t want to change the existing binding and make the users lose functionality.

Private API

  • Pros

    • Allows for changing settings on the heatpump
  • Cons

    • Since it’s a private API it’s not documented and may change without notice
    • Need to use http login form to obtain a cookie, and credentials are stored in openhab config

Public API

  • Pros

    • Uses OAuth authentication
    • Less risk of breaking changes
    • Supports “virtual thermostats”, so you can connect a thermostat to the heatpump, supplying current temperature and setpoint, then the heatpump changes the temperature of the water to the radiators
  • Cons

    • Doesn’t allow to change settings on the heatpump (only temporary changes to ventilation and hot water production)
    • Requires the user to set up a developer account (same credentials as the regular service) and register an OAuth application to aquire identifier and secret

Would it make sense to have two different bindings for the same service, or is it just confusing for the users?

No, not IMO. It would be better to update the existing binding to allow users to choose which API to use.

1 Like

That sounds like a sensible approach, i’ll look into i!