Counter Reset in MQTT eingebaut basename/reset/ioname - payload egal

This commit is contained in:
2019-01-07 20:08:18 +01:00
parent 637348111b
commit 64955e7ef0
7 changed files with 31 additions and 13 deletions

View File

@@ -84,6 +84,7 @@ class MqttServer(Thread):
self._mqtt_io = join(basetopic, "io/{0}")
self._mqtt_ioget = join(basetopic, "get/#")
self._mqtt_ioset = join(basetopic, "set/#")
self._mqtt_ioreset = join(basetopic, "reset/#")
self._mqtt_pictory = join(basetopic, "pictory")
self._mqtt_senddata = join(basetopic, "get")
self._mqtt_sendpictory = join(basetopic, "needpictory")
@@ -206,6 +207,7 @@ class MqttServer(Thread):
client.subscribe(self._mqtt_sendpictory)
if self._write_outputs:
client.subscribe(self._mqtt_ioset)
client.subscribe(self._mqtt_ioreset)
proginit.logger.debug("leave MqttServer._on_connect()")
@@ -242,6 +244,7 @@ class MqttServer(Thread):
# Aktion und IO auswerten
ioget = lst_topic[-2].lower() == "get"
ioset = lst_topic[-2].lower() == "set"
ioreset = lst_topic[-2].lower() == "reset"
ioname = lst_topic[-1]
coreio = ioname.find(".") != -1
@@ -282,8 +285,8 @@ class MqttServer(Thread):
proginit.logger.error(
"can not write to inputs with MQTT"
)
elif ioset:
elif ioset:
# Convert MQTT Payload to valid Output-Value
value = msg.payload.decode("utf8")
@@ -324,6 +327,13 @@ class MqttServer(Thread):
else:
io._parentdevice.writeprocimg()
elif ioreset:
# Counter zurücksetzen
if not isinstance(io, revpimodio2.io.IntIOCounter):
proginit.logger.warning("this io has no counter")
else:
io.reset()
else:
# Aktion nicht erkennbar
proginit.logger.warning(

View File

@@ -28,7 +28,7 @@ begrenzt werden!
__author__ = "Sven Sager"
__copyright__ = "Copyright (C) 2018 Sven Sager"
__license__ = "GPLv3"
__version__ = "0.7.3"
__version__ = "0.7.5"
import gzip
import logsystem
import picontrolserver
@@ -49,6 +49,8 @@ from time import asctime
from xmlrpc.client import Binary
from xrpcserver import SaveXMLRPCServer
min_revpimodio = "2.5.0"
class RevPiPyLoad():
@@ -395,9 +397,10 @@ class RevPiPyLoad():
self.xml_ps = None
proginit.logger.warning(
"can not load revpimodio2 module. maybe its not installed "
"or an old version (required at least 2.2.5). if you "
"like to use the process monitor feature, update/install "
"or an old version (required at least {0}). if you "
"like to use revpinetio network feature, update/install "
"revpimodio2: 'apt-get install python3-revpimodio2'"
"".format(min_revpimodio)
)
# XML Modus 2 Einstellungen lesen und Programm herunterladen
@@ -461,9 +464,10 @@ class RevPiPyLoad():
except Exception:
proginit.logger.warning(
"can not load revpimodio2 module. maybe its not installed "
"or an old version (required at least 2.2.5). if you "
"or an old version (required at least {0}). if you "
"like to use the mqtt feature, update/install "
"revpimodio2: 'apt-get install python3-revpimodio2'"
"".format(min_revpimodio)
)
else:
try: