mqtt_helpers.rb 829 B

12345678910111213141516171819202122232425262728293031
  1. require 'mqtt_client'
  2. module MqttHelpers
  3. def mqtt_topic_prefix
  4. ENV.fetch('ESPMH_MQTT_TOPIC_PREFIX')
  5. end
  6. def mqtt_parameters
  7. topic_prefix = mqtt_topic_prefix()
  8. {
  9. mqtt_server: ENV.fetch('ESPMH_MQTT_SERVER'),
  10. mqtt_username: ENV.fetch('ESPMH_MQTT_USERNAME'),
  11. mqtt_password: ENV.fetch('ESPMH_MQTT_PASSWORD'),
  12. mqtt_topic_pattern: "#{topic_prefix}commands/:device_id/:device_type/:group_id",
  13. mqtt_state_topic_pattern: "#{topic_prefix}state/:device_id/:device_type/:group_id",
  14. mqtt_update_topic_pattern: "#{topic_prefix}updates/:device_id/:device_type/:group_id"
  15. }
  16. end
  17. def create_mqtt_client
  18. params = mqtt_parameters
  19. MqttClient.new(
  20. params[:mqtt_server],
  21. params[:mqtt_username],
  22. params[:mqtt_password],
  23. mqtt_topic_prefix()
  24. )
  25. end
  26. end