Windows Message WM_COMMAND mit PHP?

Hallo zusammen,

ich habe eine Frage: gibt es die Möglichkeit, über PHP Windows Messages zu senden? Ich habe im Netz „WinBinder“ gefunden, aber hab noch so meine Probleme, das richtig einzubinden.
Wenn jemand einen Tip für mich hätte, wär das super!

Vielen Dank bereits vorab! :slight_smile:

Gruß
dfhome

Hat sich erledigt. Konnte die WinBinder.dll einbinden über die Extensions und der php.ini und nun klappt es. :slight_smile:

Hallo dfhome,

kannst Du uns verraten was Du damit vor hast?

Winbinder ist doch ein grafisches Backend für PHP-Programme, oder sehe ich da was falsch?

Hallo wgreipl,

bevor ich IP-Symcon entdeckt habe, habe ich mir für meine Hausautomation eine eigene Client/Server-Anwendung programmiert. Damals noch auf Basis von X10. Da wir uns an die Oberfläche so sehr gewöhnt haben und mittlerweile auch einiges an Funktionalität drin steckt (Anrufbeantworter, Lichtambiente, Multiroom-Audio), nutze ich die Funktionalität von IP-Symcon nun, um per FS20 die Lichter und die Heizung zu steuern.
Um nun aber meiner Anwendung mitzuteilen, dass sich der Status einer Lampe geändert hat, muss ich von IP-Symcon aus eine Message losschicken. Die COM-Schnittstelle kann jedoch nur Daten an IPS senden. Events o.ä. werden von IPS ja nicht losgeschickt. Nun trigger ich das Script mit den WM_Commands bei jeder Änderung einer Variablen und teile so meiner Software mit, dass sich der Status geändert hat - und sich somit auch der Status an den Touchscreen-Clients entsprechend ändert.

kannst Du uns verraten was Du damit vor hast?

Windows Messages sind für Programmierer interessant. Man kann mit ihnen unter Anderem Schnittstellen zwischen Progammen realisieren. Aber man kann auch viel Unsinn damit anstellen. Darum muss man sich an allerhand Restriktionen halten, die Microsoft aus Sicherheitsgründen eingebaut hat, damit das nicht passiert. Man muss also schon wissen was man tut und viel lesen, lesen, lesen.

Aus diesem Grund habe ich „Tonis Rapid IPS X-Plattform Interface“ (TRIXI) entwickelt. Das ist eine DLL die C-Kompilant ist, was bedeutet, dass sie in jeder gängigen Hochsprache integriert werden kann. Hab zum Testen eine Excell Tabelle mit VBA auf IPS verbunden und kann nun mit wenigen Zeilen aus der Excell Tabelle heraus Variablen beinflussen. Sollte mal Zeit sein werde ich sie auch für Linux umschreiben. Leider sieht es momentan nicht danach aus. Hab mit ner Lazarus Klasse angefangen (für Linux), aber ich glaub Mono oder .Net wären für ne echte Systemübergreifende Grundlage die bessere Wahl.

TRIXI gibts auf Tonis Welt.

Gruß,

Toni

Hallo Toni,

das mit deiner dll klingt auch interessant. Für mich stellt sich nur die Frage, ob damit auch Änderungen von IPS-Variablen der Anwendung mitgeteilt werden?

Hallo dfhome,

kann man da einmal einen Screenshot bekommen :smiley:

@Toni: Danke für die ausführliche Erklärung.

Natürlich, ich stell heute abend mal ein paar Screenshots rein. :slight_smile:

Momentan ist es aus Mangel an Usern, die die DLL sinnvoll einsetzen immernoch mehr eine „fortgeschrittene Studie“. Sind bislang etwa 4 User, die damit arbeiten (von denen ich weiss). Überwiegend wohl in VB.

CallBack steht ganz oben auf meiner ToDo. Ich muss für IPS2 eh ziemlich viel umschreiben. Aber diese Schnittstelle werde ich definitiv auch unter IPS2 wieder laufen haben. Nutze sie nämlich selbst :wink:

Toni

Das klingt ja sehr vielversprechend. Halt mich bitte mal auf dem Laufenden. Wird ja aber bestimmt einen Thread dazu geben, den ich mir verlinken kann? :smiley:

Hallo wgreipl,

sorry für die Verzögerung, aber hatten Besuch am WE, da hat´s dann von der Zeit nicht gereicht…

Hier nun aber ein paar Bilder:

http://www.dl.dfhome.de/client/screens/main_screen.jpg

http://www.dl.dfhome.de/client/screens/heating_screen.jpg

http://www.dl.dfhome.de/client/screens/mra_screen.jpg

http://www.dl.dfhome.de/client/screens/voicebox_screen.jpg

http://www.dl.dfhome.de/client/screens/room_screen.jpg

http://www.dl.dfhome.de/client/screens/media_screen.jpg

Der Client kommunziert mit einer Anwendung, welche auf dem Server läuft (auf dem auch parallel IPS läuft). Wenn mehr Infos gewünscht sind, kann ich noch mehr dazu schreiben. :wink:

Hallo dfhome,

das sieht ja mal richtig ordentlich aus.

Kann man da mal ein paar Code-Beispiele sehen.

Vielleicht könnte man soetwas auf meinem Mediacenter zum laufen zu bekommen.

Code-Schnipsel wird schwer, da mittlerweile doch einige Zeilen Code zusammen gekommen sind…
Prinzipiell basiert alles auf XML-Konfigfiles (sowohl Client- als auch Serverseitig). Die Screens am Client werden dynamisch anhand der konfigurierten Räume erstellt.
Alle wichtigen Infos werden in einer Access-Datenbank gespeichert. Dort wird dann auch immer der aktuelle Status der Module aktualisiert und hinterlegt.

Der Server kommuniziert über TCP mit dem Client und meldet ihm zum Beispiel neue Nachrichten auf dem AB oder neue Emails. Im Gegenzug schickt der Client eine Anforderung an den Server, wenn ein Licht geschaltet werden soll.

Da ich früher in Richtung Mediacenter auch sehr aktiv war (war aber TVcentral, nicht MCE), war das auch immer noch ein Ziel von mir. Also ein Plugin, welches sich dann analog einem Client am Server anmeldet und dann auch schalten und walten kann. Mittlerweile ist der HTPC jedoch einem Festplattenreceiver gewichen, da es doch noch zu viele Problemchen gab. Soll also nur heißen, theoretisch ist die Einbindung in ein Mediacenter möglich.

Schöne Grüße,
dfhome