diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e000000a..df6f20278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,8 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - set boiler warm water temp on Junkers/Bosch HT3 ### Changed - -- improved MQTT publishing to stop flooding +- improved MQTT publishing to stop flooding. `publish_time` must be at least 1 (second) ### Removed - `autodetect scan` diff --git a/README.md b/README.md index 3d58fb72c..ad79ab171 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -![logo](https://github.com/proddy/EMS-ESP/raw/master/doc/ems%20gateway/logo-proddy-fw.jpg) -# EMS-ESP +![logo](docs/_media/logo/EMS-ESP_logo_dark.png) [![version](https://img.shields.io/github/release/proddy/EMS-ESP.svg?label=Latest%20Release)](https://github.com/proddy/EMS-ESP/blob/master/CHANGELOG.md) [![release-date](https://img.shields.io/github/release-date/proddy/EMS-ESP.svg?label=Released)](https://github.com/proddy/EMS-ESP/commits/master) @@ -10,12 +9,14 @@ [![downloads](https://img.shields.io/github/downloads/proddy/EMS-ESP/total.svg)](https://github.com/proddy/EMS-ESP/releases)
[![gitter](https://img.shields.io/gitter/room/EMS-ESP/EMS-ESP.svg)](https://gitter.im/EMS-ESP/community) +
+------------- EMS-ESP is a open-source system to communicate with **EMS** (Energy Management System) based boilers, thermostats and other modules from manufacturers like Bosch, Buderus, Nefit, Junkers and Sieger. The code is written for the Espressif **ESP8266** microcontroller and supports a telnet console for real-time monitoring and configuration and customizable MQTT support for publishing the information to a home automation system such as Home Assistant or Domoticz. -#### Please reference the [Wiki](https://github.com/proddy/EMS-ESP/wiki) for further details and instructions on how to build and configure the firmware. +#### Please reference the [Wiki](https://emsesp.github.io/docs) for further details and instructions on how to build and configure the firmware. --- @@ -23,31 +24,28 @@ The code is written for the Espressif **ESP8266** microcontroller and supports a #### A web interface for easy configuration and real-time monitoring of the EMS bus -| ![web menu](https://github.com/proddy/EMS-ESP/raw/master/doc/web/system_status.PNG) | ![web menu](https://github.com/proddy/EMS-ESP/raw/master/doc/web/ems_dashboard.PNG) | +| ![web menu](docs/_media/web/system_status.PNG) | ![web menu](docs/_media/web/ems_dashboard.PNG) | | -------------------------------------------------------- | ---------------------------------------------------------- | #### MQTT support for Home Assistant and Domoticz -![ha](https://github.com/proddy/EMS-ESP/raw/master/doc/home%20assistant/ha.png) +![ha](docs/_media/home%20assistant/ha.png) #### Telnet for advanced configuration and verbose traffic logging -| ![telnet menu](https://github.com/proddy/EMS-ESP/raw/master/doc/telnet/telnet_menu.jpg) | ![telnet menu](https://github.com/proddy/EMS-ESP/raw/master/doc/telnet/telnet_stats.PNG) | +| ![telnet menu](docs/_media/telnet/telnet_menu.jpg) | ![telnet menu](docs/_media/telnet/telnet_stats.PNG) | | ------------------------------------------------------------ | -------------------------------------------------------- | ## Supported EMS devices -More than **50** EMS devices are currently supported. See the [complete list](https://github.com/proddy/EMS-ESP/wiki/Supported-EMS-Devices) from the [Wiki](https://github.com/proddy/EMS-ESP/wiki). +More than **50** EMS 1.0 and 2.0 devices are currently supported. See the [complete list](https://proddy.github.io/EMS-ESP/#/Supported-EMS-Devices). -## Uploading the firmware -Latest stable firmware build can be found [here](https://github.com/proddy/EMS-ESP/releases/latest). +--- -Follow [these instructions](https://github.com/proddy/EMS-ESP/wiki/Building-and-Uploading-the-Firmware) on how to upload to the ESP8266. +## Native compatibility with bbqkees' **EMS Gateway** -## Compatible with bbqkees' EMS Gateway +All firmware versions fully support BBQKees' [EMS Gateway](https://bbqkees-electronics.nl/) board with integrated Wemos D1 ESP8266. -The firmware fully supports BBQKees' [EMS Gateway](https://shop.hotgoodies.nl/ems/) board with integrated Wemos D1 ESP8266. - -| ![on boiler](https://github.com/proddy/EMS-ESP/raw/master/doc/ems%20gateway/on-boiler.jpg) | ![kit](https://github.com/proddy/EMS-ESP/raw/master/doc/ems%20gateway/ems-kit-2.jpg) | ![basic circuit](https://github.com/proddy/EMS-ESP/raw/master/doc/ems%20gateway/ems-board-white.jpg) | +| ![on boiler](docs/_media/ems%20gateway/on-boiler.jpg) | ![kit](docs/_media/ems%20gateway/ems-kit-2.jpg) | ![basic circuit](docs/_media/ems%20gateway/ems-board-white.jpg) | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | diff --git a/doc/ems gateway/logo-proddy-fw.jpg b/doc/ems gateway/logo-proddy-fw.jpg deleted file mode 100644 index 3f0d7c36f..000000000 Binary files a/doc/ems gateway/logo-proddy-fw.jpg and /dev/null differ diff --git a/doc/ems references/HT3-Bus_Telegramme.html b/doc/ems references/HT3-Bus_Telegramme.html deleted file mode 100644 index 1a019762c..000000000 --- a/doc/ems references/HT3-Bus_Telegramme.html +++ /dev/null @@ -1,7862 +0,0 @@ - - - - - - - - - - - - - - - - - -
-

-

Übersicht

- Telegramm Übersicht
- ID 2
- ID 7
- ID 6
- ID 190
- ID 24
- ID 25
- ID 188
- ID 27
- ID 51
- ID 52
- ID 467...468
- ID 26
- ID 268
- ID 296
- ID 357...366
- ID 367...376
- ID 377...386
- ID 677...684
- ID 259
- ID 260
- ID 866
- ID 868
- ID 873
- ID 874
- ID 910
- ID 913
- ID 357_366_14_Modem
- ID 377_387_4_Modem
- ID 357...366_1x_Modem
- ID 377...386_x_Modem
- -

-
-

Tabelle 1: Telegramm Übersicht

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme







Datum:14.10.2016


Version:0.2.0







Message-IDTelegramm(hex)BeschreibungSource-Werte (hex)Bemerkung



(SO)
2SO TT 02 xySoftware-Version / Busteilnehmer88TT = <Target-/Token-Nr>
7SO 00 07 xySteuerung: EMS Token Status88
6SO 00 06 xyDatum / Zeit90 | 98Mit 14 und 17 Bytes Länge
190TT 00 BE xyErrorCode / DisplayCode von Target
TT = <Target-/Token-Nr>
24SO 00 18 xyHeizgerät: Kesseldaten88Mit 31 und 33 Bytes Länge
25SO 00 19 xyHeizgerät: Heizungsdaten88
188SO 00 BC xyHeizgerät: Hybrid (Wärmepumpe)

27SO 00 1B xySollwert Warmwasser90
51SO 00 33 xyWarmwasser: Daten von Steuerung88
52SO 00 34 xyWarmwasser: Daten von Steuerung | IPM88 | Ax (x:=0...7)Mit 22,23 und 25 Bytes Länge
467...468SO 00 FF xy 00 D3...D4Betriebsart WW-System90
26SO 08 1A xyHeizkreis: Systemwerte90
268SO 00 FF xy 00 0CHeizkreis: von IPM1/IPM2 für MischerAx (x:=0...7)
296SO 00 FF xy 00 28Heizkreis: Fehlermeldungen90
357...366SO 00 FF xy 00 65...6EHeizkreis: Bauart190
367...376SO 00 FF xy 00 6F...78Heizkreis: Temperaturniveau90 | 9x (x:=8...F)
377...386SO 00 FF xy 00 79...82Heizkreis: Bauart290
677...684SO 00 FF xy 01 A5...ACHeizkreis: Systemwerte90 | 98Cxyz-Controller (z.B. CW100)
259SO 00 FF xy 00 03Solar: Solardaten von ISM1B0
260SO 00 FF xy 00 04Solar: Solardaten von ISM2B0Mit 24 und 35 Bytes Länge
866SO 00 FF xy 02 62Solar: Solardaten von MS100B0EMS2-Bus
868SO 00 FF xy 02 64Solar: Solardaten von MS100B0EMS2-Bus
873SO 00 FF xy 02 69Solar: Solardaten von MS100B0EMS2-Bus
874SO 00 FF xy 02 6ASolar: Solardaten von MS100B0EMS2-Bus
910SO 00 FF xy 02 8ESolar: Solardaten von MS100B0EMS2-Bus
913SO 00 FF xy 02 91Solar: Solardaten von MS100B0EMS2-Bus
357_14...366_14SO TA FF 0E 00 65...6EModem-CMD: Betriebsart setzen8D | C8TA = <Target-Nr>
377_4 ...386_4SO TA FF 04 00 79...82Modem-CMD: Betriebsart setzen8D | C8TA = <Target-Nr>
357_17...366_17SO TA FF 11 00 65...6EModem-CMD: Temp-Niveau setzen8D | C8TA = <Target-Nr>
377_7 ...386_7SO TA FF 07 00 79...82Modem-CMD: Temp-Niveau setzen8D | C8TA = <Target-Nr>





1: ( Hi-Byte * 256 + Lo-Byte ) / 10
Calculation-Type: 1
2: ( Byte3 * 65536 + Byte2 * 256 + Byte1 )
Calculation-Type: 2
3: ( Byte4 * 1048576 + Byte3 * 65536 + Byte2 * 256 + Byte1 )
Calculation-Type: 3
4: ( Type 3 ) / 10
Calculation-Type: 4
5: ( Type 3 ) / 1000
Calculation-Type: 5
- -
-

Tabelle 2: ID 2

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme



Message-ID: 2_x_0

ByteWerte (Hex)BemerkungBedeutung / IDBeispiel (Hex)

16Byte




Telegramm: Software-Version / Busteilnehmer

0SO
Source88
1TT<Token-/Target-Nr> (Geräteadr. Ungleich 0)Target18
202
2_x_002
3xy Telegramm-Offset (hier 0...9).
00
4xyErste Erkennung Busteilnehmer2_0_05F


- 00 = Variantenerkennung in Betrieb oder fehlerhaft



…..



- 5F = Heatronic III



- 64 = Schaltmodul IPM1



- 65 = Solarmodul ISM1



- 66 = Schaltmodul IPM2



- 67 = Solarmodul ISM2



- 67 = Solarmodul ISM2



- 69 = Witterungsgeführter Regler FW100



- 6A = Witterungsgeführter Regler FW200



- 6B = Raumtemperaturregler FR100



- 6C = Raumtemperaturregler FR110



- 6D = Fernbedienung FB 10



- 6E = Fernbedienung FB100



- 6F = Raumtemperaturregler FR10



…..



- BD = KM200



- BF = Raumtemperaturregler FR120



- C0 = Witterungsgefuehrter Regler FW120



…..

5xySoftware-Familie2_1_022
6xyVersion der Softwarefamilie2_2_004
7xyZweite Erkennung Busteilnehmern2_3_000
8xyKennzahl f. Grosse Änderung in HW- und SW2_4_000
9xyKennzahl f. Kleine Änderung in HW- und SW2_5_000
10xyDritte Erkennung Busteilnehmern2_6_000
11xyKennzahl f. Kleine Änderung in HW- und SW2_7_000
12xyKennzahl f. Grosse Änderung in HW- und SW2_8_000
13xyMarkenidentifizierung2_9_000


- 00 = keine Markenerkennung



- 01 = Bosch



- 02 = Junkers



- 03 = Buderus



…..

14<CRC>CRC
63
15<Ende>Ende
00
- -
-

Tabelle 3: ID 7

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID: 7_x_y
ByteWerte (Hex)BemerkungBedeutung / ID

21Byte



EMS Token Status
0SO
Source
100
Target
207
7_x_y
3xy Telegramm-Offset (hier 0...14).
4Bit0...Bit7EMS Token Status 8: EMS Master 7_0_0 bis


- EMS Token Status 9 … 157_0_7
5Bit0...Bit7EMS Token Status 16 … 23 7_1_0 bis



7_1_7
6Bit0...Bit7Busadresse 24 vorhanden7_2_0 bis


- EMS Token Status 25 … 31 7_2_7
7Bit0...Bit7Busadresse 32:Mischerstellmotor im HK1 vorhanden7_3_0 bis


- EMS Token Status 33 … 397_3_7
8Bit0...Bit7Busadresse 40:Warmwassersystem im HK1 vorhanden7_4_0 bis


- EMS Token Status 41 … 477_4_7
9Bit0...Bit7Busadresse 48:Solarmodul vorhanden7_5_0 bis


- EMS Token Status 49 … 557_5_7
10Bit0...Bit7Busadresse 56:Fernbedienung f. HK1 vorhanden7_6_0 bis


- EMS Token Status 57 … 637_6_7
11Bit0...Bit7Busadresse 64:Temperaturfühler im HK1 vorhanden7_7_0 bis


- EMS Token Status 65 … 717_7_7
12Bit0...Bit7Status für Busadresse 72...797_8_0 bis



7_8_7
13Bit0...Bit7EMS Token Status 80 … 877_9_0 bis



7_9_7
14Bit0...Bit7EMS Token Status 88 … 957_10_0 bis



7_10_7
15Bit0...Bit7EMS Token Status 96 … 1037_11_0 bis



7_11_7
16Bit0...Bit7EMS Token Status 104 … 1117_12_0 bis



7_12_7
17Bit0...Bit7EMS Token Status 112 … 119 (Cascaded EMS)7_13_0 bis



7_13_7
18Bit0...Bit7EMS Token Status 120 … 127 (Cascaded EMS)7_14_0 bis



7_14_7
19<CRC>CRC
20<Ende>Ende Marker
- -
-

Tabelle 4: ID 6

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme



Message-ID:6_x_y
ByteWerte (Hex)BemerkungBedeutung / ID

14Byte 17Byte




Datum/Zeit – Telegramm
090 | 9890 | 98Source :=90h oder :=98hSource
10000
Target
20606
6_x_y
3xyxy Telegramm-Offset (hier 0...6|10).
4xyxyJahr (Wert + 2000)dez.6_0_0
5xyxyMonat (01 … 12)dez.6_1_0
6xyxyStunden (00 … 23)dez.6_2_0
7xyxyTag (01 … 31)dez.6_3_0
8xyxyMinute (00 … 59)dez.6_4_0
9xyxySekunde (00 … 59)dez.6_5_0
10xyxyWochentag6_6_0



01=Montag; 02=Dienstag;... für Fxyz – Regler



00=Montag; 01=Dienstag;... für Cxyz – Regler
11Bit0...Bit7Bit0...Bit7Uhrstatus

Bit0Bit0- Sommerzeit6_7_0

Bit1Bit1- Funkempfang vorhanden6_7_1

Bit2Bit2- Funksignal vorhanden6_7_2

Bit3...Bit7Bit3...Bit7- Immer 0
12<CRC>xyToken-Adresse des aktuellen RTC-Owner6_8_0
13<Ende>xyAutomatische Sommer/Winter Umschaltung6_9_0
14
xyRTC Benutzer Kalibierungswert6_10_0
15
<CRC>

16
<Ende>

- -
-

Tabelle 5: ID 190

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID: 190_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

11Byte



ErrorCode von Target-/Token
0TTTarget-/Token NummerSource
100- 00 = An AlleTarget
2BE
190_x_0
300Immer 0
4xyBus-Adresse des Fehlercodes190_0_0
5Hi-ByteDisplaycode190_1_0
6Lo-Byte
7Hi-ByteCause Code190_3_0
8Lo-Byte
9<CRC>CRC
10<Ende>Ende Marker
- -
-

Tabelle 6: ID 24

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme



Message-ID:24_x_y
ByteWerte (Hex)BemerkungBedeutung / ID

31Byte 33Byte




Kessel-Telegramm: Heizgerät
08888
Source
10000
Target
21818
24_x_y
3xyxy Telegramm-Offset (hier 0...25).
4xyxyVorlauf Soll-Temperatur24_0_0
5Hi-ByteHi-ByteVorlauf Ist-Temperatur24_1_0
6Lo-ByteLo-Byte
7xyxyKessel maximale Leistung (76/84/100; 100)%24_3_0
80-1000-100Aktuelle Brennerleistung in %24_4_0
9Bit0...Bit7BitfeldBetriebsmode

Bit0Bit1- Heizungs-Mode24_5_0

Bit1Bit2- Warmwasser-Mode24_5_1

Bit2Bit3:=0- Status Servicebetrieb24_5_2

Bit3Bit4- Brennerflamme an24_5_3

Bit4Bit5:=0- Aufheizphase des Wärmeerzeugers24_5_4

Bit5Bit6:=0- Verriegelnder Fehler24_5_5

Bit6Bit7:=0- Blockierender Fehler24_5_6

Bit7Bit8:=0- Status Wartungsanforderung24_5_7
10Bit0...Bit7Bit0...Bit7Status Heizbetrieb

Bit0Bit0- Heizbetrieb im Bussystem24_6_0

Bit1Bit1- Wärmeanforderung (durch Schalter)24_6_1

Bit2Bit2- Wärmeanforderung bei Betriebsart: Frost24_6_2

Bit3Bit3- Wärmeanforderung im WW-Betrieb bei Betriebsart: Frost24_6_3

Bit4Bit4- Interne Wärmeanforderung bei WW24_6_4

Bit5Bit5- Wärmeanforderung f. WW-Erkennung im Bussystem24_6_5

Bit6Bit6- Wärmeanforderung24_6_6

Bit7Bit7- Wärmeanforderung im Testmodus24_6_7
11Bit0...Bit7Bit0...Bit7Betriebs-Status

Bit0Bit0- Brenner an (Relais-Signal erste Brennstufe)24_7_0

Bit1Bit1- Brenner an (Relais-Signal zweite Brennstufe)24_7_1

Bit2Bit2- Lüfter an (Relais-Signal f. Lüfter)24_7_2

Bit3Bit3- Zündung an (Relais-Signal f. Zündung)24_7_3

Bit4Bit4- Ölvorwärmer an (Relais-Signal f. Ölvorwärmer)24_7_4

Bit5Bit5- Heizungspumpe an (Relais-Signal f. HP)24_7_5

Bit6Bit6- 3-Wege-Ventil auf Speicherladung24_7_6

Bit7Bit7- Zirkulationspumpe an (Relais-Signal f. ZP)24_7_7
12Bit0...Bit7Bit0...Bit7Status 1

Bit0Bit0- Meldesignal Abgasklappe f. Freigabe Ölbrenner24_8_0

Bit1Bit1- Signal vom Luftdruckschalter24_8_1

Bit2Bit2- Signal vom Flüssiggasbrenner24_8_2

Bit3Bit3- Signal vom Gasdruckwächter24_8_3

Bit4Bit4- Signal vom externen Ein-/Aus-Schalter24_8_4

Bit5Bit5- Digitales Eingangssignal24_8_5

Bit6Bit6- Signal vom Sicherheitstemperaturbegrenzer (TB)24_8_6

Bit7Bit7- Signal vom Raumthermostat24_8_7
13Hi-ByteHi-ByteWW-Temperatur Speicherfühler124_9_0
14Lo-ByteLo-Byte- (0x8300 := Nicht vorhanden)
15Hi-ByteHi-ByteWW-Temperatur Speicherfühler224_11_0
16Lo-ByteLo-Byte- (0x8000 | 0x7D00 := Nicht vorhanden)
17Hi-ByteHi-ByteTemperatur Kessel-Rücklauf24_13_0
18Lo-ByteLo-Byte- (0x8000 | 0x7D00 := Nicht vorhanden)
19Hi-ByteHi-ByteIonisationsstrom24_15_0
20Lo-ByteLo-Byte
21FFFFAnlagendruck am Wärmeerzeuger24_17_0



- (FF := ungültig)
22Hi-ByteHi-ByteDisplaycode24_18_0
23Lo-ByteLo-Byte
24Hi-ByteHi-ByteCause Code24_20_0
25Lo-ByteLo-Byte
2600FFWarmwasserdurchfluss-Menge24_22_0



- (FF := ungültig)
27Bit0...Bit7Bit0...Bit7Status 2

Bit0Bit0- Status Speicherlade-Pumpe (SP)24_23_0

Bit1Bit1- Flüssiggasventil an24_23_1

Bit2Bit2- Status Gaswärmepumpe24_23_2

Bit3Bit3- Status d. Relais im Schaltmodul UM1024_23_3

Bit4Bit4- Zirkulationspumpe an (Relais-Signal f. ZP)24_23_4

Bit5Bit5- Status Brenner Relais24_23_5

Bit6Bit6- FB reservierte Bit24_23_6

Bit7Bit7- FB reservierte Bit24_23_7
28Bit0...Bit7Bit0...Bit7Status 3

Bit0Bit0- Status der Füllfunktion 24_24_0

Bit1Bit1- Status Schaltmodul UM1024_24_1

Bit2Bit2- UM10 Signal für Brenner-Blockierung24_24_2

Bit3Bit3- Brennerfreigabe durch Schaltmodul24_24_3

Bit4Bit4- Status Brenneranlauf im Schaltmodul24_24_4

Bit5Bit5- Heizbetrieb blockiert bei Heatronic III24_24_5

Bit6Bit6- STB – Test aktiv24_24_6

Bit7Bit7- Tastensperre ein24_24_7
29<CRC>Hi-ByteCRC | Hi-Byte - Ansauglufttemperaturxy | 24_25_0
30<Ende>Lo-ByteEnde | Lo-Byte - Ansauglufttemperatur
31<CRC> -– | CRC
32<Ende> –- | Ende
- -
-

Tabelle 7: ID 25

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:25_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

33Byte



Kessel-Telegramm: Heizgerät
088
Source
100
Target
219
25_x_0
3xy Telegramm-Offset (hier 0...25).
4Hi-ByteAußentemperatur25_0_0
5Lo-Byte
6Hi-ByteMaximale Temperatur25_2_0
7Lo-Byte- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden


- 0x7FFF = Sensorkurzschluss
8Hi-ByteAbgastemperatur25_4_0
9Lo-Byte- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden


- 0x7FFF = Sensorkurzschluss
10Hi-ByteGasdruck / Luftdruck25_6_0
11Lo-Byte- 0xFFFF = Sensorunterbrechung / Fühler nicht vorhanden
12xyTaktsperre im Zweipunkt Betrieb25_8_0
13xyModulationsbereich Heizungspumpe (HP)25_9_0
14Byte 3Brennerstarts Total (für Warmwasser und Heizung)25_10_0
15Byte 2 „ ( Calculation-Type: 2 )
16Byte 1
17Byte 3Betriebsminuten Brenner Total (für Warmwasser und Heizung)25_13_0
18Byte 2 „ ( Calculation-Type: 2 )
19Byte 1
20Byte 3Betriebszeit f. Zweite Brennerstufe25_16_0
21Byte 2 „ ( Calculation-Type: 2 )
22Byte 1
23Byte 3Betriebsminuten Brenner (nur Heizung)25_19_0
24Byte 2 „ ( Calculation-Type: 2 )
25Byte 1
26Byte 3Brennerstarts (nur Heizung)25_22_0
27Byte 2 „ ( Calculation-Type: 2 )
28Byte 1
29Hi-ByteTemperatur an hydraulischer Weiche25_25_0
30Lo-Byte- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden


- 0x7FFF = Sensorkurzschluss
31<CRC>CRC
32<Ende>Ende Marker
- -
-

Tabelle 8: ID 188

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:188_x_y
ByteWerte (Hex)BemerkungBedeutung / ID






Kessel-Telegramm: Heizgerät
088
Source
100
Target
2BC
188_x_y
3xy Telegramm-Offset (hier 0...13).
4Hi-ByteTemperatur Puffer-Speicher oben188_0_0
5Lo-Byte
6Hi-ByteTemperatur Puffer-Speicher unten188_2_0
7Lo-Byte
8Hi-ByteTemperatur Vorlauf Verflüssiger188_4_0
9Lo-Byte
10Hi-ByteTemperatur Rücklauf Verflüssiger188_6_0
11Lo-Byte
12Bit0...Bit7Betriebs-Status1

Bit0- Wärmepumpe188_8_0

Bit1
188_8_1

Bit2
188_8_2

Bit3
188_8_3

Bit4- Status Abtaumöglichkeit an W-Pumpe188_8_4

Bit5
188_8_5

Bit6
188_8_6

Bit7
188_8_7
13Bit0...Bit7Betriebs-Status2

Bit0- Abtaufunktion an W-Pumpe188_9_0

Bit1- Status Verdichter188_9_1

Bit2- Fehlerstatus Wärmepumpe188_9_2

Bit3
188_9_3

Bit4
188_9_4

Bit5
188_9_5

Bit6
188_9_6

Bit7
188_9_7
14<CRC>CRC
15<Ende>Ende
- -
-

Tabelle 9: ID 27

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:27_0_0
ByteWerte (Hex)BemerkungBedeutung / ID

7Byte



Telegramm: Solltemperatur WW-System
090 Source
100
Target
21B
27_x_0
300Immer 00
432Sollwert Warmwasser-Temperatur27_0_0
5<CRC>CRC
6<Ende>Ende Marker
- -
-

Tabelle 10: ID 51

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID: 51_x_y
ByteWerte (Hex)BemerkungBedeutung / ID






Kessel-Telegramm: Warmwasser
088
Source
100
Target
233
51_x_y
3xy Telegramm-Offset (hier 0...12).
4xySoll-Temperatur Warmwasser51_0_0
5xy
51_1_0
6xySoll-Temperatur Warmwasser51_2_0
7xyTemperaturhysterese bei T-Soll51_3_0
8xy
51_4_0
9xy
51_5_0
10xy
51_6_0
11xy
51_7_0
12xy
51_8_0
13xy
51_9_0
14xy
51_10_0
15xy
51_11_0
16xy
51_12_0
17<CRC>

18<Ende>

- -
-

Tabelle 11: ID 52

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme






Message-ID: 52_x_y
ByteWerte (Hex)
BemerkungBedeutung / ID

23Byte 22Byte 25Byte





Kessel-Telegramm: Warmwasser
0888888
Source
1000000
Target
2343434
52_x_y
3xyxyxy Telegramm-Offset (hier 0...17).
4xyxyxySoll-Temperatur Warmwasser52_0_0
5Hi-ByteHi-ByteHi-ByteIst-Temperatur Warmwasser52_1_0
6Lo-ByteLo-ByteLo-Byte- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden




- 0x7FFF = Sensorkurzschluss
7Hi-ByteHi-ByteHi-ByteIst-Temperatur im Warmwasser - Speicher52_3_0
8Lo-ByteLo-ByteLo-Byte- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden




- 0x7FFF = Sensorkurzschluss
9Bit0...Bit7Bit0...Bit7Bit0...Bit7Warmwasser-Status

Bit0Bit0Bit0- WW-Bereitung im Normalbetrieb52_5_0

Bit1Bit1Bit1- Einmalige Speicher-Ladung52_5_1

Bit2Bit2Bit2- Thermische Desinfektion52_5_2

Bit3Bit3Bit3- Speicherladung im WW-System52_5_3

Bit4Bit4Bit4- Speicherladung im Nachwärmsystem52_5_4

Bit5Bit5Bit5- Erreichter Sollwert Warmwasser-Temperatur52_5_5

Bit6Bit6Bit6- Warmwasserbetrieb52_5_6

Bit7Bit7Bit7- Status f. Art der Warmwasserbereitung52_5_7




-- 0 = Warmwasserteilvorrang




-- 1 = Warmwasservorrang
10Bit0...Bit7Bit0...Bit7Bit0...Bit7WW-Fehlersignale

Bit0Bit0Bit0- WW-Temperaturfühler 1 defekt52_6_0

Bit1Bit1Bit1- WW-Temperaturfühler 2 defekt52_6_1

Bit2Bit2Bit2- WW-System wird nicht aufgeheizt52_6_2

Bit3Bit3Bit3- Thermische Desinfektion ist nicht in Betrieb52_6_3

Bit4Bit4Bit4- WW ist nicht blockiert52_6_4

Bit5...Bit7Bit5...Bit7Bit5...Bit7- Immer 052_6_5 bis





52_6_7
11Bit0...Bit7Bit0...Bit7Bit0...Bit7Zirkulationspumpen-Status

Bit0Bit0Bit0- Zirkulationspumpe (ZP) im Normalbetrieb52_7_0

Bit1Bit1Bit1- Zirkulationspumpe (ZP) an bei einmaliger Speicherladung52_7_1

Bit2Bit2Bit2- Zirkulationspumpe (ZP) an52_7_2

Bit3Bit3Bit3- Ansteuersignal f. Zirkulationspumpe (ZP)52_7_3

Bit4...Bit7Bit4...Bit7Bit4...Bit7- Immer 0
120...40...40...4Bauart des Warmwassersystems52_8_0




- 0 = ohne Warmwasserbereitung




- 1 = nach Durchlaufprinzip




- 2 = Druckloser Speicher




- 3 = Warmwasser-Speicherprinzip




- 4 = Schichtlade-Speicher
13xyxyxyAktuelle Wasserduchflussmenge52_9_0
14Byte 3Byte 3Byte 3Betriebszeit Warmwasser-Erzeugung (Minuten)52_10_0
15Byte 2Byte 2Byte 2
16Byte 1Byte 1Byte 1
17Byte 3Byte 3Byte 3Anzahl Brennerstarts für Warmwassererzeugung52_13_0
18Byte 2Byte 2Byte 2
19Byte 1Byte 1Byte 1
20xy<CRC>xyModulationsbereich ZP im WW-System 152_16_0
21<CRC><Ende>Hi-ByteHi-Byte Warmwasser Eingangstemperatur52_17_0
22<Ende>--Lo-ByteLo-Byte Warmwasser Eingangstemperatur




- 0x8000 = Sensorunterbrechung / Fühler nicht vorhanden




- 0x7FFF = Sensorkurzschluss
23

<CRC>

24

<Ende>

- -
-

Tabelle 12: ID 467...468

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:467_x_0 bis 468_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

11Byte



Telegramm: Betriebsart WW-System
090 Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
400Immer 00EMS Type(H)
5D3 / D4WW-System


- D3=WW-System1467_0_0


- D4=WW-System2468_0_0
6xyBetriebsart Warmwasser-System


- 0=Automatikbetrieb f. WW-Speicher


- 1=Automatikbetrieb b. Kombigerät aktiv


- 2=Automatikbetrieb b. Kombigerät ausgeschaltet


- 3=Automatikbetrieb i. Urlaubsmodus f. WW-Speicher


- 4=Urlaubsfunktion eingeschaltet a. Kombigerät


- 5=Urlaubsfunktion ausgeschaltet a. Kombigerät


- 6=Fest eingestellte Speichertemperatur im Urlaubsprogramm


- 7=Thermische Desinfektion f. WW-Speicher


- 8=Warmwasser sofort


- 9=Estrichtrocknung in Betrieb oder angehalten
7xyWert f. Temperaturreduzierung bei solarer Unterstuetzung467_1_0 bis 468_1_0
8xyStatus der letzten thermischen Desinfektion467_2_0 bis 468_2_0


- 0=Abgeschlossen


- 1=In Betrieb


- 2=Abgebrochen
9<CRC>CRC
10<Ende>Ende Marker
- -
-

Tabelle 13: ID 26

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme



Message-ID:26_x_0

ByteWerte (Hex)BemerkungBedeutung / IDBeispiel (Hex)

11Byte




Telegramm: Heizkreis Systemwerte

090
Source
108Target = SteuerungTarget
21AImmer 1A26_x_0
3xy Telegramm-Offset (hier 0...4).

426Sollwert f. Vorlauftemperatur im Heizkreis26_0_0
564Maximale Leistung des Wärmeerzeugers26_1_0
664Sollwert f. Drehzahl der Umwälzpumpe26_2_0
70 / FFStatus f. Aufheizen mit hohem Wirkungsgrad26_3_0
83Betriebsart f. Umwälzpumpe im Energiesparmodus26_4_0
9<CRC>CRC

10<Ende>Ende Marker

- -
-

Tabelle 14: ID 268

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:268_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

14Byte



IPM – Telegramm (Schaltmodul)
0A0...A7
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
400Immer 00EMS Type(H)
50CImmer 0CEMS Type(L)
60...2Bauart des Heizkreises (Mischer ja/nein)


- 0=Nicht vorhanden


- 1=Ungemischter Heizkreis268_0_0


- 2=Gemischter Heizkreis268_0_1
70...1Status Heizungspumpe im Heizkreis268_1_0


- 0=Pumpe aus


- 1=Pumpe Ein
8xyMischer Position (Prozentwert)268_2_0
9Hi-ByteVorlauftemperatur 'Ist' für gemischten Heizkreis268_3_0
10Lo-Byte
11xySollwert Vorlauftemperatur (Grad)268_5_0
12<CRC>CRC
13<Ende>Ende Marker
- -
-

Tabelle 15: ID 296

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:296_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

32Byte



Telegramm: Heizkreis Fehlermeldungen
090
Source
100
Target
2FF
EMS Marker
3xyOffset auf nächste FehlermeldungEMS Offset
400Immer 00EMS Type(H)
528FehlerEMS Type(L)
6xy1Fehler1: Display-Code1296_0_0
7xy2Fehler1: Display-Code2296_1_0
8Hi-ByteFehler1: Fehlercode296_2_0
9Lo-Byte

10xyFehler1: Jahr (+2000)296_4_0
11xyFehler1: Monat296_5_0
12xyFehler1: Stunde296_6_0
13xyFehler1: Tag296_7_0
14xyFehler1: Minute296_8_0
15Hi-ByteFehler1: Minute (Reserviert)296_9_0
16Lo-Byte

17xyFehler1: Busadresse296_11_0
18xy1Fehler2: Display-Code1296_12_0
19xy2Fehler2: Display-Code2296_13_0
20Hi-ByteFehler2: Fehlercode296_14_0
21Lo-Byte

22xyFehler2: Jahr (+2000)296_16_0
23xyFehler2: Monat296_17_0
24xyFehler2: Stunde296_18_0
25xyFehler2: Tag296_19_0
26xyFehler2: Minute296_20_0
27Hi-ByteFehler2: Minute (Reserviert)296_21_0
28Lo-Byte

29xyFehler2: Busadresse296_23_0
30<CRC>CRC
31<Ende>Ende Marker
- -
-

Tabelle 16: ID 357...366

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:357_x_0 bis 366_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

29Byte



Telegramm: Heizkreis Steuerung


(Bauart des Heizkreises)
090
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
400Immer 00EMS Type(H)
565...6EHeizkreis xEMS Type(L)

65 65=Heizkreis1357_0_0

66 66=Heizkreis2358_0_0

67 67=Heizkreis3359_0_0

68 68=Heizkreis4360_0_0

69 69=Heizkreis5361_0_0

6A 6A=Heizkreis6362_0_0

6B 6B=Heizkreis7363_0_0

6C 6C=Heizkreis8364_0_0

6D 6D=Heizkreis9365_0_0

6E 6E=Heizkreis10366_0_0
60...3Bauart-Werte357_1_0 bis


- 0=Nicht vorhanden366_1_0


- 1=Ungemischter Heizkreis ohne Schaltmodul IPM


- 2=Ungemischter Heizkreis mit Schaltmodul IPM


- 3=Gemischter Heizkreis
70...2Fernbedienung für Heizkreis x


- 0=Nicht vorhanden


- 1=Fernbedienung FB 10


- 2=Fernbedienung FB100
80...4Bauart des Heizkreis x


- 0=nicht definiert357_2_0 bis


- 1=Fußpunkt/Endpunkt366_2_0


- 2=Radiatoren


- 3=Konvektoren


- 4=Fußbodenheizung
9z.B. 19Fußpunkt für Heizkurve (in Grad)357_3_0 bis



366_3_0
10z.B. 30Endpunkt für Heizkurve (in Grad)357_4_0 bis



366_4_0
11z.B. 50Maximale Vorlauftemperatur (in Grad) für Heizkreis x357_5_0 bis



366_5_0
12
Raumeinfluss-Faktor (%) im Heizkreis x357_6_0 bis



366_6_0
130...2Raumeinfluss im Heizkreis x bei Betriebsart357_7_0 bis


- 0=nicht definiert366_7_0


- 1=Normalbetrieb / Sparbetrieb / Frostschutzbetrieb


- 2=Sparbetrieb / Frostschutzbetrieb
14
Einstellung dauerhafte Raumtemperatur-Korrektur im Heizkreis x357_8_0 bis



366_8_0
150...3Betriebsart Raumtemperaturfühler für Heizkreis x357_9_0 bis


- 0=nicht definiert366_9_0


- 1=Externer Temperaturfühler


- 2=Interner Temperaturfühler


- 3=Temperatur im Sparmodus




160/FFStatus für Temperaturniveau Frost357_10_0 bis


- 0 = Aus366_10_0


- FF = Ein
17z.B. 2BAbschaltung (Außentemperaturgesteuert) von Heizkreis x357_11_0 bis


- (in 0.5 Grad Schritten)366_11_0
18
Frostgrenztemperatur für Heizkreis x357_12_0 bis


- (in 0.5 Grad Schritten)366_12_0
190...6Aktives Heizprogramm im Heizkreis x357_13_0 bis


- 0=nicht definiert366_13_0


- 1-6=Nummer des aktiven Heizprogramms


- (1:A; 2:=B;3:=C; …)
200....4Betriebsart für den Heizkreis x357_14_0 bis


- 0=nicht definiert366_14_0


- 1=Betrieb im Frostschutzmodus


- 2=Betrieb im Sparmodus


- 3=Betrieb im Normalmodus


- 4=Automatikbetrieb
21z.B. 14Temperaturniveau für Betriebsart Frost im Heizkreis x357_15_0 bis


- (in 0.5 Grad Schritten)366_15_0
22z.B. 28Temperaturniveau für Betriebsart Sparen im Heizkreis x357_16_0 bis


- (in 0.5 Grad Schritten)366_16_0
23z.B. 2BTemperaturniveau für Betriebsart Normal im Heizkreis x357_17_0 bis


- (in 0.5 Grad Schritten)366_17_0
240...3Aufheizgeschwindigkeit für Heizkreis x357_18_0 bis


- 0=nicht definiert366_18_0


- 1=Langsam


- 2=Normal


- 3=Schnell
250...4Urlaubsprogramm Betriebsart für Heizkreis x357_19_0 bis


- 0=nicht definiert366_19_0


- 1=Betrieb im Frostschutzmodus


- 2=Betrieb im Sparmodus


- 3=Betrieb im Normalmodus


- 4=Automatikbetrieb
26
Optimierungseinfluss für solare Unterstützung im Heizkreis x357_20_0 bis


- (in 1 Grad Schritten)366_20_0
27<CRC>CRC
28<Ende>Ende Marker
- -
-

Tabelle 17: ID 367...376

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme






Message-ID:367_x_0 bis 376_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

17Byte 14Byte 9Byte





Telegramm: Heizkreis Steuerung




(Temperaturniveau für den Heizkreis)
090 | 9x90 | 9x90 | 9x (wobei: x:= 8...F)Source
1000000
Target
2FFFFFF
EMS Marker
3xyxyxy
EMS Offset
4000000Immer 00EMS Type(H)
56F...786F...786F...78Heizkreis-ZuordnungEMS Type(L)




6F=Heizkreis1367_0_0




70=Heizkreis2368_0_0




71=Heizkreis3369_0_0




72=Heizkreis4370_0_0




73=Heizkreis5371_0_0




74=Heizkreis6372_0_0




75=Heizkreis7373_0_0




76=Heizkreis8374_0_0




77=Heizkreis9375_0_0




78=Heizkreis10376_0_0
60...30...30...3Betriebsart Heizung:367_0_0 bis




- 0=nicht definiert376_0_0




- 1=Frost




- 2=Sparen




- 3=Heizen
70...50...5<CRC>Betriebsart Heizkreis | | CRC367_1_0 bis




- 0=nicht definiert376_1_0



- 1=dauernd



- 2=Automatikbetrieb



- 3=Urlaub



- 4=Estrichtrocknung im StandbyModus



- 5=Estrichtrocknung in Betrieb
8Hi-ByteHi-Byte<Ende>Soll-Temperatur (HK1 bis HK10) | | Ende Marker367_2_0 bis
9Lo-ByteLo-Byte376_2_0
10Hi-ByteHi-ByteIst-Temperatur (HK1 bis HK10 vom Regler)367_4_0 bis
11Lo-ByteLo-Byte376_4_0
12Hi-Byte<CRC>T-Raum FB10x | CRC367_6_0
13Lo-Byte<Ende>T-Raum FB10x | Ende Marker
1400 … 07Temperaturwert für solare Unterstützung der Vorlauftemperatur367_8_0
15<CRC>CRC
16<Ende>Ende Marker
- -
-

Tabelle 18: ID 377...386

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:377_x_0 bis 386_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

19Byte



Telegramm: Heizkreis Steuerung
090 (Bauart des Heizkreises)Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
400Immer 00EMS Type(H)
579...82Heizkreis x KennungEMS Type(L)


79=Heizkreis1377_0_0


7A=Heizkreis2378_0_0


7B=Heizkreis3379_0_0


7C=Heizkreis4380_0_0


7D=Heizkreis5381_0_0


7E=Heizkreis6382_0_0


7F=Heizkreis7383_0_0


80=Heizkreis8384_0_0


81=Heizkreis9385_0_0


82=Heizkreis10386_0_0
60...3Bauart-Werte377_0_0 bis


- 0=Nicht vorhanden386_0_0


- 1=Ungemischter Heizkreis ohne Schaltmodul IPM


- 2=Ungemischter Heizkreis mit Schaltmodul IPM


- 3=Gemischter Heizkreis
7
Anpassungsfaktor im Heizkreis x377_1_0 bis



386_1_0
8
Verstärkungsfaktor im Heizkreis x377_2_0 bis



386_2_0
9
Maximale Vorlauftemperatur im Heizkreis x377_3_0 bis



386_3_0
100...4Betriebsart für Heizkreis x377_4_0 bis


- 0=nicht definiert386_4_0


- 1=Betrieb im Frostschutzmodus


- 2=Betrieb im Sparmodus


- 3=Betrieb im Normalmodus


- 4=Automatikbetrieb
11
Temperaturniveau bei Betriebsart Frost377_5_0 bis


- (in 0.5 Grad Schritten)386_5_0
12
Temperaturniveau bei Betriebsart Sparen377_6_0 bis


- (in 0.5 Grad Schritten)386_6_0
13
Temperaturniveau bei Betriebsart Normal377_7_0 bis


- (in 0.5 Grad Schritten)386_7_0
14
Urlaubsprogramm Betriebsart für Heizkreis x377_8_0 bis


- ( Werte wie bei Byte:10 Betriebsart Heizkreis)386_8_0
150/FFStatus Optimierungsfunktion im Heizkreis x377_9_0 bis


- 0 = Aus386_9_0


- FF = Ein
160...6Aktiviertes Heizprogramm377_10_0 bis


- 0=Nicht definiert386_10_0


- 1-6=Nummer des aktiven Heizprogramms


- (1=A; 2=B; 3=C; …)
17<CRC>CRC
18<Ende>Ende Marker
- -
-

Tabelle 19: ID 677...684

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:677_x_0 bis 684_x_0
Byte
BemerkungBedeutung / ID






Telegramm: Heizkreis Steuerung


(Temperaturniveau für den Heizkreis)
090
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
401Immer 01EMS Type(H)
5A5...ACHeizkreis-ZuordnungEMS Type(L)


A5=Heizkreis1677_0_0


A6=Heizkreis2678_0_0


A7=Heizkreis3679_0_0


A8=Heizkreis4680_0_0


A9=Heizkreis5681_0_0


AA=Heizkreis6682_0_0


AB=Heizkreis7683_0_0


AC=Heizkreis8684_0_0
6Hi-ByteIst-Raumtemperatur (HK1 bis HK8)677_0_0 bis
7Lo-Byte684_0_0
8xyStatus Heizkreis6xy_2_0
9xy
6xy_3_0
10xy
6xy_4_0
11xy
6xy_5_0
12xySoll-Raumtemperatur (HK1 bis HK8)6xy_6_0
13xy
6xy_7_0
14Hi-Byte
6xy_8_0
15Lo-Byte
16xy
6xy_10_0
17xyTemperatur-Niveau6xy_11_0
18xy
6xy_12_0
19Hi-Byte
6xy_13_0
20Lo-Byte
21Hi-Byte
6xy_15_0
22Lo-Byte
23xy
6xy_17_0
24xy
6xy_18_0
25xy
6xy_19_0
26xy
6xy_20_0
27xyBetriebsstatus (HK1 bis HK8) {Auto / Manuell}6xy_21_0
28Hi-Byte
6xy_22_0
29Lo-Byte
30xy
6xy_24_0
31xy
6xy_25_0
32xy
6xy_26_0
33Hi-Byte
6xy_27_0
34Lo-Byte
35xy
6xy_29_0
36xy
6xy_30_0
37<CRC>CRC
38<Ende>Ende Marker
- -
-

Tabelle 20: ID 259

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:259_x_0
ByteWerte (Hex)BemerkungBedeutung / ID

21Byte



ISM Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
400Immer 00EMS Type(H)
503Immer 03EMS Type(L)
6xyOptimierungsfaktor WW mit solarer Unterstützung259_0_0
7xyOptimierungsfaktor Heiz. mit solarer Unterstützung259_1_0
8Hi-ByteSolarertrag in der letzten Stunde (Wh)259_2_0
9Lo-Byte
10Hi-ByteSolarkollektor1 Temperatur T1259_4_0
11Lo-Byte
12Hi-ByteSolarspeicher Temperatur T2259_6_0
13Lo-Byte
14Bit0...Bit7Betriebsart Solarpumpe (1. Kollektorfeld)

Bit0- Solarpumpe (SP); 0=aus; 1=ein259_8_0

Bit1- Relaysignal Umwälzpumpe(PE) bei thermischer Desinfektion259_8_1

Bit2..Bit7- Immer 0
15Bit0...Bit7Solar Systemstatus

Bit0- Abschaltung 1.Kollektorfeld bei Stagnation259_9_0


-- 0 =Nein


-- 1 =Ja (5 Grad Hysterese)

Bit1- Status Temperatur bei thermischer Desinfektion259_9_1

Bit2- Status Solarspeicher259_9_2


-- 0 =Nicht voll geladen


-- 1 =Voll geladen (2 Grad Hysterese)

Bit3-8 Immer 0
16Byte 3Laufzeit Solarpumpe (Minuten)
17Byte 2 „ ( Calculation-Type: 2 )259_10_0
18Byte 1
19<CRC>CRC
20<Ende>Ende Marker
- -
-

Tabelle 21: ID 260

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme



Message-ID:260_x_y
ByteWerte (Hex)
BemerkungBedeutung / ID

24Byte 35Byte




ISM Solar-Telegramm
0B0B0
Source
10000
Target
2FFFF
EMS Marker
3xyxy
EMS Offset
40000Immer 00EMS Type(H)
50404Immer 04EMS Type(L)
6Hi-Byte T3Hi-Byte T3Temperatur T3 im Pufferspeicher f. Rücklaufanhebung260_0_0
7Lo-Byte T3Lo-Byte T3
8Hi-ByteHi-ByteHeizungsrücklauftemperatur260_2_0
9Lo-ByteLo-Byte
10Hi-Byte T5Hi-Byte T5Temperatur T5 im Pufferspeicher (oben)260_4_0
11Lo-Byte T5Lo-Byte T5
12Hi-Byte T6Hi-Byte T6Temperatur T6 im Bereitschaftsspeicher (unten)260_6_0
13Lo-Byte T6Lo-Byte T6
14Hi-ByteHi-ByteTemperatur 2. Kollektorfeld260_8_0
15Lo-ByteLo-Byte
16Hi-ByteHi-ByteTemperatur TB im Pufferspeicher (oben)260_10_0
17Lo-ByteLo-Byte
18Hi-ByteHi-ByteTemperatur TC im Vorrang-/Nachrangspeicher260_12_0
19Lo-ByteLo-Byte
20Hi-ByteHi-ByteTemperatur am externen Wärmetauscher f. Solarsystem260_14_0
21Lo-ByteLo-Byte
22<CRC>Bit0...Bit7Status 1


Bit0- Betriebsart Ventil (DWU) f. Rücklaufanhebung260_16_0


Bit1- Relaisansteuerung f. Umwälzpumpe Umladesystem260_16_1


Bit2- Umwälzpumpe (PA) im 2. Kollektorfeld260_16_2


Bit3- Relaisansteuerung f. Umwälzpumpe (PB) Umladesystem260_16_3


Bit4- Betriebsart Umwälzpumpe (PC)/Umschaltventil260_16_4


Bit5- Betriebsart Umwälzpumpe (PD) im Sekundärkreis260_16_5


Bit6- Relaissignal bei Option F260_16_6


Bit7- unbenutzt260_16_7
23<Ende>Bit0...Bit7Status 2


Bit0- Ansteuerung Ventil DWU1 f. Rücklaufanhebung260_17_0


Bit1- Status maximale Temperatur im Umladespeicher260_17_1


Bit2- Status Umwälzpumpe (PA) im 2.Kollektorfeld (Stagnation)260_17_2


Bit3- Maximaltemperatur erreicht im WW-Speicher B260_17_3


Bit4- WW-Speicher geladen260_17_4


Bit5- Testmodus (Speicherladung Vorrangspeicher)260_17_5


Bit6- Maximaltemperatur erreicht im WW-Speicher C260_17_6


Bit7- Testmodus260_17_7
24
Byte 3Betriebszeit f. Solarmumpe (PA) im zweiten Kollektorfeld260_18_0
25
Byte 2
26
Byte 1
27
Hi-ByteZeitintervall f. Überprüfung ob Speicher C geladen wird260_21_0
28
Lo-Byte

29
Hi-ByteTemperatur TF 1 in Wärmequelle260_23_0
30
Lo-Byte

31
Hi-ByteTemperatur TF 2 in Wärmesenke260_25_0
32
Lo-Byte

33
<CRC>

34
<Ende>

- -
-

Tabelle 22: ID 866

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:866
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
562Immer 62EMS Type(L)
6Hi-ByteSolarkollektor1 Temperatur866_0_0
7Lo-Byte
8Hi-ByteSolarspeicher Temperatur unten866_2_0
9Lo-Byte
10Hi-ByteSolarspeicher Temperatur mittlerer Sensor866_4_0
11Lo-Byte
12Hi-ByteSolarkollektor2 Temperatur866_6_0
13Lo-Byte
14Hi-ByteSolarspeicher Beipass Temperatur866_8_0
15Lo-Byte
16Hi-ByteSolarspeicher Beipass Return-Temperatur866_10_0
17Lo-Byte
18Hi-Byte
866_12_0
19Lo-Byte
20Hi-Byte
866_14_0
21Lo-Byte
22Hi-Byte
866_16_0
23Lo-Byte
24Hi-Byte
866_18_0
25Lo-Byte
26Hi-Byte
866_20_0
27Lo-Byte
28Hi-Byte
866_22_0
29Lo-Byte
30Hi-Byte
866_24_0
31Lo-Byte
32<CRC>

33<Ende>

- -
-

Tabelle 23: ID 868

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:868_x_y
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
564Immer 64EMS Type(L)
6xy
868_0_0
7xy
868_1_0
8Bit0...Bit7
868_2_x

Bit0
868_2_0

Bit1
868_2_1

Bit2
868_2_2

Bit3
868_2_3

Bit4
868_2_4

Bit5
868_2_5

Bit6
868_2_6

Bit7
868_2_7
9Bit0...Bit7Solar Systemstatus868_3_x

Bit0- Abschaltung 1.Kollektorfeld bei Stagnation868_3_0


-- 0 =Nein


-- 1 =Ja

Bit1-- 1 =Solarspeicher maximale Temperatur erreicht868_3_1

Bit2-- 1 =Solarspeicher minimale Temperatur erreicht868_3_2

Bit3
868_3_3

Bit4
868_3_4

Bit5
868_3_5

Bit6
868_3_6

Bit7
868_3_7
10xy
868_4_0
11xy
868_5_0
12xy
868_6_0
13xy
868_7_0
14xy
868_8_0
15xyAktuelle Solarpumpen – Leistung868_9_0
16xy
868_10_0
17xy868_11_0
18xy
868_12_0
19xy868_13_0
20xy
868_14_0
21xy868_15_0
22<CRC>

23<Ende>

- -
-

Tabelle 24: ID 873

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:873_x_0
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
569Immer 69EMS Type(L)
6Byte 4Solarertrag letzte Stunde873_0_0
7Byte 3
8Byte 2 „ ( Calculation-Type: 4 )
9Byte 1
10Byte 4Solarertrag aktueller Tag873_4_0
11Byte 3
12Byte 2
13Byte 1
14Byte 4Solarertrag Summe873_8_0
15Byte 3
16Byte 2
17Byte 1
18<CRC>

19<Ende>

- -
-

Tabelle 25: ID 874

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:874_x_0
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
56AImmer 6AEMS Type(L)
6xy
874_0_0
7xy
874_1_0
8xy
874_2_0
9xy
874_3_0
10xy
874_4_0
11xy
874_5_0
12xy
874_6_0
13xy
874_7_0
14xy
874_8_0
15xy
874_9_0
16Bit0...Bit7
874_10_x

Bit0
874_10_0

Bit1
874_10_1

Bit2- Solarpumpe (SP); 0=aus; 1=ein874_10_2

Bit3
874_10_3

Bit4
874_10_4

Bit5
874_10_5

Bit6
874_10_6

Bit7
874_10_7
17xy
874_11_0
18xy
874_12_0
19xy874_13_0
20xy
874_14_0
21xy874_15_0
22<CRC>

23<Ende>

- -
-

Tabelle 26: ID 910

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:910_x_0
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
58EImmer 8EEMS Type(L)
6Byte 4Solarertrag letzte Stunde910_0_0
7Byte 3
8Byte 2 „ ( Calculation-Type: 4 )
9Byte 1
10Byte 4Solarertrag aktueller Tag910_4_0
11Byte 3
12Byte 2 „ ( Calculation-Type: 5 )
13Byte 1
14Byte 4Solarertrag Summe910_8_0
15Byte 3
16Byte 2 „ ( Calculation-Type: 4 )
17Byte 1
18<CRC>

19<Ende>

- -
-

Tabelle 27: ID 913

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:913_x_0
Byte
BemerkungBedeutung / ID






MS100 Solar-Telegramm
0B0
Source
100
Target
2FF
EMS Marker
3xy
EMS Offset
402Immer 02EMS Type(H)
591Immer 91EMS Type(L)
6Byte 4Laufzeit Solarpumpe (Minuten)913_0_0
7Byte 3
8Byte 2 „ ( Calculation-Type: 2 )
9Byte 1
10xy
913_4_0
11xy
913_5_0
12xy
913_6_0
13xy
913_7_0
14xy
913_8_0
15xy
913_9_0
16xy
913_10_0
17xy
913_11_0
18<CRC>

19<Ende>

- -
-

Tabelle 28: ID 357_366_14_Modem

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:357_14_0 bis 366_14_0
ByteWerte (Hex)BemerkungBedeutung / ID

9Byte



Modem-CMD:: Betriebsart setzen
08DSource: ModemSource
110TargetTarget
2FFEMS-TypeEMS Marker
30E
EMS Offset
400
EMS Type(H)
565...6EHeizkreis xEMS Type(L)


65=Heizkreis1


66=Heizkreis2


67=Heizkreis3


68=Heizkreis4


69=Heizkreis5


6A=Heizkreis6


6B=Heizkreis7


6C=Heizkreis8


6D=Heizkreis9


6E=Heizkreis10
60...4Heizkreisbetriebsart-Werte357_14_0 bis


- 0=Nicht definiert366_14_0


- 1=Betrieb im Frostschutzmodus


- 2=Betrieb im Sparmodus


- 3=Betrieb im Normalmodus


- 4=Automatikbetrieb
7<CRC>CRC
8<Ende>Ende Marker
- -
-

Tabelle 29: ID 377_387_4_Modem

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme


Message-ID:377_4_0 bis 386_4_0
ByteWerte (Hex)BemerkungBedeutung / ID

9Byte



Modem-CMD: Betriebsart setzen
08DSource: ModemSource
110TargetTarget
2FFEMS-TypeEMS Marker
304
EMS Offset
400
EMS Type(H)
579...82Heizkreis x KennungEMS Type(L)


79=Heizkreis1


7A=Heizkreis2


7B=Heizkreis3


7C=Heizkreis4


7D=Heizkreis5


7E=Heizkreis6


7F=Heizkreis7


80=Heizkreis8


81=Heizkreis9


82=Heizkreis10
60...4Heizkreisbetriebsart-Werte357_4_0 bis


- 0=Nicht definiert366_4_0


- 1=Betrieb im Frostschutzmodus


- 2=Betrieb im Sparmodus


- 3=Betrieb im Normalmodus


- 4=Automatikbetrieb
7<CRC>CRC
8<Ende>Ende Marker
- -
-

Tabelle 30: ID 357...366_1x_Modem

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme




Message-ID:357_1x_0 bis 366_1x_0


ByteWerte (Hex)BemerkungBedeutung / ID


9Byte
Betriebsart



Modem-CMD: Temperatur-Niveau setzen (Betriebsart Normal/Sparen/Frost) NormalSparenFrost
08DSource: ModemSourceSourceSource
110TargetTargetTargetTarget
2FFEMS-TypeEMS MarkerEMS MarkerEMS Marker
311/10/0FEMS-Offset 11 (hex)10 (hex) F (hex)
400
EMS Type(H)EMS Type(H)EMS Type(H)
565...6EHeizkreis xEMS Type(L)EMS Type(L)EMS Type(L)


65=Heizkreis1




66=Heizkreis2




67=Heizkreis3




68=Heizkreis4




69=Heizkreis5




6A=Heizkreis6




6B=Heizkreis7




6C=Heizkreis8




6D=Heizkreis9




6E=Heizkreis10


6
Temperaturniveau für Betriebsart: y im Heizkreis x357_17_0 bis357_16_0 bis357_15_0 bis


- (in 0.5 Grad Schritten)366_17_0366_16_0366_15_0
7<CRC>CRC


8<Ende>Ende Marker


- -
-

Tabelle 31: ID 377...386_x_Modem

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
HT Bus-Telegramme




Message-ID:377_x_0 bis 386_x_0


ByteWerte (Hex)BemerkungBedeutung / ID


9Byte





Modem-CMD: Temperatur-Niveau setzen (Betriebsart Normal/Sparen/Frost) NormalSparenFrost
08DSource: ModemSourceSourceSource
110TargetTargetTargetTarget
2FFEMS-TypeEMS MarkerEMS MarkerEMS Marker
307/06/05EMS-Offset 7 (hex) 6 (hex) 5 (hex)
400
EMS Type(H)EMS Type(H)EMS Type(H)
579...82Heizkreis x KennungEMS Type(L)EMS Type(L)EMS Type(L)


79=Heizkreis1




7A=Heizkreis2




7B=Heizkreis3




7C=Heizkreis4




7D=Heizkreis5




7E=Heizkreis6




7F=Heizkreis7




80=Heizkreis8




81=Heizkreis9




82=Heizkreis10


60...4Temperaturniveau für Betriebsart: y im Heizkreis x377_7_0 bis377_6_0 bis377_5_0 bis


- (in 0.5 Grad Schritten)386_7_0386_6_0386_5_0
7<CRC>CRC


8<Ende>Ende Marker


- - - - diff --git a/doc/ems references/wiki_ ems_ telegrams.pdf b/doc/ems references/wiki_ ems_ telegrams.pdf deleted file mode 100644 index 882a997ab..000000000 Binary files a/doc/ems references/wiki_ ems_ telegrams.pdf and /dev/null differ diff --git a/doc/home assistant/automation.yaml b/doc/home assistant/automation.yaml deleted file mode 100644 index 4b7ee35f9..000000000 --- a/doc/home assistant/automation.yaml +++ /dev/null @@ -1,42 +0,0 @@ -- id: ems-esp_offline - alias: See if ems-esp goes offline - initial_state: true - trigger: - platform: state - entity_id: sensor.ems_esp_status - to: offline - action: - - service: notify.admin_notify - data_template: - title: EMS-ESP - message: 'gone offline' - -- id: emsesp_restart - alias: See if ems-esp restarts - initial_state: true - trigger: - platform: mqtt - topic: home/ems-esp/start - payload: start - action: - - service: notify.admin_notify - data_template: - title: ems-esp has booted - message: EMS-ESP - - service: mqtt.publish - data_template: - topic: home/ems-esp/start - payload: '{{ now().strftime("%H:%M:%S %-d/%b/%Y") }}' - -- id: boiler_shower - alias: Alert shower time - initial_state: true - trigger: - platform: state - entity_id: sensor.last_shower_duration - action: - - service: notify.admin_notify - data_template: - title: Shower finished at {{states.sensor.time.state}} - message: "{{ states.sensor.last_shower_duration.state }}" - \ No newline at end of file diff --git a/doc/home assistant/binary_sensor.yaml b/doc/home assistant/binary_sensor.yaml deleted file mode 100644 index 4b5195d00..000000000 --- a/doc/home assistant/binary_sensor.yaml +++ /dev/null @@ -1,12 +0,0 @@ -- platform: mqtt - name: 'Tap Water' - state_topic: 'home/ems-esp/tapwater_active' - payload_on: "1" - payload_off: "0" - -- platform: mqtt - name: 'Heating' - state_topic: 'home/ems-esp/heating_active' - payload_on: "1" - payload_off: "0" - \ No newline at end of file diff --git a/doc/home assistant/climate.yaml b/doc/home assistant/climate.yaml deleted file mode 100644 index b070f06b2..000000000 --- a/doc/home assistant/climate.yaml +++ /dev/null @@ -1,41 +0,0 @@ -- platform: mqtt - name: Thermostat - modes: - - "auto" - - "heat" - - "off" - - mode_command_topic: "home/ems-esp/thermostat_cmd_mode1" - temperature_command_topic: "home/ems-esp/thermostat_cmd_temp1" - - mode_state_topic: "home/ems-esp/thermostat_data" - current_temperature_topic: "home/ems-esp/thermostat_data" - temperature_state_topic: "home/ems-esp/thermostat_data" - - mode_state_template: "{% if value_json.hc1.mode in ['manual', 'day'] %} heat {% elif value_json.hc1.mode in ['night', 'off'] %} off {% else %} auto {% endif %}" - - current_temperature_template: "{{ value_json.hc1.currtemp }}" - temperature_state_template: "{{ value_json.hc1.seltemp }}" - - temp_step: 0.5 - -- platform: mqtt - name: boiler - modes: - - "auto" - - "off" - min_temp: 40 - max_temp: 60 - temp_step: 1 - - current_temperature_topic: "home/ems-esp/boiler_data" - temperature_state_topic: "home/ems-esp/boiler_data" - mode_state_topic: "home/ems-esp/boiler_data" - - current_temperature_template: "{{ value_json.wWCurTmp }}" - temperature_state_template: "{{ value_json.wWSelTemp }}" - mode_state_template: "{% if value_json.wWActivated == 'off' %} off {% else %} auto {% endif %}" - - temperature_command_topic: "home/ems-esp/boiler_cmd_wwtemp" - mode_command_topic: "home/ems-esp/boiler_cmd_wwactivated" - \ No newline at end of file diff --git a/doc/home assistant/customize.yaml b/doc/home assistant/customize.yaml deleted file mode 100644 index 404c78858..000000000 --- a/doc/home assistant/customize.yaml +++ /dev/null @@ -1,12 +0,0 @@ - sensor.boiler_boottime: - friendly_name: Controller last restart - icon: mdi:clock-start - - sensor.showertime_time: - friendly_name: 'Last shower at' - icon: mdi:timelapse - - sensor.boiler_updated: - friendly_name: 'Data last received' - icon: mdi:clock-start - diff --git a/doc/home assistant/notify.yaml b/doc/home assistant/notify.yaml deleted file mode 100644 index 5a244f3ca..000000000 --- a/doc/home assistant/notify.yaml +++ /dev/null @@ -1,16 +0,0 @@ - - name: pushover - platform: pushover - api_key: !secret pushover_api_key - user_key: !secret pushover_user_key - - - name: general_notify - platform: group - services: - - service: ios_pauls_iphone - - service: pushover - - - name: admin_notify - platform: group - services: - - service: ios_pauls_iphone - - service: pushover diff --git a/doc/home assistant/script.yaml b/doc/home assistant/script.yaml deleted file mode 100644 index 49b33a6d2..000000000 --- a/doc/home assistant/script.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# ems-esp -shower_coldshot: - sequence: - - service: mqtt.publish - data_template: - topic: 'home/ems-esp/generic_cmd' - payload: '{cmd:"coldshot"}' - \ No newline at end of file diff --git a/doc/home assistant/sensor.yaml b/doc/home assistant/sensor.yaml deleted file mode 100644 index c91d367d8..000000000 --- a/doc/home assistant/sensor.yaml +++ /dev/null @@ -1,146 +0,0 @@ - -# thermostat HC1 - -- platform: mqtt - state_topic: 'home/ems-esp/thermostat_data' - name: 'Current Room Temperature' - unit_of_measurement: '°C' - value_template: "{{ value_json.hc1.currtemp }}" - -- platform: mqtt - state_topic: 'home/ems-esp/thermostat_data' - name: 'Current Set Temperature' - unit_of_measurement: '°C' - value_template: "{{ value_json.hc1.seltemp }}" - -- platform: mqtt - state_topic: 'home/ems-esp/thermostat_data' - name: 'Current Mode' - value_template: "{{ value_json.hc1.mode }}" - - # boiler - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Warm Water selected temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.wWSelTemp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Warm Water tapwater flow rate' - unit_of_measurement: 'l/min' - value_template: '{{ value_json.wWCurFlow }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Warm Water current temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.wWCurTmp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Warm Water activated' - value_template: '{{ value_json.wWActivated }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Warm Water 3-way valve' - value_template: '{{ value_json.wWHeat }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Current flow temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.curFlowTemp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Return temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.retTemp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Gas' - value_template: '{{ value_json.burnGas }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Boiler pump' - value_template: '{{ value_json.heatPmp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Fan' - value_template: '{{ value_json.fanWork }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Ignition' - value_template: '{{ value_json.ignWork }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Circulation pump' - value_template: '{{ value_json.wWCirc }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Burner max power' - unit_of_measurement: '%' - value_template: '{{ value_json.selBurnPow }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Burner max power' - unit_of_measurement: '%' - value_template: '{{ value_json.selBurnPow }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Burner current power' - unit_of_measurement: '%' - value_template: '{{ value_json.curBurnPow }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'System Pressure' - unit_of_measurement: 'bar' - value_template: '{{ value_json.sysPress }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Boiler temperature' - unit_of_measurement: '°C' - value_template: '{{ value_json.boilTemp }}' - -- platform: mqtt - state_topic: 'home/ems-esp/boiler_data' - name: 'Pump modulation' - unit_of_measurement: '%' - value_template: '{{ value_json.pumpMod }}' - - # shower time duration - -- platform: mqtt - name: 'Last shower duration' - state_topic: "home/ems-esp/shower_data" - value_template: "{{ value_json.duration | is_defined }}" - -- platform: template - sensors: - showertime_time: - value_template: '{{ as_timestamp(states.sensor.last_shower_duration.last_updated) | int | timestamp_custom("%-I:%M on %a %-d %b") }}' - - boiler_updated: - value_template: '{{ as_timestamp(states.sensor.boiler_temperature.last_updated) | timestamp_custom("%H:%M on %d/%b") }}' - - boiler_boottime: - value_template: '{{ as_timestamp(states.automation.see_if_boiler_restarts.attributes.last_triggered) | timestamp_custom("%H:%M:%S %d/%m/%y") }}' - -# general - -- platform: mqtt - state_topic: 'home/ems-esp/status' - name: 'ems-esp status' diff --git a/doc/home assistant/switch.yaml b/doc/home assistant/switch.yaml deleted file mode 100644 index 0ebeba4f9..000000000 --- a/doc/home assistant/switch.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# EMS-ESP -- platform: mqtt - name: "Shower Timer" - state_topic: "home/ems-esp/shower_data" - value_template: "{{ value_json.timer }}" - command_topic: "home/ems-esp/shower_data" - payload_on: '{"timer":"1"}' - payload_off: '{"timer":"0"}' - state_on: "1" - state_off: "0" - -- platform: mqtt - name: "Long Shower Alert" - state_topic: "home/ems-esp/shower_data" - value_template: "{{ value_json.alert }}" - command_topic: "home/ems-esp/shower_data" - payload_on: '{"alert":"1"}' - payload_off: '{"alert":"0"}' - state_on: "1" - state_off: "0" diff --git a/doc/home assistant/ui-lovelace.yaml b/doc/home assistant/ui-lovelace.yaml deleted file mode 100644 index 4f4458658..000000000 --- a/doc/home assistant/ui-lovelace.yaml +++ /dev/null @@ -1,75 +0,0 @@ - - id: ems-esp_id0 - title: Heating - cards: - - id: ems-esp_id1 - type: glance - entities: - - entity: binary_sensor.tap_water - icon: mdi:fire - - entity: binary_sensor.heating - icon: mdi:radiator - - id: ems-esp_id2 - type: entities - title: Boiler - show_header_toggle: false - entities: - - sensor.boiler_boottime - - sensor.boiler_updated - - sensor.ems_esp_status - - type: divider - - sensor.warm_water_selected_temperature - - sensor.warm_water_current_temperature - - sensor.warm_water_activated - - sensor.warm_water_3_way_valve - - type: divider - - sensor.boiler_temperature - - sensor.return_temperature - - sensor.current_flow_temperature - - sensor.pump_modulation - - sensor.ignition - - sensor.gas - - sensor.fan - - sensor.boiler_pump - - sensor.system_pressure - - sensor.burner_max_power - - sensor.burner_current_power - - - id: ems-esp_id3 - type: vertical-stack - cards: - - type: entities - title: Shower Monitor - show_header_toggle: false - entities: - - switch.shower_timer - - switch.long_shower_alert - - type: divider - - sensor.last_shower_duration - - sensor.showertime_time - - type: entity-button - icon: mdi:shower-head - name: send a cold shot of shower water - entity: script.shower_coldshot - tap_action: - action: call-service - service: script.turn_on - service_data: - entity_id: script.shower_coldshot - - - type: history-graph - entities: - - sensor.ems_esp_wifi - - sensor.ems_esp_freemem - - - id: ems-esp_id4 - type: vertical-stack - cards: - - type: history-graph - entities: - - sensor.pc_room_sensor_temperature - - sensor.current_room_temperature - - sensor.dark_sky_temperature - - type: thermostat - entity: climate.thermostat - - type: thermostat - entity: climate.boiler diff --git a/doc/ems gateway/ems-board-white.jpg b/docs/_media/ems gateway/ems-board-white.jpg similarity index 100% rename from doc/ems gateway/ems-board-white.jpg rename to docs/_media/ems gateway/ems-board-white.jpg diff --git a/doc/ems gateway/ems-kit-2.jpg b/docs/_media/ems gateway/ems-kit-2.jpg similarity index 100% rename from doc/ems gateway/ems-kit-2.jpg rename to docs/_media/ems gateway/ems-kit-2.jpg diff --git a/doc/ems gateway/on-boiler.jpg b/docs/_media/ems gateway/on-boiler.jpg similarity index 100% rename from doc/ems gateway/on-boiler.jpg rename to docs/_media/ems gateway/on-boiler.jpg diff --git a/docs/_media/favicon.ico b/docs/_media/favicon.ico new file mode 100644 index 000000000..80fa04076 Binary files /dev/null and b/docs/_media/favicon.ico differ diff --git a/doc/home assistant/ha.png b/docs/_media/home assistant/ha.png similarity index 100% rename from doc/home assistant/ha.png rename to docs/_media/home assistant/ha.png diff --git a/doc/home assistant/ha_notify.jpg b/docs/_media/home assistant/ha_notify.jpg similarity index 100% rename from doc/home assistant/ha_notify.jpg rename to docs/_media/home assistant/ha_notify.jpg diff --git a/docs/_media/logo/EMS-ESP_logo.png b/docs/_media/logo/EMS-ESP_logo.png new file mode 100644 index 000000000..7c3d2fbe0 Binary files /dev/null and b/docs/_media/logo/EMS-ESP_logo.png differ diff --git a/docs/_media/logo/EMS-ESP_logo_dark.png b/docs/_media/logo/EMS-ESP_logo_dark.png new file mode 100644 index 000000000..bd720a9a2 Binary files /dev/null and b/docs/_media/logo/EMS-ESP_logo_dark.png differ diff --git a/docs/_media/logo/boiler.svg b/docs/_media/logo/boiler.svg new file mode 100644 index 000000000..9ea5304f2 --- /dev/null +++ b/docs/_media/logo/boiler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/_media/logo/boiler_128.png b/docs/_media/logo/boiler_128.png new file mode 100644 index 000000000..3abbdc1fa Binary files /dev/null and b/docs/_media/logo/boiler_128.png differ diff --git a/docs/_media/logo/boiler_16.png b/docs/_media/logo/boiler_16.png new file mode 100644 index 000000000..48fffe743 Binary files /dev/null and b/docs/_media/logo/boiler_16.png differ diff --git a/docs/_media/logo/boiler_16x16.ico b/docs/_media/logo/boiler_16x16.ico new file mode 100644 index 000000000..a7f3d2432 Binary files /dev/null and b/docs/_media/logo/boiler_16x16.ico differ diff --git a/docs/_media/logo/boiler_24.png b/docs/_media/logo/boiler_24.png new file mode 100644 index 000000000..8e37e504b Binary files /dev/null and b/docs/_media/logo/boiler_24.png differ diff --git a/docs/_media/logo/boiler_256.png b/docs/_media/logo/boiler_256.png new file mode 100644 index 000000000..007b8510e Binary files /dev/null and b/docs/_media/logo/boiler_256.png differ diff --git a/docs/_media/logo/boiler_32.png b/docs/_media/logo/boiler_32.png new file mode 100644 index 000000000..ba7976f87 Binary files /dev/null and b/docs/_media/logo/boiler_32.png differ diff --git a/docs/_media/logo/boiler_512.png b/docs/_media/logo/boiler_512.png new file mode 100644 index 000000000..15527b591 Binary files /dev/null and b/docs/_media/logo/boiler_512.png differ diff --git a/docs/_media/logo/boiler_64.png b/docs/_media/logo/boiler_64.png new file mode 100644 index 000000000..a2c0aa610 Binary files /dev/null and b/docs/_media/logo/boiler_64.png differ diff --git a/docs/_media/logo/domoticz.png b/docs/_media/logo/domoticz.png new file mode 100644 index 000000000..4350c23c9 Binary files /dev/null and b/docs/_media/logo/domoticz.png differ diff --git a/docs/_media/logo/esp8266.png b/docs/_media/logo/esp8266.png new file mode 100644 index 000000000..0eea496f3 Binary files /dev/null and b/docs/_media/logo/esp8266.png differ diff --git a/docs/_media/logo/home-assistant.png b/docs/_media/logo/home-assistant.png new file mode 100644 index 000000000..24fdd1628 Binary files /dev/null and b/docs/_media/logo/home-assistant.png differ diff --git a/docs/_media/logo/logo-proddy-fw.jpg b/docs/_media/logo/logo-proddy-fw.jpg new file mode 100644 index 000000000..bdd3d146a Binary files /dev/null and b/docs/_media/logo/logo-proddy-fw.jpg differ diff --git a/doc/schematics/Schematic_EMS-ESP.png b/docs/_media/schematics/Schematic_EMS-ESP.png similarity index 100% rename from doc/schematics/Schematic_EMS-ESP.png rename to docs/_media/schematics/Schematic_EMS-ESP.png diff --git a/doc/schematics/breadboard.png b/docs/_media/schematics/breadboard.png similarity index 100% rename from doc/schematics/breadboard.png rename to docs/_media/schematics/breadboard.png diff --git a/doc/schematics/breadboard_example.png b/docs/_media/schematics/breadboard_example.png similarity index 100% rename from doc/schematics/breadboard_example.png rename to docs/_media/schematics/breadboard_example.png diff --git a/doc/schematics/circuit.png b/docs/_media/schematics/circuit.png similarity index 100% rename from doc/schematics/circuit.png rename to docs/_media/schematics/circuit.png diff --git a/doc/schematics/ems_full.diy b/docs/_media/schematics/ems_full.diy similarity index 100% rename from doc/schematics/ems_full.diy rename to docs/_media/schematics/ems_full.diy diff --git a/doc/schematics/wemos_kees.png b/docs/_media/schematics/wemos_kees.png similarity index 100% rename from doc/schematics/wemos_kees.png rename to docs/_media/schematics/wemos_kees.png diff --git a/doc/telnet/telnet_menu.jpg b/docs/_media/telnet/telnet_menu.jpg similarity index 100% rename from doc/telnet/telnet_menu.jpg rename to docs/_media/telnet/telnet_menu.jpg diff --git a/doc/telnet/telnet_stats.PNG b/docs/_media/telnet/telnet_stats.PNG similarity index 100% rename from doc/telnet/telnet_stats.PNG rename to docs/_media/telnet/telnet_stats.PNG diff --git a/doc/telnet/telnet_verbose.PNG b/docs/_media/telnet/telnet_verbose.PNG similarity index 100% rename from doc/telnet/telnet_verbose.PNG rename to docs/_media/telnet/telnet_verbose.PNG diff --git a/doc/web/ems_dashboard.PNG b/docs/_media/web/ems_dashboard.PNG similarity index 100% rename from doc/web/ems_dashboard.PNG rename to docs/_media/web/ems_dashboard.PNG diff --git a/doc/web/system_status.PNG b/docs/_media/web/system_status.PNG similarity index 100% rename from doc/web/system_status.PNG rename to docs/_media/web/system_status.PNG diff --git a/scripts/pre_script.py b/scripts/pre_script.py index ca9db79ba..4ec4bcdd3 100644 --- a/scripts/pre_script.py +++ b/scripts/pre_script.py @@ -7,7 +7,7 @@ Import("env") def build_web(): print("** Building web...") env.Execute( - "node ./tools/webfilesbuilder/node_modules/gulp/bin/gulp.js --cwd ./tools/webfilesbuilder") + "node ./tools/webfilesbuilder/node_modules/gulp/bin/gulp.js --silent --cwd ./tools/webfilesbuilder") def code_check(source, target, env): print("** Starting cppcheck...") diff --git a/src/MyESP.cpp b/src/MyESP.cpp index f0b6b79eb..8ce0e816d 100644 --- a/src/MyESP.cpp +++ b/src/MyESP.cpp @@ -1474,13 +1474,13 @@ void MyESP::_heartbeatCheck(bool force) { StaticJsonDocument doc; JsonObject rootHeartbeat = doc.to(); - rootHeartbeat["version"] = _app_version; - rootHeartbeat["IP"] = WiFi.localIP().toString(); - rootHeartbeat["rssid"] = getWifiQuality(); - rootHeartbeat["load"] = getSystemLoadAverage(); - rootHeartbeat["uptime"] = _getUptime(); - rootHeartbeat["freemem"] = mem_available; - rootHeartbeat["MQTTdisconnects"] = _getSystemDropoutCounter(); + //rootHeartbeat["version"] = _app_version; + //rootHeartbeat["IP"] = WiFi.localIP().toString(); + rootHeartbeat["rssid"] = getWifiQuality(); + rootHeartbeat["load"] = getSystemLoadAverage(); + rootHeartbeat["uptime"] = _getUptime(); + rootHeartbeat["freemem"] = mem_available; + //rootHeartbeat["MQTTdisconnects"] = _getSystemDropoutCounter(); char data[300] = {0}; serializeJson(doc, data, sizeof(data)); diff --git a/src/MyESP.h b/src/MyESP.h index b79bd64c6..fb6a98570 100644 --- a/src/MyESP.h +++ b/src/MyESP.h @@ -9,7 +9,7 @@ #ifndef MyESP_h #define MyESP_h -#define MYESP_VERSION "1.2.22" +#define MYESP_VERSION "1.2.23" #include #include diff --git a/src/custom.htm b/src/custom.htm index ad1e4d745..931ac7948 100644 --- a/src/custom.htm +++ b/src/custom.htm @@ -114,7 +114,7 @@
+ data-content="How often to send the MQTT topics in seconds. Must be at least 1"> diff --git a/src/custom.js b/src/custom.js index 5d8a16fd7..12468ee6d 100644 --- a/src/custom.js +++ b/src/custom.js @@ -8,7 +8,7 @@ var custom_config = { "listen_mode": false, "shower_timer": false, "shower_alert": false, - "publish_time": 0, + "publish_time": 10, "tx_mode": 1 } }; diff --git a/src/ds18.cpp b/src/ds18.cpp index fbaa1ed55..eba3e6b1a 100644 --- a/src/ds18.cpp +++ b/src/ds18.cpp @@ -18,24 +18,28 @@ DS18::DS18() { } DS18::~DS18() { - if (_wire) + if (_wire) { delete _wire; + } } // init -uint8_t DS18::setup(uint8_t gpio, bool parasite) { - uint8_t count; - +void DS18::setup(uint8_t gpio, bool parasite) { _gpio = gpio; _parasite = (parasite ? 1 : 0); // OneWire - if (_wire) + if (_wire) { delete _wire; + } _wire = new OneWire(_gpio); +} - // Search devices - count = loadDevices(); +// clear list and scan for devices +uint8_t DS18::scan() { + _devices.clear(); + + uint8_t count = loadDevices(); // start the search // If no devices found check again pulling up the line if (count == 0) { @@ -48,30 +52,30 @@ uint8_t DS18::setup(uint8_t gpio, bool parasite) { return count; } + // scan every 2 seconds void DS18::loop() { static uint32_t last = 0; - if (millis() - last < DS18_READ_INTERVAL) + if (millis() - last < DS18_READ_INTERVAL) { return; + } last = millis(); // Every second we either start a conversion or read the scratchpad static bool conversion = true; if (conversion) { - // Start conversion _wire->reset(); _wire->skip(); _wire->write(DS18_CMD_START_CONVERSION, _parasite); } else { // Read scratchpads for (unsigned char index = 0; index < _devices.size(); index++) { - // Read scratchpad if (_wire->reset() == 0) { - // Force a CRC check error - _devices[index].data[0] = _devices[index].data[0] + 1; + _devices[index].data[0] = _devices[index].data[0] + 1; // Force a CRC check error return; } + // Read each scratchpad _wire->select(_devices[index].address); _wire->write(DS18_CMD_READ_SCRATCHPAD); @@ -81,8 +85,7 @@ void DS18::loop() { } if (_wire->reset() != 1) { - // Force a CRC check error - _devices[index].data[0] = _devices[index].data[0] + 1; + _devices[index].data[0] = _devices[index].data[0] + 1; // Force a CRC check error return; } @@ -153,8 +156,9 @@ char * DS18::getDeviceString(char * buffer, unsigned char index) { byte 8: SCRATCHPAD_CRC */ int16_t DS18::getRawValue(unsigned char index) { - if (index >= _count) + if (index >= _count) { return 0; + } uint8_t * data = _devices[index].data; @@ -170,23 +174,35 @@ int16_t DS18::getRawValue(unsigned char index) { } } else { byte cfg = (data[4] & 0x60); - if (cfg == 0x00) + if (cfg == 0x00) { raw = raw & ~7; // 9 bit res, 93.75 ms - else if (cfg == 0x20) + } else if (cfg == 0x20) { raw = raw & ~3; // 10 bit res, 187.5 ms - else if (cfg == 0x40) + } else if (cfg == 0x40) { raw = raw & ~1; // 11 bit res, 375 ms // 12 bit res, 750 ms + } } return raw; } -// return real value as a float -// The raw temperature data is in units of sixteenths of a degree, so the value must be divided by 16 in order to convert it to degrees. +// return real value as a float, rounded to 2 decimal places float DS18::getValue(unsigned char index) { - float value = (float)getRawValue(index) / 16.0; - return value; + int16_t raw_value = getRawValue(index); + + // check if valid + if ((raw_value == DS18_CRC_ERROR) || (raw_value == DS18_DISCONNECTED)) { + return (float)DS18_DISCONNECTED; + } + + // The raw temperature data is in units of sixteenths of a degree, + // so the value must first be divided by 16 in order to convert it to degrees. + float new_value = (float)(raw_value / 16.0); + + // round to 2 decimal places + // https://arduinojson.org/v6/faq/how-to-configure-the-serialization-of-floats/ + return (int)(new_value * 100 + 0.5) / 100.0; } // check for a supported DS chip version @@ -196,8 +212,9 @@ bool DS18::validateID(unsigned char id) { // return the type unsigned char DS18::chip(unsigned char index) { - if (index < _count) + if (index < _count) { return _devices[index].address[0]; + } return 0; } @@ -206,6 +223,7 @@ uint8_t DS18::loadDevices() { uint8_t address[8]; _wire->reset(); _wire->reset_search(); + while (_wire->search(address)) { // Check CRC if (_wire->crc8(address, 7) == address[7]) { diff --git a/src/ds18.h b/src/ds18.h index 3e2dd717e..aa1c2986f 100644 --- a/src/ds18.h +++ b/src/ds18.h @@ -36,7 +36,8 @@ class DS18 { DS18(); ~DS18(); - uint8_t setup(uint8_t gpio, bool parasite); + void setup(uint8_t gpio, bool parasite); + uint8_t scan(); void loop(); char * getDeviceString(char * s, unsigned char index); float getValue(unsigned char index); diff --git a/src/ems-esp.cpp b/src/ems-esp.cpp index 706354e7a..8fb7b7f2a 100644 --- a/src/ems-esp.cpp +++ b/src/ems-esp.cpp @@ -98,9 +98,9 @@ static const command_t project_cmds[] PROGMEM = { {true, "listen_mode ", "when set to on all automatic Tx are disabled"}, {true, "shower_timer ", "send MQTT notification on all shower durations"}, {true, "shower_alert ", "stop hot water to send 3 cold burst warnings after max shower time is exceeded"}, - {true, "publish_time ", "set frequency for publishing data to MQTT (0=automatic)"}, + {true, "publish_time ", "set frequency for publishing data to MQTT"}, {true, "tx_mode ", "changes Tx logic. 1=EMS generic, 2=EMS+, 3=HT3"}, - {true, "master_thermostat [product id]", "product id to use as the master thermostat. Use no args for list."}, + {true, "master_thermostat [product id]", "set default thermostat to use. Omit [product id] to show options."}, {false, "info", "show current values deciphered from the EMS messages"}, {false, "log ", "send read request to the thermostat for heating circuit hc 1-4"}, {false, "thermostat temp [hc] ", "set current thermostat temperature"}, @@ -505,13 +505,27 @@ void showInfo() { char valuestr[8] = {0}; // for formatting temp myDebug_P(PSTR("%sExternal temperature sensors:%s"), COLOR_BOLD_ON, COLOR_BOLD_OFF); for (uint8_t i = 0; i < EMSESP_Settings.dallas_sensors; i++) { - myDebug_P(PSTR(" Sensor #%d %s: %s C"), i + 1, ds18.getDeviceString(buffer, i), _float_to_char(valuestr, ds18.getValue(i))); + float sensorValue = ds18.getValue(i); + if (sensorValue != DS18_DISCONNECTED) { + myDebug_P(PSTR(" Sensor #%d %s: %s C"), i + 1, ds18.getDeviceString(buffer, i), _float_to_char(valuestr, sensorValue)); + } } } myDebug_P(PSTR("")); // newline } +// scan for external Dallas sensors and display +void scanDallas() { + EMSESP_Settings.dallas_sensors = ds18.scan(); + if (EMSESP_Settings.dallas_sensors) { + char buffer[128] = {0}; + for (uint8_t i = 0; i < EMSESP_Settings.dallas_sensors; i++) { + myDebug_P(PSTR("External temperature sensor %s found"), ds18.getDeviceString(buffer, i)); + } + } +} + // send all dallas sensor values as a JSON package to MQTT void publishSensorValues() { // don't send if MQTT is connected @@ -531,9 +545,8 @@ void publishSensorValues() { // see if the sensor values have changed, if so send it on for (uint8_t i = 0; i < EMSESP_Settings.dallas_sensors; i++) { - // round to 2 decimal places. from https://arduinojson.org/v6/faq/how-to-configure-the-serialization-of-floats/ - float sensorValue = (int)(ds18.getValue(i) * 100 + 0.5) / 100.0; - if (sensorValue != DS18_DISCONNECTED && sensorValue != DS18_CRC_ERROR) { + float sensorValue = ds18.getValue(i); + if (sensorValue != DS18_DISCONNECTED) { sprintf(label, PAYLOAD_EXTERNAL_SENSORS, (i + 1)); sensors[label] = sensorValue; hasdata = true; @@ -1083,8 +1096,13 @@ bool SetListCallback(MYESP_FSACTION_t action, uint8_t wc, const char * setting, // publish_time if ((strcmp(setting, "publish_time") == 0) && (wc == 2)) { - EMSESP_Settings.publish_time = atoi(value); - ok = true; + int16_t val = atoi(value); + if (val > 0) { + EMSESP_Settings.publish_time = atoi(value); + ok = true; + } else { + myDebug_P(PSTR("Error. time must be at least 1 second")); + } } // tx_mode @@ -1133,12 +1151,7 @@ bool SetListCallback(MYESP_FSACTION_t action, uint8_t wc, const char * setting, myDebug_P(PSTR(" listen_mode=%s"), EMSESP_Settings.listen_mode ? "on" : "off"); myDebug_P(PSTR(" shower_timer=%s"), EMSESP_Settings.shower_timer ? "on" : "off"); myDebug_P(PSTR(" shower_alert=%s"), EMSESP_Settings.shower_alert ? "on" : "off"); - - if (EMSESP_Settings.publish_time) { - myDebug_P(PSTR(" publish_time=%d"), EMSESP_Settings.publish_time); - } else { - myDebug_P(PSTR(" publish_time=0 (always publish on data received)"), EMSESP_Settings.publish_time); - } + myDebug_P(PSTR(" publish_time=%d"), EMSESP_Settings.publish_time); if (EMSESP_Settings.master_thermostat) { myDebug_P(PSTR(" master_thermostat=%d"), EMSESP_Settings.master_thermostat); @@ -1188,9 +1201,9 @@ void _showCommands(uint8_t event) { // we set the logging here void TelnetCallback(uint8_t event) { if (event == TELNET_EVENT_CONNECT) { - ems_setLogging(EMS_SYS_LOGGING_DEFAULT); + ems_setLogging(EMS_SYS_LOGGING_DEFAULT, true); } else if (event == TELNET_EVENT_DISCONNECT) { - ems_setLogging(EMS_SYS_LOGGING_NONE); + ems_setLogging(EMS_SYS_LOGGING_NONE, true); } else if ((event == TELNET_EVENT_SHOWCMD) || (event == TELNET_EVENT_SHOWSET)) { _showCommands(event); } @@ -1229,6 +1242,8 @@ void TelnetCommandCallback(uint8_t wc, const char * commandLine) { } if (strcmp(first_cmd, "autodetect") == 0) { + myDebug("Scanning for new EMS devices and attached external sensors..."); + scanDallas(); ems_clearDeviceList(); ems_doReadCommand(EMS_TYPE_UBADevices, EMS_Boiler.device_id); ok = true; @@ -1464,14 +1479,18 @@ void MQTTCallback(unsigned int type, const char * topic, const char * message) { const char * shower_alert = doc[TOPIC_SHOWER_ALERT]; if (shower_alert) { EMSESP_Settings.shower_alert = ((shower_alert[0] - MYESP_MQTT_PAYLOAD_OFF) == 1); - myDebug_P(PSTR("Shower alert has been set to %s"), EMSESP_Settings.shower_alert ? "enabled" : "disabled"); + if (ems_getLogging() != EMS_SYS_LOGGING_NONE) { + myDebug_P(PSTR("Shower alert has been set to %s"), EMSESP_Settings.shower_alert ? "enabled" : "disabled"); + } } // assumes payload is "1" or "0" const char * shower_timer = doc[TOPIC_SHOWER_TIMER]; if (shower_timer) { EMSESP_Settings.shower_timer = ((shower_timer[0] - MYESP_MQTT_PAYLOAD_OFF) == 1); - myDebug_P(PSTR("Shower timer has been set to %s"), EMSESP_Settings.shower_timer ? "enabled" : "disabled"); + if (ems_getLogging() != EMS_SYS_LOGGING_NONE) { + myDebug_P(PSTR("Shower timer has been set to %s"), EMSESP_Settings.shower_timer ? "enabled" : "disabled"); + } } return; @@ -1940,7 +1959,7 @@ void setup() { regularUpdatesTimer.attach(REGULARUPDATES_TIME, do_regularUpdates); // regular reads from the EMS } - // set timers for MQTT publish, only if publish_time is not 0 (automatic mode) + // set timers for MQTT publish if (EMSESP_Settings.publish_time) { publishValuesTimer.attach(EMSESP_Settings.publish_time, do_publishValues); // post MQTT EMS values } @@ -1956,7 +1975,8 @@ void setup() { systemCheckTimer.attach(SYSTEMCHECK_TIME, do_systemCheck); // check if EMS is reachable // check for Dallas sensors - EMSESP_Settings.dallas_sensors = ds18.setup(EMSESP_Settings.dallas_gpio, EMSESP_Settings.dallas_parasite); // returns #sensors + ds18.setup(EMSESP_Settings.dallas_gpio, EMSESP_Settings.dallas_parasite); + scanDallas(); } // @@ -1970,11 +1990,6 @@ void loop() { ds18.loop(); } - // publish EMS data to MQTT, only if in automatic mode (publish_time=0) otherwise it'll use the timer - if (EMSESP_Settings.publish_time == 0) { - publishEMSValues(false); - } - // if we have an EMS connect go and fetch some data and MQTT publish it if (_need_first_publish) { publishEMSValues(false); diff --git a/src/ems.cpp b/src/ems.cpp index a99124959..1cbd8cff4 100644 --- a/src/ems.cpp +++ b/src/ems.cpp @@ -210,7 +210,7 @@ void ems_init() { strlcpy(EMS_Thermostat.version, "?", sizeof(EMS_Thermostat.version)); // default logging is none - ems_setLogging(EMS_SYS_LOGGING_DEFAULT); + ems_setLogging(EMS_SYS_LOGGING_DEFAULT, true); } // Getters and Setters for parameters @@ -282,27 +282,33 @@ _EMS_SYS_LOGGING ems_getLogging() { } void ems_setLogging(_EMS_SYS_LOGGING loglevel, uint16_t type_id) { - if (loglevel <= EMS_SYS_LOGGING_JABBER) { - EMS_Sys_Status.emsLogging = loglevel; + EMS_Sys_Status.emsLogging_typeID = type_id; + ems_setLogging(EMS_SYS_LOGGING_WATCH, false); +} - if (loglevel == EMS_SYS_LOGGING_NONE) { - myDebug_P(PSTR("System Logging set to None")); - } else if (loglevel == EMS_SYS_LOGGING_BASIC) { - myDebug_P(PSTR("System Logging set to Basic")); - } else if (loglevel == EMS_SYS_LOGGING_VERBOSE) { - myDebug_P(PSTR("System Logging set to Verbose")); - } else if (loglevel == EMS_SYS_LOGGING_THERMOSTAT) { - myDebug_P(PSTR("System Logging set to Thermostat only")); - } else if (loglevel == EMS_SYS_LOGGING_SOLARMODULE) { - myDebug_P(PSTR("System Logging set to Solar Module only")); - } else if (loglevel == EMS_SYS_LOGGING_RAW) { - myDebug_P(PSTR("System Logging set to Raw mode")); - } else if (loglevel == EMS_SYS_LOGGING_JABBER) { - myDebug_P(PSTR("System Logging set to Jabber mode")); - } else if (loglevel == EMS_SYS_LOGGING_WATCH) { - EMS_Sys_Status.emsLogging_typeID = type_id; - myDebug_P(PSTR("System Logging set to Watch mode")); - } +void ems_setLogging(_EMS_SYS_LOGGING loglevel, bool quiet) { + EMS_Sys_Status.emsLogging = loglevel; + + if (quiet) { + return; // no reporting to console + } + + if (loglevel == EMS_SYS_LOGGING_NONE) { + myDebug_P(PSTR("System Logging set to None")); + } else if (loglevel == EMS_SYS_LOGGING_BASIC) { + myDebug_P(PSTR("System Logging set to Basic")); + } else if (loglevel == EMS_SYS_LOGGING_VERBOSE) { + myDebug_P(PSTR("System Logging set to Verbose")); + } else if (loglevel == EMS_SYS_LOGGING_THERMOSTAT) { + myDebug_P(PSTR("System Logging set to Thermostat only")); + } else if (loglevel == EMS_SYS_LOGGING_SOLARMODULE) { + myDebug_P(PSTR("System Logging set to Solar Module only")); + } else if (loglevel == EMS_SYS_LOGGING_RAW) { + myDebug_P(PSTR("System Logging set to Raw mode")); + } else if (loglevel == EMS_SYS_LOGGING_JABBER) { + myDebug_P(PSTR("System Logging set to Jabber mode")); + } else if (loglevel == EMS_SYS_LOGGING_WATCH) { + myDebug_P(PSTR("System Logging set to Watch mode")); } } @@ -2135,21 +2141,31 @@ void ems_printDevices() { have_unknowns = true; } - myDebug_P(PSTR(" %s: %s%s%s (DeviceID:0x%02X ProductID:%d Version:%s)"), - device_type, - COLOR_BOLD_ON, - device_string, - COLOR_BOLD_OFF, - it->device_id, - it->product_id, - it->version); - } + if ((it->device_type == EMS_DEVICE_TYPE_THERMOSTAT) && (EMS_Sys_Status.emsMasterThermostat == it->product_id)) { + myDebug_P(PSTR(" %s: %s%s%s (DeviceID:0x%02X ProductID:%d Version:%s) [master]"), + device_type, + COLOR_BOLD_ON, + device_string, + COLOR_BOLD_OFF, + it->device_id, + it->product_id, + it->version); + } else { + myDebug_P(PSTR(" %s: %s%s%s (DeviceID:0x%02X ProductID:%d Version:%s)"), + device_type, + COLOR_BOLD_ON, + device_string, + COLOR_BOLD_OFF, + it->device_id, + it->product_id, + it->version); + } + } myDebug_P(PSTR("")); // newline if (have_unknowns) { - myDebug_P( - PSTR("You have a device is that is not yet known by EMS-ESP. Please report this as a GitHub issue so we can expand the EMS device library.")); + myDebug_P(PSTR("One or more devices are not recognized by EMS-ESP. Please report this in GitHub.")); } } else { myDebug_P(PSTR("No were devices recognized. This may be because Tx is disabled or failing.")); diff --git a/src/ems.h b/src/ems.h index f8e8b6f22..993a04e9f 100644 --- a/src/ems.h +++ b/src/ems.h @@ -434,7 +434,8 @@ void ems_setWarmWaterActivated(bool activated); void ems_setWarmWaterOnetime(bool activated); void ems_setWarmTapWaterActivated(bool activated); void ems_setPoll(bool b); -void ems_setLogging(_EMS_SYS_LOGGING loglevel, uint16_t type_id = 0); +void ems_setLogging(_EMS_SYS_LOGGING loglevel, uint16_t type_id); +void ems_setLogging(_EMS_SYS_LOGGING loglevel, bool quiet = false); void ems_setWarmWaterModeComfort(uint8_t comfort); void ems_setModels(); void ems_setTxDisabled(bool b); diff --git a/src/version.h b/src/version.h index 55b458466..32897e3e2 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define APP_VERSION "1.9.5b16" +#define APP_VERSION "1.9.5b17" diff --git a/tools/wsemulator/wserver.js b/tools/wsemulator/wserver.js index 8f5353f82..2f5f461e2 100644 --- a/tools/wsemulator/wserver.js +++ b/tools/wsemulator/wserver.js @@ -97,7 +97,7 @@ var custom_configfile = { "listen_mode": false, "shower_timer": true, "shower_alert": false, - "publish_time": 0, + "publish_time": 10, "tx_mode": 1 } };