IPSPowerControl

Hallo,
habe seit gestern folgendes PRoblem:

In der Wochenansicht bekomme ich in Einem Stromkreis bei Ansicht Woche /Kw/h den Gesamtverbrauch nagezeigt im Diagramm… Sobald ich auf Tag gehe stimmt es aber… alle anderen 3 Stromkreise sind aber Korrekt…
Ein neuinstallieren hat nichts gebracht.

Alle einzelnen Verbrauchswerte sind in IPS jedoch Korrekt erfasst… Wie gesagt es funktioniert erst seit ca. Gestern nicht mehr

Und dann nur der Wert der Heizung… Tagesansicht geht:(

 }
 * @endcocde
 *
 * @return string Liefert Array mit den Daten der Mess Sensoren
 */
function IPSPowerControl_GetSensorConfiguration() {
	return array(

0 => array(IPSPC_PROPERTY_NAME => ‚Verbrauch‘,
IPSPC_PROPERTY_VARWATT => 56323 /[Erdgeschoss\Schaltschrank\1.8.1 Verbrauch\Verbrauch aktuell]/,
IPSPC_PROPERTY_VARKWH => 31985 /[Erdgeschoss\Schaltschrank\1.8.1 Verbrauch\Verbrauch gesamt]/,
),
1 => array(IPSPC_PROPERTY_NAME => ‚Einspeisung‘,
IPSPC_PROPERTY_VARWATT => 26405 /[Erdgeschoss\Schaltschrank\2.8.1 Einspeisung\Ertrag Leistung]/,
IPSPC_PROPERTY_VARKWH => 43333 /[Erdgeschoss\Schaltschrank\2.8.1 Einspeisung\Ertrag Gesamt]/,
),
2 => array(IPSPC_PROPERTY_NAME => ‚Klima EG‘,
IPSPC_PROPERTY_VARWATT => 44169 /[Erdgeschoss\Schaltschrank\Klimaanlage EG\Leistung]/,
IPSPC_PROPERTY_VARKWH => 37488 /[Erdgeschoss\Schaltschrank\Klimaanlage EG\Zählerstand]/,
),
3 => array(IPSPC_PROPERTY_NAME => ‚Klima OG‘,
IPSPC_PROPERTY_VARWATT => 25709 /[Erdgeschoss\Schaltschrank\Klimaanlage OG\Leistung]/,
IPSPC_PROPERTY_VARKWH => 31942 /[Erdgeschoss\Schaltschrank\Klimaanlage OG\Zählerstand]/,
),
4 => array(IPSPC_PROPERTY_NAME => ‚Heizung‘,
IPSPC_PROPERTY_VARWATT => 12170 /[Erdgeschoss\Schaltschrank\Heizung\Leistung aktuell]/,
IPSPC_PROPERTY_VARKWH => 33138 /[Erdgeschoss\Schaltschrank\Heizung\Verbrauch gesamt]/,
),

		);
}


/**
 *
 * 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 => ‚Strom‘,
IPSPC_PROPERTY_DISPLAY => true,
IPSPC_PROPERTY_VALUETYPE => IPSPC_VALUETYPE_OTHER,
),
1 => array(IPSPC_PROPERTY_NAME => ‚Solar‘,
IPSPC_PROPERTY_DISPLAY => true,
IPSPC_PROPERTY_VALUETYPE => IPSPC_VALUETYPE_OTHER,
),
2 => array(IPSPC_PROPERTY_NAME => ‚Klima EG‘,
IPSPC_PROPERTY_DISPLAY => true,
IPSPC_PROPERTY_VALUETYPE => IPSPC_VALUETYPE_OTHER,
),
3 => array(IPSPC_PROPERTY_NAME => ‚Klima OG‘,
IPSPC_PROPERTY_DISPLAY => true,
IPSPC_PROPERTY_VALUETYPE => IPSPC_VALUETYPE_OTHER,
),
4 => array(IPSPC_PROPERTY_NAME => ‚Heizung‘,
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",    22 /*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);

/** @}*/

?>

Hat sich erledigt.

Hallo IPS Gemeinde

Ich habe seit 2010 IPSymcon und bis jetzt alle Probleme selbst bzw. durch das Forum lösen können. Dies ist mein erster „Beitrag“ den ich poste. Viele von euch wissen wie mühselig es ist, sich durch Foren zu arbeiten um endlich das Thema zu finden, an welchem man sich gerade die Zähne ausbeißt. Zumal bei vielen Foren die Suchfunktion alles andere als hilfreich ist. Derzeit bekomme ich es nicht hin kWh Werte richtig darzustellen. Bitte jetzt keine Antworten wie „Suchfunktion benutzen“. Ich bastele jetzt seit Weihnachten an dem Problem herum. Und einige Anfragen von Mitgliedern zu diesem Thema wurden in diesem Thread einfach übergangen.

Ich habe ein EKM-868 im Einsatz. Die Werte kommen also nicht als KWatt, sondern in Watt-Schritten. Ich poste einmal meine Config und die Callback Funktion um es besser zu erläutern.
Der Augenmerk ist auf die Callback Funktion zu legen. Der erste Wert stimmt ab dem zweiten schreibt er 4 Stellige Werte in die Datenbank. Nehme ich ab der ReturnList 1 das „true“ heraus Stimmen die Werte. Allerdings setzt er die Werte dann bei einer Spannungsunterbrechung zurück (EKM868). Weiß jemand Rat? Nach 2 Wochen bin ich einfach am Ende. Vielleicht ist es auch nur ein Komma welches falsch sitzt, oder Ähnliches.
Vielen, vielen Dank für eure Hilfe.
Grüße…

function IPSPowerControl_GetSensorConfiguration() {
return array(
0 => array(IPSPC_PROPERTY_NAME => ‚Haus‘,
IPSPC_PROPERTY_VARWATT => 24348 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Haus\Verbrauch]/,
IPSPC_PROPERTY_VARKWH => 51153 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Haus\Zähler]/,
),
1 => array(IPSPC_PROPERTY_NAME => ‚Werkstatt‘,
IPSPC_PROPERTY_VARWATT => 55166 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Werkstatt\Verbrauch]/,
IPSPC_PROPERTY_VARKWH => 34480 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Werkstatt\Zähler]/,
),
2 => array(IPSPC_PROPERTY_NAME => ‚Heizraum‘,
IPSPC_PROPERTY_VARWATT => 18465 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Heizraum\Verbrauch]/,
IPSPC_PROPERTY_VARKWH => 15938 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Heizraum\Zähler]/,
),
3 => array(IPSPC_PROPERTY_NAME => ‚Heizung‘,
IPSPC_PROPERTY_VARWATT => 14143 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Heizung\Verbrauch]/,
IPSPC_PROPERTY_VARKWH => 56853 /[Steuerung\Energie\Strom\Aktoren\EKM-868-2\EKM-868 Heizung\Zähler]/,
),
);
}

		function IPSPowerControl_GetValueConfiguration() {
	return array(
		0    => array(IPSPC_PROPERTY_NAME        => 'Haus',
		              IPSPC_PROPERTY_DISPLAY     => true,
		              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
		              ),
		1    => array(IPSPC_PROPERTY_NAME        => 'Werkstatt',  
		              IPSPC_PROPERTY_DISPLAY     => true,
		              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
		              ),
		2    => array(IPSPC_PROPERTY_NAME        => 'Heizraum',   
		              IPSPC_PROPERTY_DISPLAY     => true,
		              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
		              ),
		3    => array(IPSPC_PROPERTY_NAME        => 'Heizung',   
		              IPSPC_PROPERTY_DISPLAY     => true,
		              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
		              ),
				);

				
				
				
function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) { 
    $returnList = $valueList; 
    $returnList[0] = IPSPowerControl_Value2KWH(0, 1/1000, true);
$returnList[1] = IPSPowerControl_Value2KWH(1, 1/1000, true);
$returnList[2] = IPSPowerControl_Value2KWH(2, 1/1000, true);
	$returnList[3] = IPSPowerControl_Value2KWH(3, 1/1000, true);
$returnList[8] = $returnList[0]-$returnList[2]-$returnList[3];

    return $returnList; 
}

Hallo Leute!

ich hab ein echtes Problem, die Werte stimmen nicht bei mir und ich finde den Fehler leider nicht :frowning:

könnt ihr mit helfen?

Danke dafür!

LG
Christian

Danke für die schnelle Hilfe. Bin echt begeistert. :mad:

Es handelt sich hier doch um eine mächtige Erweiterung, das in der Freizeit erstellt wurde…

Ich würde einfach mal ein paar Tage warten… - Nennt sich Geduld :smiley:

Nach der Vorlage kommen jetzt bestimmt ganz viele und helfen gerne :smiley:

Ich verstehe die Frage nicht. Was genau meint, die Werte stimmen nicht? Welche Werte genau?

Du hast ein Dutzend Geräte und zig Balken in vier Diagrammen. Bissl viel Möglichkeiten zum Raten. :wink:

Grüße
galleto

Ok, dann rudere ich mal schleunigst zurück. Entschuldigung, wenn sich jemand angemacht fühlt. Ich warte nun seit 7 Tagen. Iss vielleicht ein wenig kurz. Ich übe mich nun in Geduld.

Kurze Erklärung: Ich bin nicht „aignaaaa“ mit den vielen Diagrammen, sondern PH6, der zuvor gepostet hat. Und das ist eben das was ich in diesem Thread schon öfters gesehen habe, bei dem Thema KWh-Werte zu hoch wurden die User einfach übergangen weil der nächste mit einem anderen Thema kam und das Problem steht immer noch. Zumindest bei mir.

Aber nichts für ungut, ich habe verstanden und warte.
Wünsche noch einen schönen Abend (Iss ehrlich gemeint) :slight_smile:

@PH6

Ich seh da leider auf die Schnelle auch keinen Fehler, sieht im Prinzip korrekt aus.

Generell sehe ich IPSPowerControl mittlerweile aus netten Versuch, aber für die meisten ist das Thema der Callbacks leider zu komplex und ich hab nicht mehr die Zeit, dass ich jedem User seine Callbacks analysiere :eek:

Ich würde Dir deshalb empfehlen, die Umrechnung der Werte aus den Callbacks komplett zu entfernen und die nötige Berechung der KWH Werte bereits vorher über Events oder ähnliches zu realsieren.
In IPSPowerControl verwendest Du dann die Variablen, wo die Werte bereits korrekt in KWH vorliegen.

Eventuell gibt es ja auch schon wo ein PHP Modul, dass bei dieser Umrechnung behilflich ist :cool:

Vielen Dank für die Antwort. Ja ich verstehe dass mit der Zeit mehr als mir lieb ist. Ich arbeite in der IT und was da privat manchmal los ist… der Tag könnte 72h haben.
Ich denke ich lebe damit, dass bei Stromausfall (oder Wartungsarbeiten)halt der Wert wieder auf null gesetzt wird. Iss ja eh sehr selten. Und jetzt läuft alles andere gerade sehr gut. Never touch a running system. Alles andere habe ich ja hinbekommen.

Also Danke nochmal und ein ruhiges WE.
Grüße aus Thüringen

Hallo und Sorry,

hab auf Grund meiner Verzweiflung keine Details bekannt gegeben.
Ich hab folgendes Problem meine Heizung hat jetzt aktuell 150Watt verbraucht, in KW zeigt es aber 1,1 KW an oder
z.b. hab ich einen PowerMeter der am Hauswasserwerk angeschlossen ist, dieser Verbraucht keinen Strom da die Anlage bis zum Frühjahr still steht aktuell 0Watt verbrauch, in KW zeigt es 1KW verbrauch an,
Wo hab ich hier meinen Fehler eingebaut …

PowerControl_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) {  
        $returnList[0] = $sensorList[0];  
        $returnList[1] = $sensorList[1];  
        $returnList[2] = $sensorList[2]; 
        $returnList[3] = $sensorList[3]; 
        $returnList[4] = $sensorList[4]; 
        $returnList[5] = $sensorList[5]; 
        $returnList[6] = $sensorList[6];  
        $returnList[7] = $sensorList[0] + $sensorList[1] + $sensorList[2] + $sensorList[9] + $sensorList[4];  
        $returnList[8] = $sensorList[8]; 
        $returnList[9] = $sensorList[9]; 
        $returnList[10] = $sensorList[10]; 
        $returnList[11] = $sensorList[11]; 
        $returnList[12] = $sensorList[12]; 
         
   
        // Licht Esstisch werden mit 35 Watt im Durchschnitt berechnet  
         //           if(GetValue(46754 /*[Hardware\Homematic\Licht\Wohngeschoss\Licht Esstisch\STATE]*/) == TRUE)  
          //      {  
                   // Steckdose ist an  
          //      $returnList[8] = 35; // 35 Watt ist aktuell nur eine Schätzung  
           //         } else {  
             //    $returnList[8] = 0;  
               //     }  
       // Fußbodenheizung werden mit 180 Watt im Durchschnitt berechnet  
                if(GetValue(50897 /*[Hardware\Homematic\Aktoren\5 Schaltaktor Bad\STATE]*/) == TRUE)  
                {  
                   // Steckdose ist an  
                    $returnList[9] = 180; // 180 Watt ist aktuell nur eine Schätzung  
                } else {  
                $returnList[9] = 0;  
                    }  
       // Entfeuchter werden mit 180 Watt im Durchschnitt berechnet  
                if(GetValue(31789 /*[Hardware\Homematic\Aktoren\Aktor Garage\Entfeuchter\STATE]*/) == TRUE)  
                {  
                   // Steckdose ist an  
                $returnList[10] = 180; // 180 Watt ist aktuell nur eine Schätzung  
                   } else {  
                $returnList[10] = 0;  
                }  
       // Pooltechnik werden mit 750 Watt im Durchschnitt berechnet  
                if(GetValue(50662 /*[Hardware\Homematic\Aktoren\Aktor Pooltechnik\Pooltechnik\STATE]*/) == TRUE)  
                {  
                   // Steckdose ist an  
                    $returnList[11] = 750; // 180 Watt ist aktuell nur eine Schätzung  
                } else {  
                $returnList[11] = 0;  
                    } 
       //Biotoptechnik werden mit 170 Watt im Durchschnitt berechnet  
                if(GetValue(53658 /*[Hardware\Homematic\Aktoren\Aktor Garage\Biotoppumpe\STATE]*/) == TRUE)  
                {  
                   // Steckdose ist an  
                    $returnList[12] = 170; // 180 Watt ist aktuell nur eine Schätzung  
                } else {  
                $returnList[12] = 0;  
                    } 
        // Berechnung der KWH Werte für die spätere Verwendung  
        IPSPowerControl_Watt2KWH(0);  
        IPSPowerControl_Watt2KWH(1);  
        IPSPowerControl_Watt2KWH(2);
		IPSPowerControl_Watt2KWH(3);  
		IPSPowerControl_Watt2KWH(5);
		IPSPowerControl_Watt2KWH(6);     
        IPSPowerControl_AddCalculatedValue('TOTAL', $returnList[7]/1000/60);  
        IPSPowerControl_AddCalculatedValue('Pooltechnik',  $returnList[11]/1000/60);  
        IPSPowerControl_AddCalculatedValue('Licht',    $returnList[8]/1000/60);  
        IPSPowerControl_AddCalculatedValue('Fußbodenheizung',    $returnList[9]/1000/60);  
        IPSPowerControl_AddCalculatedValue('Entfeuchter',    $returnList[10]/1000/60);  
        IPSPowerControl_AddCalculatedValue('Biotoptechnik',    $returnList[12]/1000/60);  

        return $returnList;  
    }  


    function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {  
        $returnList[0] = IPSPowerControl_GetCalculatedKWH (0);  
        $returnList[1] = IPSPowerControl_GetCalculatedKWH (1);  
        $returnList[2] = IPSPowerControl_GetCalculatedKWH (2);  
        $returnList[3] = IPSPowerControl_GetCalculatedKWH (3);  
        $returnList[4] = IPSPowerControl_GetCalculatedKWH (4);  
        $returnList[5] = IPSPowerControl_GetCalculatedKWH (5);   
        $returnList[6] = IPSPowerControl_GetCalculatedKWH (6);  
        $returnList[9] = IPSPowerControl_GetCalculatedKWH (9);  
        $returnList[7] = IPSPowerControl_GetCalculatedValue('TOTAL');  
         
    // Anlagen 
        $returnList[11] = IPSPowerControl_GetCalculatedValue('Pooltechnik');  
        $returnList[8] = IPSPowerControl_GetCalculatedValue('Licht');  
        $returnList[9] = IPSPowerControl_GetCalculatedValue('Fußbodenheizung');  
        $returnList[10] = IPSPowerControl_GetCalculatedValue('Entfeuchter'); 
        $returnList[12] = IPSPowerControl_GetCalculatedValue('Biotoptechnik'); 
        return $returnList;  
		
	// Calculate Light 
	   	IPSUtils_Include ("IPSLight.inc.php", "IPSLibrary::app::modules::IPSLight"); 
        $lightManager = new IPSLight_Manager(); 
        $lightL1 = $lightManager->GetPowerConsumption('L1'); 
        $lightL2 = $lightManager->GetPowerConsumption('L2'); 
        $lightL3 = $lightManager->GetPowerConsumption('L3');
		$lightL4 = $lightManager->GetPowerConsumption('L4');
		$lightL5 = $lightManager->GetPowerConsumption('L5');
		$lightL6 = $lightManager->GetPowerConsumption('L6');
		$lightL7 = $lightManager->GetPowerConsumption('L7');
		$lightL8 = $lightManager->GetPowerConsumption('L8');
		$lightL9 = $lightManager->GetPowerConsumption('L9');
		$lightL10 = $lightManager->GetPowerConsumption('10');
		$lightL11 = $lightManager->GetPowerConsumption('L11');
		$lightL12 = $lightManager->GetPowerConsumption('L12');
		$lightL13 = $lightManager->GetPowerConsumption('L13');
		$lightL14 = $lightManager->GetPowerConsumption('L14');
		$lightL15 = $lightManager->GetPowerConsumption('L15');
		$lightL16 = $lightManager->GetPowerConsumption('L16');
		$lightL17 = $lightManager->GetPowerConsumption('L17');
		$lightL18 = $lightManager->GetPowerConsumption('L18');
		$lightL19 = $lightManager->GetPowerConsumption('L19');
		$lightL20 = $lightManager->GetPowerConsumption('L20');
		$lightL21 = $lightManager->GetPowerConsumption('L21');
		$lightL22 = $lightManager->GetPowerConsumption('L22');
		$lightL23 = $lightManager->GetPowerConsumption('L23');
		$lightL24 = $lightManager->GetPowerConsumption('L24');
		$lightL25 = $lightManager->GetPowerConsumption('L25');
		$lightL26 = $lightManager->GetPowerConsumption('L26');
		 
        $light[8] = $lightL1 + $lightL2 + $lightL3 + $lightL4 + $lightL5 + $lightL6 + $lightL7 + $lightL8 + $lightL9 + $lightL10 + $lightL11 + $lightL12 + $lightL13 + $lightL14 + $lightL15 + $lightL16 + $lightL17 + $lightL18 + $lightL19 + $lightL20 + $lightL21 + $lightL22 + $lightL23 + $lightL24 + $lightL25 + $lightL26;  
		
    }   
	   


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


    /** @}*/ 

?>

IPSPowerControl_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      => 00000, 
                          ), 
            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        => 'Heizung Wohnzimmer', 
                          IPSPC_PROPERTY_VARWATT     => 28406 /*[Hardware\Homematic\Aktoren\1 Steckdose Wohnzimmer\POWERMETER\POWER]*/, 
                          ), 
            1    => array(IPSPC_PROPERTY_NAME        => 'Heizung Gästezimmer', 
                          IPSPC_PROPERTY_VARWATT     => 22532 /*[Hardware\Homematic\Aktoren\2 Steckdose Gästezimmer\POWERMETER\POWER]*/, 
                          ), 
            2    => array(IPSPC_PROPERTY_NAME        => 'Heizung Schuppen groß', 
                          IPSPC_PROPERTY_VARWATT     => 22748 /*[Hardware\Homematic\Aktoren\6 Steckdose großes Gerätehaus\POWERMETER\POWER]*/, 
                          ), 
            3    => array(IPSPC_PROPERTY_NAME        => 'Hauswasserwerk', 
                          IPSPC_PROPERTY_VARWATT     => 12242 /*[Hardware\Homematic\Aktoren\HutschienenPowermeter Hauswasserwerk\POWERMETER\POWER]*/, 
                          ), 
            4    => array(IPSPC_PROPERTY_NAME        => 'Klimaanlage', 
                          IPSPC_PROPERTY_VARWATT     => 39364 /*[Hardware\Homematic\Aktoren\HutschienenPowermeter Klimaanlage\POWERMETER\POWER]*/, 
                          ), 
            5    => array(IPSPC_PROPERTY_NAME        => 'Warmwasser', 
                          IPSPC_PROPERTY_VARWATT     => 49741 /*[Hardware\Homematic\Aktoren\HutschienenPowermeter Warmwasser\POWERMETER\POWER]*/, 
                          ), 
            6    => array(IPSPC_PROPERTY_NAME        => 'Waschmaschine', 
                          IPSPC_PROPERTY_VARWATT     => 42563 /*[Hardware\Homematic\Aktoren\HutschienenPowermeter Waschmaschine\POWERMETER\POWER]*/, 
                          ), 
            9    => array(IPSPC_PROPERTY_NAME        => 'Fußbodenheizung', 
                          IPSPC_PROPERTY_VARWATT     => 35430 /*[Program\IPSLibrary\data\modules\IPSPowerControl\Values\ValueWatt_9]*/, 
                          ), 
                ); 
    } 
     

    /** 
     * 
     * 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        => 'Heizung Wohnzimmer', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            1    => array(IPSPC_PROPERTY_NAME        => 'Heizung Gästezimmer', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            2    => array(IPSPC_PROPERTY_NAME        => 'Heizung Schuppen groß', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            3    => array(IPSPC_PROPERTY_NAME        => 'Hauswasserwerk', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            4    => array(IPSPC_PROPERTY_NAME        => 'Klimaanlage', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            5    => array(IPSPC_PROPERTY_NAME        => 'Warmwasser', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            6    => array(IPSPC_PROPERTY_NAME        => 'Waschmaschine', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            7    => array(IPSPC_PROPERTY_NAME        => 'Total',  
                          IPSPC_PROPERTY_DISPLAY     => false,  
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL, 
                          ),  
            8    => array(IPSPC_PROPERTY_NAME        => 'Licht', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            9    => array(IPSPC_PROPERTY_NAME        => 'Fußbodenheizung', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            10    => array(IPSPC_PROPERTY_NAME        => 'Entfeuchter', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            11    => array(IPSPC_PROPERTY_NAME        => 'Pooltechnik', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ), 
            12    => array(IPSPC_PROPERTY_NAME        => 'Biotoptechnik', 
                          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",    20 /*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); 

    /** @}*/ 
?>

Danke
Christian

Läuft das Teil überhaupt fehlerfrei - Du weist in der Callback Werte von Sensoren zu, die gar nicht definiert sind. Da sollte es eigentlich knallen und ich würde einen Fehlereintrag im IPSLogger erwarten.


   function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {  
...
        $returnList[8] = $sensorList[8]; 
        $returnList[9] = $sensorList[9]; 
        $returnList[10] = $sensorList[10]; 
        $returnList[11] = $sensorList[11]; 
        $returnList[12] = $sensorList[12]; 

bei der Berechnung des Lichts stimmt die Zuweisung ebenfalls nicht, das erzeugt allerdings auch keinen PHP Fehler

    $light[8] = $lightL1 +...

-->

    $returnList[8] = $lightL1 +...

Der Rest sieht jetzt prinzipiell in Ordnung aus …

Hallo und Danke Andreas!!!

ich hab die Änderungen vorgenommen und hoffe das es jetzt funktioniert.
Ich verstehe nur noch nicht wie der Stromverbrauch für das Licht funktioniert, hab jetzt testweise das Licht länger eingeschalten aber beim verbrauch tut sich leider nichts :confused:

lg
Christian

Hallo Leute,

ich hab jetzt mit meinem beschränktem Wissen eine andere Idee verfolgt wie ich den Lichtverbrauch messen kann
Hab jedes Licht mit z.b.

			31    => array(IPSPC_PROPERTY_NAME        => 'Licht Badezimmer EG', 
                          IPSPC_PROPERTY_DISPLAY     => true, 
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL, 
                          ),	

eingegeben, das funktioniert auch, nur sobald ich mehr als 31 array eingebe kann ich die IPSPower nicht wieder aktualisieren, diese bleibt auf Installing und tut nicht mehr weiter.

Was kann ich hierbei tun?

LG
CHristian

Hallo, bekomme ich IPSPowerControl auch auf einem PI zum laufen? Im Moment gelingt es mir nicht, es werden keine Variablen für die Zähler angelegt. Ich habe schon etwas gelesen und vermute das es an Highchart liegt. Was muss ich tun damit HigtChart aus der IPSLibary auch auf dem PI läuft?

Grüße
cerberus

hier noch die LOG Datei

IPSLogger_20170127.zip (2.4 KB)

hallo!

ich habe Fehlermeldungen die ich nicht nachvollziehen kann.

Kann mir da wer helfen

Danke

lg
Christian

@cerberusde

Prinzipiell gibt es da keine EInschränkungen. Überprüfe doch mal über die normalen WebFront Graphen ob das Logging von IPSPowerControl korrekt läuft.

@aignaaaa

Sieht nach einem Konvertierungsfehler aus (zB Integer erwartet aber String Variable erhalten).