add option to disable analog event publishing
This commit is contained in:
parent
fc78dc7f4d
commit
78f001fd70
@ -9,3 +9,4 @@ digitalInputTopicPrefix = dt1/di
|
|||||||
analogInputEventTopicPrefix = dt1/ai/event
|
analogInputEventTopicPrefix = dt1/ai/event
|
||||||
analogInputPeriodicTopicPrefix = dt1/ai/periodic
|
analogInputPeriodicTopicPrefix = dt1/ai/periodic
|
||||||
analogInputPublishPeriod = 10.0
|
analogInputPublishPeriod = 10.0
|
||||||
|
disableAnalogInputEventPublishing = true
|
@ -30,12 +30,14 @@ Configuration is done using a configuration file
|
|||||||
analogInputEventTopicPrefix = dt1/ai/event
|
analogInputEventTopicPrefix = dt1/ai/event
|
||||||
analogInputPeriodicTopicPrefix = dt1/ai/periodic
|
analogInputPeriodicTopicPrefix = dt1/ai/periodic
|
||||||
analogInputPublishPeriod = 10.0
|
analogInputPublishPeriod = 10.0
|
||||||
|
disableAnalogInputEventPublishing = true
|
||||||
|
|
||||||
### Operation details
|
### Operation details
|
||||||
|
|
||||||
While the input and discrete input registers are scanned with the configured scanrate, an action on a coil according to a received message is issued immediately. At the same time the all input registers are scanned.
|
While the input and discrete input registers are scanned with the configured scanrate, an action on a coil according to a received message is issued immediately. At the same time the all input registers are scanned.
|
||||||
|
|
||||||
|
Using a configuration option it is possible to disable the publishing of analog change event - if only periodic information (like for a thermometer or so) is required.
|
||||||
|
|
||||||
The MQTT messages related to change events of input or discrete input registers are marked as //retained//.
|
The MQTT messages related to change events of input or discrete input registers are marked as //retained//.
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ def mqttEventPublisherStart(config, processImage):
|
|||||||
class MqttEventPublisher(AbstractMqttPublisher):
|
class MqttEventPublisher(AbstractMqttPublisher):
|
||||||
def __init__(self, config, processImage):
|
def __init__(self, config, processImage):
|
||||||
super().__init__(config, processImage)
|
super().__init__(config, processImage)
|
||||||
|
self.disableAnalogInputEventPublishing = self.config["disableAnalogInputEventPublishing"].lower() in [ "true", "on" ]
|
||||||
|
|
||||||
def localLoop(self):
|
def localLoop(self):
|
||||||
while True:
|
while True:
|
||||||
@ -19,7 +20,8 @@ class MqttEventPublisher(AbstractMqttPublisher):
|
|||||||
self.processImage.wait()
|
self.processImage.wait()
|
||||||
|
|
||||||
discreteInputChangeset = self.processImage.getChangedDiscreteInputs()
|
discreteInputChangeset = self.processImage.getChangedDiscreteInputs()
|
||||||
analogInputChangeset = self.processImage.getChangedAnalogsInputs()
|
if not self.disableAnalogInputEventPublishing:
|
||||||
|
analogInputChangeset = self.processImage.getChangedAnalogsInputs()
|
||||||
|
|
||||||
for discreteInputChangeItem in discreteInputChangeset:
|
for discreteInputChangeItem in discreteInputChangeset:
|
||||||
logger.debug("Discrete input {} changed from {} to {}"
|
logger.debug("Discrete input {} changed from {} to {}"
|
||||||
@ -30,14 +32,15 @@ class MqttEventPublisher(AbstractMqttPublisher):
|
|||||||
str(discreteInputChangeItem[1][0]),
|
str(discreteInputChangeItem[1][0]),
|
||||||
retain=True)
|
retain=True)
|
||||||
|
|
||||||
for analogInputChangeItem in analogInputChangeset:
|
if not self.disableAnalogInputEventPublishing:
|
||||||
logger.debug("Analog input {} changed from {} to {}"
|
for analogInputChangeItem in analogInputChangeset:
|
||||||
.format(analogInputChangeItem[0],
|
logger.debug("Analog input {} changed from {} to {}"
|
||||||
analogInputChangeItem[1][1],
|
.format(analogInputChangeItem[0],
|
||||||
analogInputChangeItem[1][0]))
|
analogInputChangeItem[1][1],
|
||||||
|
analogInputChangeItem[1][0]))
|
||||||
self.client.publish("{}/{}".format(self.config["analogInputEventTopicPrefix"], str(analogInputChangeItem[0])),
|
|
||||||
str(analogInputChangeItem[1][0]),
|
self.client.publish("{}/{}".format(self.config["analogInputEventTopicPrefix"], str(analogInputChangeItem[0])),
|
||||||
retain=True)
|
str(analogInputChangeItem[1][0]),
|
||||||
|
retain=True)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user