class MQTT::Homie::Base

def initialize(id, name)

def initialize(id, name)
  raise ArgumentError, "Invalid Homie ID '#{id}'" unless id.is_a?(String) && id =~ Regexp.new("^#{REGEX}$")
  @id = id
  @name = name
end

def name=(value)

def name=(value)
  if name != value
    name = value
    if @published
      device.init do
        mqtt.publish("#{topic}/$name", name, retain: true, qos: 1)
      end
    end
  end
end