This commit is contained in:
Evgeny Zinoviev 2023-05-31 23:47:01 +03:00
parent 081cd0d4bb
commit bc98775dd7
3 changed files with 15 additions and 6 deletions

View File

@ -10,6 +10,10 @@ struct MqttRelaySwitchPayload {
uint8_t state; uint8_t state;
} __attribute__((packed)); } __attribute__((packed));
struct MqttRelayStatusPayload {
uint8_t opened;
} __attribute__((packed));
class MqttRelayModule : public MqttModule { class MqttRelayModule : public MqttModule {
public: public:
MqttRelayModule() : MqttModule(0) {} MqttRelayModule() : MqttModule(0) {}
@ -21,3 +25,4 @@ public:
} }
#endif //HOMEKIT_LIB_MQTT_MODULE_RELAY_H #endif //HOMEKIT_LIB_MQTT_MODULE_RELAY_H

View File

@ -1,6 +1,6 @@
{ {
"name": "homekit_mqtt_module_relay", "name": "homekit_mqtt_module_relay",
"version": "1.0.3", "version": "1.0.4",
"build": { "build": {
"flags": "-I../../include" "flags": "-I../../include"
}, },

View File

@ -60,6 +60,7 @@ class MqttRelayState:
class MqttRelayModule(MqttModule): class MqttRelayModule(MqttModule):
def init(self, mqtt: MqttNode): def init(self, mqtt: MqttNode):
mqtt.subscribe_module('relay/switch', self) mqtt.subscribe_module('relay/switch', self)
mqtt.subscribe_module('relay/status', self)
@staticmethod @staticmethod
def switchpower(mqtt: MqttNode, def switchpower(mqtt: MqttNode,
@ -69,10 +70,13 @@ class MqttRelayModule(MqttModule):
mqtt.publish('relay/switch', payload=payload.pack()) mqtt.publish('relay/switch', payload=payload.pack())
def handle_payload(self, mqtt: MqttNode, topic: str, payload: bytes) -> Optional[MqttPayload]: def handle_payload(self, mqtt: MqttNode, topic: str, payload: bytes) -> Optional[MqttPayload]:
if topic != 'relay/switch': message = None
return
if topic == 'relay/switch':
message = MqttPowerSwitchPayload.unpack(payload) message = MqttPowerSwitchPayload.unpack(payload)
self._logger.debug(message) elif topic == 'relay/status':
message = MqttPowerStatusPayload.unpack(payload)
if message is not None:
self._logger.debug(message)
return message return message