mirror of https://github.com/arendst/Tasmota.git
Add support for VEML6075 and VEML7700
- Add support for VEML6075 UVA/UVB/UVINDEX Sensor by device111 (#8432) - Add support for VEML7700 Ambient light intensity Sensor by device111 (#8432)
This commit is contained in:
parent
2b798ff194
commit
86921e60b2
|
@ -70,5 +70,5 @@ Index | Define | Driver | Device | Address(es) | Description
|
|||
46 | USE_IAQ | xsns_66 | IAQ | 0x5a | Air quality sensor
|
||||
47 | USE_DISPLAY_SEVENSEG| xdsp_11 | HT16K33 | 0x70 - 0x77 | Seven segment LED
|
||||
48 | USE_AS3935 | xsns_67 | AS3935 | 0x03 | Franklin Lightning Sensor
|
||||
49 | USE_VEML6075 | xsns_68 | VEML6075 | 0x10 | UVA/UVB/UVINDEX Sensor
|
||||
50 | USE_VEML7700 | xsns_69 | VEML7700 | 0x10 | Ambient light intensity sensor
|
||||
49 | USE_VEML6075 | xsns_70 | VEML6075 | 0x10 | UVA/UVB/UVINDEX Sensor
|
||||
50 | USE_VEML7700 | xsns_71 | VEML7700 | 0x10 | Ambient light intensity sensor
|
|
@ -57,3 +57,5 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
|
|||
- Change IRremoteESP8266 library updated to v2.7.7
|
||||
- Add command ``Rule0`` to change global rule parameters
|
||||
- Add more functionality to ``Switchmode`` 11 and 12 (#8450)
|
||||
- Add support for VEML6075 UVA/UVB/UVINDEX Sensor by device111 (#8432)
|
||||
- Add support for VEML7700 Ambient light intensity Sensor by device111 (#8432)
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
- Add command ``Rule0`` to change global rule parameters
|
||||
- Add more functionality to ``Switchmode`` 11 and 12 (#8450)
|
||||
- Add dump of compressed rules over 512 chars and unishox decompress fix
|
||||
- Add support for VEML6075 UVA/UVB/UVINDEX Sensor by device111 (#8432)
|
||||
- Add support for VEML7700 Ambient light intensity Sensor by device111 (#8432)
|
||||
|
||||
## Released
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xsns_70_veml6075.ino - VEML6075 Franklin Lightning Sensor support for Tasmota
|
||||
xsns_70_veml6075.ino - VEML6075 UVA/UVB/UVINDEX Sensor support for Tasmota
|
||||
|
||||
Copyright (C) 2020 Martin Wagner
|
||||
|
||||
|
@ -85,13 +85,13 @@ enum VEML6075_Commands { // commands for Console
|
|||
CMND_VEML6075_SET_HD,
|
||||
CMND_VEML6075_SET_UVIT,
|
||||
};
|
||||
|
||||
|
||||
// global variables
|
||||
struct VEML6075STRUCT
|
||||
{
|
||||
char types[9] = D_NAME_VEML6075;
|
||||
uint8_t address = VEML6075_ADDR;
|
||||
uint8_t inttime = 0;
|
||||
uint8_t inttime = 0;
|
||||
uint16_t uva = 0;
|
||||
uint16_t uvb = 0;
|
||||
uint16_t uva_raw = 0;
|
||||
|
@ -113,9 +113,9 @@ typedef union {
|
|||
uint8_t hd:1; // High dynamic
|
||||
uint8_t inttime:3; // Integration Time
|
||||
uint8_t spare7:1; // spare
|
||||
};
|
||||
};
|
||||
uint16_t config;
|
||||
} veml6075configRegister;
|
||||
} veml6075configRegister;
|
||||
|
||||
veml6075configRegister veml6075Config;
|
||||
|
||||
|
@ -179,7 +179,7 @@ uint8_t VEML6075GetPwr(void){
|
|||
return veml6075Config.pwr;
|
||||
}
|
||||
|
||||
void VEML6075ReadData(void)
|
||||
void VEML6075ReadData(void)
|
||||
{
|
||||
veml6075_sensor.uva_raw = VEML6075read16 (VEML6075_REG_UVA);
|
||||
veml6075_sensor.uvb_raw = VEML6075read16 (VEML6075_REG_UVB);
|
||||
|
@ -201,7 +201,7 @@ bool VEML6075init(void)
|
|||
|
||||
void VEML6075Detect(void) {
|
||||
if (I2cActive(veml6075_sensor.address)) return;
|
||||
|
||||
|
||||
if (VEML6075init()) {
|
||||
I2cSetActiveFound(veml6075_sensor.address, veml6075_sensor.types);
|
||||
VEML6075write16 (VEML6075_REG_CONF, 0x10); // set default
|
||||
|
@ -252,7 +252,7 @@ bool VEML6075Cmd(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void VEML6075Show(bool json)
|
||||
void VEML6075Show(bool json)
|
||||
{
|
||||
char s_uvindex[FLOATSZ];
|
||||
dtostrfd(veml6075_sensor.uvi,1, s_uvindex);
|
||||
|
@ -260,10 +260,10 @@ void VEML6075Show(bool json)
|
|||
if (json) {
|
||||
ResponseAppend_P(JSON_SNS_VEML6075, D_NAME_VEML6075, veml6075_sensor.uva, veml6075_sensor.uvb, s_uvindex);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
} else {
|
||||
WSContentSend_PD(HTTP_SNS_UVA, D_NAME_VEML6075, veml6075_sensor.uva);
|
||||
WSContentSend_PD(HTTP_SNS_UVB, D_NAME_VEML6075, veml6075_sensor.uvb);
|
||||
WSContentSend_PD(HTTP_SNS_UVINDEX, D_NAME_VEML6075 ,s_uvindex);
|
||||
WSContentSend_PD(HTTP_SNS_UVINDEX, D_NAME_VEML6075 ,s_uvindex);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
xsns_71_VEML7700.ino - VEML7700 Franklin Lightning Sensor support for Tasmota
|
||||
xsns_71_VEML7700.ino - VEML7700 Ambient light intensity Sensor support for Tasmota
|
||||
|
||||
Copyright (C) 2020 Martin Wagner
|
||||
|
||||
|
@ -34,14 +34,13 @@ Adafruit_VEML7700 veml7700 = Adafruit_VEML7700(); //create object copy
|
|||
#define D_NAME_VEML7700 "VEML7700"
|
||||
#define D_WHITE_CONTENT "White content"
|
||||
|
||||
const char HTTP_SNS_LUX[] PROGMEM = "{s}%s " D_ILLUMINANCE "{m}%d " D_UNIT_LUX " {e}";
|
||||
const char HTTP_SNS_WHITE[] PROGMEM = "{s}%s " D_WHITE_CONTENT "{m}%d {e}";
|
||||
const char JSON_SNS_VEML7700[] PROGMEM = ",\"%s\":{\"" D_JSON_ILLUMINANCE "\":%d,\"" D_JSON_WHITE_CONTENT "\":%d}";
|
||||
|
||||
struct VEML7700STRUCT
|
||||
{
|
||||
char types[9] = D_NAME_VEML7700;
|
||||
uint8_t address = VEML7700_I2CADDR_DEFAULT;
|
||||
uint8_t address = VEML7700_I2CADDR_DEFAULT;
|
||||
uint16_t lux = 0;
|
||||
uint16_t white = 0;
|
||||
} veml7700_sensor;
|
||||
|
@ -67,13 +66,13 @@ void VEML7700Show(bool json)
|
|||
{
|
||||
if (json) {
|
||||
ResponseAppend_P(JSON_SNS_VEML7700, D_NAME_VEML7700, veml7700_sensor.lux, veml7700_sensor.white);
|
||||
|
||||
|
||||
#ifdef USE_DOMOTICZ
|
||||
if (0 == tele_period) DomoticzSensor(DZ_ILLUMINANCE, veml7700_sensor.lux);
|
||||
#endif // USE_DOMOTICZ
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
WSContentSend_PD(HTTP_SNS_LUX, D_NAME_VEML7700, veml7700_sensor.lux);
|
||||
} else {
|
||||
WSContentSend_PD(HTTP_SNS_ILLUMINANCE, D_NAME_VEML7700, veml7700_sensor.lux);
|
||||
WSContentSend_PD(HTTP_SNS_WHITE, D_NAME_VEML7700, veml7700_sensor.white);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
|
|
|
@ -147,7 +147,8 @@ a_setoption = [[
|
|||
"Disable non-json MQTT response",
|
||||
"Enable light fading at start/power on",
|
||||
"Set PWM Mode from regular PWM to ColorTemp control","",
|
||||
"","","","",
|
||||
"Keep uncompressed rules in memory to avoid CPU load of uncompressing at each tick",
|
||||
"","","",
|
||||
"","","","",
|
||||
"","","","",
|
||||
"","","","",
|
||||
|
@ -195,15 +196,15 @@ a_features = [[
|
|||
"USE_INA226","USE_A4988_STEPPER","USE_DDS2382","USE_SM2135",
|
||||
"USE_SHUTTER","USE_PCF8574","USE_DDSU666","USE_DEEPSLEEP",
|
||||
"USE_SONOFF_SC","USE_SONOFF_RF","USE_SONOFF_L1","USE_EXS_DIMMER",
|
||||
"USE_ARDUINO_SLAVE","USE_HIH6","USE_HPMA","USE_TSL2591",
|
||||
"USE_TASMOTA_SLAVE","USE_HIH6","USE_HPMA","USE_TSL2591",
|
||||
"USE_DHT12","USE_DS1624","USE_GPS","USE_HOTPLUG",
|
||||
"USE_NRF24","USE_MIBLE","USE_HM10","USE_LE01MR",
|
||||
"USE_AHT1x","USE_WEMOS_MOTOR_V1","USE_DEVICE_GROUPS","USE_PWM_DIMMER"
|
||||
],[
|
||||
"USE_KEELOQ","USE_HRXL","USE_SONOFF_D1","USE_HDC1080",
|
||||
"USE_IAQ","USE_DISPLAY_SEVENSEG","USE_AS3935","USE_PING",
|
||||
"USE_WINDMETER","USE_OPENTHERM","USE_THERMOSTAT","",
|
||||
"","","","",
|
||||
"USE_WINDMETER","USE_OPENTHERM","USE_THERMOSTAT","USE_VEML6075",
|
||||
"USE_VEML7700","","","",
|
||||
"","","","",
|
||||
"","","","",
|
||||
"","","","",
|
||||
|
@ -241,7 +242,7 @@ else:
|
|||
obj = json.load(fp)
|
||||
|
||||
def StartDecode():
|
||||
print ("\n*** decode-status.py v20200507 by Theo Arends and Jacek Ziolkowski ***")
|
||||
print ("\n*** decode-status.py v20200510 by Theo Arends and Jacek Ziolkowski ***")
|
||||
|
||||
# print("Decoding\n{}".format(obj))
|
||||
|
||||
|
|
Loading…
Reference in New Issue