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;
_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
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 fanSpeed = SHARP_AIRCON1_FAN_AUTO;
uint8_t temperature = 23;

View File

@ -1,14 +1,15 @@
/*
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
#define SharpHeatpumpIR_h
#include <HeatpumpIR.h>
#define MODEL_SHARP 0
#define MODEL_IVT 1
// Sharp timing constants
#define SHARP_AIRCON1_HDR_MARK 3540 // 3820
@ -28,6 +29,9 @@
#define SHARP_AIRCON1_FAN2 0x50
#define SHARP_AIRCON1_FAN3 0x70
// IVT codes
#define SHARP_AIRCON2_MODE_ON 0x11 // Power ON
class SharpHeatpumpIR : public HeatpumpIR
{
@ -35,8 +39,9 @@ class SharpHeatpumpIR : public HeatpumpIR
SharpHeatpumpIR();
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);
uint8_t _sharpModel; // Tells whether this is Sharp or IVT
};
#endif

View File

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