lighthub icon indicating copy to clipboard operation
lighthub copied to clipboard

Template for custom device

Open livello opened this issue 6 years ago • 2 comments

I want to have "custom_device_type":{ "custom_device_name1":[param1,param2,param3], "custom_device_name2":[param1,param2,param3] } In config file (DHT11,DHT22, BMP280, Analog sensors, Encoders). It will be much better to have well designed template to make support of new devices. Associated build flag, config parsing, device initialization, send values using mqtt.

livello avatar May 22 '18 20:05 livello

There are two kind of devices now: sensors and actuators Sensors places to "input" Actuators placed to "items"

Item parameters:

#define I_TYPE 0 //Type of item
#define I_ARG  1 //Chanel-type depended argument or array of arguments (pin, address etc)
#define I_VAL  2 //Latest preset (int or array of presets)
#define I_CMD  3 //Latest CMD received
#define I_EXT  4 //Chanell-depended extension - array 

So this format is extendable for adding new types of actuator

input template:

"pin": { "T":"N", "emit":"MQTT emit topic", item:"out_item", "scmd": "ON,OFF,TOGGLE,INCREASE,DECREASE or value", "rcmd": "ON,OFF,TOGGLE,INCREASE,DECREASE or value", "rcmd":"repeat_command" }

T is bitmask from values:

#define IN_ACTIVE_HIGH   2      // High level = PUSHED/ CLOSED/ ON othervise :Low Level
#define IN_ANALOG         64     // Analog input (for further use)
#define IN_RE                   32     // Rotary Encoder (for further use)
#define IN_PUSH_ON        0      // PUSH - ON, Release - OFF (overrided by pcmd/rcmd) - DEFAULT
#define IN_PUSH_TOGGLE   1      // Every physicall push toggle logical switch  on/off (for further use)

Here some extension needed to threat "generic sensors" like DHT, BMP, NRF24, and even timers

anklimov avatar May 25 '18 06:05 anklimov

Lazyhome.ru LightHub controller 12a4cd9 _2018-06-09

livello avatar Jun 09 '18 12:06 livello