LightHub  v4.0.0
Smarthome controller firmware
main.cpp File Reference
#include "main.h"
#include "statusled.h"
#include "flashstream.h"
#include "config.h"
#include <Dhcp.h>

Macros

#define ESP_EEPROM_SIZE   4096-10
 

Enumerations

enum  heaterMode { HEATER_HEAT, HEATER_OFF, HEATER_ERROR }
 

Functions

PubSubClient mqttClient (ethClient)
 
void cleanConf ()
 
bool isNotRetainingStatus ()
 
uint16_t httpHandler (Client &client, String request, uint8_t method, long contentLength, bool authorized, String &response)
 
int inTopic (char *topic, topicType tt)
 
void mqttCallback (char *topic, byte *payload, unsigned int length)
 
void printMACAddress ()
 
char * getStringFromConfig (aJsonObject *a, int i)
 
char * getStringFromConfig (aJsonObject *a, char *name)
 
void setupOTA (void)
 
void setupSyslog ()
 
lan_status lanLoop ()
 
void onMQTTConnect ()
 
void ip_ready_config_loaded_connecting_to_broker ()
 
void onInitialStateInitLAN ()
 
void resetHard ()
 
void Changed (int i, DeviceAddress addr, float currentTemp)
 
int cmdFunctionHelp (int arg_cnt, char **args)
 
void printCurentLanConfig ()
 
int cmdFunctionKill (int arg_cnt, char **args)
 
int cmdFunctionReboot (int arg_cnt, char **args)
 
void applyConfig ()
 
void printConfigSummary ()
 
int cmdFunctionLoad (int arg_cnt, char **args)
 
int loadConfigFromEEPROM ()
 
int cmdFunctionSave (int arg_cnt, char **args)
 
int cmdFunctionLoglevel (int arg_cnt, char **args)
 
int cmdFunctionIp (int arg_cnt, char **args)
 
int cmdFunctionClearEEPROM (int arg_cnt, char **args)
 
int cmdFunctionPwd (int arg_cnt, char **args)
 
int cmdFunctionOTAPwd (int arg_cnt, char **args)
 
int cmdFunctionSetMac (int arg_cnt, char **args)
 
int cmdFunctionGet (int arg_cnt, char **args)
 
void printBool (bool arg)
 
void headerHandlerProc (String header)
 
int loadConfigFromHttp ()
 
void preTransmission ()
 
void postTransmission ()
 
void TimerHandler (void)
 
void setup_main ()
 
void printFirmwareVersionAndBuildOptions ()
 
void publishStat ()
 
void setupMacAddress ()
 
void setupCmdArduino ()
 
void loop_main ()
 
void owIdle (void)
 
void ethernetIdle (void)
 
void modbusIdle (void)
 
void inputLoop (short cause)
 
void inputSetup (void)
 
void pollingLoop (void)
 
void thermoRelay (int pin, heaterMode on)
 
void thermoLoop (void)
 

Variables

Streamlog debugSerialdebugSerialPort
 
flashStream sysConfStream
 
long timer0_overflow_count
 
EthernetClient ethClient
 
StatusLED statusLED (ledRED)
 
lan_status lanStatus = INITIAL_STATE
 
const char configserver[] PROGMEM = CONFIG_SERVER
 
char * deviceName = NULL
 
aJsonObject * topics = NULL
 
aJsonObject * root = NULL
 
aJsonObject * items = NULL
 
aJsonObject * inputs = NULL
 
aJsonObject * mqttArr = NULL
 
aJsonObject * modbusObj = NULL
 
aJsonObject * owArr = NULL
 
aJsonObject * dmxArr = NULL
 
volatile uint32_t timerPollingCheck = 0
 
volatile uint32_t timerInputCheck = 0
 
volatile uint32_t timerLanCheckTime = 0
 
volatile uint32_t timerThermostatCheck = 0
 
volatile uint32_t timerSensorCheck =0
 
volatile unsigned long timerCount =0
 
volatile int16_t timerNumber =-1
 
volatile int8_t timerHandlerBusy =0
 
aJsonObject * pollingItem = NULL
 
bool owReady = false
 
bool configOk = false
 
bool configLoaded = false
 
bool initializedListeners = false
 
volatile int8_t ethernetIdleCount =0
 
volatile int8_t configLocked = 0
 
ModbusMaster node
 
bool wifiInitialized
 
int8_t mqttErrorRate =0
 
const char * headerKeys [] ={"ETag"}
 
volatile int8_t inputLoopBusy = 0
 

Macro Definition Documentation

◆ ESP_EEPROM_SIZE

#define ESP_EEPROM_SIZE   4096-10

Enumeration Type Documentation

◆ heaterMode

enum heaterMode
Enumerator
HEATER_HEAT 
HEATER_OFF 
HEATER_ERROR 

Function Documentation

◆ applyConfig()

void applyConfig ( )

◆ Changed()

void Changed ( int  i,
DeviceAddress  addr,
float  currentTemp 
)

◆ cleanConf()

void cleanConf ( )

◆ cmdFunctionClearEEPROM()

int cmdFunctionClearEEPROM ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionGet()

int cmdFunctionGet ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionHelp()

int cmdFunctionHelp ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionIp()

int cmdFunctionIp ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionKill()

int cmdFunctionKill ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionLoad()

int cmdFunctionLoad ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionLoglevel()

int cmdFunctionLoglevel ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionOTAPwd()

int cmdFunctionOTAPwd ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionPwd()

int cmdFunctionPwd ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionReboot()

int cmdFunctionReboot ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionSave()

int cmdFunctionSave ( int  arg_cnt,
char **  args 
)

◆ cmdFunctionSetMac()

int cmdFunctionSetMac ( int  arg_cnt,
char **  args 
)

◆ ethernetIdle()

void ethernetIdle ( void  )

◆ getStringFromConfig() [1/2]

char* getStringFromConfig ( aJsonObject *  a,
char *  name 
)

◆ getStringFromConfig() [2/2]

char* getStringFromConfig ( aJsonObject *  a,
int  i 
)

◆ headerHandlerProc()

void headerHandlerProc ( String  header)

◆ httpHandler()

uint16_t httpHandler ( Client &  client,
String  request,
uint8_t  method,
long  contentLength,
bool  authorized,
String &  response 
)

◆ inputLoop()

void inputLoop ( short  cause)

◆ inputSetup()

void inputSetup ( void  )

◆ inTopic()

int inTopic ( char *  topic,
topicType  tt 
)

◆ ip_ready_config_loaded_connecting_to_broker()

void ip_ready_config_loaded_connecting_to_broker ( )

◆ isNotRetainingStatus()

bool isNotRetainingStatus ( )

◆ lanLoop()

lan_status lanLoop ( )

◆ loadConfigFromEEPROM()

int loadConfigFromEEPROM ( )

◆ loadConfigFromHttp()

int loadConfigFromHttp ( )

◆ loop_main()

void loop_main ( )

◆ modbusIdle()

void modbusIdle ( void  )

◆ mqttCallback()

void mqttCallback ( char *  topic,
byte *  payload,
unsigned int  length 
)

◆ mqttClient()

PubSubClient mqttClient ( ethClient  )

◆ onInitialStateInitLAN()

void onInitialStateInitLAN ( )

◆ onMQTTConnect()

void onMQTTConnect ( )

strncat(buf,item->name,sizeof(buf)); strncat(buf,",",sizeof(buf));

mqttClient.publish(topic,buf,true);

◆ owIdle()

void owIdle ( void  )

◆ pollingLoop()

void pollingLoop ( void  )

◆ postTransmission()

void postTransmission ( )

◆ preTransmission()

void preTransmission ( )

◆ printBool()

void printBool ( bool  arg)

◆ printConfigSummary()

void printConfigSummary ( )

◆ printCurentLanConfig()

void printCurentLanConfig ( )

◆ printFirmwareVersionAndBuildOptions()

void printFirmwareVersionAndBuildOptions ( )

◆ printMACAddress()

void printMACAddress ( )

◆ publishStat()

void publishStat ( )

◆ resetHard()

void resetHard ( )

◆ setup_main()

void setup_main ( )

◆ setupCmdArduino()

void setupCmdArduino ( )

◆ setupMacAddress()

void setupMacAddress ( )

◆ setupOTA()

void setupOTA ( void  )

◆ setupSyslog()

void setupSyslog ( )

◆ thermoLoop()

void thermoLoop ( void  )

◆ thermoRelay()

void thermoRelay ( int  pin,
heaterMode  on 
)

◆ TimerHandler()

void TimerHandler ( void  )

Variable Documentation

◆ configLoaded

bool configLoaded = false

◆ configLocked

volatile int8_t configLocked = 0

◆ configOk

bool configOk = false

◆ debugSerialPort

Streamlog infoSerial& debugSerialPort

◆ deviceName

char* deviceName = NULL

◆ dmxArr

aJsonObject* dmxArr = NULL

◆ ethClient

EthernetClient ethClient

◆ ethernetIdleCount

volatile int8_t ethernetIdleCount =0

◆ headerKeys

const char* headerKeys[] ={"ETag"}

◆ initializedListeners

bool initializedListeners = false

◆ inputLoopBusy

volatile int8_t inputLoopBusy = 0

◆ inputs

aJsonObject* inputs = NULL

◆ items

aJsonObject* items = NULL

◆ lanStatus

◆ modbusObj

aJsonObject* modbusObj = NULL

◆ mqttArr

aJsonObject* mqttArr = NULL

◆ mqttErrorRate

int8_t mqttErrorRate =0

◆ node

ModbusMaster node

◆ owArr

aJsonObject* owArr = NULL

◆ owReady

bool owReady = false

◆ pollingItem

aJsonObject* pollingItem = NULL

◆ PROGMEM

const char verval_P [] PROGMEM = CONFIG_SERVER

◆ root

aJsonObject* root = NULL

◆ statusLED

StatusLED statusLED(ledRED)

◆ sysConfStream

systemConfig sysConf & sysConfStream

◆ timer0_overflow_count

long timer0_overflow_count
extern

◆ timerCount

volatile unsigned long timerCount =0

◆ timerHandlerBusy

volatile int8_t timerHandlerBusy =0

◆ timerInputCheck

volatile uint32_t timerInputCheck = 0

◆ timerLanCheckTime

volatile uint32_t timerLanCheckTime = 0

◆ timerNumber

volatile int16_t timerNumber =-1

◆ timerPollingCheck

volatile uint32_t timerPollingCheck = 0

◆ timerSensorCheck

volatile uint32_t timerSensorCheck =0

◆ timerThermostatCheck

volatile uint32_t timerThermostatCheck = 0

◆ topics

aJsonObject* topics = NULL

◆ wifiInitialized

bool wifiInitialized