robertklep / nefit-easy-cli

Command line interface for communications with Nefit/Bosch backend.
MIT License
15 stars 1 forks source link
bosch cli home-automation nefit-easy node

Nefit Easy™ command line interface

Command line interface for communications with Nefit/Bosch backend.

Use in moderation!

Each command that you execute using this tool will set up a new connection to the backend, which is relatively CPU-intensive (for both the client and the backend).

If you want to run commands periodically (say, more than once every few minutes), you should consider running the HTTP server, which opens a connection to the backend at startup and reuses it for all commands sent to it. The HTTP server will (eventually) support all the commands that the CLI tool supports.

Installation

This library requires Node.js 4.0.0 or later.

$ npm i nefit-easy-cli -g

This will install the easy client in a well-known "bin/" directory (npm config get prefix will show you where)

Options


easy – Nefit Easy™ client

Usage:
  easy [options] status
  easy [options] pressure
  easy [options] location
  easy [options] active-program
  easy [options] program-data
  easy [options] display-code
  easy [options] supply-temperature
  easy [options] gas-usage [<page> | "?"]
  easy [options] hot-water-supply [ on | off ]
  easy [options] get <uri>
  easy [options] put <uri> <data>
  easy [options] set temperature <value>
  easy [options] set active-program <value>
  easy [options] decrypt [--type=TYPE] <base64>

Options:
  -h --help            Show this screen
  -v --version         Show version
  -V --verbose         Be more verbose
  --serial=SERIAL      Nefit Easy™ serial number
  --access-key=KEY     Nefit Easy™ access key
  --password=PASSWORD  Nefit Easy™ password
  --timeout=TIMEOUT    Request timeout in seconds [default: 30]
  --type=TYPE          Message type ('chat', 'alarm', 'email') [default: chat]
  --pretty             Pretty-print JSON output

Instead of specifying serial number, access key or password through
options, you can also define them through environment variables:

  NEFIT_SERIAL_NUMBER
  NEFIT_ACCESS_KEY
  NEFIT_PASSWORD

The temperature value for "set temperature" can be prefixed with a specifier
to conditionally set the temperature if the current temperature doesn't
already meet the specification. For example, to set the temperature to 21°C,
unless it's not already set higher:

  $ easy set temperature '>21'