Skip to content

Node.js Homematic CCU ReGaHSS Remote Script Interface

License

Notifications You must be signed in to change notification settings

ttr-75/homematic-rega

 
 

Repository files navigation

homematic-rega

NPM version dependencies Status Build Status XO code style License

Node.js Homematic CCU ReGaHSS Remote Script Interface

This module encapsulates the communication with the "ReGaHSS" - the logic layer of the Homematic CCU.

  • execute arbitrary scripts
  • get names and ids of devices and channels
  • get variables including their value und meta data
  • set variable values
  • get programs
  • execute programs
  • activate/deactivate programs
  • get rooms and functions including assigned channels
  • rename objects

i18n placeholders (e.g. ${roomKitchen}) are translated by default.

You can find offical and inoffical documentation of the homematic scripting language at wikimatic.de.

Pull Requests welcome! :)

Install

$ npm install homematic-rega

Usage Example

const Rega = require('homematic-rega');

const rega = new Rega({host: '192.168.2.105'});

rega.exec('string x = "Hello";\nWriteLine(x # " World!");', (err, output, objects) => {
    if (err) {
        throw err;
    } 
    console.log('Output:', output);
    console.log('Objects:', objects);
});

rega.getVariables((err, res) => {
    console.log(res);
});

API

Rega

Kind: global class

new Rega(options)

Param Type Default Description
options object
options.host string hostname or IP address of the Homematic CCU
[options.language] string "de" language used for translation of placeholders in variables/rooms/functions
[options.disableTranslation] boolean false disable translation of placeholders
[options.tls] boolean false Connect using TLS
[options.inSecure] boolean false Ignore invalid TLS Certificates
[options.auth] boolean false Use Basic Authentication
[options.user] string Auth Username
[options.pass] string Auth Password
[options.port] number 8181 rega remote script port. Defaults to 48181 if options.tls is true

rega.exec(script, [callback])

Execute a rega script

Kind: instance method of Rega

Param Type Description
script string string containing a rega script
[callback] scriptCallback

rega.script(file, [callback])

Execute a rega script from a file

Kind: instance method of Rega

Param Type Description
file string path to script file
[callback] scriptCallback

rega.getChannels(callback)

Get all devices and channels

Kind: instance method of Rega

Param Type
callback Rega~channelCallback

rega.getValues(callback)

Get all devices and channels values

Kind: instance method of Rega

Param Type
callback Rega~valuesCallback

rega.getPrograms(callback)

Get all programs

Kind: instance method of Rega

Param Type
callback Rega~programsCallback

rega.getVariables(callback)

Get all variables

Kind: instance method of Rega

Param Type
callback Rega~variablesCallback

rega.getRooms(callback)

Get all rooms

Kind: instance method of Rega

Param Type
callback Rega~roomsCallback

rega.getFunctions(callback)

Get all functions

Kind: instance method of Rega

Param Type
callback Rega~functionsCallback

rega.setVariable(id, val, [callback])

Set a variables value

Kind: instance method of Rega

Param Type
id number
val number | boolean | string
[callback] function

rega.startProgram(id, [callback])

Execute a program

Kind: instance method of Rega

Param Type
id number
[callback] function

rega.setProgram(id, active, [callback])

Activate/Deactivate a program

Kind: instance method of Rega

Param Type
id number
active boolean
[callback] function

rega.setName(id, name, [callback])

Rename an object

Kind: instance method of Rega

Param Type
id number
name string
[callback] function

Rega~scriptCallback : function

Kind: inner typedef of Rega

Param Type Description
err Error
output string the scripts output
variables Object.<string, string> contains all variables that are set in the script (as strings)

Related projects

License

MIT (c) Sebastian Raff

About

Node.js Homematic CCU ReGaHSS Remote Script Interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%