mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
moved out doc, referencing BBQKees' wiki
This commit is contained in:
138
README.md
138
README.md
@@ -1,6 +1,6 @@
|
|||||||
# 
|
# 
|
||||||
|
|
||||||
EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with **EMS** (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.
|
**EMS-ESP** is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with **EMS** (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.
|
||||||
|
|
||||||
[](https://github.com/proddy/EMS-ESP/blob/master/CHANGELOG.md)
|
[](https://github.com/proddy/EMS-ESP/blob/master/CHANGELOG.md)
|
||||||
[](https://github.com/proddy/EMS-ESP/commits/master)
|
[](https://github.com/proddy/EMS-ESP/commits/master)
|
||||||
@@ -44,17 +44,24 @@ Note, EMS-ESP requires a small hardware circuit that can convert the EMS bus dat
|
|||||||
| <img src="media/web_devices.PNG"> | <img src="media/web_mqtt.PNG"> |
|
| <img src="media/web_devices.PNG"> | <img src="media/web_mqtt.PNG"> |
|
||||||
<img src="media/console.PNG" width=100% height=100%>
|
<img src="media/console.PNG" width=100% height=100%>
|
||||||
|
|
||||||
## **Migrating from previous versions**
|
## **Migrating from versions 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 differences 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. All MQTT topics are prefixed with only the hostname, for example `ems-esp/status` as opposed to `home/ems-esp/status`.
|
### MQTT:
|
||||||
|
- MQTT base has been removed. All MQTT topics are prefixed with only the hostname, for example `ems-esp/status` as opposed to `home/ems-esp/status`.
|
||||||
|
- `heatPmp` renamed to `heatPump`
|
||||||
|
- `ServiceCodeNumber` renamed to `serviceCodeNumber`
|
||||||
|
- Firmware version has been moved to the `start` topic
|
||||||
|
- `desinfection` renamed to `disinfection`
|
||||||
|
|
||||||
|
### General:
|
||||||
- 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 activated (note Serial is always available on the ESP32 because it has multiple UARTs). The EMS-ESP's LED will blink fast when in Serial mode. When this happens connect via a USB using baud 115200.
|
- 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 activated (note Serial is always available on the ESP32 because it has multiple UARTs). The EMS-ESP's LED will blink fast when in Serial mode. When this happens connect via a USB using baud 115200.
|
||||||
|
|
||||||
If you run into issues try first erasing the ESP8266 with `esptool.py erase_flash` and uploading the new firmware manually. BBQKees has a good write-up at https://bbqkees-electronics.nl/wiki/gateway/firmware-update-to-v2.html.
|
If you run into issues try first erasing the ESP8266 with `esptool.py erase_flash` and uploading the new firmware manually. BBQKees has a good write-up at https://bbqkees-electronics.nl/wiki/gateway/firmware-update-to-v2.html.
|
||||||
|
|
||||||
## **Building the firmware with PlatformIO**
|
## **Building the firmware using PlatformIO**
|
||||||
|
|
||||||
1. Install [PlatformIO](https://platformio.org/install) and [NodeJS](https://nodejs.org/en/).
|
1. Install [PlatformIO](https://platformio.org/install) and [NodeJS](https://nodejs.org/en/).
|
||||||
2. Decide how you want to upload the firmware, via USB or OTA (Over The Air). OTA requires that a version of EMS-ESP is already running.
|
2. Decide how you want to upload the firmware, via USB or OTA (Over The Air). OTA requires that a version of EMS-ESP is already running.
|
||||||
@@ -90,7 +97,7 @@ and for OTA:
|
|||||||
|
|
||||||
`espota.py --debug --progress --port 8266 --auth ems-esp-neo -i <IP address> -f <firmware.bin>`
|
`espota.py --debug --progress --port 8266 --auth ems-esp-neo -i <IP address> -f <firmware.bin>`
|
||||||
|
|
||||||
## **Setting EMS-ESP up for the first time**
|
## **Configuring EMS-ESP for the first time**
|
||||||
|
|
||||||
- After powering up the ESP, watch the onboard blue LED. A solid light means good connection and EMS data is coming in. A slow pulse means either the WiFi or the EMS bus is not connected yet. A very fast pulse is when the system is booting up and configuring itself which typically takes 5 seconds.
|
- After powering up the ESP, watch the onboard blue LED. A solid light means good connection and EMS data is coming in. A slow pulse means either the WiFi or the EMS bus is not connected yet. A very fast pulse is when the system is booting up and configuring itself which typically takes 5 seconds.
|
||||||
|
|
||||||
@@ -118,116 +125,11 @@ Some of the most common commands are:
|
|||||||
* `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.
|
* `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 as raw data bytes.
|
* `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 as raw data bytes.
|
||||||
|
|
||||||
The `call` command is to execute a command. The command names (`[cmd]`) are the same as the MQTT commands listed in the MQTT section.
|
The `call` command is to execute a command. The command names (`[cmd]`) are the same as the MQTT commands used in MQTT.
|
||||||
|
|
||||||
```
|
For further details refer to the [Wiki](https://bbqkees-electronics.nl/wiki/).
|
||||||
(* = available in su/Admin mode)
|
|
||||||
|
|
||||||
common commands available in all contexts:
|
## **Support Information**
|
||||||
exit
|
|
||||||
help
|
|
||||||
log [level]
|
|
||||||
watch <on | off | raw> [ID]
|
|
||||||
su
|
|
||||||
|
|
||||||
(from the root)
|
|
||||||
system (enters a context)
|
|
||||||
boiler (enters a context)
|
|
||||||
thermostat (enters a context)
|
|
||||||
set
|
|
||||||
fetch
|
|
||||||
scan devices [deep] *
|
|
||||||
send telegram <"XX XX ..."> *
|
|
||||||
set bus_id <device ID> *
|
|
||||||
set tx_mode <n> *
|
|
||||||
show
|
|
||||||
show devices
|
|
||||||
show ems
|
|
||||||
show values
|
|
||||||
show mqtt
|
|
||||||
|
|
||||||
system
|
|
||||||
set
|
|
||||||
show
|
|
||||||
format *
|
|
||||||
show users *
|
|
||||||
passwd *
|
|
||||||
restart *
|
|
||||||
set wifi hostname <name> *
|
|
||||||
set wifi password *
|
|
||||||
set wifi ssid <name> *
|
|
||||||
wifi reconnect *
|
|
||||||
pin <gpio> [data] *
|
|
||||||
|
|
||||||
boiler
|
|
||||||
read <type ID> *
|
|
||||||
call [cmd] [data] *
|
|
||||||
|
|
||||||
thermostat
|
|
||||||
set
|
|
||||||
set master [device ID] *
|
|
||||||
read <type ID> *
|
|
||||||
call [cmd] [data] [heating circuit] *
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## **MQTT commands**
|
|
||||||
|
|
||||||
All commands must be written as `{"cmd":<cmd> ,"data":<data>, "id":<n>}`.
|
|
||||||
|
|
||||||
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*
|
|
||||||
```
|
|
||||||
comfort <hot, eco, intelligent>
|
|
||||||
flowtemp <degrees>
|
|
||||||
wwtemp <degrees>
|
|
||||||
boilhyston <degrees> (negative value)
|
|
||||||
boilhystoff <degrees> (positive value)
|
|
||||||
burnperiod <minutes>
|
|
||||||
burnminpower <%>
|
|
||||||
burnmaxpower <%>
|
|
||||||
pumpdelay <minutes>
|
|
||||||
```
|
|
||||||
|
|
||||||
topic = *thermostat_cmd*
|
|
||||||
```
|
|
||||||
--- without hc ---
|
|
||||||
wwmode <off | on | auto>
|
|
||||||
calinttemp <degrees>
|
|
||||||
minexttemp <degrees>
|
|
||||||
building <light | medium | heavy>
|
|
||||||
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
|
|
||||||
clockoffset <seconds> (only RC30)
|
|
||||||
|
|
||||||
--- with hc ---
|
|
||||||
mode <auto | night | day | nofrost | heat | eco>
|
|
||||||
temp <degrees>
|
|
||||||
nighttemp <degrees>
|
|
||||||
daytemp <degrees>
|
|
||||||
nofrosttemp <degrees>
|
|
||||||
ecotemp <degrees>
|
|
||||||
heattemp <degrees>
|
|
||||||
summertemp <degrees>
|
|
||||||
designtemp <degrees>
|
|
||||||
offsettemp <degrees>
|
|
||||||
holidaytemp <degrees>
|
|
||||||
remotetemp <degrees>
|
|
||||||
control <0 | 1 | 2>
|
|
||||||
pause <hours>
|
|
||||||
party <hours>
|
|
||||||
holiday <dd.mm.yyyy-dd.mm.yyyy>
|
|
||||||
date <NTP | hh:mm:ss-dd.mm.yyyy-dw-dst>
|
|
||||||
```
|
|
||||||
|
|
||||||
topic = *system_cmd*
|
|
||||||
```
|
|
||||||
send <"0B XX XX ..">
|
|
||||||
pin <gpio> <on|off|1|0|true|false>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Support Information
|
|
||||||
|
|
||||||
For a list of the EMS devices currently supported see BBQKees's [EMS device compatibility list](https://bbqkees-electronics.nl/ems-device-compatibility/).
|
For a list of the EMS devices currently supported see BBQKees's [EMS device compatibility list](https://bbqkees-electronics.nl/ems-device-compatibility/).
|
||||||
|
|
||||||
@@ -235,7 +137,7 @@ If you're looking for support on **EMS-ESP** there are some options available:
|
|||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
* [Documentation Site](https://emsesp.github.io/docs): For information on how to build and upload the firmware
|
* [Documentation Site](https://bbqkees-electronics.nl/wiki/): For information on how to build and upload the firmware maintained by @BBQKees
|
||||||
* [FAQ and Troubleshooting](https://bbqkees-electronics.nl/wiki/gateway/troubleshooting.html): For information on common problems and solutions
|
* [FAQ and Troubleshooting](https://bbqkees-electronics.nl/wiki/gateway/troubleshooting.html): For information on common problems and solutions
|
||||||
|
|
||||||
### Support's Community
|
### Support's Community
|
||||||
@@ -249,14 +151,14 @@ If you're looking for support on **EMS-ESP** there are some options available:
|
|||||||
* [Feature Request](https://github.com/proddy/EMS-ESP/issues/new?template=feature_request.md): For requesting features/functions
|
* [Feature Request](https://github.com/proddy/EMS-ESP/issues/new?template=feature_request.md): For requesting features/functions
|
||||||
* [Troubleshooting](https://github.com/proddy/EMS-ESP/issues/new?template=questions---troubleshooting.md): As a last resort, you can open new *Troubleshooting & Question* issue on GitHub if the solution could not be found using the other channels. Just remember: the more info you provide the more chances you'll have to get an accurate answer
|
* [Troubleshooting](https://github.com/proddy/EMS-ESP/issues/new?template=questions---troubleshooting.md): As a last resort, you can open new *Troubleshooting & Question* issue on GitHub if the solution could not be found using the other channels. Just remember: the more info you provide the more chances you'll have to get an accurate answer
|
||||||
|
|
||||||
## Contribute
|
## **Contribute**
|
||||||
|
|
||||||
You can contribute to EMS-ESP by
|
You can contribute to EMS-ESP by
|
||||||
- providing Pull Requests (Features, Fixes, suggestions)
|
- providing Pull Requests (Features, Fixes, suggestions)
|
||||||
- testing new released features and report issues on your EMS equipment
|
- testing new released features and report issues on your EMS equipment
|
||||||
- contributing missing [documentation](https://emsesp.github.io/docs) for features and devices
|
- contributing missing [documentation](https://bbqkees-electronics.nl/wiki/) for features and devices
|
||||||
|
|
||||||
## Credits
|
## **Credits**
|
||||||
|
|
||||||
A shout out to the people helping EMS-ESP get to where it is today
|
A shout out to the people helping EMS-ESP get to where it is today
|
||||||
- @MichaelDvP for all his amazing contributions and patience. The core UART code is his.
|
- @MichaelDvP for all his amazing contributions and patience. The core UART code is his.
|
||||||
@@ -264,6 +166,6 @@ A shout out to the people helping EMS-ESP get to where it is today
|
|||||||
- @susisstrolch for writing a first working version of the EMS bridge circuit which I used to design EMS-ESP version 0.1
|
- @susisstrolch for writing a first working version of the EMS bridge circuit which I used to design EMS-ESP version 0.1
|
||||||
- Plus many more providing suggestions, PRs and Donations. Thanks!
|
- Plus many more providing suggestions, PRs and Donations. Thanks!
|
||||||
|
|
||||||
## License
|
## **License**
|
||||||
|
|
||||||
This program is licensed under GPL-3.0
|
This program is licensed under GPL-3.0
|
||||||
|
|||||||
55
doc/MQTT.md
Normal file
55
doc/MQTT.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
## **MQTT commands**
|
||||||
|
|
||||||
|
All commands must be written as `{"cmd":<cmd> ,"data":<data>, "id":<n>}`.
|
||||||
|
|
||||||
|
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*
|
||||||
|
```
|
||||||
|
comfort <hot, eco, intelligent>
|
||||||
|
flowtemp <degrees>
|
||||||
|
wwtemp <degrees>
|
||||||
|
boilhyston <degrees> (negative value)
|
||||||
|
boilhystoff <degrees> (positive value)
|
||||||
|
burnperiod <minutes>
|
||||||
|
burnminpower <%>
|
||||||
|
burnmaxpower <%>
|
||||||
|
pumpdelay <minutes>
|
||||||
|
```
|
||||||
|
|
||||||
|
topic = *thermostat_cmd*
|
||||||
|
```
|
||||||
|
--- without hc ---
|
||||||
|
wwmode <off | on | auto>
|
||||||
|
calinttemp <degrees>
|
||||||
|
minexttemp <degrees>
|
||||||
|
building <light | medium | heavy>
|
||||||
|
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
|
||||||
|
clockoffset <seconds> (only RC30)
|
||||||
|
|
||||||
|
--- with hc ---
|
||||||
|
mode <auto | night | day | nofrost | heat | eco>
|
||||||
|
temp <degrees>
|
||||||
|
nighttemp <degrees>
|
||||||
|
daytemp <degrees>
|
||||||
|
nofrosttemp <degrees>
|
||||||
|
ecotemp <degrees>
|
||||||
|
heattemp <degrees>
|
||||||
|
summertemp <degrees>
|
||||||
|
designtemp <degrees>
|
||||||
|
offsettemp <degrees>
|
||||||
|
holidaytemp <degrees>
|
||||||
|
remotetemp <degrees>
|
||||||
|
control <0 | 1 | 2>
|
||||||
|
pause <hours>
|
||||||
|
party <hours>
|
||||||
|
holiday <dd.mm.yyyy-dd.mm.yyyy>
|
||||||
|
date <NTP | hh:mm:ss-dd.mm.yyyy-dw-dst>
|
||||||
|
```
|
||||||
|
|
||||||
|
topic = *system_cmd*
|
||||||
|
```
|
||||||
|
send <"0B XX XX ..">
|
||||||
|
pin <gpio> <on|off|1|0|true|false>
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user