ESPHome Smart Oil Diffuser & Nightlight

Yes, unfortunately OTA flashing is still unavailable. But flashing is really easy, I updated the documentation recently: https://templates.blakadder.com/asakuki.html

3 Likes

Hi Dani, so your setup / config / HA config is fully documented there? Does it work on a UK/EU model of this diffuser? I seem to remember this page for Asakuki 500 originally mentioning US models and it indeed didn’t work with mine?

I’ve had an annoying thing that started happening where it turns the light on itself, I think when it loses wifi for a brief interval and its driving me crazy so looking to start again.

Yes, it works on a UK/EU model of the diffuser (I bought mine 3 weeks ago in Amazon Germany). The page for Asakuki stills refers to US models, but don’t worry, it works.

I had the same problem with the light turning on. It is caused by a restart of the module, which turns on the light by default. To prevent it, I have added the following to rule1:

on Mqtt#Connected do Backlog delay 10; power2 0 endon

So, everytime the mqtt is reconnected (after a restart), the light is turned off. Rule 1 should look like the following:

Rule1 on tuyareceived#dptype4id13!=0 do tuyasend4 13,0 endon on scheme#data!=0 do backlog0 scheme 0; tuyaenum2 0 endon on Mqtt#Connected do Backlog delay 10; power2 0 endon

The only issue I have is the following: everytime a color of light is picked up, the bright is reseted to 100%. Anyway, it is not very important to me so I haven’t tried to solve it.

1 Like

I actually decided to just load your config and cross my fingers. Works on mine too thanks :slight_smile:

I gather that rule isn’t on the website so I need to modify it now?

One error I am getting (preventing effect to work - stuck on cycle and colour select) is the following. Have you seen this?

File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 817, in _light_internal_convert_color
    data[ATTR_HS_COLOR] = color_util.color_RGB_to_hs(*rgb_color)
TypeError: color_RGB_to_hs() missing 2 required positional arguments: 'iG' and 'iB'

Comes from this

Exception in effect_received when handling msg on 'stat/diffuser/RESULT': '{"TuyaEnum2":1}'

Whenever I use the colour wheel to select colour or change effect.

Yes, the rule is still not included in the website. I found it out after writting this documentation.

The error comes from homeassistant. What version are you using?

The very latest. Update 2021.10.1. I get lots of errors in log actually.

Edit: seems I was making some mistakes in the HA config when renaming things to English :slight_smile:

But I do see some (I think genuine) errors.

When turning on the light the led does turn on in cycle mode, but with following error:


Template variable error: 'dict object' has no attribute 'Color' when rendering '{% if value_json.POWER2 is defined and value_json.POWER2 == 'ON' %}{{value_json.Color.split(',')[0:3]|join(',')}}{% endif %}'

When setting the mode to solid, mode does change to solid / permanent but with following error:


Exception in rgb_received when handling msg on 'stat/diffuser/RESULT': '{"POWER2":"ON","Dimmer":100,"Color":"0F00FF","HSBColor":"244,100,100","Channel":[6,0,100]}' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/mqtt/debug_info.py", line 37, in wrapper msg_callback(msg) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 486, in rgb_received rgb = _rgbx_received( File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in _rgbx_received color = tuple(int(val) for val in payload.split(",")) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in <genexpr> color = tuple(int(val) for val in payload.split(",")) ValueError: invalid literal for int() with base 10: '0F00FF'

When setting a new colour, the colour does change ok, but with following error:


Exception in rgb_received when handling msg on 'stat/diffuser/RESULT': '{"POWER2":"ON","Dimmer":100,"Color":"0F00FF","HSBColor":"244,100,100","Channel":[6,0,100]}' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/mqtt/debug_info.py", line 37, in wrapper msg_callback(msg) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 486, in rgb_received rgb = _rgbx_received( File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in _rgbx_received color = tuple(int(val) for val in payload.split(",")) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in <genexpr> color = tuple(int(val) for val in payload.split(",")) ValueError: invalid literal for int() with base 10: '0F00FF'
Exception in rgb_received when handling msg on 'stat/diffuser/RESULT': '{"POWER2":"ON","Dimmer":100,"Color":"FF0100","HSBColor":"0,100,100","Channel":[100,1,0]}' Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/mqtt/debug_info.py", line 37, in wrapper msg_callback(msg) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 486, in rgb_received rgb = _rgbx_received( File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in _rgbx_received color = tuple(int(val) for val in payload.split(",")) File "/usr/src/homeassistant/homeassistant/components/mqtt/light/schema_basic.py", line 473, in <genexpr> color = tuple(int(val) for val in payload.split(",")) ValueError: invalid literal for int() with base 10: 'FF0100'

In Tasmota console I do see lot of these lines also:


11:34:10.464 MQT: stat/diffuser/RESULT = {"Command":"Unknown"}

Are these things I’m setting incorrectly somewhere?

I think the problem is where it doesn’t find ‘dimmer’ and ‘color’ is because there is this extra RESULT being sent which I see in tasmota console:


12:09:37.950 MQT: stat/diffuser/RESULT = {"TuyaSend":"Done"}
12:09:37.982 MQT: stat/diffuser/RESULT = {"Command":"Unknown"}
12:09:38.037 MQT: stat/diffuser/RESULT = {"POWER2":"ON","Dimmer":100,"Color":"0040FF","HSBColor":"225,100,100","Channel":[0,25,100]}

Imagine its evaluating on that Command Unknown message or maybe even the one before. Whats causing that?

Edit: I fixed the errors about the hex color by setting setoption17 to 1. Now get numeric colour instead of hex and its happy. I think on the page the 1 is missing from the end of the statement.

However I can’t get rid of the home assistant errors when everything is off and I turn on the led. The templates in the light trying to get color and dimmer from the result keep erroring because they arent contained in the result and I think because this keeps coming up in the console and is returned to HA

17:25:38.246 MQT: stat/diffuser/RESULT = {"Command":"Unknown"}

Hoping there is something else you set which might not be in the guide on the site or one of the rules has a typo maybe?

Anyone got an esp template where the buttons als work? Or os there a way t read them out the mcu?

HI All, I am trying to flash Asakuki 500ml Aroma Diffuser, as per details here Asakuki 500ml Aroma Diffuser Configuration for Tasmota, need someone to help me how do I connect wire for flashing. I have never done a serial flashing, mostly OTA in the past. Its not very clear to me what wires (as shown in the image on Tasmota page) what. Can anyone please help.
Thanks in advance.

The chip on the Asakuki 500ml is TYWE3S
Here is the pinout 


TYWE3S Wiring for Flashing~

Vcc - 3.3V
TX - RX
RX - TX
GND - GND

Make sure to ground GPIO0 during boot.

Flash instructions and connections to the Serial Programmer (FTDI) available here 


Cheers

I soldered my wires on with duponts on the free end of the wire and left them in place incase of having to flash again at some point in time. That way can easily rig it back up to the ftdi.

Thanks @Konni / @thebatfink , the wiring shown on the template page has a little different wiring, are the black wires there are connected to GND.

Hi,

I did the picture. The only difference is that I found in the board a couple of pads (red and black wires) connected with the 3,3V and the GND of the TYWE3S module. They were easy to access, so I used them to flash Tasmota.

1 Like

Thanks a lot, I was able to follow and get the diffuser flashed with tasmota.

I really appreciate all the work you’ve all put into this.
Has anyone got screenshots of their diffuser presence in lovelace, or interesting/cool automations to share?
I’ve been using the light in mine as a ‘on the air’ indicator so my family knows when my microphone or video is on in a zoom call.

1 Like

Hi
Did you succeed to integrate your SJ-07 Alfawise into HA ?
If yes could you please give us any feedback or howto ?

Sorry, no clue for this device. I think mpy best option is to buy another one that is already described in ESPHome

Hi,
I do a lot of tests for the alfawise SJ-07 diffuser, this is what I found currently :

I use Tasmota and SerialSend5.
I don’t use TuyaMCU,

This is my template :
{"NAME":"SJ-7","GPIO":[1,3200,1,3232,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18}

in console :
Baudrate 9600

and then, with SerialSend5 command :

Light
55AA0305000007 55 AA 03 05 00 00 07 color 0000?
55AA0305FFFF05 55 AA 03 05 FF FF 05 color FFFF?
55AA030C00000E 55 AA 03 0C 00 00 0E stop change
55AA030C01000F 55 AA 03 0C 01 00 0F slow change
55AA030C030011 55 AA 03 0C 03 00 11 fast change
Diffuser / Light off
55AA030E000010 55 AA 03 0E 00 00 10 OFF
WIFI LED
55AA0303000005 55 AA 03 03 00 00 05 fast
55AA0303010006 55 AA 03 03 01 00 06 off
55AA0303020007 55 AA 03 03 02 00 07 on
55AA0303030008 55 AA 03 03 03 00 08 slow
55AA0303040009 55 AA 03 03 04 00 09 very fast
Diffuser without light
55AA0307000009 55 AA 03 07 00 00 09 off
55AA030701000A 55 AA 03 07 01 00 0A low
55AA030702000B 55 AA 03 07 02 00 0B high
Diffuser with light
55AA030D010010 55 AA 03 0D 01 00 10 lava lamp
Timer
55AA030901000C 55 AA 03 09 01 00 0C 1h
55AA030902000D 55 AA 03 09 02 00 0D 3h
55AA030903000E 55 AA 03 09 03 00 0E 6h
1 Like

Hi RĂ©mi,
How did you manage to put Tasmota on the Alfawise SJ07 ?

Hi,
By soldering wires directly to the ESP as here : ESP-01-ESP8266-pinout-gpio-pin

I have a backup of the original firmware, and I also modified the AMA HOME APK but only for reconnect the original firmware to Wifi, ssg360 seems down.

It remains to understand the logic of SerialSend datas to find the missing commands, in particular the colors, fan speed, and other timers.

Why not, then, modify TUYA MCU in this direction, or develop a modified firmware with what is needed?

Note that even without compatible firmware on the ESP, the diffuser will work with its physical buttons.

1 Like