mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 01:24:04 +00:00
[P019] Implement Switch MQTT Device Class setting and Inverted Switch discovery
This commit is contained in:
+24
-1
@@ -71,7 +71,7 @@ boolean Plugin_019(uint8_t function, struct EventStruct *event, String& string)
|
||||
}
|
||||
addFormSelectorI2C(F("pi2c"), 16, i2cAddressValues, address);
|
||||
const FormSelectorOptions selector(8, portNames, portValues);
|
||||
selector.addFormSelector(F("Port"), F("pport"), port);
|
||||
selector.addFormSelector(F("Port"), F("pport"), port);
|
||||
addFormNote(F("PCF8574 uses addresses 0x20..0x27, PCF8574<b>A</b> uses addresses 0x38..0x3F."));
|
||||
} else {
|
||||
success = intArrayContains(16, i2cAddressValues, event->Par1);
|
||||
@@ -107,6 +107,13 @@ boolean Plugin_019(uint8_t function, struct EventStruct *event, String& string)
|
||||
P019_LP_MIN_INT,
|
||||
P019_SAFE_BTN);
|
||||
|
||||
# if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
|
||||
addFormSelector_binarySensorDeviceClass(F("MQTT Device class"),
|
||||
F("devcls"),
|
||||
P019_MQTT_DEVICECLASS);
|
||||
# endif // if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
@@ -131,10 +138,26 @@ boolean Plugin_019(uint8_t function, struct EventStruct *event, String& string)
|
||||
P019_LP_MIN_INT,
|
||||
P019_SAFE_BTN);
|
||||
|
||||
# if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
P019_MQTT_DEVICECLASS = getFormItemInt(F("devcls"));
|
||||
# endif // if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
# if FEATURE_MQTT_DISCOVER
|
||||
case PLUGIN_GET_DISCOVERY_VTYPES:
|
||||
|
||||
success = getDiscoveryVType(event, Settings.TaskDevicePin1Inversed[event->TaskIndex]
|
||||
? Plugin_QueryVType_BinarySensorInv
|
||||
: Plugin_QueryVType_BinarySensor, 255, event->Par5);
|
||||
# if FEATURE_MQTT_DEVICECLASS
|
||||
string = MQTT_binary_deviceClassName(P019_MQTT_DEVICECLASS); // User selected device_cLass/dev_cls value
|
||||
# endif // if FEATURE_MQTT_DEVICECLASS
|
||||
break;
|
||||
# endif // if FEATURE_MQTT_DISCOVER
|
||||
|
||||
case PLUGIN_INIT:
|
||||
{
|
||||
// apply INIT only if PIN is in range. Do not start INIT if pin not set in the device page.
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
# define P019_LP_MIN_INT PCONFIG_FLOAT(2)
|
||||
# define P019_SAFE_BTN PCONFIG_FLOAT(3)
|
||||
|
||||
# if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
# define P019_MQTT_DEVICECLASS PCONFIG(6)
|
||||
# endif // if FEATURE_MQTT_DISCOVER && FEATURE_MQTT_DEVICECLASS
|
||||
|
||||
struct P019_data_struct : public PluginTaskData_base {
|
||||
static uint8_t getI2C_address(struct EventStruct *event);
|
||||
|
||||
Reference in New Issue
Block a user