Node-Red/Youless/http-request: hoe bereik ik de JSONS?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Op advies van de admin even een eigen topic.

Ik bezit een tweetal Youlessen en tevens heb ik extern twee Youlessen die wil ik uitlezen. De Youlessen die ik zelf bezit hangen op eigen netwerk zonder wachtwoord en zijn via Node-Red met een http-request naar de pagina's eenvoudig te bereiken via:

http://ipyouless/e en http://ipyouless/f

De twee andere Youlessen hangen dus extern en zijn beveiligd met een wachtwoord. Nu heb ik al dankzij Tweakers hulp ondervonden dat deze Youless makkelijk te bereiken is door de volgende URL-format:

http://ipyouless/L?w=wachtwoordhier. Echter stuurt deze mij door naar de hoofdpagina van de Youless en niet naar de JSONS die ik wil bezoeken.

Hoe geef ik mijn URL zo vorm dat ik zowel het wachtwoord mee kan sturen, en alsnog op de juiste pagina terecht kom waar ik de JSON format vandaag kan trekken?

[ Voor 5% gewijzigd door Henri2500 op 11-10-2022 18:33 ]


Acties:
  • 0 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Wat gebeurt er als je eerst een http request get doet gelijk met het wachtwoord en daar achter de pagina op vraagt met de volgende http get? Dus er 2 achter elkaar lussen.

Wel nog even het json formaat achter de /e nog ?f=j toevoegen.

Acties:
  • 0 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Heb even de Youless node-red integratie aangepast zodat je nu kan selecteren welke pagina je wilt uitlezen. Zal later in de middag even de aanpassing doorsturen. Je moet dan wel even node-red herstarten.

werd te buggy helaas

[ Voor 7% gewijzigd door iCrOn op 11-10-2022 17:27 ]


Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
iCrOn schreef op dinsdag 11 oktober 2022 @ 10:27:
Wat gebeurt er als je eerst een http request get doet gelijk met het wachtwoord en daar achter de pagina op vraagt met de volgende http get? Dus er 2 achter elkaar lussen.

Wel nog even het json formaat achter de /e nog ?f=j toevoegen.
Dan loop ik gewoon weer met de http-request tegen de wachtwoord pagina aan

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
@YouLess ; misschien hebben de ontwikkelaars de gouden tip?

Acties:
  • 0 Henk 'm!

  • biomass
  • Registratie: Augustus 2004
  • Laatst online: 14-05 22:21
Als je je beoogde verkeer kunt naspelen in een browser, kijk dan eens dan naar de requests en responses in de developer console (in de meest gangbare browsers verstopt onder de F12 toets). Ik gok dat je een login token moet meegeven aan je data verzoeken.

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Het verkeer is identiek; of ik nu de hoofdpagina van de Youless wil gebruiken of naar de JSON wil. Ik kom op een wachtwoord pagina terecht waar ik het wachtwoord opgeef.

Het probleem is alleen dat ik niet weet hoe ik mijn URL moet vormgeven om dit door Node-red in 1 handeling te laten uitvoeren.

Hoe combineer ik:

http://ipyouless/e (JSON) met http://ipyouless/L?w=wachtwoordhier (openen van de verbinding)

[ Voor 16% gewijzigd door Henri2500 op 11-10-2022 18:36 ]


Acties:
  • +1 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Heb de Youless node-red node een beetje aangepast. Je hebt in de node config nu een extra veld, hier kan je de pagina zelf invullen die je wilt uitlezen met json.
Je kan in het veld invullen:
code:
1
/e?f=j/
upload output
code:
1
/f?f=j/
info per fase
code:
1
/a?f=j/
status pagina
code:
1
/d?f=j/
Device info

Wilde dit eerst vanuit een dropdown menu selecteerbaar maken, maar dat werd niet opgeslagen om een of andere reden in de node.


Afbeeldingslocatie: https://tweakers.net/i/ojDZ0LtyzLxUYIL59vSAqmKuEuA=/x800/filters:strip_exif()/f/image/8quHV7sSa4ARn5VikDlpxOdz.png?f=fotoalbum_large

De bestanden die je moet aanpassen in de node-red-contrib-youless zijn youless.js en youless.html in de locatie:
code:
1
/node-red/node_modules/node-red-contrib-youless/


De aangepast files zijn te vinden op de geforkte versie staat op github

Hierna node-red even herstarten.

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
EDIT: grapje, ik maakte zelf een tikfout. Dat lijkt nu de data te halen _/-\o_

[ Voor 93% gewijzigd door Henri2500 op 11-10-2022 21:53 ]


Acties:
  • +1 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Heb je toevallig http voor je ip adres staan? Of https ?

Ik neem aan dat je in bovenstaande screenshot dit weg geblurt hebt en er daarom geen ip adres veld zichbaar is.


oke top ;)

[ Voor 5% gewijzigd door iCrOn op 11-10-2022 22:04 ]


Acties:
  • +1 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Ik had de reactie al geupdate nadat ik erachter kwam dat ik zo dom was http te hebben laten staan :). Hij werkt dus :D

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Nog een aanvullende vraag; heb je enig idee waarom het antwoord van de node van verschillende type zijn?

/e geeft 1 bericht met alle waarden
/f geeft 11 berichten met 1 waarde per bericht?

Mijn join node vangt deze 1x op.. Maar wil daarna niet meer berichten doorgeven.

Acties:
  • +1 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Als je de /e bekijkt staan dit json bericht tussen [ ] is daarom anders dan de andere berichten. Als je er een split node achter zet komt dit er wel weer hetzelfde uit als bijvoorbeeld de /f.

Heb alleen een kleine aanpassing gedaan in de node zodat de andere pagina's uit te lezen zijn. Wat de node met de uitgelezen waardes doet, is hetzelfde gebleven.

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Dat was me idd nog niet opgevallen. Dankje!

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Toch nog een klein issue; wat ik niet goed begrijp. Ik heb de onbeveiligde en beveiligde Youless binnen Node-Red op dezelfde manier vorm gegeven (elke 10s data halen). Toch zijn mijn datapunten van de beveiligde Youless niet elke 10 seconden. Dat heeft vermoedelijk te maken met onderstaande foutmelding.

Zou het aantal aanroepen naar een Youless + wachtwoord door de Youless geblokkeerd worden? Is er een andere manier?

Afbeeldingslocatie: https://tweakers.net/i/ZMW6ULaCnLUz1e6HixxrGW4bhP4=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/qiNifccMUrbD3bpeTKkJshKD.jpg?f=user_large

Acties:
  • 0 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Lees je toevallig de Youless uit op hetzelfde moment met 2x een request dus 1 voor bijvoorbeeld /f pagina en voor een andere pagina?

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Ja; moet ik daar even een trucje voor verzinnen om hem om en om aan te roepen?

Acties:
  • 0 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Ja ik denk dat dat net teveel voor de Youless om te verwerken en dat hij alweer een nieuwe login request krijgt terwijl het ene bericht nog niet afgerond is.

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Ik heb hem nu 5s na elkaar staan; volgensmij gaat dat idd goed

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
@iCrOn Recent heb ik een aanvullende Youless extern toegevoegd aan het systeem, en ik blijf tegen een communicatieprobleem aanlopen (bij de externe Youlessen, intern gaat het goed).

Er worden 4 requests uitgestuurd, naar 3 Youlessen. Meestal gaat dit goed, maar af en toe vallen deze samen (denk ik), waardoor ik een error terugkrijg. Het maakt niet uit welke requests samenvallen (2 Youless of 1 Youless), blijkbaar kan hij hier niet mee omgaan.

Is er trucje te verzinnen om de request, binnen 10s of 20s op een specifiek moment te laten uitvoeren? Ik gebruik nu de Timestamp-node, maar ondanks dat je specificeert wanneer hij moet 'injecten', is het startmoment van zijn telling niet altijd gelijk.

EDIT: Zie afbeelding hieronder. middels TImestamp node ingesteld dat er een loop is elke 20s en dat de requests 5 seconden uit elkaar liggen (door een wisselende delay bij elke node). Dat gaat dus niet goed:

Afbeeldingslocatie: https://tweakers.net/i/eOe-JN6C9pzGb3y_Q1cBBJYymR8=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/eGYWOQTFZKttYqSsAlVl43Dz.jpg?f=user_large

[ Voor 23% gewijzigd door Henri2500 op 24-08-2023 08:02 . Reden: Foto toegevoegd ]


Acties:
  • +1 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
@Henri2500 Misschien is dit op te lossen door eerst een timestamp-node en daar achter een opsplitsing te maken met delay-nodes.

Dus bijvoorbeeld timestamp-node die opslitsen naar meerdere delay nodes en daarachter de youless node's. Dan in de delay nodes verschillende vertragingen instellen.

Ik kan die niet reproduceren omdat ik, maar 1 Youless uitlees.

Acties:
  • 0 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Dat is misschien geen gek idee! Moet ik alleen even alle flows samenvoegen op 1 pagina, maar dat is snel te regelen. Ik ga het proberen, dank voor de tip :)

Acties:
  • 0 Henk 'm!

  • iCrOn
  • Registratie: April 2002
  • Laatst online: 10:17
Dat is eigenlijk niet nodig als je link-nodes gebruik.

Acties:
  • +1 Henk 'm!

  • Henri2500
  • Registratie: Mei 2022
  • Laatst online: 10-05 13:38
Al gelukt :). Maar wist niet van het bestaan van de link-nodes XD

Maar eigenlijk hoort het allemaal bij elkaar, dus prima 8) . Lijkt voor nu ook goed te werken, hopelijk blijven de foutmeldingen uit :)

[ Voor 52% gewijzigd door Henri2500 op 27-08-2023 10:30 ]

Pagina: 1