IPSPowerControl

GENIAL. Vielen Dank. Probier ich gleich mal aus. Melde mich dann mit einem kurzen Feedback.

Hallo Leute,

ich hatte heute endlich Zeit die Funktion zu editieren…

Hier mal meine Config


<?

	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                       IPSPC_PROPERTY_VARM3       => 48053,
                          ),
			);
	}
	


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


	define ("IPSPC_ELECTRICITYRATE",    18 /*Cents per KWh*/);

	define ("IPSPC_WATERRATE",    130 /*Cents per m³*/);

	define ("IPSPC_GASRATE_KWH",    10.6 /*1m³ = kWh*/);

	define ("IPSPC_GASRATE_EURO",    7.6 /*Cents per KWh*/);

	define ("IPSPC_REFRESHINTERVAL_WATT",   60);

	define ("IPSPC_REFRESHINTERVAL_KWH",   60);


?>

Und hier die Custom


<?
function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
        $returnList = $valueList;
        foreach ($sensorList as $idx=>$value) {
            $returnList[$idx] = $value;
        }
        
        $returnList[0] = IPSPowerControl_Value2M3(1, 1/10, true);

        return $returnList;
    }

?>

Leider sehe ich im WebFront nur das hier

Ich bekomme also leider keine Daten angezeigt.

Was mache ich denn falsch? :confused:

Wenn ich den Off Button drücke, bekomme ich diesen Error

Versuchs mal so:


 <?

    function IPSPowerControl_GetSensorConfiguration() {
        return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'Gas',
                       IPSPC_PROPERTY_VARM3       => 48053,
                          ),
            );
    }
    


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


?> 


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

        return $returnList;
    }

?> 

Hallo Andreas,
Sag mal speicherst Du die vom Archive Handler bezogenen Informationen noch einmal in irgendeiner Variable zwischen die dann für die Visualisierung der kwh im IPS powercontrol genutzt wird ?

Der D0 Wert bei mir hat am 08.03. eine Null ins die DB geschrieben und trotz Löschung dieses Einstrages und noch drüber bügeln mit dem RS DB analyzer und Aufräumer kommt dort immer wieder die 5000 kwh hoch.
Liegt irgendwo eine Variable die diese Werte parallel aufzeichnet und hier noch zu fixen wäre ?

Gruss
B71

Hi,

die Werte werden IPSLibrary/data/modules/IPSPowerControl/Values/ gespeichert bzw. Archiviert.

Das Logging der eigentlichen Source Variablen hab ich bei mir deaktiviert, da meine Sensoren alle paar Sekunden Werte liefern und dadurch die Datenmengen unnötigerweise explodieren…

Und wie bekomme ich aus dem Datenset die Fehler raus ?

na wie bei Deiner anderen Variable auch - ist ja kein Unterschied, nur das diese durch das IPSPowerControl Script befüllt wird!

Also über die Config die entsprechende Variable ermitteln, Archive Handler öffnen und den bösen Datensatz suchen …

Alles klaro…dann ist es ja „einfach“

Gruss und Danke
B71

Edit: und funktioniert…:slight_smile: danke…

Hallo,
bin totaler Neuling mit IPS und ich habe zurzeit folgendes Problem wie auf Bild 1. Die Varianten auf den letzten Seiten habe ich schon alle versucht.

	function IPSPowerControl_GetSensorConfiguration() {
		return array(
	    	0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_VARWATT     => 47422,
			              IPSPC_PROPERTY_VARKWH      => 43059,
			              ),
		  
			);
	}
	
	function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'L1',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
		);
	}
	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
		$returnList = $valueList;
		foreach ($sensorList as $idx=>$value) {
			$returnList[$idx] = $value;
		}
		return $returnList;
	}

Vielen Danke im vorraus für Eure Hilfe

Hi,

hast Du nachträglich noch was geändert, starte sicherheitshalber nochmals die Installation (zu finden in der IPSModuleManagerGUI).

Den interessanten Teil der Objektbaumes sieht man bei Dir leider nicht - zu finden unter IPSLibrary/data/modules/IPSPowerControl/…

Hallo Brownson,

zuerst VIELEN DANK für dieses coole Teil.

Ist es denn geplant, mehrere TARIFE zu ermöglichen? Also so z.B.

L1: Mo-Fr 6:00-22:00 Tarif HT1 Mo-Fr 22:00-06:00 NT1 Sa+So 0:00-24:00 NT1
L2: Mo-Fr 6:00-22:00 Tarif HT3 Mo-Fr 22:00-06:00 NT4 Sa+So 0:00-24:00 NT4

Würde genau meinen Fall abdecken ;–))) - ich weiß EGOIST …???

Hi,

von mir in nächster Zeit, nicht - zuviele andere Baustellen…

Ist auf jeden Fall möglich, es sind dazu aber doch einige Änderungen nötig…

Hallo Andreas,

vielen Dank für dieses tolle Modul.
Ich habe es bei mir eingebunden und funktioniert gut (muss noch etwas an meinem Verständnis arbeiten, aber das Modul läuft).
Ich protokolliere aktuell, wann meine Hifi Steckdose ein, bzw. aus ist. Wenn ich einen gewissen Durchschnittsverbrauch festlege, dann müsste ich diese Daten doch mit visualisieren können - Stromverbrauch durch TV schauen.
Muss ich dazu eine PHP Funktion schreiben, die diese Daten aus dem IPS Archive Handler holt oder beim Ein- bzw. Ausschalten IPSPC das nur „mitteilen“.

Wäre für einen Wink in die richtige Richtung dankbar.

Gruß
Thorsten

Noch nicht ganz verstanden - woher kommen die Werte für die akutelle Leistung?

Guten Morgen.

In diesem Fall gibt es keine Variable für die aktuelle Leistung. Ich habe eine HM-Funksteckdose an meinem TV hängen.

Daher gilt folgendes:

  • Wenn der STATE der HM-Steckdose auf TRUE steht, dann läuft der TV
  • Der TV verbraucht im Schnitt nn Watt (sozusagen als konstanter Verbrauch / muss ich noch messen)

Kann ich IPSPC sagen, solange die HM-Steckdose eingeschaltet ist, gehe für den Verbraucher TV von einem Verbrauch von nn-Watt aus. Wenn die Steckdose aus ist, dann ist der TV Verbrauch 0 Watt.

Anbei meine aktuelle Konfig (1. Versuch) :o:


	function IPSPowerControl_GetSensorConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Zaehler Haushalt',
			              IPSPC_PROPERTY_VARWATT     => 24941,
			              IPSPC_PROPERTY_VARKWH      => null,
			              ),
			1    => array(IPSPC_PROPERTY_NAME        => 'Zaehler Heizung',
			              IPSPC_PROPERTY_VARWATT     => 29708,
			              IPSPC_PROPERTY_VARKWH      => null,
			              ),
			2    => array(IPSPC_PROPERTY_NAME        => 'Technik USV',
			              IPSPC_PROPERTY_VARWATT     => 37016,
			              IPSPC_PROPERTY_VARKWH      => null,
			              ),
			);
	}





function IPSPowerControl_GetValueConfiguration() {
		return array(
			0    => array(IPSPC_PROPERTY_NAME        => 'Haushalt',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			1    => array(IPSPC_PROPERTY_NAME        => 'Heizung',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			2    => array(IPSPC_PROPERTY_NAME        => 'Technik USV',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			4    => array(IPSPC_PROPERTY_NAME        => 'Gesamt',
			              IPSPC_PROPERTY_DISPLAY     => false,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
			              ),
			5    => array(IPSPC_PROPERTY_NAME        => 'Haushalt o. Technik',
			              IPSPC_PROPERTY_DISPLAY     => false,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
			6    => array(IPSPC_PROPERTY_NAME        => 'TV Wohnzimmer',
			              IPSPC_PROPERTY_DISPLAY     => true,
			              IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
			              ),
		);
	}


	function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
		$returnList[0] = IPSPowerControl_Watt2KWH(0,1);
		$returnList[1] = IPSPowerControl_Watt2KWH(1,1);
		$returnList[2] = IPSPowerControl_Watt2KWH(2,1);
		$returnList[4] = $sensorList[0] + $sensorList[1];
		$returnList[5] = $sensorList[0] - $sensorList[2];
 
		// TV Wohnzimmer Hifi Geräte werden mit 35 Watt im Durchschnitt berechnet
		if(GetValue(40243) == TRUE)
		{
		   // Steckdose ist an
			$returnList[6] = 35; // 35 Watt ist aktuell nur eine Schätzung
		} else {
			$returnList[6] = 0;
		}
		return $returnList;
	}


	function IPSPowerControl_CalculateValuesKWH($sensorList, $valueList) {
		$returnList[0] = IPSPowerControl_GetCalculatedKWH (0);
		$returnList[1] = IPSPowerControl_GetCalculatedKWH (1);
		$returnList[2] = IPSPowerControl_GetCalculatedKWH (2);
		$returnList[4] = IPSPowerControl_GetCalculatedKWH (4);
		$returnList[5] = IPSPowerControl_GetCalculatedKWH (5);
		$returnList[6] = IPSPowerControl_GetCalculatedKWH (6);
		return $returnList;
	}

Wäre für einen Tipp dankbar, bzw. für Rückmeldung ob meine Konfig so überhaupt Sinn macht :eek:.

Danke & Gruß
Thorsten

Hallo Thorsten

Mach doch einen Ereignistrigger auf die Boolean der HM-Steckdose, wenn an dann schreib den Wert Watt nn denn du annimmst oder dann mal gemessen hast in die Variable welche du wiederum in IPSPowercontrol angibst und entsprechend ausliest/anzeigst.

Gruss

Geniale Idee :).
So einfach, aber selbst darauf gekommen wäre ich nicht.

Werde ich heute Abend gleich ausprobieren.

Danke & Gruß
Thorsten

Wird klappen aber wichtig noch bei Off natürlich auf 0 setzen… und nimm dafür die Wattvariable da diese als „Standard“ archiviert wird was für dich passt, die KWh wäre Zähler im IPSPowerControl und ist dafür nicht geeignet…

Hallo Thorsten,

es sollte mit Deiner derzeitigen Lösung auch funktionieren, allerdings solltest Du die Sensoren von 0-x durchgehend numerieren und Deine Callbacks stimmen auch noch nicht ganz.

Versuch mal folgende Version:


   function IPSPowerControl_GetSensorConfiguration() {
        return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'Zaehler Haushalt',
                          IPSPC_PROPERTY_VARWATT     => 24941,
                          IPSPC_PROPERTY_VARKWH      => null,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'Zaehler Heizung',
                          IPSPC_PROPERTY_VARWATT     => 29708,
                          IPSPC_PROPERTY_VARKWH      => null,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'Technik USV',
                          IPSPC_PROPERTY_VARWATT     => 37016,
                          IPSPC_PROPERTY_VARKWH      => null,
                          ),
            );
    }





function IPSPowerControl_GetValueConfiguration() {
        return array(
            0    => array(IPSPC_PROPERTY_NAME        => 'Haushalt',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            1    => array(IPSPC_PROPERTY_NAME        => 'Heizung',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            2    => array(IPSPC_PROPERTY_NAME        => 'Technik USV',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            3    => array(IPSPC_PROPERTY_NAME        => 'Gesamt',
                          IPSPC_PROPERTY_DISPLAY     => false,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_TOTAL,
                          ),
            4    => array(IPSPC_PROPERTY_NAME        => 'Haushalt o. Technik',
                          IPSPC_PROPERTY_DISPLAY     => false,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
            5    => array(IPSPC_PROPERTY_NAME        => 'TV Wohnzimmer',
                          IPSPC_PROPERTY_DISPLAY     => true,
                          IPSPC_PROPERTY_VALUETYPE   => IPSPC_VALUETYPE_DETAIL,
                          ),
        );
    }


    function IPSPowerControl_CalculateValuesWatt($sensorList, $valueList) {
        $returnList[0] = $sensorList[0];
        $returnList[1] = $sensorList[1];
        $returnList[2] = $sensorList[2];
        $returnList[3] = $sensorList[0] + $sensorList[1];
        $returnList[4] = $sensorList[0] - $sensorList[2];
 
        // TV Wohnzimmer Hifi Geräte werden mit 35 Watt im Durchschnitt berechnet
        if(GetValue(40243) == TRUE)
        {
           // Steckdose ist an
            $returnList[5] = 35; // 35 Watt ist aktuell nur eine Schätzung
        } else {
            $returnList[5] = 0;
        }

        // Berechnung der KWH Werte für die spätere Verwendung
        IPSPowerControl_Watt2KWH(0,1);
        IPSPowerControl_Watt2KWH(1,1);
        IPSPowerControl_Watt2KWH(2,1);
        IPSPowerControl_AddCalculatedValue('TOTAL', $returnList[3]/1000/60);
        IPSPowerControl_AddCalculatedValue('TECH',  $returnList[4]/1000/60);
        IPSPowerControl_AddCalculatedValue('TV',    $returnList[5]/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_GetCalculatedValue('TOTAL');
        $returnList[4] = IPSPowerControl_GetCalculatedValue('TECH');
        $returnList[5] = IPSPowerControl_GetCalculatedValue('TV');
        return $returnList;
    }  

Hallo Andreas,

vielen Dank für die Korrektur meiner Konfiguration :-).
Funktioniert einwandfrei. Jetzt muss ich nur noch im Detail genau verstehen, wie es geht (hatte am WE nicht viel Zeit mich weiter damit zu beschäftigen).
Da ich den Verbrauch jetzt genauer wissen will (Kühlschrank, Waschmaschine, Trockner, Durchlauferhitzer, etc.) werde ich mir das Plugwise System bestellen. Dafür gibt es ja auch ein IPSLibrary Modul und daher schätze ich, es ist auch mit IPSPC kompatibel, oder?

Danke & Gruß
Thorsten

Sent from my iPad using Tapatalk