Problem with MQTT/JSON transmission from Sardinia

Dear @gtuveri,

by chance we were just watching the log files and found some bits which might be interesting for you:

1. Discrete “int” payload received on “data.json” suffix

Here, you are sending a data payload of just “1”, which is invalid to the “data.json” suffix. Real JSON is expected here.

2017-04-24T19:12:01+0200 [kotori.daq.storage.influx          ] CRITICAL: Could not format chunk (ex=TypeError: argument of type 'int' is not iterable): data=1, meta={'node': 'node4', 'slot': 'data.json', 'realm': 'hiveeyes', 'network': '2cdd923f-751c-4844-86a5-b9e868458441', 'database': 'hiveeyes_2cdd923f_751c_4844_86a5_b9e868458441', 'measurement_events': 'sardinia_node4_events', 'label': 'sardinia_node4', 'measurement': 'sardinia_node4_sensors', 'gateway': 'sardinia'}
2017-04-24T19:12:01+0200 [kotori.daq.services.mig            ] ERROR: Error processing MQTT message from topic "hiveeyes/2cdd923f-751c-4844-86a5-b9e868458441/sardinia/node4/data.json": [Failure instance: Traceback: <type 'exceptions.AttributeError'>: 'int' object has no attribute 'keys'

To send discrete values, use something like:

mosquitto_pub -h $MQTT_BROKER -t $MQTT_TOPIC/data/temperature -m '42.84'

See also: Data acquisition over MQTT — Kotori 0.22.7 documentation

2. JSON “list” payload received on “data.json” suffix

Here, you are publishing a list like “[{u'qos': 0, u'longId': 3, u'offColor': -8355712, [...]”. Again, this is not a valid data format here: Please send flat JSON container objects. However, if you want to make the backend grok different data formats, we are happy considering it. Just get back to us.

2017-04-24T18:59:54+0200 [kotori.daq.storage.influx          ] CRITICAL: Could not format chunk (ex=AttributeError: 'list' object has no attribute 'iteritems'): data=[{u'qos': 0, u'longId': 3, u'offColor': -8355712, u'lastPayload': u'', u'jsonPath': u'$.ACT1', u'lastJsonPathValue': u'0', u'id': u'48b76b32-f4ef-47d2-8b87-55c5ed905456', u'jsOnTap': u'', u'onColor': -16744193, u'payloadOn': u'1', u'enableIntermediateState': True, u'iconOn': u'ic_shower2_on', u'jsBlinkExpression': u'', u'type': 2, u'topicPub': u'hiveeyes/2cdd923f-751c-4844-86a5-b9e868458443/sardinia/node5/data.json', u'payloadOff': u'0', u'intermediateStateTimeout': 0, u'jsOnDisplay': u'', u'iconOff': u'ic_shower2_off', u'updateLastPayloadOnPub': True, u'topic': u'', u'retained': False, u'name': u'', u'jsOnReceive': u'', u'enteredIntermediateStateAt': 0, u'lastActivity': 1493052296, u'enablePub': True}, {u'qos': 0, u'longId': 2, u'topic': u'hiveeyes/2cdd923f-751c-4844-86a5-b9e868458441/sardinia/node4/data.json', u'lastPayload': u'0', u'prefix': u'', u'enablePub': False, u'id': u'65112af4-650e-47c5-961f-c2b94ab17eaf', u'jsOnTap': u'', u'updateLastPayloadOnPub': True, u'enableIntermediateState': True, u'jsBlinkExpression': u'', u'textColor': -1, u'type': 1, u'topicPub': u'', u'jsOnDisplay': u'', u'jsonPath': u'', u'intermediateStateTimeout': 0, u'retained': False, u'name': u'ACT1', u'jsOnReceive': u'', u'mainTextSize': u'MEDIUM', u'postfix': u'', u'enteredIntermediateStateAt': 0, u'lastActivity': 1493052383}], meta={'node': 'node5', 'slot': 'data.json', 'realm': 'hiveeyes', 'network': '2cdd923f-751c-4844-86a5-b9e868458441', 'database': 'hiveeyes_2cdd923f_751c_4844_86a5_b9e868458441', 'measurement_events': 'sardinia_node5_events', 'label': 'sardinia_node5', 'measurement': 'sardinia_node5_sensors', 'gateway': 'sardinia'}

Please let us know how we can support you.

With kind regards,
Andreas.

P.S.: We are still missing the feature described at Fehlersignalisierung bei Datenakquise (Backend) to improve the transparency and self-service capabilities when using the system. Sorry about that.

Dear @gtuveri,

error signalling on data acquisition is now available on the platform, please have a look at Error signalling — Kotori 0.22.7 documentation to get an idea about it.

It will make the use of the system more transparent to you.

With kind regards,
Andreas.

1 Like

A post was merged into an existing topic: A new Hiveeyes fan from Sardinia Island, Italy!

Dear @Andreas,
thanks as usual for your so efficient and effective support. Me and two colleagues of me were trying some ways to remotely trigger some actions on nodes through the Android App MQTT Dash.

1 Like

I see. All right, you are welcome and go ahead! Now you will be able to get at least some feedback from the system.