[RELEASE] Tasmota for HE - Auto-detecting Tasmota drivers + Tasmota firmware 7.x/8.x for HE (for use with Tuya, Sonoff and other ESP devices)

You would be amazing. I have been working on a driver using the MQTT switch driver and modded it to look for the verbage and then press a button, but I would love to have it be part of your implantation as it seems very stable and I am by no means great at this and this is my first attempt and it does not work great. And this is by enabling option 73 in tasmota

So I'm looking at a project that turns a pc cooling fan (4 wire pwm fan) when a certain temperature is reached (thermo couple with a max31855 on a wemos d1 mini).

Edit: I'd be happy to control the fan as a 3 wire one if tasmota firmware allows that. Perhaps I could consider operating like a 2 wire and use a digital out to turn on/off a relay to turn the fan on woyh no speed control or look into an external fan control board that can do speed (time to read up on that)

I don't believe either of these device types are possible with tasmota firmware on a wemos d1 mini huh?

Hello friends, I managed to add a Tuya IR Bridge (UFO-01) in the tasmota, in Smartthings after I added it in the tasmota I was able to create a virtual air conditioning control, I wanted to know if I can do something like this here
I am not sure which the correct driver to use and how to use this bridge ir tuya

@markus first of all thank you so much for making T4HE! You have done a really amazing job with it!

Having said that, if you can, I would truly appreciate some help getting my TreatLife switches to work with it. For now, I started with the SS02 3-Way Switch and tried the following:

  • I followed the wiki to flash the 3 way switch with Tasmota-hubitat-8.3.1

  • I issued the "reset 5" command, went to Configuration->Configure Hubitat->set my Hubitat IP and saved the changes

  • I then went to Configuration->Configure Other->and made sure Hubitat enable and Hue Bridge were both set and saved the changes

  • I then followed the "T4HE Installation" wiki instructions, but I am having some issues with a couple of things:

  1. After I manually add the 3 way switch using the Tasmota Device Manager I noticed that the Wifi shows as just 'null'.

  2. I can't seem to get the child driver to show up so I can control the switch. I've tried the configure/refresh buttons from the parent, but nothing seems to happen. I checked that the Device Configuration has been set to the Generic Device (since I couldn't find my device under the Device Configuration dropdown), I've tried using the Universal Parent Driver (even the beta one) and I'm using the device template from here for the switch: TreatLife SS02 3-Way Switch Template for Tasmota

If I go directly to the Tasmota web interface, I can control the switch fine, but I can't seem to from Hubitat. At this point I was out of ideas on what else to try. So I decided to enable debug logging using the instructions from the wiki. After I enabled it, I noticed the below errors in the Hubitat logs whenever I try to use the refresh or configure buttons from the parent driver. So I'm wondering, are these errors a clue as to why the two items above aren't working (wifi set to null and no child driver)?

Error 1:
groovy.json.JsonException: expecting '}' or ',' but got current char 'B' with an int value of 66

The current character read is 'B' with an int value of 66
expecting '}' or ',' but got current char 'B' with an int value of 66
line number 1
index number 200
{"Time":"1970-01-01T07:25:06","Uptime":"0T07:25:08","UptimeSec":26708,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER1":"OFF","POWER2":"OFF","Wifi":{"AP":1,"SSId":"//","BSSId":"F2:9F:C2:77:B7:80","Channel":11,"RSSI":92,"Signal":-54,"LinkCount":1,"Downtime":"0T00:00:03"}}
........................................................................................................................................................................................................^ on line 854 (parse)

Error 2:
groovy.json.JsonException: expecting a ',' or a ']', but got
the current character of '"' with an int value of 34 on array index of 1

The current character read is '"' with an int value of 34
expecting a ',' or a ']', but got
the current character of '"' with an int value of 34 on array index of 1

line number 1
index number 105
{"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["//",""],"TelePeriod":300,"Resolution":"55C180C0","SetOption":["00008001","280514000100060000005A00000000000000","00000000","80000000"]}}
.........................................................................................................^ on line 854 (parse)

This here doesn't look right to me, could you provide me with a screenshot of the Tasmota page, please?

I'll have to look at why this is, it looks like a malformed json, I need to see what has changed, might be in the HE platform.

This is still on my todo, I have a device where I can try this on now.

I don't remember seeing anything for this, but I think the best would be to go and ask in Tasmota Discord, maybe someone there has a better idea.

2 Likes

Not sure if there is a good driver for it around, you can send raw Tasmota IR commands through my Tasmota parent driver, but I don't have a wrapper driver for it.

1 Like

I understand @markus, but how do I do that? via WebCORE ?? Can i also create a virtual button and link the on button to send an IR code and the off button to send another? How are you guys using ? And is it possible to have feedback on IR Tuya?


@markus You mean this?


@markus Or did you mean this?

Are you looking to send IR commands to your AC unit? I have Mitsubishi mini splits and was able to set up IR blasters using tazmota IR and Webcore. I setup my blasters in each room and then used the virtual thermostat in Hubitat attached to a webcore piston that sends an http get to my IR blasters. Let me know if this is along the lines of what you are trying to setup and I can get you more info on my setup.

1 Like

Got it, can you send me this piston? Here the AC brand is Springer Midea, which uses the Coolix protocol from RHVAC, I don't know yet how I'm going to adjust it.

And for television commands, how are you using it?

Does not look like that is supported yet by tasmota
https://tasmota.github.io/docs/Tasmota-IR/

You could make an IR receiver and capture all your codes then creat your webcore piston

This is the post I used to make my IR Blaster and get my setup working

From this I was able to setup webcore with my http get request to trigger the IR commands

1 Like

I'm using Tuya IR Bridge UFO-01 with tasmota, in Smartthings in the Tasmota Connect App I can create a virtual air conditioner that supports the Coolix brand that can control my Springer Midea air conditioner.
https://raw.githubusercontent.com/hongtat/tasmota-connect/master/devicetypes/hongtat/tasmota-virtual-air-conditioner.src/tasmota-virtual-air-conditioner.groovy
I was wondering how to write the code to command to send to the IR Tuya on WebCore. In Smartthings I wrote this way:
IRsend \ {"Protocol": "COOLIX", "Bits": 24, "Data": "0xB2BF00", "DataLSB": "0x4DFD00", "Repeat": 0, "IRHVAC": {"Vendor": "COOLIX "," Model ": - 1," Power ":" On "," Mode ":" Cool "," Celsius ":" On "," Temp ": 17," FanSpeed ​​":" Auto "," SwingV " : "Off", "SwingH": "Off", "Quiet": "Off", "Turbo": "Off", "Econo": "Off", "Light": "Off", "Filter": " Off "," Clean ":" Off "," Beep ":" Off "," Sleep ": - 1} }
But here at Hubitat I see that you do it via http ??? how do i write?

here is the code i am using. I found that i had to encode all of my special characters to make it work
{urlencode{@LRIR}{@Heat}{HTemp}{Cl}}

@LRIR = http://192.168.1.61 - Address of IR Blaster
@Heat = /cm?cmnd=IRHVAC%20%7B%22Vendor%22:%22Mitsubishi_AC%22,%20%22Power%22:%20%221%22,%22Mode%22:%20%22heat%22,%20%22FanSpeed%22:%20%22Auto%22,%20%22Celsius%22:%20%22Off%22,%20%22Temp%22:%20%22%HTemp%%22%7D
HTemp = Virtual Thermastat Temp
Cl = %22%7D


1 Like

@markus look I'll admit that I am being lazy by just asking, rather than trying... So please tell me to stop being so lazy and give it a go if this isnt a straightforward answer for you. But I'm a little outside my depth being a novice to tasmota so this will take some effort for me to understand.

Edit:
I don't see the options for max31855 in the configuration screen of tasmota so this is something new to me. Is it not included in this firmware?

However it seems that tasmota has support for my max31855 thermocouple board for the esp8266 (see link below). I have incorporated that into some arduino ide code before so the wiring up part I'm reasonably confident with.

However the part I am not so confident in is with getting the temperature value into hubitat. I have only used the usual switches and relays for tasmota who's states are easily read in hubitat with the child devices for those types/states. Would this work the same and come up as a temperature device? Or do I need to read the console messages which is something new to me.

Please @davidandjoyrichard , can you share the code of this piston to me ?
I'm trying to do it but I'm not getting it. Just go to share anonymized photo

In Smartthings my piston was like this and it worked perfectly

Great News! this is a very simple fix. I had the same problem with my code. take your code from Webcor for ST and import into Webcor for Habitat. once you do that then go in and change all of your spaces and other characters using this table. once you do that it will work just as it did on ST. I had to update my code because I had the same problem. let me know if you have any questions.

my Code was like your your and I had to update it to the following. see how there are no spaces instead it is %20 so for ('IRsend{"Protocol" : "SONY" , "Bits" :32, "Data" : "0xE17A609F"}')
it would instead be

('IRsend%5C%7B %22Protocol%22%20:%20%22SONY%22%20%2C%20%22Bits%22%20:32%2C%20%22Data%22%20:%20%220xE17A609F%22%5C%7D%22)

or my code below.

cmnd=IRHVAC%20%7B%22Vendor%22:%22Mitsubishi_AC%22,%20%22Power%22:%20%221%22,%22Mode%22:%20%22heat%22,%20%22FanSpeed%22:%20%22Auto%22,%20%22Celsius%22:%20%22Off%22,%20%22Temp%22:%20%22%HTemp%%22%7D
HTemp = Virtual Thermastat Temp
Cl = %22%7D

1 Like

I've already managed to make the code work in chrome, but I'm not able to write the WebCORE code. I've tried in every possible way.
Where did you define the
@LRIR
@CTemp
@AC
@urlencode

This code here is working in chrome
http://192.168.86.53/cm?cmnd=IrSend+{"Protocol"%3A"COOLIX"%2C"Bits"%3A24%2C"Data"%3A"0xB2BF00"%2C"DataLSB"%3A"0x4DFD00"%2C"Repeat"%3A0%2C"IRHVAC"%3A{"Vendor"%3A"COOLIX"%2C"Model"%3A-1%2C"Power"%3A"On"%2C"Mode"%3A"Cool"%2C"Celsius"%3A"On"%2C"Temp"%3A17%2C"FanSpeed"%3A"Auto"%2C"SwingV”%3A”Off%2C”SwingH"%3A"Off"%2C"Quiet"%3A"Off"%2C"Turbo"%3A"Off"%2C"Econo"%3A"Off"%2C"Light"%3A"Off"%2C"Filter"%3A"Off"%2C"Clean"%3A"Off"%2C"Beep"%3A"Off"%2C"Sleep"%3A-1}}

Hi everyone, I'm aware of the many posts in here I should answer to, my computer (yes I only have one since I've resisted to get multiple ones, I'm not going to resist that anymore) broke down recently and I'm waiting for a new one to arrive, maybe tomorrow or the day after.

In the mean time I want to say that there is a command in the Parent Tasmota driver which can be used to send arbitrary Tasmota commands without having to deal with encoding the strings. The command is "sendCommand" It takes to arguments, the Tasmota command and then all the parameters of that command. No special formatting needed, just send them as you would write them in the Tasmota console.

I will update and write more replies when I have my new computer, for now I can just use my computer for a short period (or very low load) before it crashes.

3 Likes

@LRIR - is a global variable and it is
string@LRIR http://192.168.1.x
@CTemp - is the a local variable and is the virtual thermostat cooling setpoint
@HTemp is a local variable and is the virtual thermostat heating setpoint
@AC is a global variable
dynamic @AC/cm?cmnd=IRHVAC%20%7B%22Vendor%22:%22Mitsubishi_AC%22,%20%22Power%22:%20%221%22,%22Mode%22:%20%22Cool%22,%20%22FanSpeed%22:%20%22Auto%22,%20%22Celsius%22:%20%22Off%22,%20%22Temp%22:%20%22
@Heat is a global variable
dynamic @Heat/cm?cmnd=IRHVAC%20%7B%22Vendor%22:%22Mitsubishi_AC%22,%20%22Power%22:%20%221%22,%22Mode%22:%20%22heat%22,%20%22FanS
urlencode is used to wrap the statement not a variable

1 Like