ph1p / ikea-led-obegraensad

ESP32/Arduino hack for the ikea OBEGRÄNSAD led wall lamp
MIT License
578 stars 78 forks source link

Adding MQTT control and new weather features #81

Open robotfishe opened 6 months ago

robotfishe commented 6 months ago

This PR adds the ability to show forecast as well as current weather. It uses two new variables: weatherMode and weatherTime. weatherMode can be set to 0 (current), 1 (hourly forecast), or 2 (daily forecast); weatherTime sets the number of hours or days to look ahead. For example, if you want the forecasted weather one hour from now, set both weatherMode and weatherTime to 1.

I am not confident of my ability to edit the web GUI, so for now these settings can only be changed via websocket or the second contribution in this PR: MQTT control.

Three MQTT settings are currently available. Topics are "Obegraensad/mode" (changes the plugin), "Obegraensad/weatherMode", and "Obegraensad/weatherTime" (as above). Messages must be integers.

This PR also splits the weather loop into a tick-tock setup, getting updated JSON data on one loop and parsing it on the next, to avoid CPU watchdog timeouts.

robotfishe commented 5 months ago

It got cold enough here this week that I noticed an issue with how the weather plugin manages negative numbers - now fixed.

OldDroid commented 5 months ago

@robotfishe The whole PR is messed up. Please do one with proper commit history and one pr per feature - you simply cant keep track.. I had trouble yesterday implementing your solution because it looks like some things are specifically just implemented for esp8266 instead of making it available for both esp32 and esp8266. So i looked into your code and just merged your MQTT support in my local workspace.