Coder Social home page Coder Social logo

btrautmann / hydrawise-companion Goto Github PK

View Code? Open in Web Editor NEW
3.0 0.0 0.0 165.02 MB

A companion to the first-party-supported Hydrawise application.

Dart 93.02% Kotlin 0.08% Objective-C 0.02% Swift 0.24% HTML 2.22% Ruby 3.72% Shell 0.13% Dockerfile 0.57%

hydrawise-companion's Introduction

Irri

Third party, modern support for the Hydrawise API

License: MIT

Welcome to Irri

Irri is a passion project that aims to bring a bit of modernization to the experience of interacting with your Hydrawise irrigation system. It offers a clean, minimalistic UI and takes full advantage of the public Hydrawise API, while also layering on its own capabilities.

Features included:

โœ… Dark mode

โœ… Quickly rename zones while maintaining original names in the first-party Hydrawise app

๐Ÿšง Ability to create and update programs in supersonic speed

๐Ÿšง Push notifications when runs begin

๐Ÿšง Integration with OpenWeatherMap API

๐Ÿšง and more! (coming soon)


Getting Started ๐Ÿš€

Open Weather Map API

Note: I've currently removed the Open Weather Map API functionality from the app, so this does not apply. I'm leaving it here for a future re-introduction

This project makes use of the OpenWeatherMap API to fetch weather data. Before building the app, you need to obtain your own API key by creating an account on their website, and make sure that this key is available as an environment variable when deploying the app. This can be done by passing the API key to the --dart-define flag (e.g --dart-define OPEN_WEATHER_MAP_API_KEY=<your_api_key_goes_here>). The variable name matters, so make sure it's equivalent to OPEN_WEATHER_MAP_API_KEY. If you are using VSCode for development and want to make use of the launch.json (rather than building from the command line), you'll also need to add this key to your machine's environment's variables (and will need to restart VSCode after doing so) so that launch.json can provide it to the app when building.

hydrawise-companion's People

Contributors

btrautmann avatar

Stargazers

 avatar  avatar

hydrawise-companion's Issues

Version incrementing

Add a step in CI that either:

  • Verifies that the version in pubspec.yaml differs from what's on main, or fails the build OR
  • Increments the current build number (minor version and version code)

Feature: Run next cycle

Ability to run next cycle now or at a later time (later time should only be configurable up until the next run, or possibly any time with a warning about proximity to an already-scheduled run).

Various UI/UX buglets

  • Duration dialog accepts non-numeric input
  • Coloring in dark mode, especially on program page
  • UX of creating/saving program (prompt on back, persistent Done button that becomes clickable once valid)
  • Status bar wrong color in dark and light mode interchangeably

Time zones

  • Send user timezone up when logging in/creating customer
  • When checking runs via /check_runs, modify server time with user timezone
  • Allow for adjusting timezone from client

Zones

  • Ability to rename zone (preferred_name)
  • Ability to suspend & resume zone (store suspension time on a zone, suspended_until)
  • Granular suspension times: Ability to suspend until a specific time, not just end of day. This is helpful when trying to just push out a watering until you're done mowing the lawn, etc.

Feature: Granular suspend times

Ability to suspend until a specific time, not just end of day. This is helpful when trying to just push out a watering until you're done mowing the lawn, etc.

Programs

  • Confirm before deleting program
  • Water schedule should be from programs page
  • Ability to edit program
  • Actually run each program (/check_runs)

Testing

Add tests for:

  • Feature views/screens
  • Use cases that interact with HttpClient (make FakeHttpClient)
  • Abstract a DataStorageAccessor class and migrate/test existing storage use cases

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.