Node.js Client for connecting to a Rinnai Touch Module (aka Rinnai Touch Wi-Fi Kit). The client can emit status updates from the module as well as allow you to send commands. It will automatically determine the IP address and port of the module so no need to assign a static/reserved IP address to the module.
The main goal of this client is to reliably and easily control the Rinnai Touch Module.
Commands to be sent to the Module must be in the following format:
{key: "value"} eg. {Mode: "Cool"}
The following is a list of all the command keys and their allowed values. | Key | Description | Values |
---|---|---|---|
Mode | Sets the system mode | Heat, Cool, Evap | |
HeatState | Set Heating state | On, Off, Fan | |
HeatFanSpeed | Sets fan speed when HeatState = Fan | 01 - 16 | |
HeatOperation | Set to Automatic (ie. schedule) or Manual | Auto, Manual | |
HeatTemp | Set Temperature (in Celcius) | 08 - 30 | |
HeatAutoMode | Set Automatic mode | Now, Advance, Override | |
HeatZoneA | Enable Zone A | Yes, No | |
HeatZoneB | Enable Zone B | Yes, No | |
HeatZoneC | Enable Zone C | Yes, No | |
HeatZoneD | Enable Zone D | Yes, No | |
CoolState | Set Cooling state | On, Off, Fan | |
CoolFanSpeed | Sets fan speed when CoolState = Fan | 01 - 16 | |
CoolOperation | Set to Automatic (ie. schedule) or Manual | Auto, Manual | |
CoolTemp | Set Temperature (in Celcius) | 08 - 30 | |
CoolAutoMode | Set Automatic mode | Now, Advance, Override | |
CoolZoneA | Enable Zone A | Yes, No | |
CoolZoneB | Enable Zone B | Yes, No | |
CoolZoneC | Enable Zone C | Yes, No | |
CoolZoneD | Enable Zone D | Yes, No | |
EvapState | Set Evaporative Cooling state | On, Off | |
EvapPump | Switch pump on or off | On, Off | |
EvapFan | Switch fan on or off | On, Off | |
EvapSpeed | Set Fan Speed | 01 - 16 | |
EvapOperation | Set to Automatic (ie. schedule) or Manual | Auto, Manual |
To use the RinnaiTouchClient class in your own app/project include it with the require function. eg.
var RinnaiTouchClient = require('./RinnaiTouchClient');
The class supports both callbacks and events.
Callback example - Set Rinnai to "Cooling" mode:
RinnaiTouchClient.createClient((client) => {
client.send({Mode: "Cool"}, () => {
client.close();
});
});
Event example - Set Rinnai to "Heating" mode:
var client = RinnaiTouchClient.createClient();
client.on('ready', () => {
client.send({Mode: "Heat"});
});
client.on('commandSent', () => {
client.close();
});
The Core Library contains the classes required to connect to and control the Rinnai Touch Module
Command line format:
> node Rinnai [key value]
eg. To use the command line tool to retrieve the Module status execute without any parameters:
> node Rinnai
Connected: 192.168.1.3:27847
[{"SYST": {"CFG": {"MTSP": "N", "NC": "00", "DF": "N", "TU": "C", "CF": "1", "VR": "0183", "CV": "0010", "CC": "043", "ZA": "Bedrooms ", "ZB": "Living Areas ", "ZC": " ", "ZD": " " }, "AVM": {"HG": "Y", "EC": "N", "CG": "Y", "RA": "N", "RH": "N", "RC": "N" }, "OSS": {"DY": "SAT", "TM": "12:27", "BP": "Y", "RG": "Y", "ST": "N", "MD": "H", "DE": "N", "DU": "N", "AT": "999", "LO": "N" }, "FLT": {"AV": "N", "C3": "000" } } },{"HGOM": {"CFG": {"ZUIS": "N", "ZAIS": "Y", "ZBIS": "Y", "ZCIS": "N", "ZDIS": "N", "CF": "N", "PS": "Y", "DG": "W" }, "OOP": {"ST": "N", "CF": "N", "FL": "08", "SN": "N" }, "GSO": {"OP": "A", "SP": "22", "AO": "N" }, "GSS": {"HC": "N", "FS": "N", "GV": "N", "PH": "N", "AT": "L", "AZ": "R" }, "APS": {"AV": "N" }, "ZUO": {"UE": "N" }, "ZAO": {"UE": "Y" }, "ZBO": {"UE": "Y" }, "ZCO": {"UE": "N" }, "ZDO": {"UE": "N" }, "ZUS": {"AE": "N", "MT": "235" }, "ZAS": {"AE": "N", "MT": "235" }, "ZBS": {"AE": "N", "MT": "235" }, "ZCS": {"AE": "N", "MT": "235" }, "ZDS": {"AE": "N", "MT": "235" } } }]
Connection Closed
eg. To set Heating temperature to 22 degrees supply a command key and value:
> node Rinnai HeatTemp 22
Connected: 192.168.1.3:27847
Command sent
Connection Closed
URL format:
http://localhost:8080/[key/value]
eg. To retrieve the current status
http://localhost:8080/
eg. To set Heating temperature to 22 degrees
http://localhost:8080/HeatTemp/22