mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 10:46:31 +00:00
Refactor teleperiod rules
This commit is contained in:
parent
146c316d4d
commit
ad50fc5522
@ -858,14 +858,21 @@ bool MqttShowSensor(void)
|
||||
return json_data_available;
|
||||
}
|
||||
|
||||
void MqttPublishSensor(void)
|
||||
{
|
||||
void MqttPublishSensor(void) {
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishTeleSensor();
|
||||
}
|
||||
}
|
||||
|
||||
void MqttPublishTeleperiodSensor(void) {
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain); // CMND_SENSORRETAIN
|
||||
XdrvRulesProcess(1);
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* State loops
|
||||
\*********************************************************************************************/
|
||||
@ -939,12 +946,7 @@ void PerformEverySecond(void)
|
||||
TasmotaGlobal.tele_period = 0;
|
||||
|
||||
MqttPublishTeleState();
|
||||
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain); // CMND_SENSORRETAIN
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
MqttPublishTeleperiodSensor();
|
||||
|
||||
XsnsCall(FUNC_AFTER_TELEPERIOD);
|
||||
XdrvCall(FUNC_AFTER_TELEPERIOD);
|
||||
|
@ -338,15 +338,6 @@ void UBXsendCFGLine(uint8_t _line)
|
||||
DEBUG_SENSOR_LOG(PSTR("UBX: send line %u of UBLOX_INIT"), _line);
|
||||
}
|
||||
|
||||
void UBXTriggerTele(void)
|
||||
{
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain);
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************************************************************/
|
||||
|
||||
void UBXDetect(void)
|
||||
@ -378,7 +369,7 @@ void UBXDetect(void)
|
||||
|
||||
UBX.state.log_interval = 10; // 1 second
|
||||
UBX.mode.send_UI_only = true; // send UI data ...
|
||||
UBXTriggerTele(); // ... once at after start
|
||||
MqttPublishTeleperiodSensor(); // ... once at after start
|
||||
}
|
||||
|
||||
uint32_t UBXprocessGPS()
|
||||
@ -625,7 +616,7 @@ void UBXSelectMode(uint16_t mode)
|
||||
break;
|
||||
}
|
||||
UBX.mode.send_UI_only = true;
|
||||
UBXTriggerTele();
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
|
||||
/********************************************************************************************/
|
||||
@ -648,7 +639,7 @@ bool UBXHandlePOSLLH()
|
||||
UBX.state.last_vAcc = UBX.Message.navPosllh.vAcc;
|
||||
UBX.state.last_hAcc = UBX.Message.navPosllh.hAcc;
|
||||
if (UBX.mode.send_when_new) {
|
||||
UBXTriggerTele();
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
if (UBX.mode.runningNTP){ // after receiving pos-data at least once -> go to pure NTP-mode
|
||||
UBXsendCFGLine(7); //NAV-POSLLH off
|
||||
|
@ -1162,12 +1162,8 @@ void MINRFconfirmSensors(void){
|
||||
*
|
||||
*/
|
||||
void MINRFtriggerTele(void){
|
||||
MINRF.mode.triggeredTele= true;
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain);
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
MINRF.mode.triggeredTele = true;
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1565,11 +1565,7 @@ void HM10EverySecond(bool restart){
|
||||
*/
|
||||
void HM10triggerTele(void){
|
||||
HM10.mode.triggeredTele = 1;
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain);
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
|
||||
|
||||
|
@ -746,11 +746,7 @@ uint32_t MIBLEgetSensorSlot(uint8_t (&_MAC)[6], uint16_t _type, uint8_t counter)
|
||||
*/
|
||||
void MI32triggerTele(void){
|
||||
MI32.mode.triggeredTele = 1;
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain);
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -157,7 +157,7 @@ void WindMeterEverySecond(void)
|
||||
#endif // USE_WINDMETER_NOSTATISTICS
|
||||
|
||||
if (WindMeterShouldTriggerTele()) {
|
||||
WindMeterTriggerTele();
|
||||
MqttPublishTeleperiodSensor();
|
||||
}
|
||||
}
|
||||
|
||||
@ -272,15 +272,6 @@ void WindMeterShow(bool json)
|
||||
}
|
||||
}
|
||||
|
||||
void WindMeterTriggerTele(void)
|
||||
{
|
||||
ResponseClear();
|
||||
if (MqttShowSensor()) {
|
||||
MqttPublishPrefixTopic_P(TELE, PSTR(D_RSLT_SENSOR), Settings.flag.mqtt_sensor_retain);
|
||||
XdrvRulesProcess(1); // Allow rule based HA messages
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************\
|
||||
* Commands
|
||||
\*********************************************************************************************/
|
||||
|
Loading…
x
Reference in New Issue
Block a user