Stránka 1 z 1

Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 27 lis 2019, 14:23
od sklipky
Cílem mého projektu je přečíst dvě hodnoty spotřebované energie z HTTP (z lokální sítě) a zapsat je do souboru. Viz přiložený obrázek.

Měl jsem v úmyslu použít Ethernet shield pro přístup k datům na síti a jejich uložení na SD kartu a později třeba i na NAS v LAN.
Další problém je, že pro přihlášení na lokální HTTP je potřeba zadat jméno a heslo.

Můj problém je hlavně, že nevím, jak tyto dvě čísla přečíst z HTTP rozhraní, zbytek už budu snad schopný dát dohromady.

Re: Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 27 lis 2019, 14:58
od martinius96
Čo je to za systém, nevidel som ešte podobný systém s takouto vizualizáciou.

Veľmi ľahko to nepôjde...
Môžeš čítať zdrojový kód stránky po riadkoch, zo správneho riadku následne urobiť substring s tvojou informáciou, avšak je to náročné na RAM-ku, ktorej má Arduino Uno len 2kB a taktiež je náročné určiť tej riadok. Šlo by to napríklad podľa classy.
Arduino s Ethernet shieldom nepodporuje HTTP autentizáciu, teda sa na stránku pravdepodobne nepripojíš.
ESP8266 / ESP32 podporuje HTTP autentizáciu s menom a heslom.
Najľahšie by bolo urobiť script napr v .php, ktorý by ti túto hodnotu,ktorú chceš načítať zaslal ako payload v odpovedi servera.

Re: Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 27 lis 2019, 15:01
od sklipky
Když to tak čtu, tak by bylo asi lehčí napsat nějaký kód v Cčku a mít ho spuštěnej na PC serveru v lokální síti. Nebylo by to tedy vůbec řešené pomocí Arduina.

Re: Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 28 lis 2019, 06:52
od pavel1tu
Pokud to chceš mít trvale funkční - tomuto se vyhni !
Jakýkoliv update toho WWW systému ti to položí.

Nepíšeš zásadní věc - jaký je to systém a jaká práva tam máš (co vše tam můžeš dělat a zjistit).

Ideální bude zjistit si kam si ty hodnoty ten systém ukládá, bude to nějaká databáze,
napsat si vlastní PHP kterým budeš v nějakém budeš tyto hodnoty vyčítat
a z arduina si jen zavoláš ten PHP - hodnoty tam budeš mít jak na talíři.
Toto je nejefektivnější způsob.

Každý jiný způsob = moc práce, možné problémy časem atd.

Re: Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 28 lis 2019, 07:02
od sklipky
Hádám, že součástí tepelného čerpadla bude nějaké PLC/mikrokontrolér, který je připojen na síť a prostřednictvím něj jsou hodnoty odesílány i na lokální webovou stránku + na cloud (stránka je přístupná i z internetu a statickou IP doma nemám).

Práva tam mám ke čtení + k zapínání a vypínaní ohřevu vody, topení, nastavování teplot a různých rozvrhů kdy se má a kdy se nemá topit/ohřívat voda.

Nelepší by bylo umět si ty hodnoty vyžádat třeba z elektroměrů, které jsou umístěné přímo na jednotlivých fázích přívodu, přímo ve vnitřní jednotce tepelného čerpadla. To je ale už nějaký zásah do instalace a nechci riskovat ztrátu záruky.



Pokud bych nedokázal tohle vše realizovat, tak je tu ještě možnost koupit a zapojit do rozvaděče další 3f elektroměr s rozhraním RS232 a udělat si vlastní systém. Ale to je minimálně dalších 5000 Kč za hardware a to se mi nechce, když ,,ta data,, již existují a jsou na lokální síti.

Re: Čtení hodnoty z LAN HTTP a zapsání do souboru

Napsal: 03 pro 2019, 12:03
od KamilV
martinius96 píše:
27 lis 2019, 14:58
Arduino s Ethernet shieldom nepodporuje HTTP autentizáciu, teda sa na stránku pravdepodobne nepripojíš.
To si úplně nemyslím. Eth shield pouze zabezpečuje request / response, hlavičku requestu si ale už můžeš napsat sám jakou chceš.

Připojení přímo na DB také nemusí být dostupné, pokud je to v cloudu. Já bych se jako první podíval do dokumentace, zda ten systém nemá nějaké REST API a to bych volal z Arduina. A pokud nemá, tak bych parsovat to HTML. Zde asi opravdu bude snazší udělat si bokem skript, který to vykousne a v Arduinu už se bude volat jen tento jednoduchý skript.

IMHO se ten systém neaktualizuje tak často, aby se napojení rozpadlo. Pokud se jednou za 5 let změní ID toho HTML prvku, tak se změní jen ID v konfigu toho parsovacího skriptu.