Waschmaschine fertig?

@franky76:

im texteditor beim antworten hast du oben 2 symbolleisten. in der 2. leiste ganz rechts gibts ein symbol „php“ … (zugegebenermaßen ziemlich klein :wink:

damit werden 2 tags eingeführt … dein script einfach mit copy/past zwischen die beiden tags einfügen und schon wird das ganze schön formatiert in eine php-box gelegt :wink:

ich bin gespannt auf dein script …

Oh, ja wirklich klein :slight_smile:
Na wie gesagt, Script ist sehr kurz da die Abfrage Routinen ja bereits im FMS erledigt werden.

   <?php
include('ProwlPHP.php');

$Variable = GetValueBoolean(13028 /*[Home\Bad\.Waschmaschine\Lastsensor FMS\FMS - Device (1111)]*/);


if ($Variable == true) {
$prowl = new Prowl('71fhsdjhfjskfhskhfskjf73hed623dg236d2d68eca');  // hier dein Magic-Key rein
$prowl->push(array(
 'application'=>'IP-Symcon',
 'event'=>'Meldung',
 'description'=>utf8_encode("Waschmaschine fertig"),
 'priority'=>0
));
}


?>

Zum Thema Pusch gibt es auch noch einen ausführlichen Thread, dort hab ich mich auch dankend informiert.

Hier mal mein Skript für die Erfassung der Laufzeit und den Energieverbrauch.
Die Auswertung mache ich mit einem S0-Ausgang an einem 1-Wire Zähler.
Die daten werden im Webfront angezeigt

Dummy_Instanz anlegen
Skript reinkopieren
Anfangszählerstände und Zählerkonstante anpassen
Skript starten
Ereignis bei Zählerstandsänderung anlegen
Fertig

<?
//Anfangstand Zähler
$Start_Zaehler   	= 11.86; //z.B. 123.45
$Start_S0_Zaehler = 12555 ; //z.B. 12345
//Zählerkonstante in Wh angeben
$ZK = 0.5/1000;

$SelfID 	= $IPS_SELF;
$Sender 	= $IPS_SENDER;
//print_r (IPS_GetObject($IPS_SELF));
$Object   	= IPS_GetObject($SelfID);
$ObjectID 	= $Object['ObjectID'];
$ParentID 	= $Object['ParentID'];
$InfoID 		= 0;
$InfoID     = $Object['ObjectInfo'];
//print_r(IPS_GetObject($ParentID));
$Parent     = IPS_GetObject($ParentID);
$Name       = $Parent['ObjectName'];

@$Vari 	= explode(";",GetValueString ($InfoID));
//echo $Name;
//print_r ($Vari);

switch ($Sender)
	{
	case "Variable":
	   {
	   $Zaehlerstand_neu = $IPS_VALUE;
	   $Zaehlerstand_alt = GetValueInteger ($Vari[2]);
		//IPS_LogMessage ("Verbrauch: ",$Start_Zaehler+(($Zaehlerstand_neu-$Start_S0_Zaehler)*$ZK));

		if ($Zaehlerstand_neu > ($Zaehlerstand_alt+2))  //Standbyverluste
	      {
	      //Startzeit
	      if (@IPS_GetScriptTimer($SelfID) == 0)
	         {
            SetValueString ($Vari[6],date("H:i:s"));
				SetValueInteger ($Vari[7],time());
				//Endzeit
				SetValueString ($Vari[8],"--:--");
				//Akt.Laufzeit
				SetValueString ($Vari[10],"--:--");
				echo "time gesetzt";
	         }
			else
				{
				//Akt.Laufzeit
				$time 	= time()-GetValueInteger($Vari[7])-3600;
				SetValueString ($Vari[10],(date("H:i:s",$time)));
    		   }
			IPS_SetScriptTimer($SelfID, 180);
			//Leistung hochzählen
			$Start = GetValueFloat($Vari[0]);
      	$Neu = $Start+(($Zaehlerstand_neu-$Start_S0_Zaehler)*$ZK);
      	SetValueFloat($Vari[4],$Neu); //Ändern
			//Ein/Aus
			SetValueBoolean($Vari[3],true);
   		}
      SetValueInteger ($Vari[2],$Zaehlerstand_neu);
		break;
		}
	case "TimerEvent":
	   {
	   IPS_SetScriptTimer($IPS_SELF, 0);
      //Wärmepumpe Ein/Aus
		SetValueBoolean($Vari[3],false);
		//Letzter Wert Speichern
		$Akt = GetValueFloat($Vari[4]);
		SetValueFloat($Vari[1],$Akt);
		//Endzeit
		SetValueString ($Vari[8],date("H:i:s"));
		SetValueInteger ($Vari[9], time());
		//Akt.Laufzeit
		SetValueString ($Vari[10],"--:--");
		echo $IPS_SENDER;
	   break;
	   }
	case "Execute":
	   {
      //Variable Variablen
   	$Meldungen = @IPS_GetObjectIDByName($Name."_Variablen",$ObjectID);
	   	if ($Meldungen == 0)
				{
				$Meldungen = IPS_CreateVariable(3);
				IPS_SetParent($Meldungen, $ObjectID);
				IPS_SetName($Meldungen,$Name."_Variablen");
            IPS_SetPosition($Meldungen, 205);
            IPS_SetInfo($Meldungen, "This Variable was created by Script");
            IPS_SetInfo($ObjectID,$Meldungen);
            echo $Name."_Variablen erfolgreich eingerichtet \r";
				}
   	//Variable Start Zähler
   	$ID[0] = @IPS_GetObjectIDByName("Start Zähler",$ObjectID);
	   	if ($ID[0] == 0)
				{
				$ID[0] = IPS_CreateVariable(2);
				IPS_SetParent($ID[0], $ObjectID);
				IPS_SetName($ID[0],"Start Zähler");
            IPS_SetPosition($ID[0], 5);
            IPS_SetInfo($ID[0], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[0], "~Electricity");
            SetValueFloat ($ID[0],$Start_Zaehler);
            echo "Start Zähler erfolgreich eingerichtet \r";
				}
   	//Variable Start S0-Zähler
		$ID[1] = @IPS_GetObjectIDByName("Start S0-Zählerstand",$ObjectID);
	   	if ($ID[1] == 0)
				{
				$ID[1] = IPS_CreateVariable(1);
				IPS_SetParent($ID[1], $ObjectID);
				IPS_SetName($ID[1],"Start S0-Zählerstand");
            IPS_SetPosition($ID[1], 8);
            IPS_SetInfo($ID[1], "This Variable was created by Script");
            SetValueInteger ($ID[1],$Start_S0_Zaehler);
            echo "Start S0-Zählerstand erfolgreich eingerichtet \r";
				}
		//Variable letzter S0-Zählerstand
		$ID[2] = @IPS_GetObjectIDByName("S0-Zählerstand_alt",$ObjectID);
	   	if ($ID[2] == 0)
				{
				$ID[2] = IPS_CreateVariable(1);
				IPS_SetParent($ID[2], $ObjectID);
				IPS_SetName($ID[2],"S0-Zählerstand_alt");
            IPS_SetPosition($ID[2], 11);
            IPS_SetInfo($ID[2], "This Variable was created by Script");
            echo "S0-Zählerstand_alt erfolgreich eingerichtet \r";
				}
      //Variable Gerät EIN/AUS
		$ID[3] = @IPS_GetObjectIDByName($Name,$ParentID);
	   	if ($ID[3] == 0)
				{
				$ID[3] = IPS_CreateVariable(0);
				IPS_SetParent($ID[3], $ParentID);
				IPS_SetName($ID[3],$Name);
            IPS_SetPosition($ID[3], 0);
            IPS_SetInfo($ID[3], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[3], "~Switch");
            echo $Name." erfolgreich eingerichtet \r";
				}
      //Variable Verbrauch
		$ID[4] = @IPS_GetObjectIDByName("Verbrauch ".$Name." Insgesamt",$ParentID);
  			if ($ID[4] == 0)
				{
				$ID[4] = IPS_CreateVariable(2);
				IPS_SetParent($ID[4], $ParentID);
				IPS_SetName($ID[4],"Verbrauch ".$Name." Insgesamt");
            IPS_SetPosition($ID[4], 5);
            IPS_SetInfo($ID[4], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[4], "~Electricity");
            echo "Verbrauch ".$Name." Insgesamt erfolgreich eingerichtet \r";
            IPS_SetPosition($SelfID, 50);
            IPS_SetHidden($SelfID, true); //Objekt verstecken
            }
      // Pseudo-Skript
      $ID[5] = @IPS_GetScriptIDByName("Pseudo",$ObjectID);
  			if ($ID[5] == 0)
				{
				$ID[5] = IPS_CreateScript(0);
				IPS_SetParent($ID[5], $ObjectID);
				IPS_SetName($ID[5],"Pseudo");
            IPS_SetPosition($ID[5], 216);
            IPS_SetInfo($ID[5], "This Script was created by Script");
            echo "Pseudo Skript erfolgreich eingerichtet \r";
            IPS_SetHidden($ID[5], true); //Objekt verstecken
            IPS_SetVariableCustomAction($ID[3], $ID[5]);
            }
      //Variable Startzeit
		$ID[6] = @IPS_GetObjectIDByName("Startzeit",$ParentID);
	   	if ($ID[6] == 0)
				{
				$ID[6] = IPS_CreateVariable(3);
				IPS_SetParent($ID[6], $ParentID);
				IPS_SetName($ID[6],"Startzeit");
            IPS_SetPosition($ID[6], 14);
            IPS_SetInfo($ID[6], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[6], "~String");
            echo "Startzeit erfolgreich eingerichtet \r";
				}
      //Variable Startzeit timestamp
		$ID[7] = @IPS_GetObjectIDByName("Startzeit_timestamp",$ObjectID);
	   	if ($ID[7] == 0)
				{
				$ID[7] = IPS_CreateVariable(1);
				IPS_SetParent($ID[7], $ObjectID);
				IPS_SetName($ID[7],"Startzeit_timestamp");
            IPS_SetPosition($ID[7], 17);
            IPS_SetInfo($ID[7], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[7], "~String");
            echo "Startzeit_timestamp erfolgreich eingerichtet \r";
				}
      //Variable Endzeit
		$ID[8] = @IPS_GetObjectIDByName("Endzeit",$ParentID);
	   	if ($ID[8] == 0)
				{
				$ID[8] = IPS_CreateVariable(3);
				IPS_SetParent($ID[8], $ParentID);
				IPS_SetName($ID[8],"Endzeit");
            IPS_SetPosition($ID[8], 17);
            IPS_SetInfo($ID[8], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[8], "~String");
            echo "Endzeit erfolgreich eingerichtet \r";
				}
      //Variable Endzeit timestamp
		$ID[9] = @IPS_GetObjectIDByName("Endzeit_timestamp",$ObjectID);
	   	if ($ID[9] == 0)
				{
				$ID[9] = IPS_CreateVariable(1);
				IPS_SetParent($ID[9], $ObjectID);
				IPS_SetName($ID[9],"Endzeit_timestamp");
            IPS_SetPosition($ID[9], 19);
            IPS_SetInfo($ID[9], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[9], "~String");
            echo "Endzeit_timestamp erfolgreich eingerichtet \r";
				}
		//Variable Akt.Laufzeit
		$ID[10] = @IPS_GetObjectIDByName("Akt.Laufzeit",$ParentID);
	   	if ($ID[10] == 0)
				{
				$ID[10] = IPS_CreateVariable(3);
				IPS_SetParent($ID[10], $ParentID);
				IPS_SetName($ID[10],"Akt.Laufzeit");
            IPS_SetPosition($ID[10], 20);
            IPS_SetInfo($ID[10], "This Variable was created by Script");
            IPS_SetVariableCustomProfile($ID[10], "~String");
            echo "Akt.Laufzeit erfolgreich eingerichtet \r";
				}
      //ID Meldungen
		$IDS = implode(";",$ID);
		SetValueString($Meldungen,$IDS);
   	}
	}
?>