Giter VIP home page Giter VIP logo

Comments (8)

Victor-Mo avatar Victor-Mo commented on September 23, 2024

@Chreetz

Hi Chris,

Sorry for the late reply. To be honest I really do not if there are different dialects. What I did see is that there is a difference between thermostats. It looks like the Moduline 300 requests more information than any of the other thermostats (moduline IV / Moduline 30).

If I look at the hex data it looks pretty much like the data I have seen from other thermostats. I have marked in the attached picture a number of messages (from your data) : hex_data_dump_marked

0xA4 - Current output water temperature in Celsius.
0x90 - Maximum heating water temperate.
0x8A - Reports the temperature of the external temperature sensor of the boiler.
0x07 - Start the burner and set burner power.
0xA3 - Display code (-H, =H)

The external temperature sensor (the 0x8A msg) does not report in celsius. I think it is the raw A/D converter output of the external NTC resistor. But i do not have an external sensor. I did do a test with 2 different resistor values ( see: Wiki )

If you need any additional information, just let me know.

Regards,

Victor

from irt-esp.

Chreetz avatar Chreetz commented on September 23, 2024

Hi Victor,
Thanks - I'm sorry for my late response too. Guess I missed the github alert.
I'm still trying to understand the way VSC and Platform.IO work. It was easy to setup, build and upload. But things like the way the webfiles end up on the device still puzzles me.
Chris

from irt-esp.

Chreetz avatar Chreetz commented on September 23, 2024

Hi,
There is still a thing that puzzles me.

The situation now:
-The EMS Dashboard indicates a Current Flow Temp of 14 degrees
-The Moduline 30 displays 25 degrees as setpoint <- calculated by Moduline
-The Moduline 30 displays 22 degrees as measured (aanvoer?) <- Measured value from the boiler
-The Moduline 30 displays 21 degrees as outside temp <- Measured value from the boiler

Where is the 22 degrees in the communication?

System Logging set to Raw mode

->
(00:52:54.669) irt_raw: 05: 90 E9 4C 72 A1
(00:52:54.670) irt_raw: 04: 01 11 E5 9C
(00:52:54.670) irt_raw: 04: 07 CC 7C 6F
(00:53:00.171) irt_raw: 05: 90 F8 DD 26 A1
(00:53:00.172) irt_raw: 05: 82 12 1D D2 00
(00:53:00.172) irt_raw: 05: A3 03 A5 03 07
(00:53:00.172) irt_raw: 05: 8A 77 47 61 8C
(00:53:00.173) irt_raw: 05: 84 20 C7 F3 55
Publishing boiler data via MQTT
(00:53:04.893) irt_raw: 05: 90 35 BA 20 A1
(00:53:04.893) irt_raw: 04: 73 52 25 43
(00:53:04.894) irt_raw: 04: 78 04 00 70
(00:53:04.894) irt_raw: 04: 04 00 0B 28
01:11 04:00 05:04 07:CC 73:52 78:04 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:53:09.914) irt_raw: 05: 90 68 B6 AA A1
(00:53:09.915) irt_raw: 05: 82 5D BD FE 00
(00:53:09.915) irt_raw: 05: A3 19 7F 74 07
(00:53:09.915) irt_raw: 05: 8A DE 53 7A 8C
(00:53:09.915) irt_raw: 05: 84 0A D5 EF 55
Publishing boiler data via MQTT
(00:53:15.095) irt_raw: 05: 90 AC 3E 29 A1
(00:53:15.096) irt_raw: 04: 73 52 25 43
(00:53:15.096) irt_raw: 04: 78 05 04 62
(00:53:15.096) irt_raw: 04: 05 04 28 AD
01:11 04:00 05:04 07:CC 73:52 78:05 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:53:21.036) irt_raw: 05: 90 4E 5D 61 A1
(00:53:21.037) irt_raw: 05: 82 4B C5 2B 00
(00:53:21.037) irt_raw: 05: A3 93 9B C2 07
(00:53:21.037) irt_raw: 05: 8A 85 F1 76 8C
(00:53:21.037) irt_raw: 05: 84 52 DC 7B 55
Publishing boiler data via MQTT
(00:53:25.757) irt_raw: 05: 90 44 4B 2D A1
(00:53:25.757) irt_raw: 05: C9 81 40 CB 00
(00:53:25.757) irt_raw: 05: DE 65 05 00 8C
(00:53:31.218) irt_raw: 05: 90 BE 80 C7 A1
(00:53:31.218) irt_raw: 05: 82 AC 25 57 00
(00:53:31.218) irt_raw: 05: A3 8C 3A 4A 07
(00:53:31.219) irt_raw: 05: 8A F8 DD 3C 8C
(00:53:31.219) irt_raw: 05: 84 12 1D D4 55
Publishing boiler data via MQTT
(00:53:36.079) irt_raw: 05: 90 03 A5 30 A1
(00:53:36.079) irt_raw: 05: 81 77 47 6A 45
(00:53:36.080) irt_raw: 05: 93 20 C7 E4 00
(00:53:36.080) irt_raw: 05: A4 35 BA 14 0E
Publishing boiler data via MQTT
(00:53:41.061) irt_raw: 05: 90 85 D8 C8 A1
(00:53:41.061) irt_raw: 05: 82 E2 D2 3C 00
(00:53:41.061) irt_raw: 05: A3 18 98 C1 07
(00:53:41.062) irt_raw: 05: 8A 4E 5D 7B 8C
(00:53:41.062) irt_raw: 05: 84 4B C5 2D 55
Publishing boiler data via MQTT
(00:53:45.882) irt_raw: 05: 90 93 9B F1 A1
(00:53:45.882) irt_raw: 04: 73 52 25 43
(00:53:45.883) irt_raw: 04: 78 01 FF AD
(00:53:45.883) irt_raw: 04: 73 52 25 43
(00:53:45.883) irt_raw: 04: 78 07 FF A1
01:11 04:00 05:04 07:CC 73:52 78:07 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:53:50.903) irt_raw: 05: 90 85 F1 6C A1
(00:53:50.904) irt_raw: 05: 82 52 DC 7D 00
(00:53:50.904) irt_raw: 05: A3 44 4B 1E 07
(00:53:50.904) irt_raw: 05: 8A 81 40 88 8C
(00:53:50.904) irt_raw: 05: 84 65 05 5A 55
Publishing boiler data via MQTT
(00:53:56.444) irt_raw: 05: 90 BE 80 C7 A1
(00:53:56.444) irt_raw: 04: 01 11 8B 3D
(00:53:56.445) irt_raw: 04: 07 CC 0D B2
(00:54:01.886) irt_raw: 05: 90 FC 44 78 A1
(00:54:01.886) irt_raw: 05: 82 E9 34 99 00
(00:54:01.886) irt_raw: 05: A3 DF 09 20 07
(00:54:01.887) irt_raw: 05: 8A F4 14 2B 8C
(00:54:01.887) irt_raw: 05: 84 02 D7 F7 55
Publishing boiler data via MQTT
(00:54:06.627) irt_raw: 05: 90 6B 98 14 A1
(00:54:06.628) irt_raw: 04: 73 52 25 43
(00:54:06.628) irt_raw: 04: 78 04 00 70
(00:54:06.628) irt_raw: 04: 04 00 12 4C
01:11 04:00 05:04 07:CC 73:52 78:04 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:54:12.549) irt_raw: 05: 90 A8 A6 73 A1
(00:54:12.549) irt_raw: 05: 82 93 B4 5F 00
(00:54:12.549) irt_raw: 05: A3 BB 9E 86 07
(00:54:12.550) irt_raw: 05: 8A DF 3A C5 8C
(00:54:12.550) irt_raw: 05: 84 9B CB AC 55
Publishing boiler data via MQTT
(00:54:17.289) irt_raw: 05: 90 6C 4E 69 A1
(00:54:17.290) irt_raw: 04: 73 52 25 43
(00:54:17.290) irt_raw: 04: 78 05 04 62
(00:54:17.290) irt_raw: 04: 05 04 74 C4
01:11 04:00 05:04 07:CC 73:52 78:05 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:54:22.250) irt_raw: 05: 90 18 98 F2 A1
(00:54:22.251) irt_raw: 05: 82 4E 5D 73 00
(00:54:22.251) irt_raw: 05: A3 4B C5 0A 07
(00:54:22.251) irt_raw: 05: 8A 93 9B EB 8C
(00:54:22.251) irt_raw: 05: 84 85 F1 78 55
Publishing boiler data via MQTT
(00:54:27.391) irt_raw: 05: 90 52 DC 6F A1
(00:54:27.391) irt_raw: 05: C9 44 4B 74 00
(00:54:27.391) irt_raw: 05: DE 81 40 DC 8C
(00:54:32.391) irt_raw: 05: 90 65 05 4E A1
(00:54:32.392) irt_raw: 05: 82 BE 80 D5 00
(00:54:32.392) irt_raw: 05: A3 AC 25 76 07
(00:54:32.392) irt_raw: 05: 8A 8C 3A 63 8C
(00:54:32.393) irt_raw: 05: 84 F8 DD 32 55
Publishing boiler data via MQTT
(00:54:37.292) irt_raw: 05: 90 12 1D C0 A1
(00:54:37.293) irt_raw: 05: 81 03 A5 21 45
(00:54:37.293) irt_raw: 05: 93 77 47 78 00
(00:54:37.293) irt_raw: 05: A4 20 C7 D3 0E
Publishing boiler data via MQTT
(00:54:42.274) irt_raw: 05: 90 35 BA 20 A1
(00:54:42.274) irt_raw: 05: 82 85 D8 DA 00
(00:54:42.275) irt_raw: 05: A3 E2 D2 1D 07
(00:54:42.275) irt_raw: 05: 8A 18 98 E8 8C
(00:54:42.275) irt_raw: 05: 84 4E 5D 75 55
Publishing boiler data via MQTT
(00:54:47.556) irt_raw: 05: 90 4B C5 39 A1
(00:54:47.556) irt_raw: 04: 73 52 25 43
(00:54:47.557) irt_raw: 04: 78 01 FF AD
(00:54:47.557) irt_raw: 04: 73 52 25 43
(00:54:47.557) irt_raw: 04: 78 07 FF A1
01:11 04:00 05:04 07:CC 73:52 78:07 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:54:52.538) irt_raw: 05: 90 93 9B F1 A1
(00:54:52.538) irt_raw: 05: 82 85 F1 7E 00
(00:54:52.538) irt_raw: 05: A3 52 DC 5C 07
(00:54:52.539) irt_raw: 05: 8A 44 4B 37 8C
(00:54:52.539) irt_raw: 05: 84 81 40 86 55
Publishing boiler data via MQTT
(00:54:57.178) irt_raw: 05: 90 65 05 4E A1
(00:54:57.179) irt_raw: 04: 01 11 DF 74
(00:54:57.179) irt_raw: 04: 07 CC CD 99
(00:55:03.120) irt_raw: 05: 90 F4 2D D5 A1
(00:55:03.120) irt_raw: 05: 82 72 E1 C9 00
(00:55:03.120) irt_raw: 05: A3 97 4C BD 07
(00:55:03.121) irt_raw: 05: 8A 73 C8 67 8C
(00:55:03.121) irt_raw: 05: 84 27 42 DB 55
Publishing boiler data via MQTT
(00:55:07.860) irt_raw: 05: 90 81 72 5A A1
(00:55:07.861) irt_raw: 04: 73 52 25 43
(00:55:07.861) irt_raw: 04: 78 04 00 70
(00:55:07.861) irt_raw: 04: 04 00 CF 13
01:11 04:00 05:04 07:CC 73:52 78:04 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07 A4:0E C9:00 DE:8C 0y
(00:55:12.861) irt_raw: 05: 90 52 DC 6F A1
(00:55:12.861) irt_raw: 05: 82 44 4B 3F 00
(00:55:12.862) irt_raw: 05: A3 81 40 A1 07
(00:55:12.862) irt_raw: 05: 8A 65 05 54 8C
(00:55:12.862) irt_raw: 05: 84 BE 80 D3 55
Publishing boiler data via MQTT
(00:55:17.562) irt_raw: 05: 90 AC 25 45 A1
(00:55:17.562) irt_raw: 04: 73 52 25 43
(00:55:17.563) irt_raw: 04: 78 05 04 62
(00:55:17.563) irt_raw: 04: 05 04 49 30
01:11 04:00 05:04 07:CC 73:52 78:05 | 81:45 82:00 84:55 8A:8C 90:A1 93:00 A3:07

from irt-esp.

Victor-Mo avatar Victor-Mo commented on September 23, 2024

Hi Chreetz,

There are a number of steps in the way the web files are added to the firmware. From the directory './tools/webfilesbuilder' The gulp.js script is run (node node_modules/gulp/bin/gulp.js) (see also: https://emsesp.github.io/docs/#/Building-firmware ).

The gulp.js script will process the html and javascript from './src/websrc/' . It will concatenate, gzip and convert them to 'c' header files (.h). The output can be found in './src/webh/'.

These header files are then included bij ./src/myESP.h and build into the firmware.

The 'A4 35 BA 14 0E' message reports a outgoing water temperature of 14 (0x0E) degrees. This seems to be a bit low. I always have found this value a bit low, also on my system, maybe the Moduline adds a offset of 8 ? With an outside temperature of 21 degrees an water temperature of 22 degrees makes more sense. Also the moduline is requesting the boiler to limit the water temperature to 17 (0x11) degrees (01 11 DF 74). This also seems to have an offset of 8 with the setpoint of 25 degrees.

The outside temperature is reported through the 0x8A message (8A 65 05 54 8C) It reports the raw measured value of the outside temperature NTC resistor. I still need to add a conversion table to convert raw measured values to degrees. But at least I now know the raw value of 0x8C means 21 degrees ! (I do not have an outside temperature).

from irt-esp.

Victor-Mo avatar Victor-Mo commented on September 23, 2024

I just did a test on my boiler and I can confirm there is a 8 degree offset, i will fix that in a next version.

from irt-esp.

Chreetz avatar Chreetz commented on September 23, 2024

Hi Victor,

Thanks for your explanation.

The thing that puzzled me the most in the build process is I assumed the webfiles are stored in the spiffs filesystem. So it is not the webpages are translated into consts...

As for the temperature: I don't think it is a fixed offset. At higher temperatures the values seem to match although the Moduline is behind than the iRT. When the temp stabilizes at 72 the values match.
Looks like: EMS_Boiler.curFlowTemp = (data[4] * 8.6) + 100;

And for the outside Temperature:
Since it's been quite warm lately I have some value/temp pairs, but I think we need temperatures aound 5 degrees or less to create a workable translation function:

iRT vs Moduline
148 = 18 graden
137 = 22 graden
114 = 31 graden

I recorded a start (boot) of the system.
There are some F0 messages (which are not stored?):

(17:02:48.024) irt_crcErr3: 0C: 01 01 FE 90 90 93 93 9B 9B F1 73 73
(17:02:50.784) irt_crcErr1: 03: 01 01 FE
(17:02:51.444) irt_crcErr1: 03: 01 01 FE
(17:02:52.103) irt_crcErr1: 03: 01 01 FE
(17:02:52.763) irt_crcErr1: 03: 01 01 FE
(17:02:53.423) irt_crcErr1: 03: 01 01 FE
(17:02:54.083) irt_crcErr1: 03: 01 01 FE
(17:02:54.743) irt_crcErr1: 03: 01 01 FE
(17:02:59.682) irt_raw: 05: 90 00 DC CB A1
(17:02:59.682) irt_raw: 05: 82 19 66 31 00
(17:02:59.682) irt_raw: 05: A3 6F 49 40 06
(17:02:59.683) irt_raw: 05: 8A DF 21 A9 92
(17:02:59.683) irt_raw: 05: 84 2B C1 FD 55
01:15 04:00 05:04 07:CC 73:52 78:05 | 81:45 82:00 84:55 8A:92 90:A1 93:00 A3:06 A4:0F C9:00 DE:8C 0U
(17:03:04.500) irt_raw: 05: 90 40 9A 4A A1
(17:03:04.500) irt_raw: 05: 81 A8 A6 62 45
(17:03:04.501) irt_raw: 05: 93 93 B4 4E 00
(17:03:04.501) irt_raw: 05: A4 BB 9E 81 0F
Publishing boiler data via MQTT
(17:03:05.663) irt_raw: 05: F0 1F FE 1D 82
(17:03:05.663) irt_raw: 05: F0 1F FF 19 D3
(17:03:05.663) irt_raw: 05: F0 82 C5 D2 01
(17:03:05.664) irt_raw: 05: F0 82 C6 DE F1
(17:03:05.664) irt_raw: 05: F0 01 FA 31 BC
(17:03:05.664) irt_raw: 05: F0 01 FB 35 02
(17:03:17.374) irt_raw: 05: F0 1F FE 1D 82
(17:03:17.374) irt_raw: 05: F0 1F FF 19 D3
(17:03:17.375) irt_raw: 05: F0 82 CC F6 01
(17:03:17.375) irt_raw: 05: F0 82 CD F2 20
(17:03:17.375) irt_raw: 05: F0 01 21 76 34
(17:03:21.912) irt_raw: 05: 90 9B CB B8 A1
(17:03:21.912) irt_raw: 05: 82 6C 4E 7B 00
(17:03:21.912) irt_raw: 05: A3 DB 8A 16 03
(17:03:21.913) irt_raw: 05: 8A FB 8E 6F 92
(17:03:21.913) irt_raw: 05: 84 FF F4 98 55
01:15 04:00 05:04 07:CC 73:52 78:05 | 81:45 82:00 84:55 8A:92 90:A1 93:00 A3:03 A4:0F C9:00 DE:8C 0H

Best,
Chris

from irt-esp.

Victor-Mo avatar Victor-Mo commented on September 23, 2024

I have added logging of the 0xF0 messages to the status logging (log s) in the latest v1.9.10 build. I have added a conversion for the reporting of the temperatures. The outside temp. should also be correct.

from irt-esp.

Victor-Mo avatar Victor-Mo commented on September 23, 2024

Closing the issue, feel free to reopen if necessary.

from irt-esp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.