Temperatur Vergleich - Winmatic

Hallo,

ich versuche gerade unser Winmatic im Bad mit etwas logik zu versehen. Das Fenster soll aufgehen wenn die Luftfeuchte 50% erreicht allerdings soll das schließen abhängig von der Aussentemperatur erfolgen (im Winter kühlt das Bad sonst aus).

Ich wollte folgendes Script einsetzen:

<?

$Aussentemperatur = getValue(36991 /*[1 Komponenten\Klima\Temperatur - Schatten\TEMPERATURE]*/);

IPS_RunScript(23596 /*[2 Steuerung\Fenster\Bad - Fenster Auf]*/);

if ($Aussentemperatur >= '15')
{
		Sleep(1800);
		IPS_RunScript(23622 /*[2 Steuerung\Fenster\Bad - Fenster Zu]*/);
}

else
{
		Sleep(900);
		IPS_RunScript(23622 /*[2 Steuerung\Fenster\Bad - Fenster Zu]*/);
}

?>

Aus welchem Grund auch immer kompiliert es nicht - meine Vermutung liegt in Richtung der Temperatur.

Jemand eine Idee?

Danke

Die Temperatur ist .
Gruß NBA

Was soll ich sagen… das Script wäre eine Katastrophe.

Du liest die Variable für die Außentemperatur als Float ein und vergleichst sie im Script als String(‚variable‘)… du setzt ein Schlafen des Scripts auf eine 1/2 Stunde (Sleep 1800), was alles blockiert bzw. nie abläuft…

Desweiteren wäre noch interessant was du im Script mit der ID 23596 machst… posten!

Über eine Hysterese musst du noch nachdenken… aber dazu vlt. später…

Evtl. kann man das, was du vorhast alles in ein Script packen… aber dazu fehlen die Hintergrundinformationen… spez. welche Scripte sind schon im Ablauf eingebunden und welche Variablen wertest du aus.

if ($Aussentemperatur >= 15) 

Trigger auf die Außentemperatur hast Du gesetzt.

Das mit deinen sleeps ist keine gute Idee, wenn Du Verzögerungen willst, nimm einen Scripttimer.

Float

Gruß NBA

Leider wirst du bei alleiniger Betrachtung der relativen Luftfeuchtigkeit auch keine zufriedenstellende Ergebnisse bekommen. Es gibt durchaus viele Wetterkonstellationen bei deinen unter diesen Voraussetzungen die Luftfeuchtigkeit im Bad dann noch weiter steigen wird. Dies könnte unter Umständen auch eine größere Gefahr von Schimmelbildung mit sich führen.
Deutlich genauer wäre die Berechnung der absolute Luftfeutchtigkeit draußen und drinnen. Von dieser könnte man dann abhängig machen, ob das Fenster geöffnet oder geschlossen ist.

Unabhängig von der Logik der Skriptes, sollte ein groß geschriebenes „g“ schon eher funktionieren.

$Aussentemperatur = GetValue(36991);

Er macht in dem Skript 23596 einfach das Fenster auf und nach dem Timeout wieder zu. Dass das Skript nie abläuft kann man so pauschal leider nicht sagen. Unter Windows hast du recht, allerdings zählt unter Unix Systemen bei PHP die „sleep“ Zeit nicht als „execution“ time.

Ganz ganz wichtig. Du würdest Dich wundern, wie wenig man mit der rel. Luftfeuchtigkeit anfangen kann. Scau Dir mal Taupunkt und absolute Luftfeuchtigkeit an.

Hier die passende Funktion.

OK … nach dem Feedback werde ich das Thema mal komplett überdenken. Ich fand es erstmal logisch kann aber den Bedenken folgen.

Zu den Fragen was die anderen Scripte machen - sie steuern das öffnen und schließen. Ich habe die komplette Konfiguration in IPS nach dem folgenden Muster aufgebaut:

  1. Geräte (hier sind alle HM Komponenten zu finden)
  2. Steuerung (Auf, Zu, Sommer (halb runter) etc.
  3. Logik (Hier werden die Steuerscripte aufgerufen. Es ist etwas aufwendiger, aber erlaubt eine recht gute Kontrolle und Übersicht über die Konfigurationen).

Ich werde posten was es wurde.

Danke schon mal für die Hilfe/Anregungen.

Nur mal so zum nachhaken. Ich hatte auch erst die rel Luftfeuchte angesetzt und dann umgestellt.
Beispiel gestern. Draussen war die rel. Luftfeuchtigkeit 70% und innen (Keller) war es 60%. Mein Skript empfahl „Lüften möglich“.

Der Taupunkt lag außen um > 2 Grad unter dem Taupunkt innen und die absolute Luftfeuchtigkeit lag innen um über 2g/m³ höher (Werte aus dem Gedächnis - ohne Gewähr).

Früher hätte ich da nie gelüftet. Im Ergebnis ist man dann überrascht, dass bei Belüftung innen die rel. Luftfeuchte noch sinkt.

Genauso kenne ich es umgekehrt. Außen deutlich niedrigere rel. Luftfeuchte als innen aber Taupunkt und absolute Luftfeuchtigkeit zeigten, dass ich mir mit Lüften die Feuchtigkeit ins Haus geholt hätte.

Seit ich das per Skript im WebFront mit „Lüftungstipp“ anzeige, fällt einem die Entscheidung deutlich einfacher. Wir hatten 2 x hintereinander einen Wasserschaden im Keller und das bekomme ich mit dem richtigen Lüften sehr gut in den Griff. Meinen elektrischen Entfeuchter benötige ich nur noch bei sehr ungünstigen Verhältnissen.

Klasse Feedback! Schau ich mir gleich heute Abend mal an!

Danke

Guten Morgen,

in jetzt endlich mal dazu gekommen das Script für die Taupunktberechnung einzubauen und es tut auch irgendwas, aber was mache ich nun damit ;)?

<?

// alle Formeln nach http://www.wettermail.de/wetter/feuchte.html

$temperatur = getValue(26089 /*[1 Komponenten\Klima\Temperatur - Bad\TEMPERATURE]*/);
$relfeuchte = getValue(26810 /*[1 Komponenten\Klima\Temperatur - Bad\HUMIDITY]*/);

//Taupunktberechnung in °C
function Taupunkt($temperatur,$relfeuchte)
{
    $val = (234.67*0.434292289*log(6.1*exp((7.45*$temperatur)
            /(234.67+$temperatur)*2.3025851)*$relfeuchte/100/6.1))
            /(7.45-0.434292289*log(6.1*exp((7.45*$temperatur)
            /(234.67+$temperatur)*2.3025851)*$relfeuchte/100/6.1) );
    return $val;
}
//Sättigungsdampfdruck in hPa
function SaettigungsDampfDruck($temperatur)
{
    if ($temperatur >= 0)
    {
        $a = 7.5;
        $b = 237.3;
    }
    elseif ($temperatur < 0)
    {
        $a = 7.6;
        $b = 240.7;
    }
    $val = (6.1078 * exp( log(10) * (($a * $temperatur) / ($b + $temperatur)) ) );
    return $val;
}
//Dampfdruck in hPa
function DampfDruck($temperatur,$relfeuchte)
{
    $val = $relfeuchte/100 * SaettigungsDampfDruck($temperatur);
    return $val;
}
//absolute Feuchte in g/m³
function AbsoluteFeuchte($temperatur,$relfeuchte)
{
    $tk = ($temperatur + 273.15);
    $val  = (exp(log(10) * 5) * 18.016/8314.3 * DampfDruck($temperatur,$relfeuchte)/$tk);
    return $val;
}

$taupunkt = Taupunkt($temperatur,$relfeuchte);
$sattdampfdruck = SaettigungsDampfDruck($temperatur);
$dampfdruck = DampfDruck($temperatur,$relfeuchte);
$absfeuchte = AbsoluteFeuchte($temperatur,$relfeuchte);

?>

Folgende Fragen:

  • Das „Lüften Möglich“ Script/Auswertung würde mich sehr interessieren
  • Wie setzte ich das Ergebnis von „Taupunkt“ am elegantesten in ein Variable zur Anzeige oder Nutzung?

Vielen Dank.

So richtig gemacht hast Du damit ja noch nix. :smiley:

Mein schnell zusammengeklopftes Script:

<?

$taupunkt_keller = getvalue(50002 /*[Homematic\KG\Keller rechts\Taupunkt Keller berechnen\Taupunkt Keller]*/);
$taupunkt_aussen = getvalue(11961 /*[Homematic\Außentemp\Taupunkt aussen berechnen\Taupunkt_aussen]*/);
$luftfeuchte_innen = getvalue(37312 /*[Homematic\KG\Keller rechts\Wandthermostat\Keller rechts Temperatur/Luftfeuchte\HUMIDITY]*/);

if ($luftfeuchte_innen <= 55)
	{ // trocken
	setvalue (50371 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Luftfeuchte]*/, 0);
	if ($taupunkt_keller > ($taupunkt_aussen + 2))
		{ // Lüften möglich
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 3);
		}
		else if ($taupunkt_keller < ($taupunkt_aussen + 2))
		{ // Fenster geschlossen halten
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 2);
		}
}

else if (($luftfeuchte_innen >= 55) && ($luftfeuchte_innen < 64))
   { // optimal
	setvalue (50371 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Luftfeuchte]*/, 1);
	if ($taupunkt_keller > ($taupunkt_aussen + 2))
		{ // Lüften möglich
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 3);
		}
		else if ($taupunkt_keller < ($taupunkt_aussen + 2))
		{ // Fenster geschlossen halten
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 2);
		}
}

else if (($luftfeuchte_innen >= 64) && ($luftfeuchte_innen <= 69))
   { // normal
	setvalue (50371 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Luftfeuchte]*/, 2);
	setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 2);
 		if ($taupunkt_keller > ($taupunkt_aussen + 2.0))
		{ // Fenster auf - Stoßlüften
      setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 0);
		}
	}

else if ($luftfeuchte_innen >= 70)
   { // feucht
	setvalue (50371 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Luftfeuchte]*/, 3);
	setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 2);
	if ($taupunkt_keller > ($taupunkt_aussen + 1.5))
		{ // Fenster auf - Stoßlüften
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 0);
		}
		else if ($taupunkt_keller < ($taupunkt_aussen + 1.5))
		{ // Entfeuchter an
		setvalue (59856 /*[Homematic\KG\Keller rechts\Skript\Luftfeuchtigkeit Keller\Lüftungsvorschlag]*/, 1);
		}

	}
?>

Die Homematicwerte liegen bei mir gut 5% zu hoch (mit nem kalibrierten Gerät geprüft), daher die erhöhten Werte.

Die beiden Variablen entsprechend anlegen und mit einem Timer versehen.

Den Taupunkt hatte ich noch in einem anderen Skript liegen. Das kannste aber ins erste Script überführen. Wie gesagt, war Schnellschuß.
Muss das bei Gelegenheit mal aufräumen und richtig machen.
Dann einfach in den WebFront verlinkt und alles wird gut.

<?
	include_once "wetterdaten.php";

$temperatur = getvalue(14120 /*[Homematic\KG\Keller rechts\Wandthermostat\Keller rechts Temperatur/Luftfeuchte\TEMPERATURE]*/);
$relfeuchte = getvalue(37312 /*[Homematic\KG\Keller rechts\Wandthermostat\Keller rechts Temperatur/Luftfeuchte\HUMIDITY]*/);

$taupunkt = Taupunkt($temperatur,$relfeuchte);
$absfeuchte = AbsoluteFeuchte($temperatur,$relfeuchte);

setvalue (50002 /*[Homematic\KG\Keller rechts\Taupunkt Keller berechnen\Taupunkt Keller]*/, $taupunkt);
setvalue (22055 /*[Homematic\KG\Keller rechts\Taupunkt Keller berechnen\absFeuchte Keller]*/, $absfeuchte);

?>

wf.jpg

Das ganze nach der relativen Luftfeuchte zu steuern, ist nicht optimal. Am besten über die absolute Luftfeuchte, das weisst immer wieviel Wasser in der Luft vorhanden ist.

Bei 70% kannst z.B. 11 g/m³ oder aber auch nur 8 g/m³ haben. Der Unterschied ist hier schon enorm.

Danke für die Info.
Die eigentliche Steuerung funktioniert ja durch den Taupunkt. Die rel. Luftfeuchte (innen) gibt mir nur die Bereiche vor, in denen ich reagiere.
Aber ich denke trotzdem mal drüber nach, komplett auf abs Luftfeuchte umzustellen. Optimierungsbedarf gibt es immer.

Nachtrag: Neee, ich finde es so ok.:smiley:
Wenn ich Lüften kann, zeigt er mir das bezogen auf den Taupunkt immer an und es ist egal, wie innen die rel. Luftfeuchte ist. Von daher würde das Umstellen gar nichts ändern. Ich wüßte nur, wie viel Wasse wirklich in der Luft ist. % sind mir lieber und WAF-tauglicher.

Schon mal vielen Dank für die Hilfe. Ich muss mich jetzt erstmal durch das Script wühlen. Interessant wie man sich hier selbst weiterentwickelt. Wo ich damit loslegte dachte ich nur an Rollo auf und zu … jetzt mache ich mir Gedanken über das Klima. Ist schon cool vor allem wenn man so schnelle un auch gute Hilfe bekommt. :slight_smile:

Danke!!!

So ist der Gedanke der Community :slight_smile:

Man kann eben keine direkte (gedruckte) Hilfestellung zu IPS geben… obwohl ich damals auch davon ausgegangen war… es fehlt ein Handbuch!
Das gibt es mittlerweile auch schon seit Längerem, aber nichts ist so individuell wie du selbst bzgl. deiner, oder der Wünsche nach deiner (automatisierten) Umgebung. Und das kann sehr dynamisch sein :slight_smile:
Wichtig ist aber Das beschreiben zu können, was man überhaupt will und nicht gleich den Kopf in den Sand stecken.
Es gibt so viele Möglichkeiten mit IPS… gerade über den Eingriff per PHP… welche „starre“ Systeme nicht bieten…!

Genau dies war damals der ausschlagende Grund (Artikel im EV-Magazin) mich in dieses Abenteuer zu stürzen**, obwohl ich mit PHP-Programmierung 0,nix am Hut hatte… aber man lernt durch fragen/verstehen/probieren… und nicht durch vermeintliche PHP-Experten (ich bin noch lange Keiner geworden) sich einschüchtern lassen… Alle bringen nur Gedanken ein… *

** aber Vorsicht: Einaml Blut geleckt… besteht Suchtgefahr!

Das mit der Sucht ist der einzige Nachteil - E*V etc. freut’s.

Kurz: :loveips:

PS: Ich arbeite selber bei einer Software Firma und ein Handbuch oder besser ein paar Einsteiger Videos wären bestimmt nicht schlecht (etwas mehr als vorhanden :wink: ). Am Ende muss man aber mit dem System Zeit verbringen - dann geht da echt einiges bez. ALLES!