Touchscreen "Lichtschalter"

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

    External Content gist.github.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    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

  • Danke für das Lob und deine Unterstützung! :)
    Ich werde den ersten Beitrag immer mit neuen Updates versorgen, sobald ich was neues gebastelt hab.


    Vielleicht stößt ja noch der eine oder andere auf diesen Thread, der Rat weiß :)

  • 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:


    [Blocked Image: http://fs2.directupload.net/images/150414/i4kw4af7.png]


    Internet aus:


    [Blocked Image: http://fs1.directupload.net/images/150414/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ß


  • 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


    [Blocked Image: http://fs1.directupload.net/images/150415/92kjcpom.png]


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


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


    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    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:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Grüße!

  • 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...