gitextract_b0yoygjm/ ├── .github/ │ └── workflows/ │ ├── esp32.yml │ ├── esp8266.yml │ └── main.yml ├── .gitignore ├── .travis.yml ├── Doxyfile ├── EnigmaIoTUpdate/ │ └── EnigmaIoTUpdate.py ├── LICENSE.md ├── _config.yml ├── docs/ │ ├── api.md │ ├── howto.md │ ├── html/ │ │ ├── BasicController_8cpp.html │ │ ├── BasicController_8cpp_source.html │ │ ├── BasicController_8h.html │ │ ├── BasicController_8h_source.html │ │ ├── ButtonController_8cpp.html │ │ ├── ButtonController_8cpp_source.html │ │ ├── ButtonController_8h.html │ │ ├── ButtonController_8h_source.html │ │ ├── Comms__hal_8h.html │ │ ├── Comms__hal_8h_source.html │ │ ├── DashButtonController_8cpp.html │ │ ├── DashButtonController_8cpp_source.html │ │ ├── DashButtonController_8h.html │ │ ├── DashButtonController_8h_source.html │ │ ├── EnigmaIOT-Button-Controller_8cpp.html │ │ ├── EnigmaIOT-Button-Controller_8cpp_source.html │ │ ├── EnigmaIOT-DashButton-Controller_8cpp.html │ │ ├── EnigmaIOT-DashButton-Controller_8cpp_source.html │ │ ├── EnigmaIOT-Json-Controller-Template_8cpp.html │ │ ├── EnigmaIOT-Json-Controller-Template_8cpp_source.html │ │ ├── EnigmaIOT-Led-Controller_8cpp.html │ │ ├── EnigmaIOT-Led-Controller_8cpp_source.html │ │ ├── EnigmaIOT-Sensor-Controller_8cpp.html │ │ ├── EnigmaIOT-Sensor-Controller_8cpp_source.html │ │ ├── EnigmaIOT-SmartSwitch-Controller_8cpp.html │ │ ├── EnigmaIOT-SmartSwitch-Controller_8cpp_source.html │ │ ├── EnigmaIOTGatewayDummy_8cpp.html │ │ ├── EnigmaIOTGatewayDummy_8cpp_source.html │ │ ├── EnigmaIOTGatewayMQTT_8cpp.html │ │ ├── EnigmaIOTGatewayMQTT_8cpp_source.html │ │ ├── EnigmaIOTGateway_8cpp.html │ │ ├── EnigmaIOTGateway_8cpp_source.html │ │ ├── EnigmaIOTGateway_8h.html │ │ ├── EnigmaIOTGateway_8h_source.html │ │ ├── EnigmaIOTNode_8cpp.html │ │ ├── EnigmaIOTNode_8cpp_source.html │ │ ├── EnigmaIOTNode_8h.html │ │ ├── EnigmaIOTNode_8h_source.html │ │ ├── EnigmaIOTRingBuffer_8h.html │ │ ├── EnigmaIOTRingBuffer_8h_source.html │ │ ├── EnigmaIOTdebug_8h.html │ │ ├── EnigmaIOTdebug_8h_source.html │ │ ├── EnigmaIOTjsonController_8h.html │ │ ├── EnigmaIOTjsonController_8h_source.html │ │ ├── EnigmaIoTUpdate_8py.html │ │ ├── EnigmaIoTUpdate_8py_source.html │ │ ├── EnigmaIoTconfigAdvanced_8h.html │ │ ├── EnigmaIoTconfigAdvanced_8h_source.html │ │ ├── EnigmaIoTconfig_8h.html │ │ ├── EnigmaIoTconfig_8h_source.html │ │ ├── Filter_8cpp.html │ │ ├── Filter_8cpp_source.html │ │ ├── Filter_8h.html │ │ ├── Filter_8h_source.html │ │ ├── GatewayAPI_8cpp.html │ │ ├── GatewayAPI_8cpp_source.html │ │ ├── GatewayAPI_8h.html │ │ ├── GatewayAPI_8h_source.html │ │ ├── GwOutput__dummy_8cpp.html │ │ ├── GwOutput__dummy_8cpp_source.html │ │ ├── GwOutput__dummy_8h.html │ │ ├── GwOutput__dummy_8h_source.html │ │ ├── GwOutput__generic_8h.html │ │ ├── GwOutput__generic_8h_source.html │ │ ├── GwOutput__mqtt_8cpp.html │ │ ├── GwOutput__mqtt_8cpp_source.html │ │ ├── GwOutput__mqtt_8h.html │ │ ├── GwOutput__mqtt_8h_source.html │ │ ├── LICENSE_8md.html │ │ ├── LedController_8cpp.html │ │ ├── LedController_8cpp_source.html │ │ ├── LedController_8h.html │ │ ├── LedController_8h_source.html │ │ ├── NodeList_8cpp.html │ │ ├── NodeList_8cpp_source.html │ │ ├── NodeList_8h.html │ │ ├── NodeList_8h_source.html │ │ ├── SmartSwitchController_8cpp.html │ │ ├── SmartSwitchController_8cpp_source.html │ │ ├── SmartSwitchController_8h.html │ │ ├── SmartSwitchController_8h_source.html │ │ ├── annotated.html │ │ ├── api_8md.html │ │ ├── classCONTROLLER__CLASS__NAME-members.html │ │ ├── classCONTROLLER__CLASS__NAME.html │ │ ├── classComms__halClass-members.html │ │ ├── classComms__halClass.html │ │ ├── classCryptModule-members.html │ │ ├── classCryptModule.html │ │ ├── classEnigmaIOTGatewayClass-members.html │ │ ├── classEnigmaIOTGatewayClass.html │ │ ├── classEnigmaIOTNodeClass-members.html │ │ ├── classEnigmaIOTNodeClass.html │ │ ├── classEnigmaIOTRingBuffer-members.html │ │ ├── classEnigmaIOTRingBuffer.html │ │ ├── classEnigmaIOTjsonController-members.html │ │ ├── classEnigmaIOTjsonController.html │ │ ├── classEspnow__halClass-members.html │ │ ├── classEspnow__halClass.html │ │ ├── classFilterClass-members.html │ │ ├── classFilterClass.html │ │ ├── classGatewayAPI-members.html │ │ ├── classGatewayAPI.html │ │ ├── classGatewayOutput__dummy-members.html │ │ ├── classGatewayOutput__dummy.html │ │ ├── classGatewayOutput__generic-members.html │ │ ├── classGatewayOutput__generic.html │ │ ├── classGwOutput__MQTT-members.html │ │ ├── classGwOutput__MQTT.html │ │ ├── classHABinarySensor-members.html │ │ ├── classHABinarySensor.html │ │ ├── classHACover-members.html │ │ ├── classHACover.html │ │ ├── classHAEntity-members.html │ │ ├── classHAEntity.html │ │ ├── classHASensor-members.html │ │ ├── classHASensor.html │ │ ├── classHASwitch-members.html │ │ ├── classHASwitch.html │ │ ├── classHATrigger-members.html │ │ ├── classHATrigger.html │ │ ├── classNode-members.html │ │ ├── classNode.html │ │ ├── classNodeList-members.html │ │ ├── classNodeList.html │ │ ├── classTimeManagerClass-members.html │ │ ├── classTimeManagerClass.html │ │ ├── classes.html │ │ ├── cryptModule_8cpp.html │ │ ├── cryptModule_8cpp_source.html │ │ ├── cryptModule_8h.html │ │ ├── cryptModule_8h_source.html │ │ ├── dir_00c6ed3b0ef8b691ed3b9ecb58c6534d.html │ │ ├── dir_49e56c817e5e54854c35e136979f97ca.html │ │ ├── dir_51f3e27dad008037e4264b749ea8e663.html │ │ ├── dir_56fe63de1287a706a7081958f8373778.html │ │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ │ ├── dir_6f51a142868163a30ea6bee5ec2f0159.html │ │ ├── dir_74730d4cfa9be35e947daeb13bf15f56.html │ │ ├── dir_7b1e976c444ae84a02a576fc7d2ecc0c.html │ │ ├── dir_85c13f167532cd35b89eb457361e1e18.html │ │ ├── dir_8b0ea9d4c22a99833616492a9ee0642b.html │ │ ├── dir_b65b262e0a2e64b925763a7d4046e738.html │ │ ├── dir_bbee7a02677141865fa116b3c1345c33.html │ │ ├── dir_d28a4824dc47e487b107a5db32ef43c4.html │ │ ├── dir_d330a1fb834c3b104c380ea4a26b63bb.html │ │ ├── dir_d43fadc45274b5d05cae2a6678e1cfd4.html │ │ ├── dir_ddb1aa94a6973c510045d1a2166b2b36.html │ │ ├── doxygen.css │ │ ├── ds18b20Controller_8cpp.html │ │ ├── ds18b20Controller_8cpp_source.html │ │ ├── ds18b20Controller_8h.html │ │ ├── ds18b20Controller_8h_source.html │ │ ├── dstrootca_8h.html │ │ ├── dstrootca_8h_source.html │ │ ├── dynsections.js │ │ ├── enigmaiot__led__flasher_8cpp.html │ │ ├── enigmaiot__led__flasher_8cpp_source.html │ │ ├── enigmaiot__node_8cpp.html │ │ ├── enigmaiot__node_8cpp_source.html │ │ ├── enigmaiot__node__msgpack_8cpp.html │ │ ├── enigmaiot__node__msgpack_8cpp_source.html │ │ ├── enigmaiot__node__nonsleepy_8cpp.html │ │ ├── enigmaiot__node__nonsleepy_8cpp_source.html │ │ ├── espnow__hal_8cpp.html │ │ ├── espnow__hal_8cpp_source.html │ │ ├── espnow__hal_8h.html │ │ ├── espnow__hal_8h_source.html │ │ ├── examples_2EnigmaIOT-Button-Controller_2readme_8md.html │ │ ├── examples_2EnigmaIOT-DashButton-Controller_2readme_8md.html │ │ ├── examples_2EnigmaIOT-Json-Controller-Template_2readme_8md.html │ │ ├── examples_2EnigmaIOT-Led-Controller_2readme_8md.html │ │ ├── examples_2EnigmaIOT-Sensor-Controller_2readme_8md.html │ │ ├── examples_2EnigmaIOT-SmartSwitch-Controller_2readme_8md.html │ │ ├── examples_2EnigmaIOTGatewayDummy_2readme_8md.html │ │ ├── examples_2EnigmaIOTGatewayMQTT_2readme_8md.html │ │ ├── examples_2enigmaiot__led__flasher_2readme_8md.html │ │ ├── examples_2enigmaiot__node_2readme_8md.html │ │ ├── examples_2enigmaiot__node__msgpack_2readme_8md.html │ │ ├── examples_2enigmaiot__node__nonsleepy_2readme_8md.html │ │ ├── files.html │ │ ├── functions.html │ │ ├── functions_a.html │ │ ├── functions_b.html │ │ ├── functions_c.html │ │ ├── functions_d.html │ │ ├── functions_e.html │ │ ├── functions_f.html │ │ ├── functions_func.html │ │ ├── functions_func_b.html │ │ ├── functions_func_c.html │ │ ├── functions_func_d.html │ │ ├── functions_func_e.html │ │ ├── functions_func_f.html │ │ ├── functions_func_g.html │ │ ├── functions_func_h.html │ │ ├── functions_func_i.html │ │ ├── functions_func_l.html │ │ ├── functions_func_m.html │ │ ├── functions_func_n.html │ │ ├── functions_func_o.html │ │ ├── functions_func_p.html │ │ ├── functions_func_q.html │ │ ├── functions_func_r.html │ │ ├── functions_func_s.html │ │ ├── functions_func_t.html │ │ ├── functions_func_u.html │ │ ├── functions_func_~.html │ │ ├── functions_g.html │ │ ├── functions_h.html │ │ ├── functions_i.html │ │ ├── functions_k.html │ │ ├── functions_l.html │ │ ├── functions_m.html │ │ ├── functions_n.html │ │ ├── functions_o.html │ │ ├── functions_p.html │ │ ├── functions_q.html │ │ ├── functions_r.html │ │ ├── functions_rela.html │ │ ├── functions_s.html │ │ ├── functions_t.html │ │ ├── functions_u.html │ │ ├── functions_vars.html │ │ ├── functions_vars_a.html │ │ ├── functions_vars_b.html │ │ ├── functions_vars_c.html │ │ ├── functions_vars_d.html │ │ ├── functions_vars_e.html │ │ ├── functions_vars_f.html │ │ ├── functions_vars_g.html │ │ ├── functions_vars_i.html │ │ ├── functions_vars_k.html │ │ ├── functions_vars_l.html │ │ ├── functions_vars_m.html │ │ ├── functions_vars_n.html │ │ ├── functions_vars_o.html │ │ ├── functions_vars_p.html │ │ ├── functions_vars_q.html │ │ ├── functions_vars_r.html │ │ ├── functions_vars_s.html │ │ ├── functions_vars_t.html │ │ ├── functions_vars_u.html │ │ ├── functions_vars_w.html │ │ ├── functions_w.html │ │ ├── functions_~.html │ │ ├── globals.html │ │ ├── globals_a.html │ │ ├── globals_b.html │ │ ├── globals_c.html │ │ ├── globals_d.html │ │ ├── globals_defs.html │ │ ├── globals_e.html │ │ ├── globals_enum.html │ │ ├── globals_eval.html │ │ ├── globals_eval_b.html │ │ ├── globals_eval_c.html │ │ ├── globals_eval_d.html │ │ ├── globals_eval_e.html │ │ ├── globals_eval_f.html │ │ ├── globals_eval_h.html │ │ ├── globals_eval_i.html │ │ ├── globals_eval_k.html │ │ ├── globals_eval_l.html │ │ ├── globals_eval_m.html │ │ ├── globals_eval_n.html │ │ ├── globals_eval_o.html │ │ ├── globals_eval_p.html │ │ ├── globals_eval_r.html │ │ ├── globals_eval_s.html │ │ ├── globals_eval_t.html │ │ ├── globals_eval_u.html │ │ ├── globals_eval_v.html │ │ ├── globals_eval_w.html │ │ ├── globals_f.html │ │ ├── globals_func.html │ │ ├── globals_g.html │ │ ├── globals_h.html │ │ ├── globals_i.html │ │ ├── globals_k.html │ │ ├── globals_l.html │ │ ├── globals_m.html │ │ ├── globals_n.html │ │ ├── globals_o.html │ │ ├── globals_p.html │ │ ├── globals_q.html │ │ ├── globals_r.html │ │ ├── globals_s.html │ │ ├── globals_t.html │ │ ├── globals_type.html │ │ ├── globals_u.html │ │ ├── globals_v.html │ │ ├── globals_vars.html │ │ ├── globals_w.html │ │ ├── haBinarySensor_8cpp.html │ │ ├── haBinarySensor_8cpp_source.html │ │ ├── haBinarySensor_8h.html │ │ ├── haBinarySensor_8h_source.html │ │ ├── haCover_8cpp.html │ │ ├── haCover_8cpp_source.html │ │ ├── haCover_8h.html │ │ ├── haCover_8h_source.html │ │ ├── haEntity_8h.html │ │ ├── haEntity_8h_source.html │ │ ├── haSensor_8cpp.html │ │ ├── haSensor_8cpp_source.html │ │ ├── haSensor_8h.html │ │ ├── haSensor_8h_source.html │ │ ├── haSwitch_8cpp.html │ │ ├── haSwitch_8cpp_source.html │ │ ├── haSwitch_8h.html │ │ ├── haSwitch_8h_source.html │ │ ├── haTrigger_8cpp.html │ │ ├── haTrigger_8cpp_source.html │ │ ├── haTrigger_8h.html │ │ ├── haTrigger_8h_source.html │ │ ├── helperFunctions_8cpp.html │ │ ├── helperFunctions_8cpp_source.html │ │ ├── helperFunctions_8h.html │ │ ├── helperFunctions_8h_source.html │ │ ├── hierarchy.html │ │ ├── howto_8md.html │ │ ├── index.html │ │ ├── jquery.js │ │ ├── md_LICENSE.html │ │ ├── md_docs_api.html │ │ ├── md_docs_howto.html │ │ ├── md_docs_node-ota-update.html │ │ ├── md_docs_technical-background.html │ │ ├── md_examples_EnigmaIOT-Button-Controller_readme.html │ │ ├── md_examples_EnigmaIOT-DashButton-Controller_readme.html │ │ ├── md_examples_EnigmaIOT-Json-Controller-Template_readme.html │ │ ├── md_examples_EnigmaIOT-Led-Controller_readme.html │ │ ├── md_examples_EnigmaIOT-Sensor-Controller_readme.html │ │ ├── md_examples_EnigmaIOT-SmartSwitch-Controller_readme.html │ │ ├── md_examples_EnigmaIOTGatewayDummy_readme.html │ │ ├── md_examples_EnigmaIOTGatewayMQTT_readme.html │ │ ├── md_examples_enigmaiot_led_flasher_readme.html │ │ ├── md_examples_enigmaiot_node_msgpack_readme.html │ │ ├── md_examples_enigmaiot_node_nonsleepy_readme.html │ │ ├── md_examples_enigmaiot_node_readme.html │ │ ├── menu.js │ │ ├── menudata.js │ │ ├── namespaceEnigmaIoTUpdate.html │ │ ├── namespacemembers.html │ │ ├── namespacemembers_func.html │ │ ├── namespacemembers_vars.html │ │ ├── namespaces.html │ │ ├── node-ota-update_8md.html │ │ ├── pages.html │ │ ├── readme_8md.html │ │ ├── search/ │ │ │ ├── all_0.html │ │ │ ├── all_0.js │ │ │ ├── all_1.html │ │ │ ├── all_1.js │ │ │ ├── all_10.html │ │ │ ├── all_10.js │ │ │ ├── all_11.html │ │ │ ├── all_11.js │ │ │ ├── all_12.html │ │ │ ├── all_12.js │ │ │ ├── all_13.html │ │ │ ├── all_13.js │ │ │ ├── all_14.html │ │ │ ├── all_14.js │ │ │ ├── all_15.html │ │ │ ├── all_15.js │ │ │ ├── all_16.html │ │ │ ├── all_16.js │ │ │ ├── all_17.html │ │ │ ├── all_17.js │ │ │ ├── all_2.html │ │ │ ├── all_2.js │ │ │ ├── all_3.html │ │ │ ├── all_3.js │ │ │ ├── all_4.html │ │ │ ├── all_4.js │ │ │ ├── all_5.html │ │ │ ├── all_5.js │ │ │ ├── all_6.html │ │ │ ├── all_6.js │ │ │ ├── all_7.html │ │ │ ├── all_7.js │ │ │ ├── all_8.html │ │ │ ├── all_8.js │ │ │ ├── all_9.html │ │ │ ├── all_9.js │ │ │ ├── all_a.html │ │ │ ├── all_a.js │ │ │ ├── all_b.html │ │ │ ├── all_b.js │ │ │ ├── all_c.html │ │ │ ├── all_c.js │ │ │ ├── all_d.html │ │ │ ├── all_d.js │ │ │ ├── all_e.html │ │ │ ├── all_e.js │ │ │ ├── all_f.html │ │ │ ├── all_f.js │ │ │ ├── classes_0.html │ │ │ ├── classes_0.js │ │ │ ├── classes_1.html │ │ │ ├── classes_1.js │ │ │ ├── classes_2.html │ │ │ ├── classes_2.js │ │ │ ├── classes_3.html │ │ │ ├── classes_3.js │ │ │ ├── classes_4.html │ │ │ ├── classes_4.js │ │ │ ├── classes_5.html │ │ │ ├── classes_5.js │ │ │ ├── classes_6.html │ │ │ ├── classes_6.js │ │ │ ├── classes_7.html │ │ │ ├── classes_7.js │ │ │ ├── classes_8.html │ │ │ ├── classes_8.js │ │ │ ├── classes_9.html │ │ │ ├── classes_9.js │ │ │ ├── defines_0.html │ │ │ ├── defines_0.js │ │ │ ├── defines_1.html │ │ │ ├── defines_1.js │ │ │ ├── defines_10.html │ │ │ ├── defines_10.js │ │ │ ├── defines_11.html │ │ │ ├── defines_11.js │ │ │ ├── defines_2.html │ │ │ ├── defines_2.js │ │ │ ├── defines_3.html │ │ │ ├── defines_3.js │ │ │ ├── defines_4.html │ │ │ ├── defines_4.js │ │ │ ├── defines_5.html │ │ │ ├── defines_5.js │ │ │ ├── defines_6.html │ │ │ ├── defines_6.js │ │ │ ├── defines_7.html │ │ │ ├── defines_7.js │ │ │ ├── defines_8.html │ │ │ ├── defines_8.js │ │ │ ├── defines_9.html │ │ │ ├── defines_9.js │ │ │ ├── defines_a.html │ │ │ ├── defines_a.js │ │ │ ├── defines_b.html │ │ │ ├── defines_b.js │ │ │ ├── defines_c.html │ │ │ ├── defines_c.js │ │ │ ├── defines_d.html │ │ │ ├── defines_d.js │ │ │ ├── defines_e.html │ │ │ ├── defines_e.js │ │ │ ├── defines_f.html │ │ │ ├── defines_f.js │ │ │ ├── enums_0.html │ │ │ ├── enums_0.js │ │ │ ├── enums_1.html │ │ │ ├── enums_1.js │ │ │ ├── enums_2.html │ │ │ ├── enums_2.js │ │ │ ├── enums_3.html │ │ │ ├── enums_3.js │ │ │ ├── enums_4.html │ │ │ ├── enums_4.js │ │ │ ├── enums_5.html │ │ │ ├── enums_5.js │ │ │ ├── enums_6.html │ │ │ ├── enums_6.js │ │ │ ├── enums_7.html │ │ │ ├── enums_7.js │ │ │ ├── enums_8.html │ │ │ ├── enums_8.js │ │ │ ├── enums_9.html │ │ │ ├── enums_9.js │ │ │ ├── enumvalues_0.html │ │ │ ├── enumvalues_0.js │ │ │ ├── enumvalues_1.html │ │ │ ├── enumvalues_1.js │ │ │ ├── enumvalues_10.html │ │ │ ├── enumvalues_10.js │ │ │ ├── enumvalues_11.html │ │ │ ├── enumvalues_11.js │ │ │ ├── enumvalues_12.html │ │ │ ├── enumvalues_12.js │ │ │ ├── enumvalues_13.html │ │ │ ├── enumvalues_13.js │ │ │ ├── enumvalues_2.html │ │ │ ├── enumvalues_2.js │ │ │ ├── enumvalues_3.html │ │ │ ├── enumvalues_3.js │ │ │ ├── enumvalues_4.html │ │ │ ├── enumvalues_4.js │ │ │ ├── enumvalues_5.html │ │ │ ├── enumvalues_5.js │ │ │ ├── enumvalues_6.html │ │ │ ├── enumvalues_6.js │ │ │ ├── enumvalues_7.html │ │ │ ├── enumvalues_7.js │ │ │ ├── enumvalues_8.html │ │ │ ├── enumvalues_8.js │ │ │ ├── enumvalues_9.html │ │ │ ├── enumvalues_9.js │ │ │ ├── enumvalues_a.html │ │ │ ├── enumvalues_a.js │ │ │ ├── enumvalues_b.html │ │ │ ├── enumvalues_b.js │ │ │ ├── enumvalues_c.html │ │ │ ├── enumvalues_c.js │ │ │ ├── enumvalues_d.html │ │ │ ├── enumvalues_d.js │ │ │ ├── enumvalues_e.html │ │ │ ├── enumvalues_e.js │ │ │ ├── enumvalues_f.html │ │ │ ├── enumvalues_f.js │ │ │ ├── files_0.html │ │ │ ├── files_0.js │ │ │ ├── files_1.html │ │ │ ├── files_1.js │ │ │ ├── files_2.html │ │ │ ├── files_2.js │ │ │ ├── files_3.html │ │ │ ├── files_3.js │ │ │ ├── files_4.html │ │ │ ├── files_4.js │ │ │ ├── files_5.html │ │ │ ├── files_5.js │ │ │ ├── files_6.html │ │ │ ├── files_6.js │ │ │ ├── files_7.html │ │ │ ├── files_7.js │ │ │ ├── files_8.html │ │ │ ├── files_8.js │ │ │ ├── files_9.html │ │ │ ├── files_9.js │ │ │ ├── files_a.html │ │ │ ├── files_a.js │ │ │ ├── files_b.html │ │ │ ├── files_b.js │ │ │ ├── files_c.html │ │ │ ├── files_c.js │ │ │ ├── functions_0.html │ │ │ ├── functions_0.js │ │ │ ├── functions_1.html │ │ │ ├── functions_1.js │ │ │ ├── functions_10.html │ │ │ ├── functions_10.js │ │ │ ├── functions_11.html │ │ │ ├── functions_11.js │ │ │ ├── functions_12.html │ │ │ ├── functions_12.js │ │ │ ├── functions_13.html │ │ │ ├── functions_13.js │ │ │ ├── functions_14.html │ │ │ ├── functions_14.js │ │ │ ├── functions_2.html │ │ │ ├── functions_2.js │ │ │ ├── functions_3.html │ │ │ ├── functions_3.js │ │ │ ├── functions_4.html │ │ │ ├── functions_4.js │ │ │ ├── functions_5.html │ │ │ ├── functions_5.js │ │ │ ├── functions_6.html │ │ │ ├── functions_6.js │ │ │ ├── functions_7.html │ │ │ ├── functions_7.js │ │ │ ├── functions_8.html │ │ │ ├── functions_8.js │ │ │ ├── functions_9.html │ │ │ ├── functions_9.js │ │ │ ├── functions_a.html │ │ │ ├── functions_a.js │ │ │ ├── functions_b.html │ │ │ ├── functions_b.js │ │ │ ├── functions_c.html │ │ │ ├── functions_c.js │ │ │ ├── functions_d.html │ │ │ ├── functions_d.js │ │ │ ├── functions_e.html │ │ │ ├── functions_e.js │ │ │ ├── functions_f.html │ │ │ ├── functions_f.js │ │ │ ├── namespaces_0.html │ │ │ ├── namespaces_0.js │ │ │ ├── nomatches.html │ │ │ ├── pages_0.html │ │ │ ├── pages_0.js │ │ │ ├── pages_1.html │ │ │ ├── pages_1.js │ │ │ ├── pages_2.html │ │ │ ├── pages_2.js │ │ │ ├── pages_3.html │ │ │ ├── pages_3.js │ │ │ ├── pages_4.html │ │ │ ├── pages_4.js │ │ │ ├── pages_5.html │ │ │ ├── pages_5.js │ │ │ ├── related_0.html │ │ │ ├── related_0.js │ │ │ ├── related_1.html │ │ │ ├── related_1.js │ │ │ ├── search.css │ │ │ ├── search.js │ │ │ ├── searchdata.js │ │ │ ├── typedefs_0.html │ │ │ ├── typedefs_0.js │ │ │ ├── typedefs_1.html │ │ │ ├── typedefs_1.js │ │ │ ├── typedefs_2.html │ │ │ ├── typedefs_2.js │ │ │ ├── typedefs_3.html │ │ │ ├── typedefs_3.js │ │ │ ├── typedefs_4.html │ │ │ ├── typedefs_4.js │ │ │ ├── variables_0.html │ │ │ ├── variables_0.js │ │ │ ├── variables_1.html │ │ │ ├── variables_1.js │ │ │ ├── variables_10.html │ │ │ ├── variables_10.js │ │ │ ├── variables_11.html │ │ │ ├── variables_11.js │ │ │ ├── variables_12.html │ │ │ ├── variables_12.js │ │ │ ├── variables_13.html │ │ │ ├── variables_13.js │ │ │ ├── variables_14.html │ │ │ ├── variables_14.js │ │ │ ├── variables_15.html │ │ │ ├── variables_15.js │ │ │ ├── variables_2.html │ │ │ ├── variables_2.js │ │ │ ├── variables_3.html │ │ │ ├── variables_3.js │ │ │ ├── variables_4.html │ │ │ ├── variables_4.js │ │ │ ├── variables_5.html │ │ │ ├── variables_5.js │ │ │ ├── variables_6.html │ │ │ ├── variables_6.js │ │ │ ├── variables_7.html │ │ │ ├── variables_7.js │ │ │ ├── variables_8.html │ │ │ ├── variables_8.js │ │ │ ├── variables_9.html │ │ │ ├── variables_9.js │ │ │ ├── variables_a.html │ │ │ ├── variables_a.js │ │ │ ├── variables_b.html │ │ │ ├── variables_b.js │ │ │ ├── variables_c.html │ │ │ ├── variables_c.js │ │ │ ├── variables_d.html │ │ │ ├── variables_d.js │ │ │ ├── variables_e.html │ │ │ ├── variables_e.js │ │ │ ├── variables_f.html │ │ │ └── variables_f.js │ │ ├── structcomms__queue__item__t-members.html │ │ ├── structcomms__queue__item__t.html │ │ ├── structgateway__config__t-members.html │ │ ├── structgateway__config__t.html │ │ ├── structmqtt__queue__item__t-members.html │ │ ├── structmqtt__queue__item__t.html │ │ ├── structmqttgw__config__t-members.html │ │ ├── structmqttgw__config__t.html │ │ ├── structmsg__queue__item__t-members.html │ │ ├── structmsg__queue__item__t.html │ │ ├── structnode__instance-members.html │ │ ├── structnode__instance.html │ │ ├── structrtcmem__data__t-members.html │ │ ├── structrtcmem__data__t.html │ │ ├── structsmartSwitchControllerHw__t-members.html │ │ ├── structsmartSwitchControllerHw__t.html │ │ ├── tabs.css │ │ ├── technical-background_8md.html │ │ ├── timeManager_8cpp.html │ │ ├── timeManager_8cpp_source.html │ │ ├── timeManager_8h.html │ │ └── timeManager_8h_source.html │ ├── index.html │ ├── node-ota-update.md │ └── technical-background.md ├── espnow.pcapng ├── examples/ │ ├── EnigmaIOT-Button-Controller/ │ │ ├── .gitignore │ │ ├── ButtonController.cpp │ │ ├── ButtonController.h │ │ ├── EnigmaIOT-Button-Controller.ino │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOT-DashButton-Controller/ │ │ ├── .gitignore │ │ ├── DashButtonController.cpp │ │ ├── DashButtonController.h │ │ ├── EnigmaIOT-DashButton-Controller.ino │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOT-Json-Controller-Template/ │ │ ├── .gitignore │ │ ├── BasicController.cpp │ │ ├── BasicController.h │ │ ├── EnigmaIOT-Json-Controller-Template.ino │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOT-Led-Controller/ │ │ ├── .gitignore │ │ ├── EnigmaIOT-Led-Controller.ino │ │ ├── LedController.cpp │ │ ├── LedController.h │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOT-Sensor-Controller/ │ │ ├── .gitignore │ │ ├── EnigmaIOT-Sensor-Controller.ino │ │ ├── ds18b20Controller.cpp │ │ ├── ds18b20Controller.h │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOT-SmartSwitch-Controller/ │ │ ├── .gitignore │ │ ├── EnigmaIOT-SmartSwitch-Controller.ino │ │ ├── SmartSwitchController.cpp │ │ ├── SmartSwitchController.h │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOTGatewayDummy/ │ │ ├── .gitignore │ │ ├── EnigmaIOTGatewayDummy.ino │ │ ├── GwOutput_dummy.cpp │ │ ├── GwOutput_dummy.h │ │ ├── platformio.ini │ │ └── readme.md │ ├── EnigmaIOTGatewayMQTT/ │ │ ├── .gitignore │ │ ├── EnigmaIOTGatewayMQTT.ino │ │ ├── GwOutput_mqtt.cpp │ │ ├── GwOutput_mqtt.h │ │ ├── dstrootca.h │ │ ├── platformio.ini │ │ └── readme.md │ ├── enigmaiot_led_flasher/ │ │ ├── .gitignore │ │ ├── enigmaiot_led_flasher.ino │ │ ├── platformio.ini │ │ └── readme.md │ ├── enigmaiot_node/ │ │ ├── .gitignore │ │ ├── enigmaiot_node.ino │ │ ├── platformio.ini │ │ └── readme.md │ ├── enigmaiot_node_msgpack/ │ │ ├── .gitignore │ │ ├── enigmaiot_node_msgpack.ino │ │ ├── platformio.ini │ │ └── readme.md │ └── enigmaiot_node_nonsleepy/ │ ├── .gitignore │ ├── enigmaiot_node_nonsleepy.ino │ ├── platformio.ini │ └── readme.md ├── img/ │ ├── EnigmaIOTGateway Data Flow.dia │ ├── Gateway.fzz │ ├── KeyExpiration.dia │ ├── Node.fzz │ ├── NodeNotRegistered.dia │ ├── NodeRegistration.dia │ ├── NodeRegistrationCollision.dia │ ├── Protocol.xlsx │ ├── RegistrationIncomplete.dia │ ├── StateDiagram.dia │ ├── System layers.xlsx │ └── WrongCounter.dia ├── library.properties ├── platformio.ini ├── readme.md └── src/ ├── Comms_hal.h ├── EnigmaIOTGateway.cpp ├── EnigmaIOTGateway.h ├── EnigmaIOTNode.cpp ├── EnigmaIOTNode.h ├── EnigmaIOTRingBuffer.h ├── EnigmaIOTdebug.h ├── EnigmaIOTjsonController.h ├── EnigmaIoTconfig.h ├── EnigmaIoTconfigAdvanced.h ├── Filter.cpp ├── Filter.h ├── GatewayAPI.cpp ├── GatewayAPI.h ├── GwOutput_generic.h ├── NodeList.cpp ├── NodeList.h ├── cryptModule.cpp ├── cryptModule.h ├── espnow_hal.cpp ├── espnow_hal.h ├── haBinarySensor.cpp ├── haBinarySensor.h ├── haCover.cpp ├── haCover.h ├── haEntity.h ├── haSensor.cpp ├── haSensor.h ├── haSwitch.cpp ├── haSwitch.h ├── haTrigger.cpp ├── haTrigger.h ├── helperFunctions.cpp ├── helperFunctions.h ├── timeManager.cpp └── timeManager.h