#pragma once #include #include #include #include #include #include #include #include #include #include #include "lcd.hpp" #include "user_code.hpp" #include "ir_codes.hpp" void virtual_interrupt_loop(); void virtual_interrupt_callback(int pin, int state); void network_begin(); void mqtt_connect(); void mqtt_subscribe(); void thread_initialization(); void pwm_state_callback(String topic, String message); void pwm_value_callback(String topic, String message); void state_request_callback(String topic, String message); void io_begin(); void ir_loop(); void publish_pwm_states(); void publish_pwm_state(int id); void pwm_set_state(int id, int state); void pwm_set_value(int id, int value); void pwm_toggle(int id); void pwm_toggle(int id1, int id2); void pwm_cycle_value(int id); bool pwm_get_state(int id); uint16_t pwm_get_value(int id); boolean pwm_group_state(int id1, int id2); bool input_get_state(int id); void publish_ac_state(); void publish_env_state(); uint8_t ac_get_temperature(); uint8_t ac_get_mode(); uint8_t ac_get_fan_speed(); void ac_state_callback(String topic, String message); void ac_set_state(int mode, int temperature, int fan_speed); void publish_input_states(); void publish_input_state(int id); void publish_input_state(int id, int state); void lcd_begin(); void lcd_loop(); void lcd_refresh(); void lcd_refresh_pd(); void lcd_top_bar_update(); void trigger0(); void trigger1(); void trigger2(); void trigger3(); void trigger4(); void trigger5(); void trigger6(); void trigger7(); void trigger8(); void trigger9(); void trigger10(); void trigger11(); void trigger12(); void trigger13(); void eeprom_retrieve_init(); void eeprom_pwm_update(); void lcd_ac_refresh_fan(); void lcd_ac_refresh_mode(); void set_ip(String address); void set_netmask(String address); void set_dns(String address); void set_gw(String address); void set_mqtt_server(String address); void eeprom_ip_update(uint16_t rom_address, uint8_t byte1, uint8_t byte2, uint8_t byte3, uint8_t byte4); IPAddress eeprom_ip_retrieve(uint16_t rom_address); void set_hostname(String hostname); void eeprom_hostname_retrieve(); void set_basetopic(String topic); void eeprom_basetopic_retrieve(); void mqtt_port_set(uint16_t port); void eeprom_mqtt_port_retrieve();