Skip to content

Commit

Permalink
3.7.0 updates
Browse files Browse the repository at this point in the history
  • Loading branch information
proddy committed Oct 31, 2024
1 parent fbb6f0c commit 374b7f2
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 75 deletions.
3 changes: 3 additions & 0 deletions docs/About.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,6 @@ How it all started.
- August 2023 - Version 3.6.0 - Sensors in it's own tab and able to browse all entities from the list. Added Scheduler and Custom Entity editor, plus Italian and Turkish.

![3.6.0](_media/screenshot/version360.png)

- March 2024 - Version 3.6.5 - More supported devices, custom entities and variables, added Slovak language
- October 2024 - Version 3.7.0 - More of everything. Web UI refreshed with a Dashboard. Added Modbus support. Added Scheduler conditions and functions.
90 changes: 45 additions & 45 deletions docs/Configuring.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,46 @@
## Setting up for the first time
## First time setup

After uploading the firmware for the first time, it will use with the default settings and start an WiFi Access Point called `ems-esp`. Connect to this using the default WPA password `ems-esp-neo`. When prompted with a login screen (called a captive portal) sign-in with username `admin` and password `admin`.
The default 'factory' configuration will start an WiFi Access Point called `ems-esp`. Connect to this using the WPA password `ems-esp-neo`. When prompted with a login screen (captive portal) sign-in with the username `admin` and password `admin`. These can be modified later. If you have an Ethernet board then you can connect directly to it's IP address or via <http://ems-esp> or <http://ems-esp.local>.

Now you're ready to further configure the settings. The recommended first step is to connect to your home network and this can be configured through the Network menu option on the web page, or directly using a Telnet Command Line interface (CLI). If you haven't adjusted the hostname you can reach the web UI via <http://ems-esp> or <http://ems-esp.local>.

Next are the board settings and some other MQTT tweaking which you can read below.
Now you're ready to further configure the settings. If not connected to your WiFi network, do this first from the Settings->Network page. You can also do this via the the Console when connected to a Serial/USB port and using the commands `set wifi ssid` and `set wifi password`.

If you're seeing warnings that it failed to connect to the EMS bus, or there are Tx or Rx errors then follow the [troubleshooting](Troubleshooting) guide.

!!! note "If Rx incomplete telegrams are reported in the log, don't panic. Some telegrams can be missed and this is usually caused by noise interference on the line."

This next section describes some of key settings that can be adjusted via the WebUI, found under the Settings section. Most are self-explanatory so only the important ones are described here.

## Application Settings

This next section describes some of key application settings that can be configured via the WebUI, found under the Settings menu.
### Services

- **Bypass Access Token authorization on API calls**. For RESTful write commands via HTTP POST the access token is required. This is for security reasons to prevent anyone changing device settings. Setting this flag makes the API open. Not recommended!
- **Enable Telnet Console**. This is on by default and allows users to connect to the in-secure Telnet server on port 23.
- **Enable Syslog**:
<!-- prettier-ignore -->
- **IP** is the IP address of a syslog server for capturing remote logs. Leave blank is not using SysLog.
- **Port** if using an alternate port number. The default is 514. And it uses UDP (not TCP).
- **Log Level** sets the maximum log level for reported messages. The highest level is DEBUG which will send a lot of log data so use with caution.
- **Mark Interval** will send out a special `mark` message to the SysLog. This is useful for timing events.

### Sensors

### Board Profile
- **Enable Analog Sensors**. This enables any GPIO to collect signals, whether it's a digital I/O, a pulse counter or ADC measuring mv.
- **Enable 1-Wire Parasite-Power**. Select this option when using (Dallas) temperature sensors with parasitic power.

### Formatting Options

- **Language**. This sets the language to be used for the EMS Device Entity names, as shown in the WebUI Devices Dashboard and also for MQTT Discovery. The default is English. When using Home Assistant, and switching the language you may need to remove the previous EMS-ESP MQTT entries (from HA's Settings->Devices & Services->MQTT) and restart EMS-ESP just to be sure.
- **Boolean Format Dashboard**. This is how boolean values are displayed in the WebUI and MQTT payloads.
- **Boolean Format API/MQTT**. This is how boolean values are written in the MQTT payloads and API JSON output.
- **Enum Format API/MQTT**. This is how list values are presented in the MQTT payloads and API JSON, either by it's value or the index position within the list. Not if using Home Assitant you will not see the values but integer numbers for some entities, e.g. instead of `off, hot, cold` it will display `0, 1, 2`.
- **Convert temperature values to Fahrenheit**. For our US friends.
- **Log EMS telegrams in hexadecimal** will write the telegrams in raw format as hexadecimal values everywhere.

### Hardware Settings

- **Board Profile**. If you have your own ESP32 development board you can choose from a pre-configured board (which is already set on a BBQKees Gateway) or select `Custom` to view and change the hardware settings:

- If you have your own ESP32 development board you can choose from a pre-configured board (which is already set on a BBQKees Gateway) or select `Custom` to view and change the hardware settings:
- **Rx GPIO** - Which GPIO pin the Rx is assigned to. By default this is GPIO 23 but it can be almost any free pin. Connect this GPIO pin to the RX port on the EMS interface board.
- **Tx GPIO** - Which GPIO pin the Tx is assigned to. By default this is GPIO 5 but it can be almost any free pin. Connect this GPIO pin to the TX port on the EMS interface board.
- **Button GPIO**. Set a pin with pull-up. The button is used for different functions, such as holding for 10 seconds to reset to factory settings.
Expand All @@ -26,49 +50,25 @@ This next section describes some of key application settings that can be configu

!!! note "On ESP32 development boards there are often also pins marked RX and TX. However, these are usually connected to the USB chip and cannot be used for the EMS interface circuit."

### EMS Bus

- **Tx Mode**. Tx Mode is the mode in which EMS-ESP sends telegrams on the EMS bus. Choose the mode that works best for your system and watch for Tx errors in the Web Dashboard and `show ems` in the Console. Changing the value has immediate effect.
- **EMS Tx Mode**. Tx Mode is the mode in which EMS-ESP sends telegrams on the EMS bus. Choose the mode that works best for your system and watch for Tx errors in the Web Dashboard and `show ems` in the Console. Changing the value has immediate effect.
- `EMS` is the default for EMS1.0 systems but also compatible with most other bus protocols.
- `EMS+` is designed to work better for EMS2.0/EMS+ systems.
- `HT3` for Heatronics3 used primarily by Junkers.
- `Hardware` uses the internal ESP's hardware to send out the telegram. Telegrams are sent immediately. It is the fastest and most efficient method but works only on some systems.
- **Bus ID**. The EMS-ESP can simulate multiple devices. Stick to the `Service Key (0x0B)` unless using more than one EMS gateways/interface board.

### General Options

- **Language**. This sets the language to be used for the EMS Device Entity names, as shown in the WebUI Devices Dashboard and also for MQTT Discovery. The default is English. When using Home Assistant, and switching the language you may need to remove the previous EMS-ESP MQTT entries (from HA's Settings->Devices & Services->MQTT) and restart EMS-ESP just to be sure.
- **Hide LED**. Turns off the LED when in normal operating mode. The LED is still shown when booting or when there are connection issues.
- **Enable Telnet Console**. This is on by default and allows users to connect to the in-secure Telnet server on port 23.
- **Enable Analog Sensors**. This enables any GPIO to collect signals, whether it's a digital I/O, a pulse counter or ADC measuring mv.
- **Convert temperature values to Fahrenheit**. For our US friends.
- **Bypass Access Token authorization on API calls**. For RESTful write commands via HTTP POST the access token is required. This is for security reasons to prevent anyone changing device settings. Setting this flag makes the API open. Not recommended!
- **EMS Bus ID**. The EMS-ESP can simulate multiple devices. Stick to the `Service Key (0x0B)` unless using more than one EMS gateways/interface board.
- **Enable Read only mode**. This disables any outgoing Tx write commands to the EMS bus, essentially putting EMS-ESP into listening mode. However Tx is needed to detect EMS devices (as it sends out a Version command). If you want to explicitly put EMS-ESP into a read-only/sniffer mode use `set tx_mode 0` from the console.
- **Hide LED**. Turns off the LED when in normal operating mode. The LED is still shown when booting or when there are connection issues.
- **Underclock CPU speed**. Under-clocks the ESP to 160Mhz, saving on power, heat and prolonging the lifespan of the chip at the cost of performance and response time. A reboot of EMS-ESP is required.
- **Enable Shower Timer**. Enable to time how long the hot water runs for and it will send out an MQTT message with the duration. The timer starts after a minimal of 2 minutes running time.
- **Enable Shower Alert**. This is somewhat experimental and may not work on all boilers. After 7 minutes (configurable) running the hot water it will send out a warning by sending cold water for 10 seconds (also configurable). The boiler goes into test mode to perform this operation so use with caution!

### Formatting Options

- **Boolean Format Dashboard**. This is how boolean values are displayed in the WebUI and MQTT payloads.
- **Boolean Format API/MQTT**. This is how boolean values are written in the MQTT payloads and API JSON output.
- **Enum Format API/MQTT**. This is how list values are presented in the MQTT payloads and API JSON, either by it's value or the index position within the list. Not if using Home Assitant you will not see the values but integer numbers for some entities, e.g. instead of `off, hot, cold` it will display `0, 1, 2`.

### Temperature Sensors

- **Enable parasite power**. Select this option when using (Dallas) temperature sensors with parasitic power.

### Logging to Syslog
### Special Functions

- **Log EMS telegrams in hexadecimal** will write the telegrams in raw format as hexadecimal values everywhere.
- **Enable Syslog**:
<!-- prettier-ignore -->
- **IP** is the IP address of a syslog server for capturing remote logs. Leave blank is not using SysLog.
- **Port** if using an alternate port number. The default is 514. And it uses UDP (not TCP).
- **Log Level** sets the maximum log level for reported messages. The highest level is DEBUG which will send a lot of log data so use with caution.
- **Mark Interval** will send out a special `mark` message to the SysLog. This is useful for timing events.
- **Developer Mode** will enable advanced features in the WebUI, like the Read command from the System Log.
- **Start boiler with forced heating off**. TBD.
- **Disabled remote on missing room termperature**. TBD.
- **Enable Shower Timer**. Enable to time how long the hot water runs for and it will send out an MQTT message with the duration. The timer starts after a minimal of 2 minutes running time.
- **Enable Shower Alert**. This is somewhat experimental and may not work on all boilers. After 7 minutes (configurable) running the hot water it will send out a warning by sending cold water for 10 seconds (also configurable). The boiler goes into test mode to perform this operation so use with caution!

## Setting up the Network
## Network Setup

The Network page allows you to connect EMS-ESP to your home network. You can choose between WiFi and Ethernet if the hardware board support this. Note WiFi must be 2.4GHz/WPA2. It will not connect to a 5GHz WifFi access point.

Expand All @@ -78,7 +78,7 @@ CORS, when enabled adds new HTTP headers to each Web request to allow the Web AP

Enable this function when running in VPNs or you have other servers (like Grafana) running on other domains that are making calls to EMS-ESP's API.

## Setting up MQTT
## MQTT Setup

Most are self-explanatory and the settings that are specific to EMS-ESP are:

Expand Down Expand Up @@ -112,7 +112,7 @@ Each user has an unique Access Token (viewable by clicking on the key icon) whic

External sensors, like temperature and analog sensors can be attached to a range of GPIO pins on the ESP32 chip. If using a BBQKees Gateway board it already has an external plug for Dallas temperature sensors which will be visible in the WebUI without any additional configuration.

To add analog sensors click on `Add Analog Sensor` and choose between a normal Digital in/out, a Counter (counting on/off pulses), ADC for measuring voltages, Timer, Rate and PWM 0-2. Note, the counter value is persisted and and not reset on reboot.
To add analog sensors click on `Add` and choose between a normal Digital in/out, a Counter (counting on/off pulses), ADC for measuring voltages, Timer, Rate and PWM 0-2. Note, the counter value is persisted and and not reset on reboot.

![Web](_media/screenshot/web_sensor.png)

Expand Down Expand Up @@ -149,7 +149,7 @@ The professional way is to use a separate relay board with opto-isolation and a

## Customizing Entities

The Customization page shows all registered entities and allows to exclude commands and values from publishing via mqtt/api or remove them from dashboard. The dashboard only shows entities with values, the customization page shows all. If an entity has no value then it is supported by EMS-ESP, but not by your boiler/thermostat/etc.
The Customization page shows all registered entities and allows to exclude commands and values from publishing via MQTT/API or remove them from WebUI pages. The Devices and Dashboard only show entities with value while the Customization module will show all of them. If an entity has no value then it is supported by EMS-ESP, but not by your boiler/thermostat/etc and will not be published or visible to any integrations like Home Assistant.

![Web](_media/screenshot/web_customizations.png)

Expand Down
25 changes: 8 additions & 17 deletions docs/Console.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,43 @@
EMS-ESP has a telnet server that enables clients to connect using a telnet client such as [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) or natively via the OS like this example with [Windows](https://www.technipages.com/windows-10-enable-telnet). The port is 23.

You can also access the console via a USB Serial port, using baud 115200.
You can also access the console via a USB Serial port, using baud 115200. You will need to press CTRL-D to open the Serial console.

The console will give you more insight into the EMS bus traffic, MQTT queues and the full device information its capturing. It behaves similar to a Unix/Linux shell. Some of the most common commands are:

- `help` or `F1` lists the commands and keywords. This works in each context.
- `exit` will exit the console or exit the current context. `CTRL-D` does the same.
- `CTRL-U` for Undo
- `CTRL-U` for Undo or clearing the line.
- `<TAB>` for auto-complete
- `system` to enter the system menu. Use `exit` or CTRL-D to return.
- `su` will switch to the "super user" or admin mode. The default password is `ems-esp-neo` and can be changed with `passwd` from the system menu or via the Web interface (called secret password). When in su mode the command prompt switches from `$` to `#`.
- Some settings can be changed in the console. The `set` command will list them.
- The default timeout for telnet is 10 minutes, if you want to change it use `set timeout <min>`, `0` disables timeout.
- `show` or `F2` shows the data specific to the which context you're in. From the root it will show you all the EMS device information and any external Dallas temperature sensors.
- `show commands` or `call` will list all the commands which can called with the `call` command. See [Commands](Commands).
- `log` sets the logging level. `log off` disables logging. Use `log debug` for debugging commands and actions, `log all` includes the telegrams like `watch on`. This will be reset next time the console is opened.
- `watch` will output the incoming Rx telegrams directly to the console. You can also put on a watch on a specific EMS device ID or telegram ID or unknown (new) telegrams. Also choose to output as verbose text as raw data bytes.

## Console Commands

The full list of console commands are shown below:
Typing `help` will list the available commands. Some admin commands are only active after first a `su` command is entered.

```yaml
exit
help
log [level]
show system
show users
show devices
show ems
show values
show mqtt
show commands
test [name] [data]
show [system | users | devices | log | ems | values | mqtt | commands
su
passwd
restart
restart [partitionname]
wifi reconnect
format
set wifi password
set hostname <name>
set wifi ssid <name>
set board_profile <name>
set bus_id <device ID>
set bus_id <deviceID>
set tx_mode <n>
set
set service <ap | mqtt | ntp> <enable | disable>
scan [deep]
read <device ID> <type ID> [offset] [length]
read <deviceID> <type ID> [offset] [length]
watch [off | on | raw | unknown] [ID]
call [device] [cmd] [data] [id|hc]
```
Expand Down
8 changes: 3 additions & 5 deletions docs/Getting-Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,13 @@ EMS-ESP also requires a separate circuit to read and write to the EMS bus. You c

## Uploading the firmware

The firmware is a single binary `.bin` file. First decide whether you want to take the [current stable version](https://github.com/emsesp/EMS-ESP32/releases/latest) or risk it and take the [latest development version](https://github.com/emsesp/EMS-ESP32/releases/tag/latest) to have the latest features and of course any possible issues.
Go to [download.emsesp.org](https://download.emsesp.org) to get the latest firmware to match your hardware. There are multiple methods to install the firmware on your ESP32 board.

Go to [download.emsesp.org](https://download.emsesp.org) to get the latest firmware to match your hardware.

!!! warning "Pay attention to the [Change Log](Version-Release-History) before upgrading for any breaking changes"
!!! warning "Pay attention to the [Change Log](Version-Release-History) before upgrading so you are aware of any breaking changes"

### Upgrading to a new major release

If you are upgrading from a previous release it's recommended you make a backup copy of any settings and configurations before performing the installation.
If you are upgrading from a previous release it's recommended you make a backup copy of any settings and configurations before performing the installation. This can be done from the WebUI Settings page 'Download/Upload'.

## What the onboard LED is telling you

Expand Down
Binary file modified docs/_media/screenshot/ha_device.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/screenshot/scheduler_a.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/screenshot/scheduler_b.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/screenshot/web_scheduler.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/screenshot/web_sensors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/_media/screenshot/web_users.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ See a [live demo](https://demo.emsesp.org) at `https://demo.emsesp.org`. Select

## Installing

Head over to the [Getting Started](Getting-Started) guide to see what hardware you need and how to install the firmware.
Head over to the [Getting Started](Getting-Started) section to see what hardware you need and how to install the firmware software.

## Support

Expand Down
2 changes: 1 addition & 1 deletion docs/tips-and-tricks.md
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ I haven't tried out all options yet, but here are a few comments:

Next was changing the string with automations.

For the time being, I am going with fixed times: A heating period during the night when we have low tariff and then another around noon where I might have some excess PV power. I can later tinker around with hooking it to actuall PV production. I am just changing the first bit which is to invert the always off input "Eingang invertiert" (invert input) as suggested. The second bit is "EVU-Sperrzeit 1".
For the time being, I am going with fixed times: A heating period during the night when we have low tariff and then another around noon where I might have some excess PV power. I can later tinker around with hooking it to actual PV production. I am just changing the first bit which is to invert the always off input "Eingang invertiert" (invert input) as suggested. The second bit is "EVU-Sperrzeit 1".

```yaml
automation heating:
Expand Down
Loading

0 comments on commit 374b7f2

Please sign in to comment.