Author Topic: Villar Perosa Weather Station  (Read 2108 times)

0 Members and 1 Guest are viewing this topic.

Offline marshad

  • Member
  • *
  • Posts: 18
Villar Perosa Weather Station
« on: July 15, 2019, 09:03:56 AM »
Here is the link:

It is based on an early version of Brian Underdown's excellent weather34 template with numerous adaptations. The backend is weewx running on a raspberry, with the data ftp'ed to my public server. I have it as on a permanent display on my desk using an old tablet.

Some of the "adaptations" include:

-A scrolling news feed using an api from
-Upcoming astronomical events from CalSky into Google Calendar, and then an api to the calendar.
-A two way link to my heating system, also running on a raspberry.(Currently off).
-Forecasts provided by an api to Meteoblue, a Swiss company who are highly accurate for the Alps. They also do a great meteogram.
-Cloud cover is from a Python program I have written, which takes the latest satellite image and analyses the pixels above my location. This is proving highly accurate and far better than any external source. Data is stored in weewx.
-The wind rose is created in Highcharts, using quite a complex template to extract the data from weewx.
-A reworked Moon box, with moon phase images adapted from NASA LRO. The Sun/Moon data and positions are from algorithms using the pyephem library.
-A new Barometer box - a simple line chart using Highcharts seemed to me the most logical depiction of the data, together with a commentary using the standard meteo description.
-A new lightning box with a radar image again using Highcharts.

There are numerous others. Please explore and also check out the pop ups under the boxes.

Feedback gratefully welcome.


  • Forecaster
  • *****
  • Posts: 1591
    • Texas Weather
Re: Villar Perosa Weather Station
« Reply #1 on: July 15, 2019, 10:32:38 AM »
Awesome work!

Davis Vantage Pro2 Plus +FARS|Meteobridge Nano SD|Meteohub|Meteobridge MR-3020|WU KTXSPRIN75/PWS JRARGWX75/CWOP EW2972/WBB TXWDVUE75/Blitzortung ID: 1142|AWEKAS: 12095
Donations are welcome:

Offline marshad

  • Member
  • *
  • Posts: 18

Offline ivano

  • Senior Contributor
  • ****
  • Posts: 254
Re: Villar Perosa Weather Station
« Reply #3 on: August 12, 2020, 07:19:38 AM »
beautiful compliments, maybe I could be able to do something like that ](*,)
1)3 gw1000
5)2 wh32 EP
6)5 wh31 EP
7)2 meteoschield pro
8)schermo lastem LSI
9) davis 7714
11)schermo solare RAD-14 Metspec
12)schermo solare RAD-02 Metspec
13)Meteorain 200 compact (Barani)
14)davis ventilato h24
15) Davis vp2 pro ventilata
16) GW1001 ecowitt
17) Wittboy ecowitt
webcam :

Offline wvdkuil

  • Wim van der kuil
  • Forecaster
  • *****
  • Posts: 1944
    • My PWS at Leuven Belgium Europe
Re: Villar Perosa Weather Station
« Reply #4 on: August 12, 2020, 07:36:15 AM »
beautiful compliments, maybe I could be able to do something like that ](*,)
Yes, you can.
Using your GW1000 custom upload and my dashboard as a starting point.
Demo Using GW1000 at
Forum discussion area,77.0.html


Offline marshad

  • Member
  • *
  • Posts: 18
Re: Villar Perosa Weather Station
« Reply #5 on: October 08, 2020, 11:14:17 AM »
Just realised that my digital clock is showing the time in the timezone of the viewer and not the station time  #-o

Think I have fixed it - it should now be showing Central European Summer Time, GMT+2 - let me know if it isn't.

There are lots of different answers on google on how to fix this. For those interested here is my java script. The line var cet is the important one.

function showTime(){
    var cet = new Date().toLocaleString("en-US", {timeZone: "Europe/Rome"});
    var date = new Date(cet);
    var h = date.getHours(); // 0 - 23
    var m = date.getMinutes(); // 0 - 59
    var s = date.getSeconds(); // 0 - 59
    h = (h < 10) ? "0" + h : h;
    m = (m < 10) ? "0" + m : m;
    s = (s < 10) ? "0" + s : s;
    var time = h + ":" + m + ":" + s ;
    document.getElementById("MyClockDisplay").innerText = time;
    document.getElementById("MyClockDisplay").textContent = time;
    setTimeout(showTime, 1000);