Hier mal was zum Probieren.
IP-Adresse, Benutzername, Passwort eintragen.
Und dann noch angeben, ob eine Kamera installiert ist oder nicht mit true / false.
Update 4.4.2017 - 11:00
Update 4.4.2017 - 11:19
<?
/*******************************************************************************
MSC - Version 0.3 vom 03.04.2017
********************************************************************************
SKRIPT ZUM AUSLESEN VON MÄHROBOTER
AUSGESTATTET MIT DEM
ROBONECT-MODUL H30x Ver. 0.9c
------------------------------------------------------------------------
INSTALLATIONS-Skript
********************************************************************************
*******************************************************************************/
// Verbindungsdaten
$ip = "1.1.1.1";
$user = "user";
$pass = "pass";
// Kamera installiert true/false
$cam_installed = true;
/*******************************************************************************
*******************************************************************************/
$content = @Sys_GetURLContentEx('http://'.$ip.'/json?cmd=status', array("AuthUser"=> $user, "AuthPass"=> $pass));
if($content == false){
echo "Abfrage Mähroboter nicht möglich";
return;
}
$data_status = json_decode($content, true);
// Variablenprofile anlegen
create_profil("_Wlan", 1, 0, 0, 0, "", " dBm", "", "");
create_profil("_Batterie", 1, 0, 0, 0, "", " %", "", "");
create_profil("_BST", 1, 0, 0, 0, "", " h", "", "");
create_profil("_Robo_Minuten", 1, 0, 45, 15, "", "", "", "");
create_profil("_Robo_Stunden", 1, 0, 24, 1, "", "", "", "");
create_profil("_Robo_Status", 1, 0, 0, 0, "", "", array(0 => "Status wird ermittelt", 1 => "parkt", 2 => "mäht", 3 => "sucht die Ladestation", 4 => "lädt", 5 => "warten auf umsetzen", 7 => "Fehlerstatus",8 => "kein Schleifensignal", 16 => "abgeschaltet", 17 => "schläft"));
create_profil("_Robo_Mode", 1, 0, 0, 0, "", "", array(0 => "Auto", 1 => "Manuell", 2 => "Home", 3 => "Demo"));
create_profil("_Robo_Betriebsmode", 1, 0, 0, 0, "", "", array(0 => "Start", 1 => "Stop", 2 => "Feierabend", 3 => "Home", 4 => "Auto", 5 => "Manuell"));
create_profil("_Robo_Timer", 1, 0, 0, 0, "", "", array(0 => "deaktiviert", 1 => "aktiv", 2 => "standby"));
create_profil("_Robo_JobRemote", 1, 0, 0, 0, "", "", array(0 => "Standard", 1 => "Fernstart 1", 2 => "Fernstart 2"));
create_profil("_Robo_JobMode", 1, 0, 0, 0, "", "", array(1 => "Home", 2 => "Feierabend", 3 => "Manuell", 4 => "Auto"));
create_profil("_Robo_JobStart", 1, 0, 0, 0, "", "", "starten", "#3366FF");
// Instanzen, Variablen und Skripte anlegen
$did = SetDummyByName(IPS_GetParent($_IPS['SELF']), $data_status['name'], preg_replace('/[^A-Za-z0-9]/', '', "robo".$data_status['name']), 0, "");
// Ausleseskript
if(@IPS_GetScriptIDByName("Auslesen", $did) == false){
$sid_getData = IPS_CreateScript(0);
IPS_SetParent($sid_getData, $did);
IPS_SetPosition($sid_getData, 100);
IPS_SetName($sid_getData, "Auslesen");
IPS_SetIdent($sid_getData, "roboScriptGetData");
}
// Steuerungskript
if(@IPS_GetScriptIDByName("Steuern", $did) == false){
$sid_control = IPS_CreateScript(0);
IPS_SetParent($sid_control, $did);
IPS_SetPosition($sid_control, 101);
IPS_SetName($sid_control, "Steuern");
IPS_SetIdent($sid_control, "roboScriptControl");
}
if($cam_installed == true){
// Skript Kamerabild laden
if(@IPS_GetScriptIDByName("Bild laden", $did) == false){
$sid_picture = IPS_CreateScript(0);
IPS_SetParent($sid_picture, $did);
IPS_SetPosition($sid_picture, 102);
IPS_SetName($sid_picture, "Bild laden");
IPS_SetIdent($sid_picture, "roboScriptPicture");
}
}
$did_stat = SetDummyByName($did, "Status", "roboStatus", 10, "");
$trigger = CreateVariableByName($did_stat, "Status", "roboStatus", 1, "_Robo_Status", 10, "");
CreateVariableByName($did_stat, "Uptime", "roboUptime", 3, "", 11, "");
CreateVariableByName($did_stat, "Modus", "roboMode", 1, "_Robo_Mode", 12, "");
CreateVariableByName($did_stat, "Betriebsmodus", "roboOperatingMode", 1, "_Robo_Betriebsmode", 13, $sid_control);
CreateVariableByName($did_stat, "Batterie", "roboBattery", 1, "_Batterie", 14, "");
CreateVariableByName($did_stat, "Betriebsstunden", "roboHours", 1, "_BST", 15, "");
CreateVariableByName($did_stat, "Timer", "roboTimer", 1, "_Robo_Timer", 16, "");
CreateVariableByName($did_stat, "Wlan-Signal", "roboWlan", 1, "_Wlan", 17, "");
CreateVariableByName($did_stat, "Fehler", "roboError", 3, "", 18, "");
CreateVariableByName($did_stat, "Fehlerspeicher", "roboErrorlist", 3, "~HTMLBox", 19, "");
$did_control = SetDummyByName($did, "Mähauftrag erstellen", "roboJobControl", 11, "");
$did_starttime = SetDummyByName($did_control, "Startzeit einstellen", "roboJobTimeStart", 10, "");
CreateVariableByName($did_starttime, "Stunden", "roboJobTime_h", 1, "_Robo_Stunden", 10, $sid_control);
CreateVariableByName($did_starttime, "Minuten", "roboJobTime_m", 1, "_Robo_Minuten", 11, $sid_control);
$did_stoptime = SetDummyByName($did_control, "Endzeit einstellen", "roboJobTimeStop", 11, "");
CreateVariableByName($did_stoptime, "Stunden", "roboJobTime_h", 1, "_Robo_Stunden", 12, $sid_control);
CreateVariableByName($did_stoptime, "Minuten", "roboJobTime_m", 1, "_Robo_Minuten", 13, $sid_control);
CreateVariableByName($did_control, "Fernstart", "roboJobRemote", 1, "_Robo_JobRemote", 12, $sid_control);
CreateVariableByName($did_control, "nachfolgender Modus", "roboJobMode", 1, "_Robo_JobMode", 13, $sid_control);
CreateVariableByName($did_control, "Mähauftrag starten", "roboJobStart", 1, "_Robo_JobStart", 14, $sid_control);
// Inhalt Ausleseskript
$content = '<?
/*******************************************************************************
MSC - Version 0.9 vom 18.09.2016
********************************************************************************
SKRIPT ZUM AUSLESEN VON MÄHROBOTER
AUSGESTATTET MIT DEM
ROBONECT-MODUL H30x Ver. 0.9c
------------------------------------------------------------------------
Datenabfrage vom Modul
********************************************************************************
*******************************************************************************/
// Verbindungsdaten
$ip = "'.$ip.'";
$user = "'.$user.'";
$pass = "'.$pass.'";
/*******************************************************************************
*******************************************************************************/
// Allgemeine Gerätedaten vom Gateway abfragen
$content = @Sys_GetURLContentEx("http://".$ip."/json?cmd=status", array("AuthUser"=> $user, "AuthPass"=> $pass));
if($content == false) return;
$data_status = json_decode($content, true);
// *****************************************************************************
// Fehlerauswertung
// noch nicht integriert
$error = "";
// *****************************************************************************
// Fehlerspeicher
$content = @Sys_GetURLContentEx("http://".$ip."/json?cmd=error", array("AuthUser"=> $user, "AuthPass"=> $pass));
if($content != false){
$data_error = json_decode($content, true);
$errorlist ="<table style=\'font-size:11px;text-align:left;\'>";
$errorlist .= "<tr style=\'height:5px;\'><td colspan=\'3\'></td></tr>";
foreach($data_error[\'errors\'] as $key => $value){
$errorlist .="<tr style=\'font-size:14px;\'>";
$errorlist .="<td width=70 valign=top>".$value[\'date\']."</td>";
$errorlist .="<td width=70 valign=top>".$value[\'time\']."</td>";
$errorlist .="<td width=250> ".$value[\'error_message\']."</td>";
$errorlist .="</tr>";
}
$errorlist .= "<tr style=\'height:5px;\'><td colspan=\'3\'></td></tr>";
$errorlist .="</table>";
}
else{
$errorlist ="<table style=\'font-size:14px;text-align:left;\'>";
$errorlist .= "<tr style=\'height:5px;\'><td colspan=\'3\'>Fehlerspeicher ist leer</td></tr>";
$errorlist .="</table>";
}
// *****************************************************************************
// Variablen schreiben
// --------------------
SetVariable("roboStatus", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $data_status[\'status\'][\'status\'], true);
SetVariable("roboUptime", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), uptime($data_status[\'status\'][\'duration\']), true);
SetVariable("roboMode", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $data_status[\'status\'][\'mode\'], true);
SetVariable("roboBattery", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), (int)$data_status[\'status\'][\'battery\'], true);
SetVariable("roboHours", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), (int)$data_status[\'status\'][\'hours\'], true);
SetVariable("roboTimer", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $data_status[\'timer\'][\'status\'], true);
SetVariable("roboWlan", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $data_status[\'wlan\'][\'signal\'], true);
SetVariable("roboError", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $error, true);
SetVariable("roboErrorlist", IPS_GetObjectIDByIdent("roboStatus", IPS_GetParent($_IPS[\'SELF\'])), $errorlist, true);
/*******************************************************************************
*******************************************************************************/
// FUNKTIONEN
/*******************************************************************************
*******************************************************************************/
// Schreiben der Variablen
function SetVariable($ident, $parentID, $newvalue, $check = false){
Global $global;
$vid = IPS_GetObjectIDByIdent($ident, $parentID);
if($check == true){
$oldvalue = GetValue($vid);
if($newvalue != $oldvalue){
SetValue($vid, $newvalue);
}
}
else SetValue($vid, $newvalue);
}
// Aufbereiten der Statuszeit
function uptime($sec) {
$time = sprintf(\'%d Tag%s, %d Stunde%s,\'.\' %d Minute%s und %d Sekunde%s\',
$sec / 86400, floor($sec / 86400) != 1 ? \'e\':\'\',
$sec / 3600 % 24, floor($sec / 3600 % 24) != 1 ? \'n\':\'\',
$sec / 60 % 60, floor($sec / 60 % 60) != 1 ? \'n\':\'\',
$sec % 60, floor($sec % 60) != 1 ? \'n\':\'\'
);
return $time;
}
/*******************************************************************************
*******************************************************************************/
?>';
IPS_SetScriptContent($sid_getData, $content);
// Inhalt Steuerungsskript
$content = '<?
/*******************************************************************************
MSC - Version 1.3 vom 22.01.2017
********************************************************************************
SKRIPT ZUM AUSLESEN VON MÄHROBOTER
AUSGESTATTET MIT DEM
ROBONECT-MODUL H30x Ver. 0.9c
------------------------------------------------------------------------
Befehle an die Steuerung senden
********************************************************************************
*******************************************************************************/
// Verbindungsdaten
$ip = "'.$ip.'";
$user = "'.$user.'";
$pass = "'.$pass.'";
/*******************************************************************************
*******************************************************************************/
if($_IPS[\'SENDER\'] == "WebFront"){
$object = IPS_GetObject($_IPS[\'VARIABLE\']);
switch($object[\'ObjectIdent\']){
case "roboOperatingMode":
switch($_IPS[\'VALUE\']){
case 0:
$command = "start";
$text = \'Mähroboter gestartet\';
break;
case 1:
$command = "stop";
$text = \'Modus "Stop" aktiv\';
break;
case 2:
$command = "mode&mode=eod";
$text = \'Modus "Feierabend" aktiv\';
break;
case 3:
$command = "mode&mode=home";
$text = \'Modus "Home" aktiv\';
break;
case 4:
$command = "mode&mode=auto";
$text = \'Modus "Auto" aktiv\';
break;
case 5:
$command = "mode&mode=man";
$text = \'Modus "Manuell" aktiv\';
break;
default:
return;
break;
}
$ch = curl_init();
$url = "http://".$ip."/xml?cmd=".$command;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_exec($ch);
curl_close($ch);
SetValue($_IPS[\'VARIABLE\'], $_IPS[\'VALUE\']);
WFC_SendNotification($_IPS[\'CONFIGURATOR\'], "'.$data_status['name'].'", $text, "HouseRemote", 5);
break;
case "roboJobStart":
$remote = GetValue(IPS_GetObjectIDByIdent("roboJobRemote", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\']))));
$mode = GetValue(IPS_GetObjectIDByIdent("roboJobMode", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\']))));
// Startzeitumrechnung ins 15min Raster
$hrs = GetValue(IPS_GetObjectIDByIdent("roboJobTime_h", IPS_GetObjectIDByIdent("roboJobTimeStart", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\'])))));
$min = GetValue(IPS_GetObjectIDByIdent("roboJobTime_m", IPS_GetObjectIDByIdent("roboJobTimeStart", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\'])))));
switch($min){
case 0:
$starttime = $hrs * 4;
break;
case 15:
$starttime = $hrs * 4 + 1;
break;
case 30:
$starttime = $hrs * 4 + 2;
break;
case 45:
$starttime = $hrs * 4 + 3;
break;
}
// Endzeitumrechnung ins 15min Raster
$hrs = GetValue(IPS_GetObjectIDByIdent("roboJobTime_h", IPS_GetObjectIDByIdent("roboJobTimeStop", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\'])))));
$min = GetValue(IPS_GetObjectIDByIdent("roboJobTime_m", IPS_GetObjectIDByIdent("roboJobTimeStop", IPS_GetObjectIDByIdent("roboJobControl", IPS_GetParent($_IPS[\'SELF\'])))));
switch($min){
case 0:
$endtime = $hrs * 4;
break;
case 15:
$endtime = $hrs * 4 + 1;
break;
case 30:
$endtime = $hrs * 4 + 2;
break;
case 45:
$endtime = $hrs * 4 + 3;
break;
}
$ch = curl_init();
$url = "http://".$ip."/xml?cmd=mode&mode=job&remotestart=$remote&begin=$starttime&end=$endtime&after=$mode";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_exec($ch);
curl_close($ch);
WFC_SendNotification($_IPS[\'CONFIGURATOR\'], "'.$data_status['name'].'", "Mähauftrag gestartet", "HouseRemote", 5);
break;
default:
SetValue($_IPS[\'VARIABLE\'], $_IPS[\'VALUE\']);
break;
}
}
/*******************************************************************************
*******************************************************************************/
?>';
IPS_SetScriptContent($sid_control, $content);
if($cam_installed == true){
// Bild laden
$remote = "http://".$ip."/cam.jpg";
$media_orig = IPS_GetKernelDir()."\\media\\".$data_status['name']."_orig.jpg";
$media = IPS_GetKernelDir()."\\media\\".$data_status['name'].".jpg";
// Downloaden
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode($user.':'.$pass)
)));
$data = file_get_contents($remote, false, $context);
if($data == true){
// Speichern
file_put_contents($media_orig, $data);
// Bild um 180° drehen
$source = imagecreatefromjpeg($media_orig);
$rotate = imagerotate($source, 180, 0);
ImageDestroy($source);
imagejpeg($rotate, $media, 180);
CreateMediaImage($did, "Bild", $rotate, $media, 20, false);
ImageDestroy($rotate);
}
// Inhalt Skript Bild laden
$content = '<?
/*******************************************************************************
MSC - Version 0.6 vom 28.12.2016
********************************************************************************
SKRIPT ZUM AUSLESEN VON MÄHROBOTER
AUSGESTATTET MIT DEM
ROBONECT-MODUL H30x Ver. 0.9c
------------------------------------------------------------------------
Bild vom Kameramodul laden
********************************************************************************
*******************************************************************************/
// Verbindungsdaten
$ip = "'.$ip.'";
$user = "'.$user.'";
$pass = "'.$pass.'";
/*******************************************************************************
*******************************************************************************/
switch($_IPS[\'SENDER\']){
case "Variable":
switch($_IPS[\'VALUE\']){
case 1: // parkt
$control = false;
setPicture("parked");
break;
case 2: // mäht
$control = true;
break;
case 3: // sucht die Ladestation
$control = true;
break;
case 4: // lädt
$control = false;
setPicture("charge");
break;
case 5: // warten auf umsetzen
$control = true;
break;
case 16: // abgeschaltet
$control = false;
setPicture("off");
break;
case 17: // schläft
$control = false;
setPicture("sleep");
break;
}
IPS_SetEventActive(IPS_GetObjectIDByIdent("roboScriptTimer", $_IPS[\'SELF\']), $control);
break;
case "TimerEvent":
$status = Sys_Ping($ip, 500);
if($status == true){
$remote = "http://".$ip."/cam.jpg";
$media_orig = IPS_GetKernelDir()."\\media\\'.$data_status['name'].'_orig.jpg";
$media = IPS_GetKernelDir()."\\media\\'.$data_status['name'].'.jpg";
// Downloaden
$context = stream_context_create(array(
\'http\' => array(
\'header\' => "Authorization: Basic " . base64_encode($user.\':\'.$pass)
)));
$data = file_get_contents($remote, false, $context);
if($data == true){
// Speichern
file_put_contents($media_orig, $data);
// Bild um 180° drehen
$source = imagecreatefromjpeg($media_orig);
$rotate = imagerotate($source, 180, 0);
ImageDestroy($source);
imagejpeg($rotate, $media, 180);
CreateMediaImage(IPS_GetParent($_IPS[\'SELF\']), "Bild", $rotate, $media, 20, false);
ImageDestroy($rotate);
}
}
else setPicture("disconnect");
break;
default:
return;
break;
}
/*******************************************************************************
*******************************************************************************/
// FUNKTIONEN
/*******************************************************************************
*******************************************************************************/
// Funktion Bild erstellen
// ------------------------
function setPicture($mode){
$media = IPS_GetKernelDir()."\\media\\'.$data_status['name'].'.jpg";
$format = getimagesize($media);
$image = imagecreatetruecolor($format[0], $format[1]);
$tfarbe = imagecolorallocate($image, 255, 150, 0);
switch($mode){
case "disconnect":
$text = utf8_decode("--| Mähroboter nicht erreichbar |--");
$x = 165;
break;
case "charge":
$text = utf8_decode("--| Mähroboter lädt |--");
$x = 215;
break;
case "parked":
$text = utf8_decode("--| Mähroboter geparkt |--");
$x = 200;
break;
case "off":
$text = utf8_decode("--| Mähroboter abgeschaltet |--");
$x = 180;
break;
case "sleep":
$text = utf8_decode("--| Mähroboter schläft |--");
$x = 200;
break;
default:
return;
break;
}
imagestring ($image, 5, $x, 235, $text, $tfarbe);
imagejpeg($image, $media);
CreateMediaImage(IPS_GetParent($_IPS[\'SELF\']), "Bild", $image, $media, 20, false);
imagedestroy($image);
}
// Funktion Media - Bild anlegen
// ------------------------------
function CreateMediaImage($parentID, $name, $media, $imagefile, $position, $option = true){
$ident = preg_replace(\'/[^A-Za-z0-9]/\', \'\', $name);
$mediaID = @IPS_GetObjectIDByIdent($ident, $parentID);
if ($mediaID === false){
$mediaID = IPS_CreateMedia(1);
IPS_SetParent($mediaID, $parentID);
IPS_SetIdent ($mediaID, $ident);
IPS_SetPosition($mediaID, $position);
IPS_SetMediaCached($mediaID, false);
IPS_SetName($mediaID, $name);
}
IPS_SetMediaFile($mediaID, $imagefile, false);
if($option) IPS_SetMediaContent($mediaID, base64_encode($media));
IPS_SendMediaEvent($mediaID);
return $mediaID;
}
/*******************************************************************************
*******************************************************************************/
?>';
IPS_SetScriptContent($sid_picture, $content);
}
// Events anlegen
SetTimeEventByName($sid_getData, "ScriptTimer", "roboScriptTimer", 10, 15, true);
if($cam_installed == true){
SetTimeEventByName($sid_picture, "ScriptTimer", "roboScriptTimer", 10, 90, true);
SetTriggerEventByName($sid_picture, "StatusTrigger", "roboStatusTrigger", 11, $trigger, true);
}
/*******************************************************************************
********************************************************************************
FUNKTIONEN
*******************************************************************************
*******************************************************************************/
// Funktion Dummy erstellen
// -----------------------------------------------------------------------------
function SetDummyByName($parentID, $name, $ident, $position, $icon, $check = false){
$did = @IPS_GetObjectIDByIdent($ident, $parentID);
if($did === false){
$did = @IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
IPS_SetName($did, $name);
IPS_SetIdent($did, $ident);
IPS_SetParent($did, $parentID);
IPS_SetPosition($did, $position);
IPS_SetIcon($did, $icon);
}
if($check){
if($name != IPS_GetObject($did)['ObjectName'])IPS_SetName($did, $name);
if($position != IPS_GetObject($did)['ObjectPosition'])IPS_SetPosition($did, $position);
}
return $did;
}
// Funktion Variable erstellen
// -----------------------------------------------------------------------------
function CreateVariableByName($parentID, $name, $ident, $type, $profil, $pos, $script, $check = false, $logging = false){
$vid = @IPS_GetObjectIDByIdent($ident, $parentID);
if($vid === false){
$vid = @IPS_CreateVariable($type);
IPS_SetParent($vid, $parentID);
IPS_SetName($vid, $name);
IPS_SetIdent($vid, $ident);
IPS_SetVariableCustomProfile($vid, $profil);
@IPS_SetVariableCustomAction($vid, $script);
IPS_SetPosition($vid, $pos);
if($logging == true){
$list = IPS_GetInstanceListByModuleID("{43192F0B-135B-4CE7-A0A7-1475603F3060}");
AC_SetAggregationType($list[0], $vid, 0);
AC_SetGraphStatus($list[0], $vid, false);
AC_SetLoggingStatus($list[0], $vid, true);
IPS_ApplyChanges($list[0]);
}
}
if($check){
if($name != IPS_GetObject($vid)['ObjectName'])IPS_SetName($vid, $name);
if($pos != IPS_GetObject($vid)['ObjectPosition'])IPS_SetPosition($vid, $pos);
}
return $vid;
}
// Funktion Variablenprofil erstellen
// -----------------------------------------------------------------------------
function create_profil($profil, $typ, $min, $max, $step, $pre, $suf, $asso, $color = false){
$data = @IPS_GetVariableProfile($profil);
if($data == true){
// Einträge löschen
foreach($data['Associations'] as $key => $array){
@IPS_SetVariableProfileAssociation($profil, $key, "", "", -1);
}
}
else{
IPS_CreateVariableProfile($profil, $typ);
IPS_SetVariableProfileValues($profil, $min, $max, $step);
}
// -----------------------------------------------------------------------------
// neue Einträge erstellen
IPS_SetVariableProfileValues($profil, $min, $max, $step);
if(is_array($asso) == true){
foreach($asso as $key => $value){
IPS_SetVariableProfileText($profil, $pre, $suf);
if($color == false){
@IPS_SetVariableProfileAssociation($profil, $key, $value, "", -1);
}
else{
@IPS_SetVariableProfileAssociation($profil, $key, $value, "", hexdec($color[$key]));
}
}
}
else{
IPS_SetVariableProfileText($profil, $pre, $suf);
if($color == false){
@IPS_SetVariableProfileAssociation($profil, 0, $asso, "", -1);
}
else{
@IPS_SetVariableProfileAssociation($profil, 0, $asso, "", hexdec($color));
}
}
}
// Funktion TimeEvent erstellen
// -----------------------------------------------------------------------------
function SetTimeEventByName($parentID, $name, $ident, $position, $time, $state){
$eid = @IPS_GetObjectIDByIdent($ident, $parentID);
if($eid === false){
$eid = IPS_CreateEvent(1);
IPS_SetEventCyclic($eid, 0, 0, 0, 0, 1, $time);
IPS_SetName($eid, $name);
IPS_SetParent($eid, $parentID);
IPS_SetPosition($eid, $position);
IPS_SetIdent($eid, $ident);
IPS_SetEventActive($eid, $state);
}
return $eid;
}
// Funktion TriggerEvent erstellen
// -----------------------------------------------------------------------------
function SetTriggerEventByName($parentID, $name, $ident, $position, $trigger, $state){
$eid = @IPS_GetObjectIDByIdent($ident, $parentID);
if($eid === false){
$eid = IPS_CreateEvent(0);
IPS_SetEventTrigger($eid, 1, $trigger);
IPS_SetName($eid, $name);
IPS_SetParent($eid, $parentID);
IPS_SetPosition($eid, $position);
IPS_SetIdent($eid, $ident);
IPS_SetEventActive($eid, $state);
}
return $eid;
}
// Funktion MediaImage erstellen
// -----------------------------------------------------------------------------
function CreateMediaImage($parentID, $name, $media, $imagefile, $position, $option = true){
$ident = preg_replace('/[^A-Za-z0-9]/', '', $name);
$mediaID = @IPS_GetObjectIDByIdent($ident, $parentID);
if ($mediaID === false){
$mediaID = IPS_CreateMedia(1);
IPS_SetParent($mediaID, $parentID);
IPS_SetIdent ($mediaID, $ident);
IPS_SetPosition($mediaID, $position);
IPS_SetMediaCached($mediaID, false);
IPS_SetName($mediaID, $name);
}
IPS_SetMediaFile($mediaID, $imagefile, false);
if($option) IPS_SetMediaContent($mediaID, base64_encode($media));
IPS_SendMediaEvent($mediaID);
return $mediaID;
}
/*******************************************************************************
*******************************************************************************/
?>