.
This commit is contained in:
@@ -40,6 +40,7 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
|||||||
|
|
||||||
private function GetAction()
|
private function GetAction()
|
||||||
{
|
{
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "🚀 Starte GetAction()...");
|
||||||
// Eigenschaften lesen
|
// Eigenschaften lesen
|
||||||
$broker = GetValue($this->ReadPropertyString("broker_address"));
|
$broker = GetValue($this->ReadPropertyString("broker_address"));
|
||||||
$port = GetValue($this->ReadPropertyInteger("broker_port"));
|
$port = GetValue($this->ReadPropertyInteger("broker_port"));
|
||||||
@@ -51,6 +52,10 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
|||||||
$src = GetValue($this->ReadPropertyString("src"));
|
$src = GetValue($this->ReadPropertyString("src"));
|
||||||
$method = GetValue($this->ReadPropertyString("method"));
|
$method = GetValue($this->ReadPropertyString("method"));
|
||||||
$switch_bool = GetValueBoolean($this->ReadPropertyInteger("switch_bool"));
|
$switch_bool = GetValueBoolean($this->ReadPropertyInteger("switch_bool"));
|
||||||
|
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "📋 Broker: $broker:$port, Topic: $topic");
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "📋 src: $src, method: $method, msg_id: $msg_id");
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "📋 boolVarID: $switch_bool");
|
||||||
// JSON-Payload erstellen
|
// JSON-Payload erstellen
|
||||||
$payload = [
|
$payload = [
|
||||||
"id" => 0,
|
"id" => 0,
|
||||||
@@ -64,20 +69,23 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
|||||||
|
|
||||||
$json = json_encode($payload);
|
$json = json_encode($payload);
|
||||||
|
|
||||||
// Sende an MQTTClient (Symcon MQTTClient muss existieren!)
|
IPS_LogMessage("ShellySwitchSender", "📦 MQTT Payload: $json");
|
||||||
$clientID = @IPS_GetInstanceIDByName("MQTTClient", 0); // Name anpassen, falls nötig
|
|
||||||
if ($clientID && IPS_InstanceExists($clientID)) {
|
|
||||||
// Prüfe ob kompatibler MQTTClient
|
|
||||||
if (IPS_GetInstance($clientID)['ModuleInfo']['ModuleID'] == "{C03937E3-5F86-EACA-B4A2-39A24ACF945A}") {
|
|
||||||
// Senden mit interner Funktion
|
|
||||||
MQTTClient_Publish($clientID, $topic, $json, 0, false);
|
|
||||||
IPS_LogMessage("ShellySwitchSender", "📤 Gesendet an '$topic': $json");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fallback: Logging für manuelle MQTT-Sendung
|
// Sende an MQTTClient
|
||||||
IPS_LogMessage("ShellySwitchSender", "⚠️ Kein gültiger MQTTClient gefunden. Bitte in der Instanz 'MQTTClient' benennen.");
|
$clientID = @IPS_GetInstanceIDByName("MQTTClient", 0);
|
||||||
|
if ($clientID && IPS_InstanceExists($clientID)) {
|
||||||
|
$moduleID = IPS_GetInstance($clientID)['ModuleInfo']['ModuleID'];
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "📡 Gefundener MQTTClient mit ModuleID: $moduleID");
|
||||||
|
|
||||||
|
if ($moduleID == "{C03937E3-5F86-EACA-B4A2-39A24ACF945A}") {
|
||||||
|
MQTTClient_Publish($clientID, $topic, $json, 0, false);
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "✅ Nachricht erfolgreich an '$topic' gesendet.");
|
||||||
|
} else {
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "❌ Fehler: Instanz 'MQTTClient' hat falsches Modul.");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
IPS_LogMessage("ShellySwitchSender", "❌ Kein MQTTClient gefunden oder benannt als 'MQTTClient'.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user