Danke für die Antworten

Zu Ceos: warum ist es denn dann keine Websteuerung über Browser mehr? Wenn ich im Browser die Webseite des Pis eingebe und dann das Javascript( welches die Tcp Verbindung mit dem Server beginnt) mit einem Button starte, dann steuere ich den Roboter doch über den Browser, oder funktioniert das so nicht? Browser(TCP/Javascript) <=> Server(TCP/Python)

Zum Thema HTML, PHP und auch GPIO:
So wollte ich das auch erst lösen. Doch habe ich herausgefunden, dass PHP nur serverseitig ausgeführt wird. Und das schafft gleich mehrere Probleme, die ich für meine Websteuerung nicht haben möchte.

1. Muss bei jeder Interaktion (Button click) die Webseite komplett neu geladen werden. Das habe ich früher schon mal ausprobiert. Wenn man nur einen festen Aufbau wie eine Lampe hat ist das nicht so schlimm, da diese eh nicht häufig Steuerimpulse bekommt... Da der Robi aber im WLAN ist und recht zügig Befehle empfangen muss funktioniert das nicht so toll wenn ständig die Seite neu geladen wird...

2. Ist keine gute bidirektionale Verbindung möglich, da bei z.B. Button click man nur per PHP entweder ein Pythonscript starten könnte, was dann die Ausgabe von Steuerimpulsen erlaubt, oder man direkt per PHP wie piggituX gesagt hat die GPIOs ansteuern könnte.

3. Möchte ich nicht die GPIOs normal nutzen, sodern möchte z.B. über I2C Motoren steuern oder Kommunikation mit anderen Dingen durchführen. Dies klappt aber nur, wenn das Script in einer Schleife laufen kann und nicht für jeden Vorgang neu gestartet werden muss...

4. Über PHP lassen sich von einem Pythonscript keine Informationen an die Webseite schicken... (jedenfalls wenn die Bedingung 3. erfüllt sein soll)


Das was shedepe beschreibt, hört sich doch schon mal gut an. Werde ich auf jeden Fall drüber nachdenken. Momentan habe ich das nämlich noch nicht durchblickt... Einen Nachteil sehe ich dabei aber. Es würde nicht mehr so einfach sein mehrere Webseiten mit unterschiedlichen Dingen zu basteln. Die Webseiten brauchen ja auch noch CSS und so...
Ich möchte erst mal noch ein bisschen probieren, ob ich die TCP Lösung hinbekomme, wenn nicht, dann komme ich auf diesen Ansatz zurück.

Der Tcp Ansatz müsste mir doch eigentlich noch einen Vorteil bringen...Theoretisch kann man doch auch die Serverseite mit dem Python Code auf einen anderen PC auslagern??

Probiere gerade die Lösung aus: http://stackoverflow.com/questions/1...-communication

Ich verwende gerade die Lösung Html5 socket von Antwort 1 aus dem Link für mein Javascript im Browser und für das Pythonscript(auf meinem PC, nicht auf PI!!):
Code:
import socketserver

class ChatRequestHandler(socketserver.BaseRequestHandler):
    def handle(self):
        addr = self.client_address[0]
        print("[{}] Verbindung hergestellt".format(addr))

        while True:
            s = self.request.recv(1024)
            if s:
                print("[{}] {}".format(addr, s.decode()))
            else:
                print("[{}] Verbindung geschlossen".format(addr))
                break

server = socketserver.TCPServer(("", 50000), ChatRequestHandler)
server.serve_forever()
Wenn ich das Javascript von Microsoft Edge aus ausführe passiert nichts, wenn ich die Seite aber von Chrome aus verwende gibt mir mein Pythonscript das aus:

Klicke auf die Grafik für eine größere Ansicht

Name:	socket erfolg2bearbeitet.png
Hits:	2
Größe:	31,6 KB
ID:	32518

Leider schaffe ich es noch nicht Nachrichten zu senden oder zu empfangen...
Wenigstens verbindet sich da was. Darauf lässt sich ja aufbauen...
Ich verstehe nur noch nicht, wie das mit dem Handshake dings weiter unten im Link funktioniert??