mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 15:13:52 +01:00
Bugfix: Missing core. IOs in MQTT on RevPi FLAT devices
Change the function to find direct core IOs on all actual and upcoming devices. To set a MQTT output (bool) the special value true/false as payload is now case-insensitive.
This commit is contained in:
@@ -167,27 +167,10 @@ class MqttServer(Thread):
|
|||||||
# CoreIOs prüfen und zu export hinzufügen
|
# CoreIOs prüfen und zu export hinzufügen
|
||||||
lst_coreio = []
|
lst_coreio = []
|
||||||
if self._rpi.core:
|
if self._rpi.core:
|
||||||
if self._rpi.core.a1green.export:
|
for obj_name in self._rpi.core.__slots__:
|
||||||
lst_coreio.append(self._rpi.core.a1green)
|
obj = getattr(self._rpi.core, obj_name)
|
||||||
if self._rpi.core.a1red.export:
|
if isinstance(obj, revpimodio2.io.IOBase):
|
||||||
lst_coreio.append(self._rpi.core.a1red)
|
lst_coreio.append(obj)
|
||||||
if self._rpi.core.a2green.export:
|
|
||||||
lst_coreio.append(self._rpi.core.a2green)
|
|
||||||
if self._rpi.core.a2red.export:
|
|
||||||
lst_coreio.append(self._rpi.core.a2red)
|
|
||||||
if self._rpi.core.wd.export:
|
|
||||||
lst_coreio.append(self._rpi.core.wd)
|
|
||||||
|
|
||||||
# Connect-IOs anhängen
|
|
||||||
if type(self._rpi.core) == revpimodio2.device.Connect:
|
|
||||||
if self._rpi.core.a3green.export:
|
|
||||||
lst_coreio.append(self._rpi.core.a3green)
|
|
||||||
if self._rpi.core.a3red.export:
|
|
||||||
lst_coreio.append(self._rpi.core.a3red)
|
|
||||||
if self._rpi.core.x2in.export:
|
|
||||||
lst_coreio.append(self._rpi.core.x2in)
|
|
||||||
if self._rpi.core.x2out.export:
|
|
||||||
lst_coreio.append(self._rpi.core.x2out)
|
|
||||||
|
|
||||||
# IOs exportieren und Events anmelden
|
# IOs exportieren und Events anmelden
|
||||||
for io in lst_coreio:
|
for io in lst_coreio:
|
||||||
@@ -292,9 +275,9 @@ class MqttServer(Thread):
|
|||||||
proginit.logger.error("can not convert value '{0}' to fitting bytes".format(value))
|
proginit.logger.error("can not convert value '{0}' to fitting bytes".format(value))
|
||||||
return
|
return
|
||||||
|
|
||||||
elif value == "false" and not io_needbytes:
|
elif value.lower() == "false" and not io_needbytes:
|
||||||
value = 0
|
value = 0
|
||||||
elif value == "true" and not io_needbytes:
|
elif value.lower() == "true" and not io_needbytes:
|
||||||
value = 1
|
value = 1
|
||||||
else:
|
else:
|
||||||
proginit.logger.error("can not convert value '{0}' for output '{1}'".format(value, ioname))
|
proginit.logger.error("can not convert value '{0}' for output '{1}'".format(value, ioname))
|
||||||
|
|||||||
Reference in New Issue
Block a user