Page 1 of 1

Medelvärde som källa

Posted: Wed 20 Nov 2013, 22:08
by kivimart
Har inte hittat detta efter mycket letande i forumet.

Jag skulle vilja ta medelvärdet på tex. yttertempen dom senate 7 dagarna och ha det som en egen datakälla som uppdateras varge timme.

Hoppas ni förstår vad jag menar och att det något som gjort något liknande eller har förslag hur detta kan utföras.

Martin H

Re: Medelvärde som källa

Posted: Thu 21 Nov 2013, 05:54
by riro
kivimart wrote:Har inte hittat detta efter mycket letande i forumet.

Jag skulle vilja ta medelvärdet på tex. yttertempen dom senate 7 dagarna och ha det som en egen datakälla som uppdateras varge timme.
Det går att göra genom att plocka ut värden via REST och sedan räkna ut vad medelvärdet är.

Dokumentationen: http://www.switchking.se/en/component/c ... rest-anrop

Hämta:

Code: Select all

http://servernamn:8800/datasources/{id}/values?maxcount={maxCount}&newerthan={newerThan}
Sedan får du trycka in ditt uträknade värde:
Hämta:

Code: Select all

http://servernamn:8800/datasources/{id}/addvalue?value={value}

Tänk bara på att hämta datat 7 dagar bakåt tar prestanda från maskinen.

Re: Medelvärde som källa

Posted: Thu 21 Nov 2013, 08:07
by kivimart
Hej Riro tack för infon

Värdena som jag får ut är dom verkliga värdena det jag är intressserad av är medelvärdena, vet ej om jag gör/förstår fel.

Martin H

Re: Medelvärde som källa

Posted: Fri 22 Nov 2013, 06:36
by riro
kivimart wrote:Värdena som jag får ut är dom verkliga värdena det jag är intressserad av är medelvärdena, vet ej om jag gör/förstår fel.

Som jag skrev...
riro wrote:Sedan får du trycka in ditt uträknade värde:
Du måste alltså göra mattematik-delen själv. :)

Re: Medelvärde som källa

Posted: Fri 22 Nov 2013, 17:51
by Martin
Har med detta på ToDo för framtiden, men hade inte tänkt så långt som att man gärna vill bestämma period - bra input!

http://bugnet.switchking.se/Issues/Issu ... spx?id=465

Re: Medelvärde som källa

Posted: Sun 24 Nov 2013, 08:06
by riro
Hade lite tråkigt så jag gjorde en liten snurra i PHP som läser ur data ur en källa och sedan stoppar in ett medelvärde i en annan...

Code: Select all

<?php
	define("SK_REST_SERVER", "localhost");
	define("SK_REST_PORT", "8800");
	define("SK_REST_USER", "User");
	define("SK_REST_PASS", "Pass");

	define("DAYS_BACK", 7);
	define("SK_READ_DATASOURCE_ID", 44);
	define("SK_WRITE_DATASOURCE_ID", 85);

    function callSwitchKingRest($restCall) {
        $context = stream_context_create(array(
            'http' => array(
                'header'  => "Authorization: Basic " . base64_encode(SK_REST_USER . ":" . SK_REST_PASS)
            )
        ));

        $url = "http://" . SK_REST_SERVER . ":" . SK_REST_PORT . "/" . $restCall;

        $content = file_get_contents($url, false, $context);
        $xml = new SimpleXmlElement($content);
        return $xml;
    }


	$currDate = new DateTime();
	$newerthan = $currDate->sub(date_interval_create_from_date_string(DAYS_BACK . ' days'));
	$xml = callSwitchKingRest("Datasources/" . SK_READ_DATASOURCE_ID . "/values?newerthan=" . $newerthan->format("Y-m-d"));

	(double) $val = 0;
	(double) $cnt = 0;
	foreach($xml->RESTDataSourceValue as $entry) {
		$val = $val + (double) $entry->Value;
		$cnt ++;
	}

	$avg = ($val / $cnt);
	//echo $val . " / " . $cnt . " = " . $avg . "\r\n";

	$xml = callSwitchKingRest("Datasources/" . SK_WRITE_DATASOURCE_ID . "/addvalue?value=" . $avg);
	if ($xml->Successfull == "true") {
		echo "Successfully added value " . $avg . "\r\n";
	} else {
		echo "Error when adding value! " . $xml->Info . "\r\n";
	}
?>

Re: Sv: Medelvärde som källa

Posted: Sun 24 Nov 2013, 10:39
by kivimart
riro wrote:Hade lite tråkigt så jag gjorde en liten snurra i PHP som läser ur data ur en källa och sedan stoppar in ett medelvärde i en annan...

Code: Select all

<?php
	define("SK_REST_SERVER", "localhost");
	define("SK_REST_PORT", "8800");
	define("SK_REST_USER", "User");
	define("SK_REST_PASS", "Pass");

	define("DAYS_BACK", 7);
	define("SK_READ_DATASOURCE_ID", 44);
	define("SK_WRITE_DATASOURCE_ID", 85);

    function callSwitchKingRest($restCall) {
        $context = stream_context_create(array(
            'http' => array(
                'header'  => "Authorization: Basic " . base64_encode(SK_REST_USER . ":" . SK_REST_PASS)
            )
        ));

        $url = "http://" . SK_REST_SERVER . ":" . SK_REST_PORT . "/" . $restCall;

        $content = file_get_contents($url, false, $context);
        $xml = new SimpleXmlElement($content);
        return $xml;
    }


	$currDate = new DateTime();
	$newerthan = $currDate->sub(date_interval_create_from_date_string(DAYS_BACK . ' days'));
	$xml = callSwitchKingRest("Datasources/" . SK_READ_DATASOURCE_ID . "/values?newerthan=" . $newerthan->format("Y-m-d"));

	(double) $val = 0;
	(double) $cnt = 0;
	foreach($xml->RESTDataSourceValue as $entry) {
		$val = $val + (double) $entry->Value;
		$cnt ++;
	}

	$avg = ($val / $cnt);
	//echo $val . " / " . $cnt . " = " . $avg . "\r\n";

	$xml = callSwitchKingRest("Datasources/" . SK_WRITE_DATASOURCE_ID . "/addvalue?value=" . $avg);
	if ($xml->Successfull == "true") {
		echo "Successfully added value " . $avg . "\r\n";
	} else {
		echo "Error when adding value! " . $xml->Info . "\r\n";
	}
?>

Nice Hur kör jag detta?

Sent from my HTC One using Tapatalk

Re: Sv: Medelvärde som källa

Posted: Mon 25 Nov 2013, 06:33
by riro
kivimart wrote:Nice Hur kör jag detta?
Spara ner det som en .php fil och sedan kör du

Code: Select all

x:\path\php.exe filen.php