Add more support

* Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
 * Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
 * Add support for Manzoku Power Strip (#4590)
This commit is contained in:
Theo Arends 2018-12-11 18:00:12 +01:00
parent 3779b84bd4
commit b3e5e35cea
24 changed files with 103 additions and 24 deletions

View File

@ -1,6 +1,8 @@
/* 6.3.0.17 20181211
* Add support for TheoV2 sensors as documented on https://sidweb.nl
* Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
* Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
* Add support for SDM220 (#3610)
* Add support for Manzoku Power Strip (#4590)
* Enhance support for MPU6050 using DMP (#4581)
*
* 6.3.0.16 20181201

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Размер на флаш паметта за програми"
#define D_PROGRAM_SIZE "Размер на програмата"
#define D_PROJECT "Проект"
#define D_RAIN "Rain"
#define D_RECEIVED "Получено"
#define D_RESTART "Рестарт"
#define D_RESTARTING "Рестартиране"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Velikost paměti flash"
#define D_PROGRAM_SIZE "Velikost programu"
#define D_PROJECT "Projekt"
#define D_RAIN "Rain"
#define D_RECEIVED "Přijatý"
#define D_RESTART "Restart"
#define D_RESTARTING "Restartování"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Ges. Flash Speicher"
#define D_PROGRAM_SIZE "Ben. Flash Speicher"
#define D_PROJECT "Projekt"
#define D_RAIN "Regen"
#define D_RECEIVED "erhalten"
#define D_RESTART "Neustart"
#define D_RESTARTING "starte neu"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Μέγεθος προγράμματος στη Flash"
#define D_PROGRAM_SIZE "Μέγεθος προγράμματος"
#define D_PROJECT "Έργο"
#define D_RAIN "Rain"
#define D_RECEIVED "Ελήφθη"
#define D_RESTART "Επανεκκίνηση"
#define D_RESTARTING "Επανεκκινεί"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Program Flash Size"
#define D_PROGRAM_SIZE "Program Size"
#define D_PROJECT "Project"
#define D_RAIN "Rain"
#define D_RECEIVED "Received"
#define D_RESTART "Restart"
#define D_RESTARTING "Restarting"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Tamaño de Flash de Programa"
#define D_PROGRAM_SIZE "Tamaño Programa"
#define D_PROJECT "Proyecto"
#define D_RAIN "Rain"
#define D_RECEIVED "Recibido"
#define D_RESTART "Reiniciar"
#define D_RESTARTING "Reiniciando"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Taille Flash Programme"
#define D_PROGRAM_SIZE "Taille programme"
#define D_PROJECT "Projet"
#define D_RAIN "Plui"
#define D_RECEIVED "Reçu"
#define D_RESTART "Redémarrage"
#define D_RESTARTING "Redémarre"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "µm"
#define D_UNIT_MICROSECOND "µs"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "גודל תוכנית פלאש"
#define D_PROGRAM_SIZE "גודל תוכנית"
#define D_PROJECT "פרויקט"
#define D_RAIN "Rain"
#define D_RECEIVED "התקבל"
#define D_RESTART "איתחול"
#define D_RESTARTING "הפעלה מחדש"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Program Flash Méret"
#define D_PROGRAM_SIZE "Program Méret"
#define D_PROJECT "Projekt"
#define D_RAIN "Rain"
#define D_RECEIVED "Érkezett"
#define D_RESTART "Újraindítás"
#define D_RESTARTING "Újraindítás"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "µs"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "p"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Dimensione Flash Programma"
#define D_PROGRAM_SIZE "Dimensione Programma"
#define D_PROJECT "Progetto"
#define D_RAIN "Rain"
#define D_RECEIVED "Ricevuto"
#define D_RESTART "Riavvio"
#define D_RESTARTING "Riavviando"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Programma Flash Grootte"
#define D_PROGRAM_SIZE "Programma Grootte"
#define D_PROJECT "Project"
#define D_RAIN "Regen"
#define D_RECEIVED "Ontvangen"
#define D_RESTART "Herstart"
#define D_RESTARTING "Herstarten"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Wielkość programu flash"
#define D_PROGRAM_SIZE "Wielkość programu"
#define D_PROJECT "Projekt"
#define D_RAIN "Rain"
#define D_RECEIVED "Otrzymany"
#define D_RESTART "Restart"
#define D_RESTARTING "Restartowanie"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Tamanho do programa na memória"
#define D_PROGRAM_SIZE "Tamanho do programa"
#define D_PROJECT "Projeto"
#define D_RAIN "Rain"
#define D_RECEIVED "Recebido"
#define D_RESTART "Reiniciar"
#define D_RESTARTING "Reiniciando"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "M"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Tamanho do Programa na Flash"
#define D_PROGRAM_SIZE "Tamanho do Programa"
#define D_PROJECT "Projeto"
#define D_RAIN "Rain"
#define D_RECEIVED "Recebido"
#define D_RESTART "Reiniciar"
#define D_RESTARTING "A reiniciar"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Размер Flash для программ"
#define D_PROGRAM_SIZE "Размер программы "
#define D_PROJECT "Проект"
#define D_RAIN "Rain"
#define D_RECEIVED "Получено"
#define D_RESTART "Перезапуск"
#define D_RESTARTING "Перезапуск"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "мкм"
#define D_UNIT_MICROSECOND "мкс"
#define D_UNIT_MILLIAMPERE "мА"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "мм рт.ст."
#define D_UNIT_MILLISECOND "мс"
#define D_UNIT_MINUTE "мин"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Program-flashstorlek"
#define D_PROGRAM_SIZE "Programstorlek"
#define D_PROJECT "Projekt"
#define D_RAIN "Rain"
#define D_RECEIVED "Mottagen"
#define D_RESTART "Omstart"
#define D_RESTARTING "Startar om"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Yazılım Flash Boyutu"
#define D_PROGRAM_SIZE "Yazılım Boyutu"
#define D_PROJECT "Proje"
#define D_RAIN "Rain"
#define D_RECEIVED "Alınan"
#define D_RESTART "Yeniden Başlat"
#define D_RESTARTING "Yeniden Başlatılıyor"
@ -552,6 +553,7 @@
#define D_UNIT_MICROMETER "um"
#define D_UNIT_MICROSECOND "us"
#define D_UNIT_MILLIAMPERE "mA"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "ms"
#define D_UNIT_MINUTE "Min"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "Розмір Flash для програм"
#define D_PROGRAM_SIZE "Розмір програм "
#define D_PROJECT "Проект"
#define D_RAIN "Rain"
#define D_RECEIVED "Отримано"
#define D_RESTART "Перезавантаження"
#define D_RESTARTING "Перезавантаження"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "мкм"
#define D_UNIT_MICROSECOND "мкс"
#define D_UNIT_MILLIAMPERE "мА"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "мс"
#define D_UNIT_MINUTE "хв"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "固件 Flash 大小"
#define D_PROGRAM_SIZE "固件大小"
#define D_PROJECT "项目:"
#define D_RAIN "Rain"
#define D_RECEIVED "已接收"
#define D_RESTART "重启"
#define D_RESTARTING "正在重启"
@ -552,6 +553,7 @@
#define D_UNIT_MICROMETER "微米"
#define D_UNIT_MICROSECOND "微秒"
#define D_UNIT_MILLIAMPERE "毫安"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "毫秒"
#define D_UNIT_MINUTE "分"

View File

@ -132,6 +132,7 @@
#define D_PROGRAM_FLASH_SIZE "韌體 Flash 大小"
#define D_PROGRAM_SIZE "韌體大小"
#define D_PROJECT "項目:"
#define D_RAIN "Rain"
#define D_RECEIVED "已接收"
#define D_RESTART "重啟"
#define D_RESTARTING "正在重啟"
@ -553,6 +554,7 @@
#define D_UNIT_MICROMETER "微米"
#define D_UNIT_MICROSECOND "微秒"
#define D_UNIT_MILLIAMPERE "毫安"
#define D_UNIT_MILLIMETER "mm"
#define D_UNIT_MILLIMETER_MERCURY "mmHg"
#define D_UNIT_MILLISECOND "毫秒"
#define D_UNIT_MINUTE "分"

View File

@ -399,9 +399,9 @@
#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
//#define USE_RF_SENSOR // Add support for RF sensor receiver (434MHz or 868MHz) (+0k8 code)
// #define USE_THEO_V2 // Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver (+1k4 code)
// #define USE_ALECTO_V2 // Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver (+1k7 code)
/*********************************************************************************************\
* Debug features are only supported in development branch

View File

@ -1327,14 +1327,16 @@ const mytmplt kModules[MAXMODULE] PROGMEM = {
GPIO_NRG_CF1, // GPIO14 BL0937 or HJL-01 CF1 current / voltage
0, 0, 0
},
{ "Manzoku strip", // "MANZOKU" labeled power strip, EU version
{ "Manzoku strip", // "MANZOKU" labeled power strip, EU version
// https://www.amazon.de/Steckdosenleiste-AOFO-Mehrfachsteckdose-Überspannungsschutz-Sprachsteuerung/dp/B07GBSD11P/
// https://www.amazon.de/Steckdosenleiste-Geekbes-USB-Anschluss-Kompatibel-gesteuert/dp/B078W23BW9/
0, // GPIO00
0, // GPIO01 Serial RXD
0,
GPIO_KEY1, // GPIO03 Serial TXD + Button
GPIO_REL2, // GPIO04 Relay 2
GPIO_REL1, // GPIO05 Relay 1
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, // Flash connection
GPIO_REL3, // GPIO12 Relay 3
GPIO_REL4, // GPIO13 Relay 4
GPIO_USER, // GPIO14

View File

@ -312,7 +312,7 @@ void RfSnsTheoV2Show(boolean json)
mqtt_data, sensor, temperature, humidity, voltage);
if ((0 == tele_period) && !sensor_once) {
#ifdef USE_DOMOTICZ
DomoticzTempHumSensor(temperature, humidity);
DomoticzTempHumSensor(temperature, humidity); //
#endif // USE_DOMOTICZ
#ifdef USE_KNX
KnxSensor(KNX_TEMPERATURE, temp);
@ -384,6 +384,25 @@ void RfSnsTheoV2Show(boolean json)
#define RFSNS_ACH2010_MIN_PULSECOUNT 160 // reduce this value (144?) in case of bad reception
#define RFSNS_ACH2010_MAX_PULSECOUNT 160
#define D_ALECTOV2 "AlectoV2"
const char kAlectoV2Directions[] PROGMEM = D_TX20_NORTH "|"
D_TX20_NORTH D_TX20_NORTH D_TX20_EAST "|"
D_TX20_NORTH D_TX20_EAST "|"
D_TX20_EAST D_TX20_NORTH D_TX20_EAST "|"
D_TX20_EAST "|"
D_TX20_EAST D_TX20_SOUTH D_TX20_EAST "|"
D_TX20_SOUTH D_TX20_EAST "|"
D_TX20_SOUTH D_TX20_SOUTH D_TX20_EAST "|"
D_TX20_SOUTH "|"
D_TX20_SOUTH D_TX20_SOUTH D_TX20_WEST "|"
D_TX20_SOUTH D_TX20_WEST "|"
D_TX20_WEST D_TX20_SOUTH D_TX20_WEST "|"
D_TX20_WEST "|"
D_TX20_WEST D_TX20_NORTH D_TX20_WEST "|"
D_TX20_NORTH D_TX20_WEST "|"
D_TX20_NORTH D_TX20_NORTH D_TX20_WEST;
typedef struct {
uint32_t time;
float temp;
@ -407,7 +426,7 @@ boolean RfSnsAnalyzeAlectov2()
byte c = 0;
byte rfbit;
byte data[9];
byte data[9] = { 0 };
byte msgtype = 0;
byte rc = 0;
int temp;
@ -447,6 +466,10 @@ boolean RfSnsAnalyzeAlectov2()
rfsns_raw_signal.Repeats = 1; // het is een herhalend signaal. Bij ontvangst herhalingen onderdukken
// Test set
// rfsns_raw_signal.Number = RFSNS_DKW2012_PULSECOUNT; // DKW2012
// data[8] = 11; // WSW
factor = 1.22; // (1.08)
// atime = rfsns_raw_signal.Time - rfsns_alecto_time;
// if ((atime > 10000) && (atime < 60000)) factor = (float)60000 / atime;
@ -454,7 +477,7 @@ boolean RfSnsAnalyzeAlectov2()
// Serial.printf("atime %d, rfsns_alecto_time %d\n", atime, rfsns_alecto_time);
rfsns_alecto_v2.time = LocalTime();
rfsns_alecto_v2.type = (rfsns_raw_signal.Number == RFSNS_DKW2012_PULSECOUNT);
rfsns_alecto_v2.type = (RFSNS_DKW2012_PULSECOUNT == rfsns_raw_signal.Number);
rfsns_alecto_v2.temp = (float)(((data[1] & 0x3) * 256 + data[2]) - 400) / 10;
rfsns_alecto_v2.humi = data[3];
uint16_t rain = (data[6] * 256) + data[7];
@ -470,7 +493,7 @@ boolean RfSnsAnalyzeAlectov2()
rfsns_alecto_v2.wdir = data[8] & 0xf;
}
snprintf_P(log_data, sizeof(log_data), PSTR("RFS: AlectoV2, ChkCalc %d, Chksum %d, rc %d, Temp %d, Hum %d, Rain %d, Wind %d, Gust %d, Dir %d, Factor %s"),
snprintf_P(log_data, sizeof(log_data), PSTR("RFS: " D_ALECTOV2 ", ChkCalc %d, Chksum %d, rc %d, Temp %d, Hum %d, Rain %d, Wind %d, Gust %d, Dir %d, Factor %s"),
checksumcalc, checksum, rc, ((data[1] & 0x3) * 256 + data[2]) - 400, data[3], (data[6] * 256) + data[7], data[4], data[5], data[8] & 0xf, dtostrfd(factor, 3, buf1));
AddLog(LOG_LEVEL_DEBUG);
@ -505,16 +528,22 @@ uint8_t RfSnsAlectoCRC8(uint8_t *addr, uint8_t len)
return crc;
}
#ifdef USE_WEBSERVER
const char HTTP_SNS_ALECTOV2[] PROGMEM = "%s"
"{s}" D_ALECTOV2 " " D_RAIN "{m}%s " D_UNIT_MILLIMETER "{e}"
"{s}" D_ALECTOV2 " " D_TX20_WIND_SPEED "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}"
"{s}" D_ALECTOV2 " " D_TX20_WIND_SPEED_MAX "{m}%s " D_UNIT_KILOMETER_PER_HOUR "{e}";
const char HTTP_SNS_ALECTOV2_WDIR[] PROGMEM = "%s"
"{s}" D_ALECTOV2 " " D_TX20_WIND_DIRECTION "{m}%s{e}";
#endif
void RfSnsAlectoV2Show(boolean json)
{
if (rfsns_alecto_v2.time) {
char sensor[10];
snprintf_P(sensor, sizeof(sensor), PSTR("AlectoV2"));
if (rfsns_alecto_v2.time < LocalTime() - RFSNS_VALID_WINDOW) {
if (json) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"%s\":{\"" D_JSON_RFRECEIVED "\":\"%s\"}"),
mqtt_data, sensor, GetDT(rfsns_alecto_v2.time).c_str());
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_ALECTOV2 "\":{\"" D_JSON_RFRECEIVED "\":\"%s\"}"),
mqtt_data, GetDT(rfsns_alecto_v2.time).c_str());
}
} else {
float temp = ConvertTemp(rfsns_alecto_v2.temp);
@ -529,23 +558,29 @@ void RfSnsAlectoV2Show(boolean json)
dtostrfd(rfsns_alecto_v2.wind, 2, wind);
char gust[10];
dtostrfd(rfsns_alecto_v2.gust, 2, gust);
char wdir[4];
char direction[20];
if (rfsns_alecto_v2.type) {
GetTextIndexed(wdir, sizeof(wdir), rfsns_alecto_v2.wdir, kAlectoV2Directions);
snprintf_P(direction, sizeof(direction), PSTR(",\"Direction\":\"%s\""), wdir);
}
if (json) {
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"%s\":{\"" D_JSON_TEMPERATURE "\":%s,\"" D_JSON_HUMIDITY "\":%s, \"Rain\":%s,\"Wind\":%s,\"Gust\":%s}"),
mqtt_data, sensor, temperature, humidity, rain, wind, gust);
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"" D_ALECTOV2 "\":{\"" D_JSON_TEMPERATURE "\":%s,\"" D_JSON_HUMIDITY "\":%s,\"Rain\":%s,\"Wind\":%s,\"Gust\":%s%s}"),
mqtt_data, temperature, humidity, rain, wind, gust, (rfsns_alecto_v2.type) ? direction : "");
if (0 == tele_period) {
#ifdef USE_DOMOTICZ
DomoticzTempHumSensor(temperature, humidity);
// Use a rule
#endif // USE_DOMOTICZ
#ifdef USE_KNX
// KnxSensor(KNX_TEMPERATURE, temp);
// KnxSensor(KNX_HUMIDITY, humi);
#endif // USE_KNX
}
#ifdef USE_WEBSERVER
} else {
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, sensor, temperature, TempUnit());
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, sensor, humidity);
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_TEMP, mqtt_data, D_ALECTOV2, temperature, TempUnit());
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_HUM, mqtt_data, D_ALECTOV2, humidity);
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ALECTOV2, mqtt_data, rain, wind, gust);
if (rfsns_alecto_v2.type) {
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SNS_ALECTOV2_WDIR, mqtt_data, wdir);
}
#endif // USE_WEBSERVER
}
}