mqtt-devices-parser 1.0.20 → 1.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Changelog.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.21
4
+ src/kafka/consumer: fixes parseMessage call
5
+ improves: logs
6
+
3
7
  ## 1.0.20
4
8
  Adds Kafka consumer support with optional MQTT message parsing (#5)
5
9
  supports tables for mqtt templates
package/index.js CHANGED
@@ -47,7 +47,6 @@ var self = module.exports = {
47
47
  await $.kafka_consumer.start();
48
48
  }
49
49
 
50
- console.log("mqtt connecting..")
51
50
  mqtt_connect();
52
51
 
53
52
  setInterval(async ()=>{
@@ -133,6 +132,8 @@ var self = module.exports = {
133
132
 
134
133
  function mqtt_connect(){
135
134
 
135
+ console.log(`[MQTT] connecting to ${$.config.mqtt.host}:${$.config.mqtt.port}..`)
136
+
136
137
  const mqtt_prefix = $.config.mqtt.logs_path+"/"+$.config.mqtt.client;
137
138
  let checkFota = null;
138
139
  $.mqtt_client = mqtt.connect({
@@ -165,11 +166,21 @@ function mqtt_connect(){
165
166
  $.mqtt_client.publish(mqtt_prefix+"/"+project,"deactive",{qos:2,retain:true});
166
167
  };
167
168
  })
168
- console.log(`MQTT connected to: ${$.config.mqtt.host}:${$.config.mqtt.port}`);
169
- projects.map( project=>{
170
- console.log("subscribing project:",project);
171
- $.mqtt_client.subscribe(project+"/#")
172
- })
169
+ console.log(`[MQTT] connected`);
170
+
171
+ if (!$.config.kafka.enabled) {
172
+ projects.map( project=>{
173
+ console.log("[MQTT] subscribing project:",project);
174
+ $.mqtt_client.subscribe(project+"/#", (err) => {
175
+ if(err){
176
+ console.log("[MQTT] error");
177
+ console.err(err);
178
+ }
179
+ else
180
+ console.log("[MQTT] subscribed to project:",project);
181
+ })
182
+ })
183
+ }
173
184
 
174
185
  // Update 'dev' devices at each 5 min
175
186
  checkFota = setInterval(async ()=>{
@@ -189,32 +200,36 @@ function mqtt_connect(){
189
200
 
190
201
  $.mqtt_client.on("message", (topic, payload, packet) => {
191
202
  // Only parse MQTT messages if enabled in configuration
192
- if ($.config.mqtt.parseMessages) {
203
+ if (!$.config.kafka.enabled) {
204
+
205
+ console.log(`[MQTT] rx: ${topic.toString()}`);
193
206
  // payload is Buffer
194
207
  $.device.parseMessage($.mqtt_client,topic.toString(),payload.toString(),packet.retain);
195
208
  }
196
209
  });
197
210
 
198
211
  $.mqtt_client.on("reconnect",()=>{
199
- console.log("reconnect")
212
+ console.log("[MQTT] reconnected")
200
213
  });
201
214
 
202
215
  $.mqtt_client.on("close",()=>{
203
- console.log("close")
216
+ console.log("[MQTT] closed")
204
217
  checkFota = null;
205
218
  });
206
219
 
207
220
  $.mqtt_client.on("offline",()=>{
208
- console.log("offline")
221
+ console.log("[MQTT] offline")
209
222
  checkFota = null;
210
223
  });
211
224
 
212
225
  $.mqtt_client.on("disconnect",(packet)=>{
213
- console.log(packet)
226
+ console.log(`[MQTT] disconnected`);
227
+ console.log(packet);
214
228
  checkFota = null;
215
229
  })
216
230
 
217
231
  $.mqtt_client.on("error",(error)=>{
218
- console.log(error)
232
+ console.log("[MQTT] error");
233
+ console.err(error)
219
234
  })
220
235
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mqtt-devices-parser",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -178,6 +178,7 @@ var self = module.exports = {
178
178
  try{
179
179
  object = JSON.parse(payload);
180
180
  }catch(err){
181
+ console.log(payload)
181
182
  console.log(err);
182
183
  }
183
184
  if (typeof object === 'object' && object !== null) {
@@ -11,11 +11,11 @@ var self = module.exports = {
11
11
  return new Promise(async (resolve, reject) => {
12
12
  try {
13
13
  if (!config.kafka.enabled) {
14
- console.log("Kafka consumer is disabled");
14
+ console.log("[Kafka] consumer is disabled");
15
15
  return resolve();
16
16
  }
17
17
 
18
- console.log("Initializing Kafka consumer...");
18
+ console.log("[Kafka] Initializing consumer...");
19
19
 
20
20
  // Build Kafka configuration
21
21
  const kafkaConfig = {
@@ -62,7 +62,7 @@ var self = module.exports = {
62
62
  const topics = projects.map(project => project.toString());
63
63
 
64
64
  if (topics.length === 0) {
65
- console.log("No Kafka topics to subscribe to");
65
+ console.log("[Kafka] No topics to subscribe to");
66
66
  return resolve();
67
67
  }
68
68
 
@@ -71,11 +71,11 @@ var self = module.exports = {
71
71
  fromBeginning: false
72
72
  });
73
73
 
74
- console.log(`Kafka consumer subscribed to topics: ${topics.join(', ')}`);
74
+ console.log(`[Kafka] consumer subscribed to topics: ${topics.join(', ')}`);
75
75
 
76
76
  return resolve();
77
77
  } catch (error) {
78
- console.error("Failed to initialize Kafka consumer:", error);
78
+ console.error("[Kafka] Failed to initialize consumer:", error);
79
79
  return reject(error);
80
80
  }
81
81
  });
@@ -87,11 +87,14 @@ var self = module.exports = {
87
87
  }
88
88
 
89
89
  try {
90
- console.log("Starting Kafka consumer...");
90
+ console.log("[Kafka] Starting consumer...");
91
91
  running = true;
92
92
 
93
93
  await consumer.run({
94
94
  eachMessage: async ({ topic, partition, message }) => {
95
+
96
+ console.log(`[KAFKA] rx: ${message.key.toString()}`);
97
+
95
98
  try {
96
99
  let payload = message.value ? message.value.toString() : '';
97
100
  const kafkaTopic = topic.toString();
@@ -113,10 +116,13 @@ var self = module.exports = {
113
116
 
114
117
  try{
115
118
  payload = JSON.parse(payload);
116
- }catch(error){}
119
+ }catch(error){
120
+ console.log(`[KAFKA] error: ${payload}`);
121
+ console.log(error)
122
+ }
117
123
 
118
124
  // Call the device parser with formatted topic
119
- await $.device.parseMessage(payload.client.id, formattedTopic, payload.mqtt.payload, payload.mqtt.retain);
125
+ await $.device.parseMessage(payload.client.id, formattedTopic, JSON.stringify(payload.mqtt.payload), payload.mqtt.retain);
120
126
 
121
127
  } catch (error) {
122
128
  console.error('[Kafka] Error processing message:', {
@@ -129,9 +135,9 @@ var self = module.exports = {
129
135
  },
130
136
  });
131
137
 
132
- console.log("Kafka consumer started successfully");
138
+ console.log("[Kafka] consumer started successfully");
133
139
  } catch (error) {
134
- console.error("Failed to start Kafka consumer:", error);
140
+ console.error("[KAFKA] Failed to start consumer:", error);
135
141
  running = false;
136
142
  throw error;
137
143
  }
@@ -143,13 +149,13 @@ var self = module.exports = {
143
149
  }
144
150
 
145
151
  try {
146
- console.log("Stopping Kafka consumer...");
152
+ console.log("[KAFKA] Stopping consumer...");
147
153
  running = false;
148
154
  await consumer.stop();
149
155
  await consumer.disconnect();
150
- console.log("Kafka consumer stopped successfully");
156
+ console.log("[KAFKA] consumer stopped successfully");
151
157
  } catch (error) {
152
- console.error("Error stopping Kafka consumer:", error);
158
+ console.error("[KAFKA] Error stopping consumer:", error);
153
159
  }
154
160
  },
155
161