Gelöst: Raspberry Pi nach Shutdown einschalten wenn TV eingeschaltet wird

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)

  • ja der Optokoppler hat noch einen 220Ohm Vorwiderstand erhalten.
    Wollte nicht extra einen neuen schaltplan uploaden.

    Kein Problem. Ich war mal so frei und habe das in meine Zeichnung übernommen. Die Platine muss ich noch ein klein wenig optimieren. Aber so wie es aussieht, wird sie nicht größer werden, sondern beidseitig bestückt. Dann könnte man Deine Lösung optional mit auflöten. Könnte man den 10K Pullup, den Du eingezeichnet hast, nicht weg lassen, wenn man den internen Pullup aktiviert?

    edit: Platinenentwurf hinzu gefügt

  • Gelöst: Raspberry Pi nach Shutdown einschalten wenn TV eingeschaltet wird? Schau mal ob du hier fündig wirst!

  • Könnte man den 10K Pullup, den Du eingezeichnet hast, nicht weg lassen, wenn man den internen Pullup aktiviert?

    Wenn man die Möglichkeit hat und ein Widerstand wird in jedem Fall benötigt, ist es besser dies Hardwareseitig zu machen, also ein eigenen Widerstand anzubringen, da man sonst den via Software auch mal vergessen könnte. Außerdem kommt es auf den jeweiligen GPIO an wie hoch der Wert des Internen ist, weil nicht alle internen Widerstände identisch sind.


    //EDIT: Es gäbe noch eine Möglichkeit bezüglich des Codes und zwar nicht add_event_detect zu verwenden sondern wait_for_edge. Der Clou ist, dass das Script an dieser Stelle solange pausiert/blockiert bis ein Interrupt ausgelöst wird und dann erst die Zeilen danach ausgeführt werden.
    Auch kann man den Code problemlos für sowohl python2 als auch python3 verwenden. Durch Importierung von "print_function" gewährleistet man die Kompatibilität von print zwischen python2 und python3, denn in python2 ist das ein Statement in python3 aber eine Funktion, also nicht wirklich kompatibel.
    Allerdings sollte man nicht "os.system" nutzen sondern besser "subprocess.call", das Module importierst du auch schon, nutzt es aber nicht? :fies:
    [code=php]
    #!/usr/bin/python

    from __future__ import print_function
    import RPi.GPIO as GPIO
    from subprocess import call

    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
    GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    GPIO.wait_for_edge(25, GPIO.RISING)
    print("shutting down!")
    call("sudo shutdown -h now", shell=True)
    [/php]

    Man könnte dies auch noch erweitern sodass man den GPIO-Pin dem Script beim ausführen optional als Parameter übergibt, so wäre es flexibler ohne das Script bearbeiten zu müssen.
    [code=php]
    #!/usr/bin/python

    from __future__ import print_function
    import RPi.GPIO as GPIO
    from subprocess import call
    import sys

    if sys.argv[1]:
    gpioPin = int(sys.argv[1])
    else:
    gpioPin = 25

    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
    GPIO.setup(gpioPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    GPIO.wait_for_edge(gpioPin, GPIO.RISING)
    print("shutting down!")
    call("sudo shutdown -h now", shell=True)
    [/php]

  • Da bin ich ganz bei euch und praktiziere das im Allgemeinen auch so, dass ich den Pullup lieber in Hardware als in Software umsetze. Aber in diesem Fall würde es bedeuten, dass ich erst noch die 3,3V vom RasPi zur Platine ziehen müsste. Das wäre noch ein Kabel mehr. Je mehr Kabel desto mehr Fehlerquellen für einen unbedarften Anwender. Schlimmstenfalls wird ein derber Kurzschluss produziert. Ob die Schaltug auf dem RasPi, die die 3,3V bereit stellt, dagegen gesichert ist, entzieht sich meiner Kenntnis. Worst Case würde diese gehimmelt.

    Wäre es denn möglich, dass Du Deinen Code um den Pullup ergänzt? Dann könnte der interessierte Anwender ihn 1:1 übernehmen. Passieren kann dann nichts. Schlimmstenfalls läuft es nicht wunschgemäß.

  • Ich werde mir das heute Abend nochmal anschauen. und mich melden wenn ich was weiß wegen dem Pullup.

    Edith:
    Ich will mich schonmal entschuldigen, ich habe dieses Wochenende kaum Zeit mich darum zu kümmern. Mit dem Pullup weglassen bin ich noch auf keine Lösung gekommen,
    allerdings versuche ich auch gerade die ganze Schaltung zu entkoppeln, ich hätte lieber alles hinter dem Optokoppler was an den PI geht. Wenn ich da Erfolge vermelden kann melde ich mich wieder.

  • so hab nun auch den stecker im betrieb. meine frage, ich habe mir ambilight gebastelt. ist es möglich mit dem stecker das vor dem herunterfahren des pis sich das ambilight ausschaltet? bzw die LEDs schwarz werden?

    oder vllt gibt es die möglichkeit das netzteil (vom Ambilight) mit einer schaltung mit abzuschalten? (wäre mir persönlich lieber)

    Einmal editiert, zuletzt von Mertens1991 (26. November 2015 um 00:27)

  • Bevor Du an der Strippe zappelst, mach ich das. Wenn Du Dir aber 230V zutraust, dann machst Du es zum Beispiel so:

    Alte Funksteckdose ausschlachten, ein geeignetes 5V Relais mit Antiparalleldiode auf eine Lochrasterplatine setzen und an die Schaltseite eine passende Schraubklemme anlöten, in die dann das Kabel der Phase gesteckt wird. Aderendhülsen verwenden!!

    Ein Kabel an das Relais löten, an dessen Ende ein USB-Stecker angebracht wird. Zur Zugentlastung einfach innerhalb des Gehäuses einen Knoten ins Kabel machen. Alternativ einfach ein vorhandenes USB-Kabel passend ablängen. Wenn nun der TV eingeschaltet wird, wird die USB-Buchse mit 5V versorgt, wodurch das Relais anzieht und die Phase durchschaltet. Wird der TV abgestellt, gibt es keine Spannung mehr auf der USB-Buchse, wodurch das Relais abfällt.

    Dass die umgebaute Funksteckdose in die Steckdose gesteckt wird und in das Gehäuse dann das 230V Netzteil für das Ambilight kommt, muss ich nicht extra erwähnen, oder?

  • zutrauen schon wenn ich einen schaltplan habe :D

    gerade gefunden:

    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.

    sollte doch das selbe sein und man kann später alles in einem kasten verbauen

    Einmal editiert, zuletzt von Mertens1991 (26. November 2015 um 11:07)

  • Viel zu kompliziert. Wozu willst Du da noch einen Arduino einsetzen?

    Deine Vorgabe war: "Wenn TV an, dann Strom für Ambilight an. Wenn TV aus, dann Strom für Ambilight aus"
    Das ist mit meinem Vorschlag, eine alte Funksteckdose auszuschlachten und ein Relais dort zu verbauen, gelöst. Der Vorteil meines Vorschlages ist, dass es bedienungssicher in einem geeigneten Gehäuse untergebracht wäre. So besteht keine Gefahr für den Bediener.

    Wenn Du aber alles zusammen in ein großes Gehäuse verbauen willst, dann ist die Vorgehensweise identisch, mit dem Unterschied, dass Du kein Funksteckdosengehäuse benötigst.

  • Du kannst natürlich auch den RasPi dafür nehmen. Der muss dann per Script den GPIO, an dem das Relais hängt, beim Hochfahren einschalten und beim Shutdown abschalten. Aber der GPIO liefert nur 3,3V und nicht 5V. Auch sollte (wie ich kürzlich lernte) der GPIO nicht mit viel mehr als 2mA belastet werden.

    Daher wäre das Problem mit dem oben ausführlich beschriebenen Aufbau, der an Hardware bis auf die Strippen und die Platine nur ein Relais und eine Diode enthält, am einfachsten und schnellsten zu lösen.


  • Du kannst natürlich auch den RasPi dafür nehmen. Der muss dann per Script den GPIO, an dem das Relais hängt, beim Hochfahren einschalten und beim Shutdown abschalten. Aber der GPIO liefert nur 3,3V und nicht 5V. Auch sollte (wie ich kürzlich lernte) der GPIO nicht mit viel mehr als 2mA belastet werden.

    Daher wäre das Problem mit dem oben ausführlich beschriebenen Aufbau, der an Hardware bis auf die Strippen und die Platine nur ein Relais und eine Diode enthält, am einfachsten und schnellsten zu lösen.

    wie gesagt, ichs elber habe keine anhung wie ich das verkabeln/löten muss. mit schaltplan wäre das denke ich kein problem für mich :)

  • Ich kann bei der übersichtlichen "Schaltung" nicht verstehen, was Du für einen Plan benötigst.
    So (den unteren Teil wegdenken) wird die Diode parallel zum Relais angeschlossen: https://www.mikrocontroller.net/wikifiles/4/4f/Relais_npn.png
    An die DC-Seite des Relais wird das USB-Kabel gelötet. Auf der AC-Seite wird die Phase per Klemme befestigt. Das ist im Grunde schon alles.

Jetzt mitmachen!

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