daikin-control
daikin-control copied to clipboard
Intelligent Eye API?
Hi,
thanks for the great document!
I'd like to know if there is a way to get informations from the Intelligent Eye, so I know if there is someone in the room of my Emura.
Thanks!
On 06/11/2015 01:02 PM, Fez Vrasta wrote:
Hi,
thanks for the great document!
I'd like to know if there is a way to get informations from the Intelligent Eye, so I know if there is someone in the room of my Emura.
As far as I know there isn't any api to monitor/manage Intelligent Eye feature. If you'll find something about that please share :)
I'll do! I'm still waiting that someone install my AC. After that I'm going to write a Node.js module to manage my AC.
I'll try to sniff the packets with wireshark to see if I find something useful and I'll even decompile the Android apk to see if I can find something :)
I'll do! I'm still waiting that someone install my AC. After that I'm going to write a Node.js module to manage my AC.
Nice!
I'll try to sniff the packets with wireshark to see if I find something useful and I'll even decompile the Android apk to see if I can find something :)
This is what I did. Official android app do not support special functions like Intelligent Eye. This is why I think there are any api that provides these capabilities. The only way I found to control special functions is through official remote control.
Anyway I would like to keep track of your future progress.
I'll keep you informed here.
I've also been trying to figure out if there is any support in the API for special functions like POWERFUL mode. I did a script to search for API responses on random strings burt with only one unit it would take years to go through the complete search... and the API isn't responsive while searching ... :-(
I've also been trying to figure out if there is any support in the API for special functions like POWERFUL mode.
I think this is another special function not exposed by http api.
I did a script to search for API responses on random strings burt with only one unit it would take years to go through the complete search... and the API isn't responsive while searching ... :-(
The documentation on this repo is not well organized, I hope we can improve it together. Anyway during my research I found out that on http://daikinsmartdbt.jp/ there was some kind of dakin api documentation. Now the site require restricted access but you can find the source in this repo.
Few days ago I was in your city :)
Do you think it would be possible to read the content of the hardware inside the AC to get maybe some xml or something where are listed the API?
Do you think it would be possible to read the content of the hardware inside the AC to get maybe some xml or something where are listed the API?
I think that it's possible, but maybe it's a very hard procedure.
1 // Copyright 2016 sillyfrog
2 // Copyright 2017 sillyfrog, crankyoldgit
3 #ifndef IR_DAIKIN_H_
4 #define IR_DAIKIN_H_
5
6 #ifndef UNIT_TEST
7 #include <Arduino.h>
8 #else
9 #include
129 0b1101011100000000000000001100010100000000001001111101101000010001
130
131 class IRDaikinESP {
132 public:
133 explicit IRDaikinESP(uint16_t pin);
134
135 #if SEND_DAIKIN
136 void send();
137 #endif
138 void begin();
139 void on();
140 void off();
141 void setPower(bool state);
142 bool getPower();
143 void setTemp(uint8_t temp);
144 uint8_t getTemp();
145 void setFan(uint8_t fan);
146 uint8_t getFan();
147 uint8_t getMode();
148 void setMode(uint8_t mode);
149 void setSwingVertical(bool state);
150 bool getSwingVertical();
151 void setSwingHorizontal(bool state);
152 bool getSwingHorizontal();
153 bool getQuiet();
154 void setQuiet(bool state);
155 bool getPowerful();
156 void setPowerful(bool state);
157 void setSensor(bool state);
158 bool getSensor();
159 void setEcono(bool state);
160 bool getEcono();
161 void setEye(bool state);
162 bool getEye();
163 void setMold(bool state);
164 bool getMold();
165 void enableOnTimer(uint16_t starttime);
166 void disableOnTimer();
167 uint16_t getOnTime();
168 bool getOnTimerEnabled();
169 void enableOffTimer(uint16_t endtime);
170 void disableOffTimer();
171 uint16_t getOffTime();
172 bool getOffTimerEnabled();
173 void setCurrentTime(uint16_t time);
174 uint16_t getCurrentTime();
175 uint8_t getRaw();
176 void setRaw(uint8_t new_code[]);
177 #if DAIKIN_DEBUG
178 void printState();
179 #endif // DAIKIN_DEBUG
180 uint32_t getCommand();
181 void setCommand(uint32_t value);
182 static bool validChecksum(const uint8_t state[],
183 const uint16_t length = DAIKIN_COMMAND_LENGTH);
184 #ifdef ARDUINO
185 String toString();
186 static String renderTime(uint16_t timemins);
187 #else
188 std::string toString();
189 static std::string renderTime(uint16_t timemins);
190 #endif
191
192 private:
193 // # of bytes per command
194 uint8_t daikin[DAIKIN_COMMAND_LENGTH];
195 void stateReset();
196 static uint8_t calcBlockChecksum(const uint8_t *block, const uint16_t length);
197 void checksum();
198 void setBit(uint8_t byte, uint8_t bitmask);
199 void clearBit(uint8_t byte, uint8_t bitmask);
200 uint8_t getBit(uint8_t byte, uint8_t bitmask);
201 IRsend irsend;
202 };
203
204 #endif // IR_DAIKIN_H