IPSPowerControl

Deine Callback Funktionen passen nicht:
–>


$returnList[0] = $sensorList[0]; 

Hallo Andreas,

habe jetzt die Callback Funktionen geändert wie du gesagt hast:

* 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[0] = $sensorList[0];
    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[0] = $sensorList[0];
    return $returnList;
	}

	/** @}*/

bekomme aber leider immer noch den Fehler in IPS Highchart

zu Sicherheit hier noch mal meine config:

* @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Mess Sensoren
	 */
	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'HC',
			              IPSPC_PROPERTY_VARWATT     => 26245,
			              IPSPC_PROPERTY_VARKWH      => 52958,
			              ),
			);
	}
	

	/**
	 *
	 * 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)
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        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        => 'Waschmaschine',
                           IPSPC_PROPERTY_DISPLAY     => true,
                           IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Visualisierungs Werte
	 */
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Server',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
		);
	}

	/** IPSPowerControl Stromkosten  

Kommando zurück habe den Fehler gefunden es fehlt einfach das Datenbank -Logging zu aktivieren :wink:

Hallo
Ich habe versucht den IPSPowerControl mit IPSPlugwise zu verbinden. Es kommt immer die Fehlermeldung

Error: Could not convert variant of type (Null) into type (Double)

Gruß

Kannst Du uns da noch etwas mehr Information posten - Stacktrace, Deine Konfiguraton + Callbacks …

Hi

Kein Problem

       }
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Daten der Mess Sensoren
	 */
	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Haus',
			              IPSPC_PROPERTY_VARWATT     => 19401,
			             
			            
			              ),
			);
	}
	

	 */
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			1    => array(IPSPC_PROPERTY_NAME        => 'Haus',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
		);
	}

function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
    $returnList[0] = $sensorList[0];
    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;
	}
	

Was sind den Stacktrace ?

Gruß

Das habe ich noch gefunden

Beim Abschalten des Stromkreises bekomme ich die Fehlermeldung

Das gleiche passiert wenn ich einen EKM verwende.

Ich habe den Fehler gefunden :slight_smile:

	function IPSPowerControl_GetValueConfiguration() {
		return array(
			1    => array(IPSPC_PROPERTY_NAME        => 'Haus',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
		);
	} 

in geändert

	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Haus',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
		);
	}

Hallo Andreas,

danke erst mal für die Super Libraryarbeit. Einfach nur genial!

Ich habe ein Problem! Ich kann hin und wieder die Schalter für Gas und Wasser nicht einschalten. Wenn ich sie einschalte gehen sie kurz danach wieder auf Aus. Wenn sie ein sind gehen sie ohne ersichtlichen Grund irgendwann auch wieder aus! Woran kann das liegen?

Configs anbei:

Danke schon mal für die Hilfe
Gruß Tommy

<?
	/*
	 * 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        => 'Strom_Gesamt',
			              IPSPC_PROPERTY_VARWATT     => 16846,
			              IPSPC_PROPERTY_VARKWH      => 18153,
			              ),
			1    => array(IPSPC_PROPERTY_NAME        => 'EDV',
                       IPSPC_PROPERTY_VARWATT     => 22862,
                       IPSPC_PROPERTY_VARKWH      => 23499,
                       ),
         2    => array(IPSPC_PROPERTY_NAME        => 'IPS',
                       IPSPC_PROPERTY_VARWATT     => 57093,
                       IPSPC_PROPERTY_VARKWH      => 45475,
                       ),
         3    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                       IPSPC_PROPERTY_VARM3       => 48119,
                       ),
         4    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                       IPSPC_PROPERTY_VARM3       => 30481,
	                    ),
			5    => array(IPSPC_PROPERTY_NAME        => 'EDV_BUERO',
                       IPSPC_PROPERTY_VARWATT     => 23574,
                       IPSPC_PROPERTY_VARKWH      => 13211,
                       ),
			6    => array(IPSPC_PROPERTY_NAME        => 'WM_Siemens',
                       IPSPC_PROPERTY_VARWATT     => 10381,
                       IPSPC_PROPERTY_VARKWH      => 52378,
                       ),
			7    => array(IPSPC_PROPERTY_NAME        => 'WM_Privileg',
                       IPSPC_PROPERTY_VARWATT     => 36276,
                       IPSPC_PROPERTY_VARKWH      => 16673,
                       ),
			8    => array(IPSPC_PROPERTY_NAME        => 'Trockner',
                       IPSPC_PROPERTY_VARWATT     => 54667,
                       IPSPC_PROPERTY_VARKWH      => 50276,
                       ),
			9    => array(IPSPC_PROPERTY_NAME        => 'Drucker',
                       IPSPC_PROPERTY_VARWATT     => 44584,
                       IPSPC_PROPERTY_VARKWH      => 30837,
                       ),
			10    => array(IPSPC_PROPERTY_NAME       => 'TV_SZ',
                       IPSPC_PROPERTY_VARWATT     => 33393,
                       IPSPC_PROPERTY_VARKWH      => 15596,
                       ),
			11    => array(IPSPC_PROPERTY_NAME       => 'TV_WZ',
                       IPSPC_PROPERTY_VARWATT     => 17550,
                       IPSPC_PROPERTY_VARKWH      => 53652,
                       ),
			12    => array(IPSPC_PROPERTY_NAME       => 'Gefrierschrank',
                       IPSPC_PROPERTY_VARWATT     => 34245,
                       IPSPC_PROPERTY_VARKWH      => 26153,
                       ),
			13    => array(IPSPC_PROPERTY_NAME       => 'Geschirrspueler',
                       IPSPC_PROPERTY_VARWATT     => 28759,
                       IPSPC_PROPERTY_VARKWH      => 25314,
                       ),
			14    => array(IPSPC_PROPERTY_NAME       => 'Heizung',
                       IPSPC_PROPERTY_VARWATT     => 16743,
                       IPSPC_PROPERTY_VARKWH      => 24798,
                       ),
			15    => array(IPSPC_PROPERTY_NAME       => 'Kuehlschrank',
                       IPSPC_PROPERTY_VARWATT     => 47870,
                       IPSPC_PROPERTY_VARKWH      => 14534,
                       ),
			16    => array(IPSPC_PROPERTY_NAME       => 'Mikrowelle',
                       IPSPC_PROPERTY_VARWATT     => 40560,
                       IPSPC_PROPERTY_VARKWH      => 37175,
                       ),
			17    => array(IPSPC_PROPERTY_NAME       => 'PC_Antonia',
                       IPSPC_PROPERTY_VARWATT     => 33431,
                       IPSPC_PROPERTY_VARKWH      => 16933,
                       ),
			18    => array(IPSPC_PROPERTY_NAME       => 'PC_Tom',
                       IPSPC_PROPERTY_VARWATT     => 32707,
                       IPSPC_PROPERTY_VARKWH      => 34183,
                       ),
			19    => array(IPSPC_PROPERTY_NAME       => 'Pool',
                       IPSPC_PROPERTY_VARWATT     => 28178,
                       IPSPC_PROPERTY_VARKWH      => 57111,
                       ),

	                    );
	}
	
	/**
	 *
	 * 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        => 'Gesamt',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'EDV',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'IPS',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Wasser',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_WATER,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_GAS,
                          ),
            5    => array(IPSPC_PROPERTY_NAME        => 'EDVBUERO',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            6    => array(IPSPC_PROPERTY_NAME        => 'WM_Siemens',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            7    => array(IPSPC_PROPERTY_NAME        => 'WM_Privileg',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            8    => array(IPSPC_PROPERTY_NAME        => 'Trockner',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            9    => array(IPSPC_PROPERTY_NAME        => 'Drucker',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            10    => array(IPSPC_PROPERTY_NAME        => 'TV_SZ',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            11    => array(IPSPC_PROPERTY_NAME        => 'TV_WZ',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            12    => array(IPSPC_PROPERTY_NAME        => 'Gefrierschrank',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            13    => array(IPSPC_PROPERTY_NAME        => 'Geschirrspueler',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            14    => array(IPSPC_PROPERTY_NAME        => 'Heizung',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            15    => array(IPSPC_PROPERTY_NAME        => 'Kuehlschrank',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            16    => array(IPSPC_PROPERTY_NAME        => 'Mikrowelle',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            17    => array(IPSPC_PROPERTY_NAME        => 'PC_Antonia',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            18    => array(IPSPC_PROPERTY_NAME        => 'PC_Tom',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            19    => array(IPSPC_PROPERTY_NAME        => 'Pool',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),

				 );
	}

	/** IPSPowerControl Stromkosten  
	 *
	 * Definiert die Stromkosten in Cents per kWh, die für die Berechnung der Werte verwendet
	 * werden soll.
	 *
	 */
	define ("IPSPC_ELECTRICITYRATE",    27.64 /*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",    246.33 /*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.681 /*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",    6.85 /*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);

	/** @}*/
?>

Hallo,

ich habe den Fehler gefunden! Er saß vor dem PC:( Bedienersache!

Gruß
tommy

Hallo Andreas,

Es kommen derzeit immer mehr Anfragen zur Berechnung des Eigenverbrauchs in Verbindung mit eigener Stromerzeugung.
Könntest du bitte noch einmal prüfen, ob das Modul um diese Werte erweitert werden könnte.

Besten Dank
Jens

Au ja Andreas, da bin ich auch dafür

Gesendet von meinem iPad mit Tapatalk HD

Könntet Ihr das noch etwas genauer spezifizieren:

  • Welche Input Variablen wären da potenziell beteiligt
  • Welche Werte könnte man damit berechnen
  • Werden spezielle vordefinierte Graphen benötigt

Hallo Andreas,
ich würde deine Fragen wie folgt beantworten:

  1. Verbrauch (bei mir S0) und Ertrag (bei mir S0).
    Manche werden evtl. noch ihren Zweirichtungszähler auslesen um den Zukauf und den Verkauf nicht errechnen zu müssen.
    Da die Zähler aber alle 8 Jahre getauscht werden und es unterschiedliche Hersteller gibt, muss man das immer wieder anfassen.–> Nicht mein Ding.

  2. Zukauf, Verkauf, Eigenverbrauch (wie viel % des von mir erzeugten Strom verbrauche ich selbst), Delta
    Um Zukauf und Verkauf sowie Delta errechnen zu können, sollten die Werte allerdings recht oft abgerufen werden.
    Ich mache das bei mir alle 60 sec.

  3. Ich finde einen Delta-Graph sehr gut. Dieser geht ins „-“ wenn ich mehr verbrauche wie erzeuge und ins + wenn ich …

Wenn du möchtest, kannst du dir gerne meine derzeitige Lösung mal anschauen.
http://www.ip-symcon.de/forum/threads/18535-Stromverbräuche-täglich-monatl-und-jährlich-errechnen?p=163451#post163451

Hab im Augenblick nicht sehr viel Zeit, aber eventuell geht sich ja im Frühjahr was aus …

Hallo,

habe gerade auch mal IPS PowerControl installiert.

Ich habe bisher an meinem EKM868 lediglich einen Reed am Gaszähler.

1 Impuls = 0,1 m³

Das wäre mein 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        => 'Gas',
                          IPSPC_PROPERTY_VARM3       => 48053,
                          ),
			);
	}
	

	/**
	 *
	 * 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(
			1   => array(IPSPC_PROPERTY_NAME        => 'Gas',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_GAS,
                          ),
		);
	}

	/** 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);

	/** @}*/
?>

Das müsste ja soweit passen oder? Habe ja bisher nur den Gaszähler.

Hier wäre dann meine Custom

Hier war ich mir nicht mehr sicher :frowning:


<?
	/*
	 * 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;
	}
	
		}

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

	/** @}*/

?>

Bin mir bei der Funktion für den Gasmelder leider nicht sicher. Da werd ich aus der Doku nicht schlau.

Kann mir da jemand helfen?

"Berechnung der kWh Werte

Hier werden aus den Sensor Werten die Visualisierungs Werte in kWh bzw. die Werte für Gas und Wasser berechnet.

Beispiel

Die Funktion IPSPowerControl_GetCalculatedKWH kann verwendet werden, wenn der Sensor keine KWH Werte unterstützt. Die KWH Werte müssen allerdings vorher in der Watt Callback Methode mit der Funktion IPSPowerControl_Watt2KWH berechnet werden.

Die Funktion IPSPowerControl_Value2KWH bietet die Möglichkeit zur Auswertung von Differenzen. Nützlich wenn der Sensor nach einem Spannungsausfall wieder bei 0 zu zählen beginnt.

Mit der Funktion IPSPowerControl_Value2m3 kann man das Selbe auch für Gas bzw. Wasser Sensoren realisieren.

function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
$returnList[0] = IPSPowerControl_GetCalculatedKWH (0);
$returnList[1] = IPSPowerControl_Value2KWH(1, 1, true);
$returnList[2] = IPSPowerControl_Value2KWH(2, 1/20);
$returnList[3] = $returnList[0]+$returnList[1]+$returnList[2];
$returnList[4] = IPSPowerControl_Value2m3(3);
$returnList[5] = IPSPowerControl_Value2m3(4);

return $returnList;

}
"

Hi,

für Dich ist nur die Funktion IPSPowerControl_CalculateValuesKWH wichtig, da hier auch stündlich die m3 Werte berechnet werden.

Sollte Dein Sensor bereits die Werte in m3 liefern, brauchst Du nur eine direkte Zuweisung in der Callback machen.


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

Wenn nicht, kannst Du die Funktion „IPSPowerControl_Value2M3“ zur Umrechnung verwenden, hier ein Beispiel für eine Umrechung eines Zählers, der 10 Impulse po m3 liefert und nach einem Spannungsausfall wieder bei 0 beginnt:


    function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
        $returnList = $sensorList;
	$returnList[0] = IPSPowerControl_Value2M3(0, 1/10, true);
    }

Also meiner liefert keine direkten m³ Werte, sondern braucht 10 Impulse pro Kubikmeter.

Ich habe jetzt die Custom so abgeändert…


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

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

	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
        $returnList = $sensorList;
    $returnList[0] = IPSPowerControl_Value2M3(0, 1/10, true);
    }

?>

Ist das so richtig? Denn wenn ich das Custom Script einmal manuell ausführe, dann bekomme ich diesen Error…

Fatal error: Cannot redeclare IPSPowerControl_CalculateValuesKWH() (previously declared in C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php:10) in C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php on line 22
IPS-Err-PHP 2013-03-09 07:19:27.534 Compile Error: Cannot redeclare IPSPowerControl_CalculateValuesKWH() (previously declared in C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php:10) Error in Script C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php on Line 22 133 in IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out) 55 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err) 120 in IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler) in IPSLogger_PhpFatalErrorHandler
Abort Processing during Fatal-Error: Cannot redeclare IPSPowerControl_CalculateValuesKWH() (previously declared in C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php:10)
Error in Script C:\IP-Symcon\scripts\IPSLibrary\config\modules\IPSPowerControl\IPSPowerControl_Custom.inc.php on Line 22

Ist nicht richtig, darum kommt der Fehler :slight_smile:

Du hast die

function IPSPowerControl_CalculateValuesKWH 

doppelt drinnen.

Ich hab dir meine Konfig mal drangehängt.
0=Stromzähler, 1000 Impulse=1 kwh
1=Gaszähler, 100 Impulse= 1 m3
2=Gaszähler bei Warmwasseraufbereitung, den zähle ich direkt in m3 mit, wenn die Gastherme auf WW Betrieb umschaltet, daher 1/1.
3=Kaltwasserzähler, 1000 Impulse = 1 m3
4=Warmwasserzähler, 1000 Impulse = 1 m3

das true steht dafür, dass keine negativen Werte gezählt werden.
Mein KNX Input device fängt wieder bei 0 zu zählen an, wenn mal der Strom weg ist oder wenns resetted wird.

function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
		$returnList = $valueList;
		foreach ($sensorList as $idx=>$value) {
			$returnList[$idx] = $value;
		}
      $returnList[0] = IPSPowerControl_Value2KWH(0, 1/1000, true);
    	$returnList[1] = IPSPowerControl_Value2M3(1, 1/100, true);
    	$returnList[2] = IPSPowerControl_Value2M3(2, 1/1, true);
    	$returnList[3] = IPSPowerControl_Value2M3(3, 1/1000, true);
		$returnList[4] = IPSPowerControl_Value2M3(4, 1/1000, true);
		return $returnList;
	}