#include #include void Endpoint::bind(String _name, SpejsNode* _parent) { parent = _parent; name = _name; } void Endpoint::notify(String property, String value) { if(parent) parent->notify(name + "/" + property, value); } void Endpoint::onConnected() { parent->subscribe(name + "/+/set"); parent->notify(name + "/$type", type); } void Endpoint::onMessage(String topic, String payload) { String devicePrefix = parent->DEV_TOPIC(""); if(!topic.startsWith(devicePrefix)) { return; } int propPos = topic.indexOf("/", devicePrefix.length()); String endpoint = topic.substring(devicePrefix.length(), propPos); String property = topic.substring(propPos+1, topic.indexOf("/", propPos+1)); if(name.equals(endpoint)) { debugf("%s - %s response: %d\n", endpoint.c_str(), property.c_str(), onValue(property, payload).status); } }