Perfekt! Das sollte eigentlich Symcon von sich aus können!
Auch ein schöner, internerer Ansatz, ich hatte ja mehrfach
erwähnt, dass ich sehr häufig nutze, um beliebig und einfach zu publishen.
Es geht mir darum, dass ich überhaupt kein Device anlegen müssen will, um auf ein Topic zu publishen.
(Also „write only“ Fälle)
@paresy
Wie kann ich den mit RequestAction das Thema angeben?
Ich schick ja ein RequestAction mit der ID vom MQTT ServerDevice und dem Payload für die Message. Aber wo stell ich dann den Topic dynamisch ein?
Dann habe ich das falsch verstanden. Ich dachte geht darum ein abweichendes „set“ Thema für ein MQTT zu haben. Für beliebige Topics kann man sicherlich das Skript hier verwenden.
paresy
@paresy, wäre es nicht sogar möglich, der Client bzw. Server Instanz eine Publish Funktion zu geben?
Grüße,
Kai
Definitiv Möglich. Ich wäre dann aber eher für eine MQTT Export Instanz, die beliebige Topics senden kann aus PHP und wie eine RegisterVariable alle Topics empfangen kann. Quasi das was du als Modulentwickler kannst, nur auf User-Level Ebene für die Scripter
paresy
Erweitere doch die RegVar um RegVar_SendTopic
Michael
Ich fände eine Funktion für die Server- bzw. Clientinstanz intuitiver. Syntaktisch ähnlich meiner Funktion.
Damit könntest du aber nicht empfangen und somit hätten wir meiner Meinung nach nur 50% abdeckt.
paresy
Die phpMQTT Lib verwende ich in leicht angepasster Form in meinem MQTT Publish Modul intern auch. Den Server via instanceID zu übergeben ist zwar IPS konform, idR. will man jedoch einen externen MQTT Broker erreichen und selbst wenn nicht, könnte man ja auch einfach die IP/Port des internen Servers angegeben
Okay der Empfang Strang müsste dann auch noch um ein paar Felder erweitert werden
Michael
Du hast mich langsam mit deiner Idee.
paresy
… also wenn es so funktioniert wie beschrieben dann reicht das Script von Socke vollkommen.
Mehr muß nicht.
Widmet euch lieber wichtigeren Dingen.
bb
Wobei es ja einen entscheidenden Nachteil gibt
Es fehlt der Filter für das topic beim Empfangen.
Somit würde jedes empfangene publish das hinterlegte Script der RegVar starten.
Könnten dann schnell, viele PHP Threads belegt werden.
Michael
Ja, ich finde für die „Empfangsseite“ die Struktur mit den Devices völlig okay. Es muss ja nicht wieder die nächste eierlegende Wollmilchsau werden. Mir persönlich erschiene es einfach nützlich (und relativ simpel gedanklich) wenn ich Publishes auf eine Server- bwz Clientinstanz „draufwerfen“ könnte.
Danke, konnte das auch für ein aktuelles Projekt verwenden. Funktioniert einwandfrei.
Ich brauchte die Funktion auch und komme für meinen Bedarf mit dem oben verlinkten Link zur phpMQTT class super klar.
Du verwendest Homeassistant um per MQTT etwas an IPS zu schicken? Wenn du es schon per MQTT empfängst dann kannst du das in der Tat auch mit IPS-Bordmitteln direkt verarbeiten. In diesem Thread geht es aber um ein vereinfachtes Publishen von MQTT-Meldungen, also eher das Gegenteil da du ja etwas empfangen willst.