Giter VIP home page Giter VIP logo

ondo's People

Contributors

michaelschnyder avatar rebekkaz avatar

Stargazers

 avatar  avatar

Watchers

 avatar

ondo's Issues

Upload new firmware to devices in same network

Suggested implementation

  1. devices announce themselves via mDNS including the update url/port
  2. Small command line application that discovers the devices and sends the firmware

Commandline Sample

  • ondo-update --firmware <ardunio-binary.bin>: Shows a list of devices and user has to enter select a specific item
  • ondo-update --firmware <arduino-binary.bin> --target <ip | deviceId>: flash a specific device in local network
  • ondo-update --firmware <ardunio-binary.bin> --target all: All discoverable devices are updated

Links

Send update message when state has changed

Whenever a device receives a command and adjusts it's local settings and talks to AC, after completion, a message with the current state should be transmitted to MQTT

Automatically deploy new firmware to devices from Azure DevOps

Suggested workflow

  1. Trigger update from DevOps Pipelines (extend #10) to Azure IoT or Ondo Backend
  2. Store new firmware somewhere (Azure Blob Storage, Ondo Backend?)
  3. Change the desired firmware version in device twin
  4. Download new firmware on device

Links

Migrate WebClient to connect to Azure IoT

Replace the Losant API calls with Azure IoT Hub calls.

Two options

  • directly call Azure IoT Hub API from Webpage
  • implement own backend in NodeJs/.NET and proxy request to Azure IoT

Option 2) is preferred as it offers a more secure way to connect to Azure API (does not expose connection String) and offers more flexibility in the long term (i.e. support for Alexa)

Send network information as reporter property

  1. The network configuration should become a separate node including signal stranght, SSID, BSSI, IP, Subnet and Gateway information.
  2. sensor information needs to be refactored into separate node

Refresh access tokens

The current tokens used by the embedded devices only last for max 365 days.

Options

  • Use some kind of registration & refresh API on the cloud (maybe Azure IoT supports that with the device enrollment module)
  • Regenerate the access token based on the connection string (some other libraries do that, but depends on some MD5 magic and the #3

Capture crash details and upload to cloud

Usage of the library EspSaveCrash and upload the results via http to the cloud.

Things to consider

  • Clear local memory after successful upload
  • Clear local memory after firmware update (relates to #12)

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.