mirror of https://github.com/arendst/Tasmota.git
[Solax X1] RTS support and offline status
This commit is contained in:
parent
2e77ed0560
commit
32cc20219a
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -736,7 +736,8 @@
|
|||
#define D_SENSOR_ZIGBEE_RXD "ZigBee RX"
|
||||
#define D_SENSOR_ZIGBEE_RST "ZigBee RST"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 TX"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 RX"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -735,6 +735,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee - RESET"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 - TX"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 - RX"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 - RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon - TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon - RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 - RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -737,6 +737,7 @@
|
|||
#define D_SENSOR_ZIGBEE_RST "Zigbee Rst"
|
||||
#define D_SENSOR_SOLAXX1_TX "SolaxX1 Tx"
|
||||
#define D_SENSOR_SOLAXX1_RX "SolaxX1 Rx"
|
||||
#define D_SENSOR_SOLAXX1_RTS "SolaxX1 RTS"
|
||||
#define D_SENSOR_IBEACON_TX "iBeacon TX"
|
||||
#define D_SENSOR_IBEACON_RX "iBeacon RX"
|
||||
#define D_SENSOR_RDM6300_RX "RDM6300 RX"
|
||||
|
|
|
@ -83,7 +83,7 @@ union {
|
|||
};
|
||||
} ErrCode;
|
||||
|
||||
const char kSolaxMode[] PROGMEM = D_WAITING "|" D_CHECKING "|" D_WORKING "|" D_FAILURE;
|
||||
const char kSolaxMode[] PROGMEM = D_WAITING "|" D_CHECKING "|" D_WORKING "|" D_FAILURE "|" D_OFF;
|
||||
|
||||
const char kSolaxError[] PROGMEM =
|
||||
D_SOLAX_ERROR_0 "|" D_SOLAX_ERROR_1 "|" D_SOLAX_ERROR_2 "|" D_SOLAX_ERROR_3 "|" D_SOLAX_ERROR_4 "|" D_SOLAX_ERROR_5 "|"
|
||||
|
@ -155,10 +155,19 @@ void solaxX1_RS485Send(uint16_t msgLen)
|
|||
solaxX1Serial->read();
|
||||
}
|
||||
|
||||
if (PinUsed(GPIO_SOLAXX1_RTS)) {
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("SX1: RTS-high"));
|
||||
digitalWrite(Pin(GPIO_SOLAXX1_RTS), HIGH);
|
||||
}
|
||||
solaxX1Serial->flush();
|
||||
solaxX1Serial->write(message, msgLen);
|
||||
solaxX1Serial->write(highByte(crc));
|
||||
solaxX1Serial->write(lowByte(crc));
|
||||
solaxX1Serial->flush();
|
||||
if (PinUsed(GPIO_SOLAXX1_RTS)) {
|
||||
digitalWrite(Pin(GPIO_SOLAXX1_RTS), LOW);
|
||||
}
|
||||
|
||||
AddLogBuffer(LOG_LEVEL_DEBUG_MORE, message, msgLen);
|
||||
}
|
||||
|
||||
|
@ -363,8 +372,8 @@ void solaxX1250MSecond(void) // Every 250 milliseconds
|
|||
Energy.data_valid[0] = ENERGY_WATCHDOG;
|
||||
|
||||
solaxX1.temperature = solaxX1.dc1_voltage = solaxX1.dc2_voltage = solaxX1.dc1_current = solaxX1.dc2_current = solaxX1.dc1_power = 0;
|
||||
solaxX1.dc2_power = solaxX1.status = Energy.current[0] = Energy.voltage[0] = Energy.frequency[0] = Energy.active_power[0] = 0;
|
||||
//solaxX1.energy_today = solaxX1.runtime_total = 0;
|
||||
solaxX1.dc2_power = Energy.current[0] = Energy.voltage[0] = Energy.frequency[0] = Energy.active_power[0] = 0;
|
||||
solaxX1.status = 4; // off(line)
|
||||
} else {
|
||||
if (protocolStatus.queryOfflineSend) {
|
||||
protocolStatus.status = 0b00001000; // queryOffline
|
||||
|
@ -380,7 +389,8 @@ void solaxX1250MSecond(void) // Every 250 milliseconds
|
|||
void solaxX1SnsInit(void)
|
||||
{
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("SX1: Solax X1 Inverter Init"));
|
||||
DEBUG_SENSOR_LOG(PSTR("SX1: RX pin: %d, TX pin: %d"), Pin(GPIO_SOLAXX1_RX), Pin(GPIO_SOLAXX1_TX));
|
||||
AddLog(LOG_LEVEL_DEBUG, PSTR("SX1: RX-pin: %d, TX-pin: %d, RTS-pin: %d"), Pin(GPIO_SOLAXX1_RX), Pin(GPIO_SOLAXX1_TX), Pin(GPIO_SOLAXX1_RTS));
|
||||
// DEBUG_SENSOR_LOG(PSTR("SX1: RX pin: %d, TX pin: %d"), Pin(GPIO_SOLAXX1_RX), Pin(GPIO_SOLAXX1_TX));
|
||||
protocolStatus.status = 0b00100000; // hasAddress
|
||||
|
||||
solaxX1Serial = new TasmotaSerial(Pin(GPIO_SOLAXX1_RX), Pin(GPIO_SOLAXX1_TX), 1);
|
||||
|
@ -389,6 +399,9 @@ void solaxX1SnsInit(void)
|
|||
} else {
|
||||
TasmotaGlobal.energy_driver = ENERGY_NONE;
|
||||
}
|
||||
if (PinUsed(GPIO_SOLAXX1_RTS)) {
|
||||
pinMode(Pin(GPIO_SOLAXX1_RTS), OUTPUT);
|
||||
}
|
||||
}
|
||||
|
||||
void solaxX1DrvInit(void)
|
||||
|
|
Loading…
Reference in New Issue