/* * To upload through terminal you can use: curl -F "image=@firmware.bin" http://:8080/update * * * bin file location on windows: C:\Users\\AppData\Local\Temp\arduino_build_ */ #include #include #include #include #include #include // WiFiManager from bib manager #include "config.h" #include "config_user.h" ESP8266WebServer httpServer(WEB_UPDATER_HTTP_PORT); ESP8266HTTPUpdateServer httpUpdater; String _webUpdater_ip = "127.0.0.1"; String _webUpdater_dev = "unknown"; float _webUpdater_sensValues[VALUES]; String hb_ws_msg_start = "{"; String hb_ws_msg_temp = "\"temperature\": "; String hb_ws_msg_humi = "\"humidity\": "; String hb_ws_msg_light = "\"lightlevel\": "; String hb_ws_msg_windspeed = "\"windspeed\": "; String hb_ws_msg_end = "}"; void setupWebUpdater(String device, String ip) { debug("Starting WebUpdater... " + ip); _webUpdater_ip = ip; _webUpdater_dev = device; httpUpdater.setup(&httpServer); httpServer.on("/", showHTMLMain); httpServer.on("/resetWifiManager", resetWifiManager); #ifdef HOMEBRIDGE_WEBSTAT httpServer.on("/hbWebstat", hb_webstat_send); #endif httpServer.begin(); debug("HTTPUpdateServer ready!"); } void doWebUpdater(void) { digitalWrite(D0, HIGH); httpServer.handleClient(); } void setSensorData(float sensorValues[]) { for (uint8_t i = 0; i < VALUES; i++) { _webUpdater_sensValues[i] = sensorValues[i]; } } void showHTMLMain(void) { String message = "OKO Weatherstation - " + String(_webUpdater_dev) + "" "" "" "
firmware update

" "" "" "" "" "" "" "" "
temperature" + String(_webUpdater_sensValues[SENSOR_TEMPERATURE]) + "
humidity" + String(_webUpdater_sensValues[SENSOR_HUMIDITY]) + "
light" + String(_webUpdater_sensValues[SENSOR_LIGHT]) + "
windspeed" + String(_webUpdater_sensValues[SENSOR_WINDSPEED]) + "
pressure" + String(_webUpdater_sensValues[SENSOR_PRESSURE]) + "
batvoltage" + String(_webUpdater_sensValues[SENSOR_BAT_VOLTAGE]) + "
" ""; httpServer.send(200, "text/html", message); } void hb_webstat_send(void) { httpServer.send(200, "text/html", hb_ws_msg_start + hb_ws_msg_temp + String(_webUpdater_sensValues[SENSOR_TEMPERATURE], 2) + ", " + hb_ws_msg_humi + String(int(_webUpdater_sensValues[SENSOR_HUMIDITY]), 2) + ", " + hb_ws_msg_light + String(int(_webUpdater_sensValues[SENSOR_LIGHT]), 2) + ", " + hb_ws_msg_windspeed + String(_webUpdater_sensValues[SENSOR_WINDSPEED], 2) + hb_ws_msg_end); } void resetWifiManager() { String message = "OKO Weatherstation - " + String(_webUpdater_dev) + "" "" "" "Reset WifiManager config.
" "Rebooting...
" ""; httpServer.send(200, "text/html", message); // Erase WiFi Credentials, enable, compile, flash, disable and reflash. WiFiManager wifiManager; wifiManager.resetSettings(); delay(5000); // manual reset after restart is required ESP.restart(); }