ouinouin / Berryton

Drive your airton AC unit from mqtt with an esp32 modulte with tasmota and a berry script
7 stars 2 forks source link

Issue Summary: AC Unit Commands Sent but Not Executed by Airton PAC #5

Open sgmckay25 opened 3 weeks ago

sgmckay25 commented 3 weeks ago

I've tested the Berryton project by connecting via TX/RX and an external power supply. The Airton PAC receives the commands, but it does not activate. In the logs, the data appears to be sent as expected. Here’s the full log for reference:

10:26:40.970 MQT: tele/tasmota_0BF5EC/STATE = {"Time":"2024-10-30T10:26:40","Uptime":"0T00:00:10","UptimeSec":10,"Heap":131,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":59,"MqttCount":1,"Berry":{"HeapUsed":18,"Objects":267},"Wifi":{"AP":1,"SSId":"Maboxe-X1EAVB","BSSId":"11:11:11:11:11:11","Channel":11,"Mode":"HT40","RSSI":84,"Signal":-58,"LinkCount":1,"Downtime":"0T00:00:05"}}
10:26:45.078 function GetFrametype : valid message from AC unit : bytes('7A7AD521220000A30A0A1E0000440901C8000000000464003F4442313135313056F6')
10:26:45.090 function GetACmode :  ACmodeString =  off
10:26:45.092 function GetFanSpeed : FanModeString =  medium-high
10:26:45.093 function GetOscillationMode : OscillationModeString =  on
10:26:45.106 function GetInternalTemperature : internal unit temperature:  30
10:26:45.107 function GetTemperatureSetpoint : TemperatureSetpoint retrieved from persistent memory :  25
10:26:45.119 recovered FanSpeedSetpoint :  medium-high
10:26:45.120 recovered OscillationModeSetpoint :  on
10:26:45.131 recovered ACmode :  off
10:26:45.132 function PublishFeedback : got all needed value, publishing in mqtt topics
10:26:45.148 MQT: tele/Newclim/mode/get = off
10:26:45.150 MQT: tele/Newclim/fan/get = medium-high
10:26:45.154 MQT: tele/Newclim/swing/get = on
10:26:45.156 MQT: tele/Newclim/Actualtemp/get = 30
10:26:45.160 MQT: tele/Newclim/Actualsetpoint/get = 25
10:26:49.678 MQT: stat/tasmota_0BF5EC/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota32/release/tasmota32.bin","RestartReason":"Software reset CPU","Uptime":"0T00:00:19","StartupUTC":"2024-10-30T09:26:30","Sleep":50,"CfgHolder":4617,"BootCount":19,"BCResetTime":"2024-10-29T22:37:36","SaveCount":34}}
10:26:49.734 MQT: stat/tasmota_0BF5EC/STATUS11 = {"StatusSTS":{"Time":"2024-10-30T10:26:49","Uptime":"0T00:00:19","UptimeSec":19,"Heap":122,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":24,"MqttCount":1,"Berry":{"HeapUsed":18,"Objects":267},"Wifi":{"AP":1,"SSId":"Maboxe-X1EAVB","BSSId":"11:11:11:11:11:11","Channel":11,"Mode":"HT40","RSSI":84,"Signal":-58,"LinkCount":1,"Downtime":"0T00:00:05"}}
10:27:03.182 function MQTTSubscribeDispatcher : message received from mqtt
10:27:03.184 function MQTTSubscribeDispatcher : actual ACmode =  off
10:27:03.195 function MQTTSubscribeDispatcher : actual FanSpeedSetpoint =  medium-high
10:27:03.196 function MQTTSubscribeDispatcher : actual OscillationModeSetpoint =  on
10:27:03.208 function MQTTSubscribeDispatcher : actual TemperatureSetpoint =  25
10:27:03.210 function MQTTSubscribeDispatcher : received TemperatureSetpoint =  20
10:27:03.221 function MQTTSubscribeDispatcher : publishing immediately TemperatureSetpoint
10:27:03.236 MQT: tele/Newclim/Actualsetpoint/get = 20.0
10:27:03.240 function forgepayload : Register 13 ,temperature setpoint -16 :  1
10:27:03.261 function MQTTSubscribeDispatcher : sending frame to AC unit:  bytes('7A7A21D5180000A10000000040010198000000000000FC69')
10:27:19.890 function MQTTSubscribeDispatcher : message received from mqtt
10:27:19.891 function MQTTSubscribeDispatcher : actual ACmode =  off
10:27:19.903 function MQTTSubscribeDispatcher : actual FanSpeedSetpoint =  medium-high
10:27:19.905 function MQTTSubscribeDispatcher : actual OscillationModeSetpoint =  on
10:27:19.917 function MQTTSubscribeDispatcher : actual TemperatureSetpoint =  25
10:27:19.920 function MQTTSubscribeDispatcher : received ACmode =  heat
10:27:19.934 MQT: tele/Newclim/mode/get = heat
10:27:19.936 function MQTTSubscribeDispatcher : publishing immediately ACmode
10:27:19.940 function forgepayload : Register 13 ,temperature setpoint -16 :  1
10:27:19.972 function MQTTSubscribeDispatcher : sending frame to AC unit:  bytes('7A7A21D5180000A1000000004C010198000000000000C3A9')
10:27:27.053 function MQTTSubscribeDispatcher : message received from mqtt
10:27:27.055 function MQTTSubscribeDispatcher : actual ACmode =  heat
10:27:27.057 function MQTTSubscribeDispatcher : actual FanSpeedSetpoint =  medium-high
10:27:27.069 function MQTTSubscribeDispatcher : actual OscillationModeSetpoint =  on
10:27:27.081 function MQTTSubscribeDispatcher : actual TemperatureSetpoint =  25
10:27:27.083 function MQTTSubscribeDispatcher : received TemperatureSetpoint =  22
10:27:27.096 function MQTTSubscribeDispatcher : internal_thermostat enabled in heat mode : saving the setpoint 22  to persistance file if different then previously
10:27:27.109 function StoreIfDifferent : storing the value : 22 to persist. TempSetpoint
10:27:27.111 function MQTTSubscribeDispatcher : publishing immediately TemperatureSetpoint
10:27:27.126 MQT: tele/Newclim/Actualsetpoint/get = 22.0
10:27:27.132 function forgepayload : Register 13 ,temperature setpoint -16 :  1
10:27:27.153 function MQTTSubscribeDispatcher : sending frame to AC unit:  bytes('7A7A21D5180000A1000000004C010198000000000000C3A9')

I reversed the TX and RX connections to double-check, and as expected, I stopped receiving data. This suggests that the TX/RX wiring is correct. Despite this, the AC unit still doesn’t respond to the commands sent.

I’ve tested with the PAC both on and off and with internalThermostat set to 0 and 1, but it remains unresponsive. Could there be specific settings or configurations needed to resolve this? Any insights or suggestions would be greatly appreciated.

ouinouin commented 2 weeks ago

@sgmckay25 : check on your remote that the wifi is enabled, there is a dedicated button for that, i had numerous times the issue of thinking that my board was no more working and in fact it was just someone had pressed the wifi button and disabled it. when the rx is working you should se some logs stating that a pyaload came on the logs. indded for now you still cannot say which is the tx and which is the rx until you receive a valide payload from the AC unit.

sgmckay25 commented 2 weeks ago

Hi @ouinouin,

I'm receiving the bytes correctly, which confirms that the RX and TX connections are good. I checked the remote, and the Wi-Fi is indeed enabled. I also tried toggling it on and off, but it doesn’t make a difference.

Here’s an example log where I request the unit to turn on at 31 degrees. We can see that it recognizes the internal temperature via GetInternalTemperature, so RX and TX seem OK. However, the AC still doesn’t turn on and stays off.

Example log:

12:01:31.361 function GetFrametype : valid message from AC unit : bytes('7A7AD521220000A30A0A170000440500C8000000000464008A44423131353130B4F6')
12:01:31.363 function GetACmode :  ACmodeString =  off
12:01:31.366 function GetFanSpeed : FanModeString =  medium-high
12:01:31.367 function GetOscillationMode : OscillationModeString =  off
12:01:31.370 function GetInternalTemperature : internal unit temperature:  23
12:01:31.372 function GetTemperatureSetpoint : TemperatureSetpoint retrieved from persistent memory :  31
12:01:31.374 function PublishFeedback : got all needed value, publishing in mqtt topics
12:01:31.379 MQT: tele/Newclim/mode/get = off
12:01:31.381 MQT: tele/Newclim/fan/get = medium-high
12:01:31.383 MQT: tele/Newclim/swing/get = off
12:01:31.385 MQT: tele/Newclim/Actualtemp/get = 23
12:01:31.387 MQT: tele/Newclim/Actualsetpoint/get = 31

Then I send the command to switch to "heat" mode and set the temperature to 31 degrees:

12:03:09.783 function MQTTSubscribeDispatcher : message received from mqtt
12:03:09.785 function MQTTSubscribeDispatcher : actual ACmode =  heat
12:03:09.786 function MQTTSubscribeDispatcher : actual FanSpeedSetpoint =  medium
12:03:09.788 function MQTTSubscribeDispatcher : actual OscillationModeSetpoint =  low
12:03:09.790 function MQTTSubscribeDispatcher : actual TemperatureSetpoint =  31
12:03:09.792 function MQTTSubscribeDispatcher : received ACmode =  heat
12:03:09.796 MQT: tele/Newclim/mode/get = heat
12:03:09.797 function MQTTSubscribeDispatcher : publishing immediately ACmode
12:03:09.801 function forgepayload : Register 13 ,temperature setpoint -16 :  1
12:03:09.823 function MQTTSubscribeDispatcher : sending frame to AC unit:  bytes('7A7A21D5180000A1000000003C0106980000000000000EEA')

Despite this, the unit doesn’t activate. Any ideas on how to resolve this?

Thanks in advance!