/ad-autointernetrebooter

Automatically reboot your crappy internet if you have a zwave, zigbee, or bluetooth switch/socket powering your internet modem. Please :star: if you like this app :)

Primary LanguagePythonApache License 2.0Apache-2.0

Auto 'Crappy Internet' Rebooter πŸš€

hacs_badge

Automatically reboot your internet 🌐 if you use a ZWave, Zigbee, or Bluetooth switch/socket for your internet modem. This app πŸ”ΊWILL NOT WORKπŸ”Ί with WiFi switches/sockets

Ever since we've set this up in our home, we've never had to worry about the internet. Infact, I've even forgotten where our modem is πŸ˜‰ ... Awesome!

Please ⭐ this repo if you like my work and also check out my other repos like

Also, if you want to see a walkthrough of my Home Assistant configuration, I have my video walkthrough on youtube below

Prerequisites

You need the πŸ’₯SpeedTest.netπŸ’₯ component configured in your configuration.yaml and ensure you "disable polling" using "system options" image

configuration.yaml

speedtestdotnet:
  manual: true
  monitored_conditions:
    - ping
    - download
    - upload

if you enable speech notifications, you will also need the Alexa Media Player or Sonos integration

Installation

Use HACS or download the auto_internet_rebooter.py from inside the apps directory to your local apps directory, and add the following configuration to enable the app.

Configuration (with Optional Speech Notifications)

internet_health_monitor:
  module: auto_internet_rebooter
  class: AutoInternetRebooter
  internet:
    download: sensor.speedtest_download
    upload: sensor.speedtest_upload
    ping: sensor.speedtest_ping
    switch: switch.garage_internet_switch
  thresholds:
    download_mbps: 50
    upload_mbps: 3.5
    ping_ms: 75
  schedule:
    - "04:00:00"
    - "16:00:00"
  debug: false
  # OPTIONAL SPEECH NOTIFICATIONS
  notify:
    alexa: media_player.upper_big_bedroom_alexa
    start_time: "08:00:00"
    end_time: "21:30:00"
  # OPTIONAL SPEECH NOTIFICATIONS
key optional type description
module False string The module name of the app
class False string The name of the Class
internet|download False speedtest.sensor SpeedTest Download Sensor
internet|upload False speedtest.sensor SpeedTest Upload Sensor
internet|ping False speedtest.sensor SpeedTest Ping Sensor
internet|switch False switch The switch/socket that powers your internet modem
thresholds|download_mbps False number Threshold download speed. The internet will reboot if your download speed falls below this number.
thresholds|upload_mbps False number Threshold upload speed. The internet will reboot if your upload speed falls below this number.
thresholds|ping_ms False number Threshold ping. The internet will reboot if your ping goes above this number.
schedule False list Define daily schedule when the speed test should run. This is in 24h format.
notify|alexa True media_player Speaker for Speech Notifications (Optional)
notify|start_time True time Only speak between start and end time. So that you don't get awoken when the test runs at 4 AM 😜. This is in 24h format
notify|end_time True time Every start has an end. This one too 😏
debug True bool if True, outputs messages to the AppDaemon Log

Thank you! πŸ™Œ

This app wouldn't be possible without the amazing work done by the developers and community at Home Assistant.

If you like my work and feel gracious, you can buy me a beer below ;)

Buy Me A Beer

License

Apache-2.0. By providing a contribution, you agree the contribution is licensed under Apache-2.0. This is required for Home Assistant contributions.