What's new

Welcome to Doncaster Classifieds

Join us now to get access to all our features. Once registered and logged in, you will be able to create topics, post replies, give reputation to your fellow members, get your own private messenger, and so, so much more, so what are you waiting for?

News Headlines

Home Assistant Home Assistant Templating Masterclass (Full Course)

  • Thread starter DC
  • Start date
  • Replies 0
  • Views 70
Home Assistant
DC

DC

Admin
Staff member
Administrator
Moderator
V.I.P Member
Registered
LV
15
 
Joined
Jan 1, 2022
Messages
1,527
Reaction score
15
Points
4,065
Awards
3
Location
Doncaster
Cash
£0.00

However you want to become a Home Assistant Pro you need to master it. In this coding class I’m going to teach you everything that I know about templating. This course is meant to be watched sequentially but I’m going to leave time stamps in the description below if you want to skip to the specific parts of the course. If you want to take this to another level there’s a link in the description below to my smart home courses page. This course will actually be uploaded over there but over there you get to watch without watching any ads. You also have quizzes and assignments where you can actually show me your code and I can evaluate it and I can sort of give you feedback and you also get some cool quiz and a little certificate if you can complete the course. But now let’s roll the intro. It’s an absolutely core fundamental concept for you guys to grasp before we move any forward. This is like the only prerequisite. You need to have an understanding of what states, attributes and devices really are. Your device so your bulb or your motion sensor is represented in Home Assistant by something called an entity. The unique way of identifying an entity is represented by an entity ID. An entity always has a state and the state is a representation of the entity. So if it’s a light bulb on and off. You can override the states of an entity without actually changing the physical device. That’s what you normally do in your developer tools and it will not actually impact the device itself. You’ll always have an entity ID, a time stop when it was last updated and last changed. You most likely will have also a name and a friendly name. Let’s go to the developer tools and let’s start playing around with some templates. Click on developer tools and click on the third template.

We’re really going to be switching between template and states. So we’re going to need to use both at the same time. If you want you can just open two windows if it’s easier. We’re going to start with looking at the states of an entity. So let’s pick any entity. I’m going to go to states and I’m going to look for a specific light called amaclamp and I’m going to copy it. I’m going to click back to template and just going to paste it in at the moment. You can just see a string. So anything, I can write anything and this is just going to be written on the right hand side. On the right hand side you’ll see the result. You’ll see the result type. So in this case a string and you can see what is the result and over here we can actually type in whatever we want. So this is our editing area and at the bottom here it actually tells if it’s listening in to any event in case something happens. So this will change when we actually use real entities. So we know that every entity has a state so we can get the state of the entity. So is this on or is this off basically because it’s a light. So let’s start writing some templating. So let’s wrap around this statement over here with the curly brackets and let’s put a single code around it all and now let’s type this in properly and we’re going to use a function called states. Open brackets, close the brackets and we’ve got a result. To see our result is on because the light currently is on. There’s another way to write this. We can write something like this. states.light.imaclamp and here you can see a huge amount of information. So you can see we have a template state. So we have a state. Imaclamp is on. We have some attributes. So there’s plenty of information over here. Let’s make more sense of this. So if we add a dot at the end and we add something like name we can have the actual name of the entity ID. We can also reference entity ID again and we can see that over here and most importantly we can get our attributes. So our attributes are going to give us a lot more information about what’s going on with this entity. So the best way to actually get only one specific attribute is to use something called the state attribute. So we have our curly brackets over here and we go state underscore ATTR and then we’re going to put in our quote and then fill in the information for your own entity ID. Close that bracket and it’s saying the message. So we get an error message. So we’re saying we’re missing one requirement. So there’s one argument missing and that is actually the actual name of the entity that we want to get the information from. So now we can see all the entities. So if I want to pick the mode I’ll just copy it in and add it here and we have the value of the mode which is normal. So you can see that this is the key and this is the value. So if I changed key so if I use some other values so I can pick brightness and we would get the result which is 212. The result doesn’t have to be only one singular value. It can be actually multiple values. So if we pick X, Y color and I copy that in you can see we have two values. Now specifically this also happens with the RGB color and with different other things. Now how do we actually split this out in a more concise way? So let’s pick for example the RGB color.

We should have three values 255, 167 and 89. So we want to split them out. The easiest thing to do is to use this expression over here. So the curly brackets expression basically means go through a list and pick any value from a list. So if I just put a zero on it I will pick 255. If I change this to 1 it will go to 167 and I’ll change it to 2 it will go to 89. So let me show you again. So I’m going to keep this I’m going to copy it I’m going to paste it down below so you can actually see 255, 167. So the way this works is that the zero value is the first value. So it starts with zero and each value is incremental. So it’s depending on the position. Okay in the list. So in this example it’s comma separated so I can have something like this zero and I get 255. Cool so we’ve got the values. Now this is an integer. So let’s see if we can do the same thing with the string. Now if we pick a string so let’s pick what can we pick? Let’s pick mode. So fine we’ve got to go with mode. So let me just modify this mode. Cool so we have normal as a value. Now strings are actually in Python. You can iterate through a string and this is seen as a as a list. So to simplify this zero would be n. One would be o sorry n not m. O two is r and so on so forth. So I think you get the j so what we can do over here is we can pick the fast value out of a string and that’s going to be a zero. We can then do one, two, three you know everything and you can see the string is switching. So if you wanted to pick the first letter for any reason of a string you can use this little trick over here. Hey guys if you’re getting value out of this video remember to like this video, share this video and comment down below and let me know which part you’re enjoying the most. Now let’s look at a few ways in which you can manipulate strings. So strings you can change them in a few different ways. There’s a complete list of functions I’m going to leave in the description down below so you can actually go and play with this in your own time. The most useful ones for me are for example capitalized. So if we add this pipe expression and we add the word capitalize this is written in in American English with a z not an s and you can see the results are different through and on.

So let me just show you this in a better way so add this in so you can see on is sort of our standard result we can capitalize we can also do different things we can do something called upper which will convert all the strings to upper case and you can probably guess there’s going to be another one here with lower so lower actually is exactly the same as our original input so this all makes sense. Now I’m going to show you another example and I’m also going to show you how you can create a variable. The reason why you might want to use a variable and you might want to use it for calculations or for just simplifying and not repeating the same templating code over and over again. So you do your templating code you store it in a variable and you might reference that variable later on in your templating code. So we’ve seen how states work and we can see that the current state of the weather at home is rainy the current and you can see the attribute so we see things at temperature humidity pressure there’s a long list of attributes so if you remember correctly we can do state attribute open brackets close pull so we can extract the temperature by writing this expression so I can get rid of this and actually get rid of this whole thing.

Nice so we’ve got this now let’s say for example that we wanted to do something like I want to compare the difference between the temperature inside the home and the temperature outside of the home so let’s say we had a sensor and this sensor was called I think I think I’ve got one called kitchen nest I’m going to go and check now okay so I’ve picked another sensor the hallway sensor uh hallway temperature sensor so you can see this 21 degrees in the outside is six degrees so what could I do I could actually decide to do some calculation right so let’s say that I want to set a variable to do that you can open your brackets again to do that open one bracket open the percent and here we can write something say set so set is a keyword and now we can you know give our name of the variable so let’s say we say outside temperature and in this case we need to use one equal not double equal because one equal is assignment so it’s going to assign a value in the outside temperature and the value we are going to be assigning is basically this one over here which is the 6.5 and then we close it with the curly bracket awesome so you can see that this hasn’t actually produced a value so when you actually using one curly bracket and the percent you are telling the you know the ginger to templating engine are basically to do an operation you’re not actually printing any value the print statement always comes from double brackets open and close so if I print outside temperature you can see now we’ve got a nice 6.5 so that’s all good so if I did if we did something similar for a copy this whole line and did something like change this state so you can see that in some examples we’re using the state attribute sometimes temperature could be an attribute or sometimes

temperature could be a a simple state so that doesn’t really matter in our case because I can just replace that I can set it here and I will rename outside to inside temperature and then I can also print inside temperature semi-copy paste it in give it a nice space and now if I remove these over here you can see I have 6.5 and 21.2 I can do something like a comma and that will create like a list I can do like a double equal whatever I can put some text in can I do a subtraction between the two right can we do that let’s see how we do that so remove these brackets and we can do something like this an operation between the outside temperature and the inside temperature so I don’t know what’s the difference our message we’re getting over here right so we can’t use the upper hand so an upper hand is a minus so if I did plus it will be same error okay so you can do minus plus multiplications and divisions so we can’t use this upper hand so what do we do okay we can’t use the upper hand we need to the message actually telling us what to do it’s basically saying that we can’t use it for a string so one of these two values is giving is giving me a string so I’m assuming that the string is the inside temperature and the outside temperature is a float in fact let’s try and swap them around and see if the error message swaps around yes so you can see that now it changed so the string is the first value and the float it’s a second so you then know that the string inside temperature is a string so if I convert the inside temperature and I do not using a pipe I convert it to a float so I just write float tada we’ve got a result so because this is a float and this is now a float we can see that the temperature difference is 14.7 so I can write some text I’m going to say temperature difference is tada you know 14.7 degrees what I also would really recommend I would recommend just adding a float at the end even on the outside temperature just in case now because you’re relying that this outside temperature so this actual expression doesn’t change so in case homosystem makes an update and then decide that this is a string you’ve already converted a float so you sort of you sort of future

prefer yourself but technically at this stage it’s ready to float so it’s not doing anything let me show you another example so I’m starting doing something a little bit more complex so I assume so a weakness of thermostat sometimes that you have only one reading so you might have your thermostat in a cold spot and you really want a good average right so in my example I have a ground floor first floor and a second floor right so I might have different temperatures for each floor okay so I might want my main thermostat that kicks in to be aware of that so what you can do is if you have a lot of these sensors you can set something for example let’s say ground ground floor temperature or ground temperature and you just collect all the sensors that you have you convert them to float and you keep basically adding them in until you get to you know your number of sensors so assume that I have two sensors so then I’m going to take an average so I’m going to sum these together and then I’m going to divide it by two and be aware of the brackets here now I’ll show you so basically this is state so you have your normal state open bracket close bracket and then filter on the float so this is one expression then we’ve got another expression over here let’s do this then we have this bracket and this bracket which is doing the dividing by two and then we’re wrapping that all again with these brackets to round it up to two and we have a nice float of only two decimal places with round two obviously if you did round three or round four you know the things would be different

so so far so good round two we’ll leave it as it is it’s 20.3 and we always close the expression with the color bracket the percentage color brackets and then we can print it out with ground temperature so maybe an assignment for you guys would be to complete this so if you have multiple temperatures the sensors go in and do this and then you can have an average per floor and then you can have a general average which could be the average of each floor which will be separately different than the average of all the actual sensors themselves but leave that to you i’m going to show you how we can actually loop from the states so looping is a console that i’ve covered in another video already which is specific for looping but however i just want to be quite clear looping is a powerful tool it is something that i think you should all explore so we’re going to go through a different example today very similar to another example i did with about battery classes in the past so let’s give it a go now the first line of code that we need is a output so we’re going to need to create an output remember an output it’s just a variable and in this variable we are going to be storing two values that’s why i’m using namespace and you can see the color brackets which means that it’s storing like a list an array let’s make it simple so basically we’re going to have two values and the values are going to be the name of the sensor and the current temperature of the sensor so we sort of need that first things first then we can start creating our loop okay so our for loop we’re going to lay four so we’re going to be looking at for each state in so foreign in our two keywords you can see them going blue so four state in and we’re going to go stensors states dot sensor code and then we’re going to close the bracket close this up again and we see we’ve got an error message because we’re missing that and four and i think that template syntax errors are quite helpful if we just try to read them and pay some attention to them so what can we do can we do can we do so i what i’m going to do is i’m going to add that in so we are good so we’re going to add the curly brackets and we’re going to just say and and loop the end the loop and four and that’s another keyword i’ll space it out because we know we’re going to have something missing in here and the error message has gone away this is actually perfectly you know acceptable and you can have something like one two you know and you can see two is repeated n number of times the reason why that’s repeated is because there are a lot of sensors in the list so it’s for each sensor that i have i’m printing a value okay that’s the idea of a loop we’ll continue to go and it will iterate from it in fact if i did state you can see it printing out state let’s see i’ll put that around the curly brackets and you can see all the information that we have so state and you can see every single piece of information that you can use in the loop so that’s one

important thing so i can do state dot entity id and that we have a list of all our entity id’s we can change that we can do state dot state and you can see these are all of the values of those entity id’s we can do both so we can do something like this state dot state let’s say equals and we do entity elite right okay yeah so it’s getting this wrong so we need to do something like this separate because we’re not doing an operation we can keep them separate in the wrong curly brackets so now you can see we have the entity id and the state i can change this and we can put this maybe something different i think we’ll put like the friendly name that would be like name i’m not wrong cool so you’ve got name which looks a little bit nicer than the entity id so this is the whole idea so now what we can do is we can filter the sensors so we can only have the time a specific set of sensors so if you remember at the beginning when we did just state we saw a lot of information so we’re going to leverage that we have the pipe and we’re going to use the select attribute function and we’re going to be using looking for a specific attribute so we’ll be using looking for the attributes uh the device class so we’re going to be picking out basically we’re filtering all of the sensors that have an attribute called device class which probably everything does have anyway so that’s what the first thing we’re doing but now we actually do something a little bit more complex we’re going to add an operand so we’re actually going to be comparing with double equals and we’re going to be using something called temperature now we have a list of everything that has actual temperature how do i know so let’s check right so if we’re looking at the one of these temperatures so the bedroom temperatures over here and this is what i’m actually using i’m using the device class temperature you i could change this to unit of measurement so if you had phononite or celsius you could use this right and say oh if if the device of the sensor has a device class and the device class is called temperature then i will put it in my in my phone and you can see that is basically what we’re doing over here we’re also pulling things that are unavailable like the fridge temperature which is currently not working so we can also exclude this with an if statement the if statement over here we’ll basically look at the states and deal with the unknowns so if we open our bracket and we’re going to say if to say is zero is is less than or equal to the state of state and then we will combat all of this to an integer minus one let me also close this up so we don’t get too many error messages and let’s give it an end so we need to always end the ifs similar to how we end the loops so if we indent this we can start seeing a pattern we should have excluded that value that we didn’t need anymore because what we’re actually doing is because we’re using zero as a value we’re going to go minus one so we know that if it if that is

happening so if you see if i put one uh unavailable appears if i put zero it’s there if i put minus one it’s gone but if i kept zero over here right and i changes to less than instead of less than equals two uh you can see it disappears so what basically what we’re saying is that the if we convert the state to an integer okay and if it’s a string it will convert to an integer and then that would be basically give us that value so if we so that uh i think we can do it either way if it’s clearer we can have the minus one and the and the last than equal to or we can just do it in a different way we you produce the same output which i guess is important now at the end of this if and the end of this four we should actually learn how to print these out in a little bit better way so we actually clean it up so we’re going to be using a set so we’re going to do this brackets open and again to close and we’re going to be sat we’re assigning the value so we’re going to give a value to output so we’re given an equal so we’re assigning a value and we’ll be assigning uh basically itself okay so output dot sensor why are we assigning uh output to itself it’s because what we want to do is so imagine you have one temperature line and then you have the second one and the third one on the fourth one you want the results to append so you don’t want them when we go to the second line we lose the first one so and we need that uh we need to keep adding basically appending to the end of the list so we have the output dot sensors so we need that and then we can add the actual uh you know information to add it we’ll be adding two values because uh that’s what we’re going to be having in this uh little array so we can add the state dot name and we’re going to use a tilde and the actual tilde and we’ve found it on the keyboard the tilde is going to make it be a strength that is the point of this tilde so add the quote and comma and then we’ll space it tilde again and here we can put state dot state which will give us our value of the actual sensor and we can add a nice space at the end with our tilde expression now at the end of the loop if i print the output just like that now we’ve got to this

point with output output and we can see that the actual sensors is an empty array so it looks like we’ve gone wrong somewhere so i gave this a little bit of a look and i was missing the dot sensors so the output dot sensors sensors here you go uh was what was needed to actually get this all to work because actually this what i was saying before basically is is appending the values cool so we can see that now we have all of our sensors output in we still have our namespace you remember our namespace we call this sensors which reflects this line of code over here so now what we currently need to do is is just go dot sensors so we want to only get everything that’s in the sensors list so now we can see the list how do we know it’s still formatted as a list because you see these curly brackets coming through so as we used as we as any list you can do zero and you’ll get the first value out of the list you could do minus one and you can get the last value of the list and you can do everything right two three four if you know how long the list is you can you can continue so that’s one way you can actually format this you can actually do a nice pipe and the pipe will allow you to use something called the join which is a uh and a function that accepts brackets in the brackets you can put something like with the codes you can put a comma and a comma and a space and you can see it all nicely in one piece of text or you can do something called a carriage return which basically is the backslash n which basically is the equivalent of an enter and then you got you’ve got your nice list of uh sensors and an example that we looked at previously was an average example of a very similar thing is that you can actually find out all the lights that are currently on in your home assistant instance you get information like the name of the light the status which is on and also the color if you have an rgb color so you can see that this actually is very useful and you can use these lovely

dashboards in so many things like text and speech and you can just switch it off for example when you look at everything else off and you can see everything else off so it’s easily customizable and the code very similar to what i just showed you actually very very similar i think the only difference over here is that we have a state and we’re concatenating the state and we have another uh the state name the state state and then we’re just looking at the rgb color which is uh a key and we can see the state that i attribute rgb color and you can see rgb color over here it’s reflecting what’s this so if i change it you can see that this text is updating so this is sort of hardcoded value for this as usual if you’re uh if you’re watching this the course you download the uh files and and and see how they’re built for yourself now everyone’s gonna have the sensor dot date it comes standard with homosystem and this sensor input gives us a value this value is a year month month date date date so that’s cool but what if we want to extract a certain part of the date okay we can use a function called split and i want to show you how we can actually do that so let’s take this uh value over here and let’s start splitting it okay so at the end of this bracket over here just dot dot split and let’s open up brackets now as soon as i’ve done dot split you can see that it’s changed it looks like it’s it’s become like a list okay so it sort of knows that something is going to happen now how this is going to work what i want to do is i want to split this like this so i want to basically say year is month is date day is okay so i want to be able to break down this in three different parts okay so the spray is already creating a list an array okay it’s creating an array and i’m using these two in the context of today’s lesson i’m just using them interchangeably uh list an array okay let’s split on what basis are we splitting we are splitting on the basis of the dash so when there’s a dash we’re splitting now this can work with anything so if you have comma separated a string with commas in the middle you can separate on comma you can separate on anything you want so splitting it up like this basically means we have three values so what i can say is the the current year is okay and copy this paste it in and remember we’ve used this a few times this trick we can do our arrays right so we can return a single position out of that array and we know we start with they start with zero and we increment by one okay and because the format is year month date and we know that already i can just do zero and that will give me that the current year is 2022 so most easily it’s very simple to do because i just then while i do copy and paste replace year with month and i say and i change this to value one you see

the current month is 01 let’s continue the current day is and value two as in the current day is 06 now if you want to take the o’s out you can add a pipe at the end and convert it to an integer so you can see now pipe int now it’s not a string 0 6 was a string now it’s an integer it’s telling me it’s one and read for consistency just do it on the year so so that’s all cool so you can use a split and i hope you make good use of it because it’s a quite a powerful function if you use this also in python if you’re learning python now i’m going to show you some practical examples of how i use templating and if statements in home assistant okay over here there’s a icon configurator so the way what i’m doing here and you will recognize the mdi because they’re like icons and what i’m saying is if the state of a specific sensor called the home occupancy sensor is on so the home is occupied then the output of this will be an mdi and will be the mdi of home dash account else so if it’s not then i’m using the mdi home outline and you can see i’ve got my end if at the at the end so so the basic structure of an if statement is you have the brackets first is the condition then if it’s basically if that condition is true then the value that will return else and the other value and then end if to close it so another way you can do this and i’m actually going to show you how i’ve done the home occupancy sensor now so this statement over here returns a true or false so the true basically means that the home is occupied the false means it’s not it’s how this is built for each person that we have we have a person as geolist sabrina okay so we can evaluate these so is state is a function that gives me true or false it’s not state it is state so there’s a difference between state and is state so let me demonstrate to you that to you so if i open my curly brackets and i put states and i remove the this part over here so you can see that the state of myself is home i’m here i’m recording this video so the is state how the is state works is that it uses a comma to evaluate it basically doing an if statement is saying if person that geol is home then this returns true so this is giving me true okay but it’s not finished there

because the curly brackets are not closed we’re doing all statements or is one of your operands you can use and use and or and not other operands but basically and and and or and not are your most common operands in example then all basically someone home so if it’s not me is it someone else or the last piece of the puzzle is an input boonion so i have an input boonion with guest mode so if there’s a guest and this can get triggered through people connecting my wi-fi if there is a guest then it will go on so the home is occupied and this returns true and you also use this logic in conditions then i’m going to show you something that you would have probably seen jason and i’m going to show you how i use jason so i’ve got some code over here the first part i’m doing you must have seen this by now if you’ve been watching this video but if you’ve been skipping along i’ll quickly sort of recap setting creates a variable and assigns values to variables okay so the curly bracket over here is what is convention used for jason and jason comes with key keys which are temperature and values which are 25 okay so we have this we have a comma and sort of this is 25 degrees celsius okay what we can also do over here is that we can basically loop through the values in the jason and output them so for each and i’ve got two values for each key this is a key and it’s the value in my jason test dot items i want to output the key so let me just remove this so you can see it so you can see the key and the value you say it says temperature is and we’ve got over here we can also change this key and we can add things like capitalize to make it a little bit better and we’ve ended our four so that’s one way of doing things we can also set our own array so these this i’m using normal brackets so you don’t need a key value pairs and you can also do things like picking them out so you pick zero pick one pick two and you can see i’m picking 22 so what you can do is you can mock things up so you don’t need if you’re using an api for example and you don’t want to continue hit the api you can mock up your jason file so create a mock up here or mock up array and then play around with the templating so that’s a tip that i can give you well that’s a cool thing i’m going to show you before we move into actually creating sensors and looking at conditions and how we can use these templates is the integration list so there’s something called integration underscore entities and if you use it you will actually get a cool list of everything or every entity id that’s actually part of an integration so if you’ve got here or if i change it to lha which is sort of what i’m using for zigbee you can actually have the full list of everything that’s dependent on integration so i really got a use case for this before i just mentioned it here as something that could be useful and you might you guys might have some idea out of it so let me know if you do i’ll be really looking forward to to read what you guys

comment now i want to show you an example where you use templating in automations so automations are formed of triggers they’re formed of actions and the form of conditions now in conditions themselves there is an option so when you actually build out your automation.yaml you can see that there’s something called condition template now the condition template accepts a value template okay so if you build a value template and you put this little uh greater than symbol means you can use multiple lines to express what you want to express so in here i’m just making something up what i’m doing over here the meaning of this is saying this automation will only run on in the first three months of the year why i don’t know i’m just making this up but you could use it for things like raining season you know awesome sort of other way okay winter summer whatever the important thing really out of this is that you return a true value okay so whenever the condition is meant you want to return a true value and this is the only thing you want to return you want to return anything else you don’t need to do an else because it’s not a sensor you’re basically just writing some templating code which you were doing the developer tools and once you’re actually done you will put it in your automation.yaml okay now let me show you another example here in the configuration.yaml i’ve got a snippet of my configuration.yaml i’ve put it over here in the file editor so you can actually see it a lot better so i’ve got a few different ways i’ve used templating in the past to create my own sensors and then once you’ve got these sensors then you can use them as anything else and you really don’t have any limitations so if you do if you find you’re struggling with

templating straight into conditions for example then you just create it as a sensor first and then do it later okay so there’s a couple two ways of doing it you can use template and then use sensor as a you know part of template or you can do it the other way around so you can have a template as part of sensors the tumble dryer is an example that i’m using over here so i’m using a energy monitor that’s looking at the power of the tumble dryer and converting that to a float i’m basically saying if the tumble dryer is at zero then i’m going to say it’s off else if which is lf if the state of the tumble dryer is less than two so it means that it’s between two and and but it’s bigger than zero if not you would have just stuck at this if you got to this point it means it’s bigger than it’s not equal to zero i mean it could be negative both i can’t really have negative energy in this example it would be standby else if it’s not standby then i’m assuming it’s actually drying this is what it’s a tumble dryer you can have this same code for washing machines i guess any anything you want the home occupancy sensor is what i showed you previously but this house sort of all comes together the icon template is what i’m using over here for the icon so i’m returning mdi’s the value template is actually just all on one line and it’s going to give me a true or false value so this sensor is a true or false sensor home occupancy will be actually the name of the sensor which is set over here but the name is expressed slightly differently over here when you define the template you need to find a sensor by the template and at the end i actually have a cover the cover template i have a garage door and the garage door has a contact sensor and in the contact sensor basically uses the state so if the contact sensor state is open which is defined by being on then i would say that the value of the garage door is open if it’s not open it’s closed which makes sense we’re going to end if and then the icon

template will change so if the basically it’s the same check again right so if it’s on it will show me the garage open symbol and if it’s off it will show me the garage symbol remember every time you actually make changes to configuration of young you need to check if everything is fine before you restart home assistant do one at a time and check and test guys you’ve made it to the end of this video i fully appreciate the time they actually dedicated to watching this all if you want to get even more out of it as i mentioned at the beginning there’s a link in the description for the same content but the content will be expanded upon there will be new content coming on there will be ad free view for you and also you get to interact with me through assignments some quizzes and you got a little certificate at the end but also check out the rest of the page because we’re getting nearly towards 10 courses at the time of filming many more courses are coming online too so consider subscribing to the actual membership or check out the lifetime bundle to get the actual best fan this video from smile makers see the next one.
 
Last edited:
Back
Top Bottom