Closed aftertommy closed 1 year ago
This is a difficult issue.
This is probably due to the internal behavior of the air conditioner.
ECHONETLite2MQTT sends the received commands in order at regular intervals (default 100ms). The air conditioner may take more than 100 ms to change operating modes.
In addition, ECHONET Lite2MQTT receives the changed state after sending all commands. So it is normal for the state change log to be 1 second later.
Coincidentally, I also have a Daikin うるさらX, so I'll try it out.
I sent the following payload to my air conditioner. I tried 5 times and all worked fine.
{"operationStatus":"true", "operationMode":"circulation", "humidifierFunction":"on"}
I noticed there is no "humidifierFunction off" in your log. ECHONETLite2MQTT does not output logs if properties do not change.
"humidifierFunction" may be "on" even when your air conditioner is turned off.
Alternatively, the air conditioner may not notify the change of "humidifierFunction". In this case, ECHONETLite2MQTT keeps "humidifierFunction" "on".
You should check the "humidifierFunction" on ECHONETLite2MQTT Web UI or Daikin APP.
Thank you for trying it out. Hm. I certainly changing humidifierFunction
between on
and off
while doing the following:
fan_only
on the HASS ac device (which sets operationStatus:true and operationMode:circulation)I may not have caught it in these logs, though. When you tried, did you do it via HA or just via MQTT?
I only sent MQTT commands. I didn't make a humidifier for HA.
But your humidifier idea in HA is a good one. I will try to make it later.
I’ve got a new setup where the MQTT HVAC sets it’s mode to a fake topic ([device]/virtual/mode/set), then there’s an automation that subscribes to that and sets the operationStatus and operationMode, then about 200ms sets the humidifierFunction (if necessary). There’s another automation that listens to the standard properties topic, and based on the json publishes to another fake topic ([device]/virtual/mode). The MQTT HVAC and Humidifier subscribe to this topic to show their mode. This seems to work a little bit better, but there are still times where the humidiferFunction seems to get dropped on the floor. It happens less, but still happens. I’ll try to get logs once I can repro again. iPhoneから送信2023/03/30 16:16、banban @.***>のメール: I only sent MQTT commands. I didn't make a humidifier for HA. But your humidifier idea in HA is a good one. I will try to make it later.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>
I was able to reproduce again. AC was off. I then did the following:
You can see that I do send the humidifierFunction:on
message, but there's no response from ECHONETLite. You can also see from earlier messages that the AC is in the state of humidifierFunction:off
:
2023-03-31 11:19:30 | [MQTT] prop changed: dining_ac humidifierFunction on
2023-03-31 11:19:29 | [ECHONETLite] prop changed: dining_ac operationStatus true
2023-03-31 11:19:29 | [MQTT] prop changed: dining_ac operationMode circulation
2023-03-31 11:19:29 | [MQTT] prop changed: dining_ac operationStatus true
2023-03-31 11:19:14 | [ECHONETLite] prop changed: dining_ac humidifierFunction off
This is with the dining_ac
device. This is with the delay in sending the humidifierFunction
message (it happens more often without the delay).
I can see from your logs that this issue is occurring. But I don't know the cause of this issue.
I made a humidifier in HA. However, this issue did not occur.
There are two possible differences between you and me.
One might be the difference in air conditioner models. My air conditioner is AN-22YRS-W. If your air conditioner is a different model, it may behave differently.
Another one may be the difference in the execution environment of ECHONETLite2MQTT. I run ECHONETLite2MQTT on my desktop PC. If your execution environment is low spec, this issue may occur.
I'll try to come up with a solution this weekend.
I have two questions.
When the "humidifierFunction" did not turn on, did you check the internal status of the air conditioner with the Daikin APP or the request function of ECHONETLite2MQTT? The solution depends on whether the air conditioner has not received the "humidifierFunction" command or whether the ECHONETLite2MQTT has not received the "humidifierFunction" status.
Did changing "humidifierFunction" 200ms after changing "operationStatus" and "operationMode" work correctly?
I am thinking of one solution. This issue may be resolved if ECHONETLite2MQTT checks the status 1 second after sending the command and retries sending the command if necessary.
Thanks for looking into it. I have a number of different models from the same year — AN71YRBKP-W, AN25YRBKPS-W, and some others. It seems to happen across all of them.
I’ve got this hosted on a Raspberry Pi 4 with 8GB RAM. It doesn’t look like my CPU or memory are pegged with this running, for whatever it’s worth.
I really can’t thank you enough for all of your help with these. It really means a lot.
I just turned on the humidifier, and the Daikin app showed it was humidifying. Then I turned on the AC to cooling, but the app showed it was still in humidifying. I then checked with the ECHONETLite2MQTT logs and confirmed that it sees the MQTT request, but the ECHONETLite properties don’t update.
My Daikin APP required a reload to see the current state. If you haven't reloaded, try it.
and... Since the Raspberry Pi has lower specs than the PC, it may have malfunctioned. I have one blank Raspberry Pi 4 so I can test it. But I want to try the command's retry function first.
@aftertommy
Sorry for the late reply.
I prototyped a feature that holds a property for a period of time. This is an unofficial feature. By publishing the following JSON, ECHONETLite2MQTT will continue to retry for 5 seconds.
{"operationStatus":"true", "operationMode":"circulation", "humidifierFunction":"on", "echonetlite2mqtt.hold":{"holdTime":5 "checkInterval":1}}
Properties are:
Give it a try as it may fix your problem.
If you're running with docker, use the 'master' tag. If you're running node.js, clone the "master" branch.
Thanks! I would love to try it. Right now I have a custom dockerfile that curl
s the latest release:
RUN \
curl -sSLf https://github.com/banban525/echonetlite2mqtt/archive/refs/tags/v2.2.0.tar.gz | tar xvz --strip-components 1
Would be at all possible to tag a release as a prototype or something? If not, I'll figure out how to change around my docker file.
I didn't mean to make a tag. Because this feature is still unofficial.
It looks like what you need is a tag.
I created a tag "v2.3.0-alpha".
Thank you! I'm sorry for the late reply -- I've been out for a bit and am now trying it out.
I upgraded to the alpha tag (thank you!) and gave it a shot, but it doesn't appear to be working. What's strange is that while I can confirm the MQTT topic is being updated, there doesn't appear to be any logs in ECHONETLite2MQTT.
Here's a value I've been setting on topic echonetlite2mqtt/elapi/v2/devices/living_ac/properties/set
:
{"operationStatus":"true","operationMode":"auto","humidifierFunction":"off","echonetlite2mqtt.hold":{"holdTime":5 "checkInterval":1}}
MQTT Explorer confirms this is being set, but nothing appears to be happening. I've attached logs.
Thank you again for your help and I apologize for the delay.
I think your command, your topic and your version are correct. But there is no record received from MQTT in the log.
I don't know what causes this problem.
Just in case, I will deploy "v2.3.0-alpha" to my environment and test it.
I deployed "v2.3.0-alpha" to my environment and it worked fine.
I don't know why your ECHONETLIte2MQTT didn't work. I think there is a problem with your environment.
Could you please rebuild ECHONETLIte2MQTT or restart ECHONETLIte2MQTT and see if the issue is resolved?
I'm pretty sure this is a local issue. Thank you!
I have a Daikin うるさらx, which features a humidifier mode. In echonet lite, the humidifier mode is represented as:
I've created a MQTT humidifier to control just the humidifier function:
This gets represented as a switch with a humidity slider in HA:
The problem is that sometimes, flipping the switch to ON doesn't work. I can verify that the MQTT properties are being set:
But it looks like maybe the AC is sometimes not applying the
humidifierFunction
successfully:I believe if
operationMode
isn't set tocirculation
first, thenhumidifierFunction
can't turn toon
.If I had to guess, the AC isn't applying multiple echonetlite properties atomically. It's probably just applying each in a random order, so if it attempts to apply
humidifierFunction
before applyingoperationMode
, it fails to do so. This causes the above MQTT Humidifier's switch to evaluate tooff
.I'm not exactly sure how to solve this via just the current echonetlite2mqtt. It seems like I might have to write an automation that listens for a custom topic, then does a sequence of property
set
s on the unit.Here are my logs:
echonetlite2mqtt_logs_internalsStatus-4.zip