Hallo,
ich habe mir nun auch IPSView geleistet um meine Steueroberfläche zu verschönern
Zur Einarbeitung habe ich mir via MetaManager einen View zum Testen generiert und meinen Dimmer im Wohnzimmer eingebunden.
Nun wollte ich analog wie ich es im Webfront habe einen Butten für An/Aus generieren und bin auf das vorgefertigte Script gestossen.
Leider gibt es bei mir folgende Fehlermeldung:
<br />
<b>Notice</b>: Undefined index: VARIABLE in <b>/var/lib/symcon/scripts/10986.ips.php</b> on line <b>50</b><br />
<br />
<b>Notice</b>: Undefined index: VALUE in <b>/var/lib/symcon/scripts/10986.ips.php</b> on line <b>51</b><br />
Hier das Script, das ja bekannt sein dürfte. Ich habe lediglich die beiden Variabeln von mir eingetragen:
<?
/**
* @file IPSView_DimmerSynced.ips.php
* @author brownson
* @version
* Version 1.0, 2015-04-12 brownson: Initiale Version<br/>
*
* Skript um eine Switch Variable für einen Dimmer zu realisieren
*
* Konfiguration Einstellungen:
* DEVICE_DIMMER_ID ... ID der LEVEL Variable zum Setzen des Dimmer
* Wertes
* DEVICE_WORKING_ID ... ID der WORKING Variable, diese steuert die
* Synchronisierung des Wertes
*
*/
/*
* Konfiguration:
* -------------------------------------------------------------------------
*/
define ('DEVICE_DIMMER_ID', 53490 /*[Obergeschoss\Wohnzimmer\og_wz_deckendim:1\LEVEL]*/);
define ('DEVICE_WORKING_ID',26596 /*[Obergeschoss\Wohnzimmer\og_wz_deckendim:1\WORKING]*/);
/*
* Programmlogik:
* -------------------------------------------------------------------------
*/
$scriptID = $_IPS['SELF'];
$sender = $_IPS['SENDER'];
$parentID = IPS_GetParent($scriptID);
$variableIDSwitch = CreateVariable('IPSView_Switch', 0, $parentID, 10,
'~Switch', $scriptID);
$variableIDDimmer = CreateVariable('IPSView_Dimmer', 2, $parentID, 20, '',
$scriptID, DEVICE_DIMMER_ID);
if ($sender=='Execute') {
CreateEvent ('IPSView_DimmerSync', DEVICE_DIMMER_ID, $scriptID);
CreateEvent ('IPSView_WorkingSync', DEVICE_WORKING_ID, $scriptID);
} else if ($sender=='Variable') {
$value = GetValue(DEVICE_DIMMER_ID);
if (DEVICE_WORKING_ID==0 or !GetValue(DEVICE_WORKING_ID)) {
SetValue($variableIDSwitch, ($value > 0));
SetValue($variableIDDimmer, $value);
}
} else {
$variableId = $_IPS['VARIABLE'];
$value = $_IPS['VALUE'];
switch ($variableId) {
case $variableIDDimmer:
Dimmer_SetDeviceValue($value);
SetValue($variableIDSwitch, ($value > 0));
SetValue($variableIDDimmer, $value);
break;
case $variableIDSwitch:
if ($value)
Dimmer_SetDeviceValue(GetValue($variableIDDimmer));
else
Dimmer_SetDeviceValue(0);
SetValue($variableId, $value);
break;
default:
break;
}
}
/*
* Funktionen:
* -------------------------------------------------------------------------
*/
function Dimmer_SetDeviceValue($value) {
$instanceID = IPS_GetParent(DEVICE_DIMMER_ID);
$ident = IPS_GetObject(DEVICE_DIMMER_ID)['ObjectIdent'];
IPS_RequestAction($instanceID, $ident, $value);
}
function CreateVariable ($name, $type, $parentId, $position=0, $profile="",
$action=null, $referenceID=null) {
$variableId = @IPS_GetObjectIDByIdent($name, $parentId);
if ($variableId === false) {
$variableId = IPS_CreateVariable($type);
IPS_SetParent($variableId, $parentId);
IPS_SetName($variableId, $name);
IPS_SetIdent($variableId, $name);
IPS_SetPosition($variableId, $position);
if ($referenceID != null) {
$variable = IPS_GetVariable($referenceID);
$profile = $variable['VariableProfile'];
}
IPS_SetVariableCustomProfile($variableId, $profile);
IPS_SetVariableCustomAction($variableId, $action);
}
return $variableId;
}
function CreateEvent ($name, $variableId, $scriptId) {
$eventId = @IPS_GetObjectIDByIdent($name, $scriptId);
if ($eventId === false) {
$eventId = IPS_CreateEvent(0);
IPS_SetParent($eventId, $scriptId);
IPS_SetName($eventId, $name);
IPS_SetIdent($eventId, $name);
IPS_SetEventTrigger($eventId, 1/*ByChange*/, $variableId);
IPS_SetEventActive($eventId, true);
}
return $eventId;
}
?>
Meine PHP kenntnisse wachsen zwar immer mehr, aber mit grösseren Scripten bin ich überfordert und finde den Fehler nicht