class MQTT::Homie::Device
def init
def init return yield state if state == :init prior_state = state mqtt.publish("#{topic}/$state", (self.state = :init).to_s, retain: true, qos: 1) result = nil mqtt.batch_publish do result = yield prior_state end mqtt.publish("#{topic}/$state", (self.state = :ready).to_s, retain: true, qos: 1) result end