homematic-rega

Homematic CCU ReGaHSS Remote Script Interface

Usage no npm install needed!

<script type="module">
  import homematicRega from 'https://cdn.skypack.dev/homematic-rega';
</script>

README

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