Virtuele HTTP Ingang

Toepassing

Met virtuele HTTP-ingangen kunt u waarden direct van een website of een XML-bestand uitlezen. Op die manier wordt het veel eenvoudiger om gegevens op te vragen van een apparaat met webinterface, want er is geen PicoC meer nodig.
Mogelijke toepassingsgebieden: Verwarmingssturing, PV-installatie, multimediatoepassingen, …

Basisprogrammering

VIRTUELE HTTP-INGANG INVOEGEN

Om een HTTP-ingang in te voegen, selecteert u in het periferievenster eerst de regel “Virtuele ingangen”. Vervolgens verschijnt rechtsboven de knop “Virtuele HTTP-ingang”. Door hierop te klikken wordt een virtuele HTTP-ingang ingevoegd.

 

virtuele HTTP ingang config

 

Bij de eigenschappen van de virtuele HTTP-ingang voert u het protocol, het adres en de poort in van het sturend apparaat alsook het opvraaginterval.

In ons voorbeeld wordt een waarde van een website cyclisch opgevraagd. Eenvoudigheidshalve gebruiken we een Miniserver, maar dit werkt bij elk apparaat volgens hetzelfde schema.

Wanneer gebruikerverificatie noodzakelijk is, kunt u de gebruikersnaam en het wachtwoord als volgt opgeven:
http://BENUTZER:[email protected]

Bij HTTP-ingangen wordt alleen het Basic Authentication Scheme gebruikt.

In dit voorbeeld maken we verbinding met het IP-adres 192.168.0.17 met de gebruikersnaam “benutzer” en het wachtwoord “passwort”.

./dev/sps/io/Test/state is het webservice-commando om de status van een ingang op te vragen op de Miniserver.

 Als een webservice direct op de Miniserver zelf moet worden opgevraagd, kan men in de plaats van “benutzer:[email protected]” ook gewoon “localhost“ ingeven.

 

VIRTUEEL HTTP-COMMANDO

Tot nu toe werd de website om de 10 seconden opnieuw geladen. Om echter een waarde te kunnen uitlezen, dient u nu een virtueel HTTP-commando in te voegen.

Selecteer daartoe in het periferievenster de voordien aangemaakte HTTP-ingang. Vervolgens verschijnt rechtsboven de knop “Virtueel HTTP-commando”. Door hierop te klikken wordt een nieuw HTTP-commando ingevoegd.

eigenschappen

Voor we nu het HTTP-commando en de commandoherkenning kunnen configureren, moeten we weten hoe de website waarvan we de gegevens willen opvragen, opgebouwd is.

Daartoe roepen we de pagina gewoon op in een browser.

Zoals aangegeven in de schermopname staat op de pagina value=” en vervolgens de waarde die we willen opvragen:

 

Dit is belangrijk voor de commandoherkenning.

Hier geven we in: value=“\v

Dit betekent: neem de waardetekst (\v) die na value=” staat.

 

command erkenning

Een vaak voorkomende fout is dat \1 wordt gebruikt in plaats van \v. Op websites worden getallen vaak als individuele ASCII-tekens weergegeven. De ASCII-waarde is echter 38 hoger dan de eigenlijke getalwaarde. Het getal 3 wordt bijvoorbeeld geïnterpreteerd als 41.

Hier het resultaat van ons voorbeeld:

Om de 10 seconden vraagt de Miniserver via het IP-adres 192.168.0.17 de waarde op van de ingang Test.

GEAVANCEERDE COMMANDOHERKENNING

De commandoherkenning biedt nog talrijke andere mogelijkheden:

 

 

\vWaardetekst: De waarde wordt overgenomen uit de ASCII-tekenreeks. De posities achter de komma moeten worden gescheiden door een komma of een punt.
\1De numerieke waarde van de ontvangen byte wordt als minst significante byte (LSB) op de uitgang overgenomen (bits 0-7).
\2De numerieke waarde van de ontvangen byte wordt in bits 8-15 op de uitgang overgenomen.
\3De numerieke waarde van de ontvangen byte wordt in bits 16-23 op de uitgang overgenomen.
\4De numerieke waarde van de ontvangen byte wordt als meest significante byte (MSB) op de uitgang overgenomen (bits 24-31).
\hWaardetekst hex: Op basis van een ASCII-tekenreeks wordt de waarde overgenomen en hexadecimaal weergegeven.
\xHexadecimaal bijv. \x09 voor 0x09
\\\ (Backslash)
\.Willekeurig teken
\wWillekeurig woord
\#Willekeurig getal
\tTabulatie (0x09)
\bTabulatie (0x09) of spatie (0x20)
\rCarriage return (0x0D)
\nLine feed (0x0A)
\dWillekeurig cijfer (0-9)
\mWillekeurige letter (A-Z,a-z) of willekeurig cijfer (0-9)
\aWillekeurige letter (A-Z,a-z)
\s1212 tekens overslaan (\s17 = 17 tekens overslaan)
\ixxx\iga naar tekst xxx bijv.: \ivalue\i springt naar value

 

Het is mogelijk meerdere stuurtekens van de commandoherkenning in een commando te gebruiken.