Support for IVT heatpump ('ON' code is different from the Sharp model)

This commit is contained in:
ToniA 2016-12-29 21:54:24 +02:00
parent 9dcc61f1c0
commit 7ac8963111
5 changed files with 50 additions and 4 deletions

18
IVTHeatpumpIR.cpp Normal file
View File

@ -0,0 +1,18 @@
#include <IVTHeatpumpIR.h>
IVTHeatpumpIR::IVTHeatpumpIR() : SharpHeatpumpIR()
{
static const char PROGMEM model[] PROGMEM = "ivt";
static const char PROGMEM info[] PROGMEM = "{\"mdl\":\"ivt\",\"dn\":\"IVT AY-XP12FR-N\",\"mT\":18,\"xT\":32,\"fs\":3,\"maint\":[10]}}";
_model = model;
_info = info;
}
void IVTHeatpumpIR::send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd)
{
_sharpModel = MODEL_IVT;
SharpHeatpumpIR::send(IR, powerModeCmd, operatingModeCmd, fanSpeedCmd, temperatureCmd, swingVCmd, swingHCmd);
}

20
IVTHeatpumpIR.h Normal file
View File

@ -0,0 +1,20 @@
/*
IVT heatpump control for IVT AY-XP12FR-N, remote control CRMC-A673JBEZ (almost the same as Sharp)
Also see: https://github.com/skarlsso/IRRemoteIVT/blob/master/IRRemoteIVT
*/
#ifndef IVTHeatpumpIR_h
#define IVTHeatpumpIR_h
#include <HeatpumpIR.h>
#include <SharpHeatpumpIR.h>
class IVTHeatpumpIR : public SharpHeatpumpIR
{
public:
IVTHeatpumpIR();
void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd);
};
#endif

View File

@ -8,6 +8,8 @@ SharpHeatpumpIR::SharpHeatpumpIR() : HeatpumpIR()
_model = model; _model = model;
_info = info; _info = info;
_sharpModel = MODEL_SHARP;
} }
@ -18,7 +20,7 @@ void SharpHeatpumpIR::send(IRSender& IR, uint8_t powerModeCmd, uint8_t operating
// Sensible defaults for the heat pump mode // Sensible defaults for the heat pump mode
uint8_t powerMode = SHARP_AIRCON1_MODE_ON; uint8_t powerMode = _sharpModel == MODEL_SHARP ? SHARP_AIRCON1_MODE_ON : SHARP_AIRCON2_MODE_ON;
uint8_t operatingMode = SHARP_AIRCON1_MODE_HEAT; uint8_t operatingMode = SHARP_AIRCON1_MODE_HEAT;
uint8_t fanSpeed = SHARP_AIRCON1_FAN_AUTO; uint8_t fanSpeed = SHARP_AIRCON1_FAN_AUTO;
uint8_t temperature = 23; uint8_t temperature = 23;

View File

@ -1,14 +1,15 @@
/* /*
Sharp AY-ZP40KR heatpump control (remote control P/N CRMC-A788JBEZ) Sharp AY-ZP40KR heatpump control (remote control P/N CRMC-A788JBEZ)
Probably also works on IVT (as those are Sharp units with different branding)
Also see: https://github.com/skarlsso/IRRemoteIVT/blob/master/IRRemoteIVT.ino Also see: https://github.com/skarlsso/IRRemoteIVT/blob/master/IRRemoteIVT
*/ */
#ifndef SharpHeatpumpIR_h #ifndef SharpHeatpumpIR_h
#define SharpHeatpumpIR_h #define SharpHeatpumpIR_h
#include <HeatpumpIR.h> #include <HeatpumpIR.h>
#define MODEL_SHARP 0
#define MODEL_IVT 1
// Sharp timing constants // Sharp timing constants
#define SHARP_AIRCON1_HDR_MARK 3540 // 3820 #define SHARP_AIRCON1_HDR_MARK 3540 // 3820
@ -28,6 +29,9 @@
#define SHARP_AIRCON1_FAN2 0x50 #define SHARP_AIRCON1_FAN2 0x50
#define SHARP_AIRCON1_FAN3 0x70 #define SHARP_AIRCON1_FAN3 0x70
// IVT codes
#define SHARP_AIRCON2_MODE_ON 0x11 // Power ON
class SharpHeatpumpIR : public HeatpumpIR class SharpHeatpumpIR : public HeatpumpIR
{ {
@ -35,8 +39,9 @@ class SharpHeatpumpIR : public HeatpumpIR
SharpHeatpumpIR(); SharpHeatpumpIR();
void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd); void send(IRSender& IR, uint8_t powerModeCmd, uint8_t operatingModeCmd, uint8_t fanSpeedCmd, uint8_t temperatureCmd, uint8_t swingVCmd, uint8_t swingHCmd);
private: protected:
void sendSharp(IRSender& IR, uint8_t powerMode, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature); void sendSharp(IRSender& IR, uint8_t powerMode, uint8_t operatingMode, uint8_t fanSpeed, uint8_t temperature);
uint8_t _sharpModel; // Tells whether this is Sharp or IVT
}; };
#endif #endif

View File

@ -26,6 +26,7 @@ HisenseHeatpumpIR KEYWORD1
GreeHeatpumpIR KEYWORD1 GreeHeatpumpIR KEYWORD1
FuegoHeatpumpIR KEYWORD1 FuegoHeatpumpIR KEYWORD1
ToshibaHeatpumpIR KEYWORD1 ToshibaHeatpumpIR KEYWORD1
IVTHeatpumpIR KEYWORD1
IRSender KEYWORD1 IRSender KEYWORD1
IRSenderPWM KEYWORD1 IRSenderPWM KEYWORD1