Antis FHT für V2

Hallo Anti,

danke für das neue Script. Habe es gerade installiert und es läuft.

Bei der Excel-Datei ist mir aufgefallen, dass auf der config-Seite die Felder B2 und B3 keine Funktion hinterlegt haben. Diese kann man von B3 kopieren, Excel passt die Bezeichnungen automatisch an.

Meine FHZ habe ich an einem Silex-Adapter hängen. Diesen habe ich über eine Schaltsteckdose laufen, die ich im Fall eines „FHT-Schlafes“ für 30 sec. ausschalte. Danach sind alle FHTs wieder da. :smiley:
(Wenn jemand weiss, wie ich sowas sauberer (abmelden, …) machen kann, bitte mitteilen.)

Danke nochmal

Gruß

Bruno

Ach so, Zeitabgleich mache ich mit dem Script : http://www.ip-symcon.de/forum/93900-post9.html

hi@all
kurze Frage kann ich die temp. in dem Excel auch verändern

bsp. statt 22° 24 eintragen?
oder wie kann ich sie sonst verändern?

gruß

Ja man kann :wink:

Hi Bruno,

ich mach das genau so. Gegen das „Einschlafen“ gibt’s leider keine andere Möglichkeit als das Silex und somit die FHZ vom Strom zu nehmen usw.
Passiert natürlich immer genau in den zwei Wochen Urlaub wo man das alles benötigt :wink:

Gibt`s mit dem Heizungsscript eigentlich ein Problem bei Update auf 2.5?

Gruß Peter

Hi Peter,

Gibt`s mit dem Heizungsscript eigentlich ein Problem bei Update auf 2.5?

Ich fahr mit 2.5 und dem Heizungsscript ohne probleme!:loveips:

Hast Du mal den IPSLogger mitlaufen lasse ?
Bei mir hagelt es Errors ohne Ende

Hallo Leute,

ich bin gerade dabei mein System auf Homematic umzustellen. Um all die Sachen die ich so mache richtig machen zu können brauch ich einfach bidirektionale Kommunikation.

Jetzt die Frage: Kann man dieses Skript so modifizieren, dass es auch mit den Homematic Raumreglern funktioniert?

Oder muß ich da wo ganz anders nachsehen?

Danke & Beste Grüße

Peter

Warum auch immer gibt es für solche Fälle eine Forensuche :eek:

Heizung skript homematic :wink:

Sicherlich könnte man das FHT Skript auch modifizieren, mangelt bisher am „man“ :smiley:

Gruß
Bruno

Hin Bruno,

das war Deine „Gute Tat“ für heute. :smiley:
Danke!

Peter

Das umschreiben dürfte IMHO aber auch nicht alzu schwer sein. Müsste man doch sicher nur die FS Befehle gegen Homeatik tauschen. Bischen von dem FS Ballast (Puffer überwachung / umschalten Auto / Manuel) entfernen und gut. Aber da ich keine Homeatik mein eigen nenne bleibt das jmd anderem überlassen.

Jan

Habe deine tolle Steuerung schon 2 Winter im Einsatz ohne Probleme und möchte Sie gerne weiter nutzen.
Bin noch recht neu was php anbelangt ( Zeit) und bin jetzt von Basic 2.5 auf Pro 3.0 umgestiegen und nun läuft die Steuerung nicht mehr habe folgenden Fehler
„Abort Processing during exceed of maximal ErrorCount: Use of undefined constant time2 - assumed ‚time2‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 113“
vieleicht kannst du mir einen Tipp geben um die Sache wieder ans laufen zu bekommen.

Gruß drini

Ich hab die 3.0 selber noch nicht. Ich schau mir das aber mal an. Hmm poste doch mal bitte die betreffende Zeile, da das bei mir mit den Zeilennummern abweichen mag. Man fummelt ja gelegentlich etwas dran rum :slight_smile:

Kann imho eigentlich nur ne Kleinigkeit sein.

Gruß,
Jan

Da sind doch bestimmt noch mehr Fehlermeldungen. Bei mir läuft das Skript mit der 3.

Gruß
Bruno

Habe diese Fehlermeldung beim ausfuhren des Skrips hat vor umstieg auf version 3 immer ohne Fehler gelaufen oder habe ich einen Denkfehler?

PHP-Error-Notice: Undefined offset: 11
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 80PHP-Error-Notice: Undefined offset: 12
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 80PHP-Error-Notice: Undefined offset: 13
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 80PHP-Error-Notice: Undefined offset: 14
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 80PHP-Error-Notice: Undefined offset: 15
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 80PHP-Error-Notice: Undefined offset: 16
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 74PHP-Error-Notice: Use of undefined constant id - assumed ‚id‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 110PHP-Error-Notice: Use of undefined constant target - assumed ‚target‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 111PHP-Error-Notice: Undefined offset: 3
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 111PHP-Error-Notice: Use of undefined constant time1 - assumed ‚time1‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 112PHP-Error-Notice: Use of undefined constant time2 - assumed ‚time2‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 113PHP-Error-Maximal ErrorCount exceeded for this Session --> Abort ProcessingAbort Processing during exceed of maximal ErrorCount: Use of undefined constant time2 - assumed ‚time2‘
Error in Script C:\IP-SYMCON\scripts\657antis_fht.ips.php on Line 113

Gruß drini

Hier das Skript was ich seit 2 Jahren am laufen habe


<?php
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : antis_fht.ips.php
Trigger  :
Interval : 5 min
Author   : Anti
Project  : Heizungsteuerung
Version  : 2.0
Date     : 07.11.2010
*/

// Bei forcewrite schreibt er immer seine ermittelte Temp. Heisst Rädchendrehen ist mehr oder weniger wirkungslos
$fht_forcewrite = false;
// bei Debug nur Echo ausgaben statt zu senden
$fht_debug = false;
// Wenn true wird ein mal am Tag die Zeit gesetzt
$fht_settime = true;
$fth_setTimeStart = "04:11";  // (Format HH:MM) ab diesem Zeitpunkt wird die Zeit gesendet (was nehmen wo sonst nicht viel ist, typischerweise Nachts
//Hier die VariableID der FHZ eintragen (aus Objektbaum--> SplitterInstanzen vom Typ FHZ1x00PC)
$VarID_FHZ= 15586 /*[FHZ1X00PC]*/;
$AlarmNachMin = 40; // Wenn solange der Temperaturstatus nicht mehr aktualisiert wurde -> Alarmmeldung
$AlarmAktionNextTryMin = 20; // Nach sovielen Minuten versuche neue Reperaturaktion (erste nach $AlarmNachMin)
$mailId = 28434 /*[Objekt #28434 existiert nicht]*/ ; // Mal kurz scharf nachdenken was das sein könnte ;)

/* IPS Variablen
"fht_profileoverride" , wenn vorhanden und einen Namen eines vorhanden Profils enthält, wird das genommen
"fht_datasave"    , wird anleget dient zur zwischenspeicherung alter Tempraturen
"fht_resend" , wenn man die True setzt werden alle Werte neu gesendet (wie immer 2 mal zur Sicherheit) die Var wird dann selbständig auf False zurückgesetzt
*/



// Um unnütze Aufrufe zu verhindern !
if ($IPS_SENDER == "Variable" && $IPS_VARIABLE == IPS_GetVariableIDByName("fht_resend", 0) && $IPS_VALUE == false) return;

//Prüfen ob die FHZ genügend SendeBuffers hat
$FREE_BUFFERS = FHZ_GetFreeBuffer($VarID_FHZ);
if ((10-$FREE_BUFFERS) > 4) {
   fht_alert ("Beknackte FHT Qeue mal wieder zu voll");
   return;
}
error_reporting(E_ALL ^ E_NOTICE /*^ E_DEPRECATED*/);
include_once 'Excel/reader.php';
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data->setOutputEncoding('CP1251');


$data->read('Temps.xls');

// $tableNum enthält dannach auf dem Namen den Index der Tabelle also z.b. $tableNum["config"] = 1 , heisst config is Tabelle 1
foreach( $data->boundsheets as $key => $worksheet )  {
	$tableNum[$worksheet["name"]] = $key;
}

$configNr = $tableNum["config"];
$configTable = $data->sheets[$configNr]['cells']; // Das ist nun die config-Tabelle

// Set Punkt Temp zuordung [x]=temp
for ($x=2; $x <= 11; $x++) {
	$tempTable [$configTable[$x][1]]= $configTable[$x][2];
}

// Aktives Profil lesen
$aktProfil =  $configTable[4][5];
$aktProfilReason = " in Excel gesetzt";
// Profil Liste lesen
$newdata = "new";$profiles = array();
for ($x=11; !empty ($newdata); $x++) {
	$newdata = $configTable[2][$x];
	if (!empty ($newdata)) {
      $profiles[] = $newdata;
      $newdata2 = "new";
      // Und nebenbei prüfen ob bei dem Profil das heutige Datum eingetragen ist
      for ($y=3; !empty ($newdata2); $y++) { //Daten drin ?
      $newdata2 = $configTable[$y][$x];
      	if (!empty ($newdata2)) {
            $tmp  = explode("/", $newdata2);
				$daybefore  = mktime(0, 0, 0, intval($tmp[1])  , intval($tmp[0]-1), intval($tmp[2])); // Fix, das Ding liest 1 tag später aus
            // Ein Datum überschreibt das aktive Profil !
            if ($daybefore ==  mktime(0, 0, 0))  {
               $aktProfil = $newdata;
               $aktProfilReason = " in Excel an heutigem Datum gesetzt";
				}
         }
      }
   }
}

// In IPS ein Override gesetzt ?
$VarID_fht_profileoverride = @IPS_GetVariableIDByName("fht_profileoverride",0);
if ( $VarID_fht_profileoverride > 0 ) {
  $tmp = GetValueString ($VarID_fht_profileoverride);
  if (in_array ($tmp, $profiles)) {
  	$aktProfil = $tmp;
  	$aktProfilReason = " in fht_profileoverride gesetzt";
  }
}

// Room´s auslesen (ID setzen)
//echo "Rooms auslesen
"; //Kontrollausgabe
$newdata = "new";$rooms = array();
for ($x=25; !empty ($newdata); $x++) {
   $newdata = $configTable[$x][1];
   if (!empty ($newdata)) {
      $rooms[$newdata][id]= $configTable[$x][2];
      $rooms[$newdata][target]= $configTable[$x][3];
      $rooms[$newdata][time1]= $configTable[$x][4];
      $rooms[$newdata][time2]= $configTable[$x][5];

      // Interval in dem wir das Ding auf Manuell schalten?
      $rooms[$newdata][gotoman]= checkInterval ($rooms[$newdata][time1], -12, 5) || checkInterval ($rooms[$newdata][time2], -12, 5);

      // Interval in dem wir das Ding wieder auf Auto schalten?
      $rooms[$newdata][gotoauto]= checkInterval ($rooms[$newdata][time1], 6, 5) || checkInterval ($rooms[$newdata][time2], 6, 5);
   }
}

// True wenn aktuelle Zeit im Bereich (time+offset) bis (time+offset+duration) ist
function checkInterval ($time, $offset, $duration) {
   $std = substr($time,0,2);
   $min = substr($time,3,2);
   $von = mktime ($std,$min+$offset);
	$bis = mktime ($std,$min+$offset+$duration);
   //echo "$std:$min -> ".time(). " von $von bis $bis
";
   return  (time() >= $von && time() <= $bis);
}

//print_R($rooms);
$profilNum = array_search($aktProfil, $profiles)+1;
$ProfileName ="Profiles".$profilNum;
$ProfileNr = $tableNum[$ProfileName];


$ProfileTable = $data->sheets[$ProfileNr]['cells'];

// zumidnest im englischen PHP okay
$days = array ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat","Sun");
$dayindex = array_search( date("D",  mktime(0, 0, 0)), $days);    // 0-6
$timeindex = date("H")*4 + floor( date("i")/15);
//echo "
 dayindex: ".$dayindex." timeindex:".$timeindex."
";

$y = $dayindex+3;
$x =  $timeindex+2;
$allSoll = $ProfileTable[$y][$x];

foreach ($rooms as $key => $data) {
   $rooms[$key][soll] = $allSoll;
}

// Extra Räume ?
$start =12;
while ($ProfileTable[$start][1] != "") {
   $Room = $ProfileTable[$start][1];
   $x =  $timeindex+2;
   $y = $dayindex+$start+1;
   $rSoll = $ProfileTable[$y][$x];
   $rooms[$Room][soll] = $rSoll;
//   echo $Room." rsoll: ".$rSoll."
";
   $start+=9;
}

// So sämtliche Soll Temperaturen sind erfasst *juhu* nun vergleichen mit alter Temp und setzen der alten Temp
// Alte Tempraturem lesen:
$VarID_fht_datasave =IPS_GetVariableIDByName("fht_datasave",0);
if ($VarID_fht_datasave > 0) {
   $tmp = wddx_deserialize (GetValueString ($VarID_fht_datasave));
   $oldTemp = $tmp[oldTempNeu];
//	print_r ($oldTemp);
} else {
   $VarID_fht_datasave = IPS_CreateVariable(3);
   IPS_SetName($VarID_fht_datasave, "fht_datasave");
}

// Ein Resend angefordert ?
$boolTemp = false;
$VarID_fht_resend =IPS_GetVariableIDByName("fht_resend",0);
if ($VarID_fht_resend > 0) {
   $boolTemp =  GetValueBoolean ($VarID_fht_resend);
   SetValueBoolean ($VarID_fht_resend, false);
}
else {
   $VarID_fht_resend = IPS_CreateVariable(0);
   IPS_SetName($VarID_fht_resend, "fht_resend");
   SetValueBoolean ($VarID_fht_resend, false);
}


// Die Zeiten setzen, einmal am tag im angebeenen Zeitfenster, alle FHT nacheinander (je einen Scriptaufruf versetzt)
$oldTempNeu["LastTimeUp"]=$oldTemp["LastTimeUp"];
$oldTempNeu["LastTimeRoom"]=$oldTemp["LastTimeRoom"];

// Die Dinger mit der aktuellen Zeit versorgen
if ($fht_settime) {
	if (checkInterval ($fth_setTimeStart,0,60)) { // Sind wir innerhalb von 60 Minuten ?
   	if ($oldTempNeu["LastTimeUp"] + 60*120 < time()) { // Letzemal ist mehr als 2 Std her (sprich neuer Tag)
      	$oldTempNeu["LastTimeUp"]=time(); // So zu erkennen geben das Heute aktiv war
         reset ($rooms);
         $tmp =current($rooms);
         $oldTempNeu["LastTimeRoom"] = $tmp[id]; // und den Startraum setzen
		}
      Echo $oldTempNeu["LastTimeRoom"]." a 
";
      if ($oldTempNeu["LastTimeRoom"] != "End") {
      	FHT_SetHour(intval($oldTempNeu["LastTimeRoom"]),intval( date("H")));
         FHT_SetMinute(intval($oldTempNeu["LastTimeRoom"]),intval(date("i")));
         echo $oldTempNeu["LastTimeRoom"]." set to ".date("H").":". date("i")."
";
         echo  $oldTempNeu["LastTimeRoom"]." b 
";
         $found = false;$set = false;
         foreach ($rooms as $key => $data1) {
         	if ($found) { $oldTempNeu["LastTimeRoom"] = $data1[id]; $set = true;}
            if ($data1[id] ==  $oldTempNeu["LastTimeRoom"]) $found = true;
         }
         if (!$set) $oldTempNeu["LastTimeRoom"] = "End";
		}
	}
}

//Und jetzt die Temperaturen versenden
foreach ($rooms as $key => $data1) {
   // Umlaute mag er nicht
   $key2= str_ireplace (Array("ü","ö","ä","ß"), Array("ue","oe","ae","ss"), $key);
   $oldTempNeu[$key2][soll] = $tempTable[$data1[soll]];
   $oldTempNeu[$key2][setTime] = $oldTemp[$key2][setTime];
	//echo "Bin im VOR Modeauswahl Programmteil für ".$data1[id]."
";

   if (IPS_InstanceExists(intval ($data1[id]))) {
      //echo "Bin im Modeauswahl Programmteil für ".$data1[id]."
";
      // WIe siehts aus mit automatischem auto/manuell umschalten ?
      if ($data1[gotoman]) {
			echo "Goto Man $key
";
			FHT_SetMode(intval($data1[id]),1);
		}
      if ($data1[gotoauto]){
			echo "Goto Auto $key
";
			FHT_SetMode(intval($data1[id]),0);
		}
   }

   if ($oldTemp[$key2][soll] != $tempTable[$data1[soll]] || $fht_forcewrite || $boolTemp) { // Schreibn Meister

      if (!IPS_InstanceExists((intval ($data1[id])))) {
         Echo "Das Modul ".$data1[id]." gibts nicht! 
";
      } else {
      	if ($fht_debug) echo "setze $key to ".$tempTable[$data1[soll]]."
";
      	else {
            echo "setze ".$key." ". $data1[id].".auf ".$tempTable[$data1[soll]]."
";
            FHT_SetTemperature(intval($data1[id]), floatval ($tempTable[$data1[soll]]));
            //IPS_LogMessage("Antis_FHT .$key wurde auf $tempTable[$data1[soll]] Grad gesetzt");
            $oldTempNeu[$key2][setTime]=time(); // Merken wir uns den Zeitpunkt der Sendung
            echo "Es ist ".date("H:i",$oldTempNeu[$key2][setTime])."  ".$oldTempNeu[$key2][setTime] ." Uhr
";
         }
      }
   }

	//Wenn keine neue temperatur vorliegt, die alte Temperatur nochmal einmal senden - sicher ist sicher
	//Scriptintervall 5 Minuten
   // So das Resend noch mal neu nach frühestens 12 Minuten
   if (checkInterval (date("H:i",$oldTempNeu[$key2][setTime]),12,5)) {
		FHT_SetTemperature(intval($data1[id]), floatval ($tempTable[$data1[soll]]));
		echo " - resend ".$key." ". $data1[id].".auf ".$tempTable[$data1[soll]]."
";
	}
}

//IPS_LogMessage("Antis_FHT", "$key wurde auf ".$tempTable[$data1['soll']]." Grad gesetzt");

Echo  "Aktives Profil: $aktProfil $aktProfilReason 
";
// Solltemp: $tempTable[$allSoll]";
	//print_r ($rooms);
	//print_R ($oldTempNeu);
$alertCounter = 0;
$oldTempNeu["lastAktion"]=$oldTemp["lastAktion"];
foreach ($rooms as $key => $data1) {
	if (IPS_InstanceExists((intval ($data1[id])))) {
		$tempId = IPS_GetVariableIDByName ("Temperatur", intval ($data1["id"]));
		$temp = GetValueFloat ($tempId);
		$t = IPS_GetVariable ($tempId);
		$TempUpdateTime = round((-$t["VariableUpdated"]+time())/60,2);

		echo $key." soll: ".$tempTable[$data1['soll']]."° Celsius - ist: ".$temp."° Celsius - ($TempUpdateTime Minuten alt)";
		if ($TempUpdateTime > $AlarmNachMin) {
			echo " ---> Alert: Letztes Update ist ".$TempUpdateTime." Minuten her!";
			IPS_LogMessage("Antis_FHT", $key ."ist nicht gesetzt !!");
	      fht_alert ( $key." ist seit $TempUpdateTime nicht gesetzt!!
");
			$AlarmAktionNr = ceil (($TempUpdateTime-$AlarmNachMin) /$AlarmAktionNextTryMin);
			echo $oldTempNeu["lastAktion"]." < $AlarmAktionNr 
";
			if ($oldTempNeu["lastAktion"] < $AlarmAktionNr) {
				$oldTempNeu["lastAktion"]++;
				SetValueString (IPS_GetVariableIDByName("fht_datasave",0), wddx_serialize_vars("oldTempNeu"));
				fht_noconnect_action ($oldTempNeu["lastAktion"]-1,$data1["id"],$tempTable[$data1['soll']],$key);
			}
			$alertCounter++;
		}
		echo "
";
	}
}

if ($alertCounter == 0) {
	// Vonn Alarmzustand zurück zu normal
	if ($oldTempNeu["lastAktion"] <> 0) {
		IPS_LogMessage("Antis_FHT","Antis_FHT returns to normal operation");
		fht_alert ("");
		SetValueBoolean (IPS_GetVariableIDByName("fht_noalert",0),true);
	}
	$oldTempNeu["lastAktion"]=0;
}
// MSG
if ($oldTempNeu["lastAktion"] > 0) echo "FHT sendet keine neunen Temperaturen. Korrektur-Phase: ".($oldTempNeu["lastAktion"]-1)."
";

// Neue Alte Temperaturen (und sontiges) speichern
//print_r ($oldTempNeu);
SetValueString (IPS_GetVariableIDByName("fht_datasave",0), wddx_serialize_vars("oldTempNeu"));

$FREE_BUFFERS2 = FHZ_GetFreeBuffer($VarID_FHZ);
echo "Free Buffers vorher:".$FREE_BUFFERS." - nachher:".$FREE_BUFFERS2."
";


function fht_alert ($hint) {
   if (!IPS_VariableExists(IPS_GetVariableIDByName("fht_noalert",0))) {
      $id = IPS_CreateVariable(0);
	   IPS_SetName($id, "fht_noalert");
 	}
   if (!IPS_VariableExists(IPS_GetVariableIDByName("fht_alertMSG",0))) {
		$id = IPS_CreateVariable(3);
   	IPS_SetName($id, "fht_alertMSG");
	}
   SetValueString (IPS_GetVariableIDByName("fht_alertMSG",0),date("H:i")." - ".$hint);
   SetValueBoolean (IPS_GetVariableIDByName("fht_noalert",0),false);
}

// Hier reinschreiben was passieren soll im $nr ten versuch einen kositenten Zustand wiederherzustellen
function fht_noconnect_action ($nr, $id, $sollTemp, $ort="") {
	global $mailId;
	switch ($nr) {
	   case 1:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) resend Temperature - 0.5°";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr - resend Temperature - 0.5° ($ort) zwecks anderem Wert");
			FHT_SetTemperature(intval($id), floatval ($sollTemp-0.5));
      	break;
	   case 2:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS/FHT");
			$ourFileName = "trigger";
			$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
			fclose($ourFileHandle);
      	break;
	   case 3:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) resend Temperature + 0.5°";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr - resend Temperature + 0.5° ($ort) zwecks anderem Wert");
			FHT_SetTemperature(intval($id), floatval ($sollTemp+0.5));
      	break;
	   case 4:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS/FHT");
			$ourFileName = "trigger";
			$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
			fclose($ourFileHandle);
      	break;
	   case 5:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort) - Restart IPS Machine";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Versuch $nr ($ort) - Restart IPS Machine");
			exec ("shutdown -f -r -t 01");
			break;
	   case 6:
	     	echo "Aktion Nr.$nr um eingeschlafene Temperaturmessung wiederzubeleben ($ort)- Give UP
";
	     	echo "Wiederbelebung aufgegeben - Bitte eingreifen !";
   	  	SMTP_SendMail($mailId,"FHT ALERT","Wiederbelebung aufgegeben ($ort) - Bitte eingreifen !");
      	break;
	}
}
?>

Gruß drini

Dürfte ne PHP einstellung sein. Das sind alles nur Warnings und irgendwann (nach X Warnings) bricht er ab. Teilweise fix durch:

$rooms[$newdata][target]

ersetzen durch

$rooms[$newdata][„target“]

usw.

Ansonsten mal PHP.ini Warning meldungen ausschalten.

Gruß,
Jan

      $rooms[$newdata]['id']= $configTable[$x][2];
      $rooms[$newdata]['target']= $configTable[$x][3];
      $rooms[$newdata]['time1']= $configTable[$x][4];
      $rooms[$newdata]['time2']= $configTable[$x][5];

      // Interval in dem wir das Ding auf Manuell schalten?
      $rooms[$newdata]['gotoman']= checkInterval ($rooms[$newdata]['time1'], -12, 5) || checkInterval ($rooms[$newdata]['time2'], -12, 5);

      // Interval in dem wir das Ding wieder auf Auto schalten?
      $rooms[$newdata]['gotoauto']= checkInterval ($rooms[$newdata]['time1'], 6, 5) || checkInterval ($rooms[$newdata]['time2'], 6, 5);


Müssen alle ersetzt werden bzw. in Hochkomma oder Anf.zeichen. Die Warnungen hab ich auch, da passiert nix.

Nach dem mein Server abgescmirt ist habe ich Ihn ganz neu aufgesetzt und die V 3.0 neu installiert und darauf Anti sein tolle Steuerung ohne die genannten änderungen und es läuft alles wie vorher.
Aber danke für eure Hilfe

Gruß drini

Hallo bei mir kommt diese Fehler meldung

PHP-Error-Unknown Error: Assigning the return value of new by reference is deprecated
Error in Script C:\IP-Symcon\scripts\Excel\reader.php on Line 262Abort Processing during Fatal-Error: Assigning the return value of new by reference is deprecated
Error in Script C:\IP-Symcon\scripts\Excel\reader.php on Line 262

kann mir da einer von euch helfen .

Klar. :slight_smile:

„is deprecated“ bedeutet ist veraltet. Ist also ein Versionskonflikt in Zeile 262.

Gruß,

Toni