Diskuse Elektrika.cz

HYBRIDNÍ zóna => Technická podpora výrobce TECO Kolín radí odborníkům => Téma založeno: RadovanNemec 12.01.2021, 07:30



Název: Jak odesílat data přes JSON nebo XML z Arduina nebo ESP32 na Foxtrot?
Přispěvatel: RadovanNemec 12.01.2021, 07:30

Už někdo zkoušel odesílat data přes JSON nebo XML z Arduina nebo ESP32 na Foxtrot? Potřeboval bych poradit jak na to.


Název: Re: Jak odesílat data přes JSON nebo XML z Arduina nebo ESP32 na Foxtrot?
Přispěvatel: Miroslav Krhounek 16.02.2021, 12:07
Foxtrot nabizi TecoApi - je to prehledne zdokumentovane
Tzn. nastavite si promennou viditelnou pres tecoapi direktivou {PUBLIC_API} a pak je mozne ji cist/nastavovat pomoci JSONu pres internetove endpoity /tecoapi/getObject a dalsi metody setObject, putObject... musite mit teda jeste nastavene  jmeno s heslem pro TecoApi ve webmakru.
Pro komunikaci s TecoApi jsou dve standardni moznosti autorizace pres http; pro produkci se doporucuje "Digest Auth",  kde se neposilaji credentials otevrene.

TecoApi se vpodstate chova jako publikovane promenne pres direktivu {PUBLIC}.
Tzn. neni to klasicka "forma" nejakeho obecneho weboveho serveru kde napr. na zaklade hodnot v dotazu (zaslanem JSONU v body nebo promennych v querystringu) vytvarite "vlastni" odpoved. U TecoApi je odpovedi jen informace, jestli vse probehlo v poradku pripadne nejaka chyba.

Pokud byste chtel pri posilani url requestu neco provest a na zaklade toho odeslat specifickou odpoved, musite si to udelat "po svem" a vyuzit funkcni blok fbRecvFrom s odpovedi fbSendTo a mit prislusne nakonfigurovan e ETH_UNI rozhrani. Pak si ale musite http request parsovat sam. Tady pak pozor na zpracovavani delsich odpovedi, at to nejede v ramci jednoho cyklu a nezdruzuje vykonavani ostatniho kodu/programu.

Na strane Arduina (s ethernet shieldem) nebo ESP s integrovanou wifi si dejte neco vyhledat, existuje nespocet navodu, jak odeslat http request, resp. i vzorovych prikladu primo v Arduino IDE pokud si naimportujete ESP knihovnu.