O2 začalo prodávat 3. generaci svého supermodemu, přidává mesh

Sdílet

O2 Smart Box 3. generace Autor: O2
O2 představilo třetí generaci svého Smart Boxu, vlastního Wi-Fi routeru s DSL jménem Smart Box.

Původní Smart Box z roku 2017 umožňoval připojení DSL do rychlosti 250 Mb/s a Wi-Fi 5. Druhá generace s novějším čipem od Broadcomu vylepšila hlavně bezdrátovou část, kdy nabídla Wi-Fi 6, ale také přinesla vectoring.

Nová generace je menší a má zaoblené tělo. Navrhoval ho opět designér Zoltán Matuška. Nejvýraznější změnou je zřejmě přidání funkce mesh. K tomu budete potřebovat další modul, který vypadá skoro stejně, bude se jmenovat Booster a přijde do prodeje na podzim.

O2 Smart Box 3. generace

 Smart Box

Autor: O2

Mesh je obecně výborná funkce sloužící pro lepší pokrytí větší plochy, aniž by se zařízení muselo přepínat mezi více sítěmi. Nabízejí jej všichni výrobci síťových zařízení pro domácnosti.

O2 vylepšilo svůj supermodem Smart Box o rychlou Wi-Fi 6 a pětiletou záruku Přečtěte si také:

O2 vylepšilo svůj supermodem Smart Box o rychlou Wi-Fi 6 a pětiletou záruku

O2 zmiňuje funkce Wi-Fi 6 (802.11ax, 4 vnitřní antény), samočinné přepínání mezi 2,4 a 5 GHz, WPA3, rodičovská kontrola a připravenost pro mesh. Obsahuje rychlý port USB 3.0. Připojit jej lze k přípojce DSL i optické, případně i přes Terminátor od Cetinu.

O2 Smart Box 3. generace

 Mobilní aplikace

Autor: O2

Cena nové generace zůstala stejná, 5940 Kč jednorázově, nebo 99 Kč měsíčně na splátky. Případný Booster pak cenu navýší. Nevýhodou také zůstává funkčnost pouze s internetem od O2. Pokud byste přešli na jiného poskytovatele, budete muset změnit modem.

CIF25

Integrovaný displej Smart Boxu zobrazuje čas, teplotu, počasí, a dokonce i kdo má svátek. Navíc, vzhled si zákazníci mohou nastavit v aplikaci Moje O2. „Je to první z několika zařízení v nové řadě, která budou podporovat technologii mesh“, popisuje ředitel mobilních služeb a inovací v O2 Roman Bacík. O2 chystá i verzi Smart Boxu pro připojení přes 5G.

Wi‑Fi specifikace

  • Podpora standardu: IEEE 802.11a/b/g/n/ac/ax
  • Podpora WPA2, OPEN, WPA3 a Enhanced OPEN
  • 4 vnitřní antény
  • Konfigurace antén: 2× 2:2 pro pásmo 2,4 GHz a 4× 4:4 pro pásmo 5 GHz
  • Současné vysílání pásem 2,4 GHz a 5 GHz – DBDC (Dual-Band Dual-Concurrent)
  • Standard IEEE 802.11ax (Wi‑Fi 6) pro pásmo 5 GHz
  • Standard IEEE 802.11ax (Wi‑Fi 6) pro pásmo 2,4 GHz
  • Rychlost Wi‑Fi 5 GHz rozhraní až 4,8 Gb/s
  • Rychlost Wi‑Fi 2,4 GHz rozhraní až 573 Mb/s

ADSL a VDSL

  • Podpora ADSL (G.992.1) Annex B, ADSL2+ (G.992.5) Annex B
  • Podpora VDSL2 (G.992.3) Profi ly: 8b, 12a, 17a, 35b
  • Podpora G.INP (G.998.4)
  • Podpora G.Vector (G.993.5)

WAN

  • Ethernet WAN – 1000Base-T, rychlosti 100 / 1 000 Mb/sHalf/Full duplex, auto MDI/MDI-X
  • 1× DSL – konektor RJ-11
  • 1× Ethernet WAN – konektor RJ-45

LAN

  • 2× 1000Base-T porty, autonegociace 10 / 100 / 1 000 Mb/sHalf/Full duplex, auto MDI/MDI-X
  • 2× Ethernet LAN – konektor RJ-45

USB

  • 1× USB 3.0 port
  • Typ A

LCD

  • 3,5" RGB
  • 320 × 480 pixelů

Tlačítka

  • Podsvícené hlavní tlačítko
  • Tlačítko pro reset

Napájecí zdroj

  • 12 V DC, 2 A

Fyzické údaje

  • Rozměry zařízení 71 × 190 × 206 mm
  • Hmotnost zařízení: 770 g
Má váš router USB port? Tady je 6 praktických využití, o kterých jste možná ani nevěděli Přečtěte si také:

Má váš router USB port? Tady je 6 praktických využití, o kterých jste možná ani nevěděli

zdroj: O2

Autor článku

Redaktor portálu Cnews.cz. Zaměřuje se na televizní témata, technologické zpravodajství, mobilní operátory a vědu. Příznivec kompaktních smartphonů. Profil autora →

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }