[Custom component] AsusRouter integration


My custom Asus Router Dashboard in HA

5 Likes

That is super cool! :+1:

1 Like

Indeed we will! I have 3 of those mesh devices.
@raspberrypi353 that’s very beautiful! Would you mind to share it (but i’ll totally understand if you won’t… it’s quite a job done here…)?

1 Like
type: vertical-stack
cards:
  - type: picture
    image: local/images/ass.png
    hold_action:
      action: none
    style: |
      ha-card {
        margin: 0rem 0.5rem;
       -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
       -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
        box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
           } 
  - type: custom:config-template-card
    entities:
      - sensor.myip
    card:
      type: custom:hui-entities-card
      show_header_toggle: 'off'
      style: |
        ha-card {
          margin: 0rem 0.5rem;
         -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
         -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
          box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
             }
      entities:
        - type: section
          label: ${ 'Asus RT-AC86U'  }
          styles:
            label:
              - font-size: 10px
        - type: custom:hui-vertical-stack-card
          cards:
            - type: horizontal-stack
              cards:
                - type: picture
                  style: |
                    ha-card {
                      margin: 0rem 0.5rem;
                     -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                      box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                         }
                  image: /local/images/asrt.png
                - type: custom:button-card
                  show_icon: true
                  show_state: false
                  style: |
                    ha-card {
                      margin: 0rem 0.5rem;
                     -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                      box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                         }
                  entity: switch.rt_ax82u_wireless_2_4_ghz
                  name: 2,4 GHz
                - type: custom:button-card
                  show_icon: true
                  show_state: false
                  style: |
                    ha-card {
                      margin: 0rem 0.5rem;
                     -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                      box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                         }
                  entity: switch.rt_ax82u_wireless_5_ghz
                  name: 5 GHz
  - type: custom:stack-in-card
    style: |
      ha-card {
        margin: 0rem 0.5rem;
       -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
       -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
        box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
           }
    cards:
      - type: custom:mini-graph-card
        name: CPU
        color_thresholds:
          - color: '#159F3B'
            value: 0
          - color: '#F2B528'
            value: 50
          - color: '#DD5129'
            value: 80
        decimals: 2
        entities:
          - entity: sensor.rt_ax82u_cpu
            name: CPU
            show_state: true
            state_adaptive_color: true
        font_size: 75
        hour24: true
        hours_to_show: 1
        line_width: 3
        points_per_hour: 120
        update_interval: 10
      - type: entities
        entities:
          - entity: update.rt_ax82u_firmware_update
            name: Firmware
          - entity: button.rt_ax82u_reboot
            name: Reboot
          - entity: light.rt_ax82u_led
            name: LED
            state_color: true
          - entity: sensor.rt_ax82u_ram
            name: RAM
          - entity: sensor.rt_ax82u_connected_devices
            name: Connected devices
          - entity: sensor.rt_ax82u_boot_time
            name: Boot time
          - entity: sensor.rt_ax82u_wan_speed
            name: WAN
          - entity: sensor.rt_ax82u_lan_speed
            name: LAN
      - type: custom:mini-graph-card
        name: WAN
        decimals: 2
        entities:
          - entity: sensor.rt_ax82u_wired_download_speed
            name: Download
            show_state: true
            state_adaptive_color: true
          - entity: sensor.rt_ax82u_wired_upload_speed
            name: Upload
            show_state: true
            state_adaptive_color: true
        font_size: 75
        hour24: true
        hours_to_show: 3
        line_width: 3
        points_per_hour: 30
        update_interval: 300

2 Likes
type: custom:config-template-card
entities:
  - sensor.myip
card:
  type: custom:hui-entities-card
  show_header_toggle: 'off'
  style: |
    ha-card {
      margin: 0rem 0.5rem;
     -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
     -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
      box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
         }
  entities:
    - type: section
      label: ${ 'Asus RT-AC86U'  }
      styles:
        label:
          - font-size: 10px
    - type: custom:hui-vertical-stack-card
      cards:
        - type: horizontal-stack
          cards:
            - type: picture
              style: |
                ha-card {
                  margin: 0rem 0.5rem;
                 -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                 -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                  box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     }
              image: /local/images/asus3.png
            - type: custom:button-card
              show_icon: true
              show_state: false
              style: |
                ha-card {
                  margin: 0rem 0.5rem;
                 -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                 -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                  box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     }
              entity: switch.asus_rt_ac86u_wireless_2_4_ghz
              name: 2,4 GHz
            - type: custom:button-card
              show_icon: true
              show_state: false
              style: |
                ha-card {
                  margin: 0rem 0.5rem;
                 -webkit-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                 -moz-box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                  box-shadow: 0px 3px 6px 3px rgba(0,0,0,0.48);
                     }
              entity: switch.asus_rt_ac86u_wireless_5_ghz
              name: 5 GHz

3 Likes

Hi and many thanks to Yevhenii for this project!!

I’m experiencing an issue in my HA asusrouter integration logging a lot of the same error:

Logger: asusrouter.util.parsers
Source: custom_components/asusrouter/bridge.py:230
Integration: AsusRouter (documentation, issues)
First occurred: 09:00:07 (189 occurrences)
Last logged: 09:31:07

Failed parsing value ‘isGN’. Please report this issue. Exception summary: (“Wrong value 3 of type <class ‘str’>”, None)
Failed parsing value ‘isGN’. Please report this issue. Exception summary: (“Wrong value 2 of type <class ‘str’>”, None)

My running configuration is:

  • Asus Router model RT-AX88U - (acting as wireless router) Merlin FW 388.1
  • HA Integration Vaskivskyi/ha-asusrouter 0.14.2
  • Home Assistant 2022.12.5 - Supervisor 2022.11.2 - Operating System 9.4 - Frontend 20221213.0 - latest

Does anybody is experiencing the same issue and can help me to solve it?

Many thanks in advance
Regards

Hey @Gio70,

Thanks for your report!

Unfortunately, I will be able to check anything only after Saturday, since I currently do not have access to the testing environment. But since I have exactly the same RT-AX88U, the problem should not be hard to find and solve.

It seems like the backend library is receiving unexpected values. Can you let me know, which Guest WLAN networks you are using? 2.4 GHz or 5 GHz and the number of the network(s) in use - 1, 2 or 3?

0.14.3

Thanks to @EdwardTFN and @blavak68 AsusRouter now fully support :brazil: Portuguese (Brazil) and :slovakia: Slovak correspondingly.

The full list of languages:

  • :czech_republic: Czech
  • :uk: English
  • :fr: French
  • :brazil: Portuguese (Brazil)
  • :slovakia: Slovak
  • :es: Spanish
  • :ukraine: Ukrainian

You can always help us support even more languages!


Links:

Hi Yevhenii, thanks for your reply, but take some time to solve it I’m not in a hurry, indeed thanks to you for spending your time to produce this component. Here what you need (I think). Guest 1 not used.

Do not hesitate if you need more information
Regards
Giorgio

:gift: The fix will be available with the next release. Sorry for this bug

0.15.0 :thermometer: More temperatures and fixes

2022-12-18

:bomb: Known issues

  • Updating to this version might disable your current temperature sensors and create new ones. In this case, please remove the old entities, enable the new ones and assign them entity_id’s as before.

:lock: Requirements

  • Minimum Home Assistant version bumped to 2022.11.0

:rocket: New features

  • New guest_id integer attribute added to the device identities (and device_tracker entities), which shows the number of guest WLAN (e.g. 1, 2 or 3 when connected or 0 when not connected to a guest network)
  • Added support for the temperature of 5 GHz-2 and 6 GHz wireless modules (device and firmware dependant)

:bug: Bug fixes

  • guest binary attribute of device_tracker entities fixed (reports #C294, #384)

:boom: Breaking

  • Deprecated in 0.13.0 entity_id, mac and name parameters of asusrouter.device_internet_access service are removed
  • Migration from versions 0.5.1 and lower is removed - consider the new migration FAQ if you need to update from an older version

:books: Documentation

Documentation webpage

  • Search feature is added to the documentation using the Algolia DocSearch platform
  • Change log is added to the documentation
  • Credits are added to the documentation

:package: Dependencies

  • Bump asusrouter library to 0.14.0

:hatching_chick: Github / HACS

  • Update build status badge
  • Update release drafter

:hammer: Other changes

  • integration_type property is added to the manifest (>= 2022.11.0)
  • Switched to UnitOfTemperature enum (>= 2022.11.0)
  • Switched to SourceType enum (>= 2022.9.0)
  • Code improvements


:gift: Support AsusRouter development

If you like AsusRouter, you can consider supporting its development by donating using the Buy Me a Coffee service.


:medal_sports: Achievements

  • AsusRouter integration has crossed 600 active installations (as per HA Analytics) - currently, 607 installations are reported.
  • AsusRouter documentation is visited by more than 400 unique users per month (those, not blocking Google Analytics).

Announcements

  • :christmas_tree: Work on the AiMesh support has officially started! :gift:

3 Likes

Hi Yevhenii, applied update and now works fine! Bought a coffee for you!

Thanks & Regards
G.Casale

1 Like

Hey,

I did a push request for Dutch translation. Did you got it?

Hey, sorry I did not get anything. Did you create a Pull Request after pushing changes to your fork?

0.15.1 :open_book: Dutch translation

2022-12-18

:open_book: Translations

  • Added :netherlands: Dutch translation (author: @poudenes)


Changes in 0.15.0

Can be found here


:books: Add your language

AsusRouter already supports 8 languages. You can help with adding language you are fluent (or just good) in.

Curious, who are the authors of the translations? Check it out in the official AsusRouter docs.

Greetings,

I just updated to v.0.15.0 and noticed that the original temperature sensor entities are now unavailable, but new sensors (currently disabled by default) are available. Screenshot attached below shows the unavailable entities in yellow, and the new entities in blue.

Am I to delete the old entities and activate the new ones to use in their place?

Thanks!

ASUS Router - Temp Entities

Hey,

Yes, seems that such a problem might happen on the update. Unfortunately, you would need to remove the old entities and enable new ones. In case you are using them in automations / frontend, you can assign the same entity_id’s as before as soon as the unavailable entities are removed.

I will add this problem to the release notes.

Understood - and it isn’t a big deal! Just wanted to make sure I didn’t miss a step somewhere.

Thanks again for an awesome integration!

:gun: More Asus integrations in this town

Seems like now there will be 3 integrations for Asus routers:

  • AsusRouter custom integration (<-- you are here).
  • AsusWRT built into HA Core (the stock integration).
  • AsusWRT custom by one of the stock integration maintainers, which just got added to HA brands. Apparently, this means, it is heading to be added to the HACS default integrations list. Before it was “just for testing purposes”. The difference with the stock - is the added HTTP API support (the one which is used by AsusRouter) for which PR to the HA core is stale for many months.

:+1: Apparently, AsusRouter is doing something right

since the library behind the “new” custom integration just borrowed our temperature sensor parsers and regular expressions - the ones needed to support different values templates between FW versions 374.x, 380.x, 386.x and 388.x


:christmas_tree: AsusRouter is staying with you and becoming even better

Regardless of the success of the stock and the new custom integrations, AsusRouter is going to stay with you as a feature-full and customizable integration.

Do you like AsusRouter? Let the word about it get to other users of Asus devices. Maybe, they don’t yet know about the better alternative to AsusWRT core integration.

:gift:

10 Likes

0.16.0 :gift: Many small improvements

2022-12-25

This release is not bringing many new features and some of the changes will not be visible to the end users. But it is here to improve both - your experience of using AsusRouter (keeping all the settings as consistent inside the integration as possible) and my work on the new features and bug fixes.

:rocket: Features

  • Improved hiding of protected values from the entities attributes
  • Security-protected attributes are hidden from the binary_sensor entities
  • Move all the control/no-control features from the library to the integration
  • The confirmation step is removed from the options flow as obsolete - there is no need anymore to manually reload the integration after changing its settings

:bug: Bug fixes

  • Fixed Device is connected in no-control mode. Sending commands is blocked when in no-control mode, raised by the update entity.
  • Fixed bug with missing timemaps in parental control rules (report #369)

:boom: Breaking

  • Services asusrouter.adjust_wlan and asusrouter.device_internet_access are available only in control mode of the integration - which would be the correct expected behaviour.

:package: Dependencies

:hammer: Other changes

  • Simplified obtaining of temperature sensors list from the backend
  • Simplified code for static entities
  • Simplified generation of the static entities
  • Improved constants usage

:medal_sports: Stats

  • 629+ installations
  • 421+ users have checked the Documentation in the last 30 days

:coffee: Support AsusRouter

Monetary support:

  • You can make a donation using the Buy Me a Coffee service
  • Thinking of buying a new Asus router to use with AsusRouter integration? Check the compatibility list in our Docs. If you will use any of the Amazon Associate links, I might get a small (1-3%) bonus from Amazon (usage of the associate links does not change the price of the items for you)

Non-monetary support:

  • Star AsusRouter repository
  • Know a person with an Asus device using Home Assistant but not AsusRouter? Let them know, AsusRouter is cool and has lots of useful features

:christmas_tree: Happy Holidays!

6 Likes