IPSPowerControl

Ich fände diese Erweiterung auch ideal. :slight_smile:

Erst mal geiles Script ! Tolle Arbeit und danke für das Teilen.

Bekomme direkt nach der Installation direkt eine Fehlermeldung. Habe noch nichts geändert/konfiguriert.

Jemand vielleicht einen Tipp wodran das liegen könnte?

Ich sehe gerade… ganz vorne auf Seite 5 hatte jemand schon das gleiche Problem… somit hat sich mein Posting erst mal erledigt… ich setze dort mal an und versuche es hinzubekommen. Danke und sorry für die Störung :smiley:

So ich bekomme jetzt keine Fehlermeldung mehr… :slight_smile:

Allerdings füllt sich mein Chart nicht und die Data Variablen bleiben leer und übernehmen nicht den Wert meiner Variablen.
In meiner Variablen wird immer der absolut Zählerstand in kWh gespeichert.

Configuration:



<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */    

	/**@defgroup ipspowercontrol_configuration IPSPowerControl Konfiguration
	 * @ingroup ipspowercontrol
	 * @{
	 *
	 * @file          IPSPowerControl_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *  Version 2.50.1, 29.09.2012<br/>
	 *
	 * Konfigurations File für IPSPowerControl
	 *
	 */

	/**
	 *
	 * Defintion der Mess Sensoren
	 * 
	 * Die Konfiguration erfolgt in Form eines Arrays, für jeden Sensor wird ein Eintrag im Array erzeugt.
	 *
	 *   IPSPC_PROPERTY_NAME    - Name des Sensors
	 *
	 *   IPSPC_PROPERTY_VARWATT - Variable ID die zum Lesen der aktuellen "Watt" Werte verwendet werden soll
	 *
	 *   IPSPC_PROPERTY_VARKWH  - Variable ID die zum Lesen der aktuellen "kWh" Werte verwendet werden soll
	 *
	 *   IPSPC_PROPERTY_VARM3  - Variable ID die zum Lesen der aktuellen Gas bzw. Wasser Werte verwendet werden soll
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 * Beispiel:
	 * @code
        function IPSPowerControl_GetSensorConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_VARWATT     => 32902,
                          IPSPC_PROPERTY_VARKWH      => 40061,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_VARWATT     => 44599,
                          IPSPC_PROPERTY_VARKWH      => 41795,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_VARWATT     => 26373,
                          IPSPC_PROPERTY_VARKWH      => 21487,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_VARM3       => 12345,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_VARM3       => 23456,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Mess Sensoren
	 */
	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_VARWATT     => null,
			              IPSPC_PROPERTY_VARKWH      => 27320 /*[Technik\Energiezähler RS485\Stromzähler 01\Zählerstand]*/,
			              ),
			);
	}
	

	/**
	 *
	 * Defintion der Visualisierungs Werte
	 * 
	 * Die Konfiguration erfolgt in Form eines Arrays, für jede Visualisierungs Variable wird ein Eintrag im Array erzeugt.
	 *
	 *   IPSPC_PROPERTY_NAME      - Name der Visualisierungs Variable
	 *
	 *   IPSPC_PROPERTY_DISPLAY   - Spezifiziert ob der Wert in der GUI visualisiert werden soll
	 *
	 *   IPSPC_PROPERTY_VALUETYPE - Werte Type der Variable, mögliche Werte:
	 *                                IPSPC_VALUETYPE_TOTAL  ... definiert die Variable als Summenwert über alle Stromkreise
	 *                                IPSPC_VALUETYPE_DETAIL ... definiert die Variable als Detailwert eines Stromkreises
	 *                                IPSPC_VALUETYPE_OTHER  ... übrige Werte (weder Total noch Detail)
	 *                                IPSPC_VALUETYPE_WATER  ... Werte eines Wasserverbrauchs Sensors
	 *                                IPSPC_VALUETYPE_GAS    ... Werte eines Gas Sensors
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSPowerControl_GetValueConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Total',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),
            5    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_GAS,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Visualisierungs Werte
	 */
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Stromzaehler',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
		);
	}

	/** IPSPowerControl Stromkosten  
	 *
	 * Definiert die Stromkosten in Cents per kWh, die für die Berechnung der Werte verwendet
	 * werden soll.
	 *
	 */
	define ("IPSPC_ELECTRICITYRATE",    18 /*Cents per KWh*/);

	/** IPSPowerControl Wasserkosten  
	 *
	 * Definiert die Kosten für Wasser in Euro pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_WATERRATE",    130 /*Cents per m³*/);

	/** IPSPowerControl Umrechnung von Gas m³  in kWh
	 *
	 * Definiert den Faktor, der für die Umrechung von m³ in kWh verwendet werden soll (dieser Faktor 
	 * ist von mehreren Dingen abhängig, eine genaue Angabe ist vom jeweiligen Gasversorger zu 
	 * erfragen. Für eine grobe Annäherungsrechung kann ein Faktor von 10 verwendet werden).
	 *
	 */
	define ("IPSPC_GASRATE_KWH",    10.6 /*1m³ = kWh*/);

	/** IPSPowerControl Gaskosten  
	 *
	 * Definiert die Kosten für Gas in Cent pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_GASRATE_EURO",    7.6 /*Cents per KWh*/);


	/** IPSPowerControl Aktualisierungs Interval Watt 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten Watt Verbrauchswerte.
	 * Die Angabe erfolgt in Sekunden
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_WATT",   60);

	/** IPSPowerControl Aktualisierungs Interval kWh 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten kWh Verbrauchswerte.
	 * Die Angabe erfolgt in Minuten
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_KWH",   60);

	/** @}*/
?>


Custom (nichts geändert):


<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */

	/**@addtogroup ipspowercontrol_configuration
	 * @{
	 * 
	 * Es gibt derzeit 2 Callback Methoden, diese ermöglichen es eigene Werte für
	 * die Visualisierung zu Berechnen.
	 * So ist es zum Beispiel möglich den Gesamtverbrauch zu berechnen oder den Verbrauch 
	 * einzelner Gewerke herauszurechnen von denen man weiß, dass sie gerade in Betrieb sind.
	 * 
	 * Funktionen:
	 *  - function IPSPowerControl_CalculateValuesWatt() 
	 *  - function IPSPowerControl_CalculateValuesKWH() 
	 * 
	 * @file          IPSPowerControl_Custom.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *   Version 2.50.1, 29.09.2012<br/>
	 *
	 * Callback Methoden für IPSPowerControl
	 *
	 */

	/** 
	 * Diese Funktion wird zur Berechnung der "Watt" Verbrauchswerte aufgerufen
	 *
	 * Man kann hier ausgehend von den Sensor Werten noch zusätzliche Werte Berechnen und für die Visualisierung 
	 * bereitstellen.
	 *
	 * Parameters:
	 *   @param array $sensorList Liste mit Sensor Werten
	 *   @param array $valueList Liste der zu berechnenden Werte
	 *   @result array Liste der berechneten Visualisierungs Werte
	 *
	 */

	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
		$returnList = $valueList;
		foreach ($sensorList as $idx=>$value) {
			$returnList[$idx] = $value;
		}
		return $returnList;
	}

	/** 
	 * Diese Funktion wird zur Berechnung der Verbrauchswerte in KWH aufgerufen
	 *
	 * Man kann hier ausgehend von den Sensor Werten noch zusätzliche Werte Berechnen und für die Visualisierung 
	 * bereitstellen.
	 *
	 * Parameters:
	 *   @param array $sensorList Liste mit Sensor Werten
	 *   @param array $valueList Liste der zu berechnenden Werte
	 *   @result array Liste der berechneten Visualisierungs Werte
	 *
	 */
	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
		$returnList = $valueList;
		foreach ($sensorList as $idx=>$value) {
			$returnList[$idx] = $value;
		}
		return $returnList;
	}

	/** @}*/

?>


Nachdem ich in der Configuration den Index von 1 => auf 0 => geändert habe, musste die Variable SelectValue1 auf 0 ändern, da ich immer die Fehlermeldung erhalten habe das er sie nicht finden konnte (ist ja auch noch logisch). Jetzt bekomme ich keine Fehlermeldung mehr, aber es tut sich nichts.

EDIT
Habe jetzt noch gelesen das man das Script Laden soll… dann konfigurieren… erst dann auf installieren klicken soll. Irgendwie habe ich das in der Anleitung nicht so verstanden. Habe es jetzt noch mal so gemacht… und da hatte ich die Fehlermeldung mit der fehlenden Variable 0 nicht. Trotzdem bleibt das Problem das die Data Variablen leer bleiben und somit auch nichts im Graph angezeigt wird.

EDIT #2
Komisch… irgendwie kam jetzt ein Wert rein. Also ich warte jetzt einfach mal ab was so passiert.

EDIT #3
Ja es scheint zu funktionieren :slight_smile: Also somit habe ich mir doch selbst helfen können. Sorry fürs „nerven“.

Ich habe eine Homematic Stromdose mit Messung. Welche ID muss ich denn für die Werte:

IPSPC_PROPERTY_VARWATT =>
IPSPC_PROPERTY_VARKWH =>

nehmen damit ich die Werte bekomme?

Gruß
KHOne

Hallo
ich habe noch ein paar Probleme mit den Chart Anzeigen des Powercontrol Modules.
seit kurzem habe ich zwei Wasseruhren mit S0 Ausgang. die Übertragung funtioniert per EKM und ProJet.
Muss das EKM kofiguriert werden? Im Anhang meine Konfiguration:

Außerdem habe ich das Problem, dass die Wassersensoren im PowerControl zwar angezeigt werden, aber keine Daten enthalten. Sie sind auch nur Reiter „EURO“ unten aufgeführt. Angezeigt wird aber nichts???

Auch kann ich die Stromkreise zwar abschalten, angezeigt wird aber immer das gleiche?
Kann mir bitte jemand sagen wo der Fehler liegt?
Bin gerade etwas verwirrt!
Danke

Konfigurationen:
Config:

<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */    

	/**@defgroup ipspowercontrol_configuration IPSPowerControl Konfiguration
	 * @ingroup ipspowercontrol
	 * @{
	 *
	 * @file          IPSPowerControl_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *  Version 2.50.1, 29.09.2012<br/>
	 *
	 * Konfigurations File für IPSPowerControl
	 *
	 */

	/**
	 *
	 * Defintion der Mess Sensoren
	 * 
	 * Die Konfiguration erfolgt in Form eines Arrays, für jeden Sensor wird ein Eintrag im Array erzeugt.
	 *
	 *   IPSPC_PROPERTY_NAME    - Name des Sensors
	 *
	 *   IPSPC_PROPERTY_VARWATT - Variable ID die zum Lesen der aktuellen "Watt" Werte verwendet werden soll
	 *
	 *   IPSPC_PROPERTY_VARKWH  - Variable ID die zum Lesen der aktuellen "kWh" Werte verwendet werden soll
	 *
	 *   IPSPC_PROPERTY_VARM3  - Variable ID die zum Lesen der aktuellen Gas bzw. Wasser Werte verwendet werden soll
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 * Beispiel:
	 * @code
        function IPSPowerControl_GetSensorConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_VARWATT     => 32902,
                          IPSPC_PROPERTY_VARKWH      => 40061,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_VARWATT     => 44599,
                          IPSPC_PROPERTY_VARKWH      => 41795,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_VARWATT     => 26373,
                          IPSPC_PROPERTY_VARKWH      => 21487,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_VARM3       => 12345,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_VARM3       => 23456,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Mess Sensoren
	 */
	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Werkstatt',
			              IPSPC_PROPERTY_VARWATT     => null,
			              IPSPC_PROPERTY_VARKWH      => 39233,
			              ),
		   1    => array(IPSPC_PROPERTY_NAME        => 'Privat',
			              IPSPC_PROPERTY_VARWATT     => null,
			              IPSPC_PROPERTY_VARKWH      => 49228,
			              ),
			2    => array(IPSPC_PROPERTY_NAME        => 'Fernseh',
			              IPSPC_PROPERTY_VARWATT     => 43311,
			              IPSPC_PROPERTY_VARKWH      => null,
			              ),
         3    => array(IPSPC_PROPERTY_NAME        => 'Sauna',
			              IPSPC_PROPERTY_VARWATT     => 29753,
			              IPSPC_PROPERTY_VARKWH      => null,
			              ),
			4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                       IPSPC_PROPERTY_VARM3       => 12822,
                          ),
         5    => array(IPSPC_PROPERTY_NAME        => 'Zysterne',
                       IPSPC_PROPERTY_VARM3       => 56868,
                          ),
			
			);
	}
	

	/**
	 *
	 * Defintion der Visualisierungs Werte
	 * 
	 * Die Konfiguration erfolgt in Form eines Arrays, für jede Visualisierungs Variable wird ein Eintrag im Array erzeugt.
	 *
	 *   IPSPC_PROPERTY_NAME      - Name der Visualisierungs Variable
	 *
	 *   IPSPC_PROPERTY_DISPLAY   - Spezifiziert ob der Wert in der GUI visualisiert werden soll
	 *
	 *   IPSPC_PROPERTY_VALUETYPE - Werte Type der Variable, mögliche Werte:
	 *                                IPSPC_VALUETYPE_TOTAL  ... definiert die Variable als Summenwert über alle Stromkreise
	 *                                IPSPC_VALUETYPE_DETAIL ... definiert die Variable als Detailwert eines Stromkreises
	 *                                IPSPC_VALUETYPE_OTHER  ... übrige Werte (weder Total noch Detail)
	 *                                IPSPC_VALUETYPE_WATER  ... Werte eines Wasserverbrauchs Sensors
	 *                                IPSPC_VALUETYPE_GAS    ... Werte eines Gas Sensors
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSPowerControl_GetValueConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Total',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),
            5    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_GAS,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Visualisierungs Werte
	 */
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Total',
                       IPSPC_PROPERTY_DISPLAY     => true,
                       IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
			1    => array(IPSPC_PROPERTY_NAME        => 'Werkstatt',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
         2    => array(IPSPC_PROPERTY_NAME        => 'Privat',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
         3    => array(IPSPC_PROPERTY_NAME        => 'Fernseh',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
         4    => array(IPSPC_PROPERTY_NAME        => 'Sauna',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			5    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                       IPSPC_PROPERTY_DISPLAY     => true,
                       IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),
         6    => array(IPSPC_PROPERTY_NAME        => 'Zysterne',
                       IPSPC_PROPERTY_DISPLAY     => true,
                       IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),

		);
	}

	/** IPSPowerControl Stromkosten  
	 *
	 * Definiert die Stromkosten in Cents per kWh, die für die Berechnung der Werte verwendet
	 * werden soll.
	 *
	 */
	define ("IPSPC_ELECTRICITYRATE",    30 /*Cents per KWh*/);

	/** IPSPowerControl Wasserkosten  
	 *
	 * Definiert die Kosten für Wasser in Euro pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_WATERRATE",    130 /*Cents per m³*/);

	/** IPSPowerControl Umrechnung von Gas m³  in kWh
	 *
	 * Definiert den Faktor, der für die Umrechung von m³ in kWh verwendet werden soll (dieser Faktor 
	 * ist von mehreren Dingen abhängig, eine genaue Angabe ist vom jeweiligen Gasversorger zu 
	 * erfragen. Für eine grobe Annäherungsrechung kann ein Faktor von 10 verwendet werden).
	 *
	 */
	define ("IPSPC_GASRATE_KWH",    10.6 /*1m³ = kWh*/);

	/** IPSPowerControl Gaskosten  
	 *
	 * Definiert die Kosten für Gas in Cent pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_GASRATE_EURO",    7.6 /*Cents per KWh*/);


	/** IPSPowerControl Aktualisierungs Interval Watt 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten Watt Verbrauchswerte.
	 * Die Angabe erfolgt in Sekunden
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_WATT",   60);

	/** IPSPowerControl Aktualisierungs Interval kWh 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten kWh Verbrauchswerte.
	 * Die Angabe erfolgt in Minuten
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_KWH",   60);

	/** @}*/
?>

custom:

<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */

	/**@addtogroup ipspowercontrol_configuration
	 * @{
	 * 
	 * Es gibt derzeit 2 Callback Methoden, diese ermöglichen es eigene Werte für
	 * die Visualisierung zu Berechnen.
	 * So ist es zum Beispiel möglich den Gesamtverbrauch zu berechnen oder den Verbrauch 
	 * einzelner Gewerke herauszurechnen von denen man weiß, dass sie gerade in Betrieb sind.
	 * 
	 * Funktionen:
	 *  - function IPSPowerControl_CalculateValuesWatt() 
	 *  - function IPSPowerControl_CalculateValuesKWH() 
	 * 
	 * @file          IPSPowerControl_Custom.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *   Version 2.50.1, 29.09.2012<br/>
	 *
	 * Callback Methoden für IPSPowerControl
	 *
	 */

	/** 
	 * Diese Funktion wird zur Berechnung der "Watt" Verbrauchswerte aufgerufen
	 *
	 * Man kann hier ausgehend von den Sensor Werten noch zusätzliche Werte Berechnen und für die Visualisierung 
	 * bereitstellen.
	 *
	 * Parameters:
	 *   @param array $sensorList Liste mit Sensor Werten
	 *   @param array $valueList Liste der zu berechnenden Werte
	 *   @result array Liste der berechneten Visualisierungs Werte
	 *
	 */

	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
		// Berechnung der Watt Visualisierungs Werte
    $returnList[1] = IPSPowerControl_KWH2Watt(0, 1/75, true);
    $returnList[2] = IPSPowerControl_KWH2Watt(1, 1/75, true);
    $returnList[3] = IPSPowerControl_Value2M3(4, 1/4000, true);
    $returnList[4] = IPSPowerControl_Value2M3(5, 1/4000, true);
    $returnList[0] = $returnList[1] + $returnList[2];

    return $returnList;
	}

	/** 
	 * Diese Funktion wird zur Berechnung der Verbrauchswerte in KWH aufgerufen
	 *
	 * Man kann hier ausgehend von den Sensor Werten noch zusätzliche Werte Berechnen und für die Visualisierung 
	 * bereitstellen.
	 *
	 * Parameters:
	 *   @param array $sensorList Liste mit Sensor Werten
	 *   @param array $valueList Liste der zu berechnenden Werte
	 *   @result array Liste der berechneten Visualisierungs Werte
	 *
	 */
	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
      $returnList = $valueList;
      $returnList[1] = IPSPowerControl_Value2KWH(0, 1/75, true);
      $returnList[2] = IPSPowerControl_Value2KWH(1, 1/75, true);
      $returnList[3] = IPSPowerControl_Watt2KWH(2);
      $returnList[4] = IPSPowerControl_Watt2KWH(3);
      $returnList[3] = IPSPowerControl_Value2M3(4, 1/4000, true);
      $returnList[4] = IPSPowerControl_Value2M3(5, 1/4000, true);
      $returnList[0] = $returnList[1] + $returnList[2];



    return $returnList;
   }

	/** @}*/

?>

Das sieht nicht korrekt aus:


      $returnList[3] = IPSPowerControl_Value2M3(4, 1/4000, true);
      $returnList[4] = IPSPowerControl_Value2M3(5, 1/4000, true);

versuch mal:


      $returnList[5] = IPSPowerControl_Value2M3(4, 1/4000, true);
      $returnList[6] = IPSPowerControl_Value2M3(5, 1/4000, true);

  • hab ich mal geändert. aber warum 5 und 6?
  • warum lassen sich die Stromkreise nicht in der Ansicht abschalten?
  • mus ich das EKM auch konfigurieren?
    Gruß Henry

… muss mich verbessern, die Stromkreise lassen sich nicht in der Ansicht Details und Total abschalten! dort werden immer alle angezeigt

@Brownson
Kannst Du bitte den Standardwert der „function IPSPowerControl_GetValueConfiguration()“ in der IPSPowerControl_Configuration.inc.php entsprechend korrigeren?

Das Problem dürfte sonst jeder haben, der das Modul nach der Installation ohne Korrektur verwendet. So wie ich auch. :wink:

Dank und Grüße
galleto

Danke, habs geändert…

Hi an alle

Kann mir jemand eine Config (beide Files) für PowerControl in Verbindung mit EKM868 hier posten ?

Bei mir werden die Werte zwar eingelesen, aber nicht summiert. Dazu erhalte ich bei jedem Wechsel im Tab einen nicht definierten Error.

Dank im voraus
Michael

PS. oder lieber mein Skript hier posten ?

@Andreas, @Swissboy, @Henry1970, @KHOne and others,

I have read the thema IPSPowerControl and the wiki several times but still I don’t understand it completely. It think it must be because my German is getting rusty ;). I hope that someone can help me and explain what I am doing wrong, or give me the correct values ;).

I have two HomeMatic switches with the power measuring inside, the HM-ES-PMSw1-Pl (Funk-Schaltaktor (1fach) mit Leistungsmessung Steckdose). The HM-ES-PMSw1-Pl has a the Watt value (POWER) is for the current Watt’s and a value for the total Energy that went trough the HM-ES-PMSw1-Pl (ENERGY_COUNTER) in Watts/h.

	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_VARWATT     => 36633 /*[POWER]*/,
			              IPSPC_PROPERTY_VARKWH      => 30344 /*[ENERGY_COUNTER]*/,
                 ),
			1    => array(IPSPC_PROPERTY_NAME        => 'L2',
			              IPSPC_PROPERTY_VARWATT     => 44215 /*[POWER]*/,
			              IPSPC_PROPERTY_VARKWH      => 23140 /*[ENERGY_COUNTER]*/,
	              ),

			);
	}

I kept the next one easy ;):

	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			1    => array(IPSPC_PROPERTY_NAME        => 'L2',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			2    => array(IPSPC_PROPERTY_NAME        => 'Total',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
		);
	}

After commenting out '$returnList = $valueList the calculation of the Watt’s works perfect!!!.

	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
	//	$returnList = $valueList;

		$returnList[0] = $sensorList[0];
		$returnList[1] = $sensorList[1];
		$returnList[2] = $returnList[0]+$returnList[1];
		return $returnList;
	}

Now the problem, the calculation of the Kwh. Like you suggested Andreas I divided the value trough 1000. But the value that comes out is the Watt value and NOT the total energy used!

	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
//		$returnList = $valueList;

		$returnList[0] = $sensorList[0]/1000;
        $returnList[1] = $sensorList[1]/1000;
		$returnList[2] = $returnList[0]+$returnList[1];

		return $returnList;
	}

Why does it return the Watt value at the KWH calculation? What is the correct sensorList value?

Regards,
Robert

Hi Robert,

maybe you have simply mixed up the variable IDs in the sensor configuration!

Hallo,

bin noch neu hier und habe mal eine Frage. Ich bin der Ansicht dass ich in den Skripten einen Fehler enteckt habe hierzu mal was ich vorhatte:

  1. Ich wollte die Aktualisierungszeit der Watt-Werte auf 10s herunternehmen an nachfolgender Stelle:

/** IPSPowerControl Aktualisierungs Interval Watt 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten Watt Verbrauchswerte.
	 * Die Angabe erfolgt in Sekunden
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_WATT",   10);

  1. Danach habe ich im Costum-Skript die Zähler eingerichtet von den Werten wo ich nur Live-Variablen habe

	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
		//$returnList = $valueList;
		//foreach ($sensorList as $idx=>$value) {
		//	$returnList[$idx] = $value;
		//}
		
		$returnList[0] = $sensorList[0];
    	$returnList[1] = $sensorList[1];
    	$returnList[2] = $sensorList[2];
		$returnList[3] = $sensorList[3];
		
		IPSPowerControl_Watt2KWH  (1);
		IPSPowerControl_Watt2KWH  (2);
		IPSPowerControl_Watt2KWH  (3);
		
		return $returnList;
	}

  1. Jetzt habe ich die Installationsroutine durchlaufen lassen. Diese legte mir die 3 Zähler für die Watt-Werte an, was soweit alles richtig war.

  2. Jetzt habe ich gemerkt dass die angelegten Zähler viel zu schnell groß wurden. (Bei einer Einstellung von 60s funktionieren diese korrekt.)

  3. Also habe ich mal gesucht woran es hängen konnte und habe auch tatsächlich was gefunden.


function IPSPowerControl_Watt2KWH ($sensorIdx, $factor=1) {
		$sensorConfig   = IPSPowerControl_GetSensorConfiguration();
		$sensorData     = $sensorConfig[$sensorIdx];
		$variableIdWatt = $sensorData[IPSPC_PROPERTY_VARWATT];
		
		$variableIdLast = IPSPowerControl_GetCustomVariableId($variableIdWatt, 'Watt2KWH');
		$valueLast      = GetValue($variableIdLast); 

		$result         = $valueLast + GetValue($variableIdWatt) * $factor / 1000 / IPSPC_REFRESHINTERVAL_WATT;
		SetValue($variableIdLast, $result);

		return $result;
	}

Die Variable „IPSPC_REFRESHINTERVAL_WATT“ enthält ja den eingestellten Sekundenwert, wenn ich jetzt statt 60s 10s eintrage wird der berechnete Wert mit dieser Formel ja größer! Deshalb habe ich hier die Formel geändert in (3600 / IPSPC_REFRESHINTERVAL_WATT).

Jetzt hat der aufaddierte Wert gepasst nur das Action-Script wurde zu selten ausgeführt (alle 60s), also dieses noch auf 10s geändert und nun scheint alles richtig zu laufen.

Hoffe ich kann damit weiterhelfen und nicht dass ich hier Fehler bei der Konfiguration gemacht habe.

Gruß
bretzis

Hallo,

ich habe 2x EKM868 und habe daran 8 Stromverbraucher angeschlossen.

Diese habe ich in IPS eingebunden und bekomme nun aktuell den aktuellen Stromverbrauch in Watt.

Sehr gerne würde ich dieses Modul hier nutzen um auch kWh Werte etc. auszuwerten.

Allerdings ist es für mich als Laien sehr schwierig durch das Wiki und Script durchzublicken.

Ich bin mir sicher, wenn dies noch etwas leichter erklärt werden würde, dass auch noch mehr User das Modul nutzen würden.

Jetzt erst einmal würde ich mich wirklich wahnsinnig freuen, wenn mir jemand bei der Umsetzung helfen würde.

Habe bisher folgendes in der Config abgeändert. Die Custom ist noch unverändert.


<?
        /*
         * This file is part of the IPSLibrary.
         *
         * The IPSLibrary is free software: you can redistribute it and/or modify
         * it under the terms of the GNU General Public License as published
         * by the Free Software Foundation, either version 3 of the License, or
         * (at your option) any later version.
         *
         * The IPSLibrary is distributed in the hope that it will be useful,
         * but WITHOUT ANY WARRANTY; without even the implied warranty of
         * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
         * GNU General Public License for more details.
         *
         * You should have received a copy of the GNU General Public License
         * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
         */

        /**@defgroup ipspowercontrol_configuration IPSPowerControl Konfiguration
         * @ingroup ipspowercontrol
         * @{
         *
         * @file          IPSPowerControl_Configuration.inc.php
         * @author        Andreas Brauneis
         * @version
         *  Version 2.50.1, 29.09.2012<br/>
         *
         * Konfigurations File für IPSPowerControl
         *
         */

        /**
         *
         * Defintion der Mess Sensoren
         *
         * Die Konfiguration erfolgt in Form eines Arrays, für jeden Sensor wird ein Eintrag im Array erzeugt.
         *
         *   IPSPC_PROPERTY_NAME    - Name des Sensors
         *
         *   IPSPC_PROPERTY_VARWATT - Variable ID die zum Lesen der aktuellen "Watt" Werte verwendet werden soll
         *
         *   IPSPC_PROPERTY_VARKWH  - Variable ID die zum Lesen der aktuellen "kWh" Werte verwendet werden soll
         *
         * Eine ausführliche Beispielliste findet sich auch im Example Ordner
         *
         * Beispiel:
         * @code
        function IPSPowerControl_GetSensorConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_VARWATT     => 32902,
                          IPSPC_PROPERTY_VARKWH      => 40061,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_VARWATT     => 44599,
                          IPSPC_PROPERTY_VARKWH      => 41795,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_VARWATT     => 26373,
                          IPSPC_PROPERTY_VARKWH      => 21487,
                          ),
             );
        }
         * @endcocde
         *
         * @return string Liefert Array mit den Daten der Mess Sensoren
         */
         
	 function IPSPowerControl_GetSensorConfiguration() {
    return array(
      0    => array(IPSPC_PROPERTY_NAME        => 'IPS-PC',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
      1    => array(IPSPC_PROPERTY_NAME        => 'Ozon-Pumpe',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
      2    => array(IPSPC_PROPERTY_NAME        => 'Filter-Pumpe',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
       3    => array(IPSPC_PROPERTY_NAME        => 'Skimmer',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
       4    => array(IPSPC_PROPERTY_NAME        => 'Ozonkonzentrator1',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
       5    => array(IPSPC_PROPERTY_NAME        => 'Ozonkonzentrator2',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
       6    => array(IPSPC_PROPERTY_NAME        => 'Sauerstoffkonzentrator',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
       7    => array(IPSPC_PROPERTY_NAME        => 'UVC',
                    IPSPC_PROPERTY_VARWATT     => 45605 /*[Stromverbrauch\EKM 2\Stromverbrauch IPS PC\Aktueller Stromverbrauch in Watt]*/,
                    IPSPC_PROPERTY_VARKWH      => null,
                    ),
     
                  
      );
	}
	

	/**
	 *
	 * Defintion der Visualisierungs Werte
	 * 
	 * Die Konfiguration erfolgt in Form eines Arrays, für jede Visualisierungs Variable wird ein Eintrag im Array erzeugt.
	 *
	 *   IPSPC_PROPERTY_NAME      - Name der Visualisierungs Variable
	 *
	 *   IPSPC_PROPERTY_DISPLAY   - Spezifiziert ob der Wert in der GUI visualisiert werden soll
	 *
	 *   IPSPC_PROPERTY_VALUETYPE - Werte Type der Variable, mögliche Werte:
	 *                                IPSPC_VALUETYPE_TOTAL  ... definiert die Variable als Summenwert über alle Stromkreise
	 *                                IPSPC_VALUETYPE_DETAIL ... definiert die Variable als Detailwert eines Stromkreises
	 *                                IPSPC_VALUETYPE_OTHER  ... übrige Werte (weder Total noch Detail)
	 *                                IPSPC_VALUETYPE_WATER  ... Werte eines Wasserverbrauchs Sensors
	 *                                IPSPC_VALUETYPE_GAS    ... Werte eines Gas Sensors
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSPowerControl_GetValueConfiguration() {
          return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'L1',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'L2',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'L3',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Total',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),
            5    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_GAS,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Visualisierungs Werte
	 */
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_OTHER,
			              ),
		);
	}

	/** IPSPowerControl Stromkosten  
	 *
	 * Definiert die Stromkosten in Cents per kWh, die für die Berechnung der Werte verwendet
	 * werden soll.
	 *
	 */
	define ("IPSPC_ELECTRICITYRATE",    18 /*Cents per KWh*/);

	/** IPSPowerControl Wasserkosten  
	 *
	 * Definiert die Kosten für Wasser in Euro pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_WATERRATE",    130 /*Cents per m³*/);

	/** IPSPowerControl Umrechnung von Gas m³  in kWh
	 *
	 * Definiert den Faktor, der für die Umrechung von m³ in kWh verwendet werden soll (dieser Faktor 
	 * ist von mehreren Dingen abhängig, eine genaue Angabe ist vom jeweiligen Gasversorger zu 
	 * erfragen. Für eine grobe Annäherungsrechung kann ein Faktor von 10 verwendet werden).
	 *
	 */
	define ("IPSPC_GASRATE_KWH",    10.6 /*1m³ = kWh*/);

	/** IPSPowerControl Gaskosten  
	 *
	 * Definiert die Kosten für Gas in Cent pro m³, dieser Wert wird für die Umrechung in die 
	 * Kosten bei der Generierung der Charts verwendet.
	 *
	 */
	define ("IPSPC_GASRATE_EURO",    7.6 /*Cents per KWh*/);


	/** IPSPowerControl Aktualisierungs Interval Watt 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten Watt Verbrauchswerte.
	 * Die Angabe erfolgt in Sekunden
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_WATT",   60);

	/** IPSPowerControl Aktualisierungs Interval kWh 
	 *
	 * Definiert das Interval für die Aktualisierung der berechneten kWh Verbrauchswerte.
	 * Die Angabe erfolgt in Minuten
	 *
	 */
	define ("IPSPC_REFRESHINTERVAL_KWH",   60);

	/** @}*/
?>


Was muss ich jetzt noch alles ändern um wenigstens kWh Werte zu bekommen? Bitte helft mir den Einstieg zu schaffen…

Ich schlag mich auch dauernd mit dem EKM und kWh rum. Hier ist mal meine Config. Ich habe die ID für VARKWH auf den Counter gelegt in der Annahme, dass dies notwendig ist für die spätere Umrechnung mittels Value2kwh.

Counter ist als Zähler definiert mit DB-Logging.
Value ist als Standard definiert mit DB-Logging.

    function IPSPowerControl_GetSensorConfiguration() {
      return array(
        0    =&gt; array(IPSPC_PROPERTY_NAME        =&gt; 'Gesamtstrom',
                      IPSPC_PROPERTY_VARWATT     =&gt; 13659,
                      IPSPC_PROPERTY_VARKWH      =&gt; 44992,
                      ),
         );
    }


    function IPSPowerControl_GetValueConfiguration() {
      return array(
         0    =&gt; array(IPSPC_PROPERTY_NAME        =&gt; 'Gesamtstrom',
                       IPSPC_PROPERTY_DISPLAY     =&gt; true,
                       IPSPC_PROPERTY_VALUETYPE   =&gt; IPSPC_VALUETYPE_TOTAL,
                      ),

         );
    }

Die Custom sieht bei mir so aus:

function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
    $returnList = $valueList;
    foreach ($sensorList as $idx=&gt;$value) {
        $returnList[$idx] = $value;
    }
    return $returnList;
}

/**
 * Diese Funktion wird zur Berechnung der Verbrauchswerte in KWH aufgerufen
 *
 * Man kann hier ausgehend von den Sensor Werten noch zusätzliche Werte Berechnen und für die Visualisierung
 * bereitstellen.
 *
 * Parameters:
 *   @param array $sensorList Liste mit Sensor Werten
 *   @param array $valueList Liste der zu berechnenden Werte
 *   @result array Liste der berechneten Visualisierungs Werte
 *
 */
function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
    $returnList = $valueList;
    foreach ($sensorList as $idx=&gt;$value) {
        /*$returnList[$idx] = $value;*/
        $returnList[$idx] =  IPSPowerControl_Value2KWH(0, 1/2000, true);
    }
    return $returnList;
}

Input oder ne Doku für Dummies wären sehr willkommen.

Michael

Ich wäre auch an einer Doku sehr interessiert. Ich hab aktuelle Probleme mit der Berechnung der KWH Werte.

Hier ist mir nicht ganz klar wie das ganze eingestellt werden muss das ich aus den Watt-Werten meiner HM-Aktoren mit Leistungsmessung die KWH Werte berechnet werden. Bis jetzt kommt da nur mist raus.

Gruß
Mirank

Moin Mirank!

Ich hab mir dazu eine Hilfsvariable angelegt, bzw. mehrere…

Beispiel:

// Hier Variablen der Leistungsmesser eintragen, welche zusammengerechnet werden sollen
$L01_kWh = GetValue(24886 /*[Hardware\HomeMatic\Zwischenstecker\L01 (Waschmaschine)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);
$L02_kWh = GetValue(18879 /*[Hardware\HomeMatic\Zwischenstecker\L02 (Wäschetrockner)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);
$L03_kWh = GetValue(33886 /*[Hardware\HomeMatic\Zwischenstecker\L03 (Küche - Kühlschrank und Mikrowelle)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);
$L04_kWh = GetValue(10901 /*[Hardware\HomeMatic\Zwischenstecker\L04 (Aquarium)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);
$L05_kWh = GetValue(13512 /*[Hardware\HomeMatic\Zwischenstecker\L05 (PC & Multimedia)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);
$L06_kWh = GetValue(20886 /*[Hardware\HomeMatic\Zwischenstecker\L06 (Terarrium)\Zähler & Kosten\ENERGY_COUNTER_TOTAL]*/);

$strompreis = GetValue(43453 /*[Skripte & Variablen\Stromverbrauch\Strompreis]*/);
$stromcounter_array = array($L01_kWh, $L02_kWh, $L03_kWh, $L04_kWh, $L05_kWh, $L06_kWh);  // Meine Stromzähler


// Berechnungen
$gesamtstromverbrauch_kWh = array_sum($stromcounter_array);
$gesamtstromverbrauch_Wh = $gesamtstromverbrauch_kWh * 1000;

SetValue(27801 /*[Skripte & Variablen\Stromverbrauch\Stromverbrauch - ALLES - Wh]*/, $gesamtstromverbrauch_Wh);
SetValue(38485 /*[Skripte & Variablen\Stromverbrauch\Stromverbrauch - ALLES - kWh]*/, $gesamtstromverbrauch_kWh);

$StromkostenGesamt = $gesamtstromverbrauch_kWh * $strompreis;
SetValue(27433 /*[Skripte & Variablen\Stromverbrauch\Stromkosten - ALLES]*/, $StromkostenGesamt);

Kurz gesagt >> W * 1000 = kWh (500W die Stunde * 1000 = 0,5 kWh)

Die HomeMatic geben den Verbrauch an, diesen mal 1000 und eine eine Hilfsvariable schreiben mit meinem Skript z.B., getriggert durch Variablenänderung der Zählervariablen und du hast deinen Verbrauch in kWh. Damit du nicht den Verbrauch nimmst, der beim Stecker ziehen gelöscht wird, gib es die Instanz „HomeMatic Powermeter“ und das hier >> [Modul] Homematic Systemvariablen, Programme und Powermeter

Hoffe man versteht was ich meine :smiley: Hab ziemliches Kopfbrummen…

Grüße,
Chris

Hallo an alle Leidgeprüften

Ich habs mal so gelöst:

Ein Skript berechnet die Differenz bei Aktualisierung des Counters und speichert den Wert direkt in der kWH-variablen von PowerControl:

	
                function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
		$imp_kw = 2000;
		$counter = GetValue(44992 /*[Energie\EKM-868 (Gesamtstrom)\Counter]*/);
		$delta = $counter - GetValue(22755 /*[Energie\EKM-868 (Gesamtstrom)\TmpGesamtstrom]*/);

		//Actueller Verbrauch in KW/H
		$delta = (double)($delta /$imp_kw * 60);

		$returnList[0] = $delta;

		$imp_kw = 1000;
		$counter = GetValue(10113 /*[Energie\EKM-868 (Büro)\Counter]*/);
		$delta = $counter - GetValue(24911 /*[Energie\EKM-868 (Büro)\TmpBüro]*/);

		//Actueller Verbrauch in KW/H
		$delta = (double)($delta /$imp_kw * 60);
		
		$returnList[1] = $delta;

		return $returnList;
	}

Das muss man entsprechend für jeden Counter von EKM machen.

Die IPSPowerControl_Config sieht bei mir dann so aus:

	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
		$imp_kw = 2000;
		$counter = GetValue(44992 /*[Energie\EKM-868 (Gesamtstrom)\Counter]*/);
		$delta = $counter - GetValue(22755 /*[Energie\EKM-868 (Gesamtstrom)\TmpGesamtstrom]*/);

		//Actueller Verbrauch in KW/H
		$delta = (double)($delta /$imp_kw * 60);

		$returnList[0] = $delta;

		$imp_kw = 1000;
		$counter = GetValue(10113 /*[Energie\EKM-868 (Büro)\Counter]*/);
		$delta = $counter - GetValue(24911 /*[Energie\EKM-868 (Büro)\TmpBüro]*/);

		//Actueller Verbrauch in KW/H
		$delta = (double)($delta /$imp_kw * 60);
		
		$returnList[1] = $delta;

		return $returnList;
	}

Damit stimmen jetzt zumindest die kWH-Werte bei der Anzeige vom Tag. Was NICHT funktioniert ist die Verbrauchsmessung von Woche, Monat oder Jahr. Da wird immer nur der Tagesverbrauch angezeigt also bei mir Werte zwischen 1 und 3 kWH.

Michael