Page 4 of 5

Re: Neerslag monitor script

Posted: Sat Dec 01, 2012 5:33 pm
by AshaiRey
Als het resultaat een plaatjes is kan dat gewoon

Re: Neerslag monitor script

Posted: Mon Jan 07, 2013 10:42 am
by DJF3
Neerslagmonitor script: Like
Weet nog niet precies hoe ik het ga gebruiken maar het is leuk.
Suggestie: Met nieuwe versies van je script: update de eerste post in deze thread.. Was zonder verder te lezen aan de slag gegaan met versie 1.0 ;-)
Suggestie: Misschien 1 device met daarin 24 kleine 'bars' die aangeven of en hoeveel het gaat regenen?
Bijv: 24 html images naast elkaar, blauw-droog, rood=regen
Misschien gebruik makend van 10 differently sized rode bars, afhankelijk van de hoeveelheid neerslag
Dit geeft je een 'grafiekje' zonder system impact, installaties, programming, etc.

CHeers!
DJ

Re: Neerslag monitor script

Posted: Mon Jan 07, 2013 12:35 pm
by AshaiRey
DJF3 wrote:Neerslagmonitor script: Like
Suggestie: Misschien 1 device met daarin 24 kleine 'bars' die aangeven of en hoeveel het gaat regenen?
Bijv: 24 html images naast elkaar, blauw-droog, rood=regen
Misschien gebruik makend van 10 differently sized rode bars, afhankelijk van de hoeveelheid neerslag
Dit geeft je een 'grafiekje' zonder system impact, installaties, programming, etc.
Leuk idee alleen hoe ga je dan een event triggeren op bijvoorbeeld 15 of 45 minuten ?
Als het aantal virtual devices een probleem is (vind ik ook trouwens) dan kan je misschien beter dit bepreken door het aantal te verkleinen of door de interval te veranderen.

Re: Neerslag monitor script

Posted: Wed Jan 09, 2013 10:52 pm
by DJF3
Daar zit wat in ;-) Je wil op basis van bepaalde criteria events triggeren..
Misschien een extra device voor een eenvoudige visuele weergave en de grote hoeveelheid events voor de triggering ;-)
Zit nu al 2 jaar op een vrij stabiele 340 devices ;-)

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 9:11 pm
by Irritanterik
Voor de visuele weergave gebruik ik de gegevens uit HomeSeer niet, maar heb zelf een scriptje gemaakt op basis van HighCharts en php.
Een php-script doet op basis van locatie de aanroep naar gps.buienradar.nl, verwerkt het resultaat en levert een reeks (JSON) met verwachte regenintentsiteit terug:

Code: Select all

[0,0.09,0.07,0.12,0.08,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03]
Het php-script wordt aangeroepen vanuit een webpagina. De webpagina verwerkt de reeks in een interactieve highcharts grafiek. Het grafiekje wordt elke 60 seconden automatisch ververst.

Als er interesse is zal ik de source hier posten.

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 10:31 pm
by DJF3
Ben wel nieuwschierig!

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 10:49 pm
by Digit
Ziet er mooi uit. Zal ik (proberen te) onthouden die HighCharts, ik ben nl. van plan volledig te switchen naar browser UI..

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 11:08 pm
by Irritanterik
Ik ben dolenthousiast over HighCharts. Alles wat je kan bedenken is te configureren.

GetRainPrediction.php: gps.buienradar.nl direct aanroepen via AJAX calls wordt niet toegestaan door Javascript, vandaar de route via de php service.

Code: Select all

<?php
/*
    lat: latitude
    lon: longitue
*/
	$lat = htmlspecialchars($_GET["lat"]);
	$lon = htmlspecialchars($_GET["lon"]);

	if (($lat == "") || ($lon == "")) {
		exit;
	}

	$sub_req_rul = "http://gps.buienradar.nl/getrr.php?lat=" . $lat. "&lon=" . $lon;
	$ch = curl_init();
	curl_exec($ch);
	curl_setopt($ch, CURLOPT_URL, $sub_req_rul);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$output = curl_exec($ch);
	curl_close($ch);	
	
	$result = array();
	$rain = float;
	$outputLines = explode("\r\n", $output, -1);

	foreach($outputLines as $outputLine) {
		$record = explode("|", $outputLine);
		$rain = round(pow(10,((intval($record[0]) - 109)/32)),2);
    array_push($result, $rain); 
	}
	
	/* output in required format */
	header('Content-type: application/json');
	echo json_encode($result, JSON_NUMERIC_CHECK);
?>
En de html-pagina:

Code: Select all

<html>
<head>
	<title>Voorbeeld buienalarm grafiek</title>
	<meta name='viewport' content='initial-scale=1, user-scalable=no, maximum-scale=1'>
	<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
	<script src="http://code.highcharts.com/highcharts.js"></script>
</head>
<body>
<div id="regenverwachting" style="width: 800px; height: 300px; margin: 0 auto"></div>
<script type="text/javascript">
  $(function () {
    var chart;
	  
	  Highcharts.setOptions({ 
    	global : {
      	useUTC: false
     	}
    });
	
		$(document).ready(function() {
			var options = {
				chart: {
					renderTo: 'regenverwachting',
          zoomType: null,
					alignTicks: false,
					events: {
          	load: function() {
            	setInterval(function() {
								reload();
              }, 60 * 1000);
            }
          }
        },
    		credits:{enabled:false},
    		exporting:{enabled:false},
    		title:{text:null},
    		tooltip: {
	        formatter: function() {
            return Highcharts.dateFormat('%H:%M', this.x) +'<br/>' +
                   '<b>'+ this.y + '</b> mm/h<br/>';
          }
        },
    		legend:{enabled:false},
    		plotOptions:{
	      	series:{
	        	shadow:false,
	        	marker:{
	          	enabled:false
	          },
	        },
		    },
    		xAxis: {
	        type: 'datetime',
	        title:null,
	        lineWidth:0,
	        tickWidth:1,

        },
    yAxis:{
        title:{text:'intensiteit (mm)'},
        lineWidth:0,
        tickWidth:0,
        gridLineWidth:1,
        min: 0,
        showFirstLabel: false
				},
    series: [{
        type: 'areaspline',
        name: 'Intensiteit',
        pointInterval: 300 * 1000,
        pointStart: (new Date()).getTime(),
				data: []
            }
			]
		}

		chart = new Highcharts.Chart(options);
		reload(true);
	});
	
	function reload(isFirstLoad) {
		$.getJSON('GetRainPrediction.php?lat=52.0000&lon=5.0000', function(resultJSON) {
			chart.series[0].setData(resultJSON, true);
			chart.redraw();
		});
	 }
});

  </script>
 </body>
</html>
En nu hopen op regen... :D

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 11:21 pm
by Digit
LOL
Ik ben toch meer het "warm-en-droog" zomertypje... dan pas ik toch liever de lat & lon aan om mooie grafiekjes te krijgen :lol:

Re: Neerslag monitor script

Posted: Thu Jan 10, 2013 11:54 pm
by Irritanterik
Leg de *lat* niet te hoog.. :wink:

Re: Neerslag monitor script

Posted: Thu Mar 07, 2013 12:27 am
by keeslamper
Irritanterik,

Zou je iets meer uit kunnen leggen over je script/pagina? Ik vind het supermooi, wil het ook graag gebruiken!

Alleen heb ik nu het script gekopieerd en opgeslagen en de html pagina, maar er wordt niets weergegeven.
Moet er nog iets aangepast/ingevuld worden? Of denk ik te simpel?

Groet,
Kees

Re: Neerslag monitor script

Posted: Fri Mar 08, 2013 9:27 pm
by labium
het is 20.21, het regent hier al half uur
is het engelse tijd of zomertijd die gegeven wordt of zit buienradar er naast ?

Code: Select all

Public Sub getrain(ByVal parms As Object)

        Dim a As String = hs.GetURL("gps.buienradar.nl", "/getrr.php?lat=52.190062&lon=5.431838", False, 80, True)

        Dim b As Integer = 5

        Dim arg() As String = {vbCrLf, vbLf}

        Dim raintimepairs As String() = a.Split(arg, StringSplitOptions.None)

        Dim datum As Date = Now.ToShortTimeString


    End Sub
Knipsel.GIF
Knipsel.GIF (23.8 KiB) Viewed 18244 times

Re: Neerslag monitor script

Posted: Fri Mar 08, 2013 9:44 pm
by labium
nee waren verkeerde coordinaten, gmail geeft in te beantwooorden email die is geedit de oude waarden bij copieren en plakken.

http://gps.buienradar.nl/getrr.php?lat= ... n=4.315127 is correct

Re: Neerslag monitor script

Posted: Fri Mar 08, 2013 9:50 pm
by keeslamper
Labium gebruik jij het script in combinatie met de Charts? Of kun je mij dat ook niet uitleggen? Het lijkt erop dat jij er meer van begrijpt als mij in ieder geval:P

Re: Neerslag monitor script

Posted: Fri Mar 08, 2013 10:02 pm
by labium
nee , dit is een eerste uitprobeersel om te kijken of ik er wat aan heb, ik zag in een van de laatste posts die gps site , ik had er nooit van gehoord. als de gegevens adequaat zouden zijn zou ik het kunnen gebruiken om me te waarschuwen voor regen, niet om charts te maken.

om te beginnen moet je voor scripts tenscripting downloaden en installeren, gratis plugin voor homeseer waar je makkelijk in kan kijken of een methode wat doet of niet, is via google zo te vinden.