Forum

Forum

Notifications
Clear all

HTTP input

47 Posts
12 Users
2 Likes
4,989 Views
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

Dobre rano panove,

ackoli se dobre bavim nad idiotismes nejakeho Ondreje vpodstate me to netrapi, tak jako to, ze nemuzu zaboha rozchodit vycitani stringu...

pro zjednoduseni jsem to rozjel na internim webserveru pro zkoumani, proc to sakra nejede...

1. web server:  http://interni_ip/test.txt pro HTTP INPUT v loxone

2. nactena stranka vypada takto: {"status":true,"data":238}

3. a ja potrebuji vycist data 238

4. coz jsem udelal uplne "jednoduse" takto: "data":/v

nicmene result je stale nula. Zkousel jsem retezec zjednodusit (odebrat dvojtecky, uvozovky atd...) a pak to jednou jede a jednou ne... prijde mi ze dvojtecka to zmrvi urcite

nevite co stim?

DIKY!

Kuba

 

 

 


   
Dáda reacted
Quote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3062
 

Ja sem kdysi presne tohle resil, kdyz sem delal ten mustek na Quida. Chtel sem to parsovat pres HTTP vstupy (pak i TCP/UDP), ale chovalo se to dost nahodne.

Co jsem vysledoval, tak obcas se stazeny/obdrzeny retezec zpracoval jako jeden radek, obcas jako dva radky. Hodne zlobil znak novy radek \n, ten to zpusoboval.

Zkus mrknout, jeslti v tom test.txt neni zakonceno pomoci \n, nebo \r\n, atd.

Pokud do test.txt das jen hodnotu "238" a nactes to bez parseru naprimo, tak to tu hodnotu vraci?

Jo a jeste mam pocit, ze se ty vstupy obcas cachovaly, takze vracely stara data. To byla taky lahudka. S tim bojovoval tusim i @Kolda

 


   
ReplyQuote
 wex
(@wex)
Active Member
Joined: 7 years ago
Posts: 18
 

Nemělo by být před tím v zpětné lomítko místo normálního?


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

sorry, jasne lomitko musi byt zpetne...

takze jsem zkusil znovu krok po kroku a problem je dvojtecka pred cislem. na parsovani prikazu to nema vliv.

funguje: "data":\v tak i "data"\v

ale data vycita jen kdyz je tam: {"status":true,"data"238}

ve chvili kdy pridat dvojtecku pred cislo tak je loxone v prdeli 🙁

coz je nahovno, protoze samozrejme chci vycitat neco z internetoveho API, kde si to jaksi nezmenim


   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3062
 

neni dvojtecka nejaky zastupny znak pro neco v tom parseru?

co kdyz das "data"\:\v ?


   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3062
 

pripadne pak jeste ty uvozovky, takze zkusiut neco jako \"data\"\:\v treba ?


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

 \"data\"\:\v  - toto neudela vubec nic a zustanou tam data z cache... WTF?

nicmene neco to udelalo... kdyz jse ted vratil k puvodni formuly: "data":\v tak to zacalo fungovat...... WTFFFF?

ta dvojtecka nema problem v nastaveni parseru, ta dvojtecka ma problem ve zdrojove strance...

zacinam premyslet nad tim, jeslti neni problem v copy&paste ruznych znaku, ktere se pak tvari obcas "jinak" nez vypadaji


   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3062
 

no, to je totiz problem te cache, ze ona nejakou dobu vraci puvodni hodnoty. Takze ty vlastne nikdy nezjistis, jestli ten novej parsovaci vzorec je ok nebo ne 😉

Uz si zacinam vzpominat, proc jsem se na to tenkrat vykaslal a radsi si to napsal cele sam 😉


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

no je to fakt divny, protoze u cisteho stringu ta cache nic nekazi, ale jakmile je to slozitejsi tak se to chova divne... takze ja dycky na testovani menim i to cislo abych videl, ze se to fakt meni 🙂

no nic, budu zkouset dal hned vedle hrani si s xiaomi :)) hehe


   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

tak jsem si ten jednoduchej parser napsat v ASPX abych mel cista data pro loxone, ale ono to stejne nejede... nejede uz ani vycitani z txt...

je to UPLNE mimo, nepomuze ani prevytvoreni HTTP INPUTU v loxonu, takze cache v tom nemuze hrat roli 🙂

jsme smutnej


   
ReplyQuote
 L
(@l)
Famed Member Admin
Joined: 9 years ago
Posts: 3062
 

Welcome to Loxone hell...... ;-(


   
ReplyQuote
Felda
(@felda)
Eminent Member
Joined: 7 years ago
Posts: 37
 

Používám něco podobného, kdy vyčítám hodnotu z txt souboru, který mi vrací web server nějakého ESPčka s připojenými teploměry (adresa http://IPadr/data.txt).

V texťáku je je více řádků, co čidlo teploty to řádek.
Jeden z řádků je: Bazen03-solarOUT=34.628 (nemám to teď před sebou, je to pouze část řádku)

V Loxone configu používám Virtuální vstup HTTP příkazu.

V "Rozeznání příkazu" mám syntaxi: Bazen03-solarOUT=\v

A výsledek zobrazuji ve virtuálním statusu.

Vše funguje dobře, až na jeden malý detail. Pokud to zařízení není dostupné, vrací mi to poslední hodnotu. Ale to by šlo v LC jistě ještě nějak upravit, nedořešil jsem to.

02 čtení txt
01 čtení txt

   
ReplyQuote
elpaso
(@elpaso)
Prominent Member
Joined: 7 years ago
Posts: 829
Topic starter  

hm, to pouzivam/snazim se pouzivat uplne stejne 🙂 fungovalo vse az na tu dvojtecku, to uz je u vyvojaru z loxone, pry tam nasli chybu v kodu nebo co...

problem je, ze co jsem si stim hral mi to prestalo fungovat i pro TXT nebo ASPX v ramci mistni site 🙂

toto bych ocekaval, ze bude fungovat na 100%... takze jakmile se to jednou/2x/15x skobrtne jsem z toho spatnej


   
ReplyQuote
 ager
(@ager)
Estimable Member
Joined: 7 years ago
Posts: 146
 

Ahojte. Je nejaka rozumna a jednoducha cesta ako pri HTTP vstupe obist ten minimalny dotazovaci cyklys 10s prosim Vas? Potrebujem to mat hned a nie kontrolovat stav kazdych 10s!

Neviem ci sa to tu riesilo ale existuje nieco ako http converzia do udp kedze udp ide hned alebo cez co sa to da vyriesit prosim Vas?

inak povedne:

Je mozne "niecim" dotatovat zariadenie cez http a ked sa vrati odpoved, poslat to do MS cez UDP?
napriklad kazdu sekundu

Vdaka za kazdu radu...

This post was modified 2 years ago 2 times by ager

   
ReplyQuote
(@smotek7)
Member
Joined: 7 years ago
Posts: 1896
 

@L ty si sa dost natrapil s NodeRed 
riesime s @ager vycitanie z http stranky 
Zatial neovladame Node Red preto otazka 
Je mozne cez NR periodicky vycitat z http stranky hodnoty kazdu sekundu a posielat ich do MS cez UDP?

This post was modified 2 years ago by smotek7

   
ReplyQuote
Page 1 / 4
Share: