IPS von Windows 7 auf Raspi umgezogen= Fehlermeldung if($IPS_SENDER == "WebFront")

Hallo,

ich bin mit meinem IPS Projekt was auf einem Windows 7 Rechner lief auf einen Raspi umgezogen. Leider bin ich noch nicht so fit in PHP :confused:

Es läuft auch, nur bei Skripten wo „ich“ if($IPS_SENDER == „WebFront“) verwendet habe, kommt eine Fehlermeldung:

Notice: Undefined variable: IPS_SENDER in /var/lib/symcon/scripts/53124.ips.php on line 19

Hier mal das gesamte Skript: Das habe ich nicht selber geschrieben, sondern mir zusammenkopiert :smiley:

<?

$max = 25;
$step = 1; //Schrittgröße

function on() {
IPS_LogMessage(„Temperatur“, „Aktiviert!“);
}
function off() {
IPS_LogMessage(„Temperatur“, „Abgelaufen…“);
}

//Ab hier nichts mehr verändern
$min = 8;
$suffix = „°C“;
$vpn = „Temperatur.“.$max.".".$step; //$vpn = „EggTimer.“.$max.".".$step;

if($IPS_SENDER == „WebFront“)
{
switch($IPS_VALUE)
{
case $min-2:
doOff();
break;
case $min-1:
$IPS_VALUE = GetValue($IPS_VARIABLE) - $step;
if($IPS_VALUE <= 0)
{
$IPS_VALUE = -2;
doOff();
}
break;
case $max+1:
$IPS_VALUE = min($max, max(0, GetValue($IPS_VARIABLE)) + $step);
doOn();
break;
default:
return;
}
SetValue($IPS_VARIABLE, $IPS_VALUE);
}

function doOn()
{
global $IPS_SELF;
if(IPS_GetScriptTimer($IPS_SELF) == 0)
{
IPS_SetScriptTimer($IPS_SELF, 60);
on();
}
}

function doOff()
{
global $IPS_SELF;
IPS_SetScriptTimer($IPS_SELF, 0);
off();
}

function CreateParentVariable($id, $name, $type)
{
global $IPS_SELF;
$vid = IPS_GetParent($IPS_SELF);
if(!IPS_VariableExists($vid))
{
$vid = false;
}
else
{
$v = IPS_GetVariable($vid);
if($v[‚VariableValue‘][‚ValueType‘] != $type)
$vid = false;
}
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, IPS_GetParent($IPS_SELF));
IPS_SetParent($id, $vid);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, „this variable was created by script #$IPS_SELF“);
IPS_SetHidden($id, true);
}
return $vid;
}

function IPS_SetVariableProfileAssociationEx($vpn, $av, $an, $ai, $ac)
{
if(floatval(IPS_GetKernelVersion()) <= 2.3)
{
IPS_SetVariableProfileAssociation($vpn, $av, $an, $ai);
} else {
IPS_SetVariableProfileAssociation($vpn, $av, $an, $ai, $ac);
}
}

?>

Auf dem Webfront sieht es dann so aus: Dort kann ich die Temperatur mit der plus/minus Taste ändern (zumindest unter Win 7).

Webfront Problem klein.png

Kann mir jemand helfen?

Mfg
Frank

Alle $IPS_… müssen $_IPS[’…’] werden ;).

MfG
Ralf

Und täglich grüßt das Murmeltier :wink:

https://www.symcon.de/service/dokumentation/konzepte/skripte/systemvariablen/

Ja vielen Dank !!!

Ich bin dabei die Scripte an 4.x anzupassen.

Alt --> global $IPS_SELF - funktioniert

Global $_IPS[‚SELF‘] --> gibt einen Fehler aus.

Hab ich hier einen Denkfehler und es geht nicht so einfach?

Die global-Zeile auskommentieren oder löschen

Gruß
Bruno