Beiträge von TRiViUM

    Achso, ok.
    Ja, hatte ich auch schon vorher rausgelöscht :D

    Ja, habe vor mir meine eigene anzeige bauen.
    Ich habe zwar keine PHP-Vorkenntnisse, hoffe aber auf meine schnelle Auffassungsgabe und zahlreiche Tutorials.

    Mal am Rande gefragt:
    Ich möchte mir über das Web-Interface 2 Werte von der Solarzelle anzeigen lassen, Spannung und der Strom.
    Aus der Digital/ Elektrotechnik kennt man wahrscheinlich die kleinen 7-Segment-Anzeigen.
    So eine Schriftart gibt es auch für den Computer.
    Sowas hättei ich auch gern in meiner Webseite.

    Um das Dokument dann auch mit der Schriftart angezeigt zu bekommen, muss diese dann auf dem aufrufendem PC installiert sein?

    So ein Webinterface wäre ganz cool: Klick (nur ohne die Elemente rechts neben den Zahlen)

    Das, was du mit der contentBox gemacht hast, finde ich schon recht cool.
    Nur da muss ich mir noch was einfallen lassen (bzgl. Farben etc.).


    Es ist ein "absichtlicher Fehler" eingebaut

    hat sich schon auf die Code-Snippets von Dir bezogen.
    Dachte ich mir schon, nur wollte Dich nicht gleich beschuldigen :D

    Also der Fehler lag daran, dass die Funktion "Robot_SystemStatusUpdate" im Javascript aufgerufen wird, obwohl die Funktion mit "SystemStatusUpdate" aufgerufen werden muss. :^^:
    Was aber jetzt auch so aussieht wie bei Dir ist, dass bei "Ping" ein Fragezeichen in einem schwarzen Karo steht.
    Formatierungsfehler oder auch noch was im Script zu ändern?


    Ach genau da fällt mir grad just noch eine Möglichkeit ein, unabhängig von WebSocket, quasi sowas wie bootsmann meinte nur ohne bottle, die ich seinerzeit beim 'Windows RPI Gadget' genutzt hab:

    [Win 7/8] Pi Temperaturanzeige auf dem Desktop

    Wie kann ich es denn in deinem 3-Teiler (php, Javascript & Python) schaffen, dass er mir z.b. die CPU-Auslastung immer anzeigt, also das ganze automatisiert ablaufen lässt?
    Denn bei mir verbindet sich lediglich der Client mit dem Server, aber ich sehe keine CPU-Auslastung bzw RAM-Benutzung.

    ~Greez


    Naja es muss schon anders herum ablaufen: Die Webseite fragt die Daten vom Programm ab. Anders wird das IMHO nichts, da die Webseite ja letztlich beim Client "läuft", also JavaScript läuft Clientseitig und PHP Serverseitig wovon der Client nichts sieht/merkt

    Bitte korrigiere den von Dir geposteten Code (websocket.py), denn ich bekam auf dem Server immer die Meldung "WARNING:tornado.access:403 GET / (192.168.137.1) 13.28ms" und konnte keine Verbindung aufbauen...

    Und zwar muss in die Klasse "WebSocketHandler" folgende Zeilen ergänzt werden:

    Code
    def check_origin(self, origin):
    return True

    Und in Ganzen:

    Desweiteren bleiben alle Anzeigen leer (LoadAVG, RAM, Uptime), wo ich momentan am rätseln bin, wie ich diese Werte dauernd aktualisiert bekomme, und nicht über nen Button...


    Naja das kommt darauf an wie Du es gerne haben möchtest...

    Wenn du kaum Ahnung aber Zeitdruck hast, wird es vermutlich der einfachste aber zugleich schlechteste Weg (1.). Schlecht deshalb weil a) dadurch die SD unnötig belaste und b) das Logfile zugemüllt wird was ebenfalls a) zur Folge hat.
    Und welchen ich bevorzuge nannte ich bereits in 2 Beiträgen :D
    Es gibt vielleicht noch 1-2 andere Möglichkeiten, aber mir ist keine in reinem/purem HTML bekannt, nur mit mind. JavaScript.

    Das mit der Zeit ist die eine Sache, aber ich möchte es dann doch schon gern gescheit machen :p
    Ich werde mir deine 3 Dateien mal genauer anschauen.
    Ich brauche ja nur den Teil, in dem der Server Daten zur Webseite schickt.
    Die Webseite muss ja nix zurückschicken/ antworten. Sie hat nur die reine Anzeige-Funktion.

    Danke Dir schonmal für die Snippets :thumbs1:

    Danke schonmal für die zahlreichen Antworten von Euch! :bravo2:

    Ich möchte quasi als Test folgendes Programm in Python schreiben:
    Ein Zähler, beginnend bei 0, addiert (z.B. jede Sekunde) den Wert 1 dazu.
    Dieses Programm braucht dann ja noch einen Websocket-Server.

    Dazu möchte ich eine HTML-Webseite schreiben, die mir einfach nur den aktuellen Wert des Zählers im Programm anzeigt.

    Kommen wir mal zu dem Punkt "Echtzeit".
    Mit Echtzeit meine ich, wenn sich der Wert im Programm ändert, dass sich auch der Wert auf der HTML-Webseite ändern soll.
    Und das, ohne den Browser aktualisieren zu müssen (-> Vorteil von Websockets)

    Man kann ja mit reinem HTML auch Websocket-Clients programmieren, was ich in meinem Fall quasi bräuchte.
    Und das Gegenstück (also der Websocket-Server) auf dem Raspberry Pi mit dem Programm, welches den Wert an den Websocket übergibt, in Python.

    Mir fehlen zwar Kenntnisse in Javascript & Python, die ich mir allerdings versuche anzueignen.
    Ich bin eher der "Learning by Doing-Typ", weshalb mir ein nackter Python-Code mit den oben genannten Aufgaben + der nackte HTML-Code zur Visualisierung sehr helfen würde.
    Wichtig für mich, dass nix außer diese o.g. Aufgabe in den Codes stecken, da ich alles so am besten nachvollziehen kann.


    Nachdem ich diese Codes verstanden habe, soll das ganze von mir für ein Techniker-Abschlussprojekt in einen Solar-Tracker (Sonnenfolger) umgeschrieben werden.
    Die zu visualisierenden Werte sind dann die Spannung und der Strom der Solarzelle.
    Das Programm dazu ist quasi schon fertig, jedoch soll jetzt eben noch der Punkt mit der Visualisierung via Webseite eingebaut werden.

    :)

    Hallo liebe Community,

    ich möchte gern Daten aus meinem Programm in Echtzeit über eine Web-Oberfläche angezeigt bekommen.
    Wichtig hierbei war mir, den Browser nicht zu aktualisieren, um zu sehen, was sich verändert hat, sonder wie gesagt in Echtzeit.

    Nach längerem Suchen bin ich auf die Websockets gestoßen, die mir sowas ermöglichen können.

    Es gibt auch ein Paar Tutorials, die allerdings nicht so funktionieren, wie ich es quasi bräuchte.

    Der Verlauf der Daten sieht also folgendermaßen aus:
    Programm -> Wert -> Websocket -> Webseite

    Als Anfang habe ich mir gedacht, ich schreibe ein kleines Programm, welches ein Counter immer höher zählt.
    Jede Sekunde wird also 1 dazu addiert.
    Diesen Wert möchte ich mir nun über eine Webseite darstellen lassen.

    Ich benötige also den Websocket-Server Code (Python) und den HTML-Code (html-Webseite).


    Kann mir da jemand Tipps für geben, um eben einen bestimmten Wert über den Websocket auf eine Webseite zu bringen?

    Vielen Dank im Vorraus :)


    Lt. Titel des Threads soll es aber keine Bridge in ein WLAN sein, sondern vom WLAN zum LAN (eth).

    Stimmt, allerdings dachte ich, es sei vom Prinzip das selbe.

    Aber du hast Recht:
    Ich will vom Pi-LAN in mein vorhandenes WLAN brücken.

    EDIT:
    Ich hatte aber schon einen Thread dafür geöffnet, siehe hier.

    EDIT2: LÖSUNG
    Um dem Spuk ein Ende zu setzen, ich habe eine Lösung gefunden!
    Letztendlich hab ich mir ein altes Image geschnappt, welches den Kernel 3.6.11+ besitzt (Kernels mit neueren Versionen besitzen diese Funktion leider nicht mehr).

    In meinem Falle habe ich dieses Image (2013-02-09-wheezy-raspbian) benutzt.

    Falls kein LAN-Gerät am Pi angeschlossen ist, verbindet er sich wie gewohnt ganz normal mit dem WLAN.
    Sobald man dann ein LAN-Gerät am Pi anschließt, bekommt dieses per DHCP eine IP vom Router.

    Wichtig:
    Es darf kein apt-get update/ upgrade aufgerufen werden, da sonst der Kernel aktualisiert wird und die Bridge-Funktion im neuen Kernel deaktiviert wurde.

    Benötigt:
    sudo apt-get install bridge-utils

    Meine Interfaces-Datei:

    Ich komme leider erst wieder heute Abend dazu, Deine Ratschläge zu testen.
    Habe mir die Punkte mal angeschaut,

    Was ich noch erwähnen wollte, Du hattest ja mal geschrieben, dass Dir der Befehl "-b br0" in der Interfaces-Datei mit entsprechendem Syntax nicht bekannt wäre.

    Ich habe allerdings folgendes gefunden: "wpa-bridge br0" (siehe hier)
    Wie gesagt, nur noch nicht probiert.

    Schade, dass Du es mit WLAN nicht testen kannst...
    kann wohl noch ein paar Tage dauern, bis wir hier zu dem gewollten Ergebnis kommen.

    Nochmal zur IP-Vergabe:
    Wenn ich den Raspi z.B. einem Bekannten gebe, (was vermutlich auch passieren wird,) der ein anderes Netz hat, funktioniert es ohne neue Konfiguration nicht. Daher bekomme ich die IP-Vergabe per DHCP nicht aus dem Kopf.
    Da muss es doch eine Möglichkeit zu geben, wie es auch mit DHCP funktioniert...

    Jetzt hab ich einen Neustart durchgeführt, und er bekommt die Verbindung wieder nicht aufgebaut :-/
    Es ist mir momentan noch ein Rätsel...

    zum Syslog, kann ihn erst posten, wenn ich wieder ne Verbindung habe. Abtippen tu' ich das nicht :P

    Edit:
    Ich habe über die GUI die Wlan-Verbindung getrennt (war ja eigentlich auch nicht verbunden), und wieder auf "connect" geklickt.
    Hat zwar etwas gedauert, aber damit funktioniert es.

    Syslog:


    Danke Dir für Deine Hilfe!

    Für mich geht's morgen weiter, wünsche Dir ne angenehme Nacht :)

    na dann hätten wir es ja quasi geschafft :angel:
    Macht jeder Router das [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]rekeying ?[/font]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]hier nochmal ein Auszug:[/font]
    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]

    Code
    tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes[/font][/color]20:51:02.534695  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12720:51:02.534695  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12720:51:02.538205 Out 80:1f:02:a6:ab:1b ethertype EAPOL (0x888e), length 115: EAPOL key (3) v1, len 9521:01:02.632254  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12721:01:02.632254  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12721:01:02.639629 Out 80:1f:02:a6:ab:1b ethertype EAPOL (0x888e), length 115: EAPOL key (3) v1, len 9521:11:02.678523  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12721:11:02.678523  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 12721:11:02.682082 Out 80:1f:02:a6:ab:1b ethertype EAPOL (0x888e), length 115: EAPOL key (3) v1, len 95[color=#333333][font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]

    [/font][/color]

    [font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Trotzdem raffe ich nicht, wieso es mit DHCP nicht löppt.[/font]

    Edit:
    (ipv6 noch aktiviert)

    Code
    tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
    20:51:02.534695  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 127
    20:51:02.534695  In c0:25:06:4c:32:b0 ethertype EAPOL (0x888e), length 147: EAPOL key (3) v2, len 127
    20:51:02.538205 Out 80:1f:02:a6:ab:1b ethertype EAPOL (0x888e), length 115: EAPOL key (3) v1, len 95

    ip a:

    ip r:

    Code
    default via 192.168.0.254 dev br0
    192.168.0.0/24 dev br0  proto kernel  scope link  src 192.168.0.197

    brctl showmacs br0:

    Code
    port no mac addr                is local?       ageing timer
      2     00:1a:22:01:61:b6       no               114.51
     2     00:1d:ec:05:cc:ac       no                61.88
     2     00:1d:ec:09:a5:cf       no               130.89
     2     80:1f:02:a6:ab:1b       yes                0.00
     1     b8:27:eb:47:5c:6f       yes                0.00
     1     bc:5f:f4:3a:46:b2       no                 0.01
     2     c0:25:06:4c:32:aa       no                 9.36

    iwconfig:

    Entschuldige, der MAC-Filter war doch nicht eingeschaltet, hatte mich versehen.
    Habe es jetzt auch noch mal mit statischen IP-Adressen außerhalb der DHCP-Range probiert, anscheinend haben wir jetzt mehr Informationen.

    Es funktioniert zwar immer noch nicht, allerdings bekomme ich jetzt EAPOL-Infos:

    EDIT:
    jetzt läuft es komischerweise, nach ca 2 min. ohne etwas dafür zu tun....
    mal schauen wie lange.

    Muss ich die Adressen statisch zuweisen?

    Habe wohl vergessen, dass das interface wlan0 down war.
    Ich habe die interfaces-Datei geändert, und dann per sudo service networking restart die Konfigurationen neu laden lassen.
    Da das Interface wlan0 aber down war, musste ich es aber noch manuell starten, mit sudo ifup wlan0.

    Zu der Zeit hatte ich gar keinen Treiber angegeben, weshalb er automatisch 'wext' benutzt.
    Dann hatte der Stick auch sofort geblinkt, und blinkt auch, bei DHCP-Anfragen.
    Nur die Verbindung bekommt er nicht aufgebaut...

    habe 'auto eth0' und 'auto wlan0' korrekt eingebaut.
    Er versucht zuerst über eth0 eine DHCP-IP zu bekommen, was nicht klappt.

    Dann über wlan0, was ebenfalls nicht klappt.
    Jetzt steht bei Verwendung des 'wext'-Treibers folgendes:

    Code
    WEXT: RFKILL status not available
    [...]
    WEXT: Failed to clear BSSID selection on disconnect
    wlan0: Receiving packets from bridge interface 'br0'
    I2_packet_init: ioctl[SIOCGOFINDEX]: No such device
    wlan0: Failed to open I2_packet connection for the bridge interface 'br0'
    Failed to add interface wlan0
    [...]
    Driver did not support SIOCSIWEMDCODEEXT


    Die für die interfaces-Datei erforderliche Syntax für die Option "-b" ist z. Zt. noch nicht bekannt.

    OK, dann hab ich das jetzt auch verstanden.


    Für Dich jetzt zur Info, meine Interfaces-Datei:


    Und meine wpa_supplicant.conf:

    Ich bekomme folgende Meldung:

    Code
    nl80211: 'nl80211' generic netlink not found
    Failed to initialize driver 'nl80211'
    wlan0: Unsupported driver 'nl80211'
    Failed to add interface wlan0
    wlan0: Cancelling scan request
    wlan0: Cancelling authentication timeout
    Failed to bring up wlan0

    habe auch schon den Treiber "wext" probiert, allerdings ebenfalls vergebens...

    oder habe ich etwas an einer falschen Stelle eingefügt?