ZTE MC889A (DNA-versio)

  • Keskustelun aloittaja Keskustelun aloittaja TJ74
  • Aloitettu Aloitettu
Se lisäosa kyllä nakkaa pihalle, mut hallinnan pitäisi vastata normaalisti ellei ole just FWA-firmis. Tyhjentämällä tr069-config toimii normaalisti, ainakin itsellä jo toista kuukautta yhteyden uptime
 
Sen verran lähelle menee, että hyödynnetään samaa threadia. ZTE on julkaissut tietyille markkinoille uuden MC889(A) Pro -version, jossa on ainakin tehokkaampi antennivahvistus ja kiinnitysmekanismi muuttunut helpottamaan suuntaamista. Saa nähdä, tuleeko Suomen markkinoille saataville:


889 ja Pro vierekkäin, kokoero on huomattava.

1726511525698.png
 
MC889A_DNAY_B13_FWA


Onko tähän ohjeita?
setTR069Config kun POSTaa hallinnasta kikkailen tyhjäksi niin katoo ne tiedot. On tuohon kans python-pala, mut en oo korjannu siihen paria juttua ja voi vaatia koodin läpikäyntiä;

Käyttö on tr069.py <purkin ip, 192.168.8.1> <käytäjänimi, admin> <salasana, 1234> --login multi

Koodi:
#!/bin/python3

import requests
from requests.exceptions import RequestException
import hashlib
from datetime import datetime
import urllib.parse
import json
import sys
import time
import urllib3
#from http.server import BaseHTTPRequestHandler, HTTPServer
import argparse

parser = argparse.ArgumentParser("ZTE tr069 tool")
parser.add_argument("ip", help="Router ip address")
parser.add_argument("username", help="Router username", default="admin")
parser.add_argument("password", help="Router password")
parser.add_argument("--login", help="Login method (multi, single)", default="single")
args = parser.parse_args()

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

s = requests.Session()

class zteRouter:

    def __init__(self, ip, username, password, login):
        self.login = login
        self.ip = ip
        self.protocol = "http"  # default to http
        self.username = username
        self.password = password
        self.try_set_protocol()
        self.referer = f"{self.protocol}://{self.ip}/"

    def try_set_protocol(self):
        protocols = ["http", "https"]
        for protocol in protocols:
            url = f"{protocol}://{self.ip}"
            try:
                response = requests.get(url, timeout=5, verify=False)
                if response.ok:
                    self.protocol = protocol
                    # print(f"{self.ip} is accessible via {protocol}")
                    return
            except RequestException:
                pass  # If RequestException occurs, try the next protocol
        # print(f"Could not determine the protocol for {self.ip}")

    def hash(self, str):
        return hashlib.sha256(str.encode()).hexdigest()

    def get_LD(self):
        header = {"Referer": self.referer}
        payload = "isTest=false&cmd=LD"
        r = s.get(self.referer + f"goform/goform_get_cmd_process?{payload}&_=", headers=header, data=payload, verify=False)
        return r.json()["LD"].upper()

    def getVersion(self):
        header = {"Referer": self.referer}
        payload = "isTest=false&cmd=wa_inner_version"
        r = s.get(self.referer + f"goform/goform_get_cmd_process?{payload}", headers=header, data=payload, verify=False)
        return r.json()["wa_inner_version"]

    def get_AD(self):
        def md5(s):
            m = hashlib.md5()
            m.update(s.encode("utf-8"))
            return m.hexdigest()

        def sha256(s):
            m = hashlib.sha256()
            m.update(s.encode("utf-8"))
            return m.hexdigest()  # no .upper() to match whatever mc7010 had
            #return m.hexdigest().upper()  # .upper() to match your example hash

        wa_inner_version = self.getVersion()
        hash_function = sha256 # set depending on device, MC7010 md5, MC889 sha256?
        cr_version = ""  # is empty, is printed on getInfos

        a = hash_function(wa_inner_version + cr_version)

        header = {"Referer": self.referer}
        rd_response = s.get(self.referer + "goform/goform_get_cmd_process?isTest=false&cmd=RD", headers=header, verify=False)

        rd_json = rd_response.json()
        u = rd_json.get("RD", "")

        result = hash_function(a + u)  # Use hash_function here as well
        print("result (hash of a + u):", result)  # Debug print

        return result

    def getCookie(self, username, password, LD, login):
        header = {"Referer": self.referer}
        hashPassword = self.hash(password).upper()
        ztePass = self.hash(hashPassword + LD).upper()

        if login == "multi":
            payload = {
                'isTest': 'false',
                'goformId': 'LOGIN_MULTI_USER',
                'password': ztePass,
                'user': username
            }
        else:
            payload = {
                'isTest': 'false',
                'goformId': 'LOGIN',
                'password': ztePass,
            }

        r = s.post(self.referer + "goform/goform_set_cmd_process", headers=header, data=payload, verify=False)
        return "stok=" + r.cookies["stok"].strip('\"')

    def getTRInfo(self):
        ip = self.ip
        cookie = self.getCookie(username=self.username, password=self.password, LD=self.get_LD(), login=self.login)
        #cmd_url = f"{self.protocol}://{self.ip}/goform/goform_get_cmd_process?multi_data=1&isTest=false&cmd=wa_inner_version%2Clte_rssi%2CZ5g_rssi%2Clte_rsrp%2CZ5g_rsrp%2Clte_rsrq%2CZ5g_rsrq%2Clte_snr%2CZ5g_SINR%2Csignalbar%2Ccell_id%2Cnr5g_action_band%2Ccell_id%2Cnetwork_provider%2Cmonthly_tx_bytes%2Cmonthly_rx_bytes%2Crealtime_tx_bytes%2Crealtime_rx_bytes%2Crealtime_tx_thrpt%2Crealtime_rx_thrpt%2Cwan_ipaddr%2Cwan_apn"
        cmd_url = f"{self.protocol}://{self.ip}/goform/goform_get_cmd_process?multi_data=1&isTest=false&cmd=cr_version%2Ctr069_ServerURL%2Ctr069_CPEPortNo%2Ctr069_ServerUsername%2Ctr069_ServerPassword%2Ctr069_ConnectionRequestUname%2Ctr069_ConnectionRequestPassword%2Cwan_ipaddr%2Ctr069_PeriodicInformEnable%2Ctr069_PeriodicInformInterval%2Ctr069_CertEnable%2Ctr069_DataModule%2Ctr069_Webui_DataModuleSupport"

        headers = {
            "Host": ip,
            "Referer": f"{self.referer}index.html",
            "Cookie": f"{cookie}"
        }

        response = s.get(cmd_url, headers=headers, verify=False)
        return response.text

    def setTRInfo(self):
        ip = self.ip
        #cookie = self.getCookie(username=self.username, password=self.password, LD=self.get_LD())
        cookie = self.getCookie(username=self.username, password=self.password, LD=self.get_LD(), login=self.login)

        headers = {
            "Host": ip,
            "Referer": f"{self.referer}index.html",
            "Cookie": f"{cookie}"
        }

        payload = {
            'isTest': 'false',
            'goformId': 'setTR069Config',
            'AD': self.get_AD(),
            "tr069_ServerURL": "https://ltm.mdna.fi:7548/tr069/ServiceHandle",
            "tr069_CPEPortNo": "",
            "tr069_ServerUsername": "",
            "tr069_ServerPassword": "",
            "tr069_ConnectionRequestUname": "",
            "tr069_ConnectionRequestPassword": "",
            "tr069_PeriodicInformEnable": "1",
            "tr069_PeriodicInformInterval": "7200",
            "tr069_CertEnable": "1",
            "tr069_DataModule": "",
            "tr069_Webui_DataModuleSupport": ""
        }
        response = s.post(self.referer + "goform/goform_set_cmd_process", headers=headers, data=payload, verify=False)
        return response.text

zteInstance = zteRouter(args.ip, args.username, args.password, args.login)

#class serveInfos():
#    gatheredJson = json.loads(zteInstance.getTRInfo())
#    print(json.dumps(gatheredJson))

class setInfos():
    gatheredJson = json.loads(zteInstance.getTRInfo())
    print(json.dumps(gatheredJson))
    print(zteInstance.setTRInfo())

if __name__ == "__main__":
    setInfos()
 
Pitää nollata ja heti ajaa perille, muuten kerkee mennä lukkoon kun purkki soittaa kotiin. Itse testailin tuon perille vanhentuneella SIMillä jolla se ei päässyt verkkoon.
 
@Richard ok, pitääpä kokeilla kunhan pääsen kotiin. Saisikohan tuonne tr069 configgiin työnnettyä DNA:n palvelimen ja tiedot? Jos pääsisi DNA päivitysten piiriin sillä? :think:
 
Tilasin tuollaisen MC889A Pron nyt sitten 7010:n korvaajaksi (bigbox.fi:stä, varmaan tuovat sen juuri jostain Puolasta ensin Baltiaan ja sitten lähettävät tänne). Toivottavasti softa ei ole aivan yhtä kuraa...

Tämän perusteella pitäisi olla ihan suht kuranttia kamaa PL softa ainakin taajuuksien osalta myös Suomen verkkoihin.

Jos mahdollista, laita vähän vertailua signaaliarvojen ja nopeuksien osalta MC7010 ja MC889 Pro:n välillä.
 
Tilasin tuollaisen MC889A Pron nyt sitten 7010:n korvaajaksi (bigbox.fi:stä, varmaan tuovat sen juuri jostain Puolasta ensin Baltiaan ja sitten lähettävät tänne). Toivottavasti softa ei ole aivan yhtä kuraa...
Olen testannut Puolalaista MC7010 kotimaisissa 5G verkoissa muutama vuosi sitten ja 5G ei mennyt päälle.
 
@Richard Modasin vähän tuota sinun Python scriptiä. Mielenkiintoista on se, että kun kirjoitat mitään tr069 asetuksia, niin se nollaa kaikki nuo asetukset.


Tuolta löytyy uusin versio. Käyttö menee:
Koodi:
python3 tr069.py
Valinnaisia argumentteja on <ip> <username> <password> --settr069 "filename"

Jos ei laita mitään, niin käyttää 192.168.8.1 admin 1234

Tämä tallentaa tr069.json tiedostoon tr069 asetukset, jos ei käytä --settr069 argumenttia.

Olisiko joku DNA:n omistava voinut ajaa tuon scriptin ja laittaa mulle vaikka YV:nä nuo tr069 tiedot, mitä tulostuu konsoliin ja tiedostoon?
 
Juu. Tiedän, mutta olisin koittanut laittaa nuo DNA:n TR069 asetukset omaan laitteeseen, niin ehkä olisi päässyt DNA:n päivitysten piiriin.
Tässä laitoit, että modeemissasi on DNA:n kiinteän asennuksen firmis, eli se saa kyllä DNA:n päivitysasetukset resetin jälkeen. Ne tulevat laitteen tiedostojärjestelmästä (firmwarelta), eikä sim-kortilta. B13 on uusin firmis tälle ja ei-FWA laitteelle.
MC889A_DNAY_B13_FWA
 
@Richard Modasin vähän tuota sinun Python scriptiä. Mielenkiintoista on se, että kun kirjoitat mitään tr069 asetuksia, niin se nollaa kaikki nuo asetukset.


Tuolta löytyy uusin versio. Käyttö menee:
Koodi:
python3 tr069.py
Valinnaisia argumentteja on <ip> <username> <password> --settr069 "filename"

Jos ei laita mitään, niin käyttää 192.168.8.1 admin 1234

Tämä tallentaa tr069.json tiedostoon tr069 asetukset, jos ei käytä --settr069 argumenttia.

Olisiko joku DNA:n omistava voinut ajaa tuon scriptin ja laittaa mulle vaikka YV:nä nuo tr069 tiedot, mitä tulostuu konsoliin ja tiedostoon?

Mahtava homma, iteltä kyl löytyy tallesta noi arvot mut kuten mainittua, niin resetillä pitäis tulla takas kun ovat firmware-imagessa asetettuna.

Raapustelin tuon oman exporterin perusteella johon tein viimein pieniä peruspäivityksiä eilen. Löytyypi täältä kiinnostuneille: zte-exporter Tuo tosiaan toimii myös MC7010 ja muilla ZTE:n romuilla. Pitäis touhuta tuohon vielä se parempi signaalitasohimmeli josta sain joskus SpiidWulfilta niksit mut ajanpuute on estäny paneutumasta kunnolla.

Päivitin tosiaan myös 5G SA-aikaan Elisan verkossa ja toimiihan tuo. Kombona n28_n1_n78 jolla laukkaa n. 500~950 Mbps alas, mutta kaista ylös jää harmillisen huonoksi, n. 30 Mbps pääkaistan vaihdosta huolimatta, testasin ottamalla raksin pois jokaiselta ykstellen & speedtest.

E: SA-moodissa exporter plottaa jokaisen taajuden erikseen.
 
Viimeksi muokattu:
Onkos jossain jo kerrottu kun en nyt hauilla löytänyt tuon mukana tulevan injectorin porttinopeuksia? Kun tuo modeemi kuitenki tukee 2,5Gb niin tukeekohan myös injektori?
 
Ilmeisesti tällä pitäisi toimia B20+B8 ja B8+B28 combot SYV alueella? Kaikki nuo taajuudet löytyy tukiasemasta, mutta saa B8 vaan käyttöön jos sen laittaa päälle. B20 jos aktivoi niin ei yhdistä B8 ollenkaan sitten.
 
Ilmeisesti tällä pitäisi toimia B20+B8 ja B8+B28 combot SYV alueella? Kaikki nuo taajuudet löytyy tukiasemasta, mutta saa B8 vaan käyttöön jos sen laittaa päälle. B20 jos aktivoi niin ei yhdistä B8 ollenkaan sitten.
Tässä kannattaa myös huomioida, että osassa SYV tolpista, joissa B20, B8, B28 on käytössä, ei ole low band comboja aktivoitu.

Tätä on puitu SYV ketjussa.
Tolpan low band combojen aktiivisuuden voi todentaa vain sellaisella päätelaitteella, jolla varmistetusti ko. kombot toimivat.

B8 toimii, mutta ei missään CA combossa.
Testattu MR5200 Varkaus/Pieksämäki, vika ei laitteessa vaan SYV verkossa CA:ta ei ole täällä ko. taajuudelle aktivoitu.

Laitoin kysymystä eteenpäin, toivotaan selventävää lausuntoa alkuviikosta.

Tuliko tähän mitään, vai katosiko lomaposteihin?

Kyllä tuosta hieman keskustelua käytiin statuksella sisäinen.

Tästä voimme kuitenkin päätellä, että tosiaan b8 kombot ei ainakaan osassa SYV:iä ole päällä, mutta syitä voimme vain arvailla.

Toimijat ovat ainakin tietoisia asiasta ja siitä mitä täällä on kirjoitettu. Kannattaa tarkkailla miten tilanne kehittyy.
 
Viimeksi muokattu:
Onkos jossain jo kerrottu kun en nyt hauilla löytänyt tuon mukana tulevan injectorin porttinopeuksia? Kun tuo modeemi kuitenki tukee 2,5Gb niin tukeekohan myös injektori?
Mukana tulevan (tosin omani on MC7010) injektorin läpi menee kyllä tuo nopeus.
 
Sitten toinen kysymys..
Olen tässä ihmetellyt kun reititin ilmoittelee 1% packet lossia, ja näin on ollut koko ajan että pomppii. Onkos muilla immeisillä samaa?
Uptime on ok, käynnistin itse laitteen viikolla uudelleen.
Liittymä on DNA KOTI 5G 400M.

Screenshot_2024-10-06-16-41-40-20_93753c020959de0ef194d6b95604fb93.jpg
 
Viimeksi muokattu:
Mulla on ollut ZTE MC7010 Elisalla B1 B3 B2 ja N28 alueella. (CA B1+B3+N28)

Nyt kun täällä on DNA:n 5G myös B1 B3 B8 B20 ja N28 niin tilasin myös MC889A:n.

Kun tuolla vanhalla MC7010 ja Elisalla ei ole saanut kun n. 200/100 jatkuvaa vaikka tukiasema on 400m päässä (tukiaseman antennien suunnat ei ole minua kohti vaikka lähes näköyhteys puiden takaa on).

Mitäs tällä nyt pitäisi tolla DNA 1000M liittymällä saada nopeuksiksi? Myyjällä oli epäselvää että sheipataanko sitä up kaistaa johonkin 50M 100M ja sitten lopulta löytyi joko löyhä lauseke että 10% DL:sta. Eli onko tämä nyt kuitenkin oikea liittymä vai pitääkö jotain muuta pyytää että saa sitä vauhtia maksimit.

sivukysymys, oliks Elisalla muuten vielä joku 5G+ SA mahdollisuus jolla sais pienemmillä pingeillä?
 
Viimeksi muokattu:
Mitäs tällä nyt pitäisi tolla DNA 1000M liittymällä saada nopeuksiksi? Myyjällä oli epäselvää että sheipataanko sitä up kaistaa johonkin 50M 100M ja sitten lopulta löytyi joko löyhä lauseke että 10% DL:sta. Eli onko tämä nyt kuitenkin oikea liittymä vai pitääkö jotain muuta pyytää että saa sitä vauhtia maksimit.
100M on maksimi upload mobiililaajakaistassa.
Tiedot löytyvät ehdoista ja linkki niihin on TÄSSÄ, taulukko 2.
 
0M on maksimi upload mobiililaajakaistassa.
Tiedot löytyvät ehdoista ja linkki niihin o
ok, onko nuo osan 1800MBps/169Mbps tyyliset sitten millä operaattorilla tai liittymällä ajettuja jos tuolla DNA 1000M tuo on max 1000M/100M sheipattu 5G:llä ja 600M/50M 4G:llä?
 
Mitäs tällä nyt pitäisi tolla DNA 1000M liittymällä saada nopeuksiksi? Myyjällä oli epäselvää että sheipataanko sitä up kaistaa johonkin 50M 100M ja sitten lopulta löytyi joko löyhä lauseke että 10% DL:sta. Eli onko tämä nyt kuitenkin oikea liittymä vai pitääkö jotain muuta pyytää että saa sitä vauhtia maksimit.

Noilla taajuuksilla maksimi on 600Mbit/s ja todellinen nopeus 450-550Mbit/s, jos signaalitasot hyvät ja tukiasema ei kovin ruuhkainen. Ilman B7 ja/tai N78 taajuuksia ei 1000Mbit/s nopeuksiin pääse. Eli voi huoletta ottaa halvemman liittymän. Tämän on myyjä myös tiennyt kuuluvuuskartassaan, eli aika epäeettistä on touhu taas ollut.

DNA:n upload on 100Mbit/s, mutta rajoitin on löyhä, eli voi päästä 110-120Mbit/s, joku oli tainnut saada jopa 150Mbit/s uploadia.
 
Viimeksi muokattu:
Noilla taajuuksilla maksimi on 600Mbit/s ja todellinen nopeus 450-550Mbit/s, jos signaalitasot hyvät ja tukiasema ei kovin ruuhkainen. Ilman B7 ja/tai N78 taajuuksia ei 1000Mbit/s nopeuksiin pääse. Eli voi huoletta ottaa halvemman liittymän. Tämän on myyjä myös tiennyt kuuluvuuskartassaan, eli aika epäeettistä on touhu taas ollut.

DNA:n upload on 100Mbit/s, mutta rajoitin on löyhä, eli voi päästä 110-120Mbit/s, joku oli tainnut saada jopa 150Mbit/s uploadia.
Hyvin pääsee 160-170Mbps DNA:n 400M 5G liittymällä. Mutta tarvinnee N78 bandin siihen, itselläni on 2x B7+2x N78 käytössä. Testailen illasta mitä lähetysnopeuksia saa noilla mainituilla bandeilla, tolpasta löytyy nekin ja on näköyhteys.

16908951465.png
 
Hyvin pääsee 160-170Mbps DNA:n 400M 5G liittymällä. Mutta tarvinnee N78 bandin siihen, itselläni on 2x B7+2x N78 käytössä. Testailen illasta mitä lähetysnopeuksia saa noilla mainituilla bandeilla, tolpasta löytyy nekin ja on näköyhteys.

16908951465.png

Tämä viittaisi siihen, että uploadista on poistettu rajoitin muistakin, kuin 1000Mbit liittymistä, mikä on todella hyvä juttu.
 
Hyvin pääsee 160-170Mbps DNA:n 400M 5G liittymällä. Mutta tarvinnee N78 bandin siihen, itselläni on 2x B7+2x N78 käytössä. Testailen illasta mitä lähetysnopeuksia saa noilla mainituilla bandeilla, tolpasta löytyy nekin ja on näköyhteys.
Etukäteen jo kiittäen, ei tarvitse välttämättä kaikkia komboja käydä läpi kunhan saisi jonkinlaisen hyvän kuvan että mitä lukituksia ja bandejä kannattaa käyttää ja mitä sieltä olisi odotettavissa.

Onko nyt siis niin että jos asema 400m päässä näköyhteydellä ja vaikka yksikään 3:sta B3:n keilasta ei suoraan osu omaan tukiasema mastoon, niin silti Tästä olisi järkevä joku B1+ 2xB3 + n28 tyylinen, näin olen ymmärtänyt? Miten tuon saa varmistettua että ottaako se 1xB3 tai 2xB3? Saako vakiokäyttöliittymällä vai pitääkö homeassistant + skriptit heti lisätä HA:han tai jollain javalla / pythonilla auttaa?
 
Etukäteen jo kiittäen, ei tarvitse välttämättä kaikkia komboja käydä läpi kunhan saisi jonkinlaisen hyvän kuvan että mitä lukituksia ja bandejä kannattaa käyttää ja mitä sieltä olisi odotettavissa.

Onko nyt siis niin että jos asema 400m päässä näköyhteydellä ja vaikka yksikään 3:sta B3:n keilasta ei suoraan osu omaan tukiasema mastoon, niin silti Tästä olisi järkevä joku B1+ 2xB3 + n28 tyylinen, näin olen ymmärtänyt? Miten tuon saa varmistettua että ottaako se 1xB3 tai 2xB3? Saako vakiokäyttöliittymällä vai pitääkö homeassistant + skriptit heti lisätä HA:han tai jollain javalla / pythonilla auttaa?

B1+2xB3+B20 on nopein down ja hidas upload, koska ko päätelaite ei näillä saa upload CA:ta päälle.

B1+2xB3+n28 hitaampi down ja nopeampi upload, koska n28 on vain 10MHz kaistanleveydellä.

Yllä olevat sillä oletuksella, että joku taajuus ei ole erityisen ruuhkainen, eli kannattaa käytännössä testata.

Modeemin käyttöliittymästä näkee suoraan yhdistetyt taajuudet ja tämän threadin alusta löytyy esimerkkejä ja mittaustuloksia sekä muita vinkkejä yllä oleviin kysymyksiin.
 
Mikä tuo uplaod CA on? Käyttääkö siis useampaa 4G taajuutta yhtäaikaa lähetykseen vai 4G + 5G yhdessä? Löytyyköhän mahdollisesti mc801a:sta tuollaista ominaisuutta vai koskeeko vain uudempia malleja.
Molemmat ovat mahdollisia. On taas modeemiriippuvaista, mitkä ovat tuettuna. Täältä voi tarkastella tuetut yhdistelmät: ZTE MC801A (MC801A) | 4G/5G Bands & Combos. Huawei tukee yleisesti noita 4G comboja uploadissa paremmin, mitä ZTE.
 

Statistiikka

Viestiketjuista
256 198
Viestejä
4 451 099
Jäsenet
73 707
Uusin jäsen
vartokal

Hinta.fi

Back
Ylös Bottom