:- use_module(library(mqtt)). versions:- mqtt_version(MqttVerMa, MqttVerMi, MqttVerRe), pack_version(PackVerMa, PackVerMi, PackVerRe), format('% Pack version: ~w.~w.~w Mosquitto version: ~w.~w.~w~n', [PackVerMa, PackVerMi, PackVerRe, MqttVerMa, MqttVerMi, MqttVerRe]), true. /* */ simple_pub(Topic, Value) :- mqtt_connect(A, 'localhost', 1883, [alias(swi_mqtt), client_id(swi_mqtt_client), keepalive(120), is_async(false), debug_hooks(false), hooks(true), module(user), on_log(my_on_log), on_message(my_on_msg), on_publish(my_on_pub), on_subscribe(my_on_sub), on_unsubscribe(my_on_uns), on_connect(my_on_con), on_disconnect(my_on_dis) ]), mqtt_pub(A, Topic, Value), mqtt_disconnect(A). /* */ simple_sub(Topic) :- mqtt_connect(A, 'localhost', 1883, [alias(swi_mqtt), client_id(swi_mqtt_client), keepalive(120), is_async(false), debug_hooks(false), hooks(true), module(user), on_log(my_on_log), on_message(my_on_msg), on_publish(my_on_pub), on_subscribe(my_on_sub), on_unsubscribe(my_on_uns), on_connect(my_on_con), on_disconnect(my_on_dis) ]), mqtt_sub(A, Topic, []), mqtt_loop(A),sleep(1), mqtt_loop(A),sleep(1), mqtt_loop(A), mqtt_unsub(A, Topic), mqtt_disconnect(A). my_on_log(C,D) :- format('% log > ~w - ~w~n', [C,D]). my_on_msg(C,D) :- format('% msg > ~w - ~w~n', [C,D]). my_on_pub(C,D) :- format('% pub > ~w - ~w~n', [C,D]). my_on_con(C,D) :- format('% con > ~w - ~w~n', [C,D]). my_on_dis(C,D) :- format('% dis > ~w - ~w~n', [C,D]). my_on_sub(C,D) :- format('% sub > ~w - ~w~n', [C,D]). my_on_uns(C,D) :- format('% uns > ~w - ~w~n', [C,D]).