Announcing the release of HubDuino v1.1.7 (aka ST_Anything for former ST users)
[UPDATE 1.1.9] This is a minor release to improve support for the latest ESP8266 and ESP32 Arduino IDE Board Support Packages.
[UPDATE 1.1.7] This is a significant update to the Parent Drivers. Changes include:
- MAC Address no longer required when setting up a Parent Device. Only the IP Address/Port is required to help simplify initial startup. This also means that the micro-controller can be replaced with different hardware, as long as it runs the same sketch and uses the same IP address. This ability to swap boards is only possible with freshly installed HubDuino boards, due to changes in the Child Device Network IDs. These are now based on the parent's device.Id, instead of the parent's device.deviceNetworkId.
- Number of Buttons no longer required when setting up a Parent Device. This will be automatically determined and configured. Please be sure to update your Arduino library's IS_Button.cpp file, and rebuild/reload the sketch for this to work on new installations.
- New setting for Device Timeout - number of seconds before marking the micro-controller 'not present'. In the event that your Arduino/ESP8266 boards decides to go offline, the Parent Device now implements the Presence Capability. This will indicate whether or not the micro-controller has sent data to the hub within the user defined timeout setting (defaults to 900 seconds.) You can use this as a trigger in RM, for example, to send a notification that something may be wrong.
[UPDATE 1.1.6] Adds support for Arduino NANO 33 IoT
[UPDATE 1.1.5] Adds support for Arduino MKR1010 (thanks @jrau272!), support for MKR THERM thermocouple shield, Arduino IDE 1.8.9, ESP8266 v2.5.2, updated numerous libraries, etc…
[UPDATE 1.1.4 Adds support for SHT31 Temperature and Humidity I2C Sensor
[UPDATE 1.1.3] This version brings significant enhancements to the EX_Servo class to allow asynchronous and simultaneous motion by multiple servos. Also, the speed of each servo, as well as min and max endpoint angles are now user selectable. Special thanks to @VooDooFiveTwo Jeff Albers for his contributions!
[UPDATE 1.1.2] I have added I2C sensor support for the MAX44009(lux), TSL2561(lux), BH1750(lux), AM2320(temp and humid), BME280(temp, humid, pressure), BMP280(temp and pressure), and updates for the TCS34725(color lux). A new example sketch to demonstrate these is included as well.
HubDuino allows you to integrate a custom Arduino / ESP8266 / ESP32 device with Hubitat by editing only one Arduino sketch file! No groovy programming skills are required! You simply decide what devices are attached to each pin of your microcontoller and HubDuino/ST_Anything handles the rest for you! Numerous example sketches are included to help get you started.
Please provide some feedback on your experience so the documentation and code can be improved.
Note: This release has support for LAN-connected devices AND for the ThingShield.
Note: Former ST_Anything users will need to update all of their Arduino Library code from my GitHub repository. Some minor changes were required to the Ethernet/WiFi libraries. Also, the Hubitat Hub listens on port 39501, not 39500. You will need to update your sketches accordingly while changing the IP address of the hub as well.
HubDuino Architecture
Please follow the guide in the ReadMe below and feel free to issue a pull request to improve this document.
NOTE: Hubuino for ESP8266 has built in OTA (Over the Air) support. For this to work you must install Python v2.7 on your computer. You must initially install your ESP8266-based ST_Anything sketch via usb/serial port, Once up and running, the ESP8266 will broadcast an OTA device which looks like ESP8266-xxxxxxxxxxxx at yy.yy.yy.yy (e.g. ESP8266-4417931186E6 at 192.168.1.144) which is visible in the Arduino IDE in the Tools->Ports menu. If you select that device in the ports menu, you can then upload to the device over the air. If you'd prefer a more descriptive host name, you can add the desired host name as the last parameter on the SmartThingsESP8266WiFi constructor. In the example below Fireplace_ESP will be the host name and under ports you will then see
Fireplace_ESP at 192.168.1.144.
st::Everything::SmartThing = new st::SmartThingsESP8266WiFi(str_ssid, str_password, ip, gateway, subnet, dnsserver, serverPort, hubIp, hubPort, st::receiveSmartString,"Fireplace_ESP");