thecynic / pylutron

MIT License
31 stars 42 forks source link

Radio Ra 2 and Home Assistant #59

Closed Qallupilluq closed 3 years ago

Qallupilluq commented 4 years ago

I’m new here and to Home Assistant. I was told someone here may be able to lead me in the right direction. I’m a Ra2 installer and lately I’ve been asked by more than a few clients about timers, for example on a bathroom fan. Ra2 doesn’t natively support this. Does anyone know how I could add this functionality? Even if it’s just using a switch and having the system turn it off 30 minutes later.

cdheiser commented 4 years ago

I do this, but there are some things to consider that might not make it appropriate for residential installs. Honestly it still evades me as to why Lutron hasn't implemented timers at all.

Here's how this are effectively setup in my home:

Home Assistant talks to the Lutron Setup. Node Red talks to Home Assistant and watches for events. When one of the fan switches is activated, the node red flow kicks in and starts a timer to automatically turn it off if someone else doesn't turn it off.

I also have similar timers setup for my Hot Water pump, but I did this slightly differently in that:

Now why did I do it this way when Lutron allows me to literally bind the Pico Remote to the hot water switch? It's for the days when Home Assistant stops working. Granted, I have it auto-update which breaks things, but even a network hiccup or power blip can get things out of sync/disconnected. When I had it bound in Lutron, then I could end up turning on the hot water pump but not turn it off automatically. This way, the pump won't come on unless the automation is all working to turn it back off.

Which brings me to why I'm not sure if it's really appropriate for residential installs. You could probably do a bunch of work to make it far more resiliant, and paste over the fact that home assistant is running under the covers, but in the end it's going to be finicky.

Frankly given the cost of a single RRD-8ANS, I've pulled the RadioRA2 switches out to swap them with much dumber bathroom fan timer switches. It's cheaper, and I don't really need to turn on the fan remotely. The only exception here is the master bathroom where I have additional sensors hooked up to detect humidity changes to turn on the fan automatically.

Qallupilluq commented 4 years ago

The real reason for the timer in this case would be for a infrared patio heater run through a contractor. The owner would like to push a switch and have the timer turn off after a a given time if it's not manually shut off. Thank you for your thoughts. I'll have to look farther into this.

thecynic commented 4 years ago

Lutron doesn't expose this functionality in RRA2 for business reasons, not technical ines. Homeworks has this and many other features (like double taps) and they explicitly keep them out of ra2 to force more complex installs into homeworks. Drives me crazy, but they know they have a good enough market with ra2 that they don't have to canabalize their homeworks market, and for cheaper solutions they push you to casetta. It's good to be the king :)

Qallupilluq commented 4 years ago

I do this, but there are some things to consider that might not make it appropriate for residential installs. Honestly it still evades me as to why Lutron hasn't implemented timers at all.

Here's how this are effectively setup in my home:

  • Single RadioRA2 Main Repeater with Bathroom fans on Switches

  • Raspberry Pi 3B+ running Home Assistant and Node Red

Home Assistant talks to the Lutron Setup. Node Red talks to Home Assistant and watches for events. When one of the fan switches is activated, the node red flow kicks in and starts a timer to automatically turn it off if someone else doesn't turn it off.

I also have similar timers setup for my Hot Water pump, but I did this slightly differently in that:

  • There's a switch connected to the pump. Almost noone ever touches that switch. It's not in a convenient place.

  • I have 3 Pico remotes programed into RadioRA2 but not linked to anything.

  • The Node Red flow looks for events from the Pico Remotes to turn on/off the hot water switch.

Now why did I do it this way when Lutron allows me to literally bind the Pico Remote to the hot water switch? It's for the days when Home Assistant stops working. Granted, I have it auto-update which breaks things, but even a network hiccup or power blip can get things out of sync/disconnected. When I had it bound in Lutron, then I could end up turning on the hot water pump but not turn it off automatically. This way, the pump won't come on unless the automation is all working to turn it back off.

Which brings me to why I'm not sure if it's really appropriate for residential installs. You could probably do a bunch of work to make it far more resiliant, and paste over the fact that home assistant is running under the covers, but in the end it's going to be finicky.

Frankly given the cost of a single RRD-8ANS, I've pulled the RadioRA2 switches out to swap them with much dumber bathroom fan timer switches. It's cheaper, and I don't really need to turn on the fan remotely. The only exception here is the master bathroom where I have additional sensors hooked up to detect humidity changes to turn on the fan automatically.

How were you able to add Luton in Home Assistant? We've been trying for a while and can't get it. 🧐

cdheiser commented 4 years ago

In RadioRA2 (whatever version you're using), under Settings -> Integration, you need to add a username and password for the integration. It's all telnet/in-the-clear so don't use anything you use anywhere else.

Then for homeassistant, in configuration.yaml, you end up with:

lutron:
  host: ip_address_of_the_main_repeater
  username: username_from_radiora2
  password: password_from_radiora2

And you should really use secrets.yaml, but again, this is all over telnet in the clear anyway. Once you restart, you should see all the dimmers, switches, scenes/keypads, and shades.

Qallupilluq commented 4 years ago

This worked great. Thanks

dcode commented 3 years ago

@Qallupilluq if you're still looking for the automation piece of this in HA, which eluded me for some time, this is what I got working just today:

alias: Automatically Turn off Master Bath Exhaust
description: Automatically turns off master bath exhaust after 15 minutes
trigger:
  - platform: state
    entity_id: light.master_bath_exhaust_fan
    from: 'off'
    to: 'on'
condition: []
action:
  - delay: '900'
  - service: light.turn_off
    data: {}
    entity_id: light.master_bath_exhaust_fan
mode: single

I'm using a LMJ-16R-DV-B to control the exhaust fan. Once #61 is merged, it'll stop showing up as a dimmable light, but this works for now.

The other thing that the Lutron integration for HA lacks right now is proper unique entity support. This makes it more difficult to manage things strictly in the UI, but I'm hoping I can improve that be building a unique identifier from the UUID presented from the main repeater XML.

Qallupilluq commented 3 years ago

I know we just met but I love you . Thanks On Jan 5, 2021, 8:11 AM -0800, Derek Ditch notifications@github.com, wrote:

@Qallupilluq if you're still looking for the automation piece of this in HA, which eluded me for some time, this is what I got working just today: alias: Automatically Turn off Master Bath Exhaust description: Automatically turns off master bath exhaust after 15 minutes trigger:

  • platform: state entity_id: light.master_bath_exhaust_fan from: 'off' to: 'on' condition: [] action:
  • delay: '900'
  • service: light.turn_off data: {} entity_id: light.master_bath_exhaust_fan mode: single I'm using a LMJ-16R-DV-B to control the exhaust fan. Once #61 is merged, it'll stop showing up as a dimmable light, but this works for now. The other thing that the Lutron integration for HA lacks right now is proper unique entity support. This makes it more difficult to manage things strictly in the UI, but I'm hoping I can improve that be building a unique identifier from the UUID presented from the main repeater XML. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.
dcode commented 3 years ago

I buy into "love at first comment", it's okay.

maddeuce commented 3 years ago

I have 3 Pico remotes programed into RadioRA2 but not linked to anything.

The Node Red flow looks for events from the Pico Remotes to turn on/off the hot water switch.

Hi I interested how are you doing this. I'm running HA with lutron, but HA core intergation for lutron does not support pico remote. I been looking for a way to put all my 4 buttons pico to use to control other device..

I'm also running heavy automation with node red too. But as I know only info HA can give me on pico is linked lutron event as scene event in HA. As far as I know there no way keep track of scene event.. will unless you keep track of the device activation in those scene. But you way seem to able to track unbounded pico control command. I very interested in know how is done.

cdheiser commented 3 years ago

On Wed, Mar 10, 2021 at 9:36 PM maddeuce @.***> wrote:

I do this, but there are some things to consider that Red

Home Assistant talks to the Lutron Setup. Node Red talks to Home Assistant and watches for events. When one of the fan switches is activated, the node red flow kicks in and starts a timer to automatically turn it off if someone else doesn't turn it off.

Hi I interested how are you doing this. I'm running HA with lutron, but HA core intergation for lutron does not support pico remote.

It does support Pico remotes. The buttons show up as scenes (as that's how they're programmed in RadioRA2). Button presses also fire lutron_event(s)

I been looking for a way to put all my 4 buttons pico to use. I'm also running heavy automation with node red too.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/thecynic/pylutron/issues/59#issuecomment-796469571, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQARWUD7K45CP5HZDYCB4LTDBCEFANCNFSM4O2DBHMQ .

maddeuce commented 3 years ago

But I don't want that event. I want to use th remote as an switch to control other non lutron device. Or do you mean I setup an dummy scene on lutron, track the dummy scene activity and write another action to piggy ride that?

maddeuce commented 3 years ago

Can you show me an example on how to track an scene status on HA. Cause I can't find any status update with scene, so how do we use it to trigger other devices.

rdgerken commented 3 years ago

I would also like to learn how to use a Pico remote on a RadioRA2 system to control non-lutron devices via Home Assistant. I've added the Pico to my system, and did not program any outputs to it in the RA2 software. Home Assistant is detecting the Pico, and I have scene states for each button on the Pico showing up, but pressing them doesn't seem to generate any events in HA nor does it seem to change states. Any help is appreciated. TIA!

This custom Caseta integration supports Pico buttons as an HA sensor entity. I think that's similar to what I'm looking to do with the RA2 integration. https://github.com/upsert/lutron-caseta-pro/blob/master/custom_components/lutron_caseta_pro/sensor.py

toscano commented 3 years ago

Here's what I use for a Pico on my night table in my RadioRA2 system. There are three buttons named lights_on lights_off and lights_favorite

- alias: Master bedroom Pico On
  trigger:
    - platform: event
      event_type: lutron_event
      event_data:
        id: lights_on
  action:
    - service: light.turn_on
      data:
        entity_id: light.master_dresser
        brightness_pct: 50
rdgerken commented 3 years ago

Toscano, thank you for your help. I did not understand that I could hook into the "lutron_event" like that. That was the nudge I needed!

rdgerken commented 3 years ago

I guess while I'm here, I can maybe offer the OP some help to do the bathroom fan thing natively in RA2. The way this can be done is the following:

In the RA2 software:

This will basically just turn the fan off X minutes after you turn it on.

cdheiser commented 3 years ago

In NodeRed, you can do the same with a server-events node listening for the lutron_event type connected to a switch node that looks at the payload.event.id

I have a Pico Remove named "Water Heater". The event ids it sends are water_heater_on or water_heater_off. I use events for the on button to trigger a recirculating pump, and then a trigger node to turn it off after some time.

On Thu, Mar 11, 2021 at 4:04 PM Ryan Gerken @.***> wrote:

I guess while I'm here, I can maybe offer the OP some help to do the bathroom fan thing natively in RA2. The way this can be done is the following:

In the RA2 software:

  • On Design Tab - Add a room (i.e. Master Bathroom Rollback)
  • No need to add anything to the room
  • On Program Tab - select Occupancy
  • Select the rollback room you just created
  • Enable Rollback, set your timeout
  • Then select your bathroom fan, and set level to off

This will basically just turn the fan off X minutes after you turn it on.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/thecynic/pylutron/issues/59#issuecomment-797138401, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQARWUKQBSGAQS7RT5UFFTTDFD6RANCNFSM4O2DBHMQ .

maddeuce commented 3 years ago

In NodeRed, you can do the same with a server-events node listening for the lutron_event type connected to a switch node that looks at the payload.event.id I have a Pico Remove named "Water Heater". The event ids it sends are water_heater_on or water_heater_off. I use events for the on button to trigger a recirculating pump, and then a trigger node to turn it off after some time. On Thu, Mar 11, 2021 at 4:04 PM Ryan Gerken @.***> wrote: I guess while I'm here, I can maybe offer the OP some help to do the bathroom fan thing natively in RA2. The way this can be done is the following: In the RA2 software: - On Design Tab - Add a room (i.e. Master Bathroom Rollback) - No need to add anything to the room - On Program Tab - select Occupancy - Select the rollback room you just created - Enable Rollback, set your timeout - Then select your bathroom fan, and set level to off This will basically just turn the fan off X minutes after you turn it on. — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#59 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQARWUKQBSGAQS7RT5UFFTTDFD6RANCNFSM4O2DBHMQ .

OMG.... that what im been looking for haha server-events node... so dumb of me. Just remapped all my 4 button remote (8x). 32 remote devices... make my day. HA need to update their lutron integration page to include this information. This feature is GOLD for people with RadioRa2 https://imgur.com/ZSNDpkD

Oh is there an way to pickup button click event. I know in Habitat hub their lutron integration can divide each button into 2 event, short click and hold and release making even more control feature. Like short click to turn on device and hold and release to turn off.

cdheiser commented 3 years ago

See: https://www.home-assistant.io/integrations/lutron/#keypad-buttons

There are limitations as to which buttons generate press vs. release events. This is a limitation of RadioRA2.

On Thu, Mar 11, 2021 at 5:03 PM maddeuce @.***> wrote:

In NodeRed, you can do the same with a server-events node listening for the lutron_event type connected to a switch node that looks at the payload.event.id I have a Pico Remove named "Water Heater". The event ids it sends are water_heater_on or water_heater_off. I use events for the on button to trigger a recirculating pump, and then a trigger node to turn it off after some time. … <#m2609607748106536157> On Thu, Mar 11, 2021 at 4:04 PM Ryan Gerken @.***> wrote: I guess while I'm here, I can maybe offer the OP some help to do the bathroom fan thing natively in RA2. The way this can be done is the following: In the RA2 software: - On Design Tab - Add a room (i.e. Master Bathroom Rollback) - No need to add anything to the room - On Program Tab - select Occupancy - Select the rollback room you just created - Enable Rollback, set your timeout - Then select your bathroom fan, and set level to off This will basically just turn the fan off X minutes after you turn it on. — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#59 (comment) https://github.com/thecynic/pylutron/issues/59#issuecomment-797138401>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQARWUKQBSGAQS7RT5UFFTTDFD6RANCNFSM4O2DBHMQ .

OMG.... that what im been looking for haha server-events node... so dumb of me. Just remapped all my 4 button remote (8x). 32 remote devices... make my day. https://imgur.com/ZSNDpkD http://url

Oh is there an way to pickup button click event. I know in Habitat hub their lutron integration can divide each button into 2 event, short click and hold and release making even more control feature. Like short click to turn on device and hold and release to turn off.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/thecynic/pylutron/issues/59#issuecomment-797159767, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQARWWN54VEXPBNKSF4TKTTDFK3PANCNFSM4O2DBHMQ .

JonGilmore commented 3 years ago

going to close this out, seems the issue has ran its course. please open a new one if you're still having issues.