.
This commit is contained in:
@@ -40,6 +40,7 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
||||
|
||||
private function GetAction()
|
||||
{
|
||||
IPS_LogMessage("ShellySwitchSender", "🚀 Starte GetAction()...");
|
||||
// Eigenschaften lesen
|
||||
$broker = GetValue($this->ReadPropertyString("broker_address"));
|
||||
$port = GetValue($this->ReadPropertyInteger("broker_port"));
|
||||
@@ -51,6 +52,10 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
||||
$src = GetValue($this->ReadPropertyString("src"));
|
||||
$method = GetValue($this->ReadPropertyString("method"));
|
||||
$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
|
||||
$payload = [
|
||||
"id" => 0,
|
||||
@@ -64,20 +69,23 @@ class Symcon_Publish_to_Shelly_MQTT extends IPSModule
|
||||
|
||||
$json = json_encode($payload);
|
||||
|
||||
// Sende an MQTTClient (Symcon MQTTClient muss existieren!)
|
||||
$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;
|
||||
}
|
||||
}
|
||||
IPS_LogMessage("ShellySwitchSender", "📦 MQTT Payload: $json");
|
||||
|
||||
// Fallback: Logging für manuelle MQTT-Sendung
|
||||
IPS_LogMessage("ShellySwitchSender", "⚠️ Kein gültiger MQTTClient gefunden. Bitte in der Instanz 'MQTTClient' benennen.");
|
||||
// Sende an MQTTClient
|
||||
$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