-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Querying/Controlling ventilation system #10
Comments
Hi @arnolde , |
If I try this code (based on your example):
Then I get:
Is there any more example code anywhere, so I can see a few more functions? |
enableCooling have to be third parameter: bool enableCentralHeating = false; |
That still returns: Invalid response f0000000 My complete code at the moment:
|
Hi @arnolde , I'm not sure of how much help I can be but I do have recent experience writing my own 'smart' thermostat for my home using this library (linked here). For me, it looks like your biggest problem at the moment is the fact that you are unable to interface correctly with the device. I was having this problem at first and it turned out that the problem was simply the fact that the pins I had allocated for communication were incapable of functioning for this purpose. What type of Arduino/Arduino-compatible do you have? Maybe you could try using different pins; maybe try For now, I would recommend trying to get your Arduino to interface correctly with OpenTherm before moving onwards; after you have an established connection, experimentation will be much easier. It looks like your current script above will do fine for testing your connection. As for interfacing with your 'Wolf CWL300', I was wondering exactly what purpose this serves in your home as I have no experience with this device. I.e. does it function as a heater, cooler or both? Do you have a boiler in your home? If so, is this connected to your 'Wolf' device? What exactly is your utility set-up? As you know, the 4 main 'functions' of the library are: Hopefully this helped you in some way. If you have any other questions, feel free to ask! Kind regards, Tom |
Hi Tom, The Wolf CWL300 is neither a heating nor a cooling device, its a home ventilation system with a heat exchanger, to constantly provide the home with fresh air and expel used air, while transferring most of the warmth from the exhaust to the fresh air, so you don't bring cold air inside in winter. So the only setting it has is fan rpm (actually m3/h ranging from 1 to 300). It does also have 2 temp sensors that might be queryable but it does not control any temperature. Regards, Ethan |
Ah I see, unfortunately I'm not aware of how you'd interface with such a device using the library. Indeed, whilst I'm sure it is possible with the OpenTherm protocol, you can see at the bottom of this file that the functions are rather limited in this library and I see no mention of fan speed control. It's most likely something you'll have to code in yourself. As for the ESP8266, I would recommend using pin 4 (D2) for input and pin 5 (D1) for output as this worked for me using an ESP8266-based board. Also just check that the ESP Best, Tom |
Hi @arnolde , Use buildRequest, sendRequest and getLastResponseStatus functions. |
Hi @ihormelnyk , Here is the output of my loop:
And here the code: (sorry it's so messy, but I got very frustrated at one point, it really needs cleaning up):
I tried moving to pins 4+5 and I get basically the same result. If I disconnect either one or switch them around, I get timeouts instaead of "invalid response" so I assume the slave is communicating OK with the master. I just don't understand why I keep getting an "invalid response", no mattery what request I try. But I also see the slave reacting: when the interface is connected and running, the ventilation shuts down. If I disconnect the OT interface, it starts up again after a few seconds. So at least it seems to be detecting that there is a master attached, but not recieving the right commands to start ventilating. EDIT: Even if I just disconnect the "out" pin from ESP to OT-interface, the fans start up. That seems to indicate the ventilator is recognizing some (attempted) communication via OT. But I'm still stumped why it won't acknowledge any of my requests, not even request slave config. |
I just found another little puzzle piece: According to http://otgw.tclcode.com/matrix.cgi#boilers the Viessmann Vitovent 300, which is another label of my Wolf CWL300, only supports the message id's 2,70-72,74,77,80,82 and 89. Unfortunately only #2 is included in the Opentherm 2.2 protocol spec. So that may explain why I'm getting NAK's on most of my messages. I sure wish I could find a newer protocol somewhere... Aha, on GitHub.com/apdlv72/VitoWifi I found some more clues: 71 = control setpoint, 77=rel ventilation, 80+82 are inlet temperatures, etc... I will continue experimenting... More info from https://forum.fhem.de/index.php?topic=29762.115;wap2 ; New ID for ventilation/heat-recovery applications After adding these values to Ihor's OpenTherm.h I can now write a value for 71 and read a value for 77, although the results don't make much sense yet, also I can read the temperatures 80+82 and they do make sense. So the interface seems to work :-) now I just need to experiment with setting the fan RPM sensibly. Then I can finally complete my goal: Use a DHT humidity sensor in the exhaust pipe to measure the average humidity in the home and adjust the ventilation speed so that it does not go below 40%. Thats my main problem in winter: The heat exchanger makes the winter fresh air pretty dry so when the ventilation runs all day, even on the lowest step (50m3/h) the house dries out too much. |
Almost solved. Reading the slave status seems to trigger some kind of "init" routine on the slave, it blinks "init" in the display with a countdown of 120 seconds. So I removed that altogether and now simply write either 0 or 25...100 to id 71, which turns the fans off (0) or sets them to 20%...95%. Haven't acheived 100% yet but I'm OK for now. I plan to publish the final result on gitlab.org/c2h6 so look there soon if you're interested. Now I just need to add humidity+temp tracked control and I'm all set. Thanks again for this great library, circuit and the help! EDIT: Here is the link to my project, it's not very nice yet but I will update it now and then. https://gitlab.com/c2h6/esp8266-opentherm I plan to add wifi, cloud logging to an influxDB instance, and control of fan rpm depending on outside temp and inside humidity. |
Cool! Thanks. |
Hi @arnolde! I have another clone of the Wolf CWL300 called Fresh Renovent M300 that i'd like to integrate with Home Assistant. Your project looks like a good starting point, however it doesn't include the additional message id's that are needed in opentherm.h, any chance you could share your version of that file? |
I'm trying to query/set my Wolf CWL300 (also known as Viessmann Vitovent etc.) home ventilation system via opentherm. Do you have any experience which parameters I can use, or any example code?
The text was updated successfully, but these errors were encountered: