Giter VIP home page Giter VIP logo

pixy's People

Contributors

cryptaliagy avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar

pixy's Issues

Add support for Enviro Urban board

The Enviro Urban board has sensors that might not be available in the current Pixy implementation of a sensor reading. These sensor outputs and their types should be incorporated, and any sensors that are not universally shared should have their types set to an Option<T> so the models are compatible with all existing boards

Add support for listening to MQTT as data source

Using MQTT is likely to provide better network performance than HTTP, which would directly translate to better battery life for devices that are being powered off of external batteries. By adding an MQTT client data source,

This could be done in 2 ways:

  • Set up a separate MQTT listener output (docker container/etc)
  • Add configuration options for enabling MQTT alongside the Pixy server

Since the Pixy server has a small memory footprint, I am more inclined to use the second option. This comes with the additional benefit that it allows the existing publish process to continue without having to add any variants or multiple Docker tags per version

Add support for Enviro Weather board

The Enviro Weather board has sensors that might not be available in the current Pixy implementation of a sensor reading. These sensor outputs and their types should be incorporated, and any sensors that are not universally shared should have their types set to an Option<T> so the models are compatible with all existing boards

Add support for InfluxDB targets

Output to InfluxDB should follow a similar pattern to the existing [pimoroni enviro[(https://github.com/pimoroni/enviro) output target to maintain compatibility for existing users

Add logic-based filtering

Some targets might be reserved for abnormal readings (i.e. post to Discord only if temperature > 40°C), and there should be a way to support that.

Minijinja has support for this type of feature. This should probably be integrated into the "enabled" field of each target so that an expression could be used instead

Add environment variable support to `pixy.yaml` files

Using something like minijinja, Pixy could have support for pulling environment variables into values for the targets. This would be most useful for adding things like authentication mechanisms (basic auth/bearer auth) for webhooks, as well as for credential access for future targets

Add support for Enviro Grow board

The Enviro Grow board has sensors that might not be available in the current Pixy implementation of a sensor reading. These sensor outputs and their types should be incorporated, and any sensors that are not universally shared should have their types set to an Option<T> so the models are compatible with all existing boards

Add support for arm64 containers

Currently, I have not been able to successfully build an arm64 container in the pipeline. Some more work is required to investigate how to properly build for both amd64 & arm64 targets with a single Dockerfile

Add tag-based target filtering

In a multi-target scenario, not every sensor might make sense to be used for every target. If the sensor also outputs a list of tags, Pixy could match against an include/exclude list to more granularly control where messages go

Add authentication support for custom webhooks

After closing #11, basic auth & bearer auth can now be more safely implemented, as there is an alternative to explicitly setting this information in the configuration file.

These should be provided under an auth key for the webhook, which should support either option depending on which subkeys are used (username/password for basic auth, bearer for bearer auth).

I think it would also be a good idea to emit a warning if basic auth is used to discourage the use of it.

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.