====== 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/