In PHP Modulen steht SelectScript und SelectObject zur Auswahl. Was mir mir persönlich fehlt ist die Möglichkeit direkt eine Methode und Parameter festzulegen ohne dafür extra ein Skript nutzten zu müssen. Also das Gleiche wie bei Befehl testen oder bei einem Ereignis, dort bekommt man ja auch einen Auswahl Dialog angezeigt mit dem man die Methode auswählt, die aufgerufen werden soll, und mit welchen Parametern.
Was soll am Ende der Anwendungsfall sein? Im Normalfall nutzt man ja ein Ereignis um Dinge zu „verbinden“?
paresy
Na wenn ich z.B. aus einem Modul heraus was schalten will. Schalten geht bekanntlich nur über Methoden der Instanz.
Ich will eben nicht extra ein Skript aufrufen was dann wiederum
HM_WriteValueBoolean(12345, "STATE", true);
ausführt, sondern eben gleich die Instanz und was dann passieren soll. Module übernehmen ja ein Teil der Funktionen von Ereignissen durch Messagesink es macht daher aus meiner persönlichen Sicht nicht immer Sinn dann wieder über Skripte oder Ereignisse zu gehen, sondern eben wie man das bei einem Ereigniss ja auch auswählen kann, direkt die Funktion der Instanz auszuwählen.
Wie kommst du denn darauf?
Das ist einfach nur falsch.
Entweder dein Modul benötigt intern die Messages oder nicht.
Und wo bitteschön wird in irgendeiner Instanz direkt eine andere angesteuert, abgesehen von den Modulen für Sprachsteuerung. Und hier sieht man ja, wie unterschiedlich die Umsetzungen und Reaktionen der User sind.
Script und Systemvariablen sind der korrekte Weg.
Michael
Naja es gibt genügend Module die Dinge von Ereignissen ersetzten, wie Treppenhaus Licht, Waschmaschinen Status usw. natürlich kann man das auch alles mit Skripten und Ereignissen basteln aber in dem Fall übernimmt eben das Modul die Funktion des Skripts und des Ereignisses zusammen und ist leichter einzurichten.
Wenn ich z.B. einen Custom Skill einrichte will ich nur ein Gerät angeben und Alexa soll das schalten. Jetzt ist es aber so, dass es keinen Universal Befehl gibt zum ein / aus schalten, da unterscheidet sich die Methode je nach Geräte Typ. Daher bringt es mir auch nichts nur die Instanz auszuwählen. Dann müsste das Modul bei jeder Instanz wissen wie es die mit der passenden Methode zu schalten hat. Das geht zwar auch irgendwie, ist aber ein riesiger Aufwand das irgendwie einzurichten. Daher wenn Du eine Methode kennst wie man grundsätzlich egal was es ist ob KNX, LNC, Homematic, Z-Wave dem Gerät sagen kann es soll z.B. ein / aus schalten ist mir das recht. Ansonsten ist es aufgrund der Vielzahl an Gerätetypen einfacher der Nutzer sagt selber in so einem Modul was für eine Methode aufgerufen werden soll.
Aber ich bin da gerne für Vorschläge offen, wie man das sinnvoll für einen Nutzer und auch für einen PHP Modul lösen kann, das es für beide Seiten administrierbar bleibt.
Anders formuliert, könnte man den Funktionswunsch vielleicht auch zusätzlich so beschreiben:
Ein Nutzer soll unabhängig von einer Instanz gleiche Funktionen auch immer gleich aufrufen können, ohne sich mit den Methoden rumplagen zu müssen. Das ist im Prinzip Aufgabe von IP-Symcon die passenden Methoden zu kennen, die aufgerufen werden müssen.
Es wäre dann also egal ob ich eine Lampe habe die über Digitalstrom, KNX, Homematic angesteuert wird, ich möchte an sich nur die Instanz auswählen und Ein oder Aus auswählen können, die Methode die dann abzusetzen ist, muss IP-Symcon wissen, das würde vieles einfacher machen.
Die Methode nennt sich RequestAction
Ansonsten schau einfach wie es bei Alexa oder Google Assistent umgesetzt wurde.
Michael