My background is in Electrical Engineering. We learned assembly and C. I’ve also done ladder logic type designs at work. Hubitat is extremely easy for me to understand… conditional actions, virtual devices, etc. However, I have had quite a difficult time with Home Assistant over the last couple years. It seems like it is way over on the High-Level/ Computer Science type language end of the spectrum… if that makes sense.
For example, when I go to create an automation, and I open the triggers and see “Device, Event, State, Tag, Template, Webhook” I think… ‘well my virtual button i made must be a device’… nope… its an “entity” that was within a “state.” ‘Huh?’
Another example: Home Assistant’s config file seems to be picky about indents. But some have hyphens along with the indent… [Rhetorical:] Does the hyphen matter? Why is it there?
Final Example: I was excited when I discovered Node Red thinking that would help… But it didn’t. Nearly as confusing for me especially when there’s multiple inputs and outputs on a block.
Even documentation/writeups/etc… it seems like I am on a different wavelength from the authors… or maybe I’m just a simpleton. HA often leaves me scratching my head.
Where is/are some good resource(s) or programming languages that would help me better understand Home Assistant as someone who came from assembly/C/PLC’s? Thanks!
Node Red works a bit like electricity - if a node allows the input ‘electricity’ to pass, it powers all of the relevant output wires. I say ‘relevant’ because, for example, a switch node will power selective outputs like a multi-throw physical switch, but any two wires connected to the same output will either power together or not.
One that causes problems with this analogy though is the join node, as there’s no equivalent I can think of to wire two things to one pin and, for example, wait for 2 different frequencies of electricity. But by the time you’re using join nodes, you’re a Node Red expert (or you’re possibly misusing them). And there’s no “voltage dividers”, as you can’t have 40% of a message out one wire and 60% out another. So the analogy only goes so far.
IMO there are two big advantages of Node Red: it’s visual so you can easily see what’s going on; and each node (ideally) does one simple thing.
And if you post a picture of a problematic flow along with the exported source (JSON compact), people will help pretty quickly.
Don’t take the “non-programmer” reference seriously. This is a useful guide. You must understand this, unless you’re planning on only doing the simplest of things via the UI.
Otherwise, entities are a core concept in HA. Devices just group entities together, but stay away from device triggers and all that (there are several posts on this point).
Sensors, input helpers, switches, lights, etc. (called domains in HA world): They all have entities with state. Most of the time you trigger things on state changes and check the stage of entities in conditions.
Like many before you, it’s clear to you that HA is no ‘next → next → finish thing’.
Since HA is so flexible, adaptable and mostly because the ability to connect/interact to almost everything, it requires some/more determination to get the hang of it.
HA has a steep learning curve and even though things have become more user friendly due to the hard work of many people, it’s not for the fainthearted.
To give you and idea on where I was before I started with HA: I have a background in Mechanical Engineering, self taught a little bit of batch programming and HTML, but no knowledge AT ALL in home automation before and the likes, I have put my teeth into it.
English is not my native language which adds to understanding things but hey, you want to it or not.
I think I had heard/read somewhere about the existence of YAML, had no clue what it was but: I realized that HA was the platform I wanted to go with so YAML is a part of HA and I wanted to be able to use HA.
To make it easier for you, these are my statistics here on the forum:
So you can see what I have invested in getting familiar with HA.
You’re ‘only’ here for a little over 1 month (maybe longer as a reader/non member) so go easy on yourself, read A LOT, be willing to do some trial & error (make sure you have backups) and don’t expect that HA is something you will get immediately.
In the beginning it can be more of a challenge to find information, either here in the forum or in the docs.
I have added devices and integrations quite slowly so I could grasp things little by little and not get stuck because I automated everything and sit in the dark/get stressed because HA was failing due to mistakes I made.
Since I was already using Proxmox VE (a virtualization platform) it was easy to take snapshots, make backups and get back to a previous situation when needed.