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.
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.
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
- 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 theoauth_clients
table to retrieve the values.
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.
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.