-
-
Notifications
You must be signed in to change notification settings - Fork 97
Add SM100 EMS-Plus device #96
Comments
could you try the latest dev build (under dev branch) and do a |
|
Can you pull and try again? It didn’t look like a deep scan was performed
…On Tue, 16 Apr 2019 at 08:22, S-Przybylski ***@***.***> wrote:
- Connected to: EMS-ESP version 1.7.0b5
- autodetect deep
Started scan on EMS bus for known devices
Boiler found. Model Buderus GB172/Nefit Trendline (TypeID:0x08
ProductID:123 Version:04.09)
Device found. Model BC25 Base Controller with TypeID 0x09, ProductID
125, Version 01.06
Unrecognized device found. TypeID 0x02, ProductID 163, Version 21.04
Unrecognized device found. TypeID 0x02, ProductID 163, Version 21.04
Read operations not yet supported for this model thermostat
Read operations not yet supported for this model thermostat
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#96 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABLHeIkzPpWM-Ui3OvmLhqoqupYITf6nks5vhWwdgaJpZM4cwvs1>
.
|
These 4 EMS devices were detected: The log shows the following:
info shows:
In my installation a RC300 is installed. It seems to use the same identication like the RC310 |
I see your SM100 is based on the EMS+ protocol so not compatible with the
existing SM10 logic. I’ll add it to the wish list for version 1.8
…On Tue, 16 Apr 2019 at 09:59, S-Przybylski ***@***.***> wrote:
- Connected to: EMS-ESP version 1.7.0b6
- autodetect deep
System Logging set to None
Starting a deep EMS device scan. This will take about 1 minute. Please
wait...
Device found. Model BC25 Base Controller with TypeID 0x09, ProductID
125, Version 01.06
Device found. Model BC25 Base Controller with TypeID 0x09, ProductID
125, Version 01.06
Finished the deep EMS device scan.
These 4 EMS devices were detected:
Buderus GB172/Nefit Trendline (TypeID:0x08 ProductID:123 Version:04.09)
SM100 Solar Module (TypeID:0x30 ProductID:163 Version:21.04)
RC310 (TypeID:0x64 ProductID:158 Version:11.07)
BC25 Base Controller (TypeID:0x09 ProductID:125 Version:01.06)
The log shows the following:
- It seems that if the solar module is addressed the value SM is used,
but the 0x30 address will not be identified as SM100
(00:09:14.444) 0x30 -> Boiler, type 0x33 telegram: 30 88 33 02 07
(CRC=C0), #data=1
<--- UBAParameterWW(0x33) received
(00:09:14.472) Boiler -> SM, type 0x33 telegram: 08 30 33 02 33 FB 00
1E FF 06 46 (CRC=C9), #data=7
<--- UBAParameterWW(0x33) received
(00:09:14.500) 0x30 -> Boiler, type 0x35 telegram: 30 08 35 02 00
(CRC=BB), #data=1
(00:09:14.625) 0x30 -> all, type 0x00 telegram: 30 00 FF 00 02 62 01
9F 01 5D 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00
(CRC=2A), #data=26
(00:09:15.061) 0x30 -> all, type 0x18 telegram: 30 00 FF 18 02 62 80
00 (CRC=AE), #data=4
(00:09:15.277) 0x30 -> all, type 0x00 telegram: 30 00 FF 00 02 63 80
00 80 00 00 00 80 00 80 00 80 00 00 (CRC=74), #data=15
(00:09:15.724) 0x30 -> all, type 0x00 telegram: 30 00 FF 00 02 64 00
00 00 04 00 00 FF 00 00 00 00 0C 64 00 00 00 00 (CRC=B8), #data=19
(00:09:15.929) 0x30 -> all, type 0x00 telegram: 30 00 FF 00 02 66 01
62 00 12 (CRC=73), #data=6
info shows:
- Solar Module stats:
Collector temperature: 0.0 C
Bottom temperature: 0.0 C
Pump modulation: 0 %
Pump active: off
In my installation a RC300 is installed. It seems to use the same
identication like the RC310
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#96 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABLHeE2sfFQn6sBoOh_Oo0GofYIcgJghks5vhYLtgaJpZM4cwvs1>
.
|
@S-Przybylski we can start to implement this but I need you to decode the messages. Look at the telegrams your getting
The types sent from the Solar module are x0262, x0263 and x0264 See if you can correlate the temperature settings you see on your boiler/thermostat/mobile app to any of these values. |
I added support for type x0262 but need your help to decypher the data. We'll be looking for two temperatures and single byte modulation % |
Hi @proddy, i will check this out |
My first try: |
Nice work. It’ll be easy to add this in code. Shall I do this or do you want to try? I expect the max/min temps will be in a separate telegram type as it seems this x0262 is the SM100 monitor. Also which if these data values do you think are important to report out via mqtt? |
Please do it for me, then i will learn on this example how to integrate new functions (Can you please provide the changes to me?) |
ok. So those two telegrams 0x262 and 0x264. Can you tell me if they are broadcast telegrams, i.e. sent out automatically every 10-60 seconds? |
Investigation today 22:25 CET time (no sun active):
(06:03:15.579) 0x30 -> all, type 0x00 telegram: 30 0 FF 0 2 8E 0 0 0 0 0 0 5 19 0 0 75 D3 (CRC=77), #data=14 Could you please also put the energy earnings into the mqtt message?
|
thanks. As for point 4, I fixed this a few days ago in the dev branch and also added the SM100 support as defined by you. Could you do a quick check? |
First of all thanks for your efforts! Great. Currently the SM-MQTT Messages toogles between a good and at least two bad states - see investigation below...
Note: I just create a long term logfile to make a more statisical and useful interpretation of the protocol... hopefully i will get some additional benefits out of it (if so i provide them later here) More detailed SM-Protocol: (00:24:18.020) SM -> all, type 0x0262 telegram: 30 0 FF 0 2 62 1 CA (CRC=E6) (00:24:19.171) SM -> all, type 0x0262 telegram: 30 0 FF 0 2 62 1 CA 1 93 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 (CRC=BE), #data=23 (00:24:19.832) SM -> all, type 0x0263 telegram: 30 0 FF 0 2 63 80 0 80 0 0 0 80 0 80 0 80 0 0 (CRC=74), #data=12 (00:24:20.280) SM -> all, type 0x0264 telegram: 30 0 FF 0 2 64 0 0 0 4 0 0 FF 0 0 1E 0B 9 64 0 0 0 0 (CRC=6D), #data=16 (00:24:20.482) SM -> all, type 0x0266 telegram: 30 0 FF 0 2 66 1 62 0 12 (CRC=73) |
Details about states of the pump and changes: Details:
|
Questions so I can implement these changes:
|
Hi proddy, Could you solve the issue with the toggling values? Addititional observation: |
Hi @proody
Protocol: Example 1:07:
Example 2:07:
Example 3:07 (pump was of since 2:07):
Evidence: 1733Wh - 1538Wh = 195Wh I could also make sense to send the last hour value (the resolution of the value is higher than the total value) for individual analytic purposes. The value represents the average power of the solar panels Does it make sense to put this information like the ones i found out up to now into a EMS+ Protocol datasheet? Any news regarding my last post ? |
yes it would be good to add to the Wiki under the SM100 section. https://github.com/proddy/EMS-ESP/wiki/SM100 I haven't had time to look into implementing this yet, its still changing and I want to figure out how the EMS+ works for all devices. |
Added to 1.7. MQTT is like |
Hi @proddy (00:01:56.837) SM -> Boiler, type 0x33 telegram: 30 88 33 02 07 (CRC=C0) #data=1 (00:02:26.955) SM -> all, type 0x0266 telegram: 30 00 FF 00 02 66 01 62 00 12 (CRC=73) #data=4 Requesting type SM10Monitor(0x97) from dest 0x30 (00:03:10.628) 0x09 -> SM, type 0x02 telegram: 09 B0 02 00 03 (CRC=66) #data=1 (00:03:11.168) Sending read of type 0x97 to 0x30: telegram: 0B B0 97 00 20 (CRC=03) (00:03:23.421) 0x09 -> SM, type 0x02 telegram: 09 B0 02 00 03 (CRC=66) #data=1 (00:03:26.036) SM -> all, type 0x0266 telegram: 30 00 FF 00 02 66 01 62 00 12 (CRC=73) #data=4 (00:03:56.094) SM -> Boiler, type 0x33 telegram: 30 88 33 02 07 (CRC=C0) #data=1 (00:04:11.586) Sending read of type 0x97 to 0x30: telegram: 0B B0 97 00 20 (CRC=03) (00:04:56.383) SM -> all, type 0x0262 telegram: 30 00 FF 00 02 62 00 DC 01 AE 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 (CRC=D0) #data=24 For me it seems that the pump doesn't function, the collectors temp (here it began to rain, therefore it often updates the 0x262 protocol (long and short) to reflect the falling temperatures. Do you have an Idea, why the "?" and "0" comes up? |
I will supress the ? values and check why the pump on/off is not working. It works with the previous test date you provided. The pump modulation is missing for SM100 as I don't know where it is stored. |
made a fix in b13. I had to change some of the MQTT topic names as there are multiple solar modules (sm10, sm100, junkers, nefit etc) pump modulation is in, i forgot. "test 15" shows it working based on your research, |
Hi @proddy Device found. Model SM100 Solar Module with DeviceID 0x30, ProductID 163, Version 21.04 (00:02:11.146) Sending read of type 0x97 to 0x30: telegram: 0B B0 97 00 20 (CRC=03)
(00:02:33.961) SM -> all, type 0x0262 telegram: 30 00 FF 18 02 62 80 00 (CRC=AE) #data=2
(00:02:34.186) SM -> all, type 0x0263 telegram: 30 00 FF 00 02 63 80 00 80 00 00 00 80 00 80 00 80 00 00 (CRC=74) #data=13
(00:03:34.173) SM -> all, type 0x0262 telegram: 30 00 FF 18 02 62 80 00 (CRC=AE) #data=2
(00:03:34.393) SM -> all, type 0x0263 telegram: 30 00 FF 00 02 63 80 00 80 00 00 00 80 00 80 00 80 00 00 (CRC=74) #data=13
What is the operational mode to store the solar values?
|
thanks for checking. I'll use your telegrams and simulate the behaviour here so I can debug. It is #1, all values are stored and updated but sometimes I've noticed you get partial telegrams so values are overwritten sometimes incorrectly. I'll fix that. |
made the changes. please test |
Hi @proddy
Commented Logfile incl. mqtt messages: Publishing SM data via MQTT {"collectortemp":42.8,"pumpmodulation":0,"pump":"off"} (00:02:38.974) SM -> all, type 0x0266 telegram: 30 00 FF 00 02 66 01 62 00 12 (CRC=73) #data=4 Publishing SM data via MQTT {"collectortemp":43.3,"bottomtemp":33.4,"pumpmodulation":0,"pump":"off"} (00:03:08.725) SM -> all, type 0x0262 telegram: 30 00 FF 18 02 62 80 00 (CRC=AE) #data=2 Publishing SM data via MQTT {"collectortemp":43.3,"bottomtemp":33.4,"pumpmodulation":0,"pump":"on"} (00:03:32.908) SM -> all, type 0x0264 telegram: 30 00 FF 09 02 64 1E (CRC=4D) #data=1 Publishing SM data via MQTT {"collectortemp":43.3,"bottomtemp":33.4,"pumpmodulation":0,"pump":"on"} (00:04:07.258) SM -> Boiler, type 0x33 telegram: 30 88 33 02 07 (CRC=C0) #data=1 Publishing SM data via MQTT {"collectortemp":43.3,"bottomtemp":33.4,"pumpmodulation":30,"pump":"on"} (00:04:09.008) SM -> all, type 0x0266 telegram: 30 00 FF 00 02 66 01 62 00 12 (CRC=73) #data=4 Publishing SM data via MQTT {"collectortemp":43.3,"bottomtemp":33.4,"pumpmodulation":30,"pump":"off"} (00:04:30.820) SM -> all, type 0x0262 telegram: 30 00 FF 00 02 62 01 A1 (CRC=8D) #data=2 Publishing SM data via MQTT {"collectortemp":41.7,"bottomtemp":-2944,"pumpmodulation":30,"pump":"off"} (00:04:38.164) SM -> all, type 0x0266 telegram: 30 00 FF 00 02 66 01 62 00 12 (CRC=73) #data=4 Publishing SM data via MQTT {"collectortemp":40.5,"bottomtemp":-1817.6,"pumpmodulation":30,"pump":"off"} |
@DarthMob it's probably an issue in how the JSON is rendered. Could you add a line in add then upload, wait a while, do a |
@proddy Setup with bbqkees board is exactly the same! as you can see here from the PING there is no stable connection when reading from EMS. version 1.7 worked fine (except the issue with "-"kWh).. |
@DarthMob that's really strange indeed and can't think what is causing this. If you can't get to the console then you won't be able to see the stack dump to debug the cause or even use Some things you could try
|
I have to admit that I have the same problem. Max. uptime was 1500s - mostly I only see about 30s before reboot. Still investigating...
Von meinem iPad gesendet
… Am 16.06.2019 um 14:35 schrieb Proddy ***@***.***>:
@DarthMob that's really strange indeed and can't think what is causing this. If you can't get to the console then you won't be able to see the stack dump to debug the cause or even use system to see whether its an ESP reset or a wifi disruption. Does it happen immediately after restarting? Or during the telnet session? Also I assume this is Wemos D1 mini with 4MB flash?
Some things you could try
Using platform = ${common.arduino_core_2_4_2} in the ini file and rebuilding
Grab 1.7.0 which you know works (bottom left of PlatformIO window click and select the 1.7.0 tag and rebuild after updating the libraries
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
that's not good. There are some reports of people with WiFi issues since the 2.5.0 core, maybe its related? |
Here‘s an excerpt from my mqtt server. ˋˋˋ |
i will try, however i have absolutely no wifi issue while serial console is "on" (i'm connected trough wifi+telnet !!). PS: i have a nodemcuv2 board |
@DarthMob ok, one other thing to try is |
@susisstrolch could you also try with |
You can enable software serial to enable logs on some other pins while hardware serial is in use. |
@proddy i also used the "myDebug("!! value = %d", EMS_Other.SMEnergyTotal);" as you requested and after publish i get the following value
:-( |
@DarthMob ok so there is an endless loop in the new Tx code that causes the WDT resets. I'll have to debug this with @susisstrolch. Strange this I don't experience this on my setup. The SMEnergyTotal is captured via sending a request, so since Tx is disabled (with the listen_mode) it'll always be a negative value. I'll make a quick modification to suppress it. |
I see something completely different - no endless loop, but
clean build from current master, no personal modifications, running on ESP8266-12F |
cont... which translates to
Looks like arduino library... |
@susisstrolch It's hard to see from the stack what caused what - I've always found it slightly misleading. Did this crash occur after a telnet command (like a setting change or a 'system')? Could it be the Telnet client like last time? Can you reproduce it also via the Serial? Running in a serial monitor will also dump the stack. You could also try 'crash test 1' which causes a crash and then compare whether the stack is pointing to the right code. For some reason I just don't trust it 100%. Anyways. need something reproducible so I can home in on the root cause. I've been running 1.8 for 4 days no with no outages. |
I've connected the Tx/Rx (GPIO1, GPIO3) to an ESPlink adapter for monitoring purposes. But I don't see the crash dump. |
argh... the stackdump file is hardcoded in the script? |
|
Jep... but that won't work on linux because of two flaws So, here's the latest coredump. For me it seems to be an issue with the runtime (especially mDNS):
|
it was a simple fix to get it working with linux |
@proddy I've pushed some changes to https://github.com/susisstrolch/EMS-ESP/tree/dev, trying to fix reboot problem. Major change:
When sending to EMSbus I see a EMSbus BRK approx. 10 bittimes after sending the 3rd byte to the EMSbus:
Because I can't connect the logic analyzer it's hard for me to see what really happens. |
nice, I'll check it out tonight and hook up the logic analyzer. Noticed the |
Hmm, not sure where it gets the #data=224 from.. |
@susisstrolch testing your dev build and I'm not seen any errors like you get. Seems to work fine, but then again version 1.7 and 1.8 are also stable with me. Maybe it's the wifi speed? Does changing |
So I‘ll Check my hardware...
Sent by mobile device
… Am 21.06.2019 um 18:48 schrieb Proddy ***@***.***>:
@susisstrolch testing your dev build and I'm not seen any errors like you get. Seems to work fine, but then again version 1.7 and 1.8 are also stable with me. Maybe it's the wifi speed? Does changing EMSESP_DELAY in ems-esp.cpp make a difference perhaps?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
dear all |
Is your feature request related to a problem? Please describe.
I want to investigate the EMS and EMS-Plus messages for my solar module SM100 device in future.
Describe the solution you'd like
Can you please update the device table for my SM100?
...
0x30 -> 0x09, type 0x02 telegram: 30 09 02 00 A3 15 04 (CRC=25), #data=3
<--- Version(0x02) received
Unrecognized device found. TypeID 0x02, ProductID 163, Version 21.04
Additional context
I assume that the implementation of SM10 is not true generic one. My current log shows messages of a SM10, but in opposite direction the device is unknown... (i do not have a SM10 connected):
(00:25:56.914) 0x09 -> SM10, type 0x96 telegram: 09 B0 96 00 07 (CRC=00), #data=1
(00:25:56.967) 0x30 -> 0x09, type 0x96 telegram: 30 09 96 00 FF 18 1E 0A 02 50 28 (CRC=B5), #data=7
(00:25:56.979) 0x09 -> SM10, type 0x00 telegram: 09 B0 FF 00 FF 00 01 (CRC=0C), #data=3
The autodetect shows the following:
Started scan on EMS bus for known devices
Boiler found. Model Buderus GB172/Nefit Trendline (TypeID:0x08 ProductID:123 Version:04.09)
Device found. Model BC25 Base Controller with TypeID 0x09, ProductID 125, Version 01.06
Unrecognized device found. TypeID 0x02, ProductID 163, Version 21.04
The text was updated successfully, but these errors were encountered: