@@ -31,6 +31,8 @@ Script.serveEvent('CSK_MQTTClient.OnNewConnectionStatus', 'MQTTClient_OnNewConne
3131Script .serveEvent (' CSK_MQTTClient.OnNewStatusCurrentlyConnected' , ' MQTTClient_OnNewStatusCurrentlyConnected' )
3232Script .serveEvent (' CSK_MQTTClient.OnNewStatusActivateConnection' , ' MQTTClient_OnNewStatusActivateConnection' )
3333
34+ Script .serveEvent (' CSK_MQTTClient.OnNewStatusLogAllMessages' , ' MQTTClient_OnNewStatusLogAllMessages' )
35+
3436Script .serveEvent (' CSK_MQTTClient.OnNewMQTTPort' , ' MQTTClient_OnNewMQTTPort' )
3537Script .serveEvent (' CSK_MQTTClient.OnNewBrokerIP' , ' MQTTClient_OnNewBrokerIP' )
3638Script .serveEvent (' CSK_MQTTClient.OnNewStatusForwardReceivedMsg' , ' MQTTClient_OnNewStatusForwardReceivedMsg' )
@@ -59,6 +61,8 @@ Script.serveEvent('CSK_MQTTClient.OnNewLog', 'MQTTClient_OnNewLog')
5961Script .serveEvent (' CSK_MQTTClient.OnNewStatusSubscriptionTopic' , ' MQTTClient_OnNewStatusSubscriptionTopic' )
6062Script .serveEvent (' CSK_MQTTClient.OnNewStatusSubscriptionQOS' , ' MQTTClient_OnNewStatusSubscriptionQOS' )
6163
64+ Script .serveEvent (' CSK_MQTTClient.OnNewStatusTopicPrefix' , ' MQTTClient_OnNewStatusTopicPrefix' )
65+
6266Script .serveEvent (' CSK_MQTTClient.OnNewStatusPublishEventName' , ' MQTTClient_OnNewStatusPublishEventName' )
6367Script .serveEvent (' CSK_MQTTClient.OnNewStatusPublishTopic' , ' MQTTClient_OnNewStatusPublishTopic' )
6468Script .serveEvent (' CSK_MQTTClient.OnNewStatusPublishData' , ' MQTTClient_OnNewStatusPublishData' )
@@ -71,6 +75,9 @@ Script.serveEvent('CSK_MQTTClient.OnNewStatusWillMessageActive', 'MQTTClient_OnN
7175Script .serveEvent (' CSK_MQTTClient.OnNewStatusWillMessageConfig' , ' MQTTClient_OnNewStatusWillMessageConfig' )
7276Script .serveEvent (' CSK_MQTTClient.OnNewStatusDisconnectWithWillMessage' , ' MQTTClient_OnNewStatusDisconnectWithWillMessage' )
7377
78+ Script .serveEvent (' CSK_MQTTClient.OnNewStatusBirthMessageActive' , ' MQTTClient_OnNewStatusBirthMessageActive' )
79+ Script .serveEvent (' CSK_MQTTClient.OnNewStatusBirthMessageConfig' , ' MQTTClient_OnNewStatusBirthMessageConfig' )
80+
7481Script .serveEvent (' CSK_MQTTClient.OnNewStatusFlowConfigPriority' , ' MQTTClient_OnNewStatusFlowConfigPriority' )
7582Script .serveEvent (" CSK_MQTTClient.OnNewStatusLoadParameterOnReboot" , " MQTTClient_OnNewStatusLoadParameterOnReboot" )
7683Script .serveEvent (" CSK_MQTTClient.OnPersistentDataModuleAvailable" , " MQTTClient_OnPersistentDataModuleAvailable" )
@@ -152,6 +159,8 @@ local function handleOnExpiredTmrMQTTClient()
152159 Script .notifyEvent (" MQTTClient_OnNewStatusCSKStyle" , mqttClient_Model .styleForUI )
153160 Script .notifyEvent (" MQTTClient_OnNewStatusModuleIsActive" , _G .availableAPIs .default and _G .availableAPIs .specific )
154161
162+ Script .notifyEvent (" MQTTClient_OnNewStatusLogAllMessages" , mqttClient_Model .parameters .logAllMessages )
163+
155164 Script .notifyEvent (" MQTTClient_OnNewStatusCurrentlyConnected" , mqttClient_Model .isConnected )
156165 Script .notifyEvent (" MQTTClient_OnNewStatusActivateConnection" , mqttClient_Model .parameters .connect )
157166
@@ -181,6 +190,8 @@ local function handleOnExpiredTmrMQTTClient()
181190
182191 Script .notifyEvent (" MQTTClient_OnNewStatusSubscriptionTopic" , mqttClient_Model .tempSubscriptionTopic )
183192 Script .notifyEvent (" MQTTClient_OnNewStatusSubscriptionQOS" , mqttClient_Model .tempSubscriptionQOS )
193+ Script .notifyEvent (" MQTTClient_OnNewStatusTopicPrefix" , mqttClient_Model .parameters .topicPrefix )
194+
184195 Script .notifyEvent (" MQTTClient_OnNewStatusSubscriptionList" , mqttClient_Model .helperFuncs .createJsonListSubscriptions (mqttClient_Model .parameters .subscriptions ))
185196 Script .notifyEvent (" MQTTClient_OnNewStatusPublishEventList" , mqttClient_Model .helperFuncs .createJsonListPublishEvents (mqttClient_Model .parameters .publishEvents ))
186197
@@ -195,10 +206,16 @@ local function handleOnExpiredTmrMQTTClient()
195206 Script .notifyEvent (" MQTTClient_OnNewStatusWillMessageConfig" , " Topic = '" .. mqttClient_Model .parameters .willMessageTopic ..
196207 " ', Data = '" .. mqttClient_Model .parameters .willMessageData ..
197208 " ', QoS = '" .. mqttClient_Model .parameters .willMessageQOS ..
198- " ', Retain = '" .. mqttClient_Model .parameters .willMessageRetain )
209+ " ', Retain = '" .. mqttClient_Model .parameters .willMessageRetain .. " ' " )
199210
200211 mqttClient_Model .sendLog ()
201212
213+ Script .notifyEvent (" MQTTClient_OnNewStatusBirthMessageActive" , mqttClient_Model .parameters .useBirthMessage )
214+ Script .notifyEvent (" MQTTClient_OnNewStatusBirthMessageConfig" , " Topic = '" .. mqttClient_Model .parameters .birthMessageTopic ..
215+ " ', Data = '" .. mqttClient_Model .parameters .birthMessageData ..
216+ " ', QoS = '" .. mqttClient_Model .parameters .birthMessageQOS ..
217+ " ', Retain = '" .. mqttClient_Model .parameters .birthMessageRetain .. " '" )
218+
202219 Script .notifyEvent (" MQTTClient_OnNewStatusFlowConfigPriority" , mqttClient_Model .parameters .flowConfigPriority )
203220 Script .notifyEvent (" MQTTClient_OnNewStatusLoadParameterOnReboot" , mqttClient_Model .parameterLoadOnReboot )
204221 Script .notifyEvent (" MQTTClient_OnPersistentDataModuleAvailable" , mqttClient_Model .persistentModuleAvailable )
@@ -220,6 +237,12 @@ local function getMQTTHandle()
220237end
221238Script .serveFunction (' CSK_MQTTClient.getMQTTHandle' , getMQTTHandle )
222239
240+ local function setLogAllMessages (status )
241+ _G .logger :fine (nameOfModule .. " : Set status to log all MQTT messages to " .. tostring (status ))
242+ mqttClient_Model .parameters .logAllMessages = status
243+ end
244+ Script .serveFunction (' CSK_MQTTClient.setLogAllMessages' , setLogAllMessages )
245+
223246local function connectMQTT (status )
224247 _G .logger :fine (nameOfModule .. " : Set connection status to " .. tostring (status ))
225248
@@ -515,6 +538,13 @@ Script.serveFunction('CSK_MQTTClient.unsubscribeViaUI', unsubscribeViaUI)
515538---- -------------- Publish ------------------
516539---- -----------------------------------------
517540
541+ local function setTopicPrefix (prefix )
542+ _G .logger :info (nameOfModule .. " : Set topic prefix to " .. tostring (prefix ))
543+ mqttClient_Model .parameters .topicPrefix = prefix
544+ Script .notifyEvent (" MQTTClient_OnNewStatusTopicPrefix" , mqttClient_Model .parameters .topicPrefix )
545+ end
546+ Script .serveFunction (' CSK_MQTTClient.setTopicPrefix' , setTopicPrefix )
547+
518548local function presetPublishTopic (topic )
519549 mqttClient_Model .tempPublishTopic = topic
520550end
@@ -633,9 +663,18 @@ Script.serveFunction('CSK_MQTTClient.selectPublishEvent', selectPublishEvent)
633663local function setWillMessageActivation (status )
634664 _G .logger :fine (nameOfModule .. " : Set WillMessage activation to " .. tostring (status ))
635665 mqttClient_Model .parameters .useWillMessage = status
666+ Script .notifyEvent (" MQTTClient_OnNewStatusWillMessageActive" , mqttClient_Model .parameters .useWillMessage )
636667end
637668Script .serveFunction (' CSK_MQTTClient.setWillMessageActivation' , setWillMessageActivation )
638669
670+ local function setBirthMessageActivation (status )
671+ _G .logger :fine (nameOfModule .. " : Set BirthMessage activation to " .. tostring (status ))
672+ mqttClient_Model .parameters .useBirthMessage = status
673+ Script .notifyEvent (" MQTTClient_OnNewStatusBirthMessageActive" ,mqttClient_Model .parameters .useBirthMessage )
674+ end
675+
676+ Script .serveFunction (' CSK_MQTTClient.setBirthMessageActivation' , setBirthMessageActivation )
677+
639678local function setDisconnectWithWillMessage (status )
640679 _G .logger :info (nameOfModule .. " : Set DisconnectWithWillMessage to " .. tostring (status ))
641680 mqttClient_Model .parameters .disconnectWithWillMessage = status
@@ -644,15 +683,15 @@ Script.serveFunction('CSK_MQTTClient.setDisconnectWithWillMessage', setDisconnec
644683
645684local function setWillMessageConfig (topic , data , qos , retain )
646685 _G .logger :fine (nameOfModule .. " : Set WillMessage config with data '" .. data .. " ' to topic '" .. topic .. " ' with QoS '" .. qos .. " ' and '" .. retain .. " '" )
647- mqttClient_Model .parameters .willMessageTopic = topic
686+ mqttClient_Model .parameters .willMessageTopic = mqttClient_Model . parameters . topicPrefix .. topic
648687 mqttClient_Model .parameters .willMessageData = data
649688 mqttClient_Model .parameters .willMessageQOS = qos
650689 mqttClient_Model .parameters .willMessageRetain = retain
651690
652691 Script .notifyEvent (" MQTTClient_OnNewStatusWillMessageConfig" , " Topic = '" .. mqttClient_Model .parameters .willMessageTopic ..
653692 " ', Data = '" .. mqttClient_Model .parameters .willMessageData ..
654693 " ', QoS = '" .. mqttClient_Model .parameters .willMessageQOS ..
655- " ', Retain = '" .. mqttClient_Model .parameters .willMessageRetain )
694+ " ', Retain = '" .. mqttClient_Model .parameters .willMessageRetain .. " ' " )
656695
657696end
658697Script .serveFunction (' CSK_MQTTClient.setWillMessageConfig' , setWillMessageConfig )
@@ -662,6 +701,26 @@ local function setWillMessageConfigViaUI()
662701end
663702Script .serveFunction (' CSK_MQTTClient.setWillMessageConfigViaUI' , setWillMessageConfigViaUI )
664703
704+ local function setBirthMessageConfig (topic , data , qos , retain )
705+ _G .logger :fine (nameOfModule .. " : Set BirthMessage config with data '" .. data .. " ' to topic '" .. topic .. " ' with QoS '" .. qos .. " ' and '" .. retain .. " '" )
706+ mqttClient_Model .parameters .birthMessageTopic = topic
707+ mqttClient_Model .parameters .birthMessageData = data
708+ mqttClient_Model .parameters .birthMessageQOS = qos
709+ mqttClient_Model .parameters .birthMessageRetain = retain
710+
711+ Script .notifyEvent (" MQTTClient_OnNewStatusBirthMessageConfig" , " Topic = '" .. mqttClient_Model .parameters .birthMessageTopic ..
712+ " ', Data = '" .. mqttClient_Model .parameters .birthMessageData ..
713+ " ', QoS = '" .. mqttClient_Model .parameters .birthMessageQOS ..
714+ " ', Retain = '" .. mqttClient_Model .parameters .birthMessageRetain .. " '" )
715+
716+ end
717+ Script .serveFunction (' CSK_MQTTClient.setBirthMessageConfig' , setBirthMessageConfig )
718+
719+ local function setBirthMessageConfigViaUI ()
720+ setBirthMessageConfig (mqttClient_Model .tempPublishTopic , mqttClient_Model .tempPublishData , mqttClient_Model .tempPublishQOS , mqttClient_Model .tempPublishRetain )
721+ end
722+ Script .serveFunction (' CSK_MQTTClient.setBirthMessageConfigViaUI' , setBirthMessageConfigViaUI )
723+
665724local function getStatusModuleActive ()
666725 return _G .availableAPIs .default and _G .availableAPIs .specific
667726end
@@ -718,6 +777,8 @@ local function loadParameters()
718777 mqttClient_Model .parameters = mqttClient_Model .helperFuncs .convertContainer2Table (data )
719778 mqttClient_Model .publishEventsFunctions = {}
720779
780+ mqttClient_Model .parameters = mqttClient_Model .helperFuncs .checkParameters (mqttClient_Model .parameters , mqttClient_Model .helperFuncs .defaultParameters .getParameters ())
781+
721782 -- Configured/activated with new loaded data
722783 for key in pairs (mqttClient_Model .parameters .publishEvents .topic ) do
723784 createInternalPublishFunctions (key )
0 commit comments