Esp idf component for creating Mozilla WebThing
For sample implementations look at esp-webthing_examples .
Thing* createThing(const char* _title, char** _type)Parameters:
_title = human friendly string which describes the device
_type = provides the names of schemas for types of capabilities a device supports.
For more info refer : https://iot.mozilla.org/wot
ThingProperty* createProperty(char* _title,PropertyInfo _info,PropertyChange_cb _callback)Parameters:
_title = human freindly string which describes the property.
_info = PropertyInfo structure which represents the property.
_callback = is the callback function which will be notified whenever controls are changed .
callback function needs to have the format `void(*function_name)(ThingPropertyValue)`
Following properties can be created
| Property Type | ValueType |
|---|---|
| eALARM | BOOLEAN |
| eBOOLEAN | BOOLEAN |
| eBRIGHTNESS | NUMBER |
| eCOLOR | STRING |
| eCOLOR_TEMPERATURE | NUMBER |
| eCURRENT | NUMBER |
| eFREQUENCY | NUMBER |
| eHEATING_COOLING | STRING |
| eIMAGE | NONE |
| eINSTANTANEOUS_POWER | NUMBER |
| eLEAK | BOOLEAN |
| eLEVEL | NUMBER |
| eLOCKED | STRING |
| eMOTION | BOOLEAN |
| eON_OFF | BOOLEAN |
| eOPEN | BOOLEAN |
| ePUSHED | BOOLEAN |
| eTARGET_TEMPERATURE | NUMBER |
| eTEMPERATURE | NUMBER |
| eTHERMOSTAT | STRING |
| eVIDEO | NONE |
| eVOLTAGE | NUMBER |
Property Info structure is passed as a parameter for property creation .
struct PropertyInfo
{
ThingPropertyType type;
ThingPropertyValue value;
ThingPropertyValueType valueType;
double minimum;
double maximum;
double multipleOf;
bool readOnly;
PropertyUnits unit;
}Parameters:
type = enum representing the property type.
value = value of the property.
valueType = value type can be one of the four BOOLEAN,NUMBER, STRING or NONE.
Refer the Property Type table for more info.
minimum = minimum permissible value for the property .
Applicable only for properties which have Range type values such as Brightness etc.
maximum = maximum permissible value for the property .
Applicable only for properties which have Range type values such as Brightness etc .
readOnly = specifies if the value of property can be changed .
Set it to TRUE if you dont want the user to change the value of property for example readings of a sensor.
unit = SI unit of the property .
void addProperty(Thing* _thing,ThingProperty* _property)Parameters:
_thing = pointer to the thing object
_property = pointer to property object
void addProperty(Thing* _thing,ThingProperty* _property)Parameters:
_thing = pointer to the thing object
_property = pointer to property object
Initialses mdns with thing details.
void initAdapter(Thing* thing)Paremeters:
thing = pointer to thing object.
Note: Call this before connecting ESP32 to wifi
Starts the webserver and initialises the handles .
void startAdapter(Thing* thing)Paremeters:
thing = pointer to thing object.
Note : Call this after ESP gets connected to the wifi network
Frees allocated memory for thing and its properties.
void cleanUpThing(Thing* thing)Parameters:
_thing = pointer to the thing object