no message
This commit is contained in:
@@ -231,75 +231,47 @@ class Shelly_Parser_MQTT extends IPSModule
|
|||||||
/* ---------------------------------------------------------
|
/* ---------------------------------------------------------
|
||||||
* AUTOMATISCHES ACTION-SCRIPT
|
* AUTOMATISCHES ACTION-SCRIPT
|
||||||
* ---------------------------------------------------------*/
|
* ---------------------------------------------------------*/
|
||||||
private function EnsureActionScript(): int
|
|
||||||
{
|
|
||||||
$scriptName = "ShellyMQTT_Action_" . $this->InstanceID;
|
|
||||||
|
|
||||||
// existiert bereits?
|
|
||||||
foreach (IPS_GetChildrenIDs($this->InstanceID) as $cid) {
|
|
||||||
$obj = IPS_GetObject($cid);
|
|
||||||
if ($obj['ObjectType'] === OBJECTTYPE_SCRIPT && $obj['ObjectName'] === $scriptName) {
|
|
||||||
return $cid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// neues Script erzeugen
|
|
||||||
$scriptID = IPS_CreateScript(0);
|
|
||||||
IPS_SetName($scriptID, $scriptName);
|
|
||||||
IPS_SetParent($scriptID, $this->InstanceID);
|
|
||||||
|
|
||||||
$php = '<?php
|
|
||||||
$inst = ' . $this->InstanceID . ';
|
|
||||||
$ident = IPS_GetObject($_IPS["VARIABLE"])["ObjectIdent"];
|
|
||||||
$value = $_IPS["VALUE"];
|
|
||||||
IPS_RequestAction($inst, $ident, $value);
|
|
||||||
?>';
|
|
||||||
|
|
||||||
IPS_SetScriptContent($scriptID, $php);
|
|
||||||
|
|
||||||
return $scriptID;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------
|
/* ---------------------------------------------------------
|
||||||
* BOOLEAN VARIABLE
|
* BOOLEAN VARIABLE
|
||||||
* ---------------------------------------------------------*/
|
* ---------------------------------------------------------*/
|
||||||
private function EnsureBooleanVariable(string $deviceID, string $ident, string $name): int
|
private function EnsureBooleanVariable(string $deviceID, string $ident, string $name): int
|
||||||
{
|
{
|
||||||
$folderID = $this->GetDeviceFolder($deviceID);
|
$folderID = $this->GetDeviceFolder($deviceID);
|
||||||
|
|
||||||
foreach (IPS_GetChildrenIDs($folderID) as $cid) {
|
foreach (IPS_GetChildrenIDs($folderID) as $cid) {
|
||||||
$o = IPS_GetObject($cid);
|
$o = IPS_GetObject($cid);
|
||||||
if ($o['ObjectIdent'] === $ident) {
|
if ($o['ObjectIdent'] === $ident) {
|
||||||
|
|
||||||
if (str_contains($ident, '_output_')) {
|
// OUTPUT → direkte Modulinstanz als Action
|
||||||
$actionScript = $this->EnsureActionScript();
|
if (str_contains($ident, '_output_')) {
|
||||||
IPS_SetVariableCustomAction($cid, $actionScript);
|
IPS_SetVariableCustomAction($cid, $this->InstanceID);
|
||||||
|
|
||||||
$var = IPS_GetVariable($cid);
|
$var = IPS_GetVariable($cid);
|
||||||
if ($var['VariableProfile'] === '' && $var['VariableCustomProfile'] === '') {
|
if ($var['VariableProfile'] === '' && $var['VariableCustomProfile'] === '') {
|
||||||
IPS_SetVariableCustomProfile($cid, '~Switch');
|
IPS_SetVariableCustomProfile($cid, '~Switch');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $cid;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $cid;
|
||||||
}
|
}
|
||||||
|
|
||||||
// neu
|
|
||||||
$varID = IPS_CreateVariable(0);
|
|
||||||
IPS_SetIdent($varID, $ident);
|
|
||||||
IPS_SetName($varID, $name);
|
|
||||||
IPS_SetParent($varID, $folderID);
|
|
||||||
|
|
||||||
if (str_contains($ident, '_output_')) {
|
|
||||||
$actionScript = $this->EnsureActionScript();
|
|
||||||
IPS_SetVariableCustomAction($varID, $actionScript);
|
|
||||||
IPS_SetVariableCustomProfile($varID, '~Switch');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $varID;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// neu
|
||||||
|
$varID = IPS_CreateVariable(0);
|
||||||
|
IPS_SetIdent($varID, $ident);
|
||||||
|
IPS_SetName($varID, $name);
|
||||||
|
IPS_SetParent($varID, $folderID);
|
||||||
|
|
||||||
|
if (str_contains($ident, '_output_')) {
|
||||||
|
IPS_SetVariableCustomAction($varID, $this->InstanceID);
|
||||||
|
IPS_SetVariableCustomProfile($varID, '~Switch');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $varID;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ---------------------------------------------------------
|
/* ---------------------------------------------------------
|
||||||
* FLOAT VARIABLE
|
* FLOAT VARIABLE
|
||||||
* ---------------------------------------------------------*/
|
* ---------------------------------------------------------*/
|
||||||
|
|||||||
Reference in New Issue
Block a user