-
-
Notifications
You must be signed in to change notification settings - Fork 98
SEND/RECEIVE HEX commands over mqtt #65
Comments
I’m thinking the easiest way is to extend the telnet ‘theromstat’ Command with an optional parameter like hc1 or hc2 etc, which always defaults to hc1 if not specified or the current thermostat does not support multiple heating circuits. Then implement a new mqtt message type which uses a JSON payload containing the heating circuit, command and value. Is this for a RC35 type thermostat? |
Yes it is a RC35 type thermostat. Probably this is the first thing I run for to have a working solution. What I intend to do But I will start with the solution proposed by you. |
I fail already compiling the standard firmware :( VSC claims.... So I concluded I need to install in arduino the arduinojson 5.11.... still same outcome. :(
======================================================== [SUMMARY] ======================================================== |
Hi @lobocobra you should have created a separate issue for this as not to confuse it with the enhancement you're making to handle multiple heating circuits. But, yes, looks Benoit @ ArduinoJson has finally unleashed the mighty V6 of his json library which is now the default standard in platformio. I'll need to make a few adjustments as the library handles documents differently and I'll probably decide to serialize for performance while I'm at it. In the meantime to keep it all working with v5 try replacing the ArduinoJson in platformio.ini |
Yep, I can confirm that V6 causes problems. I’ve been struggling with vsc for a couple of days, until I finally copied ArduinoJson v5.13.5 into the library directory. This is a working alternative to the lib_deps solution mentioned above. |
I've fixed this in 1.5.5. Just running some stress tests and will upload shortly. |
Many thanks! I started to doubt, that I am even able to compile a standard firmware :-) |
@proddy My thought was that I can extend and I want to read with... But I get a wired number from "hc2". I saw that the code for writing to SPIFF is in MyESP.cpp, but I simply want to add 1-2 variables. |
That should work. What is the variable hc_number defined as? It may be something wrong in my code but will do a check myself today. Another thing though, I’m not sure this is the best approach. Depending on the thermostat type we should be able to detect and read out all heating circuit values and send/receive via MQTT topics. No need to preset the hc in spiffs, right? |
Many thanks for the fast answer. Approach As I can now save/read values and exteded the telnet command, I will attack the mqtt extention part |
I have now a working version and can change the heating circuit 2 over mqtt (and thus read the right data). Before I make a pull request, I will continue to test it. What is still missing |
nice. Can you do the PR on the 'dev' branch when ready? |
Hi proody Yes of course, I will do it. Following things are working
not yet solved issues
features to implement
So I have still alot to do, but luckly the code really good commented. That helps much. |
@proddy Anyhow... for those interested you can find my working changes against 1.6.0b3 here:
|
I'll take a look and see about merging some of your updates in the dev branch (which I'm calling 1.7) |
I have some questions on the design
The major change between 1.6b3 and 1.6b6 is that way the values are stored. I removed floats completely and store the raw values from the telegram, and then render to floating point when sending to MQTT. This is for speed optimization and memory usage. I can help get your dev branch working |
Hi Proddy As you saw probably from my code, I am far away from your programming skills. But its fun to learn from your code. My big programming days, were 30 years ago :-), when I thougt that command.com was programmed lousy and I re-programmed it. MQTT Multiple heating circuits The part which did the trick for me was here....
Now as this section is gone in the newest version; I would either have to start from scratch or simply hard code the HC2 address into the code, which avoids all the coding. |
Ok, you put quite some work into this so let's break it down into chunks and program it together under the dev branch.
Am I missing anything? |
Sounds great! All 3 points make sense. I would only propose to add following mqtt commands:
The enable Openhab (or similar) to change the basic settings of the heating and to run a script at the end of the vacation, to slowely heat up the house. |
What I intend to do
Over telnet, I can with "log t" and SEND write data directly to the bus and read the answer.
=> I tried to evaluate the data with NODE-RED but failed
I need to do this as I have a floor-heating and thus HC2 is used and not the coded HC1
=> At the end I want to be able to change values of my heating in Openhab.
Solution path
PRO: simpler to achieve
CONTRA: I would like to change more setting in my heating, than are currently coded
I opt currently for option 2, but as I have not yet analyzed the code, I want to ask if anyone has a better idea, how I could solve my problem.
=> Does anyone already SEND HEX date over NODE-RED to the WEMOS?
=> Does anyone see a better solution, when I want to send HEX commands to EMS?
The text was updated successfully, but these errors were encountered: