web_config.h 2.09 KB
Newer Older
1
2
3
4
5
6
7
8
9
#ifndef AMPEL_WEB_CONFIG_H_
#define AMPEL_WEB_CONFIG_H_

#if defined(ESP8266)
#  include <ESP8266WebServer.h>
#elif defined(ESP32)
#  include <WebServer.h>
#endif

Eric Duminil's avatar
Eric Duminil committed
10
namespace config {
Eric Duminil's avatar
Eric Duminil committed
11
12
  void save(); // Save config to EEPROM

Eric Duminil's avatar
Eric Duminil committed
13
  char* ampel_name();
Eric Duminil's avatar
Eric Duminil committed
14
  // WiFi
Eric Duminil's avatar
Rename    
Eric Duminil committed
15
  char* selected_ssid();
Eric Duminil's avatar
Eric Duminil committed
16
17
  char* ampel_password(); // For Access Point, and for HTML page
  extern bool &is_wifi_on; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
18
  extern uint16_t &wifi_timeout; // [s]
Eric Duminil's avatar
Eric Duminil committed
19

Eric Duminil's avatar
Eric Duminil committed
20
  // Sensor
21
22
23
24
25
  extern uint16_t &measurement_timestep; // [s] Value between 2 and 1800 (range for SCD30 sensor).
  extern uint16_t &altitude_above_sea_level; // [m]
  extern uint16_t &co2_calibration_level; // [ppm]
  extern bool &auto_calibrate_sensor; // [true / false]
  extern float &temperature_offset; // [K] Sign isn't relevant.
Eric Duminil's avatar
Eric Duminil committed
26
27

  // LED
28
29
30
  extern uint8_t &max_brightness;
  extern uint8_t &min_brightness;
  extern uint16_t &led_count;
Eric Duminil's avatar
Eric Duminil committed
31

Eric Duminil's avatar
Eric Duminil committed
32
  // Time server
Eric Duminil's avatar
Eric Duminil committed
33
  extern char *ntp_server;
Eric Duminil's avatar
Eric Duminil committed
34
35
36
  extern int16_t &time_zone; // [h]
  extern bool &daylight_saving_time; // [true / false]

Eric Duminil's avatar
Eric Duminil committed
37
  //CSV
Eric Duminil's avatar
Eric Duminil committed
38
  bool is_csv_active(); // [true / false]
Eric Duminil's avatar
Eric Duminil committed
39
  extern uint16_t &csv_interval; // [s]
Eric Duminil's avatar
Eric Duminil committed
40

Eric Duminil's avatar
Eric Duminil committed
41
  // MQTT
Eric Duminil's avatar
Eric Duminil committed
42
  bool is_mqtt_active(); // [true / false]
Eric Duminil's avatar
Eric Duminil committed
43
44
45
  extern char *mqtt_server;
  extern char *mqtt_user;
  extern char *mqtt_password;
46
  extern char *mqtt_topic_prefix;
Eric Duminil's avatar
Eric Duminil committed
47
  extern uint16_t &mqtt_port;
Eric Duminil's avatar
Eric Duminil committed
48
  extern uint16_t &mqtt_sending_interval; // [s]
Eric Duminil's avatar
Eric Duminil committed
49
  extern bool &mqtt_encryption; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
50
  extern bool &allow_mqtt_commands; // [true / false]
Eric Duminil's avatar
Eric Duminil committed
51

Eric Duminil's avatar
Eric Duminil committed
52
53
54
  // HTTP
  const char http_user[] = "admin"; // "admin" by default

Eric Duminil's avatar
Eric Duminil committed
55
56
  // LORAWAN
#if defined(ESP32)
Eric Duminil's avatar
Eric Duminil committed
57
  bool is_lorawan_active(); // also defined for ESP8266, and set to false
58
  extern uint16_t &lorawan_sending_interval;
Eric Duminil's avatar
Eric Duminil committed
59
60
61
  extern char *lorawan_device_eui;
  extern char *lorawan_app_key;
  extern char *lorawan_app_eui;
Eric Duminil's avatar
Eric Duminil committed
62
#endif
Eric Duminil's avatar
Eric Duminil committed
63
64
65

  // Transmission rate
  constexpr uint32_t bauds = 115200;
Eric Duminil's avatar
Eric Duminil committed
66
67
}

68
69
namespace web_config {
  void initialize();
Eric Duminil's avatar
Eric Duminil committed
70
71
  void setWifiConnectionCallback(void (*success_function)());
  void setWifiFailCallback(void (*fail_function)());
72
  void update();
Eric Duminil's avatar
Eric Duminil committed
73
74
75
76
77
78

#if defined(ESP8266)
  extern ESP8266WebServer http;
#elif defined(ESP32)
  extern WebServer http;
#endif
79
80
}
#endif