maxwellhadley / node-red-contrib-rfxcom

node-RED nodes to access an RFXtrx433 transceiver
BSD 2-Clause "Simplified" License
22 stars 13 forks source link

X10 remotes #76

Closed Strixx76 closed 5 years ago

Strixx76 commented 5 years ago

Is there possibilities to support X10 remotes?

I am switching from Domoticz to Home Assistant + Node-RED and just tried this amazing node. Everything seems to be working better than in both Home Assistant and Domoticz. But I am missing one thing.

And that is my X10 remotes witch are not picked up by any of your nodes. They do show up in Domoticz and Home Assistant. I only know some basic JavaScript, but is there something I can do to help to be able to get them accepted. Preferably both receive and transmit.

maxwellhadley commented 5 years ago

Do you mean X10 lighting remote controllers, or the old X10 'PC Remote' universal remote control? Lighting remote controls are supported by the rfx-lights-in node, and although I don't have one here to test, I haven't heard of any problems before. Of course, you need to have the X10 protocol enabled for receive in the RFX433, but if you have been using it successfully in Domoticz, it should be. You should also set the node 'listen for data messages from any address', at least initially.

Strixx76 commented 5 years ago

I do have node set to 'listen for data messages from any address'. At the moment I have all input nodes to a debug node for searching for all my devices.

The device not picked up is a security remote for an old (unsecured) home alarm system. Which uses X10 security over 433MHz. All the PIR and reed sensors are picked up nicely. But not the remotes.

Would it be possible with one node sending everything not recognized, for debugging?

maxwellhadley commented 5 years ago

That explains it - I hadn't included support for the X10 security remote. Which commands are you using, the arm/disarm/panic set, or the light 1 & light 2 on/off set? It should be fairly straightforward to add these: the alarm commands using the rfx-detector node, and the light control via rfx-lights-in

Strixx76 commented 5 years ago

I am using all of them. We have a couple of key ring remotes from an old alarm system, which have: Arm, Disarm, Light A on and off and Light B on and off. One of the have two buttons for panic, but I have never included them in any automation.

maxwellhadley commented 5 years ago

I have started work on an update:

The topic format for the remote is X10_SECURITY/0x1234 for alarm messages, and X10_SECURITY/0x1234/1 for lighting messages, where the last number is the light channel (1 or 2). All X10 devices now have a 2-byte device address instead of 3 - the middle byte was actually a check digit that is inserted automatically. This didn't used to matter as there was no transmit capability for X10 devices, but now it does.

I need to test this some more before publishing it - may not be for a few days, though

Strixx76 commented 5 years ago

Will there be possibilities to send 'arm' and 'disarm' with the rfx-alarm-out? As I understand it, an just as you write, the RFXtrx433E can now send X10 security.

maxwellhadley commented 5 years ago

That should be possible - I will add it to the list...

maxwellhadley commented 5 years ago

Version 2.8.0 published to npm - please check it out & let me know how you get on!

Strixx76 commented 5 years ago

Sorry to say but it doesn't seem to work. I couldn't update via Node-RED's built-in "Manage Palette" menu. So I had to update with command line. I can't find the logs to see why,

But neither the light buttons or arm/disarm was caught by the nodes.

I am away from home (disturbing my wife with pushing the remote) and on a very poor internet connection so I will have to investigate some more when I am back home in the middle of next week.

maxwellhadley commented 5 years ago

That's not good! Can you check that everything else that was working before is still working now? If so, we can work through troubleshooting when you are back.

Strixx76 commented 5 years ago

So back home. And it is working now. I reinstalled the package and know i see the remotes. Thank you.

Is it also possible to send "Disarm" & "Arm Away"? I use the old alarm units possibilities to make phone calls when Armed.

Strixx76 commented 5 years ago

I have noticed one thing not working correct. And that is if you set the rfx-lights-in to only listen for addresses matching patterns it still send all of the remotes. It seems as it is only filtering out the protocol, not the device address. The rfx-detector-in filters as it should, also on device adress.

maxwellhadley commented 5 years ago

You can send all the 'alarm' type commands using the rfx-alarm-out node: 'Panic', 'End Panic', 'Arm', 'Disarm'. You can modify the 'Arm' command with 'Home' or 'Away' (the default), and/or 'Delayed'. As always, capitalisation doesn't matter.

Sorry about the message filtering bug - 2.8.1 should have fixed this!

Strixx76 commented 5 years ago

Thank you. You should not be sorry for anything! I am grateful that you are able to fix this.

But I have noticed one thing that have changed in this version. My X10 motion sensors has a slightly different device addresses now. In 2.7.0 one PIR had "0xF6F9D4" but now it is "0xF6D4". Not a problem, I will just have to change some code. But, is this a "bug" or will it stay like this in the future?

maxwellhadley commented 5 years ago

Yes, this is a deliberate change, and it will be permanent. It has become necessary in order to be able to transmit X10 security remote commands.

It arises because the format of the device address in the 'security1' packet type from the RFXtrx433 is a bit different from most others. For X10 security devices only, and not from the other types of security device, the middle byte of the 3 address bytes is determined by the X10 protocol and is automatically generated by the RFXtrx433 - it is a checksum of some kind. So the actual range of allowed transmit addresses is only 0x0001 to 0xffff. Trying to use a 3 byte address gives an error. So I have changed it to remove the middle byte from the received address, as you observe. This means that the address as received can be used unmodified to transmit.