From b511e65905edebe6bc818ac018db62d70d1d4616 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Sat, 31 Dec 2016 14:52:06 +0100 Subject: [PATCH] Version 1.4.0 --- CHANGELOG.md | 12 +++++++++--- README.md | 16 ++++++---------- code/espurna/config/general.h | 1 - code/espurna/config/version.h | 2 +- code/espurna/data/fsversion | 1 - code/espurna/data/index.html.gz | Bin 2579 -> 3250 bytes code/espurna/data/script.js.gz | Bin 37418 -> 37874 bytes code/espurna/data/style.css.gz | Bin 5872 -> 5947 bytes code/espurna/espurna.ino | 14 +------------- code/espurna/mqtt.ino | 3 --- code/espurna/web.ino | 1 + code/gulpfile.js | 2 +- code/html/fsversion | 1 - code/html/index.html | 4 ++-- code/pio_hooks.py | 19 +------------------ 15 files changed, 22 insertions(+), 54 deletions(-) delete mode 100644 code/espurna/data/fsversion delete mode 100644 code/html/fsversion diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e46691b..c03cf2a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,20 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [Unreleased] +## [1.4.0] 2016-12-31 ### Added - Domoticz support via MQTT (https://www.domoticz.com/wiki/MQTT) +- Support for static IP connections + +### Fixed +- #16 Enforce minimum password strength in web interface ### Changed - Using default client_id provided by AsyncMqttClient +- Allow up to 5 different WIFI networks + +### Removed +- File system version file ## [1.3.1] 2016-12-31 ### Fixed @@ -126,8 +134,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed - Moving wifi management to library (JustWifi) - -### Changed - Split code into modules ## [0.9.6] 2016-08-12 diff --git a/README.md b/README.md index 4a4fbd21..b16af092 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # ESPurna Firmware ESPurna ("spark" in Catalan) is a custom firmware for ESP8266 based smart switches. -It was originally developed with the **[IteadStudio Sonoff][1]** in mind but now it supports a growing number of ESP8266-based boards. +It was originally developed with the **[IteadStudio Sonoff](https://www.itead.cc/sonoff-wifi-wireless-switch.html)** in mind but now it supports a growing number of ESP8266-based boards. It uses the Arduino Core for ESP8266 framework and a number of 3rd party libraries. -**Current Release Version is 1.3.1**, read the [changelog](CHANGELOG.md). +**Current Release Version is 1.4.0**, read the [changelog](CHANGELOG.md). ## Features * Support for **multiple ESP8266-based boards** ([check list](#supported-hardware)) -* Wifi **AP Mode** or **STA mode** with **multiple network definitions** +* Wifi **AP Mode** or **STA mode** with **multiple network definitions** and static IP support * **MQTT** enabled * Switch on/off and toggle relays * LED notifications @@ -17,7 +17,7 @@ It uses the Arduino Core for ESP8266 framework and a number of 3rd party librari * DHT11 / DHT22 / DHT21 / AM2301 * DS18B20 * HLW8012 (Sonoff POW) - * Non-invasive current sensor using the [EmonLiteESP Library][3] (requires some hacking) + * Non-invasive current sensor using the [EmonLiteESP Library](https://bitbucket.org/xoseperez/emonliteesp) (requires some hacking) * Fast asynchronous **HTTP Server** * Basic authentication * Web-based configuration @@ -28,8 +28,9 @@ It uses the Arduino Core for ESP8266 framework and a number of 3rd party librari * **Command line configuration** * **Over-The-Air** (OTA) updates even for 1Mb boards * Manually from PlatformIO or Arduino Inside - * Automatic updates through the [NoFUSS Library][2] + * Automatic updates through the [NoFUSS Library](https://bitbucket.org/xoseperez/nofuss) * **Alexa** integration (requires staging version of Arduino Core for ESP8266) +* [**Domoticz**](https://domoticz.com/) integration via MQTT ## Documentation @@ -61,8 +62,3 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . - - -[1]: https://www.itead.cc/sonoff-wifi-wireless-switch.html -[2]: https://bitbucket.org/xoseperez/nofuss -[3]: https://bitbucket.org/xoseperez/emonliteesp diff --git a/code/espurna/config/general.h b/code/espurna/config/general.h index c153bbdf..3d06436b 100644 --- a/code/espurna/config/general.h +++ b/code/espurna/config/general.h @@ -6,7 +6,6 @@ #define HOSTNAME DEVICE #define BUFFER_SIZE 1024 #define HEARTBEAT_INTERVAL 300000 -#define FS_VERSION_FILE "/fsversion" //-------------------------------------------------------------------------------- // RELAY diff --git a/code/espurna/config/version.h b/code/espurna/config/version.h index ab3295d3..1fccd043 100644 --- a/code/espurna/config/version.h +++ b/code/espurna/config/version.h @@ -1,4 +1,4 @@ #define APP_NAME "ESPurna" -#define APP_VERSION "1.3.1" +#define APP_VERSION "1.4.0" #define APP_AUTHOR "xose.perez@gmail.com" #define APP_WEBSITE "http://tinkerman.cat" diff --git a/code/espurna/data/fsversion b/code/espurna/data/fsversion deleted file mode 100644 index f0bb29e7..00000000 --- a/code/espurna/data/fsversion +++ /dev/null @@ -1 +0,0 @@ -1.3.0 diff --git a/code/espurna/data/index.html.gz b/code/espurna/data/index.html.gz index d879c6416c1a747e0513785478c4c96b25875c19..297242610e5c20c01252855f7fb81736566ccd6d 100644 GIT binary patch literal 3250 zcmV;j3{CSNiwFP!000001I=4)Z`(K${wq8cx0?X5ojA>+*xCkyByEjtUM_ag>wY=V z5^ZrKky??8;~wsh-N*Z7H$zggB)=rKvaPDNO;ioB07_q zhPTx9coQ>`dFCBneFoydP(+oo4;nZev{wlgK+}EEIYrao-nwo{ma>L>jO`bmH;^+f zCSG0lmUHUyUq*F__o;V!k^q`?yD*@0l`iID+}0`uqHHv;N={u`hfT z{W>j>rTSSC&Uv_+pFr(c*Hc-P#CWl;7jTt;zxs6)N&lhR6&(obv=g2bOBgOYVY_#c zr6~-BPIb&DSxPmR0^YWlu$6$j1|nmb#ua(ZgW{?|BR&xCcJwXJpQKdo| z!UPSZh-O_czw(x;VRHd&jDm$^zISEXQQIH8e#jFJ6LHL#W^sP8 zyEXWGiCin=MbgUjOcOj239^(F}_CNCw6??raZ0aNxY`CS2Ep zui8xOY8Zpchb&G26QOG&2mkr^#o^8~VCe27NT@fHB-DEn#S;F(vV6(_v%v=s07jC7 zzrKbTNOKo4EW&!Z7|{OQ*Zh&)IhciC%H24Vs4wn1;%h2?dX`d-Vt zJ~4UD8k&^UXZWsS`r3!>GFDKPS1*6j9{aQ4G(_E{D+Zz%0qr_ z$ZAca6wFshzfjL83Un)L7e(RD1!9{|le}l{_J2?ira{cb9kfH=h}R^68;DfF(qLR_ z{<3hKQ>%pJ{l;WismLW)8bA#!@090_OoVNy*QK#LtIE z7%vHpl*C>xh?N!QCy{Evh9_i{dBo+8 zn5AHm#7GM;EYW7p0zlPB7<+9rIomrQQ^_>U<-TbSh?_WTd540B{Ka|5vg4h>EzwJ(^r(`iz?;_ zFSnJ&ka>Q7PHVzg(;Y=rJPdtTPFeOK>XOiocEjZC4$BqiUL5GMUn;<3n15qS-5k~ zoMTkT({F%&STLOLAc9j95+_ zr!pqThfUJA1*eguDW)xuc!+3LDvj`Ynd*3*^Z-$Jke%7$rxcct&sUc@Seo!hNXv|D zN4W-0&C4tm$lZwg4|tED27+k7ease@>H*1ass-%xQXTMQu7Em50>hH2u8EG**S}jw z5`aajN01zCNZF##F(j>!J!KjpUZ-`qlWViZ#VduA zoQYdJmRN{&`(?PhTu5@2V0F+_2xgB*R`>OI@U(na?}aw#PJpd4KzA}Mw>}#25vHTo z)=Xa#OTn>xm4_ifL+A?8MpLG^!pbu-ZV?ebM6^@}nQsl4JtbhjEO2R|iD|Z0ZHXTh z&L8_e%19f~k3(R0Az|@D_T_pTS8VnLVy5T0C$>ydnZOfQd}@OGMv^m^EkMI#{D_KV z!grDu<#LhL5#y&bzX4 zzOApi<2?c&2wIpRqWjGhhO^~n74ZkOxKS33T%pv(GE;FdE}QEkBC#GZ;#A=GfUvcJY{5*<@s0UG}g%E54FwtsRzs^)XPv0h@T<_9auHQa5d8$)Lk?NmKW`|PZl z|L;$8UsOgTNR=w183Svz-xej~EwmWmS$Z_mZA}XaY_Gj{P4l-`i$fpC ztwn;s7-=yGuQkb?`C4eZVHgPj9@nBsNmMI1o>Pd{{nB8`DZJN!0}H!s<}gd;H%(@& ze{i$0W`4a?Kd8I?-d%Zw{LHTXS;=wzXhJ<%`9Z>$#qMAJ{lzlR5mB`jyfom4Kmykf zo=WMQxw8tg*@cG{3A5lTtFNw~^_&1UGYg6M40rt9dU9z>zNaB1R{DGs-|Aax_S62t kPWdTMG*PJ!5YJpU|1e3Ty}{q(;ZG0$3(#CUJdij50Bv$Kw*UYD literal 2579 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�ps&G8 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 diff --git a/code/espurna/data/style.css.gz b/code/espurna/data/style.css.gz index 1ed7c596d0d22a8d2973601e3f2c42e0730e192b..c6e249dc4c14a5e0439424b477c9b2879ef8c17a 100644 GIT binary patch delta 5433 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 jELv<`I1x@LO`0QfeG6?gR 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 LqFj}WU2gyY{hpoR diff --git a/code/espurna/espurna.ino b/code/espurna/espurna.ino index 24b6ae57..874b6744 100644 --- a/code/espurna/espurna.ino +++ b/code/espurna/espurna.ino @@ -28,7 +28,7 @@ along with this program. If not, see . #include #include #include -#include "FS.h" + void mqttRegister(void (*callback)(unsigned int, const char *, const char *)); template bool setSetting(const String& key, T value); template String getSetting(const String& key, T defaultValue); @@ -48,18 +48,6 @@ void hardwareSetup() { SPIFFS.begin(); } -void getFSVersion(char * buffer) { - File h = SPIFFS.open(FS_VERSION_FILE, "r"); - if (!h) { - DEBUG_MSG("[SPIFFS] Could not open file system version file.\n"); - strcpy(buffer, APP_VERSION); - return; - } - size_t size = h.size(); - h.readBytes(buffer, size - 1); - h.close(); -} - void hardwareLoop() { // Heartbeat diff --git a/code/espurna/mqtt.ino b/code/espurna/mqtt.ino index 8b9dc84a..d47d5f58 100644 --- a/code/espurna/mqtt.ino +++ b/code/espurna/mqtt.ino @@ -84,9 +84,6 @@ void _mqttOnConnect(bool sessionPresent) { // Say hello and report our IP and VERSION mqttSend(MQTT_IP_TOPIC, getIP().c_str()); mqttSend(MQTT_VERSION_TOPIC, APP_VERSION); - char buffer[50]; - getFSVersion(buffer); - mqttSend(MQTT_FSVERSION_TOPIC, buffer); // Send connect event to subscribers for (unsigned char i = 0; i < _mqtt_callbacks.size(); i++) { diff --git a/code/espurna/web.ino b/code/espurna/web.ino index 327dcbe7..1905d166 100644 --- a/code/espurna/web.ino +++ b/code/espurna/web.ino @@ -177,6 +177,7 @@ void _wsParse(uint32_t client_id, uint8_t * payload, size_t length) { } if (value != getSetting(key)) { + //DEBUG_MSG("[WEBSOCKET] Storing %s = %s\n", key.c_str(), value.c_str()); setSetting(key, value); dirty = true; if (key.startsWith("mqtt")) dirtyMQTT = true; diff --git a/code/gulpfile.js b/code/gulpfile.js index 181cfeb4..1bf02633 100644 --- a/code/gulpfile.js +++ b/code/gulpfile.js @@ -91,4 +91,4 @@ gulp.task('html', function() { /* Build file system */ gulp.task('buildfs_split', ['clean', 'files', 'html']); gulp.task('buildfs_inline', ['clean', 'files', 'inline']); -gulp.task('default', ['buildfs_inline']); +gulp.task('default', ['buildfs_split']); diff --git a/code/html/fsversion b/code/html/fsversion deleted file mode 100644 index 3a3cd8cc..00000000 --- a/code/html/fsversion +++ /dev/null @@ -1 +0,0 @@ -1.3.1 diff --git a/code/html/index.html b/code/html/index.html index 3e9718ae..ee8ab0c2 100644 --- a/code/html/index.html +++ b/code/html/index.html @@ -388,12 +388,12 @@
-
+
-
+
diff --git a/code/pio_hooks.py b/code/pio_hooks.py index 7abf6075..5b818421 100644 --- a/code/pio_hooks.py +++ b/code/pio_hooks.py @@ -5,24 +5,7 @@ import socket from SCons.Script import DefaultEnvironment env = DefaultEnvironment() -def is_valid_ip(ip): - try: - socket.inet_aton(ip) - return True - except socket.error: - return False - def before_build_spiffs(source, target, env): - env.Execute("gulp buildfs_split") - -def before_upload(source, target, env): - upload_port = env.get('UPLOAD_PORT', False) - if upload_port and upload_port[0] == '/': - cmd = ["mosquitto_sub", "-t", upload_port, "-h", "192.168.1.10", "-N", "-C", "1"] - ip = subprocess.check_output(cmd) - if is_valid_ip(ip): - env['UPLOAD_PORT'] = '"' + ip + '"' + env.Execute("gulp") -#env.AddPreAction("uploadfs", before_upload) -#env.AddPreAction("upload", before_upload) env.AddPreAction(".pioenvs/%s/spiffs.bin" % env['PIOENV'], before_build_spiffs)