mqtt.php 1.3 KB

12345678910111213141516171819202122232425262728
  1. <?php
  2. $subscriptions = array_filter(array_map('trim', explode(',', (string) env('MQTT_SUBSCRIPTIONS', 'devices/+/telemetry'))));
  3. $publishTopics = array_filter(array_map('trim', explode(',', (string) env('MQTT_PUBLISH_TOPICS', 'devices/+/command'))));
  4. return [
  5. // Keep MQTT disabled until a broker and credentials have been configured.
  6. 'enabled' => filter_var(env('MQTT_ENABLED', false), FILTER_VALIDATE_BOOL),
  7. 'address' => sprintf(
  8. '%s://%s:%d',
  9. env('MQTT_SCHEME', 'mqtt'),
  10. env('MQTT_HOST', '127.0.0.1'),
  11. (int) env('MQTT_PORT', 1883)
  12. ),
  13. 'subscriptions' => array_fill_keys($subscriptions, (int) env('MQTT_SUBSCRIBE_QOS', 1)),
  14. 'publish_topics' => $publishTopics,
  15. 'max_payload_bytes' => (int) env('MQTT_MAX_PAYLOAD_BYTES', 1048576),
  16. 'client' => [
  17. 'client_id' => env('MQTT_CLIENT_ID', 'saiadmin-server'),
  18. 'username' => env('MQTT_USERNAME', ''),
  19. 'password' => env('MQTT_PASSWORD', ''),
  20. 'keepalive' => (int) env('MQTT_KEEPALIVE', 50),
  21. 'clean_session' => filter_var(env('MQTT_CLEAN_SESSION', false), FILTER_VALIDATE_BOOL),
  22. 'reconnect_period' => (int) env('MQTT_RECONNECT_PERIOD', 3),
  23. 'connect_timeout' => (int) env('MQTT_CONNECT_TIMEOUT', 10),
  24. 'ssl' => filter_var(env('MQTT_SSL', false), FILTER_VALIDATE_BOOL),
  25. ],
  26. ];