mirror of
https://github.com/anklimov/lighthub
synced 2026-04-29 12:05:09 +00:00
60 lines
1.7 KiB
C++
60 lines
1.7 KiB
C++
#pragma once
|
|
#include "options.h"
|
|
#ifndef MULTIVENT_DISABLE
|
|
#include <abstractout.h>
|
|
#include <item.h>
|
|
#include "itemCmd.h"
|
|
#include <PID_v1.h>
|
|
|
|
#define AC_BOOST_HIGH_TEMP 30
|
|
#define AC_PRESET_TEMP 21
|
|
#define AC_BOOST_LOW_TEMP 17
|
|
#define AC_BOOST_TRESHOLD 230
|
|
#define AC_BOOST_DEADBAND 10
|
|
#define AC_HEATCOOL_DEADBAND 1.0
|
|
|
|
#define AC_SUPPRESS_FAN 1
|
|
#define AC_SUPPRESS_SET 2
|
|
#define AC_SUPPRESS_CMD 4
|
|
#define AC_SUPPRESS_ALL 7
|
|
|
|
|
|
class out_Multivent : public abstractOut {
|
|
public:
|
|
|
|
//out_Multivent(Item * _item):abstractOut(_item){getConfig();};
|
|
//out_Multivent(){};
|
|
void link(Item * _item){abstractOut::link(_item); if (_item) getConfig();};
|
|
int Setup() override;
|
|
int Poll(short cause) override;
|
|
int Stop() override;
|
|
int isActive() override;
|
|
int getChanType() override;
|
|
//int getDefaultStorageType(){return ST_PERCENTS255;};
|
|
int Ctrl(itemCmd cmd, char* subItem=NULL, bool toExecute=true, bool authorized = false) override;
|
|
int fanCtrl(itemCmd cmd, char* subItem=NULL, bool force = false);
|
|
protected:
|
|
void getConfig();
|
|
int sendACcmd (itemCmd cmd);
|
|
void checkACcmd (int acCmd);
|
|
void checkACfan (int acFan);
|
|
void checkACset (int acSet);
|
|
void setPassiveMode(aJsonObject* zone, bool mode);
|
|
uint32_t getFlag (aJsonObject* zone, uint32_t flag);
|
|
void setFlag (aJsonObject* zone, uint32_t flag);
|
|
void clearFlag (aJsonObject* zone, uint32_t flag);
|
|
void enablePid(aJsonObject* zone, int enable, int direction = -1);
|
|
bool pidEnabled(aJsonObject* pidObj);
|
|
void setBoost(itemCmd);
|
|
void resetBoost();
|
|
void notifyState(itemCmd state);
|
|
void stopAllzones();
|
|
void restoreAllzones();
|
|
|
|
|
|
aJsonObject * gatesObj;
|
|
aJsonObject * acObj;
|
|
//float acTemp;
|
|
};
|
|
#endif
|