Waschmaschinen Status über Plugwise

Hi Zusammen,

ich habe vor einiger Zeit mal nen kleines Script geschrieben welches mit über ein Plugwise Modul, welches an der Waschmaschine hängt, den aktuellen Status in eine Variable schreibt.

Ihr müsst die IDs natürlich anpassen und bei der Integer Variable ein Variablenprofil anlegen.

<?
$ID_Plugwise = 52368; //ID der Verbrauchs Variable des Plugwise Cricles
$ID_Status = 12704; // ID einer Integer Variable für den Status

$Verbrauch = GetValueFloat($ID_Plugwise /*[Program\IPSLibrary\data\hardware\Plugwise\Circles\Waschmaschine\Leistung]*/);
$status = GetValueInteger($ID_Status /*[Keller\Waschküche\Waschmaschine\Status]*/);

//Integer Werte der Status Variable (für Variablenprofil)
// 0 = Aus
// 1 = Betrieb
// 2 = Fertig

//Wechsel von Waschmaschine aus auf Betriebsmodus
if ($status == 0)
	{
	if ($Verbrauch > "50")
	   {
		SetValueInteger ($ID_Status /*[Keller\Waschküche\Waschmaschine\Status]*/, 1);      //Status Waschen
		}
	}

//Wechsel von Waschen in Fertig
if ($status == 1)
	{
 if ($Verbrauch < 5)
	   {
		sleep(10);           //Schlafen und nochmal abfragen ob wirklich Fertig
	   if ($Verbrauch < 5)
	   	{
	   	SetValueInteger ($ID_Status /*[Keller\Waschküche\Waschmaschine\Status]*/, 2); //Status Fertig
	   	}
	   }
	}
?>

Wenn die Integer Variable dann den Wert 2 hat trigger ich ein Script das mit auf meine Dreambox und per eMail eine Nachricht schickt. Anschließend wird der Status wieder auf AUS gesetzt.

<?

// Dreambox
$ip_dream = GetValueString(29709 /*[Entertainment\Dreambox Wohnzimmer\IP]*/);
$Status = GetValueInteger(23937 /*[Entertainment\Dreambox Wohnzimmer\Power]*/);
if ($Status == 2) //Status 2 = AN
	{
	@ file_get_contents("http://192.168.178.50/web/message?text=%22Die%20Waschmaschine%20ist%20Fertig%20!!!!!%22&type=3&timeout=140", false, NULL, 0,0); //IP bitte anpassen
	}
SMTP_SendMail(54815 /*[WEB Infos\E-Mail senden(SMTP)]*/,"!!!!! Waschmaschine Fertig !!!!!","Die Waschmaschine ist Fertig");

SetValueInteger(12704 /*[Keller\Waschküche\Waschmaschine\Status]*/, 0); //ID der Integer Variable
?>

Ich weiss dass das Script nicht wirklich anspruchsvoll ist aber es funktioniert und vielleicht kann ja jemand was damit Anfangen :slight_smile:

Best Dank, das hab ich eh gesucht - der Trockner wird bei mir schon via Plugwise ausgewertet, mal sehen
wie zuverlässig dein Script bei der WaMa arbeitet :wink:

Kann abends mal berichten…

Also bei mir funktioniert es 1A, es gibt aber eventuell Waschmaschinen die für mehr als 10 Sekunden einen Verbrauch unter 5 Watt im Waschvorgang haben. Bei denen muss die Sleep Zeit natürlich angepasst werden.

Ja, das wars bei mir auch: Habe die Sleepzeit für Verbrauch unter 5 Watt angepasst und jetzt läuft das.

Eben kam die Fertig-Meldung per Push :slight_smile:

Besten Dank fürs Teilen.

Was das Skript mit Plugwise zu tun hat, erschließt sich mir noch nicht aber sleep zu verwenden finde ich schrecklich.:rolleyes:

Die ID des auslesenden Geräts gehört einem Plugwise-Circle :wink:

Das hab ich gesehen aber die kann ich ja durch x-beliebige IDs anderer Zähler ersetzen. :rolleyes:

Hallo
Ich sehe gerade , dass du das IPSLibrary Modul verwendest.
Ich weiss nicht ob du weisst , dass das Modul sowas schon eingebaut hat.
Stichwort Zaehleractions in der Konfigurationsdatei.

/***************************************************************************//**
* Zaehleractions
* mache etwas bei unterschreiten oder ueberschreiten eines Wertes
* fuer eine bestimmte Zeit
*
*   Feld 01   -   CircleID oder Externer Name
*   Feld 02   -   < Wert kleiner , > Wert groesser
*   Feld 03   -   Leistungswert1 in Watt
*   Feld 04   -   Leistungswert2 in Watt
*   Feld 05   -   Zeitraum
*   Feld 06   -   VariablenID oder ScriptID
*   Feld 07   -   Sollwert
*   Feld 08   -   Reserve
*
*  Beispiel
* 	array("000D6F0000D3412E"	,"<"	,4	,false,5   ,xxxxx 	,false	,false),
*  fuehre Script 12345 aus / bzw setze Variable 12345 auf true
*  wenn Circle 5 Minuten lang unter 4 Watt hat.
*******************************************************************************/

Uups :slight_smile:
Das kommt davon wenn man neue Geräte nur schnell einbindet und nicht davon ausgeht das die benötigten Funktionen schon vorhanden sind :slight_smile:

Danke für die Info

Bei mir mein Eintrag fuer die Waschmaschine so aus.

	    array("000D6F0000D322B6"	,"<"	,4.5	,false ,3   ,49557 /*[Program\IPSLibrary\data\privat\Status\Waschmaschine]*/	,false,false),
	    array("000D6F0000D322B6"	,">"	,4.5	,false ,2   ,49557 /*[Program\IPSLibrary\data\privat\Status\Waschmaschine]*/	,true	,false),

Also in meiner Konfigurationsdatei gibt es keinen Abschnitt „Zaehleractions“. :confused:
Ich nutze die Version 1.2.1041 … gibt es da was Neues von dem ich noch nichts weiß? :wink:

Das ist ganz einfach erklaert.
Wenn du ein Modul installierst wird diese Konfigurationsdatei erstmalig erstellt.
Darin sollst du deine dir eigenen Sachen einstellen.
Wenn du das Modul updatest kann ich ja nicht deine Einstellungen wieder ueberschreiben
Deine von dir geaenderte wird nicht ueberschrieben.
Kommen neue Konfigurationsmoeglichkeiten hinzu muss der einzelne User diese in „seine“
selbst uebernehmen.
Anhaltspunkt ist immer die DEFAULT-Konfigurationsdatei im Ordner
…\scripts\IPSLibrary\config\hardware\Plugwise\Default
Diese kann ich ueberschreiben.
Also mal diese Datei sich ansehen und „Sachen“ daraus in die eigene Konfiguration uebernehmen.

Das macht Sinn!!
Und kaum macht man es richtig … schon klappt’s. :loveips:

1000 Dank für diese Erweiterung. Das hilft mir sehr.

Und probiert und getestet ,
oder ?

Unabhängig vom sleep(): Ich denke auch nicht, dass die Variable $Verbrauch beim zweiten If einen anderen Wert wie bei der ersten Abfrage hat, wird ja nicht neu zugewiesen?
Bei mir ist noch „Uralt“-Code „vor“ dem IPSLibrary Modul mit Plugwise im Einsatz, da fehlt mir bisher auch das nochmalige Nachprüfen, womit „Fehlalarme“ vermieden werden sollen (z.B. Übergang Abpumpen - Schleudern)
Da kam der Hinweis mit der fertigen Lösung gerade richtig :slight_smile:

@friendly
Jetzt wo du es sagst … Mal wieder nicht nachgedacht :slight_smile:

@1007
Danke fürs Beispiel, werde das bei nächster Möglichkeit mal umbauen, hab leider momentan zuviele offene Projekte (Odys next als Raumdisplay, dmx artnet Einbindung und Verkabelung, ebus heizungssteuerung,…)

Grüße

Ja, probiert und getestet. Klappt super!!

Hallo 1002,

versuche auch gerade eine Fertig Meldung zu erhalten, aber bei mir wird die Variable nicht geändert.

im Script habe ich es so eingestellt:

  $Zaehleractions = array(
	    array("22837"	,"<"	,4	,false ,5   ,37782 /*[Haussteuerung\Haussteuerung\Sonstige Räume\Waschküche\Waschmaschine\Waschmaschine Status]*/ 	,false,false),
	    //array("000D6F0000D3412E"	,">"	,400,false ,5   ,12345 /*[Objekt #12345 existiert nicht]*/ 	,1	,false),
			);

Kannst Du sehen ob da was falsch ist?

Vielleicht die fehlende Circle-ID, die bei 1007 drinsteht. Bei Dir steht eine fünfstellige ID (22837) von wasauchimmer :wink:

siehe auch vierte Scriptzeile.

Gruß
Bruno

Hallo Bruno,
dass wird es wohl sein. Ich dachte externer Name könnte auch ein externer Stromzähler sein, also kein Plugwise Gerät.

GeTapatalk(t) mit meinem Galaxy Tab 10.1N