%%%-------------------------------------------------------------------
%%% @author licheng5
%%% @copyright (C) 2023, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 17. 4月 2023 16:41
%%%-------------------------------------------------------------------
-module(iot_config).
-author("licheng5").

%% API
-export([emqt_opts/1]).

emqt_opts(ClientSuffix) when is_binary(ClientSuffix) ->
    %% 建立到emqx服务器的连接
    {ok, Props} = application:get_env(iot, emqx_server),
    EMQXHost = proplists:get_value(host, Props),
    EMQXPort = proplists:get_value(port, Props, 18080),
    Username = proplists:get_value(username, Props),
    Password = proplists:get_value(password, Props),
    RetryInterval = proplists:get_value(retry_interval, Props, 5),
    Keepalive = proplists:get_value(keepalive, Props, 86400),

    Node = atom_to_binary(node()),
    ClientId = <<"mqtt-client-", Node/binary, "-", ClientSuffix/binary>>,
    [
        {clientid, ClientId},
        {host, EMQXHost},
        {port, EMQXPort},
        {owner, self()},
        {tcp_opts, []},
        {username, Username},
        {password, Password},
        {keepalive, Keepalive},
        {auto_ack, true},
        {proto_ver, v5},
        {retry_interval, RetryInterval}
    ].
