Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone (https://www.delphipraxis.net/170970-fernsteuerung-eines-delphi-programms-per-ipad-oder-android-phone.html)

UliBru 12. Okt 2012 19:51

Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Hallo,

die Netzwerkwelt ist seitens der Programmierung ein totales Neuland für mich. Dabei soll es sooo einfach sein.

Aufgabe: Fernsteuerung eines Programms z.B. per App (also neumodisches Zeugs auf Handys etc.)
Erkenntnis: es gibt für viele Programme, z.B. Mediaplayer, irgendwelche Apps, mit denem man die Player fernsteuern kann.
Sowas möchte ich gern auch mit meinem Programm können. Als einfachstes Beispiel sei mal ein Lautstärkeregler genannt.

Ich hab dazu gehört, dass mein Programm Server spielen soll. Und dann vom Client Kommandos (Messages) bekommt, die dann entsprechend umzusetzen sind. In dem Zusammenhang wurde dann auch Bonjour genannt. Und RemObjects SDK. Für die Android-Welt sieht es vermutlich nochmal anders aus.

Also meine Fragen: wie kommt man am einfachsten in das Thema rein bzw. zu einer simplen ersten "Hello World"-Lösung (z.B. Steuern einer Trackbar per App). Gibt es da standardisierte Schnittstellen/Konfigurationen/Apps? Wo finde ich Infos hierzu (besagte Nadel im Google-Heuhaufen)?

Grüsse
Uli

Popov 12. Okt 2012 20:10

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Schon mal TeamViewer ausprobiert? Zuerst gibt es da den TeamViewer für den PC als Server und/oder Client. Soweit so gut, man kann damit einfach mit PCs arbeiten. Damit habe ich auch gute Erfahrungen.

Dann gibt es auch auch für Mobilgeräte (Android, iPhone, iPad) Clients, womit eigentlich der ganze PC über den iPhone gesteuert werden kann. Damit habe ich keine Erfahrungen, aber das gibt es:

http://www.teamviewer.com/de/download/mobile-app.aspx

Sag es wenn er geklappt hat.

//Edit:

Ich sehe gerade, dass du alles selbst machen willst. Mein Fehler, hab deinen Text nicht zu ende gelesen.

hathor 12. Okt 2012 20:14

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Das Einfachste ist, auf einen bestehenden Standard aufzubauen, wie z.B. X10:

http://en.wikipedia.org/wiki/X10_%28...ry_standard%29
http://en.wikipedia.org/wiki/X10_%28...f_X10_commands
http://www.delphipraxis.net/74841-pr...bedienung.html
http://www.pollin.de/shop/dt/MzIyODc...enger_X10.html
.
http://melloware.biz/products/x10/readme.txt
http://melloware.com/x10commander/
https://itunes.apple.com/de/app/x10-...293175400?mt=8
http://www.apple.com/webapps/utiliti...mecontrol.html
http://www.youtube.com/watch?v=KrtoQLfWnXE
.
http://melloware.com/wp-content/uplo...10-desktop.jpg
.
http://www.eventghost.org/
http://melloware.com/eventphone/
http://melloware.com/wp-content/uplo...phone-main.jpg
.
What is EventPhone?

EventPhone is an EventGhost Client for iOS devices that allows you to control your home theatre PC running Windows. Because Apple iOS devices use a network connection it does not need “line-of-sight” like traditional infrared remotes and you can use it anywhere in or out of your house! You already use EventGhost for your home automation needs, now go the extra step and hide your PC in the closet and control everything from your iOS device!
Why use EventPhone?
Complete control of all your Windows applications from your iOS device.
No “line-of-sight” needed to control your Home Theatre PC which may be stored in a closet or somewhere esle out of the way in your house.
You are already using EventGhost to control your home automation such as X10 or high end stereo receiver. Take it to the next level.
Virtual Keyboard to give you another 93 possible EventGhost events to respond to.
Finally make Apple and Microsoft play nicely together. Can’t we all just get along?

What does it look like?

When the application is running you can control anything on your PC from EventPhone with this 56 button remote including all 48 buttons of the Standard MCE Remote.
.
http://melloware.com/wp-content/uplo...phone-main.jpg

What is Intelliremote?

Intelliremote is a software program that gives you complete remote control of your Home Theater PC infrared or radio frequency remote and unlocks its true potential. HTPC makers have an excellent idea bundling an IR or RF remote control with their product…it’s just too bad the software included doesn’t do everything you want your remote to do!

The purpose of this program is simple: to remove any need for any custom software to control your remote, and implement and extend the full functionality of your HTPC remote in a memory efficient manner. Have you ever wanted a remote button to do one function in one application and a completely different function in another application? Now you can! Many flavors of HTPC remote are supported so please check the supported hardware list to see if the remote you own is supported.
Why use Intelliremote?

Have you tried Girder, HIP, or any of the other remote applications and gotten frustrated with how complicated they were to setup and use? Intelliremote take the approach of “keep it simple and stupid” to make using and customizing your remote as easy and painless as possible. Intelliremote aims to provide an experience similar to owning Apple hardware, Sony TVs and luxury German cars; things just work, they feel right and every now and again you get that “oh, it does that too? awesome!” feeling.

http://melloware.com/intelliremote/

jfheins 12. Okt 2012 20:34

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Zitat:

Zitat von hathor (Beitrag 1186831)
Das Einfachste ist, auf einen bestehenden Standard aufzubauen, wie z.B. X10:

Standard ist immer schön, aber X10 soll ja wohl ein Witz sein !?

Es bietet sich an, hier WLAN zu verwenden. In dem Delphi Programm müsste dann ein passender Server vorhanden sein. Vielleicht bietet sich auch ein Webservice an. Ansonsten kann man auch eine TCP Verbindung aufbauen und ein eigenes Protokoll übertragen. Gerade wenn es nur so Sachen wie "Lauter, Leiser, Rauf Runter" sind, lässt sich das oft einem case...of und minimalem Code erschlagen.

Die direkte Übertragung der Programmoberfläche ist wahrscheinlich nicht so gut auf einem Touchscreen zu bedienen.

Gausi 12. Okt 2012 20:42

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Bei meinem mp3-Player hab ich das über einen Indy-Http-Server gelöst. Vorteil ist, dass ich auf Smartphone-Seite nur einen Browser brauche. Nachteil ist natürlich, dass die "App" nicht z.B. per Broadcast den Server finden kann, um sofort aktiv zu sein - der User muss dann schon eine passende URL zu Beginn eingeben.

UliBru 12. Okt 2012 23:06

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
1. Also TeamViewer kenn ich wohl, nutze ich auch manchmal. Es geht aber hier nicht um Fernwartung.
2. X10 und IR-Fernbedienungen war auch ein Gedanke, ist sicher machbar, aber lange nicht so attraktiv wie eben eine passende App
3. klar, man könnte auch ein Webinterface bauen, dann muss man aber erstmal einen Browser aufrufen
4. Tja, und dann gibt es doch irgendwie diesen Standard, ich glaube ZeroConf etc. Wo sich Client und Service per Broadcast finden. Hab grad einen Link gefunden. Und auch noch den Link hier.

Gibt es nichts, was man man nicht vielleicht auch mit Delphi machen könnte? Und irgendwo müssen doch die Spezialisten sitzen, so viel Apps wie doch anscheinend gibt. Soweit ich weiss gibt es sowas für den Windows Media Player, für Foobar, für JRiver, für Linn, für AVR, für ... Also muss es ja irgendwie darstellbar sein.

Popov 12. Okt 2012 23:31

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Was verstehst du unter Fernwartung? Ein Kumpel von mir spielt sein WoW von seinem Firmenrechner auf den Rechner zu hause. Das ist für mich nicht eine Fernwartung.

Aber zurück zu Delphi. Dir ist schon klar, dass das App für den iPhone kein Delphi Programm ist? Oder habe ich dich falsch verstanden?

Zacherl 13. Okt 2012 00:15

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Wenn du nur einfache Befehle und immer nur von Handy zu PC schicken willst, würde sich ein IdHTTP Server auf PC Seite anbieten. Sollen auch Daten ohne vorheriges Client Request vom Server geschickt werden, so musst du einen TCP Server nehmen und dir ein kleines Protokoll überlegen.

Hansa 13. Okt 2012 02:14

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Zitat:

Zitat von Popov (Beitrag 1186830)
Schon mal TeamViewer ausprobiert? ...Dann gibt es auch auch für Mobilgeräte (Android, iPhone, iPad) Clients, womit eigentlich der ganze PC über den iPhone gesteuert werden kann..

Sag es wenn er geklappt hat.

Das klappt definitiv. Musste schon mal so was Samstag mittags von Fussballstadion aus machen. :lol: Das ging schon.

Zitat:

Zitat von UliBru (Beitrag 1186847)
Es geht aber hier nicht um Fernwartung.

"Dann gib bitte Deinem Beitrag aussagekräftigen Titel. Der jetzige Titel lässt nicht erkennen..." :mrgreen:

Denn das hier stimmt ja dann nicht : Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone.

UliBru 13. Okt 2012 08:56

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Ich verstehe eigentlich unter der Fernwartung, dass ich den Bildschirm eines Rechners per geeigneter Datenübertragung auf einem anderen lokalen Rechner dargestellt bekomme und den "entfernten" Rechner über den lokalen Rechner fernbediene. Stichwort z.B. VNC. Bei Teamviewer, welches ich übrigens auch selbst nutze, ist dann dem lokalen Rechner die Adresse des entfernten Rechner plus Schlüssel mitzuteilen. Über welche Wege im Web dann die Daten laufen weiss ich nicht.

Mir geht es um die lokale Anwendung. Ein iPhone und mein Windows-Rechner (also auch unterschiedliche Betriebssystemwelten) finden sich im lokalen Netzwerk (WLAN) ohne weitere Konfiguration (oder sollen es zumindest). Diese Aufgabe übernimmt ein Service wie z.B. Bonjour.
Auch bei einem anderen Beispiel, uPnP, finden sich Server, Client, Renderer, uPnP-Proxy, von allein.

Beispiel JRiver Mediacenter. Läuft auf meinen Rechner, versteht einen Servermodus und kann per App auf dem iPhone bedient werden. Und es ist nur das möglich, was eben als Service vorgesehen ist. Man kann damit also nicht wie bei TeamViewer auch beliebig andere Programme laufen lassen und bedienen, z.B. den Explorer.

Und ich würde nun gerne in einem lokalen Netzwerk mein Delphiprogramm per iPhone (oder Android-Phone oder Tablet...) bedienbar machen. Die Kommunikation muss bidirektional sein, d.h. wenn ich beispielsweise eine Trackbar auf dem iPhone verschiebe, dann verschiebt sich auch die Trackbar im Programm. Und umgekehrt. Es muss also eine Protokollschicht geben, wo eben die speziell erlaubten Aktionen definiert und ausgetauscht werden.
Wenn das Programm läuft und die App gestartet wird, dann sollen sich die beiden von ganz alleine finden (vordefinierter Port?).

Dass es so etwas gibt, sollte doch allen klar sein. Im Zeitalter der Bedienerfreundlickeit braucht es auch keinen Admin mehr dazu.
Und meine Frage geht eben nun dahin: wie macht man sowas eigentlich? Wie findet man in die Aufgabenstellung rein? Kann ich Delphi dazu verwenden? Schnittstelle von Bonjour?

Nun hab ich schon wieder länger erklärt. Verzeiht mir dass, ich nicht weiss, wie ich das optimal in einem eindeutigen, prägnanten und kurzen Titel beschreibe.

Gruss
Uli

PS: seht mir bitte auch nach, dass ich bisher noch keine Netzwerkprogramme geschrieben habe, hatte ich bisher auch nicht benötigt.

Bummi 13. Okt 2012 09:14

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
http://www.delphipraxis.net/170850-k...-dienst-2.html
behandelt etwas ähnliches

Popov 13. Okt 2012 13:56

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
@TE

Du darfst an dem Punkt nicht die Frage vergessen wie du an der Firewall vorbei kommst. Die Steuerung ist eine Sache, die Firewall eine andere. Denn wenn du eine IP hast, dann hast du nur die IP des Routers. Früher als jeder Rechner direkt am Modem war, da konnte man auch direkt an den Rechner. Heute ist man erst am Router. Ok, das ist keine besondere Hürde, aber ohne dass man den Router konfiguriert geht es eher weniger. Oder man macht es wie TeamViewer und telefoniert erst ein mal raus. So umgeht man das Ganze. In dem Fall brauchst du aber zuerst einen Server im Internet mit dem er zuerst die Verbindung aufnimmt. Schon so ein Programm wie VNC verursacht etwas Arbeit.

dummzeuch 13. Okt 2012 16:03

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Ich wuerde das auch mittels eines Webservers angehen, der zum einen eine simple Webseite bietet, die man per Browser benutzen kann, zum anderen aber auch kurze Befehle interpretiert, so dass man auch eine simple App schreiben kann.

Wenn es dafuer einen Standard gaebe, koennte man sogar eine universelle Fernsteuerungs-App schreiben, die je nach fernzusteuerndem Programm einfach konfiguriert werden kann, aehnlich wie die "programmierbaren" Fernbedienungen. Nur in diesem Fall koennte die App sich eine passende Konfigurationsdatei direkt von vom fernzusteuernden Programm downloaden.

UliBru 14. Okt 2012 10:40

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Der Begriff Fernbedienung z.B. für einen Fernseher wird im allgemeinen so verstanden, dass Geräte und Bediengeät im selben Raum sind. Das Wort Fernsteuerung legt anscheinend eher nahe, dass man man über irgendwelche Netzwerke ausser Haus kommuniziert.

Ich meine eigentlich eine lokale Fernsteuerung, also z.B. innerhalb eines WLANs. Man sitzt auf der Couch mit dem iPad und bedient die HiFi-Anlage im Wohnzimmer. Der Anwender weiss nichts von Konfiguration etc. Die Geräte finden sich im WLAN von allein.

Mir scheint, sowas hat hier noch keiner programmiert und möglicerweise auch nicht angewandt.

Grüsse
Uli

mjustin 14. Okt 2012 11:24

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Zitat:

Zitat von UliBru (Beitrag 1186872)
Wenn das Programm läuft und die App gestartet wird, dann sollen sich die beiden von ganz alleine finden (vordefinierter Port?).

Kann ich Delphi dazu verwenden? Schnittstelle von Bonjour?

Klar, es handelt sich um IP Multicast. Das kann mit UDP über die Internet Direct (Indy) Komponenten auch in Delphi serverseitig - also in der zu steuernden Delphi Anwendung - integriert werden. IOS und Android Applicationen - aber natürlich auch andere Delphi Anwendungen - können auf den Broadcast hören, indem sie einen UDP Client verwenden.

Für Android sind Informationen zum Beispiel hier zu finden:

http://code.google.com/p/boxeeremote/wiki/AndroidUDP

In den UDP Paketen sendet der Server dann seine eigene Kennung ("Ich bin ein fernsteuerbares Gerät"), Status ("Bereit!") und vor allem auch seine eigene IP Adresse und evtl. auch Portnummer.

Das iOS / Android Programm erfährt so in der Regel nach Sekunden wo sich der Server befindet. Es können auch mehrere Server im Netz sein, dann sollte das Gerät entsprechend eine Auswahl treffen oder dem Benutzer die Wahl überlassen.

Wie man einen Delphi UDP Client für IP Multicast verwendet habe ich hier am Beispiel des ActiveMQ Brokers beschrieben:

Discover ActiveMQ brokers with Delphi and IP Multicast

hathor 17. Okt 2012 13:56

AW: Fernsteuerung eines Delphi-Programms per iPad oder Android-Phone
 
Hier habe ich eine kleine Erweiterung für den Dock-Adapter:

http://www.amazon.de/dp/B0095E2S4I/?...l_dJ9fDfgKm4Pg

Zitat (schlechte Übersetzung):
Der Universal-Fernbedienung für iPhone, iPod touch und iPad.

Der FLPR Universal-Fernbedienung (URC) wandelt Ihr iPhone, iPod touch und iPad in eine Fernbedienung, die Verantwortung für die elektronischen Geräte in Ihrem Hause zu nehmen.

Der FLPR programmierbare Universal-Fernbedienung (URC) können Sie durch die Kanäle blättern, schalten Sie den Surround-Sound-System, drehen Sie die Lautstärke, schalten Sie das Licht und die Jalousien zu schließen und es ersetzt die unübersichtlichen Durcheinander von Fernbedienungen auf dem Couchtisch. Ein einfach zu installieren und einfach zu bedienen, ist ein Muss FLPR Tech-Produkt haben.

VIDEO


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz