Giter Site home page Giter Site logo

mwood77 / winderoo Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 3.0 42.44 MB

Winderoo - Supercharge your Open Source Watch Winder (OSWW) build!

Home Page: https://winderoo.com

License: Creative Commons Attribution Share Alike 4.0 International

JavaScript 2.27% TypeScript 38.00% HTML 17.58% SCSS 8.29% C++ 33.86%
arduino cc-by-sa esp32 hardware watches

winderoo's Introduction

winderoo's People

Contributors

dependabot[bot] avatar eengnr avatar mwood77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

winderoo's Issues

Add support for multiple powered winders on one network

There's a possibility more than one powered unit will be on the network. Therefore, each winder should search the network to discover if there are other active winders already on the network & available at http://winderoo.local.

If there are, it should try to find an 'available 'domain' on the network.

The code could be something like:

 // pseudo code..
 int domainNumber;     

 // winder exists
 if (PING winderoo.local (status code) == 200) {
    // find incremented mDNS address to use

    for (int i = 0; i < 10; i++) {
        if (PING winderoo[i].local (status code) != 200) {
             domainNumber = i;
             break;
        }
    }
    MDNS.begin("winderoo"+domainNumber);
 }

Add support for physical interrupt button.

There are a large number of requests for a physical button to change on/off state. This would stop all activity when pressed.

A couple nice features could come out of this:

  1. We would now have a physical 'sleep/wake' button. When the button is pressed, it should toggle winderEnabled either true or false.
  2. If the device is in the 'OFF' state, the onboard LED should 'snooze.' This can be accomplished with PWM.

Time calculation is incorrect

220rpd = 58 minutes
240rpd = 2 hours 4 minutes

440rpd = 2 hours 57 minutes
440rpd = 4 hours 2 minutes

660rpd = 4 hours 56 minutes
6800rpd = 6 hours 1 minutes

ruh roh raggy....

Android mDNS resolution failure

What

Android cannot resolve .local mDNS domains. Browsers offload mDNS resolution to the OS, which cannot resolve the request due to "security concerns" (google).

See issues

Work Around

Front end

  • Automatic retrieval of domain from window url & pass through domain to service layer. This is a bandaid fix.
    • Android users will have to access it via ip for now.
    • possible to deploy a 'discovery website' to assist in resolution, but that's a serious PITA.

Android

  • Disable 'Private DNS'

Resolution

  • Unable to resolve this for devices that are not running on Android 12 (Pixel).
  • Unsure when other device manufacturers will roll out a release containing fix Android 12 SQ1A220105.002

Issue with mDNS and Android

It seems that mDNS doesn't work properly on Android which causes the Winderoo web UI to not work anymore after #36. At least I couldn't get it to work... ๐Ÿ˜…

It turned out that I cannot resolve http://winderoo.local on any Android device (7, 12, 13, 14).
Before the change in #36, it was possible to access the web UI with the IP of the ESP32 on Android and the API call was then done towards the IP. With my change in #35, the API call would be done to any domain that was used for the UI (which is of course accessible, otherwise the UI would not load at all).

But now since #36, the API call is always done to http://winderoo.local, even if the IP is used to load the UI or if a custom non-.local-domain name is used (I can set this with AdGuard Home in my LAN).

I did some research and found some issues where this one seems to be quite similar to my problem:
espressif/arduino-esp32#9051

esphome/issues#3003

I can access the .local domain which is broadcasted from a Raspberry Pi with OpenHAB, but I cannot access the .local from the ESP32 on Android.
On Linux or iOS it works fine.

Long story short - @mwood77 do you observe the same with an Android device? Or does it work for you on Android? I'm currently not sure if it's an issue in my network or an issue in the combination Android + mDNS on ESP32.

To not be dependent on mDNS, perhaps the web UI could load the API from the IP of the ESP32 instead of the mDNS .local domain?

Bill of materials list links aren't working anymore

Hi, I tried to follow the link for the ESP32 board but it no longer exists. Unfortunately there's a ton of slightly different ESP32 boards at AliExpress and the more inexperienced of us (me on top of that list) are afraid to get a wrong one

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.