Hide controls when the device is down

I would like to hide the view of an control when the device status is down. I am using nmap tracker for the device discovery, if the device is down, I don’t want to show the status of the device, whereas if it is up, it should show online and an automation control to shut down the same.
Now the controls are always visible. Is it possible to do it?.

You can alter the visibility of a group with an automation:
https://home-assistant.io/docs/configuration/group_visibility/

You can probably use a template sensor to determine whether the entity exists/is down or not.

2 Likes

I have already tried but the results are same. My config is below
sensor.yaml file

platform: template
sensors:
c200:
value_template: “{{ ‘Online’ if is_state(‘device_tracker.c200’, ‘home’) else ‘Offline’ }}”

automation.yaml:

trigger:
platform: state
entity_id: sensor.c200
state: ‘not_home’
action:
service: group.set_visibility
entity_id: group.c200
data:
visible: False

groups.yaml

network_devices:
entities:
group.c200
c200:
entities:
sensor.c200

It’s hard to read unformatted YAML. Use preformatted text

But it looks like you’re looking for “not_home” as a state for sensor.c200, yet your value_template will return “Online” or “Offline”. So the state will never be “not_home”.

Also - I’m assuming that your value_template has no errors. Have you checked it in the template dev tool?

Yes, that was just a example, the template was giving home and not_home and the homeassistant is running without any configuration errors.

automation.yaml

- alias: Show Poweroff Control                                                                                                          
  hide_entity: False                                                                                                                    
  trigger:                                                                                                                              
    platform: state                                                                                                                     
    entity_id: switch.mycloud_plug                                                                                                      
    state: 'on'                                                                                                                         
  action:                                                                                                                               
    - service: group.set_visibility                                                                                                     
      entity_id: group.mycloud_control                                                                                                  
      data:                                                                                                                             
        visible: True                                                                                                                   
                                                                                                                                        
- alias: Hide Poweroff Control                                                                                                          
  hide_entity: False                                                                                                                    
  trigger:                                                                                                                              
    platform: state                                                                                                                     
    entity_id: switch.mycloud_plug                                                                                                      
    state: 'off'                                                                                                                        
  action:                                                                                                                               
    - service: group.set_visibility                                                                                                     
      entity_id: group.mycloud_control                                                                                                  
      data:                                                                                                                             
        visible: False

groups.yaml

controltab:                                                                                                                             
  name: Control                                                                                                                         
  view: yes                                                                                                                             
  entities:                                                                                                                             
    - group.device_admin                                                                                                                
    - group.app_admin                                                                                                                   
    - group.switches
device_admin:                                                                                                                           
  name: Device Admin                                                                                                                    
  entities:                                                                                                                             
    - input_boolean.restart_tplink                                                                                                      
    - input_boolean.restart_rpi                                                                                                         
    - group.mycloud_control

mycloud_control:                                                                                                                        
  name: MyCloud Control                                                                                                                 
  entities:                                                                                                                             
    - input_boolean.poweroff_mycloud

input_boolean.yaml

poweroff_mycloud:                                                                                                                       
  initial: off

switch.yaml

- platform: kankun                                                                                                                      
  switches:                                                                                                                                                                                                                                     
    mycloud_plug:                                                                                                                       
      name: mycloud_plug                                                                                                                
      host: 192.168.x.x

If you directly activate the automation, does it work? How about if you change the visibility via the services dev tool?

The service JSON will look like:
{"entity_id":"group.mycloud_control","visible":"false"}

1 Like

Yes, after calling via dev tool, the control is hiding. Why it was not hiding through config?

That suggests there’s a problem with your trigger. Keep in mind that state triggers are only triggered when the state changes. So turn mycloud_plug off and back on to see if that automation works.

Are you seeing any errors in home-assistant.log about YAML formatting?

1 Like

you could try replacing

state: 'on'

with

 from: 'off'
 to: 'on'
1 Like

Tried and still the same.

Is that because the mycloud_plug state is off when initialize and never switched on to activate the trigger part in automation?.

The trigger part in automation triggers only when there is an change in the state or will that consider initial state also?. For example, if a template_sensor found a device is offline, then it initiates with ‘off’ as state, will the automation trigger?

I’m pretty sure it’ll only trigger on state change. But I may be wrong there. @ReneTode do you know the answer to that?

2 Likes

i can only give back what i know from what i read in the docs and on the forums :wink:
i have no automations at all (all trough appdaemon)

i know that state changes are registered when HA is started.
for instance: i have some 433 mhz switches and they Always get triggered when HA starts. (quite annoying actually)

initial state for most devices is “unknown” or “none”
the it changes to the actual state.

i know thats part of the reason they implemented the “from:” at one time.

if something triggers at startup? i would say, try it.

1 Like

I tried to change the state of sensor on the front-end and the automation triggered and hides/shows the control. So, basically when the hass initiates, the automation is not triggered.

I have added additional automation rules with platform as homeassistant, now working as expected.

@vaidyasr Please post your configuration that solved the issue, if you can…

1 Like

Added 4 rules to show/hide the control upon start.

- alias: Show MyCloud Poweroff Control                                                                                                            
  hide_entity: False                                                                                                                              
  trigger:                                                                                                                                        
    platform: state                                                                                                                               
    entity_id: sensor.mycloud                                                                                                                     
    state: 'Online'                                                                                                                               
  action:                                                                                                                                         
    - service: group.set_visibility                                                                                                               
      entity_id: group.mycloud_control                                                                                                            
      data:                                                                                                                                       
        visible: True                                                                                                                             
                                                                                                                                                  
- alias: Hide MyCloud Poweroff Control                                                                                                            
  hide_entity: False                                                                                                                              
  trigger:                                                                                                                                        
    platform: state                                                                                                                               
    entity_id: sensor.mycloud                                                                                                                     
    to: 'Offline'                                                                                                                                 
  action:                                                                                                                                         
    - service: group.set_visibility                                                                                                               
      entity_id: group.mycloud_control                                                                                                            
      data:                                                                                                                                       
        visible: False
- alias: Show MyCloud Poweroff Control 2                                                                                                          
  hide_entity: False                                                                                                                              
  trigger:                                                                                                                                        
    platform: homeassistant                                                                                                                       
    event: start                                                                                                                                  
  condition:                                                                                                                                      
    condition: state                                                                                                                              
    entity_id: switch.mycloud_plug                                                                                                                
    state: 'on'                                                                                                                                   
  action:                                                                                                                                         
    - service: group.set_visibility                                                                                                               
      entity_id: group.mycloud_control                                                                                                            
      data:                                                                                                                                       
        visible: True                                                                                                                             
                                                                                                                                                  
- alias: Hide MyCloud Poweroff Control 2                                                                                                          
  hide_entity: False                                                                                                                              
  trigger:                                                                                                                                        
    platform: homeassistant                                                                                                                       
    event: start                                                                                                                                  
  condition:                                                                                                                                      
    condition: state                                                                                                                              
    entity_id: switch.mycloud_plug                                                                                                                
    state: 'off'                                                                                                                                  
  action:                                                                                                                                         
    - service: group.set_visibility                                                                                                               
      entity_id: group.mycloud_control                                                                                                            
      data:
        visible: False
2 Likes

A tip that some miss - you can probably combine these. An automation can have multiple triggers, then use conditions to filter out only the situation you want.

Something like

- alias: Show MyCloud Poweroff Control                                                                                                            
  hide_entity: False                                                                                                                              
  trigger:                                                                                                                                        
    - platform: state                                                                                                                               
      entity_id: sensor.mycloud                                                                                                                     
      state: 'Online'
    - platform: homeassistant                                                                                                                       
      event: start 
  condition:                                                                                                                                      
    condition: state                                                                                                                              
    entity_id: switch.mycloud_plug                                                                                                                
    state: 'on'
  action:                                                                                                                                         
    - service: group.set_visibility                                                                                                               
      entity_id: group.mycloud_control                                                                                                            
      data:                                                                                                                                       
        visible: True
3 Likes

If I comibine, not working. because homeassistant -> event start doesn’t work with switch.mycloud_plug, the state may not be initiated when started the homeassistant.