Yes I donât disagree with you, but there are also advantages to using device as well.
Like A device is only ever one device, while an entity can be a group of devices (helpers). & this makes a big difference when designing blueprints E.g. trying to get the colour state doesnât work very well on a group.
But the main objective here is to figure out how to write A
I am just replying to my own post so it gets bumped. If someone could help me with this I would be eternally grateful
You already have a solution, youâre not using it. Youâre going to need the entity_id anyways to get the state from the device, itâll just be extra code that literally does nothing because youâll just be matching it to the entity_id.
Use the entity_id.
But I couldnât figure out how to revert the output from a list?
{{ is_state ( device_entities ( lights.device_id ) | first , 'on' ) }}
But thank you very much for the nudge
What happens when thereâs no lights on the device? what happens when thereâs 2 lights on the device? If youâre making this for other people, that will not work, youâll need the entity_id.
What do you mean by this? The target selector filters for only devices in the light domain?
I have thought about this, I think it is a limitation to the target selector that you canât limit multiples (i think). but that will be my next challenge to deal with multiples (but devices should be safe because it is only ever going to react to the first one & not thro a error).
I mainly just want areas &or entities, as that is what I am normally targeting light scripts at. E.g.
https://community.home-assistant.io/t/how-to-check-the-current-on-off-state-from-an-areas-lights-in-a-blueprint-using-selector-target-entity-domain-lights/472256?u=defenestrateit
I donât want two input selectors & i needed to deal with the fact that the user could select a device.
Simply use a light selector. Donât bother with devices. What about users who use yaml? Cant create a device in yaml, making the blueprint useless for them. However entities work regardless.
Entity selector
But I like using area. I have a lot of lights in each area, & itâs easier to maintain. But sometimes i want to add an extra entity from another area E.g. âBack Gardenâ & the âMain lightâ from the âPatioâ. Or I want to use the same script for each room, but I also want to use the same code for a single entity.
Devices is not that necessary, but the code has a huge whole in it if you donât deal with the device option.
What? How so. You can get all that information from the entity_idâŚ. You donât need devices for any of that.
You know so much more than I about all of this stuff, but unless I have something fundamentally wrong, A target selector gives the user 3 options, âAreaâ, âEntityâ & âDeviceâ.
The idea behind that is to apply settings to all effected entities/devices. Not a single entity within a device. If youâre trying to filter to a single entity, your logic is flawed.
Why would it be flawed? I would think that if the user chooses the device option, they would be selecting A device that is a light? I realise that some devices may have multiple light entities (&or entities that are not A light) but 9/10 they would be selecting A bulb, (& mainly I just want the one selector to select either A âAreaâ or A âEntityâ but needed to deal with the device option).
Sorry for my ignorance, but I have only been looking at this stuff for about 2 months now. But I very much appreciate you sharing your knowledge with me.
If you can show me a better way of doing this (target at either an area &or A entity), or A better way of how to deal with the device option I would very much appreciate it?
You arenât sharing your endgoal. Youâre asking a question thatâs narrow sighted and expecting an answer for it. An area and a device can have more than 1 entity associated with it. The target selector can select multiples of everything. That means you should be tailoring your templates and actions to support more than 1 entity. Otherwise, use a different selector.
How would you suggest that I say that? I thought I did by saying:
I know I am the one wrong here, as no one understood what I was trying to do. Maybe I could have said I want the options of either area &or entity?
I dealt with that,
{{ expand ( area_entities ( lights.area_id ) ) | selectattr ( 'domain' , 'eq' , 'light' ) | selectattr ( 'state' , 'eq' , 'on' ) | list | count > 0 }}
I actually said this in my first post:
https://community.home-assistant.io/t/how-to-check-the-current-on-off-state-from-an-areas-lights-in-a-blueprint-using-selector-target-entity-domain-lights/472256/5?u=defenestrateit
@petro please donât get annoyed with me, you have been such a huge help, & i very much appreciate your time, but I am still only a novice at this; & thus have some very stupid perceptions.
State what your endgoal is, not âhow do I get the state of a deviceâ. What do you plan on doing with the entities on the device?
So your script takes a target with lights. If any of the lights are on then it turns them off. If all of them are off it turns them on.
Sounds like a light group, why not just make one of those?
&
If the light/s are already on they transition @ one speed & if they are off @ another speed.
Because I really like using the Area selector, because it requires less maintenance & is easier to set up, but I also want the option of using the same code to target A single entity as well.
Now realise I started this project to set up a system for my parents, & tho my mum has the technical mind to understand this stuff I doubt she will ever spend the time learning it (she is 78), so I need it to be flexible enough with that in mind. & I am having heaps of fun learning this stuffâŚ
So a template light then? You seem to be fine with making templates. Make one per area that sets it state from the lights in that area. And then you can control all the lights in that room as one light (turn on and off, transition, etc)
If youâre trying to make this easy for a non technical person to use then making scripts is going to be problematic. When you put a script on a dashboard you get a run button. Thatâs it. It doesnât tell you whether the lights controlled by that script are on or off, it doesnât let you adjust the brightness or change the color, etc. All the things a light does. Users who donât get HA will struggle to interact with this thing. Theyâll press what you tell them to press but it wonât make a lot of sense, itâs just memorization.
Additionally the easiest way for a non technical user to make things happen in HA is scenes. You go and adjust the lights and such in your room to the way you want and then you press a button in HA and basically say âmemorize the lights in this room for laterâ. And then you get a button to press which recreates the room the way you had it. A button they made so they get it more. Lights can be put in scenes, scripts canât.
You may like the selector but consider how the users youâre making this for are likely to interact with it. If they want to change the lights theyâll probably go look for a light.