Page 1 of 2
HTML waarde inlezen
Posted: Tue Jan 26, 2010 11:31 am
by phoenixb
Hallo,
Ik heb een vraag, is het mogelijk om vanuit een html opgebouwde site een statische waarde in te lezen in HS en deze te koppelen aan een virtueel device?
Dus voorbeeld in de HTML code staat de volgende code:
Code: Select all
<td width="52%" height="31"><b><font face="Verdana" size="3">Setpoint:</font></b></td>
<td width="90%" height="31"><font size="3" face="Verdana"><b>22°C</b></font></td>
Waarbij de waarde 22 een setpoint is die ik in wil lezen.
Dus nu is mijn vraag kan dat?
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 11:48 am
by Alexander
Ja gaat prima. Zo werkt mijn fritzbox script ook om de telefoonboek uit te lezen.
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 12:09 pm
by evja78
Alexander,
Hoe ziet zo´n script er dan uit ? ben zelf niet echt script handig, maar ik neem aan dat je op een bepaalde tekstwaarde zoekt in de html en dan een x-aantal karakters kopieert naar een HS device ?
evja
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 1:12 pm
by Alexander
Ik kan het script geven om dat deel waar DJ een quote over doet het resultaat in een device te geven, maar het is nuttiger om eerst even te weten hoe deze waarden uitgelezen moet worden. Er zijn namelijk een aantal mogelijkheden:
- Je weet zeker dat datgene dat je wilt "grabben" op een bepaalde regel staat
- Je gaat uit van een vaste positie in een regel waar datgene wat je wilt "grabben" getoond wordt
- Je zoekt op kenmerken in een regel die altijd plaats vindt, in dit voorbeeld op "<td width="90%" height="31"><font size="3" face="Verdana"><b>"
- De twee bovenstaande combineren waarbij je zeker weet dat datgene wat je wilt "grabben" een vast aantal posities heeft
- Je laat het script alle html tags verwijderen alvorens je de informatie "grabt". In dit voorbeeld zou je dus twee regels overhouden met "Setpoint:" en "22°C". Dan moet je alleen zeker weten welke regel je moet pakken, omdat een herkenning op 1 regel niet meer te vinden is (hooguit de "°C")
En deze logica verwerk je weer in een script. Ik zal het voorbeeld invullen als ik even de tijd vandaag heb. Kom er vandaag op terug. Anders inspecteer even mijn script. Dat leert ook veel beter.
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 1:28 pm
by phoenixb
Ik heb voor het gemak even de index.html online gezet op een andere server (converter draait namelijk lokaal hier)
http://www.djdive.com/Download/index.html
Zoals je kan zien is dit opgebouwd uit tabellen, de converter ververst deze index.html zodra er een waarde op de bediening (lokaal dus) veranderd.
ik zal proberen aan de hand van je script ook wat te maken.
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 1:52 pm
by Digit
Voor dit soort uitpluiswerk gebruik ik altijd
Regular Expressions
Errug handig en krachtig.
Re: HTML waarde inlezen
Posted: Tue Jan 26, 2010 2:29 pm
by AshaiRey
Hier staat een stukje script dat je opweg kan helpen
http://www.domoticaforum.eu/viewtopic.php?f=47&t=3416
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 2:18 am
by Alexander
Code: Select all
Sub Main(ByVal Params As String)
Dim strData as String = hs.GetURL("http://www.djdive.com","/Download/index.html", True, 80)
Dim strArray = Split(strData," ")
hs.setDeviceString("H1", strArray(25))
hs.setDeviceString("H2", strArray(37))
hs.setDeviceString("H3", strArray(54))
hs.setDeviceString("H4", strArray(66))
End Sub
Code verdient niet de schoonheidsprijs, maar het werkt

De eerste regel haalt de pagina op en stript direct de html codes uit de ontvangen data. Vervolgens wordt de lange string opgesplitst in een array van strings op basis van een spatie. De volgende regels schrijven de waardes weg afhankelijk van de regel binnen de array. De nummers zijn zo hoog, omdat elke regel aangemaakt wordt als er een spatie in de string voorkomt.
De values zijn dus opvolgend:
22,5°C
22°C
3
Verwarmen
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 11:32 am
by phoenixb
Hi,
Het valt me op dat het programmeren soms zo simpel kan zijn.
Ik was al veels te moeilijk aan het proberen gisteren waardoor je al snel het overzicht kwijt raak.
Ik denk dat die script workshop zeker wel een toegevoegde waarde zal hebben straks.
Gr,
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 12:20 pm
by Digit
Tenzij je in full control bent over de inhoud van die html file (en dan hoef je dit dus vaak ook niet te doen) moet je dit (imo) nooit zo doen.
1 verandering in de html door de maker en je kunt opnieuw spaties tellen, dat moet je je wel realiseren.
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 12:28 pm
by Alexander
@Digit: Dat geldt natuurlijk in alle situaties. Ik gaf al aan dat het niet de schoonheidsprijs verdient, maar het werkt met dit voorbeeld. Als ik regex ga gebruiken, dan krijg ik het helemaal niet uitgelegd. En dan nog kan het fout gaan natuurlijk. Maar goed, wellicht handig voor de mensen hier om je input te geven hoe (graag werkend voorbeeld) dit dan beter kan.
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 1:17 pm
by Digit
Een werkend voorbeeld produceren valt buiten de scope van mijn reactie (twijfels omtrent bestendigheid).
Ik ga dus geen HS script maken, daar zijn anderen trouwens ook veel beter in. En ik zal het net zo min uitgelegd krijgen toch.
Ik kan best een praktijkvoorbeeld geven maar dat zal dan alleen maar bladvulling worden, want niemand zal het kunnen gebruiken.
Kun je beter gaan googlen; voorbeelden te over.
Re: HTML waarde inlezen
Posted: Wed Jan 27, 2010 10:32 pm
by phoenixb
Gezien de uitgelegde situatie kan ik met de "strArray" functie in iedergeval uit de voeten zeker omdat de pagina om de x minuten opnieuw wordt opgebouwd vanuit die converter (wellicht dat er op de achtergrond iets draait maar waarom moeilijk doen als het makelijk kan

).
Ik ben het met robert eens dat er legio voorbeelden te vinden op het net, maar ik zie het voor nu even als een vreemde taal.
Ik heb niks aan de grammatica als ik de woorden nog niet ken (dat is het probleem waar ik nu tegen aanloop), ik hoop straks met de workshop in iedergeval een begin te hebben om op door te kunnen bouwen en zodoende in de toekomst zelf mooie scripts te kunnen maken.
(heb nog voldoende ideeën maar het moet nu nog op het beeld komen )
Re: HTML waarde inlezen
Posted: Thu Jan 28, 2010 12:05 pm
by Alexander
JFYI: Split is de functie. strArray is een variabele.
Re: HTML waarde inlezen
Posted: Thu Jan 28, 2010 2:36 pm
by evja78
Ik ben ook een script newbie, maar dat met die array kan werken voor wat ik wil.
Hoe `tel je de spaties` nadat de html code is gestript zoals jullie aangegeven ? Kan je die array die gemaakt wordt ergens zien/opslaan om te bepalen welke regels je nodig hebt ?
Dit zijn misschien domme/basis vragen (kies zelf welke van toepassing is

maar ben een script beginner zoals ik al zei....
Evja