I intend to put Home Assistant on a Raspberry Pi and monitor a small number of door and window sensors using Aeotec sensors. As I read the forum I see references to YAML and MQTT. Is knowledge of YAML and MQTT required to use Home Assistant?
YAML
Short answer: No.
Long answer: Yes, if you want to do some more advanced things like templates.
MQTT
This completely depends on whether you use devices or equipment that communicate using MQTT. Plenty of people don’t use it. I only use it for 2 devices, but even then it was a set and forget setup, pretty easy to do…
NO !!!
I have some 100 devices in my HA, mostly Zwave but also Zigbee and Wifi. I have well over 100 Automations and numerous Integrations.
Personally I find Yaml annoying and I only have a vague idea what MQTT is.
On occasion I needed to add an Integration in Yaml and there have been Blueprint Automations that I really wanted and that were in Yaml, but 99 % of my setup has been done without Yaml.
I read somewhere that all new Integrations have to be in Yaml.
Of course, sophisticated techies may actually like Yaml and they may look down on me…
I think you have this the wrong way around, new stuff is via GUI with YAML optional.
There are plenty of people using HA without ever having touched MQTT or YAML.
So … do you need them ?
No.
But…
Some configurations need YAML, but most of the time you can copy and paste from examples online. Each and every release, more integrations are moving away from YAML based configuration.
Its also worth noting that YAML is not really a programming language, but more of an opinionated configuration syntax, and there are plenty of online tools out there to help with the syntax.
If you do change a config file, make sure you syntax check it before restarting.
With MQTT discovery, most devices these days are set and forget. Setup your mqtt broker/addon, configure clients – they magically appear as entities in HA, you dont even need to configure specific devices.
I’ll be the one who is contradictory.
If you want to do just very basic stuff with HA and never do any advanced stuff, and as long as every integration you want to use is UI configurable, then you don’t need to know yaml.
But that will likely get boring fairly soon and then you’ll start seeing some stuff that others are doing and want to do it yourself.
Not to mention that if you ever ask for any help with configuration on the forums every person who will help you will want you to post your current stuff in text (which will be in yaml) and not in screenshots.
My advice…learn yaml. It’s not that hard.
As far as mqtt if nothing you use needs it then you don’t need to learn it.
I don’t think that you are contradictory, but Home Automation can be fun and useful at different degrees. Having to think of (( {{ , and spaces takes the fun away for me and I have neither patience or intention to focus on understanding Yaml. BUT I fully respect (and to a degree take my hat off to) those that do.
Sure like I said…if you never want to do anything advanced or no integration you use uses yaml for it’s configuration then you don’t need to learn it.
But it’s part of the journey to some pretty cool things you can do with HA.
and just to be clear…{{ & ( aren’t yaml. Those are used in templates which are written in Jinja2.
Which is another thing that I recommend everyone to learn eventually.
Without yaml and Jinja you are really limiting the things you can accomplish.
But like you said to each their own. I just didn’t want the OP to think it would never be required.
YAML is Yet Another Markup Language. You don’t need to learn YAML coding for 90% or more of what most of us do in Home Assistant, but you will likely want to do things in the future that will require some YAML code. But don’t worry, there’s dozens of people here who are willing to assist.
MQTT is simply a data protocol. (MQTT stands for Message Queuing Telemetry Transport). It’s basically pretty easy to use. But unless you are using devices that only communicate over MQTT, you won’t ever need it.
If you use an add-on such as Studio Code Server to do any YAML code you might need, then it will tell you if you have made a mistake, combined with the ‘check configuration’ button under ‘developer tools’.