Skript bringt nach Umstellung von Windows auf OSX Fehler

Ich bekomme es nicht hin und vielleicht sieht es jemand sofort:

Das Heizungsskript von Swifty läuft nicht auf OSX.

Aufgerufen wird diese Funktion (teilweise abgebildet) und dann kommt u.a. Fehlercode:

Function Raumsteuerung_HM_CC_RT_DN($Count) //
	{
   include "13984.ips.php"; //HM_Heizung_Konfig - Konfiguration aller einzubindenden Aktoren

		global $HM_ParentID, $HM_Modus_ID, $HM_Heizung_Wochenprofil_ID, $HM_Wochenprofil_auslesen_ID, $HM_Heizung_WochenProfil_Anzeige_html_ID, $Tigger_WochenProfil_ID, $HM_Praesenz_Profil_Auswahl_ID, $HM_Wochenprofil_speichern_ID;

		$HM_ParentID=SetKatByName(IPS_GetParent (IPS_GetParent ($_IPS['SELF'])), $Zimmer[$Count], $Zimmer[$Count], $Count*10); //SetKatByName($HM_ParentID, $name, $ident, $position)
		$HM_Modus_ID=CreateVariableByName($HM_ParentID, "Modus-SOLL", 1, "HM_Heizung_Steuerung_RT-DN", "HMRTModus", 1);
		IPS_SetVariableCustomAction($HM_Modus_ID, $_IPS['SELF']);
...

Hier mit Zeilennummer in Klammer:

(416) Function Raumsteuerung_HM_CC_RT_DN($Count) //
{
(418) include „13984.ips.php“; //HM_Heizung_Konfig - Konfiguration aller einzubindenden Aktoren
(420) global $HM_ParentID, $HM_Modus_ID, $HM_Heizung_Wochenprofil_ID, $HM_Wochenprofil_auslesen_ID, $HM_Heizung_WochenProfil_Anzeige_html_ID, $Tigger_WochenProfil_ID, $HM_Praesenz_Profil_Auswahl_ID, $HM_Wochenprofil_speichern_ID;

(422) $HM_ParentID=SetKatByName(IPS_GetParent (IPS_GetParent ($_IPS[‚SELF‘])), $Zimmer[$Count], $Zimmer[$Count], $Count*10); //SetKatByName($HM_ParentID, $name, $ident, $position)
(423) $HM_Modus_ID=CreateVariableByName($HM_ParentID, „Modus-SOLL“, 1, „HM_Heizung_Steuerung_RT-DN“, „HMRTModus“, 1);
(424 )IPS_SetVariableCustomAction($HM_Modus_ID, $_IPS[‚SELF‘]);

Fehlercode.

Notice: Undefined variable: _IPS in /Library/Application Support/Symcon/scripts/22886.ips.php on line 422
Parameter type of ID does not match in /Library/Application Support/Symcon/scripts/22886.ips.php on line 422
Parameter type of ID does not match in /Library/Application Support/Symcon/scripts/22886.ips.php on line 422
Parameter type of ParentID does not match in /Library/Application Support/Symcon/scripts/22886.ips.php on line 208
Ident may contain only letters and numbers in /Library/Application Support/Symcon/scripts/22886.ips.php on line 210
Notice: Undefined variable: _IPS in /Library/Application Support/Symcon/scripts/22886.ips.php on line 190

Bin ratlos.

Hier noch der Code für das Anlegen der Kategorie. (Für mich unauffällig).


/**************************
    Kategorie anlegen
***************************/
function SetKatByName($parentID, $name, $ident, $position)
    {
	 $kid = @IPS_GetCategoryIDByName ($name, $parentID );
	 if($kid === false)
        {
			$kid = IPS_CreateCategory ( );       //Kategorie anlegen
			IPS_SetName($kid, $name); 		//Kategorie benennen
			IPS_SetParent($kid, $parentID);
         IPS_SetPosition ($kid, $position);
         if($ident !=="") {IPS_SetIdent ($kid , $ident );}
		  }
    return $kid;
	 }

und noch dies:


function CreateVariableByName($parentID, $name, $type, $profile, $ident, $position)
    {
        $vid = @IPS_GetVariableIDByName($name, $parentID);
        if($vid === false)
        {
            $vid = IPS_CreateVariable($type);
            IPS_SetParent($vid, $parentID);
            IPS_SetName($vid, $name);
				IPS_SetPosition ($vid, $position);
            IPS_SetInfo($vid, "this variable was created by script #".$_IPS['SELF']);
            if($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
				if($ident !=="") {IPS_SetIdent ($vid , $ident );}
			}
	  	  return $vid;
    }

$_IPS sind noch nicht als SuperGlobals in Linux verfügbar.


	if(!isset($_IPS))
		global $_IPS;

sollte Dein Problem lösen…

Das Leben könnte so einfach sein. Ich danke Dir recht herzlich für den Tipp…

Nachtrag:
Tja, klappt soweit, aber es gibt doch noch andere Hürden.
Jetzt schlagen Dinge zu, die zuvor emuliert waren, wie z.B. HM_GetAddress().
Umlaute machen auch Probleme.

Oje, arbeitsintensive spannende Sache