diff --git a/tasmota/language/af_AF.h b/tasmota/language/af_AF.h index b9e290410..271d10364 100644 --- a/tasmota/language/af_AF.h +++ b/tasmota/language/af_AF.h @@ -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" diff --git a/tasmota/language/bg_BG.h b/tasmota/language/bg_BG.h index fac7105f1..eabffd0e4 100644 --- a/tasmota/language/bg_BG.h +++ b/tasmota/language/bg_BG.h @@ -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" diff --git a/tasmota/language/cs_CZ.h b/tasmota/language/cs_CZ.h index a297d5f0f..93652d39f 100644 --- a/tasmota/language/cs_CZ.h +++ b/tasmota/language/cs_CZ.h @@ -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" diff --git a/tasmota/language/de_DE.h b/tasmota/language/de_DE.h index e801818df..0b2715b37 100644 --- a/tasmota/language/de_DE.h +++ b/tasmota/language/de_DE.h @@ -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" diff --git a/tasmota/language/el_GR.h b/tasmota/language/el_GR.h index b777c0965..3476240ff 100644 --- a/tasmota/language/el_GR.h +++ b/tasmota/language/el_GR.h @@ -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" diff --git a/tasmota/language/en_GB.h b/tasmota/language/en_GB.h index 128e1c3bf..ee76acf3e 100644 --- a/tasmota/language/en_GB.h +++ b/tasmota/language/en_GB.h @@ -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" diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index f88f62cdb..25d0cd09b 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -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" diff --git a/tasmota/language/fr_FR.h b/tasmota/language/fr_FR.h index 01ae71a67..22ad7d585 100644 --- a/tasmota/language/fr_FR.h +++ b/tasmota/language/fr_FR.h @@ -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" diff --git a/tasmota/language/fy_NL.h b/tasmota/language/fy_NL.h index 0adcef573..7cb38ceef 100644 --- a/tasmota/language/fy_NL.h +++ b/tasmota/language/fy_NL.h @@ -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" diff --git a/tasmota/language/he_HE.h b/tasmota/language/he_HE.h index d00bac271..678eaf46b 100644 --- a/tasmota/language/he_HE.h +++ b/tasmota/language/he_HE.h @@ -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" diff --git a/tasmota/language/hu_HU.h b/tasmota/language/hu_HU.h index 85db8bbce..a59516ad1 100644 --- a/tasmota/language/hu_HU.h +++ b/tasmota/language/hu_HU.h @@ -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" diff --git a/tasmota/language/it_IT.h b/tasmota/language/it_IT.h index 9fcb4b292..247478aaf 100644 --- a/tasmota/language/it_IT.h +++ b/tasmota/language/it_IT.h @@ -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" diff --git a/tasmota/language/ko_KO.h b/tasmota/language/ko_KO.h index 365480ef5..aa70e5be2 100644 --- a/tasmota/language/ko_KO.h +++ b/tasmota/language/ko_KO.h @@ -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" diff --git a/tasmota/language/nl_NL.h b/tasmota/language/nl_NL.h index 991187eb4..b721251f7 100644 --- a/tasmota/language/nl_NL.h +++ b/tasmota/language/nl_NL.h @@ -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" diff --git a/tasmota/language/pl_PL.h b/tasmota/language/pl_PL.h index 770606fd8..a9794adad 100644 --- a/tasmota/language/pl_PL.h +++ b/tasmota/language/pl_PL.h @@ -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" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index bb039ff4d..ab86c23a3 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -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" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index 89da9f494..c0556a582 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -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" diff --git a/tasmota/language/ro_RO.h b/tasmota/language/ro_RO.h index 16e8f042b..2aea98777 100644 --- a/tasmota/language/ro_RO.h +++ b/tasmota/language/ro_RO.h @@ -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" diff --git a/tasmota/language/ru_RU.h b/tasmota/language/ru_RU.h index 56233f278..44b4cda04 100644 --- a/tasmota/language/ru_RU.h +++ b/tasmota/language/ru_RU.h @@ -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" diff --git a/tasmota/language/sk_SK.h b/tasmota/language/sk_SK.h index b3a1098e5..93b2f989e 100644 --- a/tasmota/language/sk_SK.h +++ b/tasmota/language/sk_SK.h @@ -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" diff --git a/tasmota/language/sv_SE.h b/tasmota/language/sv_SE.h index aaf32fbde..8e28f96c5 100644 --- a/tasmota/language/sv_SE.h +++ b/tasmota/language/sv_SE.h @@ -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" diff --git a/tasmota/language/tr_TR.h b/tasmota/language/tr_TR.h index b9b2b7256..aae233362 100644 --- a/tasmota/language/tr_TR.h +++ b/tasmota/language/tr_TR.h @@ -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" diff --git a/tasmota/language/uk_UA.h b/tasmota/language/uk_UA.h index c404a9643..6a6d3d4cd 100644 --- a/tasmota/language/uk_UA.h +++ b/tasmota/language/uk_UA.h @@ -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" diff --git a/tasmota/language/vi_VN.h b/tasmota/language/vi_VN.h index 3bc724566..551307049 100644 --- a/tasmota/language/vi_VN.h +++ b/tasmota/language/vi_VN.h @@ -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" diff --git a/tasmota/language/zh_CN.h b/tasmota/language/zh_CN.h index d2d9f0d97..40120a356 100644 --- a/tasmota/language/zh_CN.h +++ b/tasmota/language/zh_CN.h @@ -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" diff --git a/tasmota/language/zh_TW.h b/tasmota/language/zh_TW.h index 39f468e0b..89368d38e 100644 --- a/tasmota/language/zh_TW.h +++ b/tasmota/language/zh_TW.h @@ -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" diff --git a/tasmota/xnrg_12_solaxX1.ino b/tasmota/xnrg_12_solaxX1.ino index 3ee4c9f47..7637ac6cc 100644 --- a/tasmota/xnrg_12_solaxX1.ino +++ b/tasmota/xnrg_12_solaxX1.ino @@ -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)