Comments (12)
thanks for sharing. Lots of interesting stuff happening when your CS200 is booted. It looks like the thermostat is trying to figure out the capabilitites of the solar units. The first byte of the version (0x02) is the device type. Norbert has a nice list at https://github.com/norberts1/hometop_HT3/blob/master/HT3/docu/HT_EMS_Bus_messages.pdf
from ems-esp32.
Proddy asked to put my collected data here,
the protocol ems-esp_protocol is this one that was already attached in discord,
Today I had time to log the whole thing again while starting the system, once normally and once as RAW data, I hope this helps with the analysis, In the file Bootup_log_F7_F9 I have already sorted the sequences a bit, these are with ############ divided up.
Bootup_log_F7_F9.txt
ems-esp_protokoll.txt
RAW_Bootup_log_F7_F9.txt
from ems-esp32.
I think this a bug from very old v2.0.1b software, the thermostat is requesting 0x0358 from solar and not sending 0x02.
The raw messages i suppose is 10 B0 FF 00 02 58 B2
or a extendened F7/F9 message.
000+04:41:59.594 N 241: [emsesp] Thermostat(0x10) -> Solar Module(0x30), Version(0x02), data: 58 B2
000+04:41:59.651 N 242: [emsesp] Solar Module(0x30) -> Thermostat(0x10), (0x358), data: 21 66 08 00 8E
from ems-esp32.
CS200-MS100 startup fixed.txt
CS200-MS100 startup raw fixed.txt
These logs taken with a current 2.0.1 from main
from ems-esp32.
Ok, when receiving ems+ read requests the telegrams are not handled correctly, i can fix this.
But there is something strange with some of the F7 requests, having an extra byte at the end or using 24 bit type. I don't know what this is and how to handle it. Also the sequence you posted on gitter left some questions.
N 223: [telegram] Rx: 90 B0 F7 00 01 FF 02 65 30
this is a normal read <src><dst>F7<offset><length>FF<id><id><crc>
(type 0265, offset 00, len 01)
and the reply is handled correctly
this is also normal read for ems+: N 227: [telegram] Rx: 90 B0 FF 30 18 02 8D B7
(type 02D8, offset 30, len 18)
I'll add this to the dev-branch.
But this seems to have a 24bit type-id 0x020000?
N 85: [telegram] Rx: 90 B0 F7 00 02 02 00 00 96
N 86: [telegram] Rx: B0 10 F7 00 02 00 00 1F 00 8F
and posted on gitter:
N 74: [telegram] Rx: 90 B0 F9 00 11 FF 02 5A 03 AF
there is an extra 03 at the end,
N 75: [telegram] Rx: B0 10 F9 00 FF 02 5A 03 17 00 00 00 14 00 00 00 3C 00 00 00 5A 00 00 00 5A 2A
the answer is ok, 0x11 bytes long as requested.
N 77: [telegram] Rx: 90 30 FF 03 02 5A 59 B3
write 59 to offset 3
N 78: [telegram] Rx: B0 00 FF 03 02 5A 59 2D
confirmed the write at offset 3
N 79: [telegram] Rx: 90 B0 F9 00 11 FF 02 5A 03 AF
another request with the strange 03 at the end.
N 80: [telegram] Rx: B0 10 F9 00 FF 02 5A 03 17 00 00 00 14 00 00 00 3C 00 00 00 5A 00 00 00 59 29
answer, but here the value in offset 17 has changed!
@proddy: Do you have a clue how these telegrams work?
from ems-esp32.
@hpanther please check the latest dev build here
The normal read request should now work, The F7 with long id are ignored, but gives a debug log-message.
from ems-esp32.
@proddy: i have found a description of F7/F9 types in emsesp/EMS-ESP#109.
But i'm not sure how to handle it in code. Maybe, as long as not really used, it's best to handle it as ems 1.0 types F7, F9?
from ems-esp32.
@MichaelDvP I thought I coded in the F7/F9 to read out the data? I would need to check. I based it off some of Norberts code and also what I found in https://emsesp.github.io/docs/#/Deciphering-EMS-Plus
from ems-esp32.
@MichaelDvP I agree with your latest implementation (of handling F7/F9 as EMS1.0)
from ems-esp32.
I thought I coded in the F7/F9 to read out the data?
Yes, but (appart from missing read-bit detection) you handle it like a ems+ telegram, only skipping the extra 0xFF. But why should Bosch use FF, F7 and F9 codings to send the same data? There is a difference in what data are send, and some of the F7, F9 telegrams uses a different format from ems+ (FF).
You read something like 90 10 F7 00 FF 02 A5 <data>
as equvalent to 90 10 FF 00 02 A5 <data>
but i'm sure that <data>
is different with different meaning, and if you get both telegrams for id 02A5 you get changing values.
Also some telegrams hpanther posted have different format: 90 B0 F9 00 11 FF 02 5A 03 AF
This is not a ems+ request, this asks for 0x11 bytes, but has additional data 03 in the end, an ems+ request does not have data at the end!
In emsesp/EMS-ESP#109 Th3M3 described it as a mask, but i dont know what 02A5 contains and how the mask works in this case.
As you see above in my post N77
is a ems+ (FF-02A5) write to offset 3, N78
is the ems+ (FF-02A5) answer that offset 3 is written. N79
is a read request with F9-02A5 and the strange extra byte in the end. The N80
answer F9-02A5 are 17 bytes but offset 3 does not contain the 59 written with the ems+ command.
@hpanther can you test the output to send telegram "8B B0 FF 00 20 02 A5"
I'm sure the answer is different from F9-data in N80
.
from ems-esp32.
that actually makes more sense. We could ask @norberts1 if he's figured out what F7 and F9 actually do.
from ems-esp32.
@MichaelDvP @proddy I have never received that F7/F9 messages in my heater-system, but what I found is:
F7/F8 (messageID's:247,248) are used to transfer transparent data between moduls. At maximum 26 bytes are possible.
F9 (messageID:249) seems to be also transparent data with special handling, see below.
FD/FE (messageID's:253,254) used for serial-number exchange at least with 27 bytes.
In that context they seems to be 4byte-header messages like:
<src><dst>F(x)<offset><payload><crc>
For that example above with F9 it seems to be:
90 B0 F9 00 11 FF 02 5A 03 AF
:=>
<src><dst>F9<offset>< <requested length><FF 02 5A><offset> ><crc>
:=> request of 17 byte response for 'FF 02 5A' (ID:858) starting at offset 3
I found this handling in logfiles at emsesp/EMS-ESP#390 and compressed it to file:
https://github.com/proddy/EMS-ESP/files/5029794/Bosch_6000_mesg_ems26june-Info.zip
I can't check it on my Junkers/Bosch-system, hopefully somebody else can do.
from ems-esp32.
Related Issues (20)
- add telnet command to reboot to previous version HOT 1
- [Junkers Cerapur Compact] Missing 0x22 telegram interpreter HOT 10
- Enable/Disable services via the Telnet HOT 2
- Regular poll requests for invalid telegrams are within error log HOT 8
- Refresh UI - moving settings to one location HOT 6
- EMS bus disconnected HOT 5
- WWmode HOT 1
- 3.7.0-test.0 (ESP32) - Error Menu -> System HOT 9
- MS200 Bosch Heat Assist valve HOT 1
- MM200 mixer module - new entities only shown for hc2, not for hc1 HOT 4
- No MQTT Boiler-Data after Update to 3.6.5 HOT 43
- Whatever I am choosing as formant the entity keeps the new, longer entity name HOT 3
- Fault message on Bosch compress 3800i ew: A11-3071 HOT 3
- Dwh mode eco+ is missing on bosch 3800i/rego 3000 HOT 22
- Improvment: Get current error state or alarm as a entity HOT 8
- Improvment: Reset alarm and clear alarm history list HOT 5
- Improvemt: Add power off/on possibility for the heatpump(bosch compress 3800i ew) HOT 10
- New Feature: call HOT 2
- length of custom entities? HOT 1
- boiler.burnmaxpower min/max attributes are not correctly set for api HOT 20
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ems-esp32.