console snapshot

This commit is contained in:
proddy
2020-08-30 16:07:43 +02:00
parent a711c37a42
commit c8d427dfaf
2 changed files with 45 additions and 38 deletions

View File

@@ -13,51 +13,42 @@
EMS-ESP is a open-source system built for the Espressif ESP8266 microcontroller to communicate with **EMS** (Energy Management System) based boilers, thermostats and other modules from manufacturers like Bosch, Buderus, Nefit, Junkers and Sieger. EMS-ESP is a open-source system built for the Espressif ESP8266 microcontroller to communicate with **EMS** (Energy Management System) based boilers, thermostats and other modules from manufacturers like Bosch, Buderus, Nefit, Junkers and Sieger.
## **New Features in v2** ## **New Features in version 2**
- Supports both ESP8266 and ESP32 - Supports both ESP8266 and ESP32
- New MQTT option to support Home Assistant MQTT Discovery (https://www.home-assistant.io/docs/mqtt/discovery/)
- Tighter security in Web and Console
- New secure web interface (based on React/TypeScript) - New secure web interface (based on React/TypeScript)
- Can be run on WiFi on as a Stand alone Access Point - New Console (via Serial or Telnet)
- Secure interfaces in both Web UI and the Console
- Support for Home Assistant MQTT Discovery (https://www.home-assistant.io/docs/mqtt/discovery/)
- Can be run standalone (as an Access Point) or on a WiFi network
- Easier first-time configuration via a web Captive Portal - Easier first-time configuration via a web Captive Portal
- Supporting over 70 EMS devices - Supporting over 70 EMS devices (boilers, thermostats, solar modules, mixing modules, heat pumps, gateways)
## **Screenshots**
<img src="media/web_settings.PNG" width=70% height=70%> | | |
<img src="media/web_status.PNG" width=70% height=70%> | --- | --- |
<img src="media/web_devices.PNG" width=70% height=70%> | <img src="media/web_settings.PNG"> | <img src="media/web_status.PNG"> |
<img src="media/web_mqtt.PNG" width=70% height=70%> | <img src="media/web_devices.PNG"> | <img src="media/web_mqtt.PNG"> |
<img src="media/console.PNG" width=100% height=100%>
- A new console. As in version 1.9 it works with both Serial and Telnet but now with a more intuitive Linux shell like behavior. It supports multiple connections and has basic security to prevent any changes to EMS-ESP. A full list of commands is below, here are the key ones:
* `help` 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
* `TAB` for auto-complete
* Some specific commands are behind contexts. Think of this as a sub-menu. e.g. `system`, `thermostat`. The path will always show you which context you are in. `$` is the root.
* `su` will switch to super-user or Admin. The default password is "ems-esp-neo" and can be changed with `passwd` from the system menu or via the Web UI (called secret password). When in Admin mode the command prompt switches from `$` to `#`.
* Some settings can be changed in the console. The `set` command will list them.
* `show` 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 temperature sensors. From a context it will be more specific to that context, e.g. `show mqtt` from `system` will list MQTT subscriptions and show the status and queue.
* `log` sets the logging level. `log off` disables logging. Use `log debug` for debugging commands and actions. 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. Also choose to output as verbose text or raw data bytes. these in its 'raw' data format and also watch a particular ID.
## **Migrating from version 1.9** ## **Migrating from version 1.9**
EMS-ESP will attempt to automatically migrate the 1.9 settings. EMS-ESP will attempt to automatically migrate the 1.9 settings.
Note there are some noticeable different to be aware of in version 2: Note there are some noticeable differences to be aware of in version 2:
- MQTT base has been removed - MQTT base has been removed. All MQTT topics are prefixed now with only the hostname.
- There is no "serial mode" anymore like with version 1.9. When the Wifi cannot connect to the SSID it will automatically enter a "safe" mode where the Serial console is automatically activated (note Serial is always available on the ESP32 because it has multiple UARTs). The EMS-ESP will blink fast when in Serial mode. Connect via a USB with baud 115200 to see the serial console. Note in this mode the EMS will be disconnect so there will be no incoming traffic. Use only for debugging or changing settings. - There is no "serial mode" anymore like with version 1.9. When the Wifi cannot connect to the SSID it will automatically enter a "safe" mode where the Serial console is automatically activated (note Serial is always available on the ESP32 because it has multiple UARTs). The EMS-ESP will blink fast when in Serial mode. Connect via a USB with baud 115200 to see the serial console. Note in this mode the EMS will be disconnect so there will be no incoming traffic. Use only for debugging or changing settings.
## **Uploading the firmware** ## **Uploading the firmware**
### *Using PlatformIO*: ### *Using PlatformIO*:
- create a new file called `pio_local.ini` and add - create a new file called `pio_local.ini` and add these two lines
```yaml ```yaml
upload_protocol = esptool upload_protocol = esptool
upload_port = <COM> upload_port = <COM>
``` ```
replacing <COM> with the port for example on Windows `COM4`, or Linux/OSX `/dev/cu.wchusbserial1410` replacing `<COM>` with the port, for example on Windows `COM4` or Linux/OSX `/dev/cu.wchusbserial1410`
- execute the command `pio run -t upload` - execute the command `pio run -t upload`
### *Not using PlatformIO*: ### *Not using PlatformIO*:
@@ -81,15 +72,29 @@ Here we'll use the command-line. You'll need:
- If Rx incomplete telegrams are reported in the Web UI, don't panic. Some telegrams can be missed and this is usually caused by noise interference on the line. - If Rx incomplete telegrams are reported in the Web UI, don't panic. Some telegrams can be missed and this is usually caused by noise interference on the line.
## **Using the Console** ## **Using the Console**
Connecting to the console will give you more insight into the EMS bus traffic, MQTT queues and the actual device information. The console is reachable via Telnet (port 22) or via the Serial port if using an USB (on baud 115200). To change any settings in the console you must be admin (use `su` with the default password `ems-esp-neo`). On an ESP8266 the Serial port is disabled by default unless it's unable to connect to the WiFi. Connecting to the console will give you more insight into the EMS bus traffic, MQTT queues and the actual device information.
The `call` command is to execute a command. The command names (`[cmd]`) are the same as the MQTT command listed in the next section. The console is reachable via Telnet (port 22) or via the Serial port if using an USB (on baud 115200). To change any settings in the console you must be admin (use `su` with the default password `ems-esp-neo`). On an ESP8266 the Serial port is disabled by default unless it's unable to connect to the WiFi.
A full list of commands is below. Here are the key ones:
* `help` 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
* `<TAB>` for auto-complete
* Some specific commands are behind contexts. Think of this as a sub-menu. e.g. `system`, `thermostat`. The path will always show you which context you are in. `$` is the root.
* `su` will switch to super-user or Admin. The default password is `ems-esp-neo` and can be changed with `passwd` from the system menu or via the Web UI (called secret password). When in Admin mode the command prompt switches from `$` to `#`.
* Some settings can be changed in the console. The `set` command will list them.
* `show` 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 temperature sensors. From a context it will be more specific to that context, e.g. `show mqtt` from `system` will list MQTT subscriptions and show the status and queue.
* `log` sets the logging level. `log off` disables logging. Use `log debug` for debugging commands and actions. 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. Also choose to output as verbose text or raw data bytes. these in its 'raw' data format and also watch a particular ID.
(* = available in su/Admin mode) The `call` command is to execute a command. The command names (`[cmd]`) are the same as the MQTT command listed in the MQTT section.
``` ```
(* = available in su/Admin mode)
common commands available in all contexts: common commands available in all contexts:
exit exit
help help
@@ -141,14 +146,12 @@ thermostat
---------- ----------
## **MQTT commands** ## **MQTT commands**
Breaking change: The MQTT base has been removed in version 2. The hostname is only used as prefixed to the topic, e.g. `ems-esp/status`.
All commands must be written as `{"cmd":<cmd> ,"data":<data>, "id":<n>}`. All commands must be written as `{"cmd":<cmd> ,"data":<data>, "id":<n>}`.
The `id` can be replaced with `hc` for some devices and represented as a string or a number. `cmd` is a string, `data` can be a string or number. The `id` can be replaced with `hc` for some devices that use heating circuits, and represented either as a string or a number. `cmd` is a string, `data` can be a string or number.
topic = *boiler_cmd*
``` ```
*boiler_cmd*
comfort <hot, eco, intelligent> comfort <hot, eco, intelligent>
flowtemp <degrees> flowtemp <degrees>
wwtemp <degrees> wwtemp <degrees>
@@ -158,8 +161,10 @@ The `id` can be replaced with `hc` for some devices and represented as a string
burnminpower <%> burnminpower <%>
burnmaxpower <%> burnmaxpower <%>
pumpdelay <minutes> pumpdelay <minutes>
```
*thermostat_cmd* topic = *thermostat_cmd*
```
--- without hc --- --- without hc ---
wwmode <off | on | auto> wwmode <off | on | auto>
calinttemp <degrees> calinttemp <degrees>
@@ -167,7 +172,8 @@ The `id` can be replaced with `hc` for some devices and represented as a string
building <light | medium | heavy> building <light | medium | heavy>
language <n> (0=de, 1=nl, 2=fr, 3=it) only RC30 language <n> (0=de, 1=nl, 2=fr, 3=it) only RC30
display <n> (0=int temp, 1= int set, 2=ext. temp, 3=burner, 4=ww, 5=mode, 6=time, 7=date, 8=smoke) only RC30 display <n> (0=int temp, 1= int set, 2=ext. temp, 3=burner, 4=ww, 5=mode, 6=time, 7=date, 8=smoke) only RC30
clockoffset <seconds> (only RC30) clockoffset <seconds> (only RC30)
--- with hc --- --- with hc ---
mode <auto | night | day | nofrost | heat | eco> mode <auto | night | day | nofrost | heat | eco>
temp <degrees> temp <degrees>
@@ -186,9 +192,10 @@ The `id` can be replaced with `hc` for some devices and represented as a string
party <hours> party <hours>
holiday <dd.mm.yyyy-dd.mm.yyyy> holiday <dd.mm.yyyy-dd.mm.yyyy>
date <NTP | hh:mm:ss-dd.mm.yyyy-dw-dst> date <NTP | hh:mm:ss-dd.mm.yyyy-dw-dst>
```
*system_cmd* topic = *system_cmd*
```
send <"0B XX XX .."> send <"0B XX XX ..">
pin <gpio> <on|off|1|0|true|false> pin <gpio> <on|off|1|0|true|false>
``` ```

BIN
media/console.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 KiB