blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
PHP, Arduino programátor
deadawp



Termostat - (ne)použiteľnosť webaplikácie v Google Chrome
pridal deadawp 22.1. 2021 o 17:48



Projekt izbového termostatu na platforme Arduino s Ethernetom (Wiznet W5100 / W5500), respektíve Espressif WiFi platformách ESP8266 a ESP32 je vo verzii jadra 1.0.2 (1.0.2.X). Pri vývoji sa kladie dôraz nato, aby bol vizuál a funkcie webaplikácie termostatu pre jeho použitie z pohľadu používateľa identické na všetkých platformách. Z toho dôvodu museli byť niektoré dostupné implementačné nástroje vynechané (napríklad Async Webserver pre ESP platformy), aby bola funkcionalita identická, ako u Arduina.

Ďalšie doplnkové funkcie súvisiace s prevádzkou sa môžu líšiť podľa použitej platformy a funkcií, ktoré implementačne ponúka (rôzne metódy vstupu, napríklad cez Amazon Alexa, tlačilový vstup, UDP callback, možnosť OTA aktualizácii v LAN sieti a iné). Jednou z identických HTML elementov je aj formulár, ktorý umožňuje zapísať nové riadiace údaje cez input polia.

Aby bolo ovládanie jednoduché aj pre laikov a dostali sa priamo k číselnému vstupu pre zadanie riadiacej teploty a hysterézy, obsahovali input polia dátový typ číslo, čo umožnilo otvorenie číselnej klávesnice na smartfónoch a tabletoch. Každé pole obsahovalo možnú minimálnou a maximálnou hodnotu + krok o ktorý sa dala hodnota posúvať. Tieto hodnoty boli zadané prostredníctvom atribútov, ktoré element input podporuje.

Problém nastal vo fáze testovania na smartfónoch s operačným systémom Android.  Vstavaný prehliadač Chrome reaguje na client-side na dátový typ (number) použitý v elementoch input tak, že zobrazí číselnú klávesnicu s celými číslami od 0 po 9 bez možnosti vložiť čiarku, respektíve bodku pre oddelenie celého čísla od desatinného. Pri kliknutí na možnosť Ďalej sa preskočí na ďalší input, respektíve sa odošle HTML formulár. Jedinou možnosťou je označiť existujúcu hodnotu (aktuálne platnú) v inpute a prepísať samostatne časť pred a za čiarkou (za predpokladu, že je číslo s desatinnou čiarkou, v prípade, že nie, nie je možné zmeniť desatinné číslo).

Pri pátraní, čo chybu spôsobuje som využil nástroj CANIUSE, ktorý umožňuje overiť akýkoľvek HTML element a jeho atribút pre všetky dostupné prehliadače cieľovej platformy. Z testu sa preukázalo, že prehliadač Google Chrome pre Android nepodporuje šípky pre možnosť posúvania hodnoty o preddefinovaný krok zo step atribútu a taktiež nereaguje na step, min, alebo max hodnotu použitú v atribúte. Najnovší prehliadač Google Chrome pre Android (verzia 87) je tak pre prevádzku termostatu s prispôsobením pre používateľov s nízkou technickou znalosťou nepoužiteľný, alebo ťažko použiteľný... 


Iné dostupné prehliadače umožňujú zobrazenie šípok, respektíve na klávesnici ukážu aj desatinnú čiarku pre možnosť zadania desatinného čísla. Menej zdatní používatelia tak dokážu plnohodnotne izbový termostat v aktuálnej verzii ovládať cez prehliadač Safari prostredníctvom iPhonu, alebo po inštalácii prehliadača Firefox do ich Android zariadenia. Prehliadač Opera, QQ, vstavaný Android prehliadač majú rovnaký problém s používateľským vstupom.

Z toho dôvodu release verzia jadra 1.3.X. prinesie input type text, kde je možné vyhľadať na klávesnici okrem čísel a písmen aj bodky, čiarky, ktoré umožnia zadanie čísla s desatinnou čiarkou. Nakoľko je používateľský vstup pracný, používateľ nestihne vstup dokončiť pred uplynutím lehoty 10 sekúnd, ktorá sa pre refresh v aplikácii využíva. Z toho dôvodu sa predĺži refresh webovej stránky aplikácie termostatu na každých 20, respektíve 30 sekúnd na základe reálnych výsledkov testovania.

Prípadne, aby sa refresh ani vykonávať nemusel (aby sa nezatvorilo okno pre používateľský vstup), bude možno vyexportovaná do release verzii aj verzia s Async Webserverom, ktorý bude stránku aktualizovať cez AJAX. K WiFi platforme ESP32 nebol zatiaľ žiaden firmvér publikovaný, bude vychádzať z firmvéru pre ESP8266 a rovnako sa bude do cieľovej platformy nahrávať cez ESPTOOL. Prvý firmvér výjde až po finálnej verzii firmvéru pre ESP8266.

Informácie k projektu Izbový termostat - Ethernet: 
https://martinius96.github.io/termostat-ethernet/

Github repozitár projektu Ethernet termostat: 
https://github.com/martinius96/termostat-ethernet/

Informácie k projektu Izbový termostat - WiFi:
https://martinius96.github.io/WiFi-termostat/

Github repozitár projektu WiFi termostat: 
https://github.com/martinius96/WiFi-termostat/



Prístupov 2326
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Práca s obrázkami - MATLAB
[ 19.7.2021] (príspevkov 1)
Flash Encryption a jeho implementácia v ...
[ 18.7.2021] (príspevkov 0)
Secure Boot V1 a jeho implementácia v ES...
[ 13.7.2021] (príspevkov 0)
Senzor Bosch BME280 v prostredí ESP-IDF
[ 8.7.2021] (príspevkov 0)
Podpora ESP32 do projektu WiFi termostat
[ 1.7.2021] (príspevkov 0)
Beamforming vizualizácia - MATLAB
[ 29.6.2021] (príspevkov 0)
Výroba DPS - AISLER - RFID DOMINATOR
[ 18.6.2021] (príspevkov 0)
Podpora ESP-IDF do projektu Hladinomer
[ 4.6.2021] (príspevkov 0)
WiFi termostat - Rozšírenie o manuálny r...
[ 28.3.2021] (príspevkov 0)
RFID DOMINATOR - stopky pre Airsoft | Pa...
[ 14.3.2021] (príspevkov 0)