Discussie forum over weatherlink software. Voor vragen, specificaties, ervaringen etc..

Door Bernez
#20480
Ik ben met Weatherlink aan t stoeien en het lukt aardig tot nu toe.
Ik heb een paar vragen:
Is t mogelijk om de text van de gifs te wijzigen (vertalen) ?
Hoe kan ik een harde refresh voorkomen.
Ik bedoel, als je op de pagina, bv. de onderste waarden aan t bekijken bent, en het wordt refreshed dan spring de nieuwe pagina naar boven (top). Zeer irritant. Is er een manier om dit op te vangen ?
Voor testen wordt er elke minute geupload en de pagina zelf een refresh om de 30 seconden.
Wind speed en windrichting doen het nog niet, zijn nog niet geinstalleerd.
Hier vind je mijn testpagina.
Door wsMaurik
#20483
Hallo Bernez,

De text van de GIFs is niet makkelijk te vertalen, je moet er binair het programma voor aanpassen want deze teksten zijn hardcoded. Ik ben er niet aan begonnen.

De refresh staat ergens bovenaan in je html-pagina (htx-file) en kun je aanpassen naar langere tijden of helemaal verwijderen zodat alleen een refresh komt als de bezoeker dezelfde pagina herhaald.
Het verspringen door een refresh is volgens mij niet te voorkomen.

Code: Selecteer alles
  <meta http-equiv="refresh" content="150"; />

is dus een refresh elke 15seconden.

groeten,
nico
Door Bernez
#20485
Thx Nico,

Hoe ik de meta tag refresh moet gebruiken is niet het probleem. Als je F5 gebruikt op je PC krijg je ook een refresh, maar dan wel een "zachte". Het pagina blijft op het punt waar het stond.
Een mogelijkheid zou misschien zijn om gebruik te maken van een scriptje.
Door Luc
#20491
Ik heb dat opgelost door met PHP het plaatje aan te passen. Ik leg over het plaatje als het ware een ander plaatje met mijn eigen tekst en mijn eigen kleuren. Dat doe ik alleen met de randen. Hierdoor krijg je een eigen look and feel van de weatherlink plaatjes. Bijvoorbeeld:



Ik deel met jullie de code, maar ik ga er geen support op leveren. Wellicht dat een PHP kenner hier iets generieks van kan maken. Onderstaande code kun je opslaan in een bestand genaamd getimage.php en in dezelfde directory plaatsen als de plaatjes.

De aanroep van het plaatje wordt dan als volgt:

http://www.weerstationkessel.nl/getimag ... istory.gif

waarbij de achter het = teken de naam staat van het plaatje dat je wilt laten zien. De code is geschikt voor de volgende plaatjes:

OutsideTempHistory.gif
BarometerHistory.gif
WindDirectionHistory.gif
WindSpeedHistory.gif

Maar met een beetje goede wil, kun je de code makkelijk aanpassen voor andere plaatjes. Succes ermee!

Gr,
Luc

Code: Selecteer alles
<?php
$i = $_GET['img'];
$ok = false;
if ($i=="OutsideTempHistory.gif") { $header = "Temperatuur (C)"; $ok = true; }
if ($i=="BarometerHistory.gif") { $header = "Barometer (hPa)"; $ok = true; }
if ($i=="WindDirectionHistory.gif") { $header = "Windrichting"; $ok = true; }
if ($i=="WindSpeedHistory.gif") { $header = "Windsnelheid (km/uur)"; $ok = true; }

if (!$ok) exit;

header('content-type: image/gif'); 

$watermark_width = 320; 
$watermark_height = 215; 
$watermark = imagecreatetruecolor($watermark_width, $watermark_height); 

$wit = imagecolorallocate($watermark, 255, 255, 255);
$zwart = imagecolorallocate($watermark, 0, 0, 0);
$bg = imagecolorallocate($watermark, 101, 118, 75);
$fg = imagecolorallocate($watermark, 207, 217, 190);
$fg = $wit;

//Create / get the 2 images
imagefilledrectangle($watermark, 0, 0, $watermark_width, $watermark_height , $wit);
$image = imagecreatefromgif("./" . $i); 

$offset = 7;

//Due to large label algin thhe Barometer image more to the left
if ($i=="BarometerHistory.gif") { $offset = 15; }

//Merge the 2 images and remove black line on left on insert position
imagecopymerge($watermark, $image, $offset, 0, 0, 0, 320, 200, 100); 
imagefilledrectangle($watermark, $offset, 0, $offset, $watermark_height , $wit);

//Remove black line on left and right sides
imagefilledrectangle($watermark, 0, 0, 0, $watermark_height , $bg);
imagefilledrectangle($watermark, $watermark_width -1, 0 , $watermark_width, $watermark_height , $bg);


//Create header and footer
imagefilledrectangle($watermark, 0, 0, $watermark_width, 15 , $bg);
imagefilledrectangle($watermark, 0, 199, $watermark_width, $watermark_height , $bg);

//Set font
$font = 2;

//calculate x position to right align date and time
$datetime = $stationDate .' '. $stationTime;
$string_width = imagefontwidth($font)*strlen($datetime);
$x_position = $watermark_width-$string_width - 5;

//Text in header
imagestring($watermark, $font, 5, 1, $header, $fg);
imagestring($watermark, $font, $x_position, 1, $datetime, $fg);

//Text in footer (align center)
$footertext = 'www.weerstationkessel.nl';
$string_width = imagefontwidth($font)*strlen($footertext);
$x_position = ($watermark_width-$string_width) /2;
imagestring($watermark, $font, $x_position, 199, $footertext , $fg);

//display image
imagegif($watermark); 

//Destroy images
imagedestroy($image); 
imagedestroy($watermark); 

?>
Bijlagen
getimage.gif
getimage.gif (3.68 KiB) 2898 keer bekeken
Door Luc
#20492
Kleine aanvulling:
De datum en tijd van in dit plaatje is de tijd van de laatste data die weatherlink heeft geupload naar de website. Die zet ik in de variabele $stationDate en $stationTime en worden daarna in het plaatje gezet.

De manier hoe ik dat gedaan is wat complex om hier uit te leggen, maar het komt er op neer dat ik dat heb gedaan door het openweerdata.htm bestand te parsen en alle variable op te slaan in php variable. Daarna kun je deze php file includen in het getimage.php bestand.

Wellicht is het makkelijk om de datum en tijd weg te laten, of om daar gewoon de actuele server te plaatsen. Dit laatste doe je door de volgende regel te vervangen

Code: Selecteer alles
$datetime = $stationDate .' '. $stationTime;


door deze regel

Code: Selecteer alles
$datetime = date("d-m-Y H:i");   


Gr,
Luc
Door Luc
#20496
De code is niet goed leesbaar via het forum in IE. In FF en chrome gaat het wel goed.
Voor IE gebruikers heb ik de code nog even in een file geplaatst.

Gr,
Luc
Bijlagen
(945 Bytes) 182 keer gedownload
Door Bernez
#20524
Bedankt voor de tip, Luc. Maar ik vind dit wel een hele omslachtige manier om een paar gifs te kunnen aanpassen. Ik vind t wel gek dat Davis daar nog niks voor heeft gevonden.
Door wsEpe
#24109
Luc schrijft:
Ik heb dat opgelost door met PHP het plaatje aan te passen.

Bedankt Luc, hier was ik nog naar op zoek. Ik kwam er met met eigen pogingen net niet helemaal uit.