Hi,

Having lost it with my glitchy Mill stupid heaters, I was scrolling through this subreddit for inspiration and noticed a) there is a lot to learn and b) this looks like something I would like to do a course on!

So, can anyone recommend a good course for me? I have an MSc, so score highly on numeracy and logic. I am reasonably tech savvy as an end user but want to get more into the design side - I think there is a lot of untapped potential in HA! I have intermediate python skills at best and close to no experience with IoT or home automation. I would want to learn about the types of hardware and software available and how to customise them. I’d especially enjoy a course including a hands on hardware project.

Possible goals for me would be to use smart sockets and thermostats to make my own smart heating controller, or to control smart lighting based on ambient light…

TIA for any thoughts or recommendations!

Edit: included question on hands on project

  • Donkey545@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    I think the key things to focus on here will be understanding the fundamental technologies and architectures that are common in the space.

    Some of the technologies that I would start with:

    • Microservice Architecture
    • Docker image design and building
    • MQTT networking
    • Zigbee and Zwave Protocols
    • Fundamentals of Embedded Programming
      • Learn a little C++ and C just so you can read examples and work from there.
      • Learn how to think about working with minimal memory and compute resources
    • Investigate ESP32 Based development boards.
      • They are inexpensive and allow you to fail fast and cheap

    The good new for you is that many of the major projects out there are written in python, so understanding and contributing will come quickly to you. One thing that I would recommend is to become aware of how professional development workflows can help you. Learn standards like PEP8, learn how to document your code with docstrings, learn branching, merging, pre-commit testing, unit testing, and how to maintain a good standard of quality. Each of these topics are not absolutely necessary, but they are incredibly valuable skill to develop as you are learning about HA topics.

    As for hardware, you will have to eventually get some tools like a logic analyzer or an oscilloscope when you are serious. You can get a really cheap Saleae clone logic analyzer to start with. Getting an oscilloscope is often a major commitment to device development. You will want to buy one good enough that you can actually use it. That can be expensive.

    If you want to design your own boards, you will need to both learn layout tools and the fundamentals of electrical design. A good book for electrical design is “The Art Of Electronics” This books is among the best I’ve read for actually communicating how circuits can be used and designed to suit your needs.

    A common professional board layout software is Altium. I believe it has some student edition options if you still have a university email. Outside of that I think it is prohibitively expensive, so you may want to look for opensource alternatives.

  • rubs_tshirts@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    As per the controller software, I would just like to say that Home Assistant (/r/homeassistant) is by far the most used one. It’s also one of the most active open source projects on GitHub.