diff --git a/README.md b/README.md index 0efb36ef..8338a23d 100644 --- a/README.md +++ b/README.md @@ -34,10 +34,10 @@ The above command will create a Virtual Environment in the subdirectory venv in Activate the Virtual Environment: - For Linux Based OS Or Mac-OS: source venv/bin/activate - For Windows With CMD: venv\Scripts\activate.bat -- For Windows With Power shell: .\venv\Scripts\activate.ps1 +- For Windows With PowerShell: .\venv\Scripts\activate.ps1 - For Windows With Unix Like Shells For Example Git Bash CLI: source venv/Scripts/activate -Download the OpenDTU-OnBattery-docs ZIP file and expamd it inside the venv directory. +Download the OpenDTU-OnBattery-docs ZIP file and expand it inside the venv directory. Using the command editor (cmd.exe), switch to that directory and give the command: ```sh pip3 install -r requirements.txt diff --git a/docs/3rd_party/prometheus_database.md b/docs/3rd_party/prometheus_database.md index 00871397..e4391cb5 100644 --- a/docs/3rd_party/prometheus_database.md +++ b/docs/3rd_party/prometheus_database.md @@ -1,6 +1,6 @@ # Using Prometheus for data collection -The prometheus database is used for many projects for data collection. It is relatively easy to setup and use. +The prometheus database is used for many projects for data collection. It is relatively easy to set up and use. For installation, you can follow a [guide provided by the prometheus devs](https://prometheus.io/docs/introduction/first_steps/). diff --git a/docs/firmware/battery_interface.md b/docs/firmware/battery_interface.md index 7ac60bd3..6d22468f 100644 --- a/docs/firmware/battery_interface.md +++ b/docs/firmware/battery_interface.md @@ -19,7 +19,7 @@ The following data providers (battery interfaces) are supported: The MQTT battery provider is the most generic interface. Use it if your battery already publishes state of charge and/or voltage information to the MQTT broker. This option does -not require to separately connect OpenDTU-OnBattery to your battery (managemen +not require to separately connect OpenDTU-OnBattery to your battery (management system), i.e., no setup of hardware is required to use this interface. Refer to the [MQTT battery settings diff --git a/docs/firmware/compile_cli.md b/docs/firmware/compile_cli.md index 974215f5..c2522ff3 100644 --- a/docs/firmware/compile_cli.md +++ b/docs/firmware/compile_cli.md @@ -3,8 +3,8 @@ ## Step by Step 1. Install [PlatformIO Core](https://platformio.org/install/cli){target=_blank} (PIO). -1. Install the prerequisits to be able to [build the - WebApp](compile_webapp.md#install-prerequisits). +1. Install the prerequisites to be able to [build the + WebApp](compile_webapp.md#install-prerequisites). 1. Clone the [source code repository](https://github.com/hoylabs/OpenDTU-OnBattery). You really have to clone the source code repository. Do not download and extract a source ZIP file. During the build process the Git hash is embedded @@ -20,4 +20,4 @@ ## Other Popular PlatformIO Tasks * Clean the sources: `platformio run -e generic_esp32s3 -t clean` -* Erase flash: `platformio run -e generic_esp32s3 -t erase` \ No newline at end of file +* Erase flash: `platformio run -e generic_esp32s3 -t erase` diff --git a/docs/firmware/compile_vscode.md b/docs/firmware/compile_vscode.md index 77db1adc..07e96503 100644 --- a/docs/firmware/compile_vscode.md +++ b/docs/firmware/compile_vscode.md @@ -3,8 +3,8 @@ ## Step by Step 1. [Download](https://git-scm.com/downloads/){target=_blank} and install Git. -1. Install the prerequisits to be able to [build the - WebApp](compile_webapp.md#install-prerequisits). +1. Install the prerequisites to be able to [build the + WebApp](compile_webapp.md#install-prerequisites). 1. Install [Visual Studio Code](https://code.visualstudio.com/download){target=_blank} (vscode). 1. In vscode, install the [PlatformIO Extension](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide){target=_blank}. diff --git a/docs/firmware/compile_webapp.md b/docs/firmware/compile_webapp.md index 7a3db00f..8eb51b83 100644 --- a/docs/firmware/compile_webapp.md +++ b/docs/firmware/compile_webapp.md @@ -2,7 +2,7 @@ ## General information -The WebApp works completly independent from the C/C++ firmware. When compiling +The WebApp works completely independent of the C/C++ firmware. When compiling the firmware, the pre-compiled WebApp will be embedded into the firmware `.bin` file. The WebApp is served to the browser by the embedded web server and then runs on the client side. The communication between the frontend and the ESP32 @@ -22,10 +22,10 @@ automatically to your ESP32 (configurable IP address). That means you can develop the webinterface without flashing the ESP32 (if the WebAPI stays the same). -## Install prerequisits +## Install prerequisites * Determine the version of Node.js to be used: See the value for `node-version` - in the [Github workflow][3], which is the canonical version to use. + in the [GitHub workflow][3], which is the canonical version to use. * Install Node.js to be able to work with the WebApp. * The `yarn` package manager is required to install Node.js packages and to execute commands related to the WebApp. To make `yarn` available, you should @@ -52,7 +52,7 @@ same). ## Building the WebApp The WebApp is build using `yarn`. First of all you have to install or update -all the dependencies. Afterwards the app will be build. Start a Terminal of +all the dependencies. Afterwards the app will be built. Start a Terminal of your choice and enter the following commands: ```bash diff --git a/docs/firmware/configuration/device_reboot.md b/docs/firmware/configuration/device_reboot.md index 585b2249..c204c172 100644 --- a/docs/firmware/configuration/device_reboot.md +++ b/docs/firmware/configuration/device_reboot.md @@ -12,4 +12,4 @@ #### Reboot :material-button-cursor:{title="Button"} -Press this button to restart the ESP. A additional confirmation is required before the action is performed. +Press this button to restart the ESP. An additional confirmation is required before the action is performed. diff --git a/docs/firmware/configuration/device_settings.md b/docs/firmware/configuration/device_settings.md index d4652ca8..9bcddfb4 100644 --- a/docs/firmware/configuration/device_settings.md +++ b/docs/firmware/configuration/device_settings.md @@ -22,7 +22,7 @@ The table shows all available pin configurations and how they are assigned curre ### Display -This settings apply to a properbly connected display. See [Device Profiles](../device_profiles.md) for display types and pin assignment. +These settings apply to a properly connected display. See [Device Profiles](../device_profiles.md) for display types and pin assignment. #### Switch off if no solar :material-toggle-switch:{title="Switch"} @@ -54,7 +54,7 @@ The contrast setting is only supported by some displays and the impact is also d ### LEDs -This settings apply to properbly connected LEDs[^1]. See [Device Profiles](../device_profiles.md) for LED function and pin assignment. +These settings apply to properly connected LEDs[^1]. See [Device Profiles](../device_profiles.md) for LED function and pin assignment. #### Equal brightness :material-toggle-switch:{title="Switch"} diff --git a/docs/firmware/configuration/dpl.md b/docs/firmware/configuration/dpl.md index 9541268f..dcb3173f 100644 --- a/docs/firmware/configuration/dpl.md +++ b/docs/firmware/configuration/dpl.md @@ -148,7 +148,7 @@ Doing so will prevent battery discharging during the day, but will also prevent discharging during the night if the start threshold was not reached. !!!note "Efficiency" - With Solar-Passthrough disabled, it is more efficient to chose a low + With Solar-Passthrough disabled, it is more efficient to choose a low start threshold and to disable this option, such that produced energy is used immediately rather than stored in the battery first. @@ -287,7 +287,7 @@ In order to not stop the inverter too early (stop threshold) while the battery is being discharged, this load correction factor can be specified to calculate (estimate) the battery voltage if it became idle. In other words: This value should be chosen such that the battery settles back to around the stop -threshold voltage in the moment the DPL decides to stop discharging the battery +threshold voltage at the moment the DPL decides to stop discharging the battery because it hit the stop threshold. `corrected (idle) voltage = measured battery voltage + (power * correction factor)` diff --git a/docs/firmware/configuration/dtu_settings.md b/docs/firmware/configuration/dtu_settings.md index 9b0ccb97..d0bd3457 100644 --- a/docs/firmware/configuration/dtu_settings.md +++ b/docs/firmware/configuration/dtu_settings.md @@ -14,7 +14,7 @@ The possible settings depend on the RF module ([NRF24L01+](../../hardware/nrf24l #### Serial :material-form-textbox:{title="Textbox"} -The serial of the DTU which is used to communicate with the inverters. It's like the inverter serial number but belongs to the DTU. A random number is generated on the first start of OpenDTU-OnBattery and persisted in the configuration. It is important that all the DTU's in RF[^1] range have different serial numbers. +The serial of the DTU which is used to communicate with the inverters. It's like the inverter serial number but belongs to the DTU. A random number is generated on the first start of OpenDTU-OnBattery and persisted in the configuration. It is important that all the DTUs in RF[^1] range have different serial numbers. #### Poll Interval: :material-form-textbox:{title="Textbox"} diff --git a/docs/firmware/configuration/firmware_upgrade.md b/docs/firmware/configuration/firmware_upgrade.md index 50b15c1e..b036de4f 100644 --- a/docs/firmware/configuration/firmware_upgrade.md +++ b/docs/firmware/configuration/firmware_upgrade.md @@ -11,4 +11,4 @@ #### File selection :material-file-upload:{title="File"} Choose the firmware file which you want to flash. See [this](../flash_esp.md) overview for a list of pre-compiled files. -After the upload and flash process is complete the device will automatically restart. For further information please refere to the [Update Instructions](../update.md). +After the upload and flash process is complete the device will automatically restart. For further information please refer to the [Update Instructions](../update.md). diff --git a/docs/firmware/configuration/inverter_settings.md b/docs/firmware/configuration/inverter_settings.md index 238c6d33..0fa89e3b 100644 --- a/docs/firmware/configuration/inverter_settings.md +++ b/docs/firmware/configuration/inverter_settings.md @@ -18,7 +18,7 @@ #### Serial :material-form-textbox:{title="Textbox"} -The unique serial number of the inverter. It can be found on a lable at the backside of the inverter. +The unique serial number of the inverter. It can be found on a label at the backside of the inverter. #### Name :material-form-textbox:{title="Textbox"} @@ -34,7 +34,7 @@ A custom name that identifies the inverter. You can choose whatever you want. | Status | Indicates whether Poll and Send are enabled. Yellow means only during the day, black also at night. | | Serial | Serial number | | Name | Custom name | -| Type | The detected inverter type based on the serial number. If you get `Unknown` in this column you either misstyped the number or your inverter is not yet supported. | +| Type | The detected inverter type based on the serial number. If you get `Unknown` in this column you either mistyped the number or your inverter is not yet supported. | #### Save order :material-button-cursor:{title="Button"} @@ -64,7 +64,7 @@ When enabled, the inverter gets also polled at night times. ##### Send commands :material-toggle-switch:{title="Switch"} -When enabled, control commands (e.g. restart/poweroff/limit) will be send to the inverter. Otherwise the commands get dropped. +When enabled, control commands (e.g. restart/poweroff/limit) will be sent to the inverter. Otherwise the commands get dropped. ##### Send commands at night :material-toggle-switch:{title="Switch"} diff --git a/docs/firmware/configuration/mqtt_settings.md b/docs/firmware/configuration/mqtt_settings.md index 13e05397..d060cd40 100644 --- a/docs/firmware/configuration/mqtt_settings.md +++ b/docs/firmware/configuration/mqtt_settings.md @@ -21,11 +21,11 @@ Enables or disables the [Home Assistant MQTT Auto Discovery](https://www.home-as ### MQTT Broker Parameter -This settings are only visible if [MQTT](#enable-mqtt) is enabled. +These settings are only visible if [MQTT](#enable-mqtt) is enabled. #### Hostname :material-form-textbox:{title="Textbox"} -Host name or IP address of your MQTT broker. Make sure your DNS servers are set-up properly if you specify a host name. +Host name or IP address of your MQTT broker. Make sure your DNS servers are set up properly if you specify a host name. #### Port :material-form-textbox:{title="Textbox"} @@ -53,11 +53,11 @@ Enables the CleanSession[^3] flag for MQTT communication. #### Enable Retain flag :material-toggle-switch:{title="Switch"} -Publish all information with retain[^2] flag. This has the advantage that each value is immediatly avilable if you connect to your broker and subscribe to the specific topics you will get immediatly the latest values. +Publish all information with retain[^2] flag. This has the advantage that each value is immediately available if you connect to your broker and subscribe to the specific topics you will get immediately the latest values. #### Enable TLS :material-toggle-switch:{title="Switch"} -Enables a secure TLS connection to your MQTT broker. If using this you have to get a proper certificate (self signed will not work, is has to be signed by a CA) and the hostname entered as MQTT Hostname must match the CN in the certificate. You must also specify the CA-Root-Certificate. +Enables a secure TLS connection to your MQTT broker. If using this you have to get a proper certificate (self signed will not work, it has to be signed by a CA) and the hostname entered as MQTT Hostname must match the CN in the certificate. You must also specify the CA-Root-Certificate. #### CA-Root-Certificate :material-form-textbox:{title="Textbox"} @@ -65,7 +65,7 @@ The root certificate of your CA if you are using a TLS connection to your broker #### Enable TLS Certificate Login :material-toggle-switch:{title="Switch"} -Uses certificates to authenticate agains a MQTT broker. When enabled, the **TLS Client-Certificate** and the **TLS Client-Key** has to be supplied. +Uses certificates to authenticate against a MQTT broker. When enabled, the **TLS Client-Certificate** and the **TLS Client-Key** has to be supplied. #### TLS Client-Certificate :material-form-textbox:{title="Textbox"} @@ -77,7 +77,7 @@ Should include the `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----` ### LWT Parameters -This settings are only visible if [MQTT](#enable-mqtt) is enabled. +These settings are only visible if [MQTT](#enable-mqtt) is enabled. #### LWT Topic :material-form-textbox:{title="Textbox"} @@ -97,7 +97,7 @@ Sets the QoS of the LWT topic. ### Home Assistant MQTT Auto Discovery Parameters -This settings are only visible if [Enable Home Assistant MQTT Auto Discovery](#enable-home-assistant-mqtt-auto-discovery) is enabled. +These settings are only visible if [Enable Home Assistant MQTT Auto Discovery](#enable-home-assistant-mqtt-auto-discovery) is enabled. Home Assistant provides the [MQTT integration](https://www.home-assistant.io/integrations/mqtt/){target=_blank} and through this integration it is possible to exploit and manage the messages published by OpenDTU-OnBattery. Once this integration on home assistant is configured with the same MQTT broker, it is possible to create devices manually or through the autodiscovery function. @@ -108,7 +108,7 @@ The base under which all Home Assistant MQTT Auto Discovery magic happens. If yo #### Enable Retain Flag :material-toggle-switch:{title="Switch"} -Publish all auto discovery information with retain[^2] flag. This has the advantage that Home Assistant automaticaly finds all devices on restart. +Publish all auto discovery information with retain[^2] flag. This has the advantage that Home Assistant automatically finds all devices on restart. #### Enable Expiration :material-toggle-switch:{title="Switch"} diff --git a/docs/firmware/configuration/network_info.md b/docs/firmware/configuration/network_info.md index cfae8b83..ebd6d277 100644 --- a/docs/firmware/configuration/network_info.md +++ b/docs/firmware/configuration/network_info.md @@ -6,7 +6,7 @@ ## Settings / Parameters -### WiFi Information (Station) +### Wi-Fi Information (Station) #### Status @@ -18,9 +18,9 @@ #### RSSI -### Wifi Information (Access Point) +### Wi-Fi Information (Access Point) -This section contain information about the internal access point which will be opened at device startup or if no connection to the configured WiFi or ethernet can be established. +This section contain information about the internal access point which will be opened at device startup or if no connection to the configured Wi-Fi or ethernet can be established. #### Status diff --git a/docs/firmware/configuration/network_settings.md b/docs/firmware/configuration/network_settings.md index 9d167201..67c0bda0 100644 --- a/docs/firmware/configuration/network_settings.md +++ b/docs/firmware/configuration/network_settings.md @@ -7,43 +7,43 @@ ## Settings / Parameters !!! note "Note" - Some of this settings apply to the WiFi interface and the ethernet interface (if available on your board and configured). If ethernet is connected, the WiFi connection will be disabled and it's settings will be transfered to the ethernet interface (also the other way around). The ethernet interface has higher priority. + Some of these settings apply to the Wi-Fi interface and the ethernet interface (if available on your board and configured). If ethernet is connected, the Wi-Fi connection will be disabled and its settings will be transferred to the ethernet interface (also the other way around). The ethernet interface has higher priority. ### WiFi Configuration -#### WiFi SSID :material-form-textbox:{title="Textbox"} +#### Wi-Fi SSID :material-form-textbox:{title="Textbox"} -The SSID[^1] / name of your WiFi network. +The SSID[^1] / name of your Wi-Fi network. -#### WiFi Password :material-form-textbox:{title="Textbox"} +#### Wi-Fi Password :material-form-textbox:{title="Textbox"} Optional password for the access point, if required. -#### WiFi Hostname :material-form-textbox:{title="Textbox"} +#### Wi-Fi Hostname :material-form-textbox:{title="Textbox"} The host name with which OpenDTU-OnBattery logs on to various services (DNS server, MQTT server, mDNS). This name must be unique in the LAN[^2]. The text `%06X` will be replaced internally by the ChipID of the ESP. This helps to keep the hostname unique. The hostname will be also used if the ESP is connected via ethernet. #### Enable DHCP :material-toggle-switch:{title="Switch"} -If DHCP is enabled the OpenDTU-OnBattery will request it's network information like IP/Netmask/Gateway from e.g. your router. If you disable this function you have to enter these settings manually. +If DHCP is enabled the OpenDTU-OnBattery will request its network information like IP/Netmask/Gateway from e.g. your router. If you disable this function you have to enter these settings manually. ### Static IP Configuration #### IP Address :material-form-textbox:{title="Textbox"} -IP Address which is assigned to either the WiFi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx` +IP Address which is assigned to either the Wi-Fi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx` #### Netmask :material-form-textbox:{title="Textbox"} -The Netmask which is assigned to either the WiFi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. The default value for a Class-C network (which you have most likely should be `255.255.255.0`). +The Netmask which is assigned to either the Wi-Fi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. The default value for a Class-C network (which you have most likely should be `255.255.255.0`). #### Default Gateway :material-form-textbox:{title="Textbox"} -The default gateway which is assigned to either the WiFi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. For a standard home network this should be the IP of your router (e.g. `192.168.178.1`). +The default gateway which is assigned to either the Wi-Fi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. For a standard home network this should be the IP of your router (e.g. `192.168.178.1`). #### DNS Server 1 :material-form-textbox:{title="Textbox"} -The DNS server which is assigned to either the WiFi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. For a standard home network this should be the IP of your router (e.g. `192.168.178.1`). +The DNS server which is assigned to either the Wi-Fi interface or the ethernet interface (if applicable). Format: `xxx.xxx.xxx.xxx`. For a standard home network this should be the IP of your router (e.g. `192.168.178.1`). #### DNS Server 2 :material-form-textbox:{title="Textbox"} @@ -55,11 +55,11 @@ Please see [DNS Server 1](#dns-server-1) Enables or disables the mDNS publication of the IP address and version the OpenDTU-OnBattery. This is useful to address the DTU in the network with its DNS name if no DNS server (e.g. on the router) is available. The generated mDNS name is composed as follows: `.local`. -### WiFi Configuration (Admin AccessPoint) +### Wi-Fi Configuration (Admin AccessPoint) #### AccessPoint Timeout :material-form-textbox:{title="Textbox"} -After each device restart, if no valid WiFi configuration is found or if the configured AccessPoint is not found, an internal AccessPoint is opened. In case that the Wifi configuration is valid and the infrastrcuture AP[^3] is reachable, the internal AP is closed after the time configured in this setting. +After each device restart, if no valid Wi-Fi configuration is found or if the configured AccessPoint is not found, an internal AccessPoint is opened. In case that the Wi-Fi configuration is valid and the infrastructure AP[^3] is reachable, the internal AP is closed after the time configured in this setting. [^1]: [SSID](https://en.wikipedia.org/wiki/Service_set_(802.11_network)#SSID){target=_blank} [^2]: [Local Area Network](https://en.wikipedia.org/wiki/Local_area_network){target=_blank} diff --git a/docs/firmware/configuration/ntp_info.md b/docs/firmware/configuration/ntp_info.md index 45323f74..cdd10f09 100644 --- a/docs/firmware/configuration/ntp_info.md +++ b/docs/firmware/configuration/ntp_info.md @@ -32,11 +32,11 @@ NTP servers provide the time in UTC[^1] time format. It is necessary to convert #### Sunrise -Time of todays sunrise. Used to set the day/night mode. +Time of today's sunrise. Used to set the day/night mode. #### Sunset -Time of todays sunset. Used to set the day/night mode. +Time of today's sunset. Used to set the day/night mode. #### Mode diff --git a/docs/firmware/configuration/ntp_settings.md b/docs/firmware/configuration/ntp_settings.md index 33a7c001..a13bbd61 100644 --- a/docs/firmware/configuration/ntp_settings.md +++ b/docs/firmware/configuration/ntp_settings.md @@ -12,7 +12,7 @@ OpenDTU-OnBattery needs a proper synced clock to start fetching the inverter. (E #### Time Server :material-form-textbox:{title="Textbox"} -Hostname or IP address of your NTP[^1] server. The default value is ok unless your WiFi does not provide access to the internet. In this case you have to enter your own NTP server (mostly the IP of your router e.g. `192.168.178.1`). +Hostname or IP address of your NTP[^1] server. The default value is ok unless your Wi-Fi does not provide access to the internet. In this case you have to enter your own NTP server (mostly the IP of your router e.g. `192.168.178.1`). #### Timezone :material-form-dropdown:{title="Dropdown"} @@ -36,7 +36,7 @@ Longitude of the location of your inverter in degree. #### Sunset type :material-form-dropdown:{title="Dropdown"} -There are differnt "Sunset types" which add different offsets to the calculated time. +There are different "Sunset types" which add different offsets to the calculated time. The following values are possible: * Standard dawn (90.8°) @@ -58,10 +58,10 @@ Shows the current time detected from your web browser. #### Synchronize Time :material-button-cursor:{title="Button"} -Press this button to manually synchronize the ESP time with your local time. This can be usefull if no NTP server is available. +Press this button to manually synchronize the ESP time with your local time. This can be useful if no NTP server is available. !!! note "Note" - Keep in mind, that the time gets lost after a power cycle. Also note, that the time accuracy will be skewed badly, as it can not resynchronised regularly using a NTP server and the ESP32 microcontroller does not have a RTC[^4]. + Keep in mind, that the time gets lost after a power cycle. Also note, that the time accuracy will be skewed badly, as it can not be resynchronised regularly using a NTP server and the ESP32 microcontroller does not have a RTC[^4]. [^1]: [Network Time Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol){target=_blank} [^2]: [Coordinated Universal Timeordic](https://en.wikipedia.org/wiki/Coordinated_Universal_Time){target=_blank} diff --git a/docs/firmware/device_profiles.md b/docs/firmware/device_profiles.md index 35eab430..579e3e80 100644 --- a/docs/firmware/device_profiles.md +++ b/docs/firmware/device_profiles.md @@ -13,7 +13,7 @@ Perform these steps to configure pin assignments for your board: ## Details -It is required to setup hardware settings like pin assignments or Ethernet +It is required to set up hardware settings like pin assignments or Ethernet support using a JSON file. This tells OpenDTU-OnBattery what peripherals are connected and how they are connected. The JSON file is uploaded using the configuration management (**Settings** --> **Config Management**) in the web diff --git a/docs/firmware/dpl.md b/docs/firmware/dpl.md index 70ad6eb4..370294b0 100644 --- a/docs/firmware/dpl.md +++ b/docs/firmware/dpl.md @@ -75,7 +75,7 @@ settings, and not tied to a time of day through software. causes switching to a battery discharge cycle when a specific time point, i.e., sunset, is reached. It also causes that the discharge cycle ends at sunrise, if it was started because of this feature, and if it did not end - because of the stop threshold during the night anyways. + because of the stop threshold during the night anyway. [useatnight]: configuration/dpl.md#use-battery-at-night-even-if-only-partially-charged diff --git a/docs/firmware/faq.md b/docs/firmware/faq.md index ad21ad6f..2e09cf5b 100644 --- a/docs/firmware/faq.md +++ b/docs/firmware/faq.md @@ -59,7 +59,7 @@ This means that under certain circumstances (activation of WLAN/Ethernet or sending requests to the inverter) the supply voltage drops to such an extent that the ESP can no longer work reliably. This can be remedied, for example, with a 100uF capacitor between VCC and GND. In exceptional cases, the power supply unit also appears to be too weak. The cable cross-section of the USB cable can also have an influence. -??? question "After a reboot of the router or access point, OpenDTU-OnBattery does not reconnect immediatly to the Wi-Fi" +??? question "After a reboot of the router or access point, OpenDTU-OnBattery does not reconnect immediately to the Wi-Fi" OpenDTU-OnBattery tries to reconnect to the Wi-Fi for 30 seconds. If it can't find the Wi-Fi within this time it stops reconnecting and waits for 10 minutes until a new connect attempt is done. This is done because all channels are tried during a connection attempt. This means that an end device that is connected to the "Admin Access Point" may lose the connection or is not be able to connect at all. @@ -71,6 +71,6 @@ Please also see [tbnobody#719](https://github.com/tbnobody/OpenDTU/issues/719){target=_blank}. -??? question "OpenDTU-OnBattery does not build: "C:/Users//.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:33:10: fatal error: freertos/FreeRTOS.h: No such file or directory #include \"freertos/FreeRTOS.h\"" +??? question "OpenDTU-OnBattery does not build: C:/Users//.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h:33:10: fatal error: freertos/FreeRTOS.h: No such file or directory #include \"freertos/FreeRTOS.h\"" This is most likly a issue with your PlatformIO installation. As a workaround you can delete all packages within the `C:/Users//.platformio/packages/` folder. The content will be downloaded on the next compile attempt. diff --git a/docs/firmware/flash_esp.md b/docs/firmware/flash_esp.md index 6096e59b..35c220f5 100644 --- a/docs/firmware/flash_esp.md +++ b/docs/firmware/flash_esp.md @@ -2,7 +2,7 @@ ## Multiple USB-Ports -You board may be equipped with multiple USB ports. This is mostly the case for +Your board may be equipped with multiple USB ports. This is mostly the case for ESP32-S3 boards. One of the port connects to a USB-UART bridge on the board, while the other connects to the ESP32 natively using USB. The former port may be labeled "UART" or "COM" and the latter port may be labeled "USB". On some @@ -54,7 +54,7 @@ tab below that matches your flash tool. The easiest, platform-independent method. Requires Chrome, Brave, or Edge browser. Only installs firmware which has been released through - [Github](https://github.com/hoylabs/OpenDTU-OnBattery/releases). + [GitHub](https://github.com/hoylabs/OpenDTU-OnBattery/releases). === "Espressif Web Flasher :material-linux::material-apple::material-microsoft-windows:" diff --git a/docs/firmware/howto/migrate_generic.md b/docs/firmware/howto/migrate_generic.md index 4d1eae10..0737ea59 100644 --- a/docs/firmware/howto/migrate_generic.md +++ b/docs/firmware/howto/migrate_generic.md @@ -2,7 +2,7 @@ !!!note "Applicability" This information only applies to older releases. Neither the `generic` nor - the `generic_esp32` firmware variants are released any more. + the `generic_esp32` firmware variants are released anymore. ## Differences diff --git a/docs/firmware/howto/serial_console.md b/docs/firmware/howto/serial_console.md index a390c9a4..31a24ce7 100644 --- a/docs/firmware/howto/serial_console.md +++ b/docs/firmware/howto/serial_console.md @@ -3,7 +3,7 @@ The serial console which is shown in the WebUI does not show the whole boot process and also not several very critical errors, because in such moments the TCP connection is also interrupted. There are several ways to look at the -serial console. First of all, the ESP32 has to be connected via an USB cable to +serial console. First of all, the ESP32 has to be connected via a USB cable to the computer. ## Windows diff --git a/docs/firmware/howto/upgrade_8mb.md b/docs/firmware/howto/upgrade_8mb.md index 077c295a..47f4d380 100644 --- a/docs/firmware/howto/upgrade_8mb.md +++ b/docs/firmware/howto/upgrade_8mb.md @@ -77,7 +77,7 @@ OTA support. Other variants use the new layout for 8 MB of flash memory. might revert to default values after downgrading. !!!warning "4MB flash" - Dowgrading a device with 4MB of flash requires writing the older factory + Downgrading a device with 4MB of flash requires writing the older factory binary using a wired connection as changing the firmware over-the-air is not supported, neither for updates nor for downgrades. @@ -88,7 +88,7 @@ firmware sizes. ## Background -To accomodate a larger firmware binary, the ESP32 flash memory partition layout +To accommodate a larger firmware binary, the ESP32 flash memory partition layout changed with the release of OpenDTU-OnBattery version 2024.08.18. All firmware released since then uses this new partition layout. Firmware variants `generic` and `generic_esp32` are no longer available. @@ -109,7 +109,7 @@ and `generic_esp32` are no longer available. * ESP32 with 4 MB of flash memory using the `generic_esp32_4mb_no_ota` variant use the same new layout except that there is no `app1` partition. This is why there is no support for OTA updates when using this partition layout. This - layout does, however, fit 4 MB of flash while also accomodating more space + layout does, however, fit 4 MB of flash while also accommodating more space (the same amount as for devices with ≥ 8 MB) for the firmware. See [#1025](https://github.com/hoylabs/OpenDTU-OnBattery/issues/1025) for diff --git a/docs/firmware/mqtt_topics.md b/docs/firmware/mqtt_topics.md index 7b26c322..458e78b6 100644 --- a/docs/firmware/mqtt_topics.md +++ b/docs/firmware/mqtt_topics.md @@ -1,6 +1,6 @@ # MQTT Topics -The base topic, as configured in the web GUI is prepended to all follwing topics. +The base topic, as configured in the web GUI is prepended to all following topics. ## General topics @@ -52,7 +52,7 @@ serial will be replaced with the serial number of the inverter. | `[serial]/radio/rssi` | R | RSSI of last received packet (Inverters with NRF24 module only support 2 states. > -64dBm and < -64dBm. In the first case -30 dBm is shown, in the second one -80 dBm) | dBm | | `[serial]/status/reachable` | R | Indicates whether the inverter is reachable | 0 or 1 | | `[serial]/status/producing` | R | Indicates whether the inverter is producing AC power | 0 or 1 | -| `[serial]/status/last_update` | R | Unix timestamp of last inverter statistics udpate | seconds since JAN 01 1970 (UTC) | +| `[serial]/status/last_update` | R | Unix timestamp of last inverter statistics update | seconds since JAN 01 1970 (UTC) | ### AC channel / global specific topics @@ -92,10 +92,10 @@ cmd topics are used to set values. Status topics are updated from values set in | ------------------------------------------- | ----- | ---------------------------------------------------- | -------------------------- | | `[serial]/status/limit_relative` | R | Current applied production limit of the inverter | % of total possible output | | `[serial]/status/limit_absolute` | R | Current applied production limit of the inverter | Watt (W) | -| `[serial]/cmd/limit_persistent_relative` | W | Set the inverter limit as a percentage of total production capability. The value will survive the night without power. The updated value will show up in the web GUI and limit_relative topic immediatly. | % | -| `[serial]/cmd/limit_persistent_absolute` | W | Set the inverter limit as a absolute value. The value will survive the night without power. The updated value will set immediatly within the inverter but show up in the web GUI and limit_relative topic after around 4 minutes. If you are using a already known inverter (known Hardware ID), the updated value will show up within a few seconds. | Watt (W) | -| `[serial]/cmd/limit_nonpersistent_relative` | W | Set the inverter limit as a percentage of total production capability. The value will reset to the last persistent value at night without power. The updated value will show up in the web GUI and limit_relative topic immediatly. The value must be published non-retained, otherwise it will be ignored! | % | -| `[serial]/cmd/limit_nonpersistent_absolute` | W | Set the inverter limit as a absolute value. The value will reset to the last persistent value at night without power. The updated value will set immediatly within the inverter but show up in the web GUI and limit_relative topic after around 4 minutes. If you are using a already known inverter (known Hardware ID), the updated value will show up within a few seconds. The value must be published non-retained, otherwise it will be ignored! | Watt (W) | +| `[serial]/cmd/limit_persistent_relative` | W | Set the inverter limit as a percentage of total production capability. The value will survive the night without power. The updated value will show up in the web GUI and limit_relative topic immediately. | % | +| `[serial]/cmd/limit_persistent_absolute` | W | Set the inverter limit as a absolute value. The value will survive the night without power. The updated value will set immediately within the inverter but show up in the web GUI and limit_relative topic after around 4 minutes. If you are using a already known inverter (known Hardware ID), the updated value will show up within a few seconds. | Watt (W) | +| `[serial]/cmd/limit_nonpersistent_relative` | W | Set the inverter limit as a percentage of total production capability. The value will reset to the last persistent value at night without power. The updated value will show up in the web GUI and limit_relative topic immediately. The value must be published non-retained, otherwise it will be ignored! | % | +| `[serial]/cmd/limit_nonpersistent_absolute` | W | Set the inverter limit as a absolute value. The value will reset to the last persistent value at night without power. The updated value will set immediately within the inverter but show up in the web GUI and limit_relative topic after around 4 minutes. If you are using a already known inverter (known Hardware ID), the updated value will show up within a few seconds. The value must be published non-retained, otherwise it will be ignored! | Watt (W) | | `[serial]/cmd/power` | W | Turn the inverter on (1) or off (0) | 0 or 1 | | `[serial]/cmd/reset_rf_stats` | W | Reset the radio statistics | 1 | | `[serial]/cmd/restart` | W | Restarts the inverters (also resets YieldDay) | 1 | @@ -112,7 +112,7 @@ cmd topics are used to set values. Status topics are updated from values set in | `victron/[serial]/LOAD` | R | Load output state | ON / OFF | | `victron/[serial]/CS` | R | State of operation | text, e.g., "Bulk" | | `victron/[serial]/ERR` | R | Error code | text, e.g., "No error" | -| `victron/[serial]/OR` | R | Off reasen | text, e.g., "Not off" | +| `victron/[serial]/OR` | R | Off reason | text, e.g., "Not off" | | `victron/[serial]/MPPT` | R | Tracker operation mode | text, e.g., "MPP Tracker active" | | `victron/[serial]/HSDS` | R | Day sequence number (0...364) | int in days | diff --git a/docs/firmware/web_api.md b/docs/firmware/web_api.md index 9e98af18..a1e593c7 100644 --- a/docs/firmware/web_api.md +++ b/docs/firmware/web_api.md @@ -50,7 +50,7 @@ Information in JSON format can be obtained through the web API. ### Important notes -- IP addresses and serial numbers in this examples are anonymized. Adjust to your own needs. +- IP addresses and serial numbers in these examples are anonymized. Adjust to your own needs. - The output from curl is without a linefeed at the end, so please be careful when copying the output - do not accidentally add the shell prompt directly after it. - When POSTing config data to OpenDTU-OnBattery, always send all settings back, even if only one setting was changed. Sending single settings is not supported and you will receive a response `{"type":"warning","message":"Values are missing!"}` - When POSTing, always put single quotes around the data part. Do not confuse the single quote `'` with the backtick `` ` ``. You have been warned. diff --git a/docs/hardware/cmt2300a.md b/docs/hardware/cmt2300a.md index 70a1c6d8..8e259b98 100644 --- a/docs/hardware/cmt2300a.md +++ b/docs/hardware/cmt2300a.md @@ -15,7 +15,7 @@ The CMT2300A module is a 868MHz RF module. It is important to get a module which The CMT2300A uses 3-Wire half duplex SPI communication. Due to this fact it currently requires a separate SPI bus. If you want to run the CMT2300A module on the same ESP32 as a NRF24L01+ module or a PCD8544 display make sure you get -an ESP32 which supports 2 SPI busses (use an ESP32-S3). +an ESP32 which supports 2 SPI buses (use an ESP32-S3). Buy your hardware from a trusted source, at best from a dealer/online shop in your country where you have support and the right to return non-functional hardware. When you want to buy from Amazon, AliExpress, eBay etc., take note that there is a lot of low-quality or fake hardware offered. Read customer comments and ratings carefully! diff --git a/docs/hardware/display.md b/docs/hardware/display.md index 937b5dd8..94504a7a 100644 --- a/docs/hardware/display.md +++ b/docs/hardware/display.md @@ -2,7 +2,7 @@ OpenDTU-OnBattery currently supports different types of displays (see below). Currently only displays with a resolution of 128x64 pixel are supported. To -activate a display you have to specify it's type and pin assignment in a +activate a display you have to specify its type and pin assignment in a [device profile](../firmware/device_profiles.md). ## Display Settings diff --git a/docs/hardware/esp32_devkit.md b/docs/hardware/esp32_devkit.md index 19be9975..50b97882 100644 --- a/docs/hardware/esp32_devkit.md +++ b/docs/hardware/esp32_devkit.md @@ -30,7 +30,7 @@ merely compatible imitations. Get a version with at least 8 MB of flash memory to be able to use OTA updates. Versions of this board with 8 MB or more of flash memory are available, but -harder to find. When searching for such a board by keywords, mostely ESP32-S3 +harder to find. When searching for such a board by keywords, mostly ESP32-S3 boards come up. Note that Espressif offers the following ESP32-DevKitC variants: diff --git a/docs/hardware/esp32s3_devkit.md b/docs/hardware/esp32s3_devkit.md index 52ef6395..d7d3a633 100644 --- a/docs/hardware/esp32s3_devkit.md +++ b/docs/hardware/esp32s3_devkit.md @@ -12,7 +12,7 @@ guide](https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32- The ESP32-S3-DevKitC boards are **not** compatible to the non-S3 versions. They cannot be used as drop-in upgrades in your existing hardware. The ESP32-S3-DevKitC boards have a higher pin count and incompatible pin - assignements. + assignments. !!!warning "Reserved Pins" ESP32-S3 modules with 8 MB of PSRAM use an octal SPI interface. On these diff --git a/docs/hardware/jkbms/models_b.md b/docs/hardware/jkbms/models_b.md index a503767a..55914f94 100644 --- a/docs/hardware/jkbms/models_b.md +++ b/docs/hardware/jkbms/models_b.md @@ -2,7 +2,7 @@ ![JK-B* Models](../../assets/images/hardware/jkbms/old_style.png) -The support for JK BMS was developed and testest against a `JK-B1A24S15P` +The support for JK BMS was developed and tested against a `JK-B1A24S15P` model. It is assumed that all JK BMS (in this series) implement the same protocol on their UART interface. The following models are listed in a manual that includes the tested model: diff --git a/docs/hardware/limitations.md b/docs/hardware/limitations.md index 5e11dd67..bb56633b 100644 --- a/docs/hardware/limitations.md +++ b/docs/hardware/limitations.md @@ -64,7 +64,7 @@ particular. The ESP32's bootloader will print messages on UART0 on every boot. If a peripheral is connected to UART0, this peripheral will receive these messages. If the peripheral is not robust against invalid messages and, depending on the -baud rate, invalid UART chararacters, it may cease to function properly. +baud rate, invalid UART characters, it may cease to function properly. ### Firmware Messages @@ -79,7 +79,7 @@ instead available on the virtual serial interface of the native USB connection. ## SPI Busses -ESP32 and ESP32-S3 chips provide four seperate SPI interfaces. Two of them are +ESP32 and ESP32-S3 chips provide four separate SPI interfaces. Two of them are reserved for communicating with the flash and/or PSRAM. The remaining two are free to use for peripherals. This means only two SPI peripherals can be connected at a time. The following peripherals need an SPI bus each: @@ -87,4 +87,4 @@ connected at a time. The following peripherals need an SPI bus each: * NRF24 radio module * CMT2300 radio module * Huawei CAN interface -* Some diplays +* Some displays diff --git a/docs/hardware/nrf24l01plus.md b/docs/hardware/nrf24l01plus.md index 99c8704f..9ca98a49 100644 --- a/docs/hardware/nrf24l01plus.md +++ b/docs/hardware/nrf24l01plus.md @@ -10,7 +10,7 @@ ## Description -The NRF24L01+ module is a 2,4GHz RF module. **It is absolutly important to get +The NRF24L01+ module is a 2,4GHz RF module. **It is absolutely important to get the newer PLUS variant**! Only the PLUS variant supports the required transmission speeds and is able to communicate with the inverter. There are several variants with different qualities and prices. Most of them diff --git a/docs/hardware/recommendations.md b/docs/hardware/recommendations.md index a58e2d43..704ee3db 100644 --- a/docs/hardware/recommendations.md +++ b/docs/hardware/recommendations.md @@ -20,7 +20,7 @@ DevKit Board with a `N16R2` type of module. * Details can be found in the [ESP32 datasheet][1], [ESP32-S3 datasheet][2], or even the [ESP32-S3 Technical Reference Manual][7]. * These parts are manufactured by Espressif. - * A popular cosumer product integrating these chips directly are Shelly + * A popular consumer product integrating these chips directly are Shelly devices. * ![Module](../assets/images/hardware/esp32_module.png){align=right width=150} **Module**: Refers to an assembled part consisting of an ESP32(-S3) chip and @@ -32,7 +32,7 @@ DevKit Board with a `N16R2` type of module. * Details can be found in the respective datasheets (non-exhaustive list): [ESP32-WROOM-32][3], [ESP32-WROOM-32D/U][4], [ESP32-S3-WROOM-1][5], or [ESP32-S3-WROOM-2][6]. - * These modules are orginally manufactured by Espressif, but there are + * These modules are originally manufactured by Espressif, but there are compatible knock-off products advertised under identical part numbers. * Using these modules simplifies integration into custom applications. Popular consumer products using these modules are ESP32-based relay @@ -81,25 +81,25 @@ has native USB support, freeing one hardware UART. Use a board which integrates one of the following modules: | ESP32-S3-WROOM-... | Flash | PSRAM | Antenna | -| ------------------:| ----: | ----: | --------- | -| ...1U-N16R8 | 16 MB | 8 MB | external | -| ...1-N16R8 | 16 MB | 8 MB | PCB Trace | -| ...1U-N16R2 | 16 MB | 2 MB | external | -| ...1-N16R2 | 16 MB | 2 MB | PCB Trace | -| ...1U-N16 | 16 MB | - | external | -| ...1-N16 | 16 MB | - | PCB Trace | -| ...1U-N8R8 | 8 MB | 8 MB | external | -| ...1-N8R8 | 8 MB | 8 MB | PCB Trace | -| ...1U-N8R2 | 8 MB | 2 MB | external | -| ...1-N8R2 | 8 MB | 2 MB | PCB Trace | -| ...1U-N8 | 8 MB | - | external | -| ...1-N8 | 8 MB | - | PCB Trace | -| ...2-N16R8V | 16 MB | 8 MB | PCB Trace | -| ...2-N32R8V | 32 MB | 8 MB | PCB Trace | +|-------------------:|------:|------:|-----------| +| ...1U-N16R8 | 16 MB | 8 MB | external | +| ...1-N16R8 | 16 MB | 8 MB | PCB Trace | +| ...1U-N16R2 | 16 MB | 2 MB | external | +| ...1-N16R2 | 16 MB | 2 MB | PCB Trace | +| ...1U-N16 | 16 MB | - | external | +| ...1-N16 | 16 MB | - | PCB Trace | +| ...1U-N8R8 | 8 MB | 8 MB | external | +| ...1-N8R8 | 8 MB | 8 MB | PCB Trace | +| ...1U-N8R2 | 8 MB | 2 MB | external | +| ...1-N8R2 | 8 MB | 2 MB | PCB Trace | +| ...1U-N8 | 8 MB | - | external | +| ...1-N8 | 8 MB | - | PCB Trace | +| ...2-N16R8V | 16 MB | 8 MB | PCB Trace | +| ...2-N32R8V | 32 MB | 8 MB | PCB Trace | Make sure that the board actually uses the native USB capability, such that the third hardware UART becomes available. There are boards with two USB -connectors, where one connectnatively to the ESP32. In that case, the board is +connectors, where one connects natively to the ESP32. In that case, the board is fine. On board with only one USB connector, look out for a USB to UART transceiver. If there is one on the board, the chip is possibly not connected natively to the USB port. diff --git a/docs/hardware/vedirect.md b/docs/hardware/vedirect.md index a15d3b99..922d166d 100644 --- a/docs/hardware/vedirect.md +++ b/docs/hardware/vedirect.md @@ -59,7 +59,7 @@ pin and UART on the ESP32. ## VE.Direct Physical Interface -The VE.Direct socket on the Victron device is male and is comprised of four +The VE.Direct socket on the Victron device is male and comprises four pins, which are assigned as follows: ![VE.Direct Pin-Out](../assets/images/hardware/vedirect_pinout.png) diff --git a/docs/hardware/victron_charge_controllers.md b/docs/hardware/victron_charge_controllers.md index 73b0fdea..a76f75f6 100644 --- a/docs/hardware/victron_charge_controllers.md +++ b/docs/hardware/victron_charge_controllers.md @@ -8,7 +8,7 @@ This allows OpenDTU-OnBattery to * read data from the charge controller * display the data in the web UI * publish the data to the MQTT broker -* and make the data auto-discoverable in HomeAssistent. +* and make the data auto-discoverable in HomeAssistant. Additionally, knowing the amount of solar power currently being produced, can be leveraged by the Dynamic Power Limiter to implement (Full) diff --git a/docs/index.md b/docs/index.md index 260a7162..84444645 100644 --- a/docs/index.md +++ b/docs/index.md @@ -70,9 +70,9 @@ It's goal was to replace the original Hoymiles DTU (Telemetry Gateway), which up ## Support -For support using OpenDTU-OnBattery you can find us on Github or Discord: +For support using OpenDTU-OnBattery you can find us on GitHub or Discord: -[:material-github: Github Discussions][2]{target=_blank .md-button .md-button--primary } +[:material-github: GitHub Discussions][2]{target=_blank .md-button .md-button--primary } [:fontawesome-brands-discord: Discord Chat][3]{target=_blank .md-button .md-button--primary } ## Donate diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index f31b1e60..bdaa38e6 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -4,11 +4,11 @@ * When there is no data received from the inverter(s) - try to reduce the distance between the OpenDTU-OnBattery and the inverter (e.g. move it to the window towards the roof). If the distance is already very small (less than 1 meter), try increasing the distance. * At **Settings** --> **DTU** you can increase the transmit power "PA level". Default is "minimum". If the distance to the inverter is small, try **de**creasing the transmit power. * The NRF24L01+ needs relatively much current. With bad power supply (and especially bad cables!) a 10 µF capacitor soldered directly to the NRF24L01+ board connector brings more stability (pin 1+2 are the power supply). Note the polarity of the capacitor. -* You can try to use an USB power supply with 1 A or more instead of connecting the ESP32 to the computer. +* You can try to use a USB power supply with 1 A or more instead of connecting the ESP32 to the computer. * Try a different USB cable. Once again, a stable power source is important. Some USB cables are made of much plastic and very little copper inside. * Double check that you have a radio module NRF24L01+ with a plus sign at the end. NRF24L01 module without the plus are not compatible with this project. * There is no possibility of auto-discovering the inverters. Double check you have entered the serial numbers of the inverters correctly. * OpenDTU-OnBattery needs access to a working NTP server to get the current date & time. -* If your problem persists, check the [Issues on Github](https://github.com/hoylabs/OpenDTU-OnBattery/issues){target=_blank}. Please inspect not only the open issues, also the closed issues contain useful information. +* If your problem persists, check the [Issues on GitHub](https://github.com/hoylabs/OpenDTU-OnBattery/issues){target=_blank}. Please inspect not only the open issues, also the closed issues contain useful information. * Another source of information are the [Discussions](https://github.com/hoylabs/OpenDTU-OnBattery/discussions/){target=_blank} * Make sure to connect one inverter only to one DTU (Original, Ahoy, OpenDTU, OpenDTU-OnBattery doesn't make a difference). If you query the same inverter from multiple DTUs you will mess up the communication.