Fix HM10 define ambiguity

This commit is contained in:
Theo Arends 2022-02-13 11:48:28 +01:00
parent 0d5914cc03
commit 14f667b0d4
1 changed files with 43 additions and 43 deletions

View File

@ -343,20 +343,20 @@ const char HTTP_MISCALE_STABILIZED[] PROGMEM = "{s}%s" " Stabilized" "{m}%s{e}";
void (*const HM10_Commands[])(void) PROGMEM = { &CmndHM10Scan, &CmndHM10AT, &CmndHM10Period, &CmndHM10Baud, &CmndHM10Time, &CmndHM10Auto, &CmndHM10Page, &CmndHM10Beacon, &CmndHM10Block, &CmndHM10Option };
#define FLORA 1
#define MJ_HT_V1 2
#define LYWSD02 3
#define LYWSD03MMC 4
#define CGG1 5
#define CGD1 6
#define NLIGHT 7
#define MJYD2S 8
#define YEERC 9
#define MHOC401 10
#define MHOC303 11
#define ATC 12
#define MI_SCALE_V1 13
#define MI_SCALE_V2 14
#define HM10_FLORA 1
#define HM10_MJ_HT_V1 2
#define HM10_LYWSD02 3
#define HM10_LYWSD03MMC 4
#define HM10_CGG1 5
#define HM10_CGD1 6
#define HM10_NLIGHT 7
#define HM10_MJYD2S 8
#define HM10_YEERC 9
#define HM10_MHOC401 10
#define HM10_MHOC303 11
#define HM10_ATC 12
#define HM10_MI_SCALE_V1 13
#define HM10_MI_SCALE_V2 14
#define HM10_TYPES 14 //count this manually
@ -635,7 +635,7 @@ uint32_t MIBLEgetSensorSlot(uint8_t (&_MAC)[6], uint16_t _type, int _rssi){
_newSensor.rssi=_rssi;
_newSensor.lux = 0x00ffffff;
switch (_type){
case FLORA:
case HM10_FLORA:
_newSensor.moisture =0xff;
_newSensor.fertility =0xffff;
_newSensor.firmware[0]='\0';
@ -645,12 +645,12 @@ uint32_t MIBLEgetSensorSlot(uint8_t (&_MAC)[6], uint16_t _type, int _rssi){
_newSensor.feature.lux=1;
_newSensor.feature.bat=1;
break;
case NLIGHT:
case HM10_NLIGHT:
_newSensor.events=0x00;
_newSensor.feature.PIR=1;
_newSensor.feature.NMT=1;
break;
case MJYD2S:
case HM10_MJYD2S:
_newSensor.NMT=0;
_newSensor.events=0x00;
_newSensor.feature.PIR=1;
@ -658,14 +658,14 @@ uint32_t MIBLEgetSensorSlot(uint8_t (&_MAC)[6], uint16_t _type, int _rssi){
_newSensor.feature.lux=1;
_newSensor.feature.bat=1;
break;
case YEERC:
case HM10_YEERC:
_newSensor.feature.Btn=1;
break;
case MI_SCALE_V1:
case HM10_MI_SCALE_V1:
_newSensor.weight=NAN;
_newSensor.feature.scale=1;
break;
case MI_SCALE_V2:
case HM10_MI_SCALE_V2:
_newSensor.weight=NAN;
_newSensor.feature.scale=1;
_newSensor.feature.impedance=1;
@ -726,7 +726,7 @@ void HM10SerialInit(void) {
void HM10parseMiBeacon(char * _buf, uint32_t _slot){
float _tempFloat;
mi_beacon_t _beacon;
if (MIBLEsensors[_slot].type==MJ_HT_V1 || MIBLEsensors[_slot].type==CGG1 || MIBLEsensors[_slot].type==YEERC){
if (MIBLEsensors[_slot].type==HM10_MJ_HT_V1 || MIBLEsensors[_slot].type==HM10_CGG1 || MIBLEsensors[_slot].type==HM10_YEERC){
memcpy((uint8_t*)&_beacon+1,(uint8_t*)_buf, sizeof(_beacon)-1); // shift by one byte for the MJ_HT_V1
memcpy((uint8_t*)&_beacon.MAC,(uint8_t*)&_beacon.MAC+1,6); // but shift back the MAC
}
@ -748,7 +748,7 @@ void HM10parseMiBeacon(char * _buf, uint32_t _slot){
DEBUG_SENSOR_LOG(PSTR(" type:%02x: %02x %02x %02x %02x %02x %02x %02x %02x"),_beacon.type, (uint8_t)_buf[8],(uint8_t)_buf[9],(uint8_t)_buf[10],(uint8_t)_buf[11],(uint8_t)_buf[12],(uint8_t)_buf[13],(uint8_t)_buf[14],(uint8_t)_buf[15]);
// MIBLEsensors[_slot].rssi = _rssi;
if(MIBLEsensors[_slot].type==LYWSD03MMC || MIBLEsensors[_slot].type==CGD1 || MIBLEsensors[_slot].type==MHOC401){
if(MIBLEsensors[_slot].type==HM10_LYWSD03MMC || MIBLEsensors[_slot].type==HM10_CGD1 || MIBLEsensors[_slot].type==HM10_MHOC401){
DEBUG_SENSOR_LOG(PSTR("LYWSD03 and CGD1 no support for MiBeacon, type %u"),MIBLEsensors[_slot].type);
return;
}
@ -781,7 +781,7 @@ void HM10parseMiBeacon(char * _buf, uint32_t _slot){
DEBUG_SENSOR_LOG(PSTR("Mode 6: U16: %u Hum"), _beacon.hum);
break;
case 0x07:
if(MIBLEsensors[_slot].type==MJYD2S){
if(MIBLEsensors[_slot].type==HM10_MJYD2S){
MIBLEsensors[_slot].eventType.noMotion = 1;
}
MIBLEsensors[_slot].lux=_beacon.lux & 0x00ffffff;
@ -1067,7 +1067,7 @@ void HM10readHT_LY(char *_buf){
DEBUG_SENSOR_LOG(PSTR("LYWSD0x: hum updated"));
}
MIBLEsensors[_slot].eventType.tempHum = 1;
if (MIBLEsensors[_slot].type == LYWSD03MMC || MIBLEsensors[_slot].type == MHOC401){
if (MIBLEsensors[_slot].type == HM10_LYWSD03MMC || MIBLEsensors[_slot].type == HM10_MHOC401){
MIBLEsensors[_slot].bat = ((float)packet->volt-2100.0f)/12.0f;
MIBLEsensors[_slot].eventType.bat = 1;
}
@ -1166,7 +1166,7 @@ bool HM10readBat(char *_buf){
if(_buf[0]==0x4f && _buf[1]==0x4b) return false; // "OK"
uint32_t _slot = HM10.state.sensor;
// if(HM10.option.ignoreBogusBattery){
// if (MIBLEsensors[_slot].type == LYWSD03MMC || MIBLEsensors[_slot].type == MHOC401) return true;
// if (MIBLEsensors[_slot].type == HM10_LYWSD03MMC || MIBLEsensors[_slot].type == HM10_MHOC401) return true;
// }
if(_buf[0] != 0){
AddLog(LOG_LEVEL_DEBUG,PSTR("%s: Battery: %u"),D_CMND_HM10,_buf[0]);
@ -1514,7 +1514,7 @@ void HM10_TaskEvery100ms(){
HM10.mode.awaiting = tempHumLY;
HM10_TaskReplaceInSlot(TASK_HM10_FEEDBACK,i);
runningTaskLoop = false;
if(MIBLEsensors[HM10.state.sensor].type == LYWSD02) HM10Serial->write("AT+NOTIFY_ON003C");
if(MIBLEsensors[HM10.state.sensor].type == HM10_LYWSD02) HM10Serial->write("AT+NOTIFY_ON003C");
else HM10Serial->write("AT+NOTIFY_ON004B"); //MHO-C303
break;
case TASK_HM10_UN_L2:
@ -1523,7 +1523,7 @@ void HM10_TaskEvery100ms(){
HM10_TaskReplaceInSlot(TASK_HM10_FEEDBACK,i);
runningTaskLoop = false;
HM10.mode.awaiting = none;
if(MIBLEsensors[HM10.state.sensor].type == LYWSD02) HM10Serial->write("AT+NOTIFY_OFF003C");
if(MIBLEsensors[HM10.state.sensor].type == HM10_LYWSD02) HM10Serial->write("AT+NOTIFY_OFF003C");
else HM10Serial->write("AT+NOTIFY_OFF004B"); //MHO-C303
break;
case TASK_HM10_TIME_L2:
@ -1550,7 +1550,7 @@ void HM10_TaskEvery100ms(){
HM10.current_task_delay = 2; // set task delay
HM10_TaskReplaceInSlot(TASK_HM10_FEEDBACK,i);
runningTaskLoop = false;
if(MIBLEsensors[HM10.state.sensor].type == LYWSD02) HM10Serial->write("AT+READDATA0043?");
if(MIBLEsensors[HM10.state.sensor].type == HM10_LYWSD02) HM10Serial->write("AT+READDATA0043?");
else HM10Serial->write("AT+READDATA0052?"); //MHO-C303
HM10.mode.awaiting = bat;
break;
@ -1735,19 +1735,19 @@ void HM10EverySecond(bool restart){
_nextSensorSlot++;
HM10.mode.pending_task = 1;
switch(MIBLEsensors[HM10.state.sensor].type){
case FLORA:
case HM10_FLORA:
HM10_Read_Flora();
break;
case MJ_HT_V1: case CGG1:
case HM10_MJ_HT_V1: case HM10_CGG1:
HM10_Read_MJ_HT_V1();
break;
case LYWSD02: case MHOC303:
case HM10_LYWSD02: case HM10_MHOC303:
HM10_Read_LYWSD02();
break;
case LYWSD03MMC: case MHOC401:
case HM10_LYWSD03MMC: case HM10_MHOC401:
HM10_Read_LYWSD03();
break;
case CGD1:
case HM10_CGD1:
HM10_Read_CGD1();
break;
default:
@ -1827,7 +1827,7 @@ void CmndHM10Baud() {
void CmndHM10Time() {
if (XdrvMailbox.data_len > 0) {
if(MIBLEsensors.size()>XdrvMailbox.payload){
if(MIBLEsensors[XdrvMailbox.payload].type == LYWSD02){
if(MIBLEsensors[XdrvMailbox.payload].type == HM10_LYWSD02){
HM10.state.sensor = XdrvMailbox.payload;
HM10_Time_LYWSD02();
}
@ -2116,7 +2116,7 @@ void HM10Show(bool json)
}
}
if (MIBLEsensors[i].type == FLORA && !HM10.mode.triggeredTele) {
if (MIBLEsensors[i].type == HM10_FLORA && !HM10.mode.triggeredTele) {
if (MIBLEsensors[i].firmware[0] != '\0') { // this is the error code -> no firmware
HM10ShowContinuation(&commaflg);
ResponseAppend_P(PSTR("\"Firmware\":\"%s\""), MIBLEsensors[i].firmware);
@ -2231,7 +2231,7 @@ void HM10Show(bool json)
char _MAC[18];
ToHex_P(MIBLEsensors[i].MAC,6,_MAC,18,':');
WSContentSend_PD(HTTP_HM10_MAC, kHM10DeviceType[MIBLEsensors[i].type-1], D_MAC_ADDRESS, _MAC);
if (MIBLEsensors[i].type==FLORA){
if (MIBLEsensors[i].type==HM10_FLORA){
if(!isnan(MIBLEsensors[i].temp)){
WSContentSend_Temp(kHM10DeviceType[MIBLEsensors[i].type-1], MIBLEsensors[i].temp);
}
@ -2245,7 +2245,7 @@ void HM10Show(bool json)
WSContentSend_PD(HTTP_HM10_FLORA_DATA, kHM10DeviceType[MIBLEsensors[i].type-1], MIBLEsensors[i].fertility);
}
}
if (MIBLEsensors[i].type==MI_SCALE_V1 || MIBLEsensors[i].type==MI_SCALE_V2){
if (MIBLEsensors[i].type==HM10_MI_SCALE_V1 || MIBLEsensors[i].type==HM10_MI_SCALE_V2){
if (MIBLEsensors[i].feature.scale){
WSContentSend_PD(HTTP_MISCALE_WEIGHT, kHM10DeviceType[MIBLEsensors[i].type-1], Settings->flag2.weight_resolution, &MIBLEsensors[i].weight, MIBLEsensors[i].weight_unit);
@ -2256,7 +2256,7 @@ void HM10Show(bool json)
WSContentSend_PD(HTTP_MISCALE_IMPEDANCE, kHM10DeviceType[MIBLEsensors[i].type-1], MIBLEsensors[i].has_impedance ? MIBLEsensors[i].impedance : 0);
}
}
else if (MIBLEsensors[i].type>FLORA){ // everything "above" Flora
else if (MIBLEsensors[i].type>HM10_FLORA){ // everything "above" Flora
if(!isnan(MIBLEsensors[i].hum) && !isnan(MIBLEsensors[i].temp)){
WSContentSend_THD(kHM10DeviceType[MIBLEsensors[i].type-1], MIBLEsensors[i].temp, MIBLEsensors[i].hum);
}