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
22.2k stars 4.81k forks source link

[Feature Request] VBus serial data (Resol controllers for standard solar thermal systems) #10981

Closed nagyrobi closed 3 years ago

nagyrobi commented 3 years ago

PROBLEM DESCRIPTION

Please help me / point me in the right direction to add support for VBus protocol.

REQUESTED INFORMATION

18:37:03.138 MQT: stat/tasmota_75E634/STATUS = {"Status":{"Module":18,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"tasmota_75E634","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}} 18:37:03.146 MQT: stat/tasmota_75E634/STATUS1 = {"StatusPRM":{"Baudrate":9600,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota/release/tasmota.bin.gz","RestartReason":"External System","Uptime":"0T00:57:51","StartupUTC":"2021-02-15T16:39:12","Sleep":50,"CfgHolder":4617,"BootCount":2,"BCResetTime":"2021-02-13T21:41:59","SaveCount":10,"SaveAddress":"FA000"}} 18:37:03.155 MQT: stat/tasmota_75E634/STATUS2 = {"StatusFWR":{"Version":"9.2.0.7(tasmota)","BuildDateTime":"2021-02-13T21:21:28","Boot":31,"Core":"2_7_4_9","SDK":"2.2.2-dev(38a443e)","CpuFrequency":80,"Hardware":"ESP8266EX","CR":"405/699"}} 18:37:03.163 MQT: stat/tasmota_75E634/STATUS3 = {"StatusLOG":{"SerialLog":0,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["ZACUT",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00408009","2805C8000100060000005A0A000000000000","00000080","00006000","00000000"]}} 18:37:03.176 MQT: stat/tasmota_75E634/STATUS4 = {"StatusMEM":{"ProgramSize":592,"Free":408,"Heap":24,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"164020","FlashFrequency":40,"FlashMode":3,"Features":["00000809","8FDAC787","04368001","000000CF","010013C0","C000F981","00004004","00001000","00000000"],"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,45","Sensors":"1,2,3,4,5,6"}} 18:37:03.186 MQT: stat/tasmota_75E634/STATUS5 = {"StatusNET":{"Hostname":"tasmota_75E634-1588","IPAddress":"192.168.1.206","Gateway":"192.168.1.254","Subnetmask":"255.255.255.0","DNSServer":"192.168.1.254","Mac":"50:02:91:75:E6:34","Webserver":2,"WifiConfig":4,"WifiPower":17.0}} 18:37:03.193 MQT: stat/tasmota75E634/STATUS6 = {"StatusMQT":{"MqttHost":"192.168.1.250","MqttPort":1883,"MqttClientMask":"DVES%06X","MqttClient":"DVES_75E634","MqttUser":"user","MqttCount":1,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30}} 18:37:03.202 MQT: stat/tasmota_75E634/STATUS7 = {"StatusTIM":{"UTC":"2021-02-15T17:37:03","Local":"2021-02-15T18:37:03","StartDST":"2021-03-28T02:00:00","EndDST":"2021-10-31T03:00:00","Timezone":"+01:00","Sunrise":"06:47","Sunset":"17:05"}} 18:37:03.211 MQT: stat/tasmota_75E634/STATUS10 = {"StatusSNS":{"Time":"2021-02-15T18:37:03"}} 18:37:03.218 MQT: stat/tasmota_75E634/STATUS11 = {"StatusSTS":{"Time":"2021-02-15T18:37:03","Uptime":"0T00:57:51","UptimeSec":3471,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"ZACUT","BSSId":"F0:9F:C2:A4:3B:1C","Channel":3,"RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:04"}}}

- [x] Set `weblog` to 4 and then, when you experience your issue, provide the output of the Console log:
```lua
  Console output here:
18:36:36.651 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:36.770 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:37.635 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:37.792 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:38.816 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:39.843 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:40.703 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:40.916 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:41.941 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:42.751 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:42.931 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:43.987 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:44.800 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:45.016 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:46.043 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:47.018 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:47.875 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:48.042 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:49.059 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:50.153 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:50.945 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:51.111 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:52.133 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:53.206 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:54.025 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:54.232 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:55.258 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:56.284 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:57.093 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B
18:36:57.256 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:58.331 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:36:59.359 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:37:00.378 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}
18:37:01.404 MQT: tele/tasmota_75E634/RESULT = {"SerialReceived":"!B w"}

TO REPRODUCE

Connect the Resol BS Plus controller data output to a Wemos D1 Mini RX port using a level-shifter circut (see diagram below). Baudrate is 9600, protocol is 8N1.

EXPECTED BEHAVIOUR

A clear and concise description of what you expected to happen. Data to be read in plain text.

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

Add any other context about the problem here. The level shifter (from Resol's approx. 8V to Wemos's 3.3V) can be as easy as the circuit below: kép

The connection works correctly as data is being received, it only needs to be decoded appropriately. I've found several projects on this: http://danielwippermann.github.io/resol-vbus/ (official documentation of protocol) https://github.com/FatBeard/vbus-arduino-library https://github.com/martinvw/vbusdecode https://github.com/tripplet/vbus-collector Is it possible to import the code of any of the above into Tasmota so we can integrate Resol units into the ecosystem?

(Please, remember to close the issue when the problem has been addressed)

ascillato2 commented 3 years ago

Moving to Discussions as it is a feature request and not a problem.