Klar, hier ist mein Script - ist aber ne reines "Arbeits-"Script , also nix kommentiert.
Aber vielleicht sieht man was ich meinte und wie man vorgehen kann …
<?php
#
# Zigbee2MQTTBridge = {00160D82-9E2F-D1BD-6D0B-952F945332C5}
# Zigbee2MQTTConfigurator = {D30BADA8-F261-4D9F-89A9-2E9961AF021F}
# Zigbee2MQTTDevice = {E5BB36C6-A70B-EB23-3716-9151A09AC8A2}
# Zigbee2MQTTGroup = {11BF3773-E940-469B-9DD7-FB9ACD7199A2}
# Zigbee2TasmotaBridge = {4A0D466C-45CF-B6C4-10B3-5A429B57A8D0}
# Zigbee2TasmotaConnect = {D5C0D7CE-6A00-BDBE-C43E-678CF5CBE178}
# Zigbee2TasmotaDevice = {7FB10079-784C-EC79-4425-2941D23EEAFA}
#
# Zigbee2MQTTBridge
$z2mBID = '{00160D82-9E2F-D1BD-6D0B-952F945332C5}';
# Zigbee2MQTTConfigurator
$z2mCID = '{D30BADA8-F261-4D9F-89A9-2E9961AF021F}';
# Zigbee2MQTTDevice
$z2mDID = '{E5BB36C6-A70B-EB23-3716-9151A09AC8A2}';
# Zigbee2MQTTGroup
$z2mGID = '{11BF3773-E940-469B-9DD7-FB9ACD7199A2}';
//CollectIdent($z2mDID);
IterateZigbee($z2mDID);
IterateZigbee($z2mGID);
function CollectIdent($guid) {
// Idents
$idents = [];
//Auflisten
$module = IPS_GetInstanceListByModuleID($guid);
foreach ($module as $instance) {
foreach (IPS_GetChildrenIDs($instance) as $child) {
$object = IPS_GetObject($child);
if(isset($idents[$object['ObjectIdent']])) {
$idents[$object['ObjectIdent']]++;
}
else {
echo $object['ObjectID'] . ':' . $object['ObjectIdent'] . PHP_EOL;
$idents[$object['ObjectIdent']] = 1;
}
}
}
ksort($idents, SORT_STRING);
print_r($idents);
}
function IterateZigbee($guid) {
$module = IPS_GetInstanceListByModuleID($guid);
foreach ($module as $instance) {
foreach (IPS_GetChildrenIDs($instance) as $child) {
OrganizeID($child);
}
}
}
function OrganizeID($id) {
$object = IPS_GetObject($id);
switch ($object['ObjectIdent']) {
case 'action':
IPS_SetPosition($object['ObjectID'], 7);
break;
case 'action_duration':
IPS_SetPosition($object['ObjectID'], 7);
break;
case 'angle_x':
case 'angle_y':
case 'angle_z':
IPS_SetPosition($object['ObjectID'], 8);
break;
case 'announce':
IPS_SetPosition($object['ObjectID'], 20);
IPS_SetIcon($object['ObjectID'], 'EnergyProduction');
IPS_SetHidden($object['ObjectID'], true);
break;
case 'battery':
IPS_SetPosition($object['ObjectID'], 15);
IPS_SetVariableCustomProfile($object['ObjectID'], 'Z2M.Battery.100');
break;
case 'battery_state':
IPS_SetPosition($object['ObjectID'], 16);
IPS_SetVariableCustomProfile($object['ObjectID'], 'Z2M.Battery.State');
break;
case 'brightness':
IPS_SetPosition($object['ObjectID'], 3);
break;
case 'color':
IPS_SetPosition($object['ObjectID'], 2);
#IPS_SetIcon($object['ObjectID'], '');
break;
case 'color_hs':
IPS_SetPosition($object['ObjectID'], 2);
#IPS_SetIcon($object['ObjectID'], 'Paintbrush');
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_mode':
IPS_SetPosition($object['ObjectID'], 3);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_power_on_behavior':
IPS_SetPosition($object['ObjectID'], 4);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_temp':
IPS_SetPosition($object['ObjectID'], 5);
IPS_SetHidden($object['ObjectID'], false);
break;
case 'color_temp_kelvin':
IPS_SetPosition($object['ObjectID'], 5);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_temp_presets':
IPS_SetPosition($object['ObjectID'], 5);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_temp_startup':
IPS_SetPosition($object['ObjectID'], 5);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'color_temp_startup_presets':
IPS_SetPosition($object['ObjectID'], 5);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'contact':
IPS_SetPosition($object['ObjectID'], 8);
break;
case 'current':
IPS_SetPosition($object['ObjectID'], 17);
break;
case 'device_status':
IPS_SetPosition($object['ObjectID'], 0);
break;
case 'device_temperature':
IPS_SetPosition($object['ObjectID'], 14);
break;
case 'do_not_disturb':
IPS_SetPosition($object['ObjectID'], 17);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'effect':
IPS_SetPosition($object['ObjectID'], 6);
break;
case 'energy':
IPS_SetPosition($object['ObjectID'], 19);
break;
case 'identify':
IPS_SetPosition($object['ObjectID'], 28);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'illuminance':
IPS_SetPosition($object['ObjectID'], 9);
//IPS_SetVariableCustomProfile($object['ObjectID'], '~Illumination');
break;
case 'illuminance_lux':
IPS_SetPosition($object['ObjectID'], 10);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'last_seen':
IPS_SetPosition($object['ObjectID'], 30);
IPS_SetIcon($object['ObjectID'], 'Clock');
IPS_SetHidden($object['ObjectID'], true);
break;
case 'led_indication':
IPS_SetPosition($object['ObjectID'], 16);
break;
case 'level_config__current_level_startup':
case 'level_config__current_level_startup_presets':
case 'level_config__execute_if_off':
case 'level_config__on_level':
case 'level_config__on_off_transition_time':
IPS_SetPosition($object['ObjectID'], 21);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'linkquality':
IPS_SetPosition($object['ObjectID'], 29);
//IPS_SetVariableCustomProfile($object['ObjectID'], 'Z2M.Intensity.254');
IPS_SetHidden($object['ObjectID'], true);
break;
case 'motion_sensitivity':
IPS_SetPosition($object['ObjectID'], 13);
break;
case 'occupancy':
IPS_SetPosition($object['ObjectID'], 11);
break;
case 'occupancy_timeout':
IPS_SetPosition($object['ObjectID'], 12);
break;
case 'power':
IPS_SetPosition($object['ObjectID'], 18);
break;
case 'power_on_behavior':
IPS_SetPosition($object['ObjectID'], 18);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'power_outage_count':
IPS_SetPosition($object['ObjectID'], 18);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'sensitivity':
IPS_SetPosition($object['ObjectID'], 12);
break;
case 'soil_moisture';
IPS_SetPosition($object['ObjectID'], 10);
break;
case 'state':
IPS_SetPosition($object['ObjectID'], 1);
break;
case 'strength':
IPS_SetPosition($object['ObjectID'], 11);
IPS_SetVariableCustomProfile($object['ObjectID'], 'Z2M.Strength');
break;
case 'temperature':
IPS_SetPosition($object['ObjectID'], 14);
break;
case 'temperature_unit';
IPS_SetPosition($object['ObjectID'], 14);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'trigger_count':
IPS_SetPosition($object['ObjectID'], 9);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'update__installed_version':
case 'update__latest_version':
case 'update__progress':
case 'update__remaining':
case 'update__state':
IPS_SetPosition($object['ObjectID'], 22);
IPS_SetHidden($object['ObjectID'], true);
break;
case 'vibration':
IPS_SetPosition($object['ObjectID'], 15);
break;
case 'voltage':
IPS_SetPosition($object['ObjectID'], 16);
break;
case 'x_axis':
case 'y_axis':
case 'z_axis':
IPS_SetPosition($object['ObjectID'], 9);
break;
default:
if(!empty($object['ObjectIdent'])) {
echo 'Ident:' . $object['ObjectIdent'] . PHP_EOL;
}
}
}
?>