Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

smartfritz-promise

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

smartfritz-promise

SmartHome for Fritz!Box and Dect!200 Node to communicate with AVM FritzBox over the aha-http-interface

  • 0.7.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7
Maintainers
1
Weekly downloads
 
Created
Source

smartfritz

NPM Version

Node module to communicate with a AVM Fritz!Box and various smart home devices like Fritz!DECT 200 outlet, FRITZ!Powerline 546E WLAN set and CometDECT thermostat providing the following functions:

General functions

  • Get the session ID (getSessionID)
  • Get device list as XML (getDeviceListInfo) >FritzOS 6.10
  • Get device list (getDeviceList) >FritzOS 6.10
  • Get device (getDevice) >FritzOS 6.10
  • Get temperature (getTemperature) - polyfill

Note

getTemperature is not available on the FRITZ!Powerline 546E WLAN set and will always return NaN.

Fritz!DECT 200 outlet functions (includes FRITZ!Powerline 546E)

  • Get list (getSwitchList)
  • Get state (getSwitchState)
  • Set on (setSwitchOn)
  • Set off (setSwitchOff)
  • Get power (getSwitchPower)
  • Get energy (getSwitchEnergy)
  • Get presence status (getSwitchPresence)
  • Get name (getSwitchName)

For controlling AVM Fritz!DECT 200 devices the actuator identification number (AIN) is needed. the AIN can be obtained using getSwitchList which returns a list of AINs or the more general getDeviceList function which returns a verbose device list structure as JSON.

Comet DECT thermostat functions

Thermostat functions are only available as of FritzOS 6.36

  • Get list (getThermostatList) - polyfill
  • Set target temperature (setTempTarget), supports 'ON'/'OFF' to enable/disable thermostat
  • Get target temperature (getTempTarget)
  • Get comfort temperature (getTempComfort)
  • Get night temperature (getTempNight)
  • Get battery charge status (getBatteryCharge)

Note

As of FritzOS 6.36 there is are no official function to obtain a list of thermostats, neither to get the thermostat's temperature. Also the switches getSwitchTemperature() function is not working in that firmware version. For an alternative approach the getTemperature() polyfill function was added which supports both switches and thermostats.

Wlan functions

  • Get the guest wlan settings (getGuestWlan)
  • Set the guest wlan (setGuestWlan)

Note

getGuestWlan returns a structure containing all wifi settings found in the Fritz!Box UI. The setGuestWlan function accepts either a settings structure such as this or a single boolean value.

All functions have been tested on FritzOS 6.20/6.36/6.51 using the Fritz!Box 7390. The WLAN functions may be less stable.

Deprecated functions

As of version 0.5.0 the getSwitchTemperature function has been replaced with getTemperature which works for outlets and thermostats both.

Installation

npm install smartfritz-promise

Usage

As of version 0.7.0 smartfritz supports both the legacy functional interface as well a new object-oriented interface. The new object interface is the recommended way of using smartfritz.

Object-oriented interface

Get the list of switch AINs using a customer Fritz!Box address:

var Fritz = require('smartfritz-promise').Fritz;

var f = new Fritz("user", "password", "192.168.178.1");

f.getSwitchList().then(function(ains){
  console.log(f.getSID());
  console.log(ains);
});

Functional interface

Get the session ID using default Fritz!Box address (http://fritz.box):

var fritz = require('smartfritz-promise');

fritz.getSessionID("user", "password").then(function(sid) {
    console.log(sid);
});

Get the list of switch AINs using a custom Fritz!Box address:

var options = { url:"192.168.178.1" };
fritz.getSessionID("user", "password", options).then(function(sid) {
  console.log(sid);

  // note that the options/url need be carries through every single api call
  fritz.getSwitchList(sid, options).then(function(ains){
    console.log(ains);
  });
});

AHA HTTP Interface Documentation

http://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AHA-HTTP-Interface.pdf

Acknowledgements

Thanks to:

  • nischelwitzer for the basic js implementation (https://github.com/nischelwitzer/smartfritz)
  • steffen.timm for the basic communication function
  • thk4711 for the FRITZ!DECT 200 codes
  • AVM for providing the good AHA-HTTP interface document
  • EUROtronic Technology GmbH for providing free CometDECT thermostat sample
  • AVM for providing free FRITZ!Powerline 546E WLAN set

Keywords

FAQs

Package last updated on 12 Aug 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc