Skip to content

RoboHome-ESP8266 is the code that runs on ESP8266 based microcontrollers like the NodeMCU that will physically control semi-connected devices created using the RoboHome-Web project. 🤖 🏡

License

Notifications You must be signed in to change notification settings

dbudwin/RoboHome-ESP8266

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

RoboHome-ESP8266

What Is RoboHome-ESP8266?

RoboHome-ESP8266 is the code that runs on an ESP8266 based microcontroller like the NodeMCU that will physically control semi-connected devices added using the RoboHome-Web project.

What Is the RoboHome Project?

RoboHome is a SaaS tool that also integrates with Amazon's Echo to enable control of semi-connected devices (think IR, and RF) in your house over wifi! This is done using an MQTT pub-sub network to send messages between the website or Echo to a microcontroller like the ESP8266 which has various transmitters hooked up to it (like IR and RF transmitters) to send signals to these devices. This can be used to control RF outlets with lights plugged into them, or to turn on your TV and change channels for instance.

Install Arduino Libraries 📚

Most of these can be downloaded from the Library Manager in the Ardunio IDE. If it's not listed, follow the directions in the links below.

  • ArduinoJson for parsing JSON response from RoboHome-Web API
  • PubSub Client for reading from the MQTT stream
  • RC-Switch for sending signals to control RF devices
  • RestClient for making API requests to the RoboHome-Web API

Configuring 🔧

  • Set values for all the variables at the top of the RoboHome.ino file to connect to your:
    • WiFi SSID and password.
    • RoboHome-Web application URL and SSL/TLS SHA1 fingerprint.
      • This can be found using Chrome's Developer Tools. Click "Security," "View certificate," expand "Details," scroll to the "Fingerprints" section. Copy the "SHA-1" value including spaces.
      • The value for ROBOHOME_SHA1_FINGERPRINT is likely to change whenever your SSL/TLS certificate gets renewed. For Let's Encrypt users, the default is every 3 months.
    • RoboHome-Web username and password used to log in to the RoboHome website.
    • RoboHome-Web password grant details provided when running the php artisan passport:install command on the RoboHome-Web installation, the needed values will be located under the heading "Password grant client created successfully." If you have previously executed this command on the server, it is possible to look in the oauth_clients table to retrieve the values.

How To Contribute 🎁

Contributions are always welcome! Please fork this repo and open a pull request with your code or feel free to make an issue. All pull requests will need to be reviewed and pass automated checks. If feedback is given on a pull request, please submit updates to the original PR in the form of fixup! commits which will later be squashed before the pull request is merged.

This repo supports the principles of Bob Martin's Clean Code.

Notes 📓

The ESP8266 is a fairly weak computer which is why it is necessary to include the SHA1 fingerprint for the SSL/TLS certificate, otherwise it would be unable to connect to an HTTPS website which is required for the RoboHome-Web project. Make sure the RoboHome-Web website the ESP8266 is connecting too uses the correct ciphers. See the "Requirements" section of the RoboHome-Web README for up-to-date information for configuring the SSL/TLS certificate.

About

RoboHome-ESP8266 is the code that runs on ESP8266 based microcontrollers like the NodeMCU that will physically control semi-connected devices created using the RoboHome-Web project. 🤖 🏡

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages