Closed yann1420 closed 3 years ago
hi @yann1420 can you please provide more information on your hardware and how it's connected? Which GPIO pins do you use to connect the adapter to the board? Which voltage do you have on the OpenTherm line when you connect the adapter to the boiler? Also, you may use https://github.com/ihormelnyk/opentherm_library/blob/master/examples/OpenThermMaster_Demo/OpenThermMaster_Demo.ino to make sure your master (your adapter) is able to connect to the slave (boiler) and check that your hardware part is 100% operational.
Can you also copy the output of the GPIO 255
command?
I don't see anything like "GPIO0":{"203":"OpenTherm TX"}
in your configuration output above.
MQT: stat/boiler/RESULT = {"GPIO0":{"203":"OpenTherm TX"},"GPIO1":{"0":"None"},"GPIO2":{"0":"None"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"202":"OpenTherm RX"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"}}```
Hello Yuriy, Per your request :
12:25:05 CMD: GPIO 255
12:25:05 SRC: WebConsole from 192.168.178.70
12:25:05 CMD: Group 0, Index 1, Command "GPIO", Data "255"
12:25:05 MQT: stat/tasmota-3805/RESULT = {"GPIO0":{"205":"OpenTherm TX"},"GPIO1":{"0":"None"},"GPIO2":{"4":"DS18x20"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"204":"OpenTherm RX"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"}}
12:25:05 [OTH]: perform handshake
12:25:07 [OTH]: Processing response. Status=TIMEOUT, Response=0x0
12:25:07 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
I see I have a different "generic" module then you have (generic-18 vs generic-0). Can that make the difference?
The configuration looks good. I would suggest playing with the author's https://github.com/ihormelnyk/opentherm_library/blob/master/examples/OpenThermMaster_Demo/OpenThermMaster_Demo.ino to make sure the hardware and wiring part is ok.
Also, if you connect an adapter to the boiler the OT line voltage should read something between 15-18 volts (24..48 volts from the boiler if it's open-ended). If you put 3.3v between IN pin (near R4) and GND the voltage on the OT line should drop to something between 5 and 7 volts. That way you can check the adapter -> boiler hardware part.
@yann1420 any luck with troubleshooting it?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Hello Yury, I have been out of the (home) office the last couple of weeks and will now be on holiday for 3 weeks. My goal is to respond the second week of September.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
This issue will be auto-closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience this problem.
Have you solve the problem? I have the same...
I have the same
hi @santik, I know you're working with Igor on this issue. Could you please update the thread when you figure this out?
I think I also just ran into this problem... could this be due to the boiler ?
@s00500 please test with latest version and if the problem still occur open an new issue providing all details.
Ok, after some testing I realized that this is the same behaviour you would get from a open connection, and after reading the docs again I realized what fooled me:
In the Tasmota docs there is a wirering diagram showing the D1 mini connected with pins D1 and D2, but in the configuration screenshot right below it configures D1 and D3!! I did not double check that yesterday, after fixing it now everything works as expected....
Shall I submit a PR to change the image ?
Greetings
@s00500 yes please, never hesitate to improve Tasmota documentation, this is how we make progress Thanks
In the meanwhile I upgraded to tasmota9.5.0 but have suddenly a different set of problems. I will get back to this.
OK, this is where I am:
WeMos D1 has been upgraded to 9.5.0
Made sure it is connected per revised https://tasmota.github.io/docs/OpenTherm/ . I..e using GPIO4 (D2) and GPIO5 (D1)
GPIO command returns
07:57:07.531 MQT: stat/tasmota81/RESULT = {"GPIO0":{"0":"None"},"GPIO1":{"0":"None"},"GPIO2":{"0":"None"},"GPIO3":{"0":"None"},"GPIO4":{"4960":"OpenTherm TX"},"GPIO5":{"4928":"OpenTherm RX"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"}}
After a reset, the following appears on the console:
07:50:44.368 QPC: Reset
07:50:44.373 [OTH]: Processing response. Status=TIMEOUT, Response=0x0
07:50:44.374 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
07:50:46.318 APP: Boot Count 95
07:50:46.575 CFG: Saved to flash at FB, Count 2485, Bytes 4096
07:50:47.287 MQT: tele/tasmota81/STATE = {"Time":"2021-10-28T07:50:47","Uptime":"0T00:00:11","UptimeSec":11,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"titania","BSSId":"84:D8:1B:3C:6B:5E","Channel":4,"Mode":"11n","RSSI":48,"Signal":-76,"LinkCount":1,"Downtime":"0T00:00:05"}}
07:50:47.292 MQT: tele/tasmota81/SENSOR = {"Time":"2021-10-28T07:50:47","OPENTHERM":{"conn":"FAULT","settings":3,}}
07:50:50.291 [OTH]: perform handshake
07:50:51.345 [OTH]: Processing response. Status=TIMEOUT, Response=0x0
07:50:51.346 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
07:50:52.309 MQT: tasmota/discovery/807D3A78EEDD/config = {"ip":"192.168.178.81","dn":"tasmota81","fn":["tasmota81",null,null,null,null,null,null,null],"hn":"tasmota81","mac":"807D3A78EEDD","md":"Generic","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["OFF","ON","TOGGLE","HOLD"],"sw":"9.5.0","t":"tasmota81","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[0,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0,0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":1,"20":0,"30":0,"68":0,"73":1,"82":0,"114":0,"117":0},"lk":1,"lt_st":0,"sho":[0,0,0,0],"ver":1} (retained)
07:50:52.314 MQT: tasmota/discovery/807D3A78EEDD/sensors = {"sn":{"Time":"2021-10-28T07:50:52","OPENTHERM":{"conn":"FAULT","settings":3,}},"ver":1} (retained)
07:50:57.427 [OTH]: perform handshake
07:50:58.467 [OTH]: Processing response. Status=TIMEOUT, Response=0x0
07:50:58.469 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
07:51:01.783 WIF: Checking connection...
07:51:04.293 [OTH]: perform handshake
...
07:51:25.322 [OTH]: perform handshake
07:51:26.373 [OTH]: Processing response. Status=TIMEOUT, Response=0x0
07:51:26.375 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
One thing I noticed is that when I remove the connection D1 and D2 between the WeMos and the OT adapter, the message on the console doe not change, which makes me wonder if there is something wrong with the adapter board. How could I check this?
Just to remove any ambiguity on TX and RX, did you tried to swap them (either on cabling or if gpio but not both)
Also, on esp8266 I would strongly advise to use the hardware uart on gpio 1 and 3 if possible (stop serial logs with 'SerialLog 0' and do not connect a PC on USB)
I like the suggestion as I know the connection between boiler and adapter is symmetrical, but between adapter and WeMos definitely is not. I swapped GPIO's , so it is now:
and result is
12:35:38.754 WIF: Checking connection...
12:35:40.270 [OTH]: perform handshake
12:35:40.470 [OTH]: Processing response. Status=INVALID, Response=0xF0030000
12:35:40.472 [OTH]: getSlaveConfiguration failed. Status=INVALID
12:35:46.233 [OTH]: perform handshake
12:35:46.384 [OTH]: Processing response. Status=INVALID, Response=0xF0030000
12:35:46.386 [OTH]: getSlaveConfiguration failed. Status=INVALID
12:35:52.256 [OTH]: perform handshake
12:35:52.407 [OTH]: Processing response. Status=INVALID, Response=0xF0030000
12:35:52.409 [OTH]: getSlaveConfiguration failed. Status=INVALID
12:35:57.778 HTP: Configuration
12:35:58.240 [OTH]: perform handshake
12:35:58.439 [OTH]: Processing response. Status=INVALID, Response=0xF0030000
12:35:58.441 [OTH]: getSlaveConfiguration failed. Status=INVALID
12:35:58.794 WIF: Checking connection...
Where as now the status is INVALID en before is was TIMEOUT.
Per your other suggestion to use the hardware UART on GPIO1&3 in any of 4 combinations but all gave an INVALID status.
The good news After putting it back in the original state I see the system working for the first time. Hip Hip Hooray . I'm pretty sure is is the same build-up as before but maybe re-seating may have helped.
Wow, awesome 🎉
Hello Yury, I assume you have better understanding of OT or at least of the code that has been used here and therefore I have questions that you can answer:
Thanks in advance, Yann
Hello @yury-sannikov, I am also interested on the informations from the post above. Can you provide more information?
Hello. I've tried pretty sure every combination and still got TIMEOUT (like open ends?) Having ~17V on Boiler Terminals while everything wired up.
My Boiler has OpenTherm version 4 (double confirmed with support). Could this be an issue?
OpenTherm v4 ? AFAIK, V3 is the latest. The voltage is DC or AC ?
Yes it is v4. In general is blurry, but you can find device on market that does support OP+ (yes, plus) v4. Additionaly please take look at this URL https://www.opentherm.eu/document/opentherm-protocol-specifications-v4-0/ it's empty if opened but the addres speaks for itself.
The voltage on Boiler terminals is DC. Wire connections really looks ok. From soft configuration I've checked every combinantion. I am looking for seting-up another new ESP8266+OT Board set....
Side question. Do you have room regulator/room thermostat communicating in OT? if yes, than is Wemos between somehow as gateway?
In my case I do not posses any room regulator either vendor specific either potential free relay.
I am using Home Assistant (HA) that amongst others uses Tasmota as a protocol to communicate with IoT devices. One of them is a Wemos D1 Mini (ESP8622) that is hooked up to a Ihor Melnyk OpenTherm adapter. The temperature reading comes from a little Xiaomi BLE thermometer of which the signal is going to HA. HA has on its turn various types software thermostats that controls the Wemos. Is this what you are asking?
Yes it is v4. In general is blurry, but you can find device on market that does support OP+ (yes, plus) v4. Additionaly please take look at this URL https://www.opentherm.eu/document/opentherm-protocol-specifications-v4-0/ it's empty if opened but the addres speaks for itself.
The voltage on Boiler terminals is DC. Wire connections really looks ok. From soft configuration I've checked every combinantion. I am looking for seting-up another new ESP8266+OT Board set....
In the meanwhile I updated my small amount of OT knowledge. Indeed there is a V4 that has some extra ID's (commands) and more clarity on the protocol. Unfortunately the URL you provided does not point to the V4 spec. That is for members only, which is far from free.
Is this what you are asking?
Yes, this is what I was asking for as I was wondering if that I am lacking any OT Vendor specific thermostat is an my issues but NO that is not the case.
The news is that with ESPHome OT specific config burnt to my Wemos it work out.... Unfortunately I have no clue why I failed with Tasmota.
PS. Can you please share source for OT v4. knowledge?
I understand that you killed your Wemos using ESPhome and that you want to use Tasmota instead. Correct?
My OT knowledge comes from an old pal who worked as a programmer for boiler producer and in that time he had access to the info. And AFAIK there is no Opentherm information public available (apart from V2.2 )
Oh.... no no, by "burnt" I meant flashed ESPHome specific configured binary file into Wemos ;). At the end I enjoying with working connection to my Termet boiler. Regrads
OK, that is another explanation of the meaning of burnt. :) Would you mind sharing your YAML, I would like to compare but do not want to reflash the MQTT Wemos at the beginning of the winter season.
Config that I've use comes from this project: ESPHome-OpentTherm Note: this is YAML confi file for ESPHome core component not for HA configuration.yaml
Config that I've use comes from this project: ESPHome-OpentTherm Note: this is YAML confi file for ESPHome core component not for HA configuration.yaml
thnx
I also have the same issue with my ESP32 running 12.2.0 Another Wemos D1 on tasmota 9.5.0 runs OK
PROBLEM DESCRIPTION
A clear and concise description of what the problem is. I compiled tasmota 8.3.1 code and configured according instructions https://tasmota.github.io/docs/OpenTherm/ for a Ihor Melnyk adaptor (http://ihormelnyk.com/opentherm_adapter) adapter. Hooked up an Intergas Prestige boiler (https://www.intergas-verwarming.nl/en/trade/products/prestige/prestige-cw6/) on pins 11&12 of the X4 connector .
when connecting I get these type of errors 11:25:41 [OTH]: perform handshake 11:25:42 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
REQUESTED INFORMATION
Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!
Backlog Template; Module; GPIO 255
:Rules output here: 11:31:59 CMD: Group 0, Index 1, Command "BACKLOG", Data "Rule1; Rule2; Rule3" 11:31:59 SRC: Backlog 11:31:59 CMD: Group 0, Index 1, Command "RULE", Data "" 11:31:59 MQT: stat/tasmota-3805/RESULT = {"Rule1":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""} 11:31:59 SRC: Backlog 11:31:59 CMD: Group 0, Index 2, Command "RULE", Data "" 11:31:59 MQT: stat/tasmota-3805/RESULT = {"Rule2":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""} 11:32:00 SRC: Backlog 11:32:00 CMD: Group 0, Index 3, Command "RULE", Data "" 11:32:00 MQT: stat/tasmota-3805/RESULT = {"Rule3":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""} 11:32:00 [OTH]: perform handshake 11:32:01 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
STATUS 0 output here: 11:33:01 CMD: status 0 11:33:01 SRC: WebConsole from 192.168.178.70 11:33:01 CMD: Group 0, Index 1, Command "STATUS", Data "0" 11:33:01 MQT: stat/tasmota-3805/STATUS = {"Status":{"Module":18,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"tasmota-3805","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0}} 11:33:01 MQT: stat/tasmota-3805/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://thehackbox.org/tasmota/release/tasmota.bin","RestartReason":"Exception","Uptime":"1T15:07:56","StartupUTC":"2020-06-09T19:25:05","Sleep":50,"CfgHolder":4617,"BootCount":36,"BCResetTime":"2020-06-05T14:44:07","SaveCount":57,"SaveAddress":"F9000"}} 11:33:01 MQT: stat/tasmota-3805/STATUS2 = {"StatusFWR":{"Version":"8.3.1(tasmota)","BuildDateTime":"2020-06-05T07:34:26","Boot":31,"Core":"2_71","SDK":"2.2.2-dev(38a443e)","Hardware":"ESP8266EX","CR":"364/699"}} 11:33:01 MQT: stat/tasmota-3805/STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":3,"MqttLog":2,"SysLog":0,"LogHost":"syslog","LogPort":514,"SSId":["titania","openwrt"],"TelePeriod":20,"Resolution":"558180C0","SetOption":["00008009","2805C8000100060000005A00000000000000","00000000","00000000"]}} 11:33:01 MQT: stat/tasmota-3805/STATUS4 = {"StatusMEM":{"ProgramSize":602,"Free":400,"Heap":22,"ProgramFlashSize":1024,"FlashSize":4096,"FlashChipId":"164068","FlashMode":3,"Features":["00000809","8FDAE797","043683A1","000000CD","010013C0","C000F981","00000224"],"Drivers":"1,2,3,4,5,6,7,8,9,10,12,16,18,19,20,21,22,24,26,27,29,30,35,37","Sensors":"1,2,3,4,5,6,69"}} 11:33:01 MQT: stat/tasmota-3805/STATUS5 = {"StatusNET":{"Hostname":"tasmota-3805-3805","IPAddress":"192.168.178.81","Gateway":"192.168.178.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.178.60","Mac":"80:7D:3A:78:EE:DD","Webserver":2,"WifiConfig":4,"WifiPower":17.0}} 11:33:01 MQT: stat/tasmota-3805/STATUS6 = {"StatusMQT":{"MqttHost":"mqtt","MqttPort":1883,"MqttClientMask":"DVES%06X","MqttClient":"DVES_78EEDD","MqttUser":"schepers","MqttCount":1,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30}} 11:33:01 MQT: stat/tasmota-3805/STATUS7 = {"StatusTIM":{"UTC":"2020-06-11T10:33:01","Local":"2020-06-11T11:33:01","StartDST":"2020-03-29T02:00:00","EndDST":"2020-10-25T03:00:00","Timezone":"+01:00","Sunrise":"04:46","Sunset":"20:53"}} 11:33:01 MQT: stat/tasmota-3805/STATUS10 = {"StatusSNS":{"Time":"2020-06-11T11:33:01","OPENTHERM":{"conn":"FAULT","settings":3,"SLAVE":{"FAULT":0,"CH":0,"DHW":0,"FL":0,"COOL":0,"CH2":0,"DIAG":0,"RAW":0},"BTMP":{"FAULT":0,"REQ":0.0,"ACT": 0.0}}}} 11:33:01 MQT: stat/tasmota-3805/STATUS11 = {"StatusSTS":{"Time":"2020-06-11T11:33:01","Uptime":"1T15:07:56","UptimeSec":140876,"Heap":22,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"titania","BSSId":"70:5A:9E:27:9F:1D","Channel":11,"RSSI":68,"Signal":-66,"LinkCount":1,"Downtime":"0T00:00:07"}}} 11:33:01 MQT: stat/tasmota-3805/STATUS12 = {"StatusSTK":{"Exception":3,"Reason":"Exception","EPC":["40101a0d","00000000","00000000"],"EXCVADDR":"400354c0","DEPC":"00000000","CallChain":["40101b10","40101b10","40101daf","40258ec4","40258ec4","402517d1","402518cc","4000050c","40252353","40101daf","4025237c","40254299","40101de6","402585f5","40101daf","4026a2d8","4025168d","402514b3","40274786","40274797","4026ff9b","40000f49","40000f49","40000e19","40105b71","40105b77","4010000d","40268dec","40268d9d","401059b9","401011c8"]}} 11:33:05 [OTH]: perform handshake 11:33:06 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT
Console output here: 1:45:03 [OTH]: perform handshake 11:45:03 WIF: Checking connection... 11:45:04 [OTH]: Processing response. Status=TIMEOUT, Response=0x0 11:45:04 [OTH]: getSlaveConfiguration failed. Status=TIMEOUT