arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
21.96k stars 4.77k forks source link

OpenTherm status FAULT (0x0) #8662

Closed yann1420 closed 3 years ago

yann1420 commented 4 years ago

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!

- [ ] If using rules, provide the output of this command: `Backlog Rule1; Rule2; Rule3`:

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

- [ ] Provide the output of this command: `Status 0`:

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

- [ ] Provide the output of the Console log output when you experience your issue; if applicable:
  _(Please use_ `weblog 4` _for more debug information)_

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



### TO REPRODUCE
_Steps to reproduce the behavior:_

### EXPECTED BEHAVIOUR
_A clear and concise description of what you expected to happen._
I expect the handshake to be successful as per the documentation. Example:
00:00:01 [OTH]: perform handshake
00:00:01 [OTH]: Processing response. Status=SUCCESS, Response=0x4003011B
00:00:01 [OTH]: getLastResponseStatus SUCCESS. Slave Cfg: 4003011B
00:00:01 [OTH]: Processing response. Status=SUCCESS, Response=0xC0000000
00:00:02 [OTH]: Setting Boiler Temp. Old: 0, New: 85

### SCREENSHOTS
_If applicable, add screenshots to help explain your problem._

### ADDITIONAL CONTEXT
_Add any other context about the problem here._
**The adapter communicates with the boiler given the following response:**
11:39:41 CMD: backlog ot_flags ;ot_tboiler ;ot_twater ;ot_save_setpoints ;ot_ch 
11:39:41 SRC: WebConsole from 192.168.178.70
11:39:41 CMD: Group 0, Index 1, Command "BACKLOG", Data "ot_flags ;ot_tboiler ;ot_twater ;ot_save_setpoints ;ot_ch "
11:39:41 SRC: Backlog
11:39:41 CMD: Group 0, Index 1, Command "OT_FLAGS", Data ""
11:39:42 SRC: Backlog
11:39:42 CMD: Group 0, Index 1, Command "OT_TBOILER", Data ""
11:39:42 MQT: stat/tasmota-3805/RESULT = {"ot_tboiler":60.0}
11:39:42 SRC: Backlog
11:39:42 CMD: Group 0, Index 1, Command "OT_TWATER", Data ""
11:39:42 MQT: stat/tasmota-3805/RESULT = {"ot_twater":45.0}
11:39:42 SRC: Backlog
11:39:42 CMD: Group 0, Index 1, Command "OT_SAVE_SETPOINTS", Data ""
11:39:42 MQT: stat/tasmota-3805/RESULT = {"ot_save_setpoints":"Done"}
11:39:42 SRC: Backlog
11:39:42 CMD: Group 0, Index 1, Command "OT_CH", Data ""
11:39:42 MQT: stat/tasmota-3805/RESULT = {"ot_ch":0}
11:39:50 [OTH]: perform handshake

**(Please, remember to close the issue when the problem has been addressed)**
yury-sannikov commented 4 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.

yury-sannikov commented 4 years ago

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"}}```
yann1420 commented 4 years ago

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 MyOpenTherm-config

I see I have a different "generic" module then you have (generic-18 vs generic-0). Can that make the difference?

yury-sannikov commented 4 years ago

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.

yury-sannikov commented 4 years ago

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.

yury-sannikov commented 4 years ago

@yann1420 any luck with troubleshooting it?

stale[bot] commented 4 years ago

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.

yann1420 commented 4 years ago

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.

stale[bot] commented 3 years ago

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.

stale[bot] commented 3 years ago

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.

mr-varga commented 3 years ago

Have you solve the problem? I have the same...

santik commented 3 years ago

I have the same

yury-sannikov commented 3 years ago

hi @santik, I know you're working with Igor on this issue. Could you please update the thread when you figure this out?

s00500 commented 2 years ago

I think I also just ran into this problem... could this be due to the boiler ?

barbudor commented 2 years ago

@s00500 please test with latest version and if the problem still occur open an new issue providing all details.

s00500 commented 2 years ago

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

barbudor commented 2 years ago

@s00500 yes please, never hesitate to improve Tasmota documentation, this is how we make progress Thanks

yann1420 commented 2 years ago

In the meanwhile I upgraded to tasmota9.5.0 but have suddenly a different set of problems. I will get back to this.

yann1420 commented 2 years ago

OK, this is where I am:

barbudor commented 2 years ago

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)

yann1420 commented 2 years ago

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.

yury-sannikov commented 2 years ago

Wow, awesome 🎉

yann1420 commented 2 years ago

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

malinduta commented 2 years ago

Hello @yury-sannikov, I am also interested on the informations from the post above. Can you provide more information?

krzakx commented 1 year ago

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?

yann1420 commented 1 year ago

OpenTherm v4 ? AFAIK, V3 is the latest. The voltage is DC or AC ?

krzakx commented 1 year ago

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....

krzakx commented 1 year ago

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.

yann1420 commented 1 year ago

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?

yann1420 commented 1 year ago

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.

krzakx commented 1 year ago

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?

yann1420 commented 1 year ago

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 )

krzakx commented 1 year ago

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

yann1420 commented 1 year ago

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.

krzakx commented 1 year ago

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

yann1420 commented 1 year ago

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

serhat-ozkara commented 1 year ago

I also have the same issue with my ESP32 running 12.2.0 Another Wemos D1 on tasmota 9.5.0 runs OK