boritian Geschrieben January 29, 2015 at 01:44 Share Geschrieben January 29, 2015 at 01:44 Hallo Zusammen, meine Anfängerfrage ist, wie setze ich den am besten eine Kommunikation zwischen RED-Brick und einer Android App um (beide sind in einem Netz)? Ich möchte z.B. Steuerbefehle von der App nicht direkt an einen Servo-Brick senden, sondern erst an den RED-Brick, der dann den Servo-Brick über sein Programm steuert. Ähnliches habe ich umgekehrt vor. Der RED-Brick soll Werte von einem Bricklet an die App senden. Also die App liest (auch wenn sie es könnte) nicht direkt ein Bricklet aus. Also simple Übertragung von wenigen Daten. Z.B. in einem XML-File oder über direktes setzen/lesen von Public Variablen im RED-Brick oder eine Message Queue... . Über Tips wie ihr so etwas umsetzen würdet und was überhaupt machbar ist mit dem RED-Brick, wäre ich sehr dankbar. Besten Gruß, Boritian Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
remotecontrol Geschrieben January 29, 2015 at 07:18 Share Geschrieben January 29, 2015 at 07:18 Ich habe sowas ähnliches mit einem einfachen Socket-Protokoll gemacht. D.h. einen Dienst auf dem "Server" der einen Socket öffnet und die App verbindet sich dagegen und dann werden die Daten ausgetauscht. Theoretisch könntest Du das auch einfacher haben, wenn Du auf dem RED einen HTTP Server hast und dann Daten per HTTP austauschst, dann ist das Protokoll vordefiniert. Hängt ein wenig von den Anforderungen ab. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
boritian Geschrieben January 29, 2015 at 15:53 Autor Share Geschrieben January 29, 2015 at 15:53 Hallo remotecontrol. Danke für die Antwort. Ein Socket hört sich gut an. Dann schaue ich mal nach Sockets in der Tinkerforge API. Da ich Fernbedienen will, ist ein Socket hervorragend, da man auch mitbekommt, wenn die Scoketverbindung abbricht. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Nic Geschrieben January 29, 2015 at 19:04 Share Geschrieben January 29, 2015 at 19:04 nach Sockets in der Tinkerforge API. Sockets werden zum Zweck der Kommunikationsschicht in der Tinkerforge API intern verwendet. Remotecontrol meinte eher an ein eigenes, selbstgeschriebens Protokoll von dir, das ebenso Sockets verwendet. am besten eine Kommunikation zwischen RED-Brick und einer Android App um Ev. würden Websockets besser passen als ein Komm.Protokoll neu aufzurollen. Mittels der Websockets die dann spätestens im Image 1.4 vom RED unterstützt werden, sollten sich sich Web-Anwendungen schreiben lassen, die im Android z.B. nur den Browser erfordern. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Monti Geschrieben January 29, 2015 at 19:17 Share Geschrieben January 29, 2015 at 19:17 Moin, ich habe bei mir etwas ähnliches laufen (Raspberry Pi, LED-Strip, Linear Poti und Android)... Auf dem Raspberry läuft ein kleiner mit Python geschriebener HTTP-Server, der die Befehle annimmt und an TinkerForge weiterleitet, auf dem Handy habe ich mit der App NetIO (http://netio.davideickhoff.de/de/), da kannst du dir einfach eine Oberfläche zusammenklicken und HTTP-Aufrufe zuweisen, die App ist aber nicht gerade günstig (4,99€ im Play Store). Code kann ich gerne Posten, wenn gewünscht... Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Nic Geschrieben January 30, 2015 at 09:21 Share Geschrieben January 30, 2015 at 09:21 Alternativer Ansatz serverseitig und ev. mit angenehmeren Sprachdialekt als Phython (Geschmackssache ) mit Node.js bzw. Javascript und ev. in Kombination mit den Websockets. Node.js ist im RED enthalten und mit http.createServer erzeugt man einen kleinen Webserver der auf Requests vom Browser lauscht. Beispiel unter http://www.sitepoint.com/creating-a-http-server-in-node-js/. Websockets werden z.B. in der Beispielanwendung von TF IOT http://www.iot-remote.com/ ganz gut gezeigt. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben January 30, 2015 at 10:33 Share Geschrieben January 30, 2015 at 10:33 Hallo, wenn es für dich OK ist, dass der Server (RED) nicht aktiv Werte an deine App sendet, sondern deine App in regelmäßigen Abständen die Werte per Request vom Server abholt, könntest du auch WebServices benutzen. Du bräuchtest dann kein eigenes Protokoll und kannst die WebServices auch "außerhalb" der App einfach nutzen. Ein WebServices-Server muss nicht extra installiert werden, wenn du ihn mit Java erstellst. Mit Node.js musst du vmtl. ein paar Module nachinstallieren, sollte aber auch kein Problem sein. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Nic Geschrieben January 30, 2015 at 12:47 Share Geschrieben January 30, 2015 at 12:47 Mit Node.js musst du vmtl. ein paar Module nachinstallieren Wenn damit Node.js auf dem RED Image 1.3 gemeint ist, stimmt das so nicht. Ich hatte eine Node.js Anwendung mit einem Http-Server in wenigen Min. auf dem RED erstellt. Ohne irgendein Package nachzuinstallieren. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben January 30, 2015 at 16:30 Share Geschrieben January 30, 2015 at 16:30 Wenn damit Node.js auf dem RED Image 1.3 gemeint ist, stimmt das so nicht. Ich hatte eine Node.js Anwendung mit einem Http-Server in wenigen Min. auf dem RED erstellt. Ohne irgendein Package nachzuinstallieren. Ich habe (noch) keinen RED und kann deshalb nicht sagen, was darauf alles installiert ist. Ein HTTP-Server ist mit Node.js natürlich ohne weitere Packages installieren zu müssen, möglich. Für WebServices reicht das aber nicht aus, wenn man "echte" WebServices nutzen möchte, d.h. nicht nur HTTP-GET- und PUT-Requests (REST), sondern auch z.B. WSDL-basierende RPCs. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.