mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
added ems_getTxDisabled()
This commit is contained in:
@@ -106,7 +106,7 @@ static const command_t project_cmds[] PROGMEM = {
|
||||
{true, "shower_alert <on | off>", "stop hot water to send 3 cold burst warnings after max shower time is exceeded"},
|
||||
{true, "publish_time <seconds>", "set frequency for publishing data to MQTT (0=off)"},
|
||||
{true, "heating_circuit <1 | 2>", "set the main thermostat HC to work with (if using multiple heating circuits)"},
|
||||
{true, "tx_mode <n>", "0=classic ems logic, 1=@kwertie01 ems+ logic, 2=@susisstrolch logic, 3=@philrich logic for Junkers"},
|
||||
{true, "tx_mode <n>", "changes Tx logic. 0=ems 1.0, 1=ems+, 2=generic (experimental!), 3=HT3"},
|
||||
|
||||
{false, "info", "show current captured on the devices"},
|
||||
{false, "log <n | b | t | r | v>", "set logging mode to none, basic, thermostat only, raw or verbose"},
|
||||
@@ -141,7 +141,7 @@ _EMSESP_Shower EMSESP_Shower;
|
||||
|
||||
// logging messages with fixed strings
|
||||
void myDebugLog(const char * s) {
|
||||
if (ems_getLogging() >= EMS_SYS_LOGGING_BASIC) {
|
||||
if (ems_getLogging() != EMS_SYS_LOGGING_NONE) {
|
||||
myDebug(s);
|
||||
}
|
||||
}
|
||||
@@ -1038,11 +1038,13 @@ void do_systemCheck() {
|
||||
// force calls to get data from EMS for the types that aren't sent as broadcasts
|
||||
// only if we have a EMS connection
|
||||
void do_regularUpdates() {
|
||||
if (ems_getBusConnected()) {
|
||||
if (ems_getBusConnected() & !ems_getTxDisabled()) {
|
||||
myDebugLog("Requesting scheduled EMS device data");
|
||||
ems_getThermostatValues();
|
||||
ems_getBoilerValues();
|
||||
ems_getSolarModuleValues();
|
||||
} else {
|
||||
myDebugLog("System is either not connect to the EMS bus or listen_mode is enabled");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1398,7 +1400,6 @@ void TelnetCommandCallback(uint8_t wc, const char * commandLine) {
|
||||
}
|
||||
|
||||
if (strcmp(first_cmd, "refresh") == 0) {
|
||||
myDebug_P(PSTR("Fetching data from EMS devices..."));
|
||||
do_regularUpdates();
|
||||
ok = true;
|
||||
}
|
||||
|
||||
77
src/ems.h
77
src/ems.h
@@ -18,42 +18,54 @@
|
||||
* ° for Tx, we use GPIO12
|
||||
*/
|
||||
#ifdef LOGICANALYZER
|
||||
#define RX_MARK_PIN 14
|
||||
#define TX_MARK_PIN 12
|
||||
#define RX_MARK_PIN 14
|
||||
#define TX_MARK_PIN 12
|
||||
|
||||
#define RX_MARK_MASK (1<<RX_MARK_PIN)
|
||||
#define TX_MARK_MASK (1<<TX_MARK_PIN)
|
||||
#define MARKERS_MASK (RX_MARK_PIN|TX_MARK_PIN)
|
||||
#define RX_MARK_MASK (1 << RX_MARK_PIN)
|
||||
#define TX_MARK_MASK (1 << TX_MARK_PIN)
|
||||
#define MARKERS_MASK (RX_MARK_PIN | TX_MARK_PIN)
|
||||
|
||||
#define GPIO_H(mask) (GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, (mask)))
|
||||
#define GPIO_L(mask) (GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, (mask)))
|
||||
#define GPIO_H(mask) (GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, (mask)))
|
||||
#define GPIO_L(mask) (GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, (mask)))
|
||||
|
||||
#define RX_PULSE(pulse) do { GPIO_H(RX_MARK_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(RX_MARK_MASK); \
|
||||
} while (0)
|
||||
#define TX_PULSE(pulse) do { GPIO_H(TX_MARK_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(TX_MARK_MASK); \
|
||||
} while (0)
|
||||
#define LA_PULSE(pulse) do { GPIO_H(MARKERS_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(MARKERS_MASK); \
|
||||
} while (0)
|
||||
#define RX_PULSE(pulse) \
|
||||
do { \
|
||||
GPIO_H(RX_MARK_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(RX_MARK_MASK); \
|
||||
} while (0)
|
||||
#define TX_PULSE(pulse) \
|
||||
do { \
|
||||
GPIO_H(TX_MARK_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(TX_MARK_MASK); \
|
||||
} while (0)
|
||||
#define LA_PULSE(pulse) \
|
||||
do { \
|
||||
GPIO_H(MARKERS_MASK); \
|
||||
delayMicroseconds(pulse); \
|
||||
GPIO_L(MARKERS_MASK); \
|
||||
} while (0)
|
||||
|
||||
#define INIT_MARKERS(void) do { pinMode(RX_MARK_PIN, OUTPUT);\
|
||||
pinMode(TX_MARK_PIN, OUTPUT);\
|
||||
GPIO_L(MARKERS_MASK); \
|
||||
} while (0)
|
||||
#define INIT_MARKERS(void) \
|
||||
do { \
|
||||
pinMode(RX_MARK_PIN, OUTPUT); \
|
||||
pinMode(TX_MARK_PIN, OUTPUT); \
|
||||
GPIO_L(MARKERS_MASK); \
|
||||
} while (0)
|
||||
#else
|
||||
#define RX_PULSE(pulse) {}
|
||||
#define TX_PULSE(pulse) {}
|
||||
#define LA_PULSE(pulse) {}
|
||||
#define INIT_MARKERS(void) {}
|
||||
#define RX_MARK_MASK
|
||||
#define TX_MARK_MASK
|
||||
#define GPIO_H(mask)
|
||||
#define GPIO_L(mask)
|
||||
#define RX_PULSE(pulse) \
|
||||
{}
|
||||
#define TX_PULSE(pulse) \
|
||||
{}
|
||||
#define LA_PULSE(pulse) \
|
||||
{}
|
||||
#define INIT_MARKERS(void) \
|
||||
{}
|
||||
#define RX_MARK_MASK
|
||||
#define TX_MARK_MASK
|
||||
#define GPIO_H(mask)
|
||||
#define GPIO_L(mask)
|
||||
#endif
|
||||
|
||||
#define EMS_ID_NONE 0x00 // used as a dest in broadcast messages and empty device IDs
|
||||
@@ -107,7 +119,7 @@ typedef enum {
|
||||
} _EMS_RX_STATUS;
|
||||
|
||||
typedef enum {
|
||||
EMS_TX_STATUS_OK,
|
||||
EMS_TX_STATUS_OK,
|
||||
EMS_TX_STATUS_IDLE, // ready
|
||||
EMS_TX_STATUS_WAIT, // waiting for response from last Tx
|
||||
EMS_TX_WTD_TIMEOUT, // watchdog timeout during send
|
||||
@@ -405,6 +417,7 @@ void ems_setEmsRefreshed(bool b);
|
||||
void ems_setWarmWaterModeComfort(uint8_t comfort);
|
||||
void ems_setModels();
|
||||
void ems_setTxDisabled(bool b);
|
||||
bool ems_getTxDisabled();
|
||||
uint8_t ems_getTxMode();
|
||||
|
||||
char * ems_getThermostatDescription(char * buffer);
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
#define EMS_TYPE_RC10Set 0xB0 // for setting values like temp and mode
|
||||
#define EMS_OFFSET_RC10Set_temp 4 // position of thermostat setpoint temperature
|
||||
#define EMS_OFFSET_RC10StatusMessage_setpoint 1 // setpoint temp
|
||||
#define EMS_OFFSET_RC10StatusMessage_curr 3 // current temp
|
||||
#define EMS_OFFSET_RC10StatusMessage_curr 2 // current temp
|
||||
|
||||
// RC20 specific
|
||||
#define EMS_TYPE_RC20StatusMessage 0x91 // is an automatic thermostat broadcast giving us temps
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#define EMSUART_BAUD 9600 // uart baud rate for the EMS circuit
|
||||
|
||||
#define EMS_MAXBUFFERS 5 // buffers for circular filling to avoid collisions
|
||||
#define EMS_MAXBUFFERSIZE 32 // max size of the buffer. packets are max 32 bytes to support EMS 1.0
|
||||
#define EMS_MAXBUFFERSIZE 33 // max size of the buffer. EMS packets are max 32 bytes, plus 1 for BRK
|
||||
|
||||
#define EMSUART_BIT_TIME 104 // bit time @9600 baud
|
||||
|
||||
|
||||
Reference in New Issue
Block a user