Ciao a tutti,

Se può tornare utile a qualcuno, condivido un’integrazione per Home Assistant che ho realizzato qualche mese fa, per il modem/router TIM HUB+ (ZTE H388X).

Link al repository: qui


Esempio di dashboard

L’integrazione recupera tramite API i valori relativi alla linea xDSL o connessione FTTH (con modulo SFP o ONT esterno).
Essenzialmente si tratta degli stessi valori visibili da GUI nella pagina “Internet” del router, ma resi disponibili come sensori di Home Assistant. Ad oggi lavora in sola-lettura e non è in grado di impartire comandi al router.


Esempio di valori disponibili

Può tornare utile, ad esempio, per tenere traccia dell’andamento, nel corso del tempo, dei valori relativi al segnale DSL/ottico (attenuazione, SNR, potenza ecc.). Può essere usata anche per eventuali alert o automazioni (ad es. nel caso di disconnessione).

Va installata seguendo le istruzioni nel README, oppure aggiungendo l’URL del repository GitHub ai custom repository in HACS.

Ho avuto modo di testarla solo con connessione FTTH (ONT esterno). Inoltre, non so se possa funzionare anche con la versione Executive del TIM HUB+ (ZTE H388XF, ossia quella con porta 2.5Gbps), non possedendo il router in oggetto.

Se qualcuno la prova e vuole lasciare un feedback / suggerimento è ben accetto, in particolar modo se con connessioni DSL o FTTH tramite modulo SFP.

    19 giorni dopo

    Grazie mille per l'ottimo lavoro. Mi ci sono imbattuto cercando API esposte da questo router, quindi ne approfitto per chiederti se per caso ne hai trovata una che permetta di forzare il reboot.

    Grazie ancora

      23 giorni dopo

      SanBitter

      (evidentemente ho qualche problema con le notifiche, leggo solo ora 🙂)

      Onestamente non ho provato la chiamata di reboot in quanto l'integrazione mi serviva principalmente per monitorare alcuni valori (uptime connessione, giga down/up...).

      Ad ogni modo, analizzando la chiamata POST da browser l'endpoint risulta essere:
      "http://IP_ROUTER/?type=menuData&tag=devmgr_restartmgr_lua.lua"

      Ad esempio, con curl:

      http://IP_ROUTER/?_type=menuData&_tag=devmgr_restartmgr_lua.lua' \
        -H 'Accept: application/xml, text/xml, */*; q=0.01' \
        -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
        -b '_TESTCOOKIESUPPORT=1; SID=XXXXXXX' \
        -H 'Origin: http://IP_ROUTER' \
        -H 'Referer: http://IP_ROUTER/' \
        -H 'User-Agent: Mozilla/5.0....' \
        -H 'X-Requested-With: XMLHttpRequest' \
        --data-raw 'IF_ACTION=Restart&Btn_restart=&_sessionTOKEN=XXXXXXX' \
        --insecure

      Per recuperare i valori SID e sessionTOKEN puoi fare riferimento al file sensor.py dell'integrazione.

      Ti lascio anche il link ad un altro repo GitHub dove è presente la chiamata per il reboot, anche se a prima vista pare leggermente diversa (il modello di router è anch'esso diverso, ma alla fine questi ZTE si assomigliano un po' tutti).

      Un'eventuale integrazione in Home Assistant immagino potrebbe essere fatta mediante una service action.
      Non ho grossa esperienza in merito, se mai in futuro posso provare a darci un'occhiata.

        5 giorni dopo

        masoneff3
        Ciao di nuovo, grazie per la risposta. Avevo già fatto un po' di reverse engineering e individuato la chiamata da effettuare per il restart, però nonostante i vari tentativi e i tentativi di debug non ne sono venuto a capo.
        Avevo scritto uno script per effettuare il login e staccare il token di sessione e fin lì sembra che vada bene, ma poi, quando effettua la chiamata per il restart, va in timeout applicativo, come se la sessione fosse scaduta.

        <ajax_response_xml_root>
        <IF_ERRORSTR>SessionTimeout</IF_ERRORSTR>
        <IF_ERRORPARAM>SUCC</IF_ERRORPARAM>
        <IF_ERRORTYPE>SUCC</IF_ERRORTYPE>
        </ajax_response_xml_root>

        • Closing connection

        Eppure mi sono assicurato di portarmi dietro i cookie di sessione!
        Credo di essermi un po' arrugginito 🙂 provo a dare un'occhiata al repo che hai linkato.
        Grazie ancora!

        Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
        P.I. IT16712091004 - info@fibraclick.it

        ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile