Commit Graph

223 Commits

Author SHA1 Message Date
Thomas Basler
d4c838a16e BREAKING CHANGE: Prometheus API!
Added additional field to the prometheus api which identifies a channel by it's type. That means that e.g. channel 0  exists for type AC and DC.

This commit also introduces a additional field in the statistics byte assignment table. This field identifies whether a channel is on the AC or DC side. MQTT and WebAPI is still compatible with the previous design.
2023-02-06 19:51:10 +01:00
Thomas Basler
2288a193e7 Extend pin mapping name to 63 characters 2023-01-20 18:28:35 +01:00
Thomas Basler
e89fd64439 Added WebAPI to setup display settings. Also reboot only if device profile was changed. 2023-01-20 18:28:34 +01:00
Thomas Basler
f7fb9a2bd6 Display: Add property to enable or disable the screensaver 2023-01-20 18:28:34 +01:00
Thomas Basler
d1483468c6 Rename Display properties and apply power safe immediatly 2023-01-20 18:28:33 +01:00
Thomas Basler
b96d87b933 Read display pinmapping from json file 2023-01-20 18:28:33 +01:00
Thomas Basler
bb3e12814d Move display pin assignment to main function 2023-01-20 18:28:32 +01:00
Thomas Basler
592dd73fca Implement _dispX as function local variable 2023-01-20 18:28:23 +01:00
Thomas Basler
1d07574f8a Rename _lastPublish to _lastDisplayUpdate 2023-01-18 23:22:36 +01:00
Thomas Basler
e572e711a4 Code Style Changes
* Add License Identifier
* Move non public required includes to cpp
* Add curly brackets
2023-01-18 23:22:36 +01:00
dAjaY85
7074dd5757 Display init zum Zweiten
chango to full Buffer Mode, remove picture loop,
because it's not worked.
look: https://github.com/olikraus/u8glib/wiki/tpictureloop

snprintf + public vars
- dispPowerSafe => true: PowerSafe Mode on
- dispLogo => true: showing Logo upper right corner
- dispContrast => possible to adjust the Display Contrast

change in date time, buffer deleted

Display-Constructor changed, reset goes to front

Arrow and Logo only shown, when production is on

Refactor OLEDDisplayClass to DisplayGraphicClass
2023-01-18 23:22:36 +01:00
Thomas Basler
a4858b4598 Fix #520: Allow larger certificates 2023-01-17 19:05:02 +01:00
Thomas Basler
3d3feb3517 Allow Ethernet Pin Settings via json config 2023-01-16 22:26:35 +01:00
Thomas Basler
5f699f4927 Added Device Profiles
Allows the pin assignment during runtime.
Pin settings will be read from a json file called "pin_mapping.json"
2023-01-16 21:09:24 +01:00
Thomas Basler
20ae646561 webapp: Allow download of individual config files 2023-01-05 01:44:38 +01:00
Thomas Basler
5bc264f4d2 Introduce numeric error codes in power webapi 2022-12-24 00:01:55 +01:00
Thomas Basler
03ed626da6 Introduce numeric error codes in security webapi 2022-12-24 00:01:55 +01:00
Thomas Basler
6ad7e971b4 Introduce numeric error codes in ntp webapi 2022-12-24 00:01:55 +01:00
Thomas Basler
3e8c7a4c10 Introduce numeric error codes in network webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
8e9680f394 Introduce numeric error codes in mqtt webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
af93e5d77e Introduce numeric error codes in maintenance webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
9fd044f74f Introduce numeric error codes in limit webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
4dc50777ef Introduce numeric error codes in inverter webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
98b0a23ea0 Introduce numeric error codes in config webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
3b5ff1691e Introduce numeric error codes in dtu webapi 2022-12-24 00:01:54 +01:00
Thomas Basler
8f5d394f3a Added websocket for debug output 2022-12-19 21:38:39 +01:00
Thomas Basler
cd5d5edd5f Implemented class to send debug output to uart as well as to websocket 2022-12-19 21:38:39 +01:00
Thomas Basler
5feefed14e Added missing copyright information 2022-12-14 22:37:37 +01:00
Thomas Basler
54d94af487 Cleanup includes 2022-12-14 22:13:03 +01:00
Thomas Basler
91f79fea19 Move publishHass method to MqttHandleHassClass 2022-12-14 21:08:35 +01:00
Thomas Basler
113caf510f Introduce generic mqtt publish method
Allows publish of mqtt topics from other modules
2022-12-14 20:58:57 +01:00
Thomas Basler
5dd4d5b452 Introduce MqttSubscribeParser and moved inverter specific subscribes to MqttHandleInverterClass
This allows individual callback functions for each subscribed topic. Allows easier implementation of further mqtt functions
2022-12-14 20:42:23 +01:00
Thomas Basler
aab72fd0d8 Move mqtt dtu topic publishing to separate class 2022-12-14 19:32:24 +01:00
Thomas Basler
723a2c6dbe Rename MqttPublishing to MqttHandleInverter 2022-12-14 19:13:34 +01:00
Thomas Basler
5dde17c56b Renamed MqttHassPublishing to MqttHandleHass 2022-12-14 19:07:11 +01:00
Thomas Basler
510f0c59f9 Implement readonly security for API endpoints 2022-11-22 23:40:19 +01:00
Thomas Basler
4bdbcbccc5 Introduce configuration option to decide wether the web ui is accessable without password or not 2022-11-22 23:32:52 +01:00
Thomas Basler
e60619b867 Added device reboot functionality 2022-11-21 23:29:57 +01:00
Thomas Basler
134db887c0 Publish string names via MQTT 2022-11-15 22:31:04 +01:00
Thomas Basler
d28fadbdac Extended configuration to allow string names
* Current config will be migrated to new format
* Already extended web API to get/post new format
2022-11-15 22:31:04 +01:00
Thomas Basler
0c46ecf121 Fix #302: Allow longer MQTT usernames and passwords
Changed max length from 32 to 64 characters
2022-11-15 22:31:04 +01:00
Thomas Basler
daf847e7b3 BREAKING CHANGE: Removed deprecated config parsing method
After this commit its not possible to migrate from the old binary blob config to the new json based config!! If you still running a old version before 12. October please upgrade to a version before this commit.
See https://github.com/tbnobody/OpenDTU/discussions/285
2022-11-15 22:31:04 +01:00
Thomas Basler
d7bcce947e Prometheus API: Adjust api url and method names 2022-11-10 20:20:54 +01:00
Thomas Basler
d62c5b239f Prometheus API: use integrated serialString() method to fetch serial number 2022-11-10 20:20:53 +01:00
Thomas Basler
0fdf7f19e4 Prometheus API: Applied code formatting 2022-11-10 20:20:45 +01:00
Dominik Westner
e5bbb7f517 implemented prometheus metrics 2022-11-10 18:00:13 +01:00
Thomas Basler
8d14dbd367 Password protection for security settings API
Also implemented the base functionallity to protect further API endpoints.
2022-11-03 21:00:13 +01:00
Thomas Basler
438ce36bab Added sum values of all inverters to web UI 2022-11-01 16:33:20 +01:00
Thomas Basler
69b675bc64 BREAKING CHANGE: Structure WebAPI /api/livedata/status changed
The different inverter data are now in a subobject called "inverters".
This is required to extend the API by other data then the inverter values
2022-11-01 15:04:05 +01:00
Thomas Basler
f2a08ba503 Rename FLD_PCT to FLD_PF and assign UNIT_NONE 2022-10-31 00:43:07 +01:00
Thomas Basler
c999197dae Optimize performance by passing strings as const reference 2022-10-29 11:22:56 +02:00
Thomas Basler
3a0ba86c9c HASS Auto Discovery: Publish binary sensor reachable and producing 2022-10-29 11:22:56 +02:00
Thomas Basler
6403521e31 HASS Auto Discovery: Publish numbers to set limit 2022-10-29 11:22:56 +02:00
Thomas Basler
96170c08b8 HASS Auto Discovery: Publish buttons for on/off/restart 2022-10-29 11:22:56 +02:00
Thomas Basler
a7f571a581 HASS: Move create of device object so separate method 2022-10-29 11:22:56 +02:00
Thomas Basler
359d513cfd Generate DTU ID dynamicly based on ESP chipID 2022-10-20 22:25:51 +02:00
Thomas Basler
ca51aab236 Move getChipId to separate class 2022-10-20 21:55:41 +02:00
Thomas Basler
cf727d4ff9 Added API to change the access point password 2022-10-13 19:44:16 +02:00
Thomas Basler
d2feac7a00 Migrate config from binary blob to json 2022-10-12 19:46:21 +02:00
Thomas Basler
3816320f1e Implemented WebAPI to get status of last power command 2022-10-04 18:48:21 +02:00
Thomas Basler
14bad84031 Added WebAPI to control inverter power 2022-10-04 18:12:55 +02:00
Thomas Basler
ba2d6ab6d1 Implement callback to subscribe to topics 2022-09-30 18:34:30 +02:00
Thomas Basler
d57a5f7ea6 Added web api to set limit 2022-09-30 18:34:30 +02:00
Thomas Basler
89e5f7e393 Added API to set and get the current time 2022-09-20 19:44:24 +02:00
Thomas Basler
e61d47b8a2 Added webapi endpoints to download/upload end delete configuration 2022-09-17 01:46:14 +02:00
Thomas Basler
0d880cb61e Use uint32_t, rather than the C type unsigned long 2022-09-13 22:39:08 +02:00
Thomas Basler
46367c4fa9 Added webapi to fetch current inverter limit 2022-09-09 18:43:21 +02:00
Thomas Basler
f5328100b6 Fixed hostname generation and hostname assignment 2022-09-06 18:44:26 +02:00
Thomas Basler
31e56f6c2b Code hardening: introduce const keyword 2022-09-05 21:41:45 +02:00
battifreund
b4137d4da9 Option for expire_after 2022-08-31 23:35:28 +02:00
Thomas Basler
217fddf405 Added small dialog to show inverter info (firmware version etc.) 2022-08-11 16:42:50 +02:00
Thomas Basler
991838ae2c Added reactive power output and display 2022-08-10 20:40:26 +02:00
Thomas Basler
35a72acf34 Fix #71: Extend mqtt hostname from 31 characters to 128 characters 2022-08-10 18:59:30 +02:00
helgeerbe
4435fbcdad Add support for MQTT TLS
To support TLS its necessary to use another MQTT library.
The new lib is a drop-in replacement for the async-mqtt-client.
2022-08-06 00:14:44 +02:00
Thomas Basler
3f8ee18de9 Added api endpoint to get livedata in json format with get request 2022-07-20 20:54:57 +02:00
Thomas Basler
184183e979 Move websocket stuff to liveview class 2022-07-20 19:36:07 +02:00
Thomas Basler
c022b8696b Implemented serveal global network functions which are independent of the medium (wifi / ethernet) 2022-07-19 21:53:04 +02:00
Thomas Basler
c7aa22ce6c Renamed WifiSettings to NetworkSettings and implemented first ethernet initialization 2022-07-19 21:27:36 +02:00
Thomas Basler
526137da98 Publish HASS config when deleting, editing or adding a inverter 2022-07-18 23:34:32 +02:00
Thomas Basler
1124a9aaa1 Implemented first version of Home Assistant Auto Discovery 2022-07-18 22:28:03 +02:00
Thomas Basler
db0e0c67ce Simplify MqttPublishing
* Moved all fields to an array
* Moved target topic generation to separate method
2022-07-18 19:13:58 +02:00
Thomas Basler
bb52d24c25 Implemented public getPrefix method to get the mqtt topic prefix 2022-07-18 19:08:38 +02:00
Thomas Basler
37aac48a19 Change License to GPLv2 as the RF24 lib uses GPL-2.0-only 2022-07-15 18:05:58 +02:00
Thomas Basler
f7eb54fa41 First version of webapi for event log 2022-07-08 18:22:35 +02:00
Thomas Basler
c28087ec86 Fix #21: Display DC power in Live Data overview 2022-07-07 19:05:50 +02:00
Thomas Basler
8b939f9418 Rename variables to match code style 2022-07-06 19:25:30 +02:00
Axel Hinrichs
401e6739cd [WebApi] rate limit ws cleanup (1/s) 2022-07-05 23:42:07 +02:00
Thomas Basler
cf273c93e7 Fixed 404 error when pressing refresh in webapp 2022-07-01 23:32:11 +02:00
Thomas Basler
d5f32d8325 Fixes (#8). Power values on CH0 are published twice
The larger value was DC the smaller one AC. Now the values are published to different topics
2022-07-01 18:36:43 +02:00
Thomas Basler
10974ade3e Adjust config
* Allow wifi  passwords length of 64 chars
* Added max channel power
2022-06-22 21:00:44 +02:00
Thomas Basler
70b9f9fdba Fix default DTU serial number 2022-06-22 20:59:13 +02:00
Thomas Basler
46d88c6520 Improoved websocket handling 2022-06-17 13:29:21 +02:00
Thomas Basler
7e0807bda6 Added cnfig parameter to set mqtt publish interval 2022-06-16 14:57:12 +02:00
Thomas Basler
af00158e14 First version of very simple websocket api 2022-06-16 01:44:42 +02:00
Thomas Basler
92abfdfaa6 Separated WebApi into different files 2022-06-15 23:46:22 +02:00
Thomas Basler
cae47a142a Implemented periodic called loop method in webapi 2022-06-15 22:53:05 +02:00
Thomas Basler
c9e603b2de Replace EVERY_N_SECONDS with millis
EVERY_N_SECONDS is not updated without a reboot of the controller
2022-06-15 22:15:02 +02:00
Thomas Basler
e3ded34020 Publish inverter stats only if values are updated 2022-06-15 21:50:49 +02:00
Thomas Basler
0cc80126fa Added first implementation of mqtt publishing 2022-06-15 21:37:25 +02:00
Thomas Basler
fedd024413 Optimize lwt topic 2022-06-15 21:16:34 +02:00
Thomas Basler
e47e5c0197 Extend webapi to change dtu settings 2022-05-27 01:00:18 +02:00
Thomas Basler
e3ef1fa9a0 Added several DTU config settings 2022-05-26 23:17:45 +02:00
Thomas Basler
35d8a76763 Implemented firmware upgrade api 2022-05-23 23:26:19 +02:00
Thomas Basler
ba0aa20211 Added config and webapi to manage inverters 2022-05-04 21:54:38 +02:00
Thomas Basler
0d48d72691 Replaced hard coded lwt values by dynymic ones 2022-04-21 23:43:44 +02:00
Thomas Basler
8895fa95e0 First version of mqtt connection handling 2022-04-21 23:15:45 +02:00
Thomas Basler
a338b2d669 Basic implementation of mqtt webapi 2022-04-18 15:28:25 +02:00
Thomas Basler
fa791fb7e3 Reorder functions 2022-04-18 15:20:35 +02:00
Thomas Basler
50fa7e2abf First basic class structure for mqtt handling 2022-04-18 15:19:26 +02:00
Thomas Basler
000cd8b6dc Implemented additional timezone description 2022-04-18 01:33:46 +02:00
Thomas Basler
2ce5b5ad9e Added functionality to save ntp settings 2022-04-18 00:19:11 +02:00
Thomas Basler
1f692f241f Implemented first readonly version of ntp settings 2022-04-17 23:13:36 +02:00
Thomas Basler
821b9b16d1 Fixed [E][WiFiUdp.cpp:160] endPacket(): could not send data: 22 error 2022-04-17 22:07:08 +02:00
Thomas Basler
297f229c12 Implemented WebAPI to set wifi credentials 2022-04-17 21:40:47 +02:00
Thomas Basler
06837320f7 WIP: Extended WebAPI to handle network config 2022-04-15 13:14:43 +02:00
Thomas Basler
868f0cf3a5 Added second API endpoint which returns system info 2022-04-13 00:01:23 +02:00
Thomas Basler
b58788ded5 Added API endpoint which shows network info 2022-04-12 23:53:58 +02:00
Thomas Basler
fda6c2b6f6 Corrected length of AP password 2022-04-11 19:59:48 +02:00
Thomas Basler
82c3a914ab First version of WebApi 2022-04-11 19:44:51 +02:00
Thomas Basler
94719be928 Implemented handling of WiFi settings 2022-04-10 17:37:54 +02:00
Thomas Basler
8b7f2a14b6 Added configuration handling 2022-04-10 16:57:24 +02:00
Thomas Basler
893bd0c0d4 Initialize UART and FS 2022-04-09 13:08:51 +02:00
Thomas Basler
54dc566473 Initial commit 2022-04-09 11:05:14 +02:00