Homemade IOT Smarthome

Python C

Overview

This project documents my journey into IoT and smart home technologies by automating various aspects of my home. Rather than using common tools like HomeAssistant, I chose to create my own logic for automation to deepen my understanding and gain hands-on experience.

The core of this project is a Python API that controls different devices in my home, such as lights, TV, and speakers. This API allowed me to use my phone as a universal remote, issuing commands to these devices. The remote would envoke the API through HTTP with a automation app called tasker, which can be seen in the thumbnail. Additionally, I implemented logic for automating tasks, such as turning lights on and off when I leave or return home.

Throughout the project, I experimented with several communication technologies, including:

  • Bluetooth
  • Infrared
  • ZigBee
  • LoRaWAN
  • Wifi

Fun with the Clown API

During the COVID-19 pandemic, I added features to play sounds through a smart speaker and made the api partly open. Friends could send messages that were converted to speech, allowing them to say hello or remind me of something. These features and open API for my lights etc, was often used to surprise or annoy me, leading to its playful name, the Clown API. Despite the mischief, it added an element of fun to the project.

Retrospective

Looking back, this project was a rewarding experience that helped me understand IoT and smart home technologies. Creating a custom automation logic taught me a lot about the intricacies of different communication protocols and device integrations. The playful interactions with the Clown API highlighted the social and entertainment potential of smart home setups. Overall, the project was both educational and enjoyable, providing a solid foundation for future explorations in smart home technology.

The projects code can be found here