Cynical Cache

Cynical Caché #

This plugin deals with Global Caché devices, which can do a variety of things useful for home automation - drive serial ports over the network, manipulate relays and dry contact sensors, control Consumer Infrared (CIR) signals, and such. Supported devices include

  • iTach network devices (including the iTach Flex)
  • GC-100 network devices of all kinds
  • IRL serial infrared learner
  • GC-IRE serial infrared extender At this point, Cynical Cache supports all functions of these devices (except LED dimming), assuming of course you have the relevant hardware being supported.

Global Cache is pretty good about maintaining backward compatibility for their devices. If you have a newer device that’s not on this list, there’s a decent chance that it’ll work “just like that other one”, so experiment or ask on the support forum.

Overview #

  • Install Global Cache devices normally. Use their web interface to configure their device ports as you wish; Cynical Cache will read the configuration off the devices when it connects to them.
  • Create an Indigo device for each of them. Make sure the devices are powered up, operating, and reachable (“ready” state).
  • Create an Indigo IR Emitter device for each device port that is configured to be an IR transmitter (whether it’s a transmitter bug, a blaster, or a GC-CGX adapter).
  • Install any infrared interface devices by plugging them into either a local serial port on your Macintosh (using USB adapters or whatever else you have handy), or into a serial port on a Global Cache device configured earlier. Remember to set the serial ports to 4800bps for them.
  • Create an Indigo IR Receiver device for each of them.
  • Create relay devices or sensor devices for any device ports so configured.
  • Have your way with actions and events for these devices.

Cynical Cache does not currently support LED-dimmer ports, because I don’t have any hardware for this function. Serial ports can be directly used for IRX devices only, but the serial port can be used with any plugin that lets you specify a network serial port - the first serial port is port 4999 at the iTach or GC-100 address; the second serial port on a GC-100-12 is at port 5000. This includes a great many Cynical plugins as well.

Configuration Settings #

Setting Value Description
Database filename Path to an infrared signal database. Leave empty if you don’t have one.
Learning Device device Which IR Receiver device to listen to when you press the Learn button a configuration window.

The network database feature was a work in progress and will likely never be published. Ask me if you’re curious.

Working With IR Symbols #

IR Emitter devices let you send IR codes, and IR Receiver devices let you recognize them when they arrive. In the air, they are modulated light waves, but inside Cynical Cache, they are stylized strings delimited by angle brackets that look like “<NEC:74b2/2f>” or “<generic:00F2 723B ...>”. You can - and probably should - treat these strings as magic cookies whose meaning you don’t need to understand. But how do you get them into the dialog fields?

The easiest way to figure out an IR code string is to learn it: pick a supported IR receiver device, make it the learning device in the plugin preferences, and use the Learn button in an action or event dialog. This way you don’t need to understand these strings at all; you just pull them off your remote. Note that Indigo imposes a ten-second timeout after you click the Learn button, so be ready.

If you can’t do that, you can search the Internet for the hex code of the desired IR symbol. That’s a string with lots of digits and letters in groups of four, like so:

0000 006d 0022 0002 0156 00aa 0016 0015 ... 0156 0055 0016 0e38

You can take this string from anywhere (a website, some text document, etc.) and drag or paste it directly into the IR symbol fields of action and event dialogs. Cynical Cache will automatically convert it to its preferred form.

Network Device Device #

This is a Global Cache network device of some kind. This is what has an IP address and a web server you use to configure it. These devices can have all kinds of interface devices attached to them. Cynical Cache automatically figures out the kind and capabilities of the device.

Note that older Global Caché devices do not respond to ping requests. Test their reachability with HTTP requests.

If you need to reconfigure the device (say, turn an emitter port into a sensor), do so through the device’s own web page and then just reload the plugin.

Configuration Settings #

Setting Value Description
Network Host Address IP address or name Name or address of the Global Caché network device.
Keepalive checkbox Periodically talk to the device to make sure it’s still responding.

IR Emitter Device #

This is an interface on a iTach or GC-100 device that can send infrared signals. It works with all types of emitters - normal bugs, blasters, and GC-RGX adapters.

Configuration Settings #

Setting Value Description
Address menu Network and device address of the desired emitter device.

IR Receiver Device #

This is a GC-IRE or CG-IRL device that can receive infrared signals. The hardware has a serial interface. Cynical Cache supports both local serial ports on the computer running the Indigo server, and serial ports attached to any GC network device as long as you have defined it already as a Network Device in Indigo; just pick it from the popup list.

Configuration Settings #

Setting Value Description
Address menu Pick a serial port name for a local serial port, or a GC device address for a network serial port.
Assign to variable An Indigo variable name to hold the last IR symbol received by this device.

Relay Device #

This is an interface on a iTach or GC-100 device that can make low voltage electrical connections (“dry contacts”). This is a standard switch device, so you can just turn it on or off (or toggle it) like any switch - it needs no special actions.

Configuration Settings #

Setting Value Description
Address menu Network and device address of the desired relay device.

Sensor Device #

You can configure IR emitter devices on a iTach or GC-100 platform to instead act as sensors. This requires the use of a specific interface cable (depending on what you’re trying to sense). You need to configure the port for sensor operation through the device’s web interface. Select sensor notify mode to have Cynical Cache automatically keep track of changes on the sensor. If you select sensor mode, you will need to poll the port to see changes.

This is a standard Indigo sensor device and can be used like one.

iTach devices deliver sensor notifications differently than GC-100s (using UDP). When you use the web interface to switch a port to sensor notify mode, you may set a network port and a timer. Make sure to leave the network port at its default (9132). You may set the notify timer to anything you like, but zero is most efficient for Cynical Cache’s use.

Configuration Settings #

Setting Value Description
Address menu Network and device address of the desired relay device.

Actions #

Send IR Signal Action #

This action tells an IR Emitter device to send an IR signal you specify.

Configuration Settings #

Setting Value Description
IR Code string The IR signal to send.
Repeat number How many repetitions of the signal to send.
Learn button Take the next infrared symbol received and put it into the IR Code field.

The text in the IR Code field can be anything understood by Cynical Cache - see Working with IR symbols.

The Repeat Count field has the same effect as holding down the button of a remote control - the larger the number, the longer the button is held down. Depending on the function, this may or may not have an interesting effect. Experiment as needed.

Events #

IR Symbol Received Event #

This event triggers when the specified IR Receiver device detects an infrared signal that matches the specified symbol. This is the way you can make Indigo do things when the user presses a button on an infrared remote, anywhere in sight of a receiver device.

Configuration Settings #

Setting Value Description
Device device Choose an IR Receiver device. If you don’t specify one, all enabled receiver devices are eligible.
IR Code string A particular infrared symbol or code to look for.
Learn button Take the next infrared symbol received and put it into the IR Code field.

If you leave everything blank, this event will fire whenever any infrared signal is received on any active receiver device. You will usually want to refine this. Specify a particular receiver device to restrict the event to only signals received by that device. Enter a particular IR Code to restrict the event to only receipt of this particular code. (It doesn’t matter how long you hold down the button. There is currently no way to get the repetition count of a recognized IR code.)

The text in the IR Code field can be anything understood by Cynical Cache - see Working with IR symbols.

Notes #

Release Notes #

Notable releases:

Release Notes
1.8.0 Released under Apache 2.0 license.
1.7.2 Support for Indigo 7.
1.6.8 Changes to support iTach Flex firmware 16 and later.
1.6.4 Support for iTach Flex devices.
1.5.0 Keepalive support. Better Indigo 6 support. Better sensor notify support.
1.1.2 Support sensor notify operation (UDP) on iTach devices.
1.1.1 Support sensor operation on GC-100 and iTach devices.
1.1.0 Support relays on GC-100 and iTach devices.Support field formulas.
1.0.5 Fix another problem emitting repeated generic codes. Tolerate crud IR input better.
1.0.4 Fix a problem emitting repeated generic codes.
1.0.3 Fix hex code ingest. Some hex codes no longer get gratuitously replicated.
1.0.2 Allow raw hex codes for IR symbols. IR fields are now checked upon entry.
1.0.1 Learning generic IR codes from iTach devices now works.
1.0.0 Initial release.