globalcache
v2.11.2
Published
Module to connect to Global Cache iTach devices and send IR strings.
Downloads
30
Readme
globalcache global-cache
Global Caché official website: http://www.globalcache.com.
Library to control Global Caché iTach devices (Global Cache iTach Flex devices are upcoming).
Based on https://github.com/tillbaks/node-itach.
This module was inspired by https://github.com/tillbaks/node-itach, but I rewrote most of his code to solve my home automation problems.
I use it with my iTach Flex WiFi (WF2IR).
Installation
npm install globalcache --save
Usage
var COMMANDS = {
"relay5v_on": "setstate,1:1,1",
"relay5v_off": "setstate,1:1,0",
"tv.power": "sendir,1:1,1,37735,1,1,171,171,21,64BB,21,21CCCCBBBCCCCCCBCCCCCCBCBBBBBB,21,3773",
"receiver.powerOff": "sendir,1:1,1,40453,,1,342,171,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,63,22,20,22,20,22,20,22,20,22,20,22,63,22,20,22,20,22,63,22,63,22,63,22,1430,342,171,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,63,22,20,22,20,22,20,22,20,22,20,22,63,22,20,22,20,22,63,22,63,22,63,22,4045",
"receiver.powerOn": "sendir,1:1,1,40453,,1,342,171,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,63,22,20,22,20,22,20,22,63,22,20,22,63,22,20,22,20,22,63,22,63,22,63,22,1430,342,171,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,63,22,20,22,20,22,20,22,63,22,20,22,63,22,20,22,20,22,63,22,63,22,63,22,4045",
"receiver.volumeDown": "sendir,1:1,1,40453,1,1,189,4,4,317,22,63,22,21CD,20,23,13,72,18,25,12,73,19,24,9,4,4,73,14,28,8,77,10,75,11,32,6,79,13,30,9,76,16,69,20,22,13,72,19,24,12,31,8,35,8,35,9,34,10,33,11,73DCCCC,22,1086,214,294CDCD,13,30,8,77,11,32,4,81,5,123,4,4010",
"receiver.volumeUp": "sendir,1:1,1,40453,1,1,342,170,22,63,22,21BCCBCBCBCBBCBCCBCBCCCCBCBCBBBB,22,1086ABCBCCBCBCB,21,22,12,73,15,70,12,31,5,80,7,36,4,127,4,2002,10,4010",
"receiver.dvd": "sendir,1:1,1,40453,1,1,339,169,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,0,20,22,63,22,20,22,63,22,20,22,63,22,63,22,20,22,63,22,20,22,20,22,63,22,20,22,63,22,63,22,20,22,20,22,20,22,63,22,20,22,63,22,20,22,20,22,63,22,63,22,63,22,4006"
};
var iTach = require('globalcache').iTach;
var remote = new iTach({
host: '192.168.1.13' // required: IP address of your iTach device
});
// transmit IR codes
remote.send(COMMANDS["tv.power"], function callback(err) {
if (err) {
throw new Error(err);
} else {
// command has been successfully transmitted to your iTach
}
});
// or transmit IR code another way
remote.send({ir: COMMANDS["receiver.dvd"]}, function callback(err) {
if (err) {
throw new Error(err);
} else {
// command has been successfully transmitted to your iTach
}
});
// transmit serial command
remote.send(COMMANDS["relay5v_on"], function callback(err) {
if (err) {
throw new Error(err);
} else {
// command has been successfully transmitted to your iTach
}
});
// transmit serial command
remote.send({serial: COMMANDS["relay5v_off"]}, function callback(err) {
if (err) {
throw new Error(err);
} else {
// command has been successfully transmitted to your iTach
}
});
// receive IR codes
remote.learn(function done(err, code) {
if (err) {
throw new Error(err);
} else {
console.log("Received code", code);
}
});
TODO:
- Rewrite
learn
method to use TCP sockets instead HTTP REST API - Add HEX IR code support
- Rework queue processing based on feedbacks and timeouts, remove DELAY_BETWEEN_COMMANDS
- Add Flex support
- Add support of RS232 (iTach WF2SL or IP2SL)