HeatpumpIR library + sensors example to send IR commands to heatpumps
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
Panasonic DKE/JKE/NKE heatpump control (DKE remote control P/N A75C2616 etc)
|
||||
*/
|
||||
#ifndef PanasonicHeatpumpIR_h
|
||||
#define PanasonicHeatpumpIR_h
|
||||
|
||||
#include <HeatpumpIR.h>
|
||||
|
||||
|
||||
// Panasonic DKE, JKE & NKE timing constants (DKE remote control P/N A75C2616)
|
||||
#define PANASONIC_AIRCON2_HDR_MARK 3500
|
||||
#define PANASONIC_AIRCON2_HDR_SPACE 1800
|
||||
#define PANASONIC_AIRCON2_BIT_MARK 420
|
||||
#define PANASONIC_AIRCON2_ONE_SPACE 1350
|
||||
#define PANASONIC_AIRCON2_ZERO_SPACE 470
|
||||
#define PANASONIC_AIRCON2_MSG_SPACE 10000
|
||||
|
||||
// Panasonic DKE, JNE & NKE codes
|
||||
#define PANASONIC_AIRCON2_MODE_AUTO 0x00 // Operating mode
|
||||
#define PANASONIC_AIRCON2_MODE_HEAT 0x40
|
||||
#define PANASONIC_AIRCON2_MODE_COOL 0x30
|
||||
#define PANASONIC_AIRCON2_MODE_DRY 0x20
|
||||
#define PANASONIC_AIRCON2_MODE_FAN 0x60
|
||||
#define PANASONIC_AIRCON2_MODE_OFF 0x00 // Power OFF
|
||||
#define PANASONIC_AIRCON2_MODE_ON 0x01
|
||||
#define PANASONIC_AIRCON2_TIMER_CNL 0x08
|
||||
#define PANASONIC_AIRCON2_FAN_AUTO 0xA0 // Fan speed
|
||||
#define PANASONIC_AIRCON2_FAN1 0x30
|
||||
#define PANASONIC_AIRCON2_FAN2 0x40
|
||||
#define PANASONIC_AIRCON2_FAN3 0x50
|
||||
#define PANASONIC_AIRCON2_FAN4 0x60
|
||||
#define PANASONIC_AIRCON2_FAN5 0x70
|
||||
#define PANASONIC_AIRCON2_VS_AUTO 0x0F // Vertical swing
|
||||
#define PANASONIC_AIRCON2_VS_UP 0x01
|
||||
#define PANASONIC_AIRCON2_VS_MUP 0x02
|
||||
#define PANASONIC_AIRCON2_VS_MIDDLE 0x03
|
||||
#define PANASONIC_AIRCON2_VS_MDOWN 0x04
|
||||
#define PANASONIC_AIRCON2_VS_DOWN 0x05
|
||||
#define PANASONIC_AIRCON2_HS_AUTO 0x0D // Horizontal swing
|
||||
#define PANASONIC_AIRCON2_HS_MIDDLE 0x06
|
||||
#define PANASONIC_AIRCON2_HS_LEFT 0x09
|
||||
#define PANASONIC_AIRCON2_HS_MLEFT 0x0A
|
||||
#define PANASONIC_AIRCON2_HS_MRIGHT 0x0B
|
||||
#define PANASONIC_AIRCON2_HS_RIGHT 0x0C
|
||||
|
||||
// Panasonic model codes
|
||||
#define PANASONIC_DKE 0
|
||||
#define PANASONIC_JKE 1
|
||||
#define PANASONIC_NKE 2
|
||||
|
||||
|
||||
class PanasonicHeatpumpIR : public HeatpumpIR
|
||||
{
|
||||
protected: // Cannot create generic Panasonic heatpump instances
|
||||
PanasonicHeatpumpIR();
|
||||
byte _panasonicModel; // Tells whether this is DKE, NKE or JKE (or other supported model...)
|
||||
|
||||
public:
|
||||
void send(IRSender& IR, byte powerModeCmd, byte operatingModeCmd, byte fanSpeedCmd, byte temperatureCmd, byte swingVCmd, byte swingHCmd);
|
||||
|
||||
private:
|
||||
void sendPanasonic(IRSender& IR, byte operatingMode, byte fanSpeed, byte temperature, byte swingV, byte swingH);
|
||||
};
|
||||
|
||||
class PanasonicDKEHeatpumpIR : public PanasonicHeatpumpIR
|
||||
{
|
||||
public:
|
||||
PanasonicDKEHeatpumpIR();
|
||||
};
|
||||
|
||||
class PanasonicJKEHeatpumpIR : public PanasonicHeatpumpIR
|
||||
{
|
||||
public:
|
||||
PanasonicJKEHeatpumpIR();
|
||||
};
|
||||
|
||||
class PanasonicNKEHeatpumpIR : public PanasonicHeatpumpIR
|
||||
{
|
||||
public:
|
||||
PanasonicNKEHeatpumpIR();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user