[OBSOLETE] Node Red Bridge for X-10 Devices (Switches, Modules, Remotes, Sensors and Security Modules)

Summary

This solution allows 2-way communication between SmartThings and X-10 devices using Node Red and Mochad. You can control your X-10 devices from within ST and use various automation solutions within ST. You can also use X-10 remotes and motion sensors to control other ST devices. X-10 equipment is fairly inexpensive and readily available on E-Bay etc.

Almost all X-10 is supported now with the exception of security consoles. Security consoles are X-10 controllers and the SmartThings hub is meant to replace its functions.

I have tried a few different ways of integrating X-10 devices with SmartThings, but every solution required tinkering and making changes outside the ST applications making maintenance difficult. In this solution all X-10 settings and device mappings are done using the SmartThings app. Only a couple of one-time settings need to be made on the Node Red flow.

Update January 11, 2019

  • This post (174) has a link to an updated setup guide which shows among otther things how to support node-red 0.91 and above thanks to @dgruen45 -
    please note: his process while, solves issues for some people also has bits that turn off RF, since he uses WGL RF repeater. If you don’t have a RF repeater or are using an RF-only device such as CM-19A you may want to skip that part. He has highlighted the differences between this guide and his.

  • Follow 3-4 posts starting at 166 starting here to read about X-10 sync issues and strategies

  • See these posts (152) if you want to disable the dimming functions

  • See this post (135) for compatibility with the node-red 0.19 and later

Update March 25, 2018

  • Slightly changed the node red flow to accommodate newer style security device addresses - should handle both old and new style

Update March 17, 2018

  • Security Remotes, Key Fobs, Panic Buttons, Motion sensors and Door/Windows sensors are supported now
  • Quite possible that other obscure sensors such as X-10 moisture sensor will work too
  • Security devices have only been tested on mochad, I don’t have the ability to test with heyu, if you are a heyu user and have the equipment to receive security codes, let me and we should be able to get it working

Update March 11, 2018

  • Dimming is supported now, see notes below
  • Heyu is supported in addition to mochad

Supported Devices and Functionality

  • X-10 Switches and Modules

  • X-10 Motion Sensors and Remote buttons - on/off functions supported from devices sending housecode/unitcode on/off commands

  • X-10 Securitry Remotes, Key fobs, and sensors - please note that X-10 has 2 type of motion sensors MS11A/MS12A/MS14A and MS16A, these transmit on/off using housecode/unitcode like switches.
    Then there are MS10A/MS18A security remotes that transmits alerts like the security devices, they don’t have housecode/unitcode buttons, instead they have pinhole type switch to set a random identity code.

  • Dimmer functions are fully supported for using X-10 remotes controlling SmartThings device

  • Controlling X-10 dimming functions from SmartThings is an interesting exercise in randomness. It sort of works, the number don’t mean anything its just a slider and up/down arrows. X-10 dimming was designed for physical devices with up/down buttons not deterministic software sending out percentages, its also very variable, same device on different bulbs will exhibit different behaviour.

Requirements

  • Raspberry Pi
    These instructions are for Raspberry Pi, but they can be easily adapted to any Linux variant

  • SmartThings hub using a fixed IP address
    This can be done by allocating a static IP address in your router. Exact steps will depend on the router.

  • Mochad and CM15A or CM19A USB Devices
    Mochad exposes a TCP interface to X-10 commands, and can run on any linux system including Raspberry PI. It uses CM15A or CM19A USB devices to communicate with X-10 over RF or powerline. Using these devices you are not limited to a single house code, you can use any of the 15 house code with any x-10 device.
    https://bfocht.github.io/mochad/
    https://bfocht.github.io/mochad/mochad_reference.html

  • Heyu and CM11A, CM17A firecracker and other Heyu supported devices (experimental)
    Please note that Heyu support is under development - I don’t have a heyu supported device, @JohnnyD69 has been helping me debug this with CM11A, however CM17A has not been tested

  • Node Red
    Node-RED is a programming tool for wiring together hardware devices, APIs and online services using a browser-based editor. Node Red is very simple to deploy and is very light-weight. Requires minimal effort to setup and run
    https://nodered.org/
    Redirecting


Pre-Setup

Please ensure that both Raspberry Pi and the ST hub get fixed IP addresses - most people do this by assigning static addresses for devices on their routers. Both the Pi and ST hub need to know where they are and it needs to stay the same.

Setup

Step 1: Install Mochad on Raspberry Pi

Follow any number of tutorials to setup your Raspberry Pi using your favorite distro, make sure you install the development tools. On Raspbian you can do this using the following command

sudo apt-get install build-essential

Build mochad
(Skip this step if you are using heyu - just get that running, however that is done)

  • Install libusb-1.0.0 development files. mochad will not build without this.

    $ sudo apt-get install libusb-1.0-0-dev

  • Get mochad source code and unpack it.

    $ wget -O mochad.tgz Download mochad
    $ tar xf mochad.tgz
    Now build mochad.
    $ cd mochad*
    $ ./configure
    $ make
    $ sudo make install

  • Edit /etc/udev/rules.d/91-usb-x10-controllers.rules change the following line to :

    RUN+=“/usr/local/bin/mochad &”

    This ensures that mochad will load whenever the usb device is detected, include when Raspberry pi reboots

Blink a lamp

  • Plug in a CM15A, CM19A, or CM15Pro into a Raspi USB port. Connect a lamp to X10 module set for address A1.

  • If using a CM15A or CM15Pro try the following power line (pl) commands.

    $ echo “pl a1 on” | nc localhost 1099
    $ echo “pl a1 off” | nc locahost 1099

  • If using a CM19A try the following radio frequency (rf) commands.

    $ echo “rf a1 on” | nc localhost 1099
    $ echo “rf a1 off” | nc localhost 1099

    At this point you should make a list of commands that you need to turn your X-10 devices on and off, you will need this later.

    credit - X10 Linux: Installing mochad on a Raspberry Pi

Step 2: Install & Setup Node Red

Install Node Red
Follow the instructions on this page to install Node Red on your Pi Redirecting

Play around a little bit to get the hangs of the basics

Setup Node Red

Step 3: Install the SmartApps and Device Handler in Smertthings
You will need to install the following SmartApps and DTH - make sure you install all 5

  • x-10-node-red-bridge.groovy
  • x-10-node-red-button-child.groovy
  • x-10-node-red-switch-child.groovy
  • x-10-node-red-device.groovy
  • x-10-node-red-security-child.groovy

The easiest way to get these is to use the github repository by clicking “Settings” when in the Device Handlers or SmartApps segment of the API, and adding a github repository:

Owner: enishoca
Repository Name: SmartThingsX
Branch: master

Otherwise, you can download them from here:

Step 4: SmartApp Setup and Adding Switches, Modules, Remotes and Motion Sensors

  • Install the SmartApp from your phone
    You will need to select the hub and configure IP address and port for the Node Red server - this should be the same IP address and port you use to connect to Node Red on the browser

  • You can then add X-10 devices on smartthings and set their X-10 addresses.
    Once you add a switch you should be able to turn it on and off. You can map remote buttons and motion sensor address to any ST Thing that supports on/off function and control it.

  • Restart Node Red
    Once you setup the SmartApp on the phone, you will need to restart the Node Red flow for it start processing correctly, you can either restart the pi at this point, or restart node red.

Screenshots
*** Main Setup**


*** Switches and Modules**

*** Remotes and Motion Sensors**

2 Likes

I have been looking into the ways to integrate X-10 devices as well. This looks great and what I have been looking for. Three questions:

  1. Can this work if you have a CM-11A interface(Serial connector)? I have played with getting Heyu setup and it’s working. It would be awesome if this could be adapted to use heyu as the backend instead of mochad.

  2. What is the reason that dimmer functions and security devices are not supported? Is that an underlying limitation of mochad?

  3. What is the reason that X-10 devices are not exposed to Alexa or Google Home in this implementation? If the device appears as a smartthings device and have a device handler should it not be just available? Does the device handler need to be tweaked to allow this?

Again this looks great, just hope it can be adapted to heyu or support the CM11 interface somehow.

It would dead easy to do, actually easier than mochad since mochad uses a funky tcp protocol -
Actually for Heyu, you don’t even need the silly nod-red thing and can can go directly from Heyu to ST and back

Unfortunately I don’t have CM-11A. and Heyu doesn’t support the CM15A which is what I have. Would have loved to use Heyu.

There are 2 ways of going forward with this -

  1. mods to node-red which I can probably walk you through with a little back and forth we can get it going
  2. Make a heyu adaptation of this code - which will require a bit more effort and groovy coding if you are up to it

Mochad passes on those messages just fine, I am not too familiar with them and those messages are inconsistent with the on/off patterns. Also the whole model for X-10 security devices is complex, and mapping to the ST model would have been hard. Another factor is all that I have is a remote that arms/disarms, so don’t really have anything to test with. If someone else has interest and adds them I would be happy to incorporate it in the code

Not sure why you got that impression, works fine with Alexa - I turn things on and off from Alexa all day long - and use @Mike_Maxwell Universal DH to receive the motion sensor/remote code and use them with the SmartLigthing App
[OBSOLETE] Universal Virtual Device Type and Translator

If node-red is not needed I would think best approach would be to eliminate it and go direct to heyu. Less moving parts is maybe better. With that said, I don’t think I would be up to doing the groovy coding part by myself. I would be willing to be a tester and endure a long back and forth to get this going. I have a bunch of X-10 equipment setup and some in a box including lamp modules, appliance modules, a chime module, x-10 eagle eye motion sensors, some wall switches, transceiver, a security system console with a security motion sensor and security door/window sensors, security key fob and security remote along with various regular remote controls, and some panic buttons. I think I have a PC RF receiver and maybe a firecracker in a box as well, but haven’t used them. Whatever approach that you are willing to dedicate time to I would be willing to assist.

I found this thread from your posting about the Hue bridge method and you mentioned that the advantage to that approach was that it supported alexa/google home. I thought that was the advantage over this node-red approach, but you were referring to a different approach I think, but not sure which one.

Let me know how you want to proceed next. I spent tonight getting heyu working right on my Linux Mint desktop. Was getting permission errors on directories and the ttyUSB0 serial port that I had to research and resolve. Seems to be all good now and was turning lights on and off and ringing the chime module from the command line without being root user. Would love to get that chime module working in smartthings. I just got my raspberry pi 3 the other day, but not the case yet. Did a little playing with it and setup PINN and looked at a few distros. Hopefully will have the case soon. Would plan to transition this setup from the Linux desktop to the Pi 3 eventually.

Earlier when i wrote that you could go straight to ST from Heyu, I was wrong, coding for heyu will be just as complex as mochad. I had scanned some pages very quickly and came to that conclusion. That was not talking to Heyu directy but someone else’a http interface and it was controlling devices only. Actually getting remotes and sensor data from heyu will be quite time consuming to setup and code for, even then its not clear how reliable it will be - I am sorry I won’t be able to dedicate time to this.

If you want to stick to Heyu your best bet would be to do the fake hue interface thing. It lets you turn things on/off, and is very easy to setup, and heyu setup for that will be right out of the box, no coding needed. There is a really good intractable on it, its written for Alex, but doesn’t matter, once you are pretending to be hue everything sees you automatically. From a cost/benefit prespective this integration is really suited for mochand and worth it if you want to use X-10 remotes with ST. Since that there is no pathway to use remotes for Heyu, I would stick to the hue implementation.
Have you considered getting CM15a/19a - 19a is pretty inexpensive on Ebay and you have so many devices, Heyu is really old stuff and pretty creaky. Sounds like you are just getting into it, you may want to have a deeper look at mochad - its quirky but robust and stable, my system has been running close to 4years, I was on Openhab, then Pimatic, then Wink and now ST. But the X-10 part of the things I did once and have been interfacing mochad in many ways.

I have been trying to find a CM15a on ebay for a reasonable price. No luck so far. I am trying to avoid the RF based CM19A because I haven’t found the RF to be as reliable for me. CM11a to powerline is pretty rock solid. I may implement the hue bridge in the meantime, but have lost my motivation now that I see your solution which will allow the remotes and sensors to work more seamlessly with smartthings.

Would you happen to know why mochad is for the USB based x-10 controllers only(CM15a/CM19A) and not the Serial based (CM11a/CM17a)?

No idea - whatever the dev chose to implement - may be they didn’t have CM11a -

Came across this thread in the openhab forum, so this guy has done sending half of mochad for firecracker, since firecracker is read-only, but the code looks very simple. Also see the other project he is referring to - seems like CM!!a is more intellegent device that CM15a, the code there is minimal for sending.
Legacy X10 Support - #3 by clach04 - Bindings - openHAB Community

Do you know how to capture data over serial port using a comms app? putty in windows or coolterm in mac?

if you do send me a few dumps of recieved on/off signals. lets see what they look like, if the interface is straight forward and doesn’t require twiddling, then may be it can be done in node-red without a lot of hassle

Look what I found under my bed - I bought it years ago from some yard sale and never used it
IMG_2103IMG_2104
I
It’s serial port looks like this:
seria

Last time I saw that was on a commodore, when I was in high school.

But I think I should be able to get data from it, and hopefully this should be compatible with CM11a

Atleast the manual is online - Blast from the past, LOL

1 Like

All kidding aside, as I am reading this manual i realize that this came with an SDK of in Basic which looks pretty comprehensive. Wonder if someone still has that code on some 5 1/2 floppies somewhere.

@JohnnyD69 - OK I think I have made some progress using this funky thingy. I learnt that Heyu doesn’t work on it, but a predecessor of heyu does. So this is close enough that I can get you going with some help from you.

Can you please do this - run heyu monitor in a terminal - and send me the output. Just make sure you don’t use their aliases thing in the config, and

  1. turn something on and off using an rf remote
  2. repeat 1 with an hardwired controller
  3. use a motion detector and capture on/off

$ heyu monitor

Housecode is B

B2 Lamp module-RF remote on/off
Monitor output:
02/20 22:25:57 Monitor started
02/20 22:26:37 rcvi addr unit 2 : hu B2 (no_alias)
02/20 22:26:37 rcvi func On : hc B
02/20 22:26:55 rcvi addr unit 2 : hu B2 (no_alias)
02/20 22:26:55 rcvi func Off : hc B

B4 code module-RF remote on/off
Monitor output:
02/20 22:27:04 rcvi addr unit 4 : hu B4 (no_alias)
02/20 22:27:04 rcvi func On : hc B
02/20 22:27:13 rcvi addr unit 4 : hu B4 (no_alias)
02/20 22:27:13 rcvi func Off : hc B

B4 code module-RF remote on/off-X-10 Eagle Eye Sensor (Looks same as RF remote on/off)
Monitor output:
02/20 22:27:04 rcvi addr unit 4 : hu B4 (no_alias)
02/20 22:27:04 rcvi func On : hc B
02/20 22:27:13 rcvi addr unit 4 : hu B4 (no_alias)
02/20 22:27:13 rcvi func Off : hc B

I have a hardwired wall switch. Didin’t see any output on Heyu monitor when manually turning the wall switch on and off.

Ran heyu command lines on b2
$ heyu on b2
02/20 22:52:07 sndc addr unit 2 : hu B2 (no_alias)
02/20 22:52:08 sndc func On : hc B

$ heyu off b2
02/20 22:52:36 sndc addr unit 2 : hu B2 (no_alias)
02/20 22:52:36 sndc func Off : hc B

heyu help

Usage: heyu [options] (Run ‘heyu help’ for commands)

[Options]
-v Enable verbose mode
-c Specify full configuration file pathname
-s Specify full schedule file pathname
-0 
 -9 Config file is in subdirectory /0 
 /9
of standard location, e.g., $HOME/.heyu/3/x10config

[Administrative commands (H = Housecode)]
heyu info Display CM11A registers, clock, and upload status
heyu help [category|command] This screen [category or command]
heyu help help Explain help usage
heyu start Start Heyu background processes (daemons)
heyu stop Stop Heyu background processes
heyu restart Reconfigure running Heyu background processes
heyu engine Start the (optional) Heyu state engine daemon
heyu aux Start the (optional) Heyu auxiliary RF input daemon
heyu monitor Monitor X10 activity (end with )
heyu date Return date in date(1) input format
heyu erase Zero CM11A EEPROM, erasing all events and macros
heyu syn Display built-in synonyms for direct commands
heyu Execute a scene or usersyn defined in the config file
heyu show (Enter ‘heyu show’ to see options)
heyu script_ctrl Launch scripts disable|enable
heyu initstate [H[U]] Zero entire state table or just for address H[U]
heyu initothers Zero cumulative address table
heyu reset [H] Reset interface to housecode H or default
heyu setclock Set CM11A clock to system clock (per schedule)
heyu readclock Display CM11A and system clocks (per schedule)
heyu newbattery Reset CM11A battery timer to zero
heyu purge Cancel pending CM11A delayed macros
heyu clear Clear CM11A registers
heyu list Display Lock, Spool, and System base directory names
heyu upload [check|croncheck] Upload schedule to CM11A or check schedule file
heyu upload status|cronstatus Display status of uploaded schedule
heyu catchup Emulate uploaded Timers from 0:00 to current time today
heyu trigger Hu on|off Emulate Trigger in uploaded schedule
heyu macro Emulate Macro in uploaded schedule
heyu utility (Enter ‘heyu utility’ to see options)
heyu logmsg <“text”> Display text message in log file and/or monitor
heyu wait [timeout] Wait until macro execution is completed
heyu cm10a_init Initialize CM10A interface. (For CM10A only!)
heyu restore_groups Restore extended group and xconfig settings
heyu logtail [N] Display tail [N lines] of log file
heyu sec_emu Hu Emulate an X10 Security signal
heyu launch Launch script. Enter ‘heyu launch’ for usage
heyu conflist Display list of all configuration directives
heyu modlist Display list of all module types
heyu stateflaglist Display list of all state flags
heyu masklist Display lists of all environment variable masks
heyu webhook Enter ‘heyu webhook’ for usage
heyu version Display the Heyu version and exit

[State commands (H = Housecode, u = Single unit) - require heyu engine]
heyu enginestate Display 1 if state engine is running, else 0
heyu armedstate Bitmap: 1 = armed, 2 = home, 4 = armpending, 8 = tamper
heyu sensorfault Bitmap: 1 = low battery, 2 = inactive, 8 = tamper
heyu flagstate n Boolean state of flag n
heyu nightstate Boolean state of night flag
heyu darkstate Boolean state of dark flag
heyu sunstate Bitmap: 1 = night, 2 = dark
heyu spendstate H[u] Status-pending bitmap of H or Boolean Hu
heyu onstate H[u] On-state bitmap of H or Boolean Hu
heyu offstate H[u] On-state complement bitmap of H or Boolean Hu
heyu dimstate H[u] Dim-state bitmap of H or Boolean Hu
heyu fullonstate H[u] FullOn-state bitmap of H or Boolean Hu
heyu chgstate H[u] Changed-state bitmap of H or Boolean Hu
heyu alertstate H[u] Alert-state bitmap of H or Boolean Hu
heyu clearstate H[u] Clear-state bitmap of H or Boolean Hu
heyu auxalertstate H[u] AuxAlert-state bitmap of H or Boolean Hu
heyu auxclearstate H[u] AuxClear-state bitmap of H or Boolean Hu
heyu addrstate H[u] Addressed-state bitmap of H or Boolean Hu
heyu activestate H[u] Active-state bitmap of H or Boolean Hu
heyu inactivestate H[u] Inactive-state bitmap of H or Boolean Hu
heyu lobatstate H[u] Low_Battery-state bitmap of H or Boolean Hu
heyu validstate H[u] Valid function state bitmap of H or Boolean Hu
heyu statestr H State mini-bitmaps of all units as ASCII string
heyu dimlevel Hu Brighness level of module Hu as 0-100%
heyu rawlevel Hu Native level (0-210, 1-32, or 0-63) of module Hu
heyu memlevel Hu Stored level 0-100% for module Hu with memory
heyu rawmemlevel Hu Stored native level for module Hu with memory
heyu heyu_state Hu Heyu script environment state bitmap (as integer)
heyu heyu_rawstate Hu Heyu script raw environment state bitmap (as integer)
heyu heyu_vflagstate Hu Heyu script vFlag environment state bitmap (as integer)
heyu xtend_state Hu Xtend script environment state bitmap (as integer)
heyu rcstemp H RCS compatible temperature (stored value)
heyu fetchstate See man page heyu(1)

[RFXSensor state commands (H = Housecode, u = Single unit) - require heyu engine]
heyu rfxtemp Hu Temperature
heyu rfxrh Hu Relative Humidity
heyu rfxbp Hu Barometric Pressure
heyu rfxpot Hu Potentiometer setting
heyu rfxvs Hu Supply Voltage
heyu rfxvad Hu A/D Voltage
heyu rfxvadi Hu Internal A/D Voltage
heyu rfxlobat Hu Low Battery state (Boolean)
heyu rfxtemp2 Hu Second Temperature

[RFXMeter state commands (H = Housecode, u = Single unit) - require heyu engine]
heyu rfxpower Hu Watt-Hour meter reading
heyu rfxpanel [n] Total Watt-Hours for Power Panel [n]
heyu rfxwater Hu Water meter reading
heyu rfxgas Hu Gas meter reading
heyu rfxpulse Hu Pulse meter reading
heyu rfxcount Hu Raw counter of any meter

[DigiMax state commands (H = Housecode, u = Single unit) - require heyu engine]
heyu dmxtemp Hu DigiMax current temperature ©
heyu dmxsetpoint Hu DigiMax setpoint temperature ©
heyu dmxstatus Hu DigiMax On/Off status (1 = On)
heyu dmxmode Hu DigiMax Heat/Cool mode (1 = Heat)

[Oregon group state commands (H = Housecode, u = Single unit) - require heyu engine]
heyu oretemp Hu Oregon sensor Temperature
heyu orerh Hu Oregon sensor Relative Humidity
heyu orebp Hu Oregon sensor Barometric Pressure
heyu orewindavsp Hu Oregon sensor Wind Average Speed
heyu orewindsp Hu Oregon sensor Wind Instantaneous Speed
heyu orewinddir Hu Oregon sensor Wind Direction
heyu orerainrate Hu Oregon sensor Rainfall Rate
heyu oreraintot Hu Oregon sensor Total Rainfall
heyu ore_emu Hu Enter data in Oregon emulation module
heyu elscurr Hu Electrisave CM113 Current
heyu owlpower Hu Owl CM119 Power
heyu owlenergy Hu Owl CM119 Energy

[Direct commands (H = Housecode, U = Units list)]
heyu on HU Turn units ON
heyu off HU Turn units OFF
heyu bright HU Brighten units by (1-22)
heyu brightb HU Brighten units by (1-22) after full bright
heyu dim HU Dim units by (1-22)
heyu dimb HU Dim units by (1-22) after full bright
heyu obdim HU Dim units by (1-22) after full bright
heyu lightson H Turn All Lights ON
heyu lightsoff H Turn All Lights OFF (**)
heyu allon H Turn Units 1-16 ON
heyu alloff H Turn All Units OFF
heyu turn HU Change state on|off|up|down [vv]
heyu preset HU Preset units to (1-32) ()
heyu mpreset HU Limited Preset for macros - see manpage
heyu preset_level Preset to (1-32) (function only)
heyu status HU Request ON/OFF status (two-way modules)
heyu status_on HU Status Acknowledge ON
heyu status_off HU Status Acknowledge OFF
heyu hail [H] Hail other devices
heyu hailw [H] Hail other devices, await ack (
)
heyu hail_ack [H] Hail Acknowledge
heyu data_xfer H Data Transfer (function code 0xC)
heyu xon HU Extended Turn Units Full ON (LM14A)
heyu xoff HU Extended Turn Units Full OFF (LM14A)
heyu xpreset HU Extended Preset (0-63) (LM14A)
heyu xallon H Extended All Units ON (LM14A)
heyu xalloff H Extended All Units OFF (LM14A)
heyu xstatus HU Extended Status Request (LM14A)
heyu xconfig H <mode 0-3> Extended config auto status mode (LM14A)
heyu xpowerup HU Extended module power-up signal (LM14A)
heyu xgrpadd HU G Include in Group (G = 0-3) at current level
heyu xgrpaddlvl HU g Include in Group (g = 0-3) at
heyu xgrprem HU g[,g,
] Remove HU from one or more Groups (g = 0-3)
heyu xgrpremall H g[,g,
] Remove H from one or more Groups (g = 0-3)
heyu xgrpexec H G Execute extended Group G function (LM14A)
heyu xgrpstatus HU G Extended Group G Status Request (LM14A)
heyu xfunc <T/F> HU Extended command - general
heyu xfuncw <T/F> HU Extended command - general, await ack ()
heyu address HU [HU [
]] Send Housecode|Units addresses only (
)
heyu function <command 
> Send command function only
heyu kill_all_hc Send All_Units_Off to All Housecodes
heyu pause N.NNN Pause for N.NNN seconds ()
heyu sleep N.NNN Sleep for N.NNN seconds (
)
heyu delay NNN Delay for NNN minutes, NNN = 0-240 ()
heyu rdelay [MIN] MAX Delay random time [MIN-]MAX minutes (0-240) (
)
heyu rcs_req <query_command> Request RCS compatible status ()
heyu temp_req <query_command> Request temperature (RCS compatible) (
)
heyu vdata HU Write data (0-255) to virtual module (@) ()
heyu vdatam HU Write mem data (0-255) to virtual module (@) (
)
heyu arm [parameters] Arm system [home|away] [min|max] (@) ()
heyu disarm Disarm system (@) (
)
heyu setflag n[,n
] Set one or more flags (@) ()
heyu clrflag n[,n
] Clear one or more flags (@) (
)
heyu settimer N hh:mm:ss Set countdown timer N to hh:mm:ss (@) ()
heyu setrtimer N [MIN] MAX Set timer N to random [MIN-]MAX hh:mm:ss (@) (
)
heyu clrtimers Reset all countdown timers to zero (@) ()
heyu clrspend H[U] Clear status-pending flags (@) (
)
heyu clrtamper Clear security tamper flags (@) ()
heyu setcount N Set counter N to (0-64K) (@) (
)
heyu inccount N Increment counter N by 1 (@) ()
heyu deccount N Decrement counter N by 1 (@) (
)
heyu null Null command - does nothing (*)

[Shutter (Extended Type 0) direct commands (H = Housecode, U = Units list)]
heyu shopen HU Open shutter to level (0-25) and cancel limit
heyu shopenlim HU Open shutter to level (0-25), enforce limit
heyu shsetlim HU Set limit (0-25) and open shutter to limit
heyu shopenall H Open all shutters fully and cancel limit
heyu shcloseall H Close all shutters fully

[CM17A “Firecracker” commands (H = Housecode, U = Units list)]
heyu freset Reset CM17A device ()
heyu fon HU Transmit RF On (
)
heyu foff HU Transmit RF Off ()
heyu fbright H[U] Transmit RF Brights [after On] (
)
heyu fdim H[U] Transmit RF Dims [after On] ()
heyu fdimbo HU Transmit RF Dims after Off (
)
heyu flightson H Transmit RF All Lights On ()
heyu flightsoff H Transmit RF All Lights Off (**) (
)
heyu falloff H Transmit RF All Units Off ()
heyu farb xx xx Transmit RF Arbitrary 2-byte hex code (
)
heyu farw xxxx xxxx 
 Transmit RF multiple 16-bit hex words ()
heyu flux Special for UX23A/UX17A - see manpage (
)
heyu ffbright H[U] Transmit RF Brights [after On] (#) ()
heyu ffdim H[U] Transmit RF Dims [after On] (#) (
)
heyu ffdimbo HU Transmit RF Dims after Off (#) ()
heyu ffarb xx xx Transmit RF Arbitrary 2-byte hex code (#) (
)
heyu ffarw xxxx xxxx 
 Transmit RF multiple 16-bit hex words (#) ()
heyu fflux Special for UX23A/UX17A - see manpage (#) (
)

Heyu help continued:

[Internal engine precommands (See man pages)]
@arm [parameters] Arm system [home|away] [min|max] (@) ()
@disarm Disarm system (@) (
)
@setflag n[,n
] Set one or more flags (@) ()
@clrflag n[,n
] Clear one or more flags (@) (
)
@settimer N hh:mm:ss Set countdown timer N to hh:mm:ss (@) ()
@setrtimer N [MIN] MAX Set timer N to random [MIN-]MAX hh:mm:ss (@) (
)
@clrtimers Reset all countdown timers to zero (@) ()
@clrspend H[U] Clear status-pending flags (@) (
)
@vdata HU Write data (0-255) to virtual module (@) ()
@vdatam HU Write mem data (0-255) to virtual module (@) (
)

@setcount N Set counter N to (0-64K) (@) ()
@inccount N Increment counter N by 1 (@) (
)
@deccount N Decrement counter N by 1 (@) ()
@decskpz N Decrement counter N and skip if Zero (@) (
)
@decskpgz N Decrement counter N and skip if Greater than Zero (@) ()
@decskpnziz N Dec counter N and skip if Non-Zero or Initial Zero (@) (
)
@null Null command - does nothing (@) (*)

(*) Not available for use in uploaded macros.
(**) Many lamp modules do NOT support this command.
(#) Fast CM17A command - see man x10cm17a(5) for configuration.
(@) Ignored unless state engine is running.

Man pages:
heyu(1), x10config(5), x10sched(5), x10scripts(5), x10aux(5), x10cm17a(5), x10rfxsensors(5), x10rfxmeters(5), x10digimax(5), x10oregon(5), x10kaku(5).

Ran some additional Heyu Command lines:

heyu dim b2 12

02/20 23:24:46 sndc addr unit 2 : hu B2 (no_alias)
02/20 23:24:56 sndc func Dim : hc B dim %59 [~123]
02/20 23:25:07 sndc func Dim : hc B dim %59 [~123]

heyu dim b2 5

02/20 23:33:15 sndc addr unit 2 : hu B2 (no_alias)
02/20 23:33:24 sndc func Dim : hc B dim %22 [~46]

One more thing, I triggered some events from my alarm system, Alarm motion sensor and door sensor, but not activity in Heyu monitor.

I actually triggered the alarm which is supposed to trigger the light on B2, however this stopped working once the alarm base unit was accidentally dropped couple of years ago. it doesn’t dial out any longer either. It does trigger the siren. I didn’t see any activity on B2 when the alarm was triggered, but that is because it is partially broken like I said.

I have another serial device which is a RF remote wireless receiver MR26a. I don’t have it currently hooked up, but would be willing to try it, especially if it could receive signals from the x-10 security sensors (motion and door/window). I think I also have the firecracker in the garage somewhere, but would have to look for it.
I guess between the MR26a receiver and Firecracker transmitter, you get the equivalent of the MR19a transceiver.

Let me know if you want any other logged data data from heyu monitor. Just as an FYI, the CM11A is hooked up to a serial to USB adapter cable on a Linux Mint 18 desktop where I have heyu running. Don’t know if you need that info, but just sharing in case.

Do you still need me to do the serial port capture?

Last comment before bed, that definitely looked like a Commodore 64 serial interface. Did you have a cable to connect it to a regular DB9 serial port on your PC? I have my old C64 in my parents basement. Haven’t tried to turn that on in well over 15 years. No idea if it would boot. Thanks for looking at this!

Thanks for the captures, let me if I can make a modified node-red module with heyu - no serial capture would have done no good. I had stumbled on some python software that initially looked good but in the end didn’t pan out. Don’t think hardwired stuff produces any codes.

Functionally yes but for this purpose I don’t think it would matter much. I have used both 19A and 15A - If you just want to use remotes and sensors then RF only is fine - but if you want to do uses appliance module then you need a RF tranciever per house code. Before I went to zwave/zigbee with wink, I was 100% x10 with openhab, even wrote a kodi binding for it. Anwyway back then, I had to keep my modules seperated among 2 house codes, and remotes/motion sensors sort of floated.

As I am writing this, I am thinking that given the number of modules, another avenue to explore maybe another HA system that has X-10 well supported and bridge that to ST. Look you will need a bridge between your X-10 and ST and given X-10 complexity it will have to be 2 hop, just like this solution is. i.e. X-10->mochad/heyu → something that transforms to ST → ST.
So that second hop may as well be something that has good X-10 support. Let me explore this path a bit more. I like both pimatic and openhab, both have modular systems and they are very light weight and easy to understand. I know mochad is well supported on them, don’t know about heyu

@JohnnyD69 Try out this combo and see if works - I have seen heyu people in reddit, talking about homebridge and they seem to like it a lot. assuming you have iOS devices. with this automation will need to be done on ios side

Install homebridge


it really one command but this youtube video shows you a couple of flags to use with npm install for that gets around some errors -

and heyu plugin - all instructions are here -

then this homebridge plugin will hook it up to ST

The advantage this has over my solution is that it will support dimming, where my solution will never be able to.

The node-red stuff interests me more at this point. Been thinking about how else it could be utilized to integrate the smartthings setup with google home for voice push notifications. Was listening to some youtube videos on my car ride regarding that. I looked at the Homebridge video, but not sure I am ready to maintain yet another setup/config of software. I can’t dedicate more time to smartthings as it is at this point. Node-red has caught my interest for the moment. If you were able to hack up something from node-red to heyu or with mochad also in the mix, I would run it though it’s paces and test it out. Thinking of hooking up the MR26a receiver to Heyu and see if I can receive any activity from the Security door/motion sensors from Heyu monitor.