Väderkoefficient

Moderators: hekj, Telldus

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

Har inte tänkt så mycket på skymmningskoefficient http://www.telldus.com/forum/viewtopic.php?f=23&t=4551 men däremot påverkar vädret mycket. En mulen regnig kväll vill man att lamporna ska tändas en halvtimme eller mer tidigare än när det är klart väder. Kan man använda väderinfo från t.ex. http://www.yr.no/verdata/1.3321307 för detta för att få en gradvis förskjutning av till och frånslag beroende på väder?
Det skulle också vara kul att lägga in vädersymboler på NexaHome webserver, t.ex. http://www.yr.no/om_yrno/1.1940495.
Det kanske går att fixa men mina programmeringskunskaper sträcker sig som mest till att pilla lite i färdig kod.

Zapper
Posts: 212
Joined: Thu Jan 18, 2018 11:08 am
Location: Där det är kallt

Re: Väderkoefficient

Post by Zapper » Thu Jan 18, 2018 11:08 am

Enklast skulle vara om det gick köpa en enkel luxgivare till systemet, men har själv bara sett skymmningsreläer.

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

Pee wrote:Har inte tänkt så mycket på skymmningskoefficient http://www.telldus.com/forum/viewtopic.php?f=23&t=4551 men däremot påverkar vädret mycket. En mulen regnig kväll vill man att lamporna ska tändas en halvtimme eller mer tidigare än när det är klart väder. Kan man använda väderinfo från t.ex. http://www.yr.no/verdata/1.3321307 för detta för att få en gradvis förskjutning av till och frånslag beroende på väder?
Det skulle också vara kul att lägga in vädersymboler på NexaHome webserver, t.ex. http://www.yr.no/om_yrno/1.1940495.
Det kanske går att fixa men mina programmeringskunskaper sträcker sig som mest till att pilla lite i färdig kod.
Har lagt upp en testversion, den som "vågar" kan testa...

Förutom ett nytt fält under Config fliken, Dusk Coefficient (minutes), så finns en ny metod att anropa från bsh scripts.

Normalt soligt väder - använd värdet noll, dvs ingen extra förskjutning av solnedgång/soluppgång.

Code: Select all

adjustSunlight(0);
Mulet väder - använd ett värde större än noll, dvs tänd/släck kommandon som har Function sunset (+/-) eller sunrise (+/-) utförs tidigare eller senare.

Code: Select all

adjustSunlight(45);
Jag föreslår att man lägger in ett startTimer kommando i start.bsh filen och tar ställning till "vädret" i det anropade scriptet

start.bsh

Code: Select all

startTimer("sunlight", 240);
sunlight.bsh

Code: Select all

adjustSunlight(0);  // TODO set value to > 0 if rain...
startTimer("sunlight", 240);
hideOutput();
http://nexahome.se/NexaHome_3.8.3.jar
http://nexahome.se/NexaHome_RPi_3.8.3.jar

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

hekj wrote:Har lagt upp en testversion, den som "vågar" kan testa...

Förutom ett nytt fält under Config fliken, Dusk Coefficient (minutes), så finns en ny metod att anropa från bsh scripts.

Normalt soligt väder - använd värdet noll, dvs ingen förskjutning av solnedgång/soluppgång.

Code: Select all

adjustSunlight(0);
Mulet väder - använd ett värde större än noll, dvs tänd/släck kommandon som har Function sunset (+/-) eller sunrise (+/-) utförs senare eller tidigare...

Code: Select all

adjustSunlight(45);
Jag föreslår att man lägger in ett startTimer kommando i start.bsh filen och tar ställning till "vädret" i det anropade scriptet

start.bsh

Code: Select all

startTimer("sunlight", 240);
sunlight.bsh

Code: Select all

adjustSunlight(0);  // TODO set value to > 0 if rain...
startTimer("sunlight", 240);
hideOutput();
http://nexahome.se/NexaHome_3.8.3.jar
http://nexahome.se/NexaHome_RPi_3.8.3.jar
Kul att öppnat för att kunna ta hänsyn till vädret, eller något annat också för den delen, för att justera när det är dags att tända och släcka lampor. Det blir ännu bekvämare och mer praktiskt med NexaHome.
Hoppas att det är någon som vill ta sig an scriptet.

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

Pee wrote:Det skulle också vara kul att lägga in vädersymboler på NexaHome webserver, t.ex. http://www.yr.no/om_yrno/1.1940495.
Det kanske går att fixa men mina programmeringskunskaper sträcker sig som mest till att pilla lite i färdig kod.
Har lagt upp ytterligare en testversion, ladda hem v3.8.4 samt även nedanstående två filer.

http://nexahome.se/WeatherDataMsnHourly.class
http://nexahome.se/WeatherDataMsnHourly.java

Skapa följande filer.

weather_hourly.bsh

Code: Select all

execFile("weather_hourly.bat");
startTimer("weather_hourly.bat.output", 15);
startTimer("weather_hourly", 10 * 60);
hideOutput();
weather_hourly.bat

Code: Select all

@echo off
set JPATH=C:\Program Files (x86)\Java\jre7
set CLASSPATH=c:\apps\nexahome\.;%JPATH%\lib\dt.jar
set JAVAW=%JPATH%\bin\javaw.exe
set JAVA=%JPATH%\bin\java.exe
if exist "%JAVAW%" goto begin
echo Hittar inte %JAVAW%
pause
goto end
:begin
"%JAVA%" -cp "%CLASSPATH%" WeatherDataMsnHourly "http://www.msn.com/sv-se/weather/idag/SE/Nacka,Stockholm,Sweden/we-city-59.31,18.14"
rem exit
:end
Modifiera ovanstående fil så att kommandofilen hittar java, samt byt ut msn.com länken så att data hämtas från din egen ort.

weather_hourly.bat.output.bsh

Code: Select all

check_output = "weather_hourly.bat";
String out = getData(check_output + ".output_");
String err = getData(check_output + ".error_");
if (out != null) {  
  is = new ByteArrayInputStream(out.getBytes());                  
  Properties props = new Properties();
  props.load(is);
  is.close();
  time = props.getProperty("time");
  img = props.getProperty("img");
  skytext = props.getProperty("skytext");
  temp = props.getProperty("temp");
  precipicn = props.getProperty("precipicn");
  if (time != null) {
    setData("WEATHER_TIME", time);
  }
  if (img != null) {
    setData("WEATHER_IMG", img);
  }
  if (skytext != null) {
    setData("WEATHER_SKYTEXT", skytext);
  }
  if (temp != null) {
    setData("WEATHER_TEMP", temp);
  }
  if (precipicn != null) {
    setData("WEATHER_PRECIPICN", precipicn);
  }
} else if (err != null && err.length() != 0) { 
  echo(err);
}
Lägg till följande rad i start.bsh

Code: Select all

startTimer("weather_hourly", 30);
Lägg in följande rader i en html fil.

Code: Select all

<div style="position: absolute; top: 30px; left: 607px;">
#DATA#WEATHER_IMG#
</div>

<div style="position: absolute; top: 65px; left: 610px;">
#DATA#WEATHER_TEMP#
</div>

<div style="position: absolute; top: 90px; left: 610px;">
#DATA#WEATHER_PRECIPICN#
</div>
http://nexahome.se/NexaHome_3.8.4.jar
http://nexahome.se/NexaHome_RPi_3.8.4.jar

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

hekj wrote:Har lagt upp ytterligare en testversion, ladda hem v3.8.4 samt även nedanstående två filer.
Hej Henrik,
Måste bara säga att Du är helt fantastisk. Tyvärr har jag inte tid att kolla på detta nu men ska göra det så snart jag hinner. :clap: :clap:
/Pee

jnyberg
Posts: 7
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by jnyberg » Thu Jan 18, 2018 11:08 am

Var tvungen att testa och det fungerar utmärkt.
Började genast fundera på hur man skulle kunna utnyttja detta för motorvärmaren.

Tänker som så att om prognosen säger att det snöar eller om det blåser över ett visst m/s så skulle motorvärmaren kunna få starta lite tidigare, så det inte blir så mycket sopa snö. :D

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

Pee wrote:
hekj wrote:Har lagt upp en testversion, den som "vågar" kan testa...

Förutom ett nytt fält under Config fliken, Dusk Coefficient (minutes), så finns en ny metod att anropa från bsh scripts.

Normalt soligt väder - använd värdet noll, dvs ingen förskjutning av solnedgång/soluppgång.

Code: Select all

adjustSunlight(0);
Mulet väder - använd ett värde större än noll, dvs tänd/släck kommandon som har Function sunset (+/-) eller sunrise (+/-) utförs senare eller tidigare...

Code: Select all

adjustSunlight(45);
Jag föreslår att man lägger in ett startTimer kommando i start.bsh filen och tar ställning till "vädret" i det anropade scriptet

start.bsh

Code: Select all

startTimer("sunlight", 240);
sunlight.bsh

Code: Select all

adjustSunlight(0);  // TODO set value to > 0 if rain...
startTimer("sunlight", 240);
hideOutput();
http://nexahome.se/NexaHome_3.8.3.jar
http://nexahome.se/NexaHome_RPi_3.8.3.jar
Kul att öppnat för att kunna ta hänsyn till vädret, eller något annat också för den delen, för att justera när det är dags att tända och släcka lampor. Det blir ännu bekvämare och mer praktiskt med NexaHome.
Hoppas att det är någon som vill ta sig an scriptet.
Dom som har fått igång "weather_hourly" kan använda detta script till att förskjuta till/frånslag.

sunlight.bsh

Code: Select all

String[] GRP1 = { "Lätta regnskurar", "Regnskurar", "Åskväder", "Snö" };
String[] GRP2 = { "Dimma", "Molnigt", "Övervägande molnigt", "Växlande molnighet" };
String[] GRP3 = { "Klart", "Soligt", "Delvis soligt" }; 
adjust = 0; // GRP3
skytext = getData("WEATHER_SKYTEXT");
if (skytext != null) {
  if (Arrays.asList(GRP1).contains(skytext)) {
    adjust = 60;
  } else if (Arrays.asList(GRP2).contains(skytext)) {
    adjust = 30;
  }
}
adjustSunlight(adjust);
startTimer("sunlight", 240);
hideOutput();
Det som återstår är att bestämma hur stort adjust-värdet ska vara för dom olika vädertyperna.

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

Pee wrote:
hekj wrote:Har lagt upp ytterligare en testversion, ladda hem v3.8.4 samt även nedanstående två filer.
Hej Henrik,
Måste bara säga att Du är helt fantastisk. Tyvärr har jag inte tid att kolla på detta nu men ska göra det så snart jag hinner. :clap: :clap:
/Pee
Nu har jag gjort ett försök att få igång det men jag lyckas inte. Troligen för att jag kör på en Raspberry Pi.
Jag har ändrat alla .bat till .sh.
Dessutom ändrat filen weather_hourly.sh till

Code: Select all

@echo off
set JPATH=/opt/jdk1.8.0
set CLASSPATH=/home/pi/nexahome/.;%JPATH%/lib/dt.jar
set JAVAW=%JPATH%/bin/javaw.exe
set JAVA=%JPATH%/bin/java.exe
if exist "%JAVAW%" goto begin
echo Hittar inte %JAVAW%
pause
goto end
:begin
"%JAVA%" -cp "%CLASSPATH%" WeatherDataMsnHourly "http://www.msn.com/sv-se/weather/idag/SE/Nacka,Stockholm,Sweden/we-city-59.31,18.14"
rem exit
:end
Sökvägen till java är kanske fel eller har det blivit fel vid installation av jdk1.8.0? Där finns i varje fall java.exe
Saknar filerna /opt/jdk1.8.0/jre/bin/javaw.exe (och /opt/jdk1.8.0/jre/lib/dt.jar).
:help:

Update: Har ändrat sökvägen till java i koden ovan. Då stämmer även sökvägen till dt.jar. Men, det funkar inte ändå.....
Alla .bsh-filer verkar köras och även weather_hourly.sh med tillhörande weather_hourly.sh.output.bsh körs men ingen data finns att hämta.

/Pee

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

Pee wrote:Nu har jag gjort ett försök att få igång det men jag lyckas inte. Troligen för att jag kör på en Raspberry Pi.
Jag har ändrat alla .bat till .sh.
Dessutom ändrat filen weather_hourly.sh till

Code: Select all

@echo off
set JPATH=/opt/jdk1.8.0
set CLASSPATH=/home/pi/nexahome/.;%JPATH%/lib/dt.jar
set JAVAW=%JPATH%/bin/javaw.exe
set JAVA=%JPATH%/bin/java.exe
if exist "%JAVAW%" goto begin
echo Hittar inte %JAVAW%
pause
goto end
:begin
"%JAVA%" -cp "%CLASSPATH%" WeatherDataMsnHourly "http://www.msn.com/sv-se/weather/idag/SE/Nacka,Stockholm,Sweden/we-city-59.31,18.14"
rem exit
:end
Sökvägen till java är kanske fel eller har det blivit fel vid installation av jdk1.8.0? Där finns i varje fall java.exe
Saknar filerna /opt/jdk1.8.0/jre/bin/javaw.exe (och /opt/jdk1.8.0/jre/lib/dt.jar).
:help:

Update: Har ändrat sökvägen till java i koden ovan. Då stämmer även sökvägen till dt.jar. Men, det funkar inte ändå.....
Alla .bsh-filer verkar köras och även weather_hourly.sh med tillhörande weather_hourly.sh.output.bsh körs men ingen data finns att hämta.
Följande rader måste också uppdateras.

Code: Select all

set JAVAW=%JPATH%/bin/javaw.exe
set JAVA=%JPATH%/bin/java.exe
Vad får du för svar om du skriver nedanstående kommando i ett terminalfönster?

Code: Select all

which java
Har du provkört weather_hourly.sh manuellt i ett terminalfönster, får du någon output?

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

hekj wrote:Följande rader måste också uppdateras.

Code: Select all

set JAVAW=%JPATH%/bin/javaw.exe
set JAVA=%JPATH%/bin/java.exe
Vad får du för svar om du skriver nedanstående kommando i ett terminalfönster?

Code: Select all

which java
Har du provkört weather_hourly.sh manuellt i ett terminalfönster, får du någon output?
Såhär blev det;

Code: Select all

pi@raspberrypi ~ $ which java
/usr/bin/java

pi@raspberrypi ~ $ weather_hourly.sh
bash: weather_hourly.sh: kommandot finns inte

pi@raspberrypi ~ $ cd /home/pi/nexahome

pi@raspberrypi ~/nexahome $ weather_hourly.sh
bash: weather_hourly.sh: kommandot finns inte
Notera att jag inte hittar filen javaw.exe.
Jag tycker att sökvägen till java.exe stämmer.
/Pee
Attachments
Terminal.zip
Listning av några kataloger. (Katalogen nexahome är rensad på loggfiler)
(996 Bytes) Downloaded 182 times

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

weather_hourly.sh

Code: Select all

#!/bin/sh
JAVA=/usr/bin/java
CLASSPATH=/home/pi/nexahome/.
"$JAVA" -cp "$CLASSPATH" WeatherDataMsnHourly "http://www.msn.com/sv-se/weather/idag/SE/Nacka,Stockholm,Sweden/we-city-59.31,18.14"
Kommando för att kolla i vilken folder man står i.

Code: Select all

pwd
Att ställa sig i rätt folder.

Code: Select all

cd /home/pi/nexahome
Att göra sh filen exekverbar.

Code: Select all

chmod +x weather_hourly.sh
Att provköra sh filen.

Code: Select all

 ./weather_hourly.sh

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

hekj wrote:weather_hourly.sh

Code: Select all

#!/bin/sh
JAVA=/usr/bin/java
CLASSPATH=/home/pi/nexahome/.
"$JAVA" -cp "$CLASSPATH" WeatherDataMsnHourly "http://www.msn.com/sv-se/weather/idag/SE/Nacka,Stockholm,Sweden/we-city-59.31,18.14"
Kommando för att kolla i vilken folder man står i.

Code: Select all

pwd
Att ställa sig i rätt folder.

Code: Select all

cd /home/pi/nexahome
Att göra sh filen exekverbar.

Code: Select all

chmod +x weather_hourly.sh
Att provköra sh filen.

Code: Select all

 ./weather_hourly.sh
Skapat ny weather_hourly.sh och gjort den körbar.

Code: Select all

pi@raspberrypi ~/nexahome $  ./weather_hourly.sh

time=00
img=<img alt="V&#228;xlande molnighet" src="http://img.s-msn.com/tenant/amp/entityid/BBaM7D.img?m=6&o=true&u=true&n=true&w=30&h=30" title="V&#228;xlande molnighet" />
skytext=V&#228;xlande molnighet
temp=12&#176;
precipicn=0%
Enligt förväntan? Verkar inte som det funkar fullt ut. Har försökt att lägga in lite utskrifter i weather_hourly.sh.output.bsh. Det verkar som out är tom och err innehåller /tmp/nexahome_cmd_1713253012921503502.sh: 2: /tmp/nexahome_cmd_1713253012921503502.sh: weather_hourly.sh: not found

/Pee

hekj
Posts: 988
Joined: Thu Jan 18, 2018 11:08 am
Location: Stockholm
Contact:

Re: Väderkoefficient

Post by hekj » Thu Jan 18, 2018 11:08 am

Pee wrote:Skapat ny weather_hourly.sh och gjort den körbar.

Code: Select all

pi@raspberrypi ~/nexahome $  ./weather_hourly.sh

time=00
img=<img alt="V&#228;xlande molnighet" src="http://img.s-msn.com/tenant/amp/entityid/BBaM7D.img?m=6&o=true&u=true&n=true&w=30&h=30" title="V&#228;xlande molnighet" />
skytext=V&#228;xlande molnighet
temp=12&#176;
precipicn=0%
Enligt förväntan? Verkar inte som det funkar fullt ut. Har försökt att lägga in lite utskrifter i weather_hourly.sh.output.bsh. Det verkar som out är tom och err innehåller /tmp/nexahome_cmd_1713253012921503502.sh: 2: /tmp/nexahome_cmd_1713253012921503502.sh: weather_hourly.sh: not found
Ja, så ska det se ut (ett antal namn/värde-par).

Jag glömde att tala om att de som inte kör på en windows-burk måste ange fullständig sökväg till weather_hourly.sh i bsh filen.

weather_hourly.bsh

Code: Select all

execFile("/home/pi/nexahome/weather_hourly.sh");
startTimer("weather_hourly.bat.output", 15);
startTimer("weather_hourly", 10 * 60);
hideOutput();

Pee
Posts: 32
Joined: Thu Jan 18, 2018 11:08 am

Re: Väderkoefficient

Post by Pee » Thu Jan 18, 2018 11:08 am

hekj wrote: Ja, så ska det se ut (ett antal namn/värde-par).

Jag glömde att tala om att de som inte kör på en windows-burk måste ange fullständig sökväg till weather_hourly.sh i bsh filen.

weather_hourly.bsh

Code: Select all

execFile("/home/pi/nexahome/weather_hourly.sh");
startTimer("weather_hourly.bat.output", 15);
startTimer("weather_hourly", 10 * 60);
hideOutput();
Det är inte lätt med användare som inte förstår något själv. :oops:
Nu verkar det funka. Det enda som inte lirar helt är "time". Jag började kolla strax före 23 ikväll och då blev time "00" och efter 23:00 blev det "01". Inget som jag skulle sakna men kanske bra att veta för dig.
En sak till föresten, vad anger "precipicn", värde 0%?

Stort tack för ditt tålamod med oss mindre kunniga.
/Pee

Post Reply