PHP-Code:
if ($handle = opendir('/mnt/1wire'))
{
// Verzeichnis durchlaufen
while (false !== ($file = readdir($handle)))
{
If ((strlen($file) == 15) and (substr($file, 2, 1) == "."))
{
// Basiskategorie anlegen
$CatID = CreateCategoryByName(0, "1-Wire");
If (substr($file, 0, 2) == "28")
{
$uCatID = CreateCategoryByName($CatID, "DS18B20 - ".$file);
$varid = CreateVariableByName($uCatID, "address", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/address"));
$varid = CreateVariableByName($uCatID, "type", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/type"));
$varid = CreateVariableByName($uCatID, "temperature", 2, "~Temperature");
SetValueFloat($varid, (float)exec("cat /mnt/1wire/uncached/$file/temperature"));
$varid = CreateVariableByName($uCatID, "alias", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/alias"));
}
elseif (substr($file, 0, 2) == "81")
{
$uCatID = CreateCategoryByName($CatID, "DS1420 - ".$file);
$varid = CreateVariableByName($uCatID, "address", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/address"));
$varid = CreateVariableByName($uCatID, "type", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/type"));
$varid = CreateVariableByName($uCatID, "alias", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/alias"));
}
elseif (substr($file, 0, 2) == "3A")
{
$uCatID = CreateCategoryByName($CatID, "DS2413 - ".$file);
$varid = CreateVariableByName($uCatID, "address", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/address"));
$varid = CreateVariableByName($uCatID, "type", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/type"));
$varid = CreateVariableByName($uCatID, "alias", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/alias"));
$varid = CreateVariableByName($uCatID, "PIO.A", 0);
SetValueBoolean($varid, IdentTrueFalse(exec("cat /mnt/1wire/uncached/$file/PIO.A")));
$varid = CreateVariableByName($varid, "use_PIO.A", 0);
$varid = CreateVariableByName($uCatID, "PIO.B", 0);
SetValueBoolean($varid, IdentTrueFalse(exec("cat /mnt/1wire/uncached/$file/PIO.B")));
$varid = CreateVariableByName($varid, "use_PIO.B", 0);
$varid = CreateVariableByName($uCatID, "sensed.A", 0);
SetValueBoolean($varid, IdentTrueFalse(exec("cat /mnt/1wire/uncached/$file/sensed.A")));
$varid = CreateVariableByName($varid, "use_sensed.A", 0);
$varid = CreateVariableByName($uCatID, "sensed.B", 0);
SetValueBoolean($varid, IdentTrueFalse(exec("cat /mnt/1wire/uncached/$file/sensed.B")));
$varid = CreateVariableByName($varid, "use_sensed.B", 0);
}
elseif (substr($file, 0, 2) == "26")
{
$uCatID = CreateCategoryByName($CatID, "DS2438 - ".$file);
$varid = CreateVariableByName($uCatID, "address", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/address"));
$varid = CreateVariableByName($uCatID, "type", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/type"));
$varid = CreateVariableByName($uCatID, "temperature", 2, "~Temperature");
SetValueFloat($varid, (float)exec("cat /mnt/1wire/uncached/$file/temperature"));
$varid = CreateVariableByName($uCatID, "VAD", 2);
SetValueFloat($varid, (float)exec("cat /mnt/1wire/uncached/$file/VAD"));
$varid = CreateVariableByName($varid, "use_VAD", 0);
$varid = CreateVariableByName($uCatID, "VDD", 2);
SetValueFloat($varid, (float)exec("cat /mnt/1wire/uncached/$file/VDD"));
$varid = CreateVariableByName($varid, "use_VDD", 0);
$varid = CreateVariableByName($uCatID, "alias", 3);
SetValueString($varid, exec("cat /mnt/1wire/$file/alias"));
}
}
}
closedir($handle);
}
return;
function CreateVariableByName($fatid, $name, $type, $profile = "")
{
$vid = @IPS_GetVariableIDByName($name, $fatid);
if($vid === false)
{
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $fatid);
IPS_SetName($vid, $name);
if($profile !== "")
{
IPS_SetVariableCustomProfile($vid, $profile);
}
}
return $vid;
}
function CreateCategoryByName($fatid, $name)
{
$CatID = @IPS_GetCategoryIDByName($name, $fatid);
if($CatID === false)
{
$CatID = IPS_CreateCategory(); // Kategorie anlegen
IPS_SetName($CatID, $name); // Kategorie benennen
IPS_SetParent($CatID, $fatid);
}
return $CatID;
}
function IdentTrueFalse($Value)
{
if($Value == "0")
{
$result = false;
}
else
{
$result = true;
}
return $result;
}
Die Einrichtung von OWFS / OWHTTP... habe ich wie hier beschrieben vorgenommen: