Data downloaden, bewerken, en weer uploaden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Ik wil een script in elkaar sleutelen dat de data van mijn zonnepanelen opbrengst van de Solivia Monitoring website afhaalt, deze vervolgens bewerken en weer uploaden naar Pvoutput.org. Deze site vind ik namelijk een stuk overzichtelijker, is ook mobiel te benaderen en maakt het vergelijken met andere gemakkelijker. Het script wil ik op mijn Synology NAS laten draaien aangezien deze overdag altijd aan staat.

Ik dacht eigenlijk om te beginnen om aan het eind van de dag eerst een CSV file te downloaden (met daarin de dagopbrengst), alleen hier strand ik al:

Eerst aanmelden (toch?):

code:
1
wget --no-check-certificate --save-cookies cookies.txt --post-data 'email=foo@hotmail.com&password=bar' https://login.solar-inverter.com/


En vervolgens dezelfde URL als in de normale interface aanroepen (of snap ik het verkeerd?):

code:
1
wget --no-check-certificate --load-cookies cookies.txt https://monitoring.solar-inverter.com/Chart/ExportChartData?displayMode=Multiple&duration=Daily&dataType=Power&plantGuid=<my GUID>


En dit werkt dus al niet :-(.

Het idee is om stap voor stap verder te gaan en uiteindelijk in een mini howto te beschrijven zodat andere mensen er wellicht ook wat aan hebben.

Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 17:34

thunder7

houten vaas/schaal nodig?

Heb je dit (en de links naar een perl-script om data naar pvoutput.org te sturen er in) al gelezen:

http://community.enphasee...ng_the_enlighten_data_api

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Helaas ondersteunt de Solivia website geen API calls. Ik zal dus een workaround moeten gebruiken om de gewenste gegevens op te vragen.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Als je via een GUI browser direct wilt gaan downloaden, krijg je dan een aanmeldpagina, of een popup voor credentials? Bij een popup kan je de credentials mee sturen bij het aanroepen van wget.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • MartinMeijerink
  • Registratie: Juli 2008
  • Laatst online: 01-10 09:50

MartinMeijerink

Computerrorist

het url tussen double-quotes zetten wil ook nog weleens helpen...

An unbreakable toy is useful to break other toys


Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Als je niet bent aangemeld wordt je geredirect naar de inlogpagina. Dat is dus deze: https://login.solar-inverter.com/ of https://monitoring.solar-inverter.com/ (geen van beide werken).

Maar het gaat mij het aanmelden al mis, het koekje blijft leeg. Bij het downloaden van de file kom ik al niet eens.

[ Voor 11% gewijzigd door zeezuiper op 23-12-2012 16:39 ]


Acties:
  • 0 Henk 'm!

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 17:34

thunder7

houten vaas/schaal nodig?

En wat je hier http://forums.whirlpool.net.au/archive/1901079 leest? Dat gaat over het uitlezen van Solivia inverters.

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Thx, deze post had ik inderdaad nog niet gezien. Het is echter niet helemaal wat ik zoek. Ik wil gewoon via een simpel scriptje de bestaande portal uitlezen en dit vervolgens naar een andere website doorsturen. Snap echte niet goed waarom dat met wget niet lukt.

Misschien anders een keer kijken naar een extra meter in de meterkast. Er staan genoeg leuke projecten hiervoor op tweakers.

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 11:10

SA007

Moderator Tweaking
Heb je hier rekening mee gehouden?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
       --save-cookies file
           Save cookies to file before exiting.  This will not save cookies
           that have expired or that have no expiry time (so-called "session
           cookies"), but also see --keep-session-cookies.

       --keep-session-cookies
           When specified, causes --save-cookies to also save session cookies.
           Session cookies are normally not saved because they are meant to be
           kept in memory and forgotten when you exit the browser.  Saving
           them is useful on sites that require you to log in or to visit the
           home page before you can access some pages.  With this option,
           multiple Wget runs are considered a single browser session as far
           as the site is concerned.

           Since the cookie file format does not normally carry session
           cookies, Wget marks them with an expiry timestamp of 0.  Wgetâs
           --load-cookies recognizes those as session cookies, but it might
           confuse other browsers.  Also note that cookies so loaded will be
           treated as other session cookies, which means that if you want
           --save-cookies to preserve them again, you must use
           --keep-session-cookies again.


Ik zie 'm nie tin je commando regel staan.

[ Voor 60% gewijzigd door SA007 op 27-12-2012 13:02 ]


Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Als ik de --keep-session-cookies optie toevoeg wordt inderdaad de sessie cookie opgeslagen. In Chrome echter (waar ik dus wel ben ingelogd) zie ik naast de sessie cookie ook 3 FedAuth cookies met daarin de authenticatie.

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ik zie in die login-pagina sowieso staan dat het formulier gesubmit wordt naar "/en-US/Account/SignIn?<heleboel extra zooi>".

Jij submit het nu simpelweg naar de "index"?

Wat voor resultaat geeft die 1e wget je überhaupt? Geeft ie iets positiefs terug? Denk het niet. Volgens mij doet 'ie gewoon je weer een login-pagina voorschotelen..

Verder begint de name van beide velden met een hoofdletter, dus Email en Password. Jij hebt lowercase. Geen idee of de site daar onderscheid onder maakt, maar wellicht wel.

[ Voor 20% gewijzigd door Osiris op 29-12-2012 15:27 ]


Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Als ik inderdaad deze hele meuk opgeef krijg ik meer terug, echter nog niets wat in de verste verte lijkt op de cookies in chrome. Daarnaast vraag ik mij af hoe onderstaande URL wordt opgebouwd, er zit iets van een datum in en zal dus iedere keer uniek zijn.

code:
1
wget --no-check-certificate --keep-session-cookies --save-cookies cookies.txt --post-data 'Email=foo@hotmail.com&Password=bar&RememberMe=True' 'https://login.solar-inverter.com/en-US/Account/SignIn?returnUrl=%252fissue%252fwsfed%253fwa%253dwsignin1.0%2526wtrealm%253dhttp%25253a%25252f%25252fsoliviamonitoring.com%25252f%2526wctx%253drm%25253d0%252526id%25253dpassive%252526ru%25253d%2525252f%2526wct%253d2012-12-29T14%25253a03%25253a07Z'

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Is dit niet makkelijker te doen met PHP icm (f)sockets en regular expressions? :) Zie ook een voorbeeldje. Hij doet niet geheel hetzelfde, maar de output die je uiteindelijk terugkrijgt kun je dan natuurlijk filteren om er vervolgens iets mee te gaan doen, zoals elders wegschrijven of opslaan of disk, wat dan ook. :)

Acties:
  • 0 Henk 'm!

  • zeezuiper
  • Registratie: Januari 2002
  • Laatst online: 11:15
Hmm, kan ik zo'n script vanaf de command line draaien of werkt dat alleen vanaf een webserver?

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
[google=php command line]

Dat had je natuurlijk ook zelf op kunnen zoeken? :)

Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 02-10 23:29
Requests voor python is overigens ook een erg fijne library. Als je een Session instance gebruikt om je requests te doen houdt hij de cookies vanzelf bij.
Pagina: 1