mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-09 07:28:03 +01:00
Counter Reset in MQTT eingebaut basename/reset/ioname - payload egal
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user