GithubHelp home page GithubHelp logo

eclipse-thingweb / test-things Goto Github PK

View Code? Open in Web Editor NEW
4.0 9.0 2.0 326 KB

Collection of Things that can be used for testing different IoT protocols, security mechanisms and interaction styles

Home Page: https://thingweb.io

License: Other

Shell 1.49% Dockerfile 0.53% JavaScript 94.57% Python 3.41%
iot protocols testing web-of-things wot

test-things's People

Contributors

eclipse-thingweb-bot avatar egekorkan avatar hasanheroglu avatar relu91 avatar sergiocasceb avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

test-things's Issues

Coap calculator content negotiation's request headers requires a null check

Request's accept headers can be null in case they are not provided. This causes an error when .includes method called on the undefined variable.

Error happens here:

if (acceptHeaders.includes('application/json') || acceptHeaders.includes('application/td+json') || acceptHeaders.includes('application/*') || acceptHeaders === '*/*') {

Modbus forms are wrong

The generated Modbus forms contain "href": "?address=1&quantity=1", whereas the address should never be URI Variable. It should be part of the URI modbus+tcp://{address}:{port}/{unitID}/{address}?quantity={?quantity} e.g. modbus+tcp://127.0.0.1:60000/1/1

Communication Tests

So far, we only test the TMs and TDs but not the communication. We should have end to end tests where a Consumer sends the requests. Ideally a node-wot consumer to really test TD consuming.

Additional Services

With all the Things running, we should start monitoring and managing them better.

  • Prometheus with Grafana can help us identify some "low-level" issues already.
  • Portainer is also a good option since it would allow us to manage containers as well. We wouldn't need to SSH, for example. It doesn't seem to be really open-source and can become paid in the future (not 100% sure of course), so @hasanheroglu will look for alternatives
  • Traefik Dashboard is being tracked at #26

node-wot Things

Still in discussion but the idea is to also add node-wot Things and manage them via a single docker compose

Linking to TDs in Readme

Once the devices are deployed, we should link to their TDs from the Readme. Also, add them to plugfest.thingweb.io

Thing State Dashboard

For anyone interacting with Things over the specific protocol, it would be good to have knowledge about the Thing's current and past state:

  • Property: value, observe subscriptions
  • Action: invocation, received input, given output
  • Events: emitted value, subscription amount, subscription request payloads and unsubscription request payloads (not sure how they work in general)
  • Health Check of the Thing (feature of docker compose/stack)

All these should have historical values.

These can be integrated to Grafana but needs to be public. The dashboard should not be able to send values back to the Things.

Getting failure reasons of Things

Since we now have (and possibly in the future) errors that cause the crash of Things, it would be good to save and present the reasons visually so that we can work on solving them.

Improve README with information of the things running

The following section explains how simple it is to run the things with docker-compose up. Good so far.

What I am missing is information on where certain things are visible and maybe an overall list.

E.g., http://localhost/ reports a 404 and one has to dig into the code to find for example http://localhost/http-express-calculator.
Maybe the README can contain this information or the log of docker or there could be some information in the root of HTTP etc.
Not sure w.r.t. other protocols.

Other Auth Solutions for Dashboards

Currently, the dashboards are accessed through BasicAuth. It is fine but it means sharing a password so it would be better to use something like GitHub account based authorization solutions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.