EKM - Gas

Hallo

Ich habe mir das EKM Modul zugelegt soweit funktioniert es auch … aber jetzt kommt das Problem Ich möchte den Tagsverbauch ermittlen und den Zählerstand aktuell halten wie muß Ich da vorgehen …

1 Impuls = 0.01 m3
:confused:

du schreibst dir nachts oder morgens den wert in eine (geloggte)variable und 24h später subtrahierst du diese variable vom aktuellen wert, den du danach erneut wieder in die vari schreibst usw.
den diff.wert multiplzierst du mit deinem taktwert also 0,01 und schon hast du deinen täglichen verbrauch
ich habe das mit nem schiebe3
register gelöst, da ich tages-/vortages- und monatswerte ausgeben lasse

für User, die noch nicht so tief in der Thematik stecken und was plug&play-fähiges suchen, habe ich evtl.hier was: RS Energy Forecast

:wink:

Ich habe die Installation durchgeführt aber irgendetwas stimmt nicht. Die Highchart Darstellung baut sich nicht auf. In der User Config habe ich WFE ausgewählt. Variable wurde angegeben (Historie ist vorhanden)
Der Bildschirm sieht dann so aus :

„falscher“ Browser?
ich bin da rel. ratlos, was passiert, wenn du den Link für das HighChart ins WFE mal unsichtbar machst?

Ich habe Chrom und IE getestet. Beides führt zum gleichen Ergebnis.
Wenn ich im WFE den Haken für die High Chart Grafik rausnehme wird der Rest normal angezeigt.
Es muss also die Grafik sein

ok, dann hätten wir das schon mal eingegrenzt. Chrome ist für mich momentan das Nonplusultra was Performance und Kompatibilität angeht - daran solls also nicht liegen.
Hast du mal versucht, mehrfach zu laden (3-4mal hintereinander), Cache geleert?

Hallo

wie muß das Script aussehen Tagesverbrauch und Gesamtverbrauch Ich komme da nicht weiter habe schon alles durchgelesen…

ich habe da ein testscript, varis musst du manuell vorher setzen

<?
//gesamtverbrauch / 24h
//dieses script wird nur morgens um 7.00 uhr getriggert

	$timestamp 	=	time();
	$datum 		=	date("d.m.Y",$timestamp);
	$uhrzeit 	=	date("H:i",$timestamp);
	$stop   		= 	strtotime($datum);

//variablen auslesen
$counter 				=  getvalue(11339 /*[EKM-868\EKM 3 Strom\Counter]*/ );
$startdatum 			=  getvalue(19745 /*[EKM-868\EKM 3 Strom\start_datum]*/ );
$startdatum1         =  strtotime($startdatum);
$startwert  			=  getvalue(43210 /*[EKM-868\EKM 3 Strom\start_wert]*/ );
$startwertkorrektur  =  getvalue(46984 /*[EKM-868\EKM 3 Strom\start_wert_korrektur]*/);
$takt                =  getvalue(15366 /*[EKM-868\EKM 3 Strom	akt]*/ );

$startwertabsolut    =  $startwert-$startwertkorrektur;
$verbrauch           =  ($counter-$startwertabsolut)/$takt;
$tage      				=  round (($stop - $startdatum1)/60/60/24) ; # gesamtlaufzeit in tagen
               			setvalue(41438 /*[EKM-868\EKM 3 Strom\jahrestage]*/ ,$tage);
$delta   				=  $verbrauch/$tage;
$jahr   					=  ($delta * 365.25);
								setvalue(40245 /*[EKM-868\EKM 3 Strom\Prognose_Jahr]*/,$jahr);

		$register1	=	getvalue(11339 /*[EKM-868\EKM 3 Strom\Counter]*/);
							setvalue(10492 /*[EKM-868\EKM 3 Strom\bis letzter tag]*/,$register1);
		$register2	=	getvalue(24744 /*[EKM-868\EKM 3 Strom	agesverbrauch]*/);
		$register3	=	getvalue(38672 /*[EKM-868\EKM 3 Strom\kumuliert]*/);
							setvalue(19817 /*[EKM-868\EKM 3 Strom	agesverbrauch_1]*/,$register2);
							setvalue(36180 /*[EKM-868\EKM 3 Strom\Vortag]*/,$register3);
							setvalue(24744 /*[EKM-868\EKM 3 Strom	agesverbrauch]*/,0);



echo $counter."
";
echo $startdatum1."
";
echo $startwert."
";
echo $startwertkorrektur."
";
echo $takt ."
";
echo $startwertabsolut."
";
echo $verbrauch."
";
echo $tage."
";
echo $delta."
";
echo $jahr."
";

?>
_________________________________________________________________________

<?
//aktuelle tageswerte

$counter = getvalue(11339 /*[EKM-868\EKM 3 Strom\Counter]*/);
$bisher *= getvalue(10492 /*[EKM-868\EKM 3 Strom\bis letzter tag]*/);
$verbrauch_tag = 	$counter-$bisher;
$heute_kw * * *=	$verbrauch_tag/1000;
setvalue(38672 /*[EKM-868\EKM 3 Strom\kumuliert]*/,$heute_kw);

$kwh		=	getvalue(51629 /*[Info2\SystemVars\strompreis/kwh]*/ );
$euro    =  $kwh * $heute_kw;
setvalue(54277 /*[EKM-868\EKM 3 Strom\Kosten heute]*/ ,$euro);

?>

da kannst du erstmal mit rumexperimentieren

und hier die kurze version:



<?

	$AH 					= IPS_GetInstanceIDByName("Archive Handler", 0);   // Archive-Handler-ID angeben
	$varID 				= 12130 /*[Smart Metering\IPS EKM-868\EKM-868 I Hausverteilung\EKM-868 #01 Zentraleinspeisung\Energieverbrauch]*/  ; // Variablen-ID der Ns-Zähler-Variable

	// Daten  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	// Tagesverbrauch heute
	$ts 					= mktime(0,0,0, date("m", time()),  date("d", time()), date("Y", time())); //Startzeit heute
	$te 					= mktime(23,59,59, date("m", time()),  date("d", time()), date("Y", time())) ; //Endzeit heute
	$RawData      		= AC_GetAggregatedValues($AH, $varID, 1, $ts, $te, 10);
	echo "Tagesverbrauch heute: ".round($RawData[0]['Avg'], 2) ." kWh
";



?>

Ausgabe:

Tagesverbrauch heute: 5.61 kWh

was muß genau wohin Counter , Current ???

Bitte um Hilfe - Danke

Ja, das habe ich alles versucht ohne das es etwas geändert hätte. Das Problem liegt irgenwie an meiner Installation. Ich hatte in der Vergangenheit schon ein paar mal vergeblich versucht HighCharts über die Library zum Laufen zu bekommen, leider auch hier ohne Erfolg.
Ich werde mich bei Gelegenheit (bin zur Zeit beruflich viel unterwegs) einmal intensiv mit dem Thema beschäftigen und ein für alle mal lösen.

Hallo Andreas,

ich bekomme neuerdings immer bei (wahrscheinlich) der ersten Ausführung am Tag, heute war es um 00:00:42 Uhr folgende Fehlermeldung:

IPS-Err-PHP 2013-04-06 00:00:42.533 Notice: Undefined variable: Istwerte_heute
Error in Script C:\IP-Symcon_2_0\scripts\18411.ips.php on Line 268

Das ist diese Zeile : foreach($Istwerte_heute as $v)
im Script Energy Forecast DataReader

Kommt aber wie geschrieben nur einmal und auch erst seit 2-3 Tagen.

Hast Du eine Idee?

Hi Horst,

ja, kann ich bestätigen, habe ich auch: immer sehr kurz nach Mitternacht. Sind halt noch keine Meßwerte da,die verarbeitet werden können. Bugfix in der kommenden version. Wird aber etwas dauern, da das Thema temporär auf eine niedrige Prio gerutscht ist :smiley:

Danke, dann weiß ich Bescheid. Man ist halt nur immer froh wenn der Server ohne Fehlermeldungen durchläuft :slight_smile:

GeTapatalk(t) mit meinem Galaxy Tab 10.1N

die Null-Fehler-Philosophie ist grundsätzlich genau richtig. Ich versuche mein System auch auf Null-Fehler zu trimmen ;). Daher sind mir solche Rückmeldungen immer sehr wichtig (einige der gemeldeten Fehler tauchen bei mir z.B. gar nicht auf) :wink:

Ja sehe ich genauso. Habe mein Windows Ereignisprotokoll bis auf einen Bitlocker Fehler, kommt durch die USB Festplatten für’s Backup, auch absolut sauber.
IPS schmeißt eigentlich, bis auf gelegentliche Maximum execution time Fehler, auch nichts mehr raus. Aber da bin ich, dank der Tipps auf Deiner Homepage, dran :smiley:

hey, das ist ja cool, ich hab mir da auch schon ein paar Tipps geholt :D:D:D

Schade, ich dachte ich würde Dir damit was „neues“ erzählen :smiley:

Hallo,

als IP-Symcon Neuling konnte ich bereits erfolgreich meinen Stromzähler einbinden, nun möchte ich gern mit Hilfe des EKM868 den Gaszähler einbinden (Reedkontakt IN-Z61).

Ich habe jetzt im IPS nach dem Hinzufügen vom EKM868 folgende neue Elemente:

  • ProJet Gateway (der entsprechende COM-Port)
  • EKM-868 (Counter) mit den Variablen COUNTER und CURRENT

Dazu habe ich mir für den Anfang einmal ein Script angelegt, dass mir immer erstmal den aktuellen Zählerstand loggt.

$StandVortag = GetValueFloat(50057)      //Gaszählerstand aus letzter Stunde
$CurrentAktuell = GetValueFloat(46013);	 //CURRENT aktuell
$StandAktuell = (3600 / ($CurrentAktuell / 100)) * 0.01;	//(3600 Sekunden pro Stunde / (Zeit zwischen Impulsen / 100)) * 0,01m³ = XXX m3/h

$StandNeu = $StandVortag + $StandAktuell;	//neuer Gaszählerstand

SetValueFloat(50057,$StandNeu);                  //Gaszähler\Zählerstand qm3 (total)

Wenn ich jetzt im EKM868-Counter auf „Wert auslesen“ gehe, erhalten meine beiden Variablen z.B. folgende Werte:

  • Counter: 631
  • Current: 55,529

Jetzt wollte ich mein Script stündlich ausführen, das funktioniert auch. Aber wie kann ich nun die beiden Variablen vom EKM868 stündlich auslesen, oder ist es besser diesen permanent auszulesen und somit jeden Impuls auszulesen…?

Vielleicht habt ihr einen kleinen Tipp für mich?