mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-03 09:49:32 +02:00
Make USER_SETTINGS more simplified
This commit is contained in:
parent
47c99f9c3a
commit
ad84b7e0f8
5 changed files with 42 additions and 57 deletions
|
@ -1,16 +1,13 @@
|
||||||
/* Do not change any code below this line unless you are sure what you are doing */
|
/* Do not change any code below this line unless you are sure what you are doing */
|
||||||
/* Only change battery specific settings in "USER_SETTINGS.h" */
|
/* Only change battery specific settings in "USER_SETTINGS.h" */
|
||||||
|
|
||||||
#include "src/include.h"
|
|
||||||
|
|
||||||
#include "HardwareSerial.h"
|
#include "HardwareSerial.h"
|
||||||
|
#include "USER_SECRETS.h"
|
||||||
#include "USER_SETTINGS.h"
|
#include "USER_SETTINGS.h"
|
||||||
#include "esp_system.h"
|
#include "esp_system.h"
|
||||||
#include "esp_task_wdt.h"
|
#include "esp_task_wdt.h"
|
||||||
#include "esp_timer.h"
|
#include "esp_timer.h"
|
||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
#include "src/charger/CHARGERS.h"
|
|
||||||
#include "src/communication/can/comm_can.h"
|
#include "src/communication/can/comm_can.h"
|
||||||
#include "src/communication/contactorcontrol/comm_contactorcontrol.h"
|
#include "src/communication/contactorcontrol/comm_contactorcontrol.h"
|
||||||
#include "src/communication/equipmentstopbutton/comm_equipmentstopbutton.h"
|
#include "src/communication/equipmentstopbutton/comm_equipmentstopbutton.h"
|
||||||
|
@ -22,6 +19,7 @@
|
||||||
#include "src/devboard/utils/led_handler.h"
|
#include "src/devboard/utils/led_handler.h"
|
||||||
#include "src/devboard/utils/logging.h"
|
#include "src/devboard/utils/logging.h"
|
||||||
#include "src/devboard/utils/value_mapping.h"
|
#include "src/devboard/utils/value_mapping.h"
|
||||||
|
#include "src/include.h"
|
||||||
#include "src/lib/YiannisBourkelis-Uptime-Library/src/uptime.h"
|
#include "src/lib/YiannisBourkelis-Uptime-Library/src/uptime.h"
|
||||||
#include "src/lib/YiannisBourkelis-Uptime-Library/src/uptime_formatter.h"
|
#include "src/lib/YiannisBourkelis-Uptime-Library/src/uptime_formatter.h"
|
||||||
#include "src/lib/bblanchon-ArduinoJson/ArduinoJson.h"
|
#include "src/lib/bblanchon-ArduinoJson/ArduinoJson.h"
|
||||||
|
@ -30,7 +28,10 @@
|
||||||
#include "src/lib/eModbus-eModbus/scripts/mbServerFCs.h"
|
#include "src/lib/eModbus-eModbus/scripts/mbServerFCs.h"
|
||||||
#include "src/lib/miwagner-ESP32-Arduino-CAN/CAN_config.h"
|
#include "src/lib/miwagner-ESP32-Arduino-CAN/CAN_config.h"
|
||||||
#include "src/lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h"
|
#include "src/lib/miwagner-ESP32-Arduino-CAN/ESP32CAN.h"
|
||||||
|
#ifndef AP_PASSWORD
|
||||||
|
#error \
|
||||||
|
"Initial setup not completed, USER_SECRETS.h is missing. Please rename the file USER_SECRETS.TEMPLATE.h to USER_SECRETS.h and fill in the required credentials. This file is ignored by version control to keep sensitive information private."
|
||||||
|
#endif
|
||||||
#ifdef WIFI
|
#ifdef WIFI
|
||||||
#include "src/devboard/wifi/wifi.h"
|
#include "src/devboard/wifi/wifi.h"
|
||||||
#ifdef WEBSERVER
|
#ifdef WEBSERVER
|
||||||
|
@ -233,9 +234,6 @@ void core_loop(void* task_time_us) {
|
||||||
update_machineryprotection(); // Check safeties (Not on serial link reciever board)
|
update_machineryprotection(); // Check safeties (Not on serial link reciever board)
|
||||||
#endif // SERIAL_LINK_RECEIVER
|
#endif // SERIAL_LINK_RECEIVER
|
||||||
update_values_inverter(); // Update values heading towards inverter
|
update_values_inverter(); // Update values heading towards inverter
|
||||||
if (DUMMY_EVENT_ENABLED) {
|
|
||||||
set_event(EVENT_DUMMY_ERROR, (uint8_t)millis());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
END_TIME_MEASUREMENT_MAX(time_values, datalayer.system.status.time_values_us);
|
END_TIME_MEASUREMENT_MAX(time_values, datalayer.system.status.time_values_us);
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,20 @@
|
||||||
#define WIFI_SSID "REPLACE_WITH_YOUR_SSID" // Maximum of 63 characters
|
/* This file should be renamed to USER_SECRETS.h to be able to use the software!
|
||||||
#define WIFI_PASSWORD "REPLACE_WITH_YOUR_PASSWORD" // Minimum of 8 characters
|
It contains all the credentials that should never be made public */
|
||||||
|
|
||||||
|
//Password to the access point generated by the Battery-Emulator
|
||||||
#define AP_PASSWORD "123456789" // Minimum of 8 characters; set to blank if you want the access point to be open
|
#define AP_PASSWORD "123456789" // Minimum of 8 characters; set to blank if you want the access point to be open
|
||||||
|
|
||||||
#define WEBSERVER_AUTH_REQUIRED \
|
//Name and password of Wifi network you want the emulator to connect to
|
||||||
false //Set this line to true to activate webserver authentication (this line must not be commented).
|
#define WIFI_SSID "REPLACE_WITH_YOUR_SSID" // Maximum of 63 characters
|
||||||
#define HTTP_USERNAME "admin" // username to webserver authentication;
|
#define WIFI_PASSWORD "REPLACE_WITH_YOUR_PASSWORD" // Minimum of 8 characters
|
||||||
#define HTTP_PASSWORD "admin" // password to webserver authentication;
|
|
||||||
|
|
||||||
#define MQTT_SERVER "192.168.xxx.yyy" // mqtt server address
|
//Set WEBSERVER_AUTH_REQUIRED to true to require a password when accessing the webserver homepage. Improves cybersecurity.
|
||||||
#define MQTT_PORT 1883 // mqtt server port
|
#define WEBSERVER_AUTH_REQUIRED false
|
||||||
#define MQTT_USER NULL // mqtt username, leave blank for no authentication
|
#define HTTP_USERNAME "admin" // Username for webserver authentication
|
||||||
#define MQTT_PASSWORD NULL // mqtt password, leave blank for no authentication
|
#define HTTP_PASSWORD "admin" // Password for webserver authentication
|
||||||
|
|
||||||
|
//MQTT credentials
|
||||||
|
#define MQTT_SERVER "192.168.xxx.yyy" // MQTT server address
|
||||||
|
#define MQTT_PORT 1883 // MQTT server port
|
||||||
|
#define MQTT_USER NULL // MQTT username, leave blank for no authentication
|
||||||
|
#define MQTT_PASSWORD NULL // MQTT password, leave blank for no authentication
|
||||||
|
|
|
@ -20,28 +20,21 @@ volatile CAN_Configuration can_config = {
|
||||||
.charger = CAN_NATIVE // (OPTIONAL) Which CAN is your charger connected to?
|
.charger = CAN_NATIVE // (OPTIONAL) Which CAN is your charger connected to?
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef WIFI
|
std::string ssid = WIFI_SSID; // Set in USER_SECRETS.h
|
||||||
|
std::string password = WIFI_PASSWORD; // Set in USER_SECRETS.h
|
||||||
|
const char* ssidAP = "Battery Emulator"; // Maximum of 63 characters, also used for device name on web interface
|
||||||
|
const char* passwordAP = AP_PASSWORD; // Set in USER_SECRETS.h
|
||||||
|
const uint8_t wifi_channel = 0; // Set to 0 for automatic channel selection
|
||||||
|
|
||||||
volatile uint8_t AccessPointEnabled = true; //Set to either true/false to enable direct wifi access point
|
|
||||||
std::string ssid = WIFI_SSID; // Set in USER_SECRETS.h
|
|
||||||
std::string password = WIFI_PASSWORD; // Set in USER_SECRETS.h
|
|
||||||
const char* ssidAP = "Battery Emulator"; // Maximum of 63 characters, also used for device name on web interface
|
|
||||||
const char* passwordAP = AP_PASSWORD; // Set in USER_SECRETS.h
|
|
||||||
const uint8_t wifi_channel = 0; // Set to 0 for automatic channel selection
|
|
||||||
|
|
||||||
#ifdef WIFICONFIG
|
|
||||||
// Set your Static IP address
|
|
||||||
IPAddress local_IP(192, 168, 10, 150);
|
|
||||||
// Set your Gateway IP address
|
|
||||||
IPAddress gateway(192, 168, 10, 1);
|
|
||||||
// Set your Subnet IP address
|
|
||||||
IPAddress subnet(255, 255, 255, 0);
|
|
||||||
#endif
|
|
||||||
#ifdef WEBSERVER
|
#ifdef WEBSERVER
|
||||||
const char* http_username = HTTP_USERNAME; // Set in USER_SECRETS.h
|
const char* http_username = HTTP_USERNAME; // Set in USER_SECRETS.h
|
||||||
const char* http_password = HTTP_PASSWORD; // Set in USER_SECRETS.h
|
const char* http_password = HTTP_PASSWORD; // Set in USER_SECRETS.h
|
||||||
|
// Set your Static IP address. Only used incase WIFICONFIG is set in USER_SETTINGS.h
|
||||||
|
IPAddress local_IP(192, 168, 10, 150);
|
||||||
|
IPAddress gateway(192, 168, 10, 1);
|
||||||
|
IPAddress subnet(255, 255, 255, 0);
|
||||||
#endif // WEBSERVER
|
#endif // WEBSERVER
|
||||||
|
|
||||||
// MQTT
|
// MQTT
|
||||||
#ifdef MQTT
|
#ifdef MQTT
|
||||||
const char* mqtt_user = MQTT_USER; // Set in USER_SECRETS.h
|
const char* mqtt_user = MQTT_USER; // Set in USER_SECRETS.h
|
||||||
|
@ -55,7 +48,6 @@ const char* mqtt_device_name =
|
||||||
"Battery Emulator"; // Custom device name in Home Assistant. Previously, the name was automatically set to "BatteryEmulator_esp32-XXXXXX"
|
"Battery Emulator"; // Custom device name in Home Assistant. Previously, the name was automatically set to "BatteryEmulator_esp32-XXXXXX"
|
||||||
#endif // MQTT_MANUAL_TOPIC_OBJECT_NAME
|
#endif // MQTT_MANUAL_TOPIC_OBJECT_NAME
|
||||||
#endif // USE_MQTT
|
#endif // USE_MQTT
|
||||||
#endif // WIFI
|
|
||||||
|
|
||||||
#ifdef EQUIPMENT_STOP_BUTTON
|
#ifdef EQUIPMENT_STOP_BUTTON
|
||||||
// Equipment stop button behavior. Use NC button for safety reasons.
|
// Equipment stop button behavior. Use NC button for safety reasons.
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
/* This file contains all the battery/inverter protocol settings Battery-Emulator software */
|
/* This file contains all sthe battery/inverter protocol settings Battery-Emulator software */
|
||||||
/* To switch between batteries/inverters, uncomment a line to enable, comment out to disable. */
|
/* To switch between batteries/inverters, uncomment a line to enable, comment out to disable. */
|
||||||
/* There are also some options for battery limits and extra functionality */
|
/* There are also some options for battery limits and extra functionality */
|
||||||
/* To edit battery specific limits, see also the USER_SETTINGS.cpp file*/
|
/* To edit battery specific limits, see also the USER_SETTINGS.cpp file*/
|
||||||
|
@ -77,20 +77,17 @@
|
||||||
//#define CAN_ADDON //Enable this line to activate an isolated secondary CAN Bus using add-on MCP2515 chip (Needed for some inverters / double battery)
|
//#define CAN_ADDON //Enable this line to activate an isolated secondary CAN Bus using add-on MCP2515 chip (Needed for some inverters / double battery)
|
||||||
#define CRYSTAL_FREQUENCY_MHZ 8 //CAN_ADDON option, what is your MCP2515 add-on boards crystal frequency?
|
#define CRYSTAL_FREQUENCY_MHZ 8 //CAN_ADDON option, what is your MCP2515 add-on boards crystal frequency?
|
||||||
//#define CANFD_ADDON //Enable this line to activate an isolated secondary CAN-FD bus using add-on MCP2518FD chip / Native CANFD on Stark board
|
//#define CANFD_ADDON //Enable this line to activate an isolated secondary CAN-FD bus using add-on MCP2518FD chip / Native CANFD on Stark board
|
||||||
#ifdef CANFD_ADDON // CANFD_ADDON additional options if enabled
|
|
||||||
#define CANFD_ADDON_CRYSTAL_FREQUENCY_MHZ \
|
#define CANFD_ADDON_CRYSTAL_FREQUENCY_MHZ \
|
||||||
ACAN2517FDSettings:: \
|
ACAN2517FDSettings::OSC_40MHz //CANFD_ADDON option, what is your MCP2518 add-on boards crystal frequency?
|
||||||
OSC_40MHz //CANFD_ADDON option, what is your MCP2518 add-on boards crystal frequency? (Default OSC_40MHz)
|
|
||||||
#endif // CANFD_ADDON
|
|
||||||
//#define USE_CANFD_INTERFACE_AS_CLASSIC_CAN // Enable this line if you intend to use the CANFD as normal CAN
|
//#define USE_CANFD_INTERFACE_AS_CLASSIC_CAN // Enable this line if you intend to use the CANFD as normal CAN
|
||||||
//#define SERIAL_LINK_RECEIVER //Enable this line to receive battery data over RS485 pins from another Lilygo (This LilyGo interfaces with inverter)
|
//#define SERIAL_LINK_RECEIVER //Enable this line to receive battery data over RS485 pins from another Lilygo (This LilyGo interfaces with inverter)
|
||||||
//#define SERIAL_LINK_TRANSMITTER //Enable this line to send battery data over RS485 pins to another Lilygo (This LilyGo interfaces with battery)
|
//#define SERIAL_LINK_TRANSMITTER //Enable this line to send battery data over RS485 pins to another Lilygo (This LilyGo interfaces with battery)
|
||||||
#define WIFI
|
#define WIFI
|
||||||
//#define WIFICONFIG //Enable this line to set a static IP address / gateway /subnet mask for the device. see USER_SETTINGS.cpp for the settings
|
//#define WIFICONFIG //Enable this line to set a static IP address / gateway /subnet mask for the device. see USER_SETTINGS.cpp for the settings
|
||||||
#define WEBSERVER //Enable this line to enable WiFi, and to run the webserver. See USER_SETTINGS.cpp for the Wifi settings.
|
#define WEBSERVER //Enable this line to enable WiFi, and to run the webserver. See USER_SETTINGS.cpp for the Wifi settings.
|
||||||
#define WIFIAP //Disable this line to permanently disable WIFI AP mode (make sure to hardcode ssid and password of you home wifi network). When enabled WIFI AP can still be disabled by a setting in the future.
|
#define WIFIAP //When enabled, the emulator will broadcast its own access point Wifi. Can be used at the same time as a normal Wifi connection to a router.
|
||||||
#define MDNSRESPONDER //Enable this line to enable MDNS, allows battery monitor te be found by .local address. Requires WEBSERVER to be enabled.
|
#define MDNSRESPONDER //Enable this line to enable MDNS, allows battery monitor te be found by .local address. Requires WEBSERVER to be enabled.
|
||||||
#define LOAD_SAVED_SETTINGS_ON_BOOT //Enable this line to read settings stored via the webserver on boot (overrides Wifi/battery settings set below)
|
#define LOAD_SAVED_SETTINGS_ON_BOOT // Enable this line to read settings stored via the webserver on boot (overrides Wifi credentials set here)
|
||||||
//#define FUNCTION_TIME_MEASUREMENT // Enable this to record execution times and present them in the web UI (WARNING, raises CPU load, do not use for production)
|
//#define FUNCTION_TIME_MEASUREMENT // Enable this to record execution times and present them in the web UI (WARNING, raises CPU load, do not use for production)
|
||||||
//#define EQUIPMENT_STOP_BUTTON // Enable this to allow an equipment stop button connected to the Battery-Emulator to disengage the battery
|
//#define EQUIPMENT_STOP_BUTTON // Enable this to allow an equipment stop button connected to the Battery-Emulator to disengage the battery
|
||||||
|
|
||||||
|
@ -107,12 +104,9 @@
|
||||||
/* Home Assistant options */
|
/* Home Assistant options */
|
||||||
#define HA_AUTODISCOVERY // Enable this line to send Home Assistant autodiscovery messages. If not enabled manual configuration of Home Assitant is required
|
#define HA_AUTODISCOVERY // Enable this line to send Home Assistant autodiscovery messages. If not enabled manual configuration of Home Assitant is required
|
||||||
|
|
||||||
/* Event options*/
|
|
||||||
#define DUMMY_EVENT_ENABLED false //Enable this line to have a dummy event that gets logged to test the interface
|
|
||||||
|
|
||||||
/* Select charger used (Optional) */
|
/* Select charger used (Optional) */
|
||||||
//#define CHEVYVOLT_CHARGER //Enable this line to control a Chevrolet Volt charger connected to battery - for example, when generator charging or using an inverter without a charging function.
|
//#define CHEVYVOLT_CHARGER //Enable this line to control a Chevrolet Volt charger connected to battery - for example, when generator charging or using an inverter without a charging function.
|
||||||
//#define NISSANLEAF_CHARGER //Enable this line to control a Nissan LEAF PDM connected to battery - for example, when generator charging
|
#define NISSANLEAF_CHARGER //Enable this line to control a Nissan LEAF PDM connected to battery - for example, when generator charging
|
||||||
|
|
||||||
/* Battery settings */
|
/* Battery settings */
|
||||||
// Predefined total energy capacity of the battery in Watt-hours
|
// Predefined total energy capacity of the battery in Watt-hours
|
||||||
|
@ -138,8 +132,8 @@
|
||||||
// 3000 = 300.0V, Target discharge voltage (Value can be tuned on the fly via webserver). Not used unless BATTERY_USE_VOLTAGE_LIMITS = true
|
// 3000 = 300.0V, Target discharge voltage (Value can be tuned on the fly via webserver). Not used unless BATTERY_USE_VOLTAGE_LIMITS = true
|
||||||
#define BATTERY_MAX_DISCHARGE_VOLTAGE 3000
|
#define BATTERY_MAX_DISCHARGE_VOLTAGE 3000
|
||||||
|
|
||||||
/* Do not change any code below this line unless you are sure what you are doing */
|
/* Do not change any code below this line */
|
||||||
/* Only change battery specific settings in "USER_SETTINGS.h" */
|
/* Only change battery specific settings above and in "USER_SETTINGS.cpp" */
|
||||||
typedef enum { CAN_NATIVE = 0, CANFD_NATIVE = 1, CAN_ADDON_MCP2515 = 2, CANFD_ADDON_MCP2518 = 3 } CAN_Interface;
|
typedef enum { CAN_NATIVE = 0, CANFD_NATIVE = 1, CAN_ADDON_MCP2515 = 2, CANFD_ADDON_MCP2518 = 3 } CAN_Interface;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
CAN_Interface battery;
|
CAN_Interface battery;
|
||||||
|
@ -169,9 +163,7 @@ extern volatile STOP_BUTTON_BEHAVIOR equipment_stop_behavior;
|
||||||
|
|
||||||
#ifdef WIFICONFIG
|
#ifdef WIFICONFIG
|
||||||
extern IPAddress local_IP;
|
extern IPAddress local_IP;
|
||||||
// Set your Gateway IP address
|
|
||||||
extern IPAddress gateway;
|
extern IPAddress gateway;
|
||||||
// Set your Subnet IP address
|
|
||||||
extern IPAddress subnet;
|
extern IPAddress subnet;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -29,12 +29,8 @@ static bool connected_once = false;
|
||||||
void init_WiFi() {
|
void init_WiFi() {
|
||||||
|
|
||||||
#ifdef WIFIAP
|
#ifdef WIFIAP
|
||||||
if (AccessPointEnabled) {
|
WiFi.mode(WIFI_AP_STA); // Simultaneous WiFi AP and Router connection
|
||||||
WiFi.mode(WIFI_AP_STA); // Simultaneous WiFi AP and Router connection
|
init_WiFi_AP();
|
||||||
init_WiFi_AP();
|
|
||||||
} else {
|
|
||||||
WiFi.mode(WIFI_STA); // Only Router connection
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
WiFi.mode(WIFI_STA); // Only Router connection
|
WiFi.mode(WIFI_STA); // Only Router connection
|
||||||
#endif // WIFIAP
|
#endif // WIFIAP
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue