Dieses Skript erfordert zwingend IP-Symcon 2.5 oder neuer.
Installation:
-Eine neue Kategorie für eure Miele Geräte erstellen
-Ein Skript innerhalb dieser Kategorie erstellen und von unten per Copy&Paste einfügen
-IP-Adresse in der 3. Zeile anpassen
-Skript per Execute ausführen und schauen, ob Fehler gemeldet werden
-Ereignis erstellen, welches im beliebigem Intervall das Skript erneut ausführt (Dadurch werden die Werte aktualisiert)
-Fertig.
Hinweise:
Die Instanzen/Variablen dürfen umbenannt werden. Sie dürfen aber nicht verschoben werden. Bitte nutzt Links, wenn ihr nur einzelne Variablen in eure Visu einbinden wollt.
<?
$url="http://192.168.100.50/homebus/?language=de_DE";
$content = @file_get_contents($url);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
$result=array();
$devices=simplexml_load_string($content);
foreach($devices as $device) {
$uid = str_replace("-", "N", $device->UID);
$name = utf8_decode($device->name);
$url = $device->actions->action->attributes()['URL'];
readdevice($uid, $name, $url);
}
function readdevice($uid, $name, $url)
{
$content = @file_get_contents($url);
if((strpos($http_response_header[0], "200") === false)) {
return;
}
$cid=GetDummyModule(IPS_GetParent($_IPS['SELF']), $uid, $name);
$device=simplexml_load_string($content);
$keys = $device->information;
foreach($keys->children() as $key)
{
$id=GetStringVariable($cid, filter_characters(utf8_decode($key['name'])), utf8_decode($key['name']));
SetValueString($id, utf8_decode($key['value']));
}
}
function GetStringVariable($id, $ident, $name)
{
$vid = @IPS_GetObjectIDByIdent($ident, $id);
if ($vid === false)
{
$vid = IPS_CreateVariable(3);
IPS_SetParent($vid, $id);
IPS_SetIdent($vid, $ident);
IPS_SetName($vid, $name);
IPS_SetInfo($vid, "This Variable was created by Script #$id");
IPS_SetVariableCustomProfile($vid, "~String");
}
return $vid;
}
function GetDummyModule($id, $ident, $name)
{
$iid = @IPS_GetObjectIDByIdent($ident, $id);
if ($iid === false)
{
$iid = IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
IPS_SetParent($iid, $id);
IPS_SetIdent($iid, $ident);
IPS_SetName($iid, $name);
IPS_SetInfo($iid, "This Instance was created by Script #$id");
}
return $iid;
}
function filter_characters($input) {
$search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u,-, ");
$replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u,_,_");
return str_replace($search, $replace, $input);
}
?>