Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Real-time solar data without any hardware sensor


Anbefalte innlegg

For lux postet jeg her en oversikt: https://www.hjemmeautomasjon.no/forums/topic/122-real-time-solar-data-without-any-hardware-sensor/?do=findComment&comment=7708

For radiation har jeg ingen anelse, og at tenker her at man sommer og vinter kommer til åfåi diametralt forskjellige verdier. For radiation, tenkte jeg bare se littt hva slags tall jeg fikk, og så fordele etter hvert.

Dog, her: https://en.wikipedia.org/wiki/Solar_irradiance#Earth

kan jeg lese at: "maximum normal surface irradiance [is] approximately 1000 W /m2 at sea level on a clear day."

 

(Generelt er det viktig å passe på å ha høy nok maks-verdi slik at ikke oppdateringen feiler pga. det.)

Endret av DiderikFrom
Lenke til kommentar
Del på andre sider

3 timer siden, DiderikFrom skrev:

 

Supert!

 

--------------

 

Jeg har utvidet posten med installeringsguide. Sender fortsatt gjerne PM med filer til de som vil ha. Ev. om det er en løsning med å hoste filene på forumet, eller som et attachment?

 

Og post gjerne erfaringer i tråden her.

Jeg tar gjene en kopi. Men må nok skrive om en del for å få den til å virke med OpenHAB.. :-)

Lenke til kommentar
Del på andre sider

1 hour ago, Lazarus said:

Jeg tar gjene en kopi. Men må nok skrive om en del for å få den til å virke med OpenHAB.. :-)

Nå har jeg lagt vedlegg til posten med guide. Der kan du lastened skriptet.

 

Kan du styre OpenHAB med JSON/curl (http), samt få status på device (eller tilsvarende)?

I så tilfelle trenger du sannsynligvis nærmest ikke editere noe, bare curl-adressene.

Lenke til kommentar
Del på andre sider

5 minutter siden, DiderikFrom skrev:

Kan du styre OpenHAB med JSON/curl (http), samt få status på device (eller tilsvarende)?

I så tilfelle trenger du sannsynligvis nærmest ikke editere noe, bare curl-adressene.

Det skal gå fint. tar en titt. :-)

Lenke til kommentar
Del på andre sider

1 minute ago, Lazarus said:

Det skal gå fint. tar en titt. :-)

Flott! Det du trenger å gjøre (i tillegg til vanlig oppsett) er å editere curl/JSON-callet som henter ut siste lagrede octa-verdi i HomeSeer (for deg OpenHAB). Dette er fordi ogimet-stasjonene ofte kan sende "/" i stedet for reel octa og da feiler lux-beregningen.

Lenger ned må du editere curl/JSON-callene som oppdaterer devicene.

Lenke til kommentar
Del på andre sider

Det var rart. Når jeg kjører scriptet får jeg opp:

Sitat

/usr/bin/lua: ./SolarSensor.lua:66: attempt to index local 'jsonOctafull' (a nil value)

stack traceback:

./SolarSensor.lua:66: in main chunk

[C]: ?

 

Har kun redigert den øverste seksjonen i scriptet og endret bane til json.lua

Ingen av devicene mine endrer seg.

 

Noen som skjønner hva som går galt?

Lenke til kommentar
Del på andre sider

49 minutter siden, eivtress skrev:

Det var rart. Når jeg kjører scriptet får jeg opp:

 

Har kun redigert den øverste seksjonen i scriptet og endret bane til json.lua

Ingen av devicene mine endrer seg.

 

Noen som skjønner hva som går galt?

 

Har du aktivert JSON (Tools-setup-network)?

Ellers ville jeg dobbelsjekket IDen til Octa-devicen og at den er satt opp med verdier fra 0-8 (og har en verdi nå).

Lenke til kommentar
Del på andre sider

1 minutt siden, ZoRaC skrev:

 

Har du aktivert JSON (Tools-setup-network)?

Ellers ville jeg dobbelsjekket IDen til Octa-devicen og at den er satt opp med verdier fra 0-8 (og har en verdi nå).

Ja den er aktivert. Bruker masse JSON calls med tasker.

Jeg har sjekket id uendelig mange ganger nå. Også prøvd å sette en annen verdi.

Når jeg gjør json-requestet på octadevicen manuelt funker det fint i nettleseren og...

Lenke til kommentar
Del på andre sider

1 minutt siden, eivtress skrev:

Ja den er aktivert. Bruker masse JSON calls med tasker.

Jeg har sjekket id uendelig mange ganger nå. Også prøvd å sette en annen verdi.

Når jeg gjør json-requestet på octadevicen manuelt funker det fint i nettleseren og...

 

Er linje 66 den som henter nåværende verdi eller den som prøver å sette ny verdi? Får du til å kjøre kommandoen manuelt og se om det funker?

 

Har du sjekket hvilken Octa-verdi du får i retur fra værstasjonen? Altså at du får enten en tallverdi eller "/" fra den?

Lenke til kommentar
Del på andre sider

3 minutter siden, DiderikFrom skrev:

Dette er en lua-feil. Det er en feil på linje 66. Linje 66 mener jeg er første linje som er avhengig av at hjelpeskriptet er lastet.

Jeg tipper da at banen til hjelpeskripet er feil.

 

Jeg vil så gjerne at banen skal være feil, men jeg klarer ikke finne noen. Jeg kan ingenting om lua, eller noe særlig om koding i det hele tatt. Så her står jeg virkelig fast.

Lenke til kommentar
Del på andre sider

OK, det ser veldig riktig ut, såfremt det er der du har lagret det,

 

Hva får du dersom du kjører

 

curl -s 'http://localhost/JSON?request=getstatus&ref=IDTILOCTADEVICEN'

 

Altså direkte fra kommandolinjen, f.eks.

 

curl -s 'http://localhost/JSON?request=getstatus&ref=1406'

 

Dersom 1406 er din RefID til Octa

Endret av DiderikFrom
Lenke til kommentar
Del på andre sider

1 minutt siden, DiderikFrom skrev:

OK, det ser veldig riktig ut, såfremt det er der du har lagret det,

 

Hva får du dersom du kjører

 

curl -s 'http://localhost/JSON?request=getstatus&ref=IDTILOCTADEVICEN'

 Som en kommando i terminalen? Ingenting.

Men jeg fant ut at JSON.lua scriptet ikke hadde tillatelse til å kjøre, men når jeg endret tillatelsen kom dette opp:

./JSON.lua: line 1: --: command not found
./JSON.lua: line 2: --: command not found
./JSON.lua: line 3: --: command not found
./JSON.lua: line 4: --: command not found
./JSON.lua: line 5: --: command not found
./JSON.lua: line 6: --: command not found
./JSON.lua: line 7: --: command not found
./JSON.lua: line 8: --: command not found
./JSON.lua: line 9: --: command not found
./JSON.lua: line 10: --: command not found
./JSON.lua: line 11: --: command not found
./JSON.lua: line 12: --: command not found
./JSON.lua: line 13: syntax error near unexpected token `)'
./JSON.lua: line 13: `--    1) the copyright notice above is maintained'

Tyder dette på at den ikke skjønner hva som er kommentarer og ikke?

Lenke til kommentar
Del på andre sider

Nei, JSON.lua skal ikke kjøres -- det skal lastes fra hovedskriptet. Jeg får også outputet du får.

 

Problemet er her at du ikke får respons fra HomeSeer på

curl -s 'http://localhost/JSON?request=getstatus&ref=${ID}"

Prøv: curl 'http://localhost/JSON?request=getstatus&ref=${ID}"

 

altså det samme, men uten '-s'. Hva får du da?

Enten svarer ikke HomeSeer eller du har feil ID. Kan ikke se andre forklaringer.

Du gjør dette på samme maskin som HomeSeer er installert?

 

Du kan ev. prøve å bytte ut localhost med 127.0.0.1 eller IP-adressen til maskinen. Har du passordbeskyttet HomeSeer JSON API når du bruker JSON med Tasker? Feilsøkingen her må gå videre på at du ikke får respons på curl til HomeSeers JSON API.

Endret av DiderikFrom
Lenke til kommentar
Del på andre sider

Jeezes. Jeg hadde fjernet haken på "No Password Required for Local/Same Network Login" under setup. 

Når jeg huket av så fungerte alt. ?

Jeg får i hvertfall oppdatert sun azimuth og altitude. Jeg regner med mer data når det er sol. ?

Det er liksom alltid en sånn liten fisefeil som kan ødelegge dagen.

  • Like 2
Lenke til kommentar
Del på andre sider

Hehe. Jeg var visst ikke helt ferdig likevel. Alle devicer oppdaterer seg unntatt octa. 

Virtuell device er satt opp som de andre, og når jeg endrer verdien manuelt påvirker det resten av devicene ved neste oppdatering.

Har også prøvd å sende URLen til ogimet med min lokale WMOID i nettleser og jeg får tilbake data.

Hvordan funker det hos dere andre?

Lenke til kommentar
Del på andre sider

2 minutter siden, eivtress skrev:

Hvordan funker det hos dere andre?

Til meg tok det lang tid før jeg fikk Octa (mange timer).

Hva står i logg-filen i samme mappe som lua-filene? Der ser du hvilken verdi den har fått fra ogimet og som den prøver å sette. Hvis den er "0" i loggfilen også, så er det i hvertfall ikke feil med setting av verdien i HS, men heller ved henting (eller at den ikke returnerer noe (enda)).

Endret av ZoRaC
Lenke til kommentar
Del på andre sider

12 minutter siden, ZoRaC skrev:

Til meg tok det lang tid før jeg fikk Octa (mange timer).

Hva står i logg-filen i samme mappe som lua-filene? Der ser du hvilken verdi den har fått fra ogimet og som den prøver å sette. Hvis den er "0" i loggfilen også, så er det i hvertfall ikke feil med setting av verdien i HS, men heller ved henting (eller at den ikke returnerer noe (enda)).

Der står alle verdiene jeg har satt manuelt mens jeg har testet. Alt fra 0 til 8.

Da er det jo snodig at det skal ta så lang tid før den begynner å hente data. Den skal jo hente hver gang scriptet kjører, og dataene er jo der. Det er visst bare mellom 00 og 02 den ikke får data fra ogimet.

 

Men når scriptet kjøres henter den bare data fra devicen i HS, den oppdaterer aldri denne devicen.

Lenke til kommentar
Del på andre sider

9 hours ago, eivtress said:

Der står alle verdiene jeg har satt manuelt mens jeg har testet. Alt fra 0 til 8.

Da er det jo snodig at det skal ta så lang tid før den begynner å hente data. Den skal jo hente hver gang scriptet kjører, og dataene er jo der. Det er visst bare mellom 00 og 02 den ikke får data fra ogimet.

 

Men når scriptet kjøres henter den bare data fra devicen i HS, den oppdaterer aldri denne devicen.

 

Det opprinnelige skriptet og dette skriptet tar høye for at ogimet-stasjonene ikke alltid sender ut octa-data. Derfor hentes den gamle verdien fra HomeSeer. Her kan det av og til gå litt tid mellom hver gang octa oppdateres, men jeg synes octa virker ganske reel.

 

Du kan prøve å kjøre

curl "http://www.ogimet.com/cgi-bin/getsynop?block=01384&begin=201612102000"

Der tallet etter 'block=' er din ogimet-stasjon, og dato/tid formateres som etter 'begin='.

 

Jeg får output som under:

01384,2016,12,10,20,00,AAXX 10201 01384 45156 /1501 10008 20008 51004==
01384,2016,12,10,21,00,AAXX 10211 01384 41135 81201 10006 20006 50001 71054 886//==

 

Da svarer ogimet-stasjonen, og alt er som det ska. Dersom du ikke får noe svar, er det noe feil i oppsettet med ogimet.

 

Lenke til kommentar
Del på andre sider

Den 12/8/2016 klokken 17.02, DiderikFrom skrev:

Flott! Det du trenger å gjøre (i tillegg til vanlig oppsett) er å editere curl/JSON-callet som henter ut siste lagrede octa-verdi i HomeSeer (for deg OpenHAB). Dette er fordi ogimet-stasjonene ofte kan sende "/" i stedet for reel octa og da feiler lux-beregningen.

Lenger ned må du editere curl/JSON-callene som oppdaterer devicene.

Da har jeg endelig fått sett på scriptet og gjort noen modifikasjoner slik at den støtter både HomeSeer og OpenHAB(de har blant annet forskjellig respons via http).

Den er også kompatibel med Windows, noe det andre scriptet slet litt med(datoformat og noen string oppsett som var "kranglete").

Flyttet opp linjen for JSON script til toppen slik at den er lettere å finne, samt la til host name som variabel i URL slik at man slipper å endre url-er lenger ned i scriptet.

 

Noen som kjører linux som kunne testet?

Og gjerne noen med homeseer også.

Sender filer på PM ved forespørsel.

 

@DiderikFrom - Kanskje noe som vi kunne lagt ut på den originale posten din dersom den passerer kvalitetskontrollen? 

Endret av Lazarus
  • Like 1
Lenke til kommentar
Del på andre sider

44 minutes ago, Lazarus said:

Da har jeg endelig fått sett på scriptet og gjort noen modifikasjoner slik at den støtter både HomeSeer og OpenHAB(de har blant annet forskjellig respons via http).

Den er også kompatibel med Windows, noe det andre scriptet slet litt med(datoformat og noen string oppsett som var "kranglete").

Flyttet opp linjen for JSON script til toppen slik at den er lettere å finne, samt la til host name som variabel i URL slik at man slipper å endre url-er lenger ned i scriptet.

 

Noen som kjører linux som kunne testet?

Og gjerne noen med homeseer også.

Sender filer på PM ved forespørsel.

 

@DiderikFrom - Kanskje noe som vi kunne lagt ut på den originale posten din dersom den passerer kvalitetskontrollen? 

 

Dette er supert!

 

hostname som variabel var på to-do-listen, men kom aldri så langt siden jeg ikke har hatt behov for det selv.

Jeg slet en del med JSON:decode (som du sikkert så). Derfor var JSON:decode-kommandoen særdeles konvolutert. Min første versjon brukte awk/sed og var egentlig mye enklere, men fjernet det for å ha færrest dependencies og windows-kompatibilitet.

Windows-kompatibilitet har jeg ikke fått testet i det hele tatt på min versjon. Ellers har jeg forsøkt å holde versjonen så lik det originale skriptet som mulig for enkelt å kunne lage ny versjon dersom det opprinnelige skriptet ble oppdatert/forbedret.

 

Send gjerne PM! Supert om det funker på linux og windows, og med enklere oppsett. Da kan vi legge det ut som versjon 2.

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.