Ich habe das Skript jetzt soweit erstellt:
<?php
// Variablenänderung
if($_IPS['SENDER'] == 'Variable') {
// Daten verarbeiten
$a = json_decode($_IPS['VALUE'), true);
// Verzweigung anhand der auslösenden Variablen
switch ($_IPS['VARIABLE']) {
// Status Value Variable
case 37932:
SetStatusValues($a)
break;
// Geräte Value Variable
case 34536
SetDeviceValues($a)
break;
// Firmware Value Variable
case 12145
SetFirmwareValues($a)
break;
// Log & Telemetrie Value Variable
case 30024
SetLoggingAndTelemetryValues($a)
break;
// Speicher Value Variable
case 22684
SetMemoryValues($a)
break;
// Netzwerk Value Variable
case 46793
SetNetworkValues($a)
break;
// MQTT Value Variable
case 27607
SetMQTTValues($a)
break;
// Zeit Value Variable
case 14347
SetTimeValues($a)
break;
// Energie Monitoring Variable
case 40184
SetEnergyMonitoringValues($a)
break;
// Energie Verbrauch Variable
case 25713
SetEnergyConsumptionValues($a)
break;
// Telemetriedaten Variable
case 53885
SetTeleperiodValues($a)
break;
default:
IPS_LogMessage('InLine Plug-LED-01-3449', 'ERROR HILFE!')
}
}
function SetStatusValues($array_var)
{
// Instanz Status Informationen
setvalue (55666, $array_var['Status']['Module']);
setvalue (37528, $array_var['Status']['DeviceName']);
setvalue (25416, $array_var['Status']['FriendlyName']['0']);
setvalue (45508, $array_var['Status']['FriendlyName']['1']);
setvalue (41173, $array_var['Status']['Topic']);
setvalue (49747, $array_var['Status']['ButtonTopic']);
setvalue (52683, $array_var['Status']['Power']);
setvalue (12627, $array_var['Status']['PowerOnState']);
setvalue (43820, $array_var['Status']['LedState']);
setvalue (56702, $array_var['Status']['LedMask']);
setvalue (42182, $array_var['Status']['SaveData']);
setvalue (32602, $array_var['Status']['SaveState']);
setvalue (18723, $array_var['Status']['SwitchTopic']);
setvalue (19411, $array_var['Status']['SwitchMode']['0']);
setvalue (21706, $array_var['Status']['SwitchMode']['1']);
setvalue (13585, $array_var['Status']['SwitchMode']['2']);
setvalue (44890, $array_var['Status']['SwitchMode']['3']);
setvalue (33817, $array_var['Status']['SwitchMode']['4']);
setvalue (27350, $array_var['Status']['SwitchMode']['5']);
setvalue (56538, $array_var['Status']['SwitchMode']['6']);
setvalue (59101, $array_var['Status']['SwitchMode']['7']);
setvalue (37269, $array_var['Status']['ButtonRetain']);
setvalue (30841, $array_var['Status']['SwitchRetain']);
setvalue (23905, $array_var['Status']['SensorRetain']);
setvalue (23857, $array_var['Status']['PowerRetain']);
setvalue (22370, $array_var['Status']['InfoRetain']);
setvalue (45758, $array_var['Status']['StateRetain']);
}
function SetDeviceValues($array_var)
{
// Instanz Geräte Informationen
setvalue (42822, $array_var['StatusPRM']['Baudrate']);
setvalue (53631, $array_var['StatusPRM']['SerialConfig']);
setvalue (34067, $array_var['StatusPRM']['GroupTopic']);
setvalue (13773, $array_var['StatusPRM']['OtaUrl']);
setvalue (14350, $array_var['StatusPRM']['RestartReason']);
setvalue (57526, $array_var['StatusPRM']['StartupUTC']);
setvalue (16139, $array_var['StatusPRM']['Uptime']);
setvalue (54142, $array_var['StatusPRM']['Sleep']);
setvalue (23309, $array_var['StatusPRM']['CfgHolder']);
setvalue (58330, $array_var['StatusPRM']['BootCount']);
setvalue (25503, $array_var['StatusPRM']['SaveCount']);
setvalue (13975, $array_var['StatusPRM']['SaveAddress']);
setvalue (36246, $array_var['StatusPRM']['BCResetTime']);
}
function SetFirmwareValues($array_var)
{
// Instanz Firmware Informationen
setvalue (38987, $array_var['StatusFWR']['Version']);
setvalue (59651, $array_var['StatusFWR']['BuildDateTime']);
setvalue (47137, $array_var['StatusFWR']['Boot']);
setvalue (27664, $array_var['StatusFWR']['Core']);
setvalue (42222, $array_var['StatusFWR']['SDK']);
setvalue (24889, $array_var['StatusFWR']['Hardware']);
setvalue (19848, $array_var['StatusFWR']['CR']);
}
function SetLoggingAndTelemetryValues($array_var)
{
// Instanz Logging und Telemetrie Informationen
setvalue (39668, $array_var['StatusLOG']['SerialLog']);
setvalue (51890, $array_var['StatusLOG']['WebLog']);
setvalue (57355, $array_var['StatusLOG']['MqttLog']);
setvalue (50872, $array_var['StatusLOG']['SysLog']);
setvalue (19232, $array_var['StatusLOG']['LogPort']);
setvalue (15528, $array_var['StatusLOG']['SSId']['0']);
setvalue (46868, $array_var['StatusLOG']['TelePeriod']);
setvalue (46379, $array_var['StatusLOG']['Resolution']);
setvalue (13982, $array_var['StatusLOG']['SetOption']['0']);
setvalue (40831, $array_var['StatusLOG']['SetOption']['1']);
setvalue (43062, $array_var['StatusLOG']['SetOption']['2']);
setvalue (42784, $array_var['StatusLOG']['SetOption']['3']);
}
function SetMemoryValues($array_var)
{
// Instanz Speicher Informationen
setvalue (30306, $array_var['StatusMEM']['ProgramSize']);
setvalue (27078, $array_var['StatusMEM']['Free']);
setvalue (38757, $array_var['StatusMEM']['Heap']);
setvalue (53702, $array_var['StatusMEM']['ProgramFlashSize']);
setvalue (30086, $array_var['StatusMEM']['FlashSize']);
setvalue (17483, $array_var['StatusMEM']['FlashChipId']);
setvalue (48774, $array_var['StatusMEM']['FlashFrequency']);
setvalue (43767, $array_var['StatusMEM']['FlashMode']);
setvalue (42194, $array_var['StatusMEM']['Features']['0']);
setvalue (20734, $array_var['StatusMEM']['Features']['1']);
setvalue (51416, $array_var['StatusMEM']['Features']['2']);
setvalue (39148, $array_var['StatusMEM']['Features']['3']);
setvalue (23588, $array_var['StatusMEM']['Features']['4']);
setvalue (48580, $array_var['StatusMEM']['Features']['5']);
setvalue (18805, $array_var['StatusMEM']['Features']['6']);
setvalue (57474, $array_var['StatusMEM']['Features']['7']);
setvalue (38433, $array_var['StatusMEM']['Features']['8']);
setvalue (19103, $array_var['StatusMEM']['Drivers']);
setvalue (40893, $array_var['StatusMEM']['Sensors']);
}
function SetNetworkValues($array_var)
{
// Instanz Netzwerk Informationen
setvalue (59633, $array_var['StatusNET']['Hostname']);
setvalue (50510, $array_var['StatusNET']['IPAddress']);
setvalue (50094, $array_var['StatusNET']['Gateway']);
setvalue (58392, $array_var['StatusNET']['Subnetmask']);
setvalue (44068, $array_var['StatusNET']['DNSServer']);
setvalue (25412, $array_var['StatusNET']['Mac']);
setvalue (29827, $array_var['StatusNET']['Webserver']);
setvalue (29088, $array_var['StatusNET']['WifiConfig']);
setvalue (26816, $array_var['StatusNET']['WifiPower']);
}
function SetMQTTValues($array_var)
{
// Instanz MQTT Informationen
setvalue (44217, $array_var['StatusMQT']['MqttHost']);
setvalue (19647, $array_var['StatusMQT']['MqttPort']);
setvalue (31733, $array_var['StatusMQT']['MqttClientMask']);
setvalue (36458, $array_var['StatusMQT']['MqttClient']);
setvalue (10948, $array_var['StatusMQT']['MqttUser']);
setvalue (54467, $array_var['StatusMQT']['MAX_PACKET_SIZE']);
setvalue (32311, $array_var['StatusMQT']['KEEPALIVE']);
setvalue (45397, $array_var['StatusMQT']['MqttCount']);
}
function SetTimeValues($array_var)
{
// Instanz Zeit Informationen
setvalue (49363, $array_var['StatusTIM']['UTC']);
setvalue (10077, $array_var['StatusTIM']['Local']);
setvalue (24974, $array_var['StatusTIM']['StartDST']);
setvalue (33818, $array_var['StatusTIM']['EndDST']);
setvalue (34087, $array_var['StatusTIM']['Timezone']);
setvalue (58197, $array_var['StatusTIM']['Sunrise']);
setvalue (56184, $array_var['StatusTIM']['Sunset']);
}
function SetEnergyMonitoringValues($array_var)
{
// Instanz Energie Monitoring
setvalue (54093, $array_var['StatusPTH']['PowerDelta']['0']);
setvalue (27155, $array_var['StatusPTH']['PowerDelta']['1']);
setvalue (55590, $array_var['StatusPTH']['PowerDelta']['2']);
setvalue (11380, $array_var['StatusPTH']['PowerLow']);
setvalue (56725, $array_var['StatusPTH']['PowerHigh']);
setvalue (46925, $array_var['StatusPTH']['VoltageLow']);
setvalue (39834, $array_var['StatusPTH']['VoltageHigh']);
setvalue (31663, $array_var['StatusPTH']['CurrentLow']);
setvalue (41240, $array_var['StatusPTH']['CurrentHigh']);
}
function SetEnergyConsumptionValues($array_var)
{
// Instanz Energie Verbauch
setvalue (10494, $array_var['StatusSNS']['Time']);
setvalue (40863, $array_var['StatusSNS']['ENERGY']['TotalStartTime']);
setvalue (44838, $array_var['StatusSNS']['ENERGY']['Total']);
setvalue (40937, $array_var['StatusSNS']['ENERGY']['Yesterday']);
setvalue (26877, $array_var['StatusSNS']['ENERGY']['Today']);
setvalue (16781, $array_var['StatusSNS']['ENERGY']['Power']);
setvalue (32528, $array_var['StatusSNS']['ENERGY']['ApparentPower']);
setvalue (21786, $array_var['StatusSNS']['ENERGY']['ReactivePower']);
setvalue (44105, $array_var['StatusSNS']['ENERGY']['Factor']);
setvalue (18070, $array_var['StatusSNS']['ENERGY']['Voltage']);
setvalue (39715, $array_var['StatusSNS']['ENERGY']['Current']);
}
function SetTeleperiodValues($array_var)
{
// Instanz Telemetriedaten
setvalue (53652, $array_var['StatusSTS']['Time']);
setvalue (46019, $array_var['StatusSTS']['Uptime']);
setvalue (52227, $array_var['StatusSTS']['UptimeSec']);
setvalue (50053, $array_var['StatusSTS']['Heap']);
setvalue (16944, $array_var['StatusSTS']['SleepMode']);
setvalue (48639, $array_var['StatusSTS']['Sleep']);
setvalue (37535, $array_var['StatusSTS']['LoadAvg']);
setvalue (16491, $array_var['StatusSTS']['MqttCount']);
setvalue (24610, $array_var['StatusSTS']['POWER1']);
setvalue (50013, $array_var['StatusSTS']['POWER2']);
setvalue (47784, $array_var['StatusSTS']['Dimmer']);
setvalue (40176, $array_var['StatusSTS']['Color']);
setvalue (14566, $array_var['StatusSTS']['HSBColor']);
setvalue (49661, $array_var['StatusSTS']['Channel']['0']);
setvalue (28984, $array_var['StatusSTS']['Channel']['1']);
setvalue (40280, $array_var['StatusSTS']['Channel']['2']);
setvalue (48076, $array_var['StatusSTS']['Scheme']);
setvalue (48777, $array_var['StatusSTS']['Fade']);
setvalue (37280, $array_var['StatusSTS']['Speed']);
setvalue (21400, $array_var['StatusSTS']['LedTable']);
setvalue (44154, $array_var['StatusSTS']['Wifi']['AP']);
setvalue (14955, $array_var['StatusSTS']['Wifi']['SSId']);
setvalue (53935, $array_var['StatusSTS']['Wifi']['BSSId']);
setvalue (15907, $array_var['StatusSTS']['Wifi']['Channel']);
setvalue (42913, $array_var['StatusSTS']['Wifi']['Mode']);
setvalue (53706, $array_var['StatusSTS']['Wifi']['RSSI']);
setvalue (31924, $array_var['StatusSTS']['Wifi']['Signal']);
setvalue (26469, $array_var['StatusSTS']['Wifi']['LinkCount']);
setvalue (15970, $array_var['StatusSTS']['Wifi']['Downtime']);
}
Die Werte werden nicht aktualisiert. Habe unterhalb des Skriptes ein Ausgelöstes Ereignis erstellt „Bei Aktualisierung“ mit einer Value Variable zum testen.