Skip to content

API client for Drayton Wiser heating systems

License

Notifications You must be signed in to change notification settings

stringbean/drayton-wiser-client

Repository files navigation

drayton-wiser-client

Travis npm version node support

This is heavily based on the wiserheatingapi Python package and the work by Julian Knight.

Running the example app

  1. Obtain the secret key for your system:
    1. Press the setup button on your HeatHub.
    2. Connect your phone or PC to the temporary setup Wi-Fi hotspot called WiserHeatXXX.
    3. Fetch the secret using a REST client (or just open in a browser) from: http://192.168.8.1/secret/
    4. Press the setup button on your HeatHub to exit setup mode.
  2. List the status of your rooms using the demo app:
     npm run demo -- -s $SECRET_KEY list

Using the client

To create a client pass in the secret and address of the HeatHub, then start calling operations:

import WiserClient from 'WiserClient';

const client = WiserClient.clientWithDiscovery('secret');
const statuses = await client.roomStatuses();

statuses.forEach((room) => {
  if (room.valid) {
    console.log(`${room.name}: ${room.temperature}ºc`);
  } else {
    console.log(`${room.name}: (invalid)`);
  }
});

Examples of each operation can be found in the example app.

Supported Operations

  • System status: client.systemStatus().
  • List room statuses: client.roomStatuses().
  • Single room status: client.roomStatus(roomId).
  • Manually set room target: client.overrideRoomSetPoint(roomId, setPoint).
  • Turn off a room: client.disableRoom(roomId).
  • Cancel room overrides: client.cancelRoomOverride(roomId).
  • Enable away mode: client.enableAwayMode().
  • Disable away mode: client.disableAwayMode().
  • Boost all rooms: client.boostAllRooms().
  • Cancel all room overrides: client.cancelAllOverrides().
  • Fetch the status of everything: client.fullStatus().