mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-19 01:06:41 +00:00
Add HASP_OBJECT_NOTATION
This commit is contained in:
parent
bbfe673e8b
commit
1a29225f3e
@ -16,7 +16,8 @@
|
||||
#define HASP_USE_WIFI (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_WIFI > 0)
|
||||
#endif
|
||||
|
||||
#define HASP_HAS_NETWORK (ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_ETHERNET > 0 || HASP_USE_WIFI > 0)
|
||||
#define HASP_HAS_NETWORK \
|
||||
(ARDUINO_ARCH_ESP32 > 0 || ARDUINO_ARCH_ESP8266 > 0 || HASP_USE_ETHERNET > 0 || HASP_USE_WIFI > 0)
|
||||
|
||||
#ifndef HASP_USE_OTA
|
||||
#define HASP_USE_OTA (HASP_HAS_NETWORK)
|
||||
@ -97,6 +98,8 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define HASP_OBJECT_NOTATION "p%ub%u"
|
||||
|
||||
/* Includes */
|
||||
#include <Arduino.h>
|
||||
|
||||
|
@ -181,7 +181,7 @@ void hasp_object_tree(lv_obj_t * parent, uint8_t pageid, uint16_t level)
|
||||
lv_obj_type_t list;
|
||||
lv_obj_get_type(parent, &list);
|
||||
const char * objtype = list.type[0];
|
||||
Log.verbose(TAG_HASP, F("[%d] p%ub%u %s"), level, pageid, parent->user_data.id, objtype);
|
||||
Log.verbose(TAG_HASP, F("[%d] " HASP_OBJECT_NOTATION " %s"), level, pageid, parent->user_data.id, objtype);
|
||||
|
||||
lv_obj_t * child;
|
||||
child = lv_obj_get_child(parent, NULL);
|
||||
@ -586,7 +586,7 @@ void hasp_process_attribute(uint8_t pageid, uint8_t objid, const char * attr, co
|
||||
if(lv_obj_t * obj = hasp_find_obj_from_parent_id(get_page_obj(pageid), objid)) {
|
||||
hasp_process_obj_attribute(obj, attr, payload, strlen(payload) > 0);
|
||||
} else {
|
||||
Log.warning(TAG_HASP, F("Unknown object p%ub%u"), pageid, objid);
|
||||
Log.warning(TAG_HASP, F("Unknown object " HASP_OBJECT_NOTATION ""), pageid, objid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -614,9 +614,10 @@ void hasp_new_object(const JsonObject & config, uint8_t & saved_page_id)
|
||||
uint8_t parentid = config[F("parentid")].as<uint8_t>();
|
||||
parent_obj = hasp_find_obj_from_parent_id(parent_obj, parentid);
|
||||
if(!parent_obj) {
|
||||
return Log.warning(TAG_HASP, F("Parent ID p%ub%u not found, skipping..."), pageid, parentid);
|
||||
return Log.warning(TAG_HASP, F("Parent ID " HASP_OBJECT_NOTATION " not found, skipping..."), pageid,
|
||||
parentid);
|
||||
} else {
|
||||
Log.verbose(TAG_HASP, F("Parent ID p%ub%u found"), pageid, parentid);
|
||||
Log.verbose(TAG_HASP, F("Parent ID " HASP_OBJECT_NOTATION " found"), pageid, parentid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -970,7 +971,7 @@ void hasp_new_object(const JsonObject & config, uint8_t & saved_page_id)
|
||||
/** verbose reporting **/
|
||||
lv_obj_type_t list;
|
||||
lv_obj_get_type(obj, &list);
|
||||
Log.verbose(TAG_HASP, F(" * p%ub%u = %s"), pageid, temp, list.type[0]);
|
||||
Log.verbose(TAG_HASP, F(" * " HASP_OBJECT_NOTATION " = %s"), pageid, temp, list.type[0]);
|
||||
|
||||
/* test double-check */
|
||||
lv_obj_t * test = hasp_find_obj_from_parent_id(get_page_obj(pageid), (uint8_t)temp);
|
||||
|
@ -133,7 +133,7 @@ void mqtt_send_lwt(bool online)
|
||||
void mqtt_send_object_state(uint8_t pageid, uint8_t btnid, char * payload)
|
||||
{
|
||||
char tmp_topic[strlen(mqttNodeTopic) + 16];
|
||||
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/p%ub%u"), mqttNodeTopic, pageid, btnid);
|
||||
snprintf_P(tmp_topic, sizeof(tmp_topic), PSTR("%sstate/" HASP_OBJECT_NOTATION), mqttNodeTopic, pageid, btnid);
|
||||
bool res = mqttPublish(tmp_topic, payload);
|
||||
}
|
||||
|
||||
|
@ -57,9 +57,9 @@ void mqtt_ha_register_button(uint8_t page, uint8_t id)
|
||||
DynamicJsonDocument doc(512);
|
||||
mqtt_ha_add_device(doc);
|
||||
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("p%db%d"), page, id);
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(HASP_OBJECT_NOTATION), page, id);
|
||||
doc[F("stype")] = buffer; // subtype = "p0b0"
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("~state/p%db%d"), page, id);
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("~state/" HASP_OBJECT_NOTATION), page, id);
|
||||
doc[F("t")] = buffer; // topic
|
||||
|
||||
doc[F("atype")] = "trigger"; // automation_type
|
||||
@ -67,29 +67,29 @@ void mqtt_ha_register_button(uint8_t page, uint8_t id)
|
||||
dispatch_get_event_name(HASP_EVENT_DOWN, buffer, sizeof(buffer));
|
||||
doc[F("pl")] = buffer;
|
||||
doc[F("type")] = "button_short_press";
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/p%db%d_%s/config"), discovery_prefix, mqttNodeName,
|
||||
page, id, "short_press");
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/" HASP_OBJECT_NOTATION "_%s/config"),
|
||||
discovery_prefix, mqttNodeName, page, id, "short_press");
|
||||
mqtt_ha_send_json(buffer, doc);
|
||||
|
||||
dispatch_get_event_name(HASP_EVENT_SHORT, buffer, sizeof(buffer));
|
||||
doc[F("pl")] = buffer;
|
||||
doc[F("type")] = "button_short_release";
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/p%db%d_%s/config"), discovery_prefix, mqttNodeName,
|
||||
page, id, "short_release");
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/" HASP_OBJECT_NOTATION "_%s/config"),
|
||||
discovery_prefix, mqttNodeName, page, id, "short_release");
|
||||
mqtt_ha_send_json(buffer, doc);
|
||||
|
||||
dispatch_get_event_name(HASP_EVENT_LONG, buffer, sizeof(buffer));
|
||||
doc[F("pl")] = buffer;
|
||||
doc[F("type")] = "button_long_press";
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/p%db%d_%s/config"), discovery_prefix, mqttNodeName,
|
||||
page, id, "long_press");
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/" HASP_OBJECT_NOTATION "_%s/config"),
|
||||
discovery_prefix, mqttNodeName, page, id, "long_press");
|
||||
mqtt_ha_send_json(buffer, doc);
|
||||
|
||||
dispatch_get_event_name(HASP_EVENT_UP, buffer, sizeof(buffer));
|
||||
doc[F("pl")] = buffer;
|
||||
doc[F("type")] = "button_long_release";
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/p%db%d_%s/config"), discovery_prefix, mqttNodeName,
|
||||
page, id, "long_release");
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/" HASP_OBJECT_NOTATION "_%s/config"),
|
||||
discovery_prefix, mqttNodeName, page, id, "long_release");
|
||||
mqtt_ha_send_json(buffer, doc);
|
||||
}
|
||||
|
||||
@ -99,16 +99,16 @@ void mqtt_ha_register_switch(uint8_t page, uint8_t id)
|
||||
DynamicJsonDocument doc(512);
|
||||
mqtt_ha_add_device(doc);
|
||||
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("p%db%d"), page, id);
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR(HASP_OBJECT_NOTATION), page, id);
|
||||
doc[F("stype")] = buffer; // subtype = "p0b0"
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("~state/p%db%d"), page, id);
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("~state/" HASP_OBJECT_NOTATION), page, id);
|
||||
doc[F("t")] = buffer; // topic
|
||||
|
||||
doc[F("atype")] = "binary_sensor"; // automation_type
|
||||
doc[F("pl")] = "SHORT"; // payload
|
||||
doc[F("type")] = "button_short_release";
|
||||
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/p%db%d_%s/config"), discovery_prefix, mqttNodeName,
|
||||
snprintf_P(buffer, sizeof(buffer), PSTR("%s/device_automation/%s/" HASP_OBJECT_NOTATION "_%s/config"), discovery_prefix, mqttNodeName,
|
||||
page, id, "short");
|
||||
|
||||
mqtt_ha_send_json(buffer, doc);
|
||||
|
Loading…
x
Reference in New Issue
Block a user