by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Kai Hudalla
    @sophokles73

    I can modify them according to the homepage and send a PR and you can comment in my PR if that is right

    That would be nice :-)

    Soheila Dehghanzadeh
    @soheilade

    I can modify them according to the homepage and send a PR and you can comment in my PR if that is right

    That would be nice :-)
    great, will do that

    Thomas Jaeckle
    @thjaeckle
    hi :)
    I am just adding documentation to the c2e "tour" adding a new connection to Hono in Ditto
    Do I understand correctly that with the credentials consumer@HONO:verysecret I can authenticate at AMQP 1.0 (according to the "example-permissions-json" in the c2e package) and am able to consume data of all tenants which are created?
    Kai Hudalla
    @sophokles73
    yes, that is correct
    damian154
    @damian154

    Hi,
    i am following the 'Tour' section in order to test the c2e package that i just deployed (thanks for the recent update).
    I'm able to publish telemetry data, but it doesn't seem to impact on the twin property value that i am trying to update.
    This is how i created the twin:
    curl -X PUT -u ditto:ditto -H 'Content-Type: application/json' --data '{ "policyId": "org.movasim:test-policy", "attributes": { "location": "Argentina" }, "features": { "temperature": { "properties": { "value": null } }, "humidity": { "properties": { "value": null } } } }' http://${DITTO_API_IP}:${$DITTO_API_PORT_HTTP/api/2/things/org.movasim:test-device

    This is how i publish telemetry data:
    curl -i -u my-auth-id-1@test-tenant:my-password -H 'application/json' --data-binary '{ "topic": "test-tenant/org.movasim:test-device/things/twin/commands/modify", "headers": {}, "path": "/features/temperature/properties/value", "value": 45 }' http://${HTTP_ADAPTER_IP}
    This returns 200 OK.

    This is how i retrieve the twin state:
    curl -u ditto:ditto -w '\n' http://$DITTO_API_IP:$DITTO_API_PORT_HTTP/api/2/things/org.movasim:test-device
    But the temperature property remains null.

    The connection between Hono and Ditto was created exactly as indicated in the ''Create a new connection from Ditto to Hono" section.

    Thomas Jaeckle
    @thjaeckle
    hi @damian154
    the "topic" you provide in the Ditto Protocol JSON message seems to be wrong: "topic": "test-tenant/org.movasim:test-device/things/twin/commands/modify"
    it should rather be: "topic": "org.movasim/test-device/things/twin/commands/modify"
    Kai Hudalla
    @sophokles73
    I also don't think that you can publish the telemetry data to just http://${HTTP_ADAPTER_IP}. That needs to be http://${HTTP_ADAPTER_IP}:${HTTP_ADAPTER_PORT_HTTP}/telemetry
    damian154
    @damian154
    @thjaeckle it works, thank you.
    @sophokles73 you are right, i am currently publishing at http://${HTTP_ADAPTER_IP}:${HTTP_ADAPTER_PORT_HTTP}/telemetry, i just copied it wrong in the chat, sorry about that.
    Kai Hudalla
    @sophokles73
    @damian154 glad it works for you. Would you mind telling us a little about your use case, i.e. what you are planning to use C2E for?
    damian154
    @damian154
    I work in MOVASIM, where we develop IoT solutions. We are part of the VALID Group. We already have a Subscription Manager platform to connect devices with eSIM (for M2M like smart cars, and Consumer Devices like mobile phones), and we are now evaluating Hono + Ditto as a framework for the new version of our IoT Platform. We have tested Kapua already, but we found some constraints that pushed us to Hono+Ditto.
    We are at the testing phase, but if we get good results (which I believe we will achieve, based on current progress), my company is interested in being more involved in these Eclipse projects, so any advice will be very much appreciated.
    Kai Hudalla
    @sophokles73
    @damian154 That sounds great. Any kind of help is welcome and highly appreciated :-) Let us know about the outcome of your evaluation once you're ready to start contributing. we then can set up e.g. a video call to talk about potential ways of getting involved. You are, of course, always welcome to join our biweekly community call as well where you could tell us a little about yourself and what you are most interested in with Hono :-)
    Thomas Jaeckle
    @thjaeckle
    I just tried to trigger the website build (in order to publish Ditto 1.1.0 Helm chart).
    Seems like something with ruby gem bundle installation is broken: https://ci.eclipse.org/packages/job/Website/job/master/28/console
    But I fear I have no clue how to solve that
    @ctron do you have an idea?
    Bob Claerhout
    @BobClaerhout
    @thjaeckle , @ctron any update on this? I saw the build was failing and as a result, the new helm chart was not published
    Thomas Jaeckle
    @thjaeckle
    Seems like we ran into a current problem of the jekyll docker container: envygeeks/jekyll-docker#268
    I try to apply the mentioned workaround from there
    Jens Reimann
    @ctron
    I will take a look … IIRC there was a recent change to the gemfile
    Thomas Jaeckle
    @thjaeckle
    yes, but after that change several builds were successful - I tried to apply the workaround mentioned in the linked issue, but seem to have put it to the wrong place :/
    Jens Reimann
    @ctron
    btw … there is a develop branch, which runs the same pipeline :D
    Thomas Jaeckle
    @thjaeckle
    oh, sorry - my bad :/
    Jens Reimann
    @ctron
    I am not sure of that workaround could help … simply because that is running inside a container … and you cannot change permissions here
    I need to finish something else before I can take a look
    Thomas Jaeckle
    @thjaeckle
    yes - that one has probably to be done as command when starting the container
    Jens Reimann
    @ctron
    the container is started by kubernetes/openshift … so there is no way to do that
    Thomas Jaeckle
    @thjaeckle
    ah, ok
    too bad Jekyll has no "immutable docker containers" but does regular updates to their already released ones
    Jens Reimann
    @ctron
    yea … this is kind of weird … I was considering at some point creating our own
    I can't be that hard :D
    Thomas Jaeckle
    @thjaeckle
    for Ditto we run Maven running "gem-maven-plugin" invoking Jekyll for the website build :D
    Jens Reimann
    @ctron
    well there are one or two additional components in there … which require to run some kind of "get dependencies" step … which takes forever, but can be cached
    that was the promise of the "official" jekyll/jekyll image as well …
    then there was this bug with ruby and the musl libc … which every now and then segfaults
    but if the "official" image is more trouble than it is work, maybe doing a custom one isn't a bad idea
    Thomas Jaeckle
    @thjaeckle
    in the mentioned bug above someone else used another jekyll image as replacement:
    https://hub.docker.com/r/hamelsmu/fastpages-jekyll
    Thomas Jaeckle
    @thjaeckle
    Thanks @ctron for fixing the build. :+1: @BobClaerhout the chart has been published now to helm hub
    Bob Claerhout
    @BobClaerhout
    Great! thanks for the effort @ctron and @thjaeckle !
    damian154
    @damian154

    @sophokles73 absolutely, that sounds great! Thanks.

    We recently finished replacing our cloud service with cloud2edge. We used the Java SDK to consume the twins data on the application backend, and we did an end to end test with the physical devices we are working with (RFID readers), and worked flawlessly.

    Right now our gateway allow us to send the devices metrics to Hono via MQTT, HTTP or AMQP indefferently. Is there any relevant difference between any of those protocols why we should prioritize one over another to send the metrics to Hono?

    Kai Hudalla
    @sophokles73
    @damian154 Awesome :-) Regarding transport protocols: If you are using gateways that act on behalf of the RFID readers (i.e. to which the readers are connected), then I assume that the gateways maintain a permanent connection to Hono, right? In that case, I would advise to use AMQP 1.0 with the AMQP protocol adapter. Using a protocol with a permanent connection has the advantage of not needing to perform the TLS handshake for each message being sent as is the case with e.g. the HTTP adapter. AMQP 1.0 supports sophisticated message acknowledging including negative acks with error codes which is not supported by MQTT 3.1.1 (the version that the MQTT adapter currently supports). Thus, message handling is much easier with AMQP 1.0 and you also get flow control with back pressure down to the gateway for free, which is also not possible with MQTT 3.
    damian154
    @damian154
    We will go with AMQP 1.0 then, thanks!
    Kai Hudalla
    @sophokles73
    @damian154 You should use the org.eclipse.hono.client.device.amqp.AmqpAdapterClientFactory from the client module to connect your gateway to the AMQP adapter. This will make things much easier for you, e.g. automatic reconnect in case of connection loss etc.
    damian154
    @damian154

    Hello,
    finally we had to switch to MQTT because the gateway i was talking about supports only AMQP 0.9.1.

    Talking a little bit more about the use case:
    We have RFID sensors that report to the gateway when an RFID tag was detected (i.e an object enters an area). This gateway sends the reports to Hono.

    In order to keep track of the object (an RFID tag), we have a Java back-end that receives the reports, process them and generates the actual state of the objects (i.e time in zone, in time, out time, alarms, etc). This back-end uses the Ditto SDK to interact with Ditto (at the moment is subscribed only to twin features updates, in the future maybe we will send commands to the twins). At the moment we are adapting it to delegate the access management to Keycloak.

    Finally, a front-end developed in React interacts with the back-end in order to show the final user all this information (how many objects are in a zone, track an object, set alarms for an object, etc.) and let him create alarms, generate reports and some other functionalities.

    With all that said, what we did so far in C2E was (excluding the tenant, policies, and connection between Hono and Ditto creation):

    • Create a device (and the twin) that represents the gateway
    • Create a user to connect to Ditto and retrieve the twin features (this user is the back-end)

    It would be great to hear your opinion about what we are doing, to know if we are getting all this right, and if this architecture has some potential problems we are not seeing or we are not using all the features that C2E offers.

    Kai Hudalla
    @sophokles73
    @damian154 sounds good to me. Are you planning to offer your solution as a managed service, i.e. is it supposed to be used by multiple customers (= tenants) with you hosting (operating) the solution on cloud infrastructure? I am asking because this is obviously the setup that Hono and Ditto have been created for with their micro service architecture to be run on kubernetes. If you are only connecting a handful of devices via a single transport protocol then you can still, of course, use Hono and Ditto but you might be able to reduce overall complexity by just using Ditto and connect the devices directly to Ditto using its MQTT connector.
    damian154
    @damian154
    @sophokles73 thanks for your feedback. Yes, we plan to have multiple clients using the service
    damian154
    @damian154

    Hi, i hope you are doing well.

    I am getting the following error from the Hono MQTT adapter:

    org.eclipse.hono.client.ServerErrorException: no credit available

    A couple of days ago everything was working well, so i am a little confused about this.

    What should i be looking at in order to find the cause?

    Kai Hudalla
    @sophokles73
    @damian154 this usually means that there is no downstream consumer for telemetry data. Are you trying to publish data to the telemetry topic?
    damian154
    @damian154
    @sophokles73 yes, i am trying to publish to the telemetry topic
    Kai Hudalla
    @sophokles73
    So, do you have a downstream application attached to Hono's northbound Telemetry API for consuming the messages being published?
    damian154
    @damian154
    Yes, Ditto was connected and consuming the messages
    Kai Hudalla
    @sophokles73
    Are you sure that Ditto's Hono connector is up and running?
    damian154
    @damian154
    Yes, i am looking at the Digital Ocean Kubernetes dashboard where we deployed C2E and i don't see any component down
    damian154
    @damian154
    So, i switched to the HTTP adapter and it's working fine. I think i will stick to that solution at the moment, thanks
    Kai Hudalla
    @sophokles73
    There is no reason why it shouldn't work with the MQTT adapter if it works with the HTTP adapter ...