====== SCS2021 - Worklogs ======
todo box
===== - 20201112 - Open - Health-5G handover =====
==== - Inova Health-5G ====
* AWS server from Inova receives data from T-shirt. And we connect to AWS to get the data.
* Agent and kms on IoT box. Agent connect T-shirt to kms.
* Get data from the IoT box over kafka or MQTT --> DS setup agent and kms and documentation.
==== - TBD ====
===== - 20201108 - 20201112 =====
==== - Setup Kura ====
* https://eclipse.github.io/kura/dev/kura-setup.html
* https://www.hackster.io/naresh-krish/create-an-iot-gateway-using-eclipse-kura-and-orange-pi-board-d9c2b8
* Chariot Kura: https://gitlab.dai-labor.de/chariot/chariot-warehouse/-/tree/master/kura-gateway/kura
Setup workspace
* Install latest eclipse (requires java-11 up).
* Open kura folder as workspace. Using eclipse kura.
* Import porjects from folder.
Run kura docker bind docker_port:host_port:
sudo docker run -d --name kura -p 8080:8080 -p 1883:1883 -t eclipse/kura
Setup kura simple MQTT broker (artemis)
* https://eclipse.github.io/kura/builtin/simple-artemis-mqtt-broker-service.html
* user:passwd mqtt:mqtt
Install MQTT server on AWS EC2
* AWS VM: 172.31.40.169/20
* Install Mosquitto: https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-16-04
* user:pass mqtt:mqtt
Setup MQTT relay from kura to AWS
* https://eclipse.github.io/kura/builtin/cloudcat.html
* Test with mqttbox: https://chrome.google.com/webstore/detail/mqttbox/kaajoficamnjijhkeomgfljpicifbkaf
* **Set artemis (kura) mqtt to listen on 0.0.0.0**
* **Listen to all topic. Wildcard #**: user(mqtt)/#
=== - Troubleshooting ===
* attach docker: docker exec -it /bin/bash
* attach docker-compose: docker-compose exec service /bin/bash
* mosquitto sub: mosquitto_sub -v -u mqtt -d -t \#
* karaf log: tail -n 200 /var/log/kura.log
* OSGI console: telnet 127.0.0.1 5002
* wrong message coding: https://www.eclipse.org/forums/index.php/t/1088415/ (see attached txt)
* https://www.eclipse.org/forums/index.php/t/1065163/
* Decode the body using an online base64 decoder shows the correct message.
* Write custom publisher:
* https://www.eclipse.org/forums/index.php/t/1086532/
* heater demo: https://eclipse.github.io/kura/dev/heater_demo.html
== - Message encoding mismatch - logs ==
2020-11-09T20:09:56,556 [MQTT Call: AwsIot] INFO o.e.k.c.c.CloudServiceImpl - Message arrived on topic: mqtt/AwsIot/cloudcat/in
2020-11-09T20:09:56,556 [MQTT Call: AwsIot] WARN o.e.k.i.j.m.u.m.CloudPayloadJsonDecoder - Cannot parse Json
java.lang.IllegalArgumentException: Unrecognized value: hello
at org.eclipse.kura.internal.json.marshaller.unmarshaller.message.CloudPayloadJsonDecoder.buildFromString(CloudPayloadJsonDecoder.java:79)
at org.eclipse.kura.internal.json.marshaller.unmarshaller.JsonMarshallUnmarshallImpl.unmarshal(JsonMarshallUnmarshallImpl.java:43)
at org.eclipse.kura.core.cloud.CloudServiceImpl.createKuraPayloadFromJson(CloudServiceImpl.java:874)
at org.eclipse.kura.core.cloud.CloudServiceImpl.encodeKuraPayload(CloudServiceImpl.java:562)
at org.eclipse.kura.core.cloud.CloudServiceImpl.onMessageArrived(CloudServiceImpl.java:537)
at org.eclipse.kura.core.data.DataServiceListenerS.onMessageArrived(DataServiceListenerS.java:173)
at org.eclipse.kura.core.data.DataServiceImpl.onMessageArrived(DataServiceImpl.java:437)
at org.eclipse.kura.core.data.transport.mqtt.DataTransportListenerS.onMessageArrived(DataTransportListenerS.java:229)
at org.eclipse.kura.core.data.transport.mqtt.MqttDataTransport.messageArrived(MqttDataTransport.java:655)
at org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:513)
at org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:416)
at org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:213)
at java.lang.Thread.run(Thread.java:748)
2020-11-09T20:09:56,557 [MQTT Call: AwsIot] INFO o.e.k.c.d.DataServiceImpl - Storing message on topic: #account-name/#client-id/external-sensor/in, priority: 5
2020-11-09T20:09:56,559 [MQTT Call: AwsIot] INFO o.e.k.c.d.DataServiceImpl - Stored message on topic: #account-name/#client-id/external-sensor/in, priority: 5
2020-11-09T20:09:56,561 [DataServiceImpl:Submit] INFO o.e.k.c.d.t.m.MqttDataTransport - Publishing message on topic: mqtt/cloudcat-relay/external-sensor/in with QoS: 0
2020-11-09T20:09:56,566 [MQTT Call: cloudcat-relay] INFO o.e.k.c.c.CloudServiceImpl - Message arrived on topic: mqtt/cloudcat-relay/external-sensor/in
====== - Open Issues ======
todo box
===== - Compile project with maven =====
* sample project: https://github.com/ctron/kura-examples/tree/master/camel/camel-example4
==== - Importing jar as dependency ====
This is very ugly. The source project can not be identified.
* https://www.tutorialspoint.com/maven/maven_external_dependencies.htm
ldapjdk
ldapjdk
system
1.0
${basedir}\src\lib\ldapjdk.jar
===== - Building Deployment Package .dp =====
* https://trustingiot.com/2018/02/02/building-deployment-packages-for-kura/
* https://github.com/darugnaa/deployment-package-example
* https://stackoverflow.com/a/44018008/707704
* https://luigi-saetta.medium.com/eclipse-kura-oracle-iot-cloud-integration-fc30471d6a7e
* http://jmini.github.io/blog/2020/2020-01-13_equinox-without-tycho.html
Using osgi-dp https://ctron.github.io/osgi-dp/plugin-info.html
mvn osgi-dp:package
=== - Deploy everything in scs VM ===
Using docker-compose scripts here: /home/admin/scs_workspace/docker-deployment
====== - Other resources: ======
* Setup project: https://www.eclipse.org/forums/index.php/t/1028830/
* possible solution: https://www.cad-schroer.com/news/articles/iot-tutorial-integrating-tinkerforges-bricklets-with-kura-and-kapua-part-2/