Skip to content

Commit

Permalink
6.3.0.17 Add features
Browse files Browse the repository at this point in the history
6.3.0.17 20181211
 * Add support for TheoV2 sensors as documented on https://sidweb.nl
 * Add support for SDM220 (arendst#3610)
 * Enhance support for MPU6050 using DMP (arendst#4581)
  • Loading branch information
arendst committed Dec 11, 2018
1 parent 9c12dbe commit d5cf9bd
Show file tree
Hide file tree
Showing 31 changed files with 714 additions and 43 deletions.
7 changes: 6 additions & 1 deletion sonoff/_changelog.ino
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
/* 6.3.0.16 20181201
/* 6.3.0.17 20181211
* Add support for TheoV2 sensors as documented on https://sidweb.nl
* Add support for SDM220 (#3610)
* Enhance support for MPU6050 using DMP (#4581)
*
* 6.3.0.16 20181201
* Add support for iFan02 Fanspeed in Domoticz using a selector (#4517)
* Add Announce Switches to MQTT Discovery (#4531)
* Update MCP230xx driver to support interrupt retention over teleperiod (#4547)
Expand Down
13 changes: 7 additions & 6 deletions sonoff/i18n.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@
#define D_JSON_COUNT "Count"
#define D_JSON_COUNTER "Counter"
#define D_JSON_CURRENT "Current" // As in Voltage and Current
#define D_JSON_PHASE_ANGLE "Phase angle"
#define D_JSON_IMPORT_ACTIVE "Import Active Power"
#define D_JSON_EXPORT_ACTIVE "Export Active Power"
#define D_JSON_IMPORT_REACTIVE "Import Reactive Power"
#define D_JSON_EXPORT_REACTIVE "Export Reactive Power"
#define D_JSON_TOTAL_REACTIVE "Total Reactive Power"
#define D_JSON_DATA "Data"
#define D_JSON_DISTANCE "Distance"
#define D_JSON_DNSSERVER "DNSServer"
Expand All @@ -65,6 +59,8 @@
#define D_JSON_ERASE "Erase"
#define D_JSON_ERROR "Error"
#define D_JSON_EVERY "Every"
#define D_JSON_EXPORT_ACTIVE "ExportActivePower"
#define D_JSON_EXPORT_REACTIVE "ExportReactivePower"
#define D_JSON_FAILED "Failed"
#define D_JSON_FALLBACKTOPIC "FallbackTopic"
#define D_JSON_FEATURES "Features"
Expand All @@ -86,6 +82,8 @@
#define D_JSON_I2CSCAN_NO_DEVICES_FOUND "No devices found"
#define D_JSON_ID "Id"
#define D_JSON_ILLUMINANCE "Illuminance"
#define D_JSON_IMPORT_ACTIVE "ImportActivePower"
#define D_JSON_IMPORT_REACTIVE "ImportReactivePower"
#define D_JSON_INFRARED "Infrared"
#define D_JSON_UNKNOWN "Unknown"
#define D_JSON_LIGHT "Light"
Expand All @@ -99,6 +97,7 @@
#define D_JSON_NONE "None"
#define D_JSON_OR "or"
#define D_JSON_PERIOD "Period"
#define D_JSON_PHASE_ANGLE "PhaseAngle"
#define D_JSON_POWERFACTOR "Factor"
#define D_JSON_POWERUSAGE "Power"
#define D_JSON_ACTIVE_POWERUSAGE "ActivePower"
Expand Down Expand Up @@ -135,6 +134,7 @@
#define D_JSON_TIME "Time"
#define D_JSON_TODAY "Today"
#define D_JSON_TOTAL "Total"
#define D_JSON_TOTAL_REACTIVE "TotalReactivePower"
#define D_JSON_TOTAL_START_TIME "TotalStartTime"
#define D_JSON_TVOC "TVOC"
#define D_JSON_TYPE "Type"
Expand Down Expand Up @@ -546,6 +546,7 @@ const char HTTP_SNS_HUM[] PROGMEM = "%s{s}%s " D_HUMIDITY "{m}%s%%{e}";
const char HTTP_SNS_PRESSURE[] PROGMEM = "%s{s}%s " D_PRESSURE "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
const char HTTP_SNS_SEAPRESSURE[] PROGMEM = "%s{s}%s " D_PRESSUREATSEALEVEL "{m}%s %s{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
const char HTTP_SNS_ANALOG[] PROGMEM = "%s{s}%s " D_ANALOG_INPUT "%d{m}%d{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
const char HTTP_SNS_ILLUMINANCE[] PROGMEM = "%s{s}%s " D_ILLUMINANCE "{m}%d " D_UNIT_LUX "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>

#if defined(USE_MHZ19) || defined(USE_SENSEAIR)
const char HTTP_SNS_CO2[] PROGMEM = "%s{s}%s " D_CO2 "{m}%d " D_UNIT_PARTS_PER_MILLION "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/bg-BG.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/cs-CZ.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/de-DE.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/el-GR.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
3 changes: 2 additions & 1 deletion sonoff/language/en-GB.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"

#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down Expand Up @@ -594,6 +594,7 @@
#define D_LOG_UPNP "UPP: " // UPnP
#define D_LOG_WIFI "WIF: " // Wifi

//SDM220
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/es-AR.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/fr-FR.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/he-HE.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/hu-HU.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/it-IT.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/nl-NL.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/pl-PL.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/pt-BR.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
2 changes: 1 addition & 1 deletion sonoff/language/pt-PT.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"

#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/ru-RU.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "А"
Expand Down
3 changes: 2 additions & 1 deletion sonoff/language/sv-SE.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,7 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"

#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down Expand Up @@ -594,6 +594,7 @@
#define D_LOG_UPNP "UPP: " // UPnP
#define D_LOG_WIFI "WIF: " // Wifi

//SDM220
#define D_PHASE_ANGLE "Phase Angle"
#define D_IMPORT_ACTIVE "Import Active"
#define D_EXPORT_ACTIVE "Export Active"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/tr-TR.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "A"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/uk-UK.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "А"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/zh-CN.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "安"
Expand Down
1 change: 1 addition & 0 deletions sonoff/language/zh-TW.h
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,7 @@
#define D_SENSOR_SSPI_SCLK "SSPI SCLK"
#define D_SENSOR_SSPI_CS "SSPI CS"
#define D_SENSOR_SSPI_DC "SSPI DC"
#define D_SENSOR_RF_SENSOR "RF Sensor"

// Units
#define D_UNIT_AMPERE "安"
Expand Down
6 changes: 5 additions & 1 deletion sonoff/my_user_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@
#define USE_SERIAL_BRIDGE // Add support for software Serial Bridge (+0k8 code)
//#define USE_SDM120 // Add support for Eastron SDM120-Modbus energy meter (+1k7 code)
#define SDM120_SPEED 9600 // SDM120-Modbus RS485 serial speed (default: 2400 baud)
#define USE_SDM220 // add extra parameters for SDM220 (+0k1 code)
#define USE_SDM220 // Add extra parameters for SDM220 (+0k1 code)
//#define USE_SDM630 // Add support for Eastron SDM630-Modbus energy meter (+2k code)
#define SDM630_SPEED 9600 // SDM630-Modbus RS485 serial speed (default: 9600 baud)
//#define USE_MP3_PLAYER // Use of the DFPlayer Mini MP3 Player RB-DFR-562 commands: play, volume and stop
Expand Down Expand Up @@ -399,6 +399,10 @@

#define USE_RC_SWITCH // Add support for RF transceiver using library RcSwitch (+2k7 code, 460 iram)

//#define USE_RF_SENSOR // Add support for RF (434MHz or 868MHz) receiver (+2k code)
// #define USE_THEO_V2 // Add support for 434MHz Theo V2 sensors as documented on https://sidweb.nl
// #define USE_ALECTO_V2 // Add support for 868MHz Alecto V2 sensors like ACH2010, WS3000 and DKW2012

/*********************************************************************************************\
* Debug features are only supported in development branch
\*********************************************************************************************/
Expand Down
1 change: 1 addition & 0 deletions sonoff/sonoff.ino
Original file line number Diff line number Diff line change
Expand Up @@ -2766,6 +2766,7 @@ void loop(void)
uint32_t my_sleep = millis();

XdrvCall(FUNC_LOOP);
XsnsCall(FUNC_LOOP);

OsWatchLoop();

Expand Down
7 changes: 6 additions & 1 deletion sonoff/sonoff_template.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ enum UserSelectablePins {
GPIO_SSPI_SCLK, // Software SPI Serial Clock
GPIO_SSPI_CS, // Software SPI Chip Select
GPIO_SSPI_DC, // Software SPI Data or Command
GPIO_RF_SENSOR, // Rf receiver with sensor decoding
GPIO_SENSOR_END };

// Programmer selectable GPIO functionality offset by user selectable GPIOs
Expand Down Expand Up @@ -199,7 +200,8 @@ const char kSensorNames[] PROGMEM =
D_SENSOR_RFSEND "|" D_SENSOR_RFRECV "|"
D_SENSOR_TUYA_TX "|" D_SENSOR_TUYA_RX "|"
D_SENSOR_MGC3130_XFER "|" D_SENSOR_MGC3130_RESET "|"
D_SENSOR_SSPI_MISO "|" D_SENSOR_SSPI_MOSI "|" D_SENSOR_SSPI_SCLK "|" D_SENSOR_SSPI_CS "|" D_SENSOR_SSPI_DC;
D_SENSOR_SSPI_MISO "|" D_SENSOR_SSPI_MOSI "|" D_SENSOR_SSPI_SCLK "|" D_SENSOR_SSPI_CS "|" D_SENSOR_SSPI_DC "|"
D_SENSOR_RF_SENSOR;

/********************************************************************************************/

Expand Down Expand Up @@ -382,6 +384,9 @@ const uint8_t kGpioNiceList[] PROGMEM = {
GPIO_RFSEND, // RF transmitter
GPIO_RFRECV, // RF receiver
#endif
#ifdef USE_RF_SENSOR
GPIO_RF_SENSOR, // Rf receiver with sensor decoding
#endif
#ifdef USE_SR04
GPIO_SR04_TRIG, // SR04 Trigger pin
GPIO_SR04_ECHO, // SR04 Echo pin
Expand Down
2 changes: 1 addition & 1 deletion sonoff/sonoff_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#ifndef _SONOFF_VERSION_H_
#define _SONOFF_VERSION_H_

#define VERSION 0x06030010
#define VERSION 0x06030011

#define D_PROGRAMNAME "Sonoff-Tasmota"
#define D_AUTHOR "Theo Arends"
Expand Down
13 changes: 9 additions & 4 deletions sonoff/support_features.ino
Original file line number Diff line number Diff line change
Expand Up @@ -361,10 +361,15 @@ void GetFeatures(void)
#ifdef USE_MGC3130
feature_sns2 |= 0x00004000; // xsns_36_mgc3130.ino
#endif

// feature_sns2 |= 0x00008000;
// feature_sns2 |= 0x00010000;
// feature_sns2 |= 0x00020000;
#ifdef USE_RF_SENSOR
feature_sns2 |= 0x00008000; // xsns_37_rfsensor.ino
#endif
#ifdef USE_THEO_V2
feature_sns2 |= 0x00010000;
#endif
#ifdef USE_ALECTO_V2
feature_sns2 |= 0x00020000;
#endif
// feature_sns2 |= 0x00040000;
// feature_sns2 |= 0x00080000;
// feature_sns2 |= 0x00100000;
Expand Down
40 changes: 21 additions & 19 deletions sonoff/support_rtc.ino
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,20 @@ String GetTimeZone(void)
return String(tz); // -03:45
}

String GetDT(uint32_t time)
{
// "2017-03-07T11:08:02" - ISO8601:2004

char dt[20];
TIME_T tmpTime;

BreakTime(time, tmpTime);
snprintf_P(dt, sizeof(dt), PSTR("%04d-%02d-%02dT%02d:%02d:%02d"),
tmpTime.year +1970, tmpTime.month, tmpTime.day_of_month, tmpTime.hour, tmpTime.minute, tmpTime.second);

return String(dt); // 2017-03-07T11:08:02
}

/*
* timestamps in https://en.wikipedia.org/wiki/ISO_8601 format
*
Expand All @@ -101,39 +115,27 @@ String GetTimeZone(void)
String GetDateAndTime(byte time_type)
{
// "2017-03-07T11:08:02-07:00" - ISO8601:2004
char dt[27];
TIME_T tmpTime;
uint32_t time = local_time;

switch (time_type) {
case DT_ENERGY:
BreakTime(Settings.energy_kWhtotal_time, tmpTime);
tmpTime.year += 1970;
time = Settings.energy_kWhtotal_time;
break;
case DT_UTC:
BreakTime(utc_time, tmpTime);
tmpTime.year += 1970;
time = utc_time;
break;
case DT_RESTART:
if (restart_time == 0) {
return "";
}
BreakTime(restart_time, tmpTime);
tmpTime.year += 1970;
time = restart_time;
break;
default:
tmpTime = RtcTime;
}


snprintf_P(dt, sizeof(dt), PSTR("%04d-%02d-%02dT%02d:%02d:%02d"),
tmpTime.year, tmpTime.month, tmpTime.day_of_month, tmpTime.hour, tmpTime.minute, tmpTime.second);

String dt = GetDT(time); // 2017-03-07T11:08:02
if (Settings.flag3.time_append_timezone && (DT_LOCAL == time_type)) {
// if (Settings.flag3.time_append_timezone && ((DT_LOCAL == time_type) || (DT_ENERGY == time_type))) {
strncat(dt, GetTimeZone().c_str(), sizeof(dt) - strlen(dt) -1);
dt += GetTimeZone(); // 2017-03-07T11:08:02-07:00
}

return String(dt); // 2017-03-07T11:08:02-07:00
return dt; // 2017-03-07T11:08:02-07:00
}

String GetTime(int type)
Expand Down

0 comments on commit d5cf9bd

Please sign in to comment.