Touchscreen "Lichtschalter"

  • Habe hier einen anderen Code gefunden, vielleicht hilft das weiter.

    Externer Inhalt gist.github.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Gar nicht so einfach, aber es fängt an mich zu interessieren.

    Eine andere Frage: Darf ich fragen, wie genau du das mit den Umlauten gemacht hast.
    Suche das schon seit langer Zeit als i-tüpfelchen für ein Programm.

    Gruß

  • In dem Beispiel scheint er sich die Google-Website mit den Wetterdaten zu öffnen und sich dann den benötigten kram rauszuholen...

    Ich würde aber gerne bei Pywapi und dem Yahoo-Wetter bleiben :D

    Ich versteh auch einfach nicht, warum er trotz des try/except-Blocks immernoch den KeyError raushaut :(
    Irgendwo muss da einfach ein Fehler drinne stecken...


    Eine andere Frage: Darf ich fragen, wie genau du das mit den Umlauten gemacht hast.
    Suche das schon seit langer Zeit als i-tüpfelchen für ein Programm.

    Gruß

    Ja, kann ich gerne machen :D
    Ich hab in verschieden Foren gelesen, dass wenn man einfach

    Code
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-


    am Anfang des Skriptes schreibt, einfach mit Umlauten in Strings arbeiten kann.
    Hat bei mir natürlich nicht geklappt :D
    Nach einigen Stunden Suche, hab ich eine (für mich) funktionierende und akzeptable Lösung gefunden.
    Ich definiere im Skript einfach die Sonderzeichen:

    Code
    umlauta1 = u"ä"
    umlauta2 = u"Ä"
    umlautu1 = u"ü"
    umlautu2 = u"Ü"
    umlauto1 = u"ö"
    umlauto2 = u"Ö"
    
    
    degree1 = u"°"

    Danach muss man sich die Strings etwas zusammenbasteln, aber immerhin funktionierts :D
    so sehen einige Beispiel-Strings mit Umlauten oder Sonderzeichen in meinem Skript aus:

    Code
    wetterdegrees = ("Nicht Verf" + umlautu1 + "gbar")
    toplabel = font4.render ("K"+umlautu1+"che", 20, white)
    wetterlabel1 = font1.render ("Frierende N"+umlauta1+"sse", 8, black)
    wetterlabel1 = font1.render (umlautu2+"berwiegend bew"+umlauto1+"lkt", 8, black)
    wetterlabel2 = font1.render ("Temperatur: " + wetterdegrees + " " + degree1 + "C", 8, black)
  • Besten Dank!
    Schade das ich dir nicht helfen konnte. Ansonsten finde ich dein
    Prog echt klasse. Das Design ist schon sehr professionell.
    Werde das weiter beobachten, aber vielleicht finde ich ja noch was.

    Bis dann
    Jo

  • Einen Versuch noch:

    Das erte 'try' bezieht sich auf das ping, das zweite auf wetterdeg.......
    Man kann except auch kombinieren:

    Code
    except KeyError, NameError

    Gruß

  • HAMMER!!!!

    Es Funktioniert! :thumbs1: :danke_ATDE:

    Ich musste zwar noch einen Haufen Sachen in meinem Skript anpassen, aber es läuft mit deiner Lösung! :)

    Internet an:

    i4kw4af7.png

    Internet aus:

    yvtrb8do.png

    Sieht natürlich noch nicht schön aus, aber da hab ich mich auch noch nicht drum gekümmert :D

    Nochmal ein fettes Dankeschön!! :danke_ATDE: :danke_ATDE: :danke_ATDE:

  • Hi execute1337
    Freut mich, dass es funktioniert :D
    Was ich allerdings nicht verstehe, ist, dass das erste except subprocess.... nicht anschlägt
    wenn die Internetverbindung gekappt ist. Logischerweise sollte dies so sein. Und des weiteren sogar, wenn zwar Internet verfügbar ist, aber aus irgendeinem Grund der yahoo Server down ist. Was selten vorkommt, aber vorkommen kann. Dann sollte es natürlich auch ein 'Nicht Verfügbar' geben.
    Werde daran noch arbeiten. Eventuell kann man die ganze ping-Geschichte komplett weglassen. Teste mal was dein Prog sagt, wenn du meinetwegen yahoo.xy anpingst.

    Eine andere Frage hätte ich noch betreffend deiner echt wunderschönen und zeitgemäßen Icons. Darf ich dir deswegen eine PN senden?

    Gruß


  • Hi execute1337
    Freut mich, dass es funktioniert :D
    Was ich allerdings nicht verstehe, ist, dass das erste except subprocess.... nicht anschlägt
    wenn die Internetverbindung gekappt ist. Logischerweise sollte dies so sein. Und des weiteren sogar, wenn zwar Internet verfügbar ist, aber aus irgendeinem Grund der yahoo Server down ist. Was selten vorkommt, aber vorkommen kann. Dann sollte es natürlich auch ein 'Nicht Verfügbar' geben.
    Werde daran noch arbeiten. Eventuell kann man die ganze ping-Geschichte komplett weglassen. Teste mal was dein Prog sagt, wenn du meinetwegen yahoo.xy anpingst.

    Daran hab ich schon gedacht :D
    Als Website, die du in deinem Beispiel genannt hast, verwendest du google.de

    Code
    website = "google.de"


    Ob Google erreichbar ist oder nicht, ist ja relativ uninteressant für mein Skript.
    Demnach hab ich das natürlich auf die Yahoo Wetter-Seite geändert, wo Pywapi sich anscheinend die Wetterdaten herholt. Also:

    Code
    website = "weather.yahoo.com"


    Eine andere Frage hätte ich noch betreffend deiner echt wunderschönen und zeitgemäßen Icons. Darf ich dir deswegen eine PN senden?

    Gruß

    Klar doch :)

  • Da Ich den ersten Post nicht mehr bearbeiten kann, kommen die Updates jetzt hinten ran :D

    ###########Update3###########

    Wettervorhersage hinzugefügt

    92kjcpom.png

    ###########Update4###########

    Kleines fade-in Intro beim starten des Skriptes hinzugefügt.
    In dem Video klicke ich ein wenig durch die Menüs :)

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Das Skript mag sehr träge wirken, das liegt aber an meiner virtuellen LinuxMint Distro.
    Auf dem RPi läuft alles flüssig :)

    ###########Update5###########

    Soooooo... Da ich nun meinen RPi wieder in den Finger hatte, konnte ich ein wenig weiter machen.
    Das erste Problem hat sich inzwischen auch erledigt. Das schalten per 433MHz über einen anderen GPIO funktioniert jetzt einwandfrei. Ich hatte mal eine LED an den Pin angeschlossen, um zu sehen ob er überhaupt sendet. Und siehe da: Er tut es! Also schien es ein Problem mit den timings zu geben. Ich fand hier einen Thread, wo darauf hingewiesen wurde, dass beim Pi2 sich die timings ändern, wenn der DeviceTree aktiviert ist.
    Also:

    Code
    sudo raspi-config


    und den DeviceTree deaktiviert.
    Da kam richtig Freude auf, als die Steckdose wieder geklickt hat :)

    Weiterhin hab ich das Intro und alles was Alpha genutzt hat wieder rausgenommen, da der RPi ein wenig überfordert schien (wahrscheinlich ein Programmierfehler meinerseits).
    Danach hat sich die Performance verbessert: statt 7 Sekunden, aktualisert er sich alle 4 Sekunden. Das reicht natürlich nicht aus.
    Als weiteren Übeltäter hab ich die Wetterdaten ausfindig machen können.
    Also mal ohne getestet: Es läuft flüssig (wahrscheinlich ebenfalls ein Fehler meinerseits).

    Auf Intro und Alpha kann ich verzichten. Bei den Wetterdaten würde ich aber eigentlich gerne bleiben. Nun weiß ich noch nicht, ob ich die einfach verwerfe (was wirklich schade um die Arbeit der Unterstützer in diesem Forum und die Arbeit meinerseits wäre), oder mich eventuell doch nochmal drum kümmer.

    Hier nochmal ein kleines Video vom aktuellem Stand:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Grüße!

    Einmal editiert, zuletzt von execute1337 (24. April 2015 um 09:25)

  • Neuer Tag, neues Problem...

    Ich versuche momentan die "Schnellschaltfunktion" zu integrieren.
    Das bedeutet:
    Wenn das Touchdisplay länger als 1 Sekunde berührt wird, soll sich das Licht im Zimmer anschalten (Das Deckenlicht im jeweiligem Raum, der im Skript gerade ausgewählt ist).
    Wenn das Touchdisplay weniger als eine Sekunde berührt wird, soll das Programm die jeweilige Aktion ausführen.
    Unter einer Sekunde sollte nur sein, wenn man wirklich einen Menüpunkt oder einen bestimmten Aktor schalten möchte.

    Die Sekunde ist dabei erstmal nur ein Beispiel und wird nach Erfahrungswerten angepasstl

    Grüße...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!