IPSLibrary Plugwise Energieverbrauchsmessung

Sieht gut aus. Wenn sichs ändert …
Bis nächste Woche. Wir werdens überleben …
Blue Skies …

Hi,

habe eine kleine Änderung vorgenommen mit welcher man die Hintergrundfarbe deiner Webfront Komponenten ändern kann.

Plugwise_Configuration:


//******************************************************************************
// Webfont
//******************************************************************************
	define ( 'BACKGROUNDCOLOR_WEBFRONT', 'transparent');   //#003366

Plugwise_Include:
Die Variable $hintergrundfarbe dort wo sie den Wert #003366 hat durch dies ersetzt:


$hintergrundfarbe = BACKGROUNDCOLOR_WEBFRONT;

Bekomme nach der aktualisierung auf die 1.2.1014 folgende Fehlermeldung:

[Program\IPSLibrary\data\hardware\Plugwise\Others\Sonstige\Leistung] = Variable #19624 fell below minimum value. Current: 0,0, Limit: 0,0

Meine Config:


<?php
/**@defgroup plugwise_configuration Plugwise Konfiguration
* @ingroup plugwise
* @{
*
* Konfigurations File fuer Plugwise.
*
* @file Plugwise_Configuration.inc.php
* @author 
* @version
* Version 0.6, 5.05.2012<br/>
*
*/
	GLOBAL $CircleGroups;
	GLOBAL $Stromtarife;
	GLOBAL $SystemStromzaehlerGroups;
	GLOBAL $ExterneStromzaehlerGroups;
  
//******************************************************************************
// Debug und Logging
//******************************************************************************
	define ( 'DEBUG_MODE' , FALSE );
	define ( 'LOG_MODE'   , FALSE );

//******************************************************************************
// Comport Plugwise-Stick
//******************************************************************************

	define ( 'COMPORT' , 'COM5' );       // COM-Port des Sticks
	define ( 'REFRESH_TIME',1);         // Refreshzeit in Minuten
	define ( 'CALIBRATION_TIME',3);     // Uhrzeit fuer Recalibration + Uhrzeit checken
	define ( 'WAIT_TIME',200); // Wartezeit in Millisekunden nachdem ein Telegramm gesendet wurde
	
	define ( 'AUTOCREATECIRCLE',false);

//******************************************************************************
// Webfont
//******************************************************************************
	define ( 'BACKGROUNDCOLOR_WEBFRONT', 'transparent');   //#003366

	$CircleGroups = array(
	//*******************************************************************************************************************************
	//		    CircleID			   Name 								Gruppe       Ein/Aus   Watt     kWh  Tarifgruppe           in Gesamt
	//*******************************************************************************************************************************
	array("000D6F0000D33B22","Steckdose Bad"					,"Badezimmer"		,"42516 ","2500"	,"66" 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D35C2B","Server"							,"Flur"				,"0","400"	,"1268" 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D33B9F","Fernseher"						,"Wohnzimmer"		,"0","700"	,"102" 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D32BCE","Home Entertainment System"	,"Wohnzimmer"		,"38118 ","500"	,"108" 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D32505","Steckdose Küche"				,"Küche"				,"37452 ","200"	,"6"	 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D33A82","Schreibtisch"					,"Wohnzimmer"		,"1","500"	,"4"	 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D32826","Steckdose Wohnzimmer"			,"Wohnzimmer"		,"1","2000"	,"5"	 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D32BE8","Steckdose Schlafzimmer"		,"Schlafzimmer"	,"35922 ","120"	,"18"	 	, "Tarifgruppe Normal" , 1 ),
	array("000D6F0000D34597","Stehlampe"						,"Wohnzimmer"		,"35722 ","50"	,"1"	 	, "Tarifgruppe Normal" , 1 ),

	// Standardtarifgruppe
	array(""						,""			,""					,"0",""		,""	, "Tarifgruppe Normal"),
  );

/*	$ExterneGroups = array(
	//*************************************************************************************
	// Name Gruppe ID-Leistung ID-KWh Watt kWh Tarifgruppe in Gesamt
	//*************************************************************************************
	array("Hauptzaehler" ,"SYSTEM_MAIN"	,false	, false ,"500"	,"5" , "Normaltarif",true),
	array("Sonstige"	,"SYSTEM_REST"	, false	, false	,"500"	,"5" , "Normaltarif",true),

	//array("Nebenzaehler1","Keller"	,"28466" ,"28466"	,"500"	,"5" , "Tarifgruppe Tag/Nacht",true),
	//array("Nebenzaehler2","Keller"	,"28466" ,"28466"	,"500"	,"5" , "Tarifgruppe Tag/Nacht",true),

   );*/
   
	$ExterneStromzaehlerGroups = array(
	//*************************************************************************************
	// Hier koennen "externe" Stromzaehler (IDs) eingetragen werden
	// Noch nicht ganz fertig
	//		   Name 		       Gruppe    ID-Leistung ID-KWh     Watt     kWh  Tarifgruppe              in Gesamt
	//*************************************************************************************
	//array("Nebenzaehler1","ExKeller"		,"28466" ,"28466"		,"500"	,"5" 	, "Tarifgruppe Tag/Nacht",true),
	//array("Nebenzaehler2","ExKeller"		,"28466" ,"28466"		,"500"	,"5" 	, "Tarifgruppe Tag/Nacht",true),

  			);

	$SystemStromzaehlerGroups = array(
	//*************************************************************************************
	//		   Name 		       Gruppe    ID-Leistung ID-KWh     Watt     kWh  Tarifgruppe              in Gesamt
  // Hier ist der Haupstromzaehler und der nicht erfasste Teil definiert
  // Sind bei Gesamt die beiden IDs auf 0 , gibt es keinen Hauptstromzaehler und es wird
  // der Gesamtstrom aus der Summe aller erfassten Daten gebildet.
  // Sonstige ist zur Zeit ein Platzhalter fuer den nicht erfassten Teil
	//*************************************************************************************
	array("Gesamt" 		,"SYSTEM_MAIN"	,false	, false   ,"500"	,"5" 	, "Tarifgruppe Tag/Nacht",true),
	array("Sonstige"	,"SYSTEM_REST"	, false	, false		,"500"	,"5" 	, "Tarifgruppe Tag/Nacht",true),
  			);
   
	//***************************************************************************
	// Stromtarife und Gruppen immer beginnen um 00:00 Uhr
	//***************************************************************************
	$Stromtarife = array(
		array("25.08.2011","25.08.2012","Tarifgruppe Normal"		,"Normaltarif"	,"00:00","23:59","21,21"),
		array("01.06.2011","31.05.2012","Tarifgruppe Tag/Nacht"	,"Nachttarif"	,"00:00","06:29","18,78"),
		array("01.06.2011","31.05.2012","Tarifgruppe Tag/Nacht"	,"Tagtarif"  	,"06:30","22:29","26,05"),
		array("01.06.2011","31.05.2012","Tarifgruppe Tag/Nacht"	,"Nachttarif"	,"22:30","23:59","18,78"),

		array("25.08.2012","25.08.2013","Tarifgruppe Normal"		,"Normaltarif"	,"00:00","23:59","21,21"),
		array("01.06.2012","31.05.2013","Tarifgruppe Tag/Nacht"	,"Nachttarif"	,"00:00","06:29","18,78"),
		array("01.06.2012","31.05.2013","Tarifgruppe Tag/Nacht"	,"Tagtarif"  	,"06:30","22:29","26,05"),
		array("01.06.2012","31.05.2013","Tarifgruppe Tag/Nacht"	,"Nachttarif"	,"22:30","23:59","18,78"),

				);



  //***************************************************************************
	// AggregationType setzen ( 0 = Standard , 1 = Zaehler ) 
	//***************************************************************************
	define ( 'AGGTYPE' ,1 ) ;
	define ( 'ARCHIVLOGGING' , true);

  //***************************************************************************
	// Highcharts
	//***************************************************************************
	define ( 'HIGHCHARTS' , true ) ;
	define ( 'HIGHCHARTS_ZEITRAUM' , 24 ) ;   // Zeitraum fuer Graph in Stunden
	define ( 'HIGHCHARTS_THEME' , 'ips.js' ) ;   // Highchart Theme

  //***************************************************************************
	// Externe Stromdaten ( zB EKM )
	//***************************************************************************
  define ( 'ID_GESAMTVERBRAUCH',0); // VariablenID des Gesamtverbrauchs
  define ( 'ID_LEISTUNG',0);        // VariablenID der aktuellen Leistung

   //***************************************************************************
	// MySql Anbindung
	//***************************************************************************
	define ( 'MYSQL_ANBINDUNG' , false );
	define ( 'MYSQL_SERVER' , '121.11.58.34' );
	define ( 'MYSQL_USER' , 'xxxxx' );
	define ( 'MYSQL_PASSWORD' , 'xxxxx' );
	define ( 'MYSQL_DATENBANK' , 'Plugwise' );
	define ( 'MYSQL_TABELLE_LEISTUNG' , 'Leistung' );
	define ( 'MYSQL_TABELLE_GESAMT' , 'Gesamtverbrauch' );

?>
  

Ggf ein Fehler der :
ExterneStromzaehlerGroups ???

Gruß und Danke
Ralf

Hallo Heschdy,
kommentier die ExterneStromzaehlerGroups komplett aus und mach noch mal ein onlineupdate.
Hatte auch viele Fehler als ich das Array leer übergeben hab. Ist so wies im Kommentar steht auch noch nicht fertig.

Leider kein Erfolg. Sontiges hat im Webfront auch die Value -0.0.

Habe nun einfach mal in Plugwise_Controller folgendes in Zeile 906 unter $sonst_leistung = $sonst_leistung - $gruppen_leistung; eingefügt

if($sonst_leistung == -0.0)
    $sonst_leistung = 0.0;

Scheint bisher zu funktionieren.

Setz mal die beiden Arrays in $SystemStromzaehlerGroups ganz hinten auf false und mach noch mal ein Onlineupdate.
Ich blick wie schon geschrieben die beiden Abteilungen in der Config auch nicht. Hab auch noch nicht alle Antworten auf meine Fragen bekommen.
Aber damit hab ich wenigstens die Fehler im Log weg bekommen und bekomme im WF wieder normale Werte.

Wird dir aber beim nächsten Update wieder überschrieben.

Bin jetzt eine Woche unterwegs danach gibt es eine css-Datei

Jetzt wird es 1 Woche nix neues geben.
Was du mal schauen kannst.
Gesamt minus der einzelnen Gruppen was da rauskommt.

Hey 1007.

Nachdem ich nun auch in das Thema eingestiegen bin. Tolle Arbeit. Das Ganze sieht ja schon ziemlich ordentlich aus.
Hättest du Zeit den Graph automatisch aktualisieren zu lassen, sofern neue geloggte Daten vorliegen? Außerdem wäre eine Option interessant, um Analog zu „Source“ auch das (versehentliche) Schalten aus dem WF zu verhindern.

Gruß
Dominik

Hallo Dominik,
1007 ist mal für ne Woche weg.
Ob du einen Circle über das WF schalten kannst, legst Du in der Config bei den Circles in der „Spalte“ Ein/Aus fest. 0 = nicht schaltbar.

Dank iPad bin ich ja nicht aus der Welt.
Bei o kann es man nicht schalten der Zustand wird aber angezeigt.

Merk mir das mal als Option :wink:

Danke für die Aufklärung. Irgendwie hatte ich fälschlicherweise hinter der Option etwas anderes vermutet.

Ich hab mir das dann heute schonmal ein wenig selbst angeschaut. Mache einen Ajax request und füge dann entsprechend einen Punkt zum Graphen dazu. Allerdings muss ich erstmal durchblicken, wie ich am Besten an die (neuen) Daten komme.

Zeig mal dein Script wie du einen Punkt hinzufuegst ohne den Graph neu aufzubauen. Wir haben seit zwei Tagen schlechtes Wetter.
Hab also ein bisschen Zeit.

Ich habs jetzt selbst soweit implementiert für einen einzelnen Graphen (einer Serie). Werde jetzt mal Forken und dann einchecken.

PS: Was seh ich denn da…Roomba…Ich glaub das muss ich mir dann auch mal näher ansehen :slight_smile:

Habs eingecheckt.

Habs mir angesehen. Das mit dem step auf true war Absicht von mir.
Hatte das vorher auch auf false, nur sieht das bei zB einem kuehlschrank
So aus als dass der Verbrauch innerhalb einer Stunde langsam ansteigen wuerde
Wenn er sich einschaltet.

Schade. Nimmst du nur einmal pro Stunde einen Messwert vom Kühlschrank? Bei mir mittelt findet der Anstieg nur zwischen 2 Messwerten statt.

Wenn man es auf true setzt, funktioniert die Aktualisierung genauso. Leider mit dem Nachteil, dass der Graph beim neu zeichnen „blinkt“. Sobald man in den Graph hineinzoomt ist dieser Effekt seltsamerweise wieder verschwunden.