Heizungssteuerung Dynamisch MYSQL PHP

Hi,

da mich dieses Forum bisher sehr unterstützt hat möchte ich ihm gerne etwas zurückgeben.
Habe eine Heizungssteuerung in PHP mit einer MYSQL Datenbank geschrieben.

Diese kann derzeit:

  • Räume anlegen
  • Szenarien anlegen
  • Temperauren für jeden Raum in jedem Szenario
  • Wochensteuerung für jeden Tag der Woche beliebig viele Szenarien
    z.B. Aufstehen, Aufwachen, Frühstücken, u.s.w.
  • Hand Steuerung ( höhere Prio als Wochen Steuerung)
    Mit Datum und Uhrzeit von Bis Szenario
  • Einstellungen ab welcher Temp. Diff. soll geheizt oder nicht geheitzt werden.

Was noch kommt.

  • Shotbuttons für ich bin mal weg (Einstellbar Stunden) (ERLEDIGT)

Gruß
Christian

Anmerkungen:
Wenn für einen Raum in einem Szenario keine Temperatur vorgegeben ist wird das Szenario auch nicht ausgewählt

Die Funktion ist Primär für das Webinterface von IPS gedacht. Für den Designer schreibe ich noch etwas.

…könnte aus meiner Sicht ein Renner für den FHT Betrieb werden…

Das Webinterface ist momentan dann aber noch V1…V2 ist ja noch bei Torro in der Mache…oder ?

Gruss & bin höllisch gespannt
B71

Sieht super aus ! Eine kleine Scripting-Anleitung oder ein to-do wären dann klasse, wenn feddich !:o

Habe nun eine Kurz Abwesenheit / Anwesend Funktion eingebaut nun kann man für eine bestimmte Zeit 0,5 bis 48 Stunden ein Szenario Aktivieren welches Vorrang hat.

Hallo ckerndl,

Respekt…

… Oberfläche sieht schon mal gelungen aus. Jetzt würde, wenn Du diese offenlegst, wahrscheinlich jeden die Skripte interessieren.

Bin mal gespannt wie Dein Projekt weiter geht.

Könntest Du uns noch verraten ob die mit der V1 oder V2 arbeitest, oder besser, sind diese in beiden lauffähig?

Ist die Oberfläche von meiner Warenwirtschaft :slight_smile:
Im Prinzip ist es unter beiden lauffähig da ja beid auf die MYSQL DB zugreifen können.

Hallo ckerndl,

das sieht super aus !
Hast Du vor, Deine Arbeit uns anderen zur Verfügung zu stellen?
Ich währe nämlich sehr daran interessiert.

Gruß aus Köln
Andreas

Ja will ich machen




Super !
Wie könnte ich denn an die Skripte kommen ?

Ich kann die Skribte schon freigeben nur diese sind noch nicht kommentiert

das mit den Kommentaren währe mir erst einmal egal.
Dann könnte ich schon mal ein wenig über die Feiertage damit rumspielen ;o)

Hallo zusammen,

also das finde ich auch sehr gelungen.:slight_smile:

@ckerndl

Hättest du vieleicht interesse dieses Projekt für andere zugänglich zu machen ?

Da ich auch noch nicht so versiert bin in IPS und PHP wäre das eine gute möglichkeit ein wenig zu verstehen.

Ich warte auch bis du alles kommentiert hast, hilft schliesslich weiter.

Gruß Michael

Hallo ckerndl

Ich möchte mich den Vorgängern anschließen, und dir sagen, dass
dein Projekt so aussieht, wie ich mir meine Steuerung so vorstelle.
Leider bin ich mit meiner Programmierung noch weit davon entfernt.
Wenn du dann deine Scripte veröffenlichen wirst, möchte ich daraus gerne etwas lernen.
mach weiter so
Mfg R.E.

Hallo ckerndl

Super Sache, ich nutze aktuell „Antis FHT Scripte“ zur Heizungssteuerung
(gut, aber eben nicht für den Browser)

Mit Deinen Skripten zur FHT Steuerung, „MySQLData“ für die Grafik und den Webinterface der V2 lässt sich IPS mittlerweile richtig gut über den Browser steuern.

Gibt es einen groben Zeitplan, wann die Skripten zur Verfügung stehen?

Gruß
astrastar

P.S. Dank an alle, die die obigen Skripte zur Verfügung stellen

So nun das erste Skribt welches die Daten aus der Datenbank ausliest.
Läuft alle 45 Sekunden

<?
$soll = GetValue(11911 /[Variablen\automatik]/);

if ($soll==1){
//Start writing your scripts between the brackets

Test

##Offline
$dbHost = „localhost“; // MySQL Hostname
$dbUser = „root“; // MySQL user
$dbPassword = „euerpasswort“; // MySQL password
$datenbank = „steuerung_hans“;// MySQL Datenbank

Datenbanktabellen Variablen

$dbwochen_steuerung = „wochen_steuerung“;
$dbkonfig = „konfig“;
$dbraeume = „raeume“;
$dbsonst_steuerung = „sonst_steuerung“;
$dbszenarien = „szenarien“;
$dbtemperaturen = „temperaturen“;

0 Uhr ausrechnen

$Stunde = date(„H“,time());
$Minute = date(„i“,time());
$Secunde = date(„s“,time());
$Wochentag = date(„w“,time());
$jetztstamp = strtotime(„2008-1-1 $Stunde:$Minute:$Secunde“);
#echo $Wochentag;

$sql=„select szenario.name, raeume.raum_name, temp.temp, konfig.temp_schalten
From $dbwochen_steuerung steuerung, $dbraeume raeume, $dbszenarien szenario, $dbtemperaturen temp, $dbkonfig konfig
Where steuerung.id_szenarien = szenario.id
AND temp.id_raum = raeume.id
AND temp.id_szenarien = szenario.id
AND steuerung.Wochentag = '“.$Wochentag."’
AND steuerung.startuhr < ‚".$jetztstamp."‘
AND steuerung.enduhr > ‚".$jetztstamp."‘
LIMIT 10";

	$link = mysql_connect($dbHost, $dbUser, $dbPassword);
	mysql_select_db($datenbank,$link);
	$result = mysql_query($sql, $link);
	for($i=0;$i&lt;mysql_num_rows($result);$i++)
			{
			$ergebnis[$i]=mysql_fetch_array($result);
			}
		for($i=0;$i&lt;count($ergebnis);$i++)
		{
	#	echo "Raum ".$ergebnis[$i][raum_name]."   ".$ergebnis[$i][temp]."°  Szenario ".$ergebnis[$i][name]."&lt;br&gt;";
		$ergebnis[$i][temp] = str_replace(".", ",", $ergebnis[$i][temp]);
		if ($ergebnis[$i][raum_name]=='Bad'){SetValue(45408 /*[Temperaturen\Badsoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Gäste WC'){SetValue(20325 /*[Temperaturen\GaesteWC]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Küche'){SetValue(57236 /*[Temperaturen\Kuechesoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Wohnzimmer'){SetValue(38956 /*[Temperaturen\Wohnzimmersoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Schlafzimmer'){SetValue(12961 /*[Temperaturen\Schlafzimmersoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Arbeitszimmer'){SetValue(35220 /*[Temperaturen\Arbeitszimmersoll]*/,$ergebnis[$i][temp]);}
		$temp_schalten = str_replace(".", ",", $ergebnis[$i][temp_schalten]);
		SetValue(24455 /*[Variablen\Szenario]*/,$ergebnis[$i][name]);
		SetValue(29409 /*[Variablen\TempDifferenz]*/,$temp_schalten);
		}

unset($ergebnis);
unset($result);

0 Uhr ausrechnen

$Stunde = date(„H“,time());
$Minute = date(„i“,time());
$Secunde = date(„s“,time());
$datumheute = date(„Y-m-d“,time());
$jetztstamp2 = strtotime("$datumheute $Stunde:$Minute:$Secunde");

$sql=„select szenario.name, raeume.raum_name, temp.temp, steuerung.startuhr, steuerung.enduhr
From $dbsonst_steuerung steuerung, $dbraeume raeume, $dbszenarien szenario, $dbtemperaturen temp
Where steuerung.id_szenarien = szenario.id
AND temp.id_raum = raeume.id
AND temp.id_szenarien = szenario.id
AND steuerung.startuhr < '“.$jetztstamp2."’
AND steuerung.enduhr > ‚".$jetztstamp2."‘
LIMIT 10";

	$link = mysql_connect($dbHost, $dbUser, $dbPassword);
	mysql_select_db($datenbank,$link);
	$result = mysql_query($sql, $link);
	for($i=0;$i&lt;mysql_num_rows($result);$i++)
			{
			$ergebnis[$i]=mysql_fetch_array($result);
			}
		for($i=0;$i&lt;count($ergebnis);$i++)
		{
	#	echo "Raum ".$ergebnis[$i][raum_name]."   ".$ergebnis[$i][temp]."°  Szenario ".$ergebnis[$i][name]."&lt;br&gt;";
		$ergebnis[$i][temp] = str_replace(".", ",", $ergebnis[$i][temp]);
		if ($ergebnis[$i][raum_name]=='Bad'){SetValue(45408 /*[Temperaturen\Badsoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Gäste WC'){SetValue(20325 /*[Temperaturen\GaesteWC]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Küche'){SetValue(57236 /*[Temperaturen\Kuechesoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Wohnzimmer'){SetValue(38956 /*[Temperaturen\Wohnzimmersoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Schlafzimmer'){SetValue(12961 /*[Temperaturen\Schlafzimmersoll]*/,$ergebnis[$i][temp]);}
		if ($ergebnis[$i][raum_name]=='Arbeitszimmer'){SetValue(35220 /*[Temperaturen\Arbeitszimmersoll]*/,$ergebnis[$i][temp]);}
		SetValue(24455 /*[Variablen\Szenario]*/,$ergebnis[$i][name]);
		}

}
?>

Das 2. Skribt was für die statistik zuständig ist:
Läuft jede Minute

<?

//Fügen Sie hier ihren Skriptquellcode ein

$dbHost = „localhost“; // MySQL Hostname
$dbUser = „root“; // MySQL user
$dbPassword = „euerpasswort“; // MySQL password
$datenbank = „steuerung_hans“;// MySQL Datenbank

Datenbanktabellen Variablen

$dbwochen_steuerung = „wochen_steuerung“;
$dbkonfig = „konfig“;
$dbraeume = „raeume“;
$dbsonst_steuerung = „sonst_steuerung“;
$dbszenarien = „szenarien“;
$dbtemperaturen = „temperaturen“;
$dbstatistik = „statistik“;

$Wohnzimmerist = GetValue(41453 /[Sensoren\Wohnzimmer\Temperatur]/);
$Arbeitszimmerist = GetValue(50375 /[Sensoren\Arbeitszimmer\Temperatur]/);
$Badist = GetValue(27703 /[Sensoren\Bad\Temperatur]/);
$GaesteWCist = GetValue(40417 /[Sensoren\Gäste WC\Temperatur]/);
$Kuecheist = GetValue(26524 /[Objekt #26524 exisitert nicht]/);
$Schlafzimmerist = GetValue(40214 /[Sensoren\Schlafzimmer\Temperatur]/);
$Szenario = GetValue(24455 /[Variablen\Szenario]/);

0 Uhr ausrechnen

$Stunde = date(„H“,time());
$Minute = date(„i“,time());
$Secunde = date(„s“,time());
$Wochentag = date(„w“,time());
$datum = date(„Y.m.d“,time());
$jetztstamp = strtotime(„2008-1-1 $Stunde:$Minute:$Secunde“);

?>
<?
##Wohnzimmer
$sqlUpdate=„insert into $dbstatistik (raum_name, raum_temp, szenario, uhrzeit, tatum) values (‚Wohnzimmer‘,’“.$Wohnzimmerist."’,’".$Szenario."’,’".$jetztstamp."’,’".$datum."’)";
$linkUpdate = mysql_connect($dbHost, $dbUser, $dbPassword);
mysql_select_db($datenbank,$linkUpdate);
$resultUpdate = mysql_query($sqlUpdate, $linkUpdate);
##Arbeitszimmer
$sqlUpdate=„insert into $dbstatistik (raum_name, raum_temp, szenario, uhrzeit, tatum) values (‚Arbeitszimmer‘,’“.$Arbeitszimmerist."’,’".$Szenario."’,’".$jetztstamp."’,’".$datum."’)";
$linkUpdate = mysql_connect($dbHost, $dbUser, $dbPassword);
mysql_select_db($datenbank,$linkUpdate);
$resultUpdate = mysql_query($sqlUpdate, $linkUpdate);
##$Badist
$sqlUpdate=„insert into $dbstatistik (raum_name, raum_temp, szenario, uhrzeit, tatum) values (‚Bad‘,’“.$Badist."’,’".$Szenario."’,’".$jetztstamp."’,’".$datum."’)";
$linkUpdate = mysql_connect($dbHost, $dbUser, $dbPassword);
mysql_select_db($datenbank,$linkUpdate);
$resultUpdate = mysql_query($sqlUpdate, $linkUpdate);
##GaesteWC
$sqlUpdate=„insert into $dbstatistik (raum_name, raum_temp, szenario, uhrzeit, tatum) values (‚GaesteWC‘,’“.$GaesteWCist."’,’".$Szenario."’,’".$jetztstamp."’,’".$datum."’)";
$linkUpdate = mysql_connect($dbHost, $dbUser, $dbPassword);
mysql_select_db($datenbank,$linkUpdate);
$resultUpdate = mysql_query($sqlUpdate, $linkUpdate);
##Schlafzimmerist
$sqlUpdate=„insert into $dbstatistik (raum_name, raum_temp, szenario, uhrzeit, tatum) values (‚Schlafzimmer‘,’“.$Schlafzimmerist."’,’".$Szenario."’,’".$jetztstamp."’,’".$datum."’)";
$linkUpdate = mysql_connect($dbHost, $dbUser, $dbPassword);
mysql_select_db($datenbank,$linkUpdate);
$resultUpdate = mysql_query($sqlUpdate, $linkUpdate);
?>