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

  • Hallo Community.


    Mein Pi 2 läuft als Mediencenter mit Openelec an meinem LG Fernseher. Die Steuerung mit der TV Fernbedienung über CEC funktioniert prima. Die Benutzung der TV Fernbedienung zum Steuern des Pi war Pflicht - eine zusätzliche Fernbedienung wollte ich nicht am Couchtisch liegen haben. Schaltet man den TV dann mit der Fernbedienung aus, sendet er per CEC den Ausschaltbefehl an alle angeschlossenen CEC clients. Das betrifft in meinem Fall einen AV Receiver, einen BR Player und eben den Pi. Das funktioniert auch sehr zuverlässig. Der Pi fährt runter, der Energieverbrauch geht auf ca. 200 mW zurück. Damit kann ich leben. Nun kommt allerdings das Problem mit dem Aufwecken des Pi aus dem Shutdown-Zustand. Dazu gibt es bekanntlich zwei Möglichkeiten:

    • Kabel abziehen
    • Einen Resettaster anlöten und den Pi resetten.


    Jedes Mal das Kabel abziehen wollte ich nicht. OK, der TV hängt eh an einer Funksteckdose, die abends ausgeschaltet wird. Da könnte ich den Pi mit dran hängen und er würde darüber komplett ausgeschaltet werden und beim Einschalten der Funksteckdose wieder hoch fahren. Meistens passiert das Ausschalten des TVs (und damit das Senden des Shutdown Signals an den Pi) und das Ausschalten der Funksteckdose aber ziemlich kurz hintereinander. Mir war das Risiko zu groß, dem Pi mitten im Runterfahren den Saft abzudrehen. SD Karte "defekt" etc.
    Der Pi muss also dauerhaft mit Spannung versorgt werden. Einen Reset Taster anlöten und diesen jedes Mal zu drücken, wenn man den Fernseher einschaltet war mir auch zu umständlich. Das muss automatisch passieren, wenn der Fernseher eingeschaltet wird.
    Ich hab dann für mich eine Lösung gefunden, die vielleicht vielen Leuten helfen kann, die ihren Pi als Mediencenter am TV benutzen. Was kann man nun als Steuersignal benutzen um einen Reset am Pi auszulösen? Es sollte eine kleine Gleichspannung sein, einigermaßen robust und natürlich muss man dran kommen, ohne den ganzen Fernseher aufschrauben zu müssen. Natürlich! Die USB Schnittstelle.
    Mein TV hat drei solcher Anschlüsse. Ich benötige keinen davon (hab keine PVR Festplatte angeschlossen). Schaltet man den TV aus, werden die 5 V der USB Buchse abgeschaltet. Wird der TV eingeschaltet, werden auch die 5 V eingeschaltet. Ich hab mir also eine kleine Schaltung überlegt, die den Pi resettet wenn die 5 V der USB Schnittstelle eingeschaltet werden. Es wird kein Reset ausgelöst, wenn die 5 V abgeschaltet werden (also wenn der TV ausgeht). Somit kann der Pi in aller Ruhe runter fahren und dann im Standby Modus auf die 5 V vom TV warten. Es gehen nun also zwei USB Kabel an den Pi. Das eine kommt vom 5 V Steckernetzteil und das andere geht an den Fernseher. Schaltet man den TV ein, bekommt der Standby-Pi einen Reset und fährt hoch. Genau so solls sein - ohne zusätzliche Fernbedienung oder zusätzlichen Taster.


    Ziemlich lange Rede, kurzer Sinn: Ich weiß nicht, ob eine solche Lösung schon existiert. Wenn ja, hab ich das Rad wohl für mich neu erfunden. Wenn nicht, schreibe ich hier gerne eine Anleitung rein, wie man die Schaltung aufbaut und anschließt. Wenn sich also jemand meldet, der Bedarf an der Schaltung und vor allem an der Funktion hat, verfasse ich die Anleitung. Wenn nicht, spare ich mir die Arbeit :D


    Viele Grüße,
    Ollemo

    Edited once, last by Ollemo ().

  • Nagut, dann will ich mal. Die Schaltung ist ziemlich einfach. Es werden 5 Standardbauteile benötigt, die man zusammen für unter 50 Cent bei Reichelt bekommt. Wer zu Hause ein wenig bastelt, hat sie sowieso in der Bastelkiste liegen:



    Wie eigentlich aus dem Bild erkennbar ist, schließt man links das USB Kabel an. Man kann die ganze Schaltung einfach auf einer Lochraster-Platine aufbauen. Nutzt man einen Transistor mit langen Beinchen, kann man diese auch direkt in die Löcher des "Run" Anschlusses löten und den Rest der Schaltung "fliegend" verlöten. Künstlerische Freiheit...
    Joa, was passiert? Legt man links 5V an, wird der Kondensator aufgeladen. Der Strom, der dabei fließt, lässt den Transistor kurzzeitig durchschalten. Der zieht dabei den Run Pin auf GND => der Pi wird resettet. Am Oszi sieht das dann so aus:



    Die gelbe Linie ist die Spannung am USB Kabel, die rote ist die Spannung am Run Pin.


    Wird der TV ausgeschaltet, wird KEIN Reset ausgelöst. Der Pi bleibt also an und wird erst resettet, wenn der Fernseher wieder eingeschaltet wird. Man kann dazu natürlich auch alle anderen 5 V Buchsen nehmen, wenn man den Pi zusammen mit einem anderen Gerät einschalten will.


    Bei mir sieht das ganze dann so aus:



    Ich hatte allerdings auch die Möglichkeit, das ganze mit SMD Bauteilen aufzubauen. Geht aber, wie gesagt, auch mit Standard Reichelt Bauteilen:


    Reichelt Artikelnummern:


    Q1: BC 547C
    R1: METALL 10,0K
    R2: METALL 47,0K
    R4: METALL 10,0K
    C1: X7R-2,5 100N


    So, das wäre alles, denke ich. Bei Fragen, einfach melden. Bei mir funktioniert es einwandfrei. TV ausschalten => Pi bekommt shutdown Befehl über CEC und fährt runter. TV Einschalten => Pi wird resettet und fährt hoch. Alles mit der TV Fernbedienung. Die Faulheit hat mal wieder gesiegt :D


    Viele Grüße,
    Ollemo


    P.S. Gibt es eigentlich eine Möglichkeit, Bilder direkt in den Post einzubinden? Man kann ja Attachments hochladen. Kann man die dann auch im Text anzeigen lassen? Ich musste den Umweg über einen externen Bilder-Hoster gehen...

    Edited once, last by Ollemo ().

  • Sehr Schön. Soll ich den Thread mal in den Tutorial bereich verschieben?

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hallo Feuerpfeil,


    ja, das sieht prinzipiell gut aus. Du musst nur aufpassen, dass du bei dem USB Stecker die richtigen Kabel erwischt. + und - sind die beiden äusseren Anschlüsse. In deinem Bild hast du den untersten und den zweit-untersten genommen. Das wird nicht funktionieren.


    Gruß,
    Ollemo

  • Hallo Ollemo,


    vielen Dank für diese Lösung. Mich interessiert gerade, wie du auf die Dimensionierung der Bauteile gekommen bist. Ich bin neu im Thema und interessiere mich für die Grundlagen. Wäre froh, wenn du mir beim Verstehen helfen könntest.


    Grüße,
    bunga65

  • Ich habe die Lösung jetzt erst gesehen. Eine wirklich tolle Idee! Sie setzt aber voraus, dass die Spannung am USB-Anschluss beim Abschalten des TV ebenfalls mit abgeschaltet wird. Das sollte man vielleicht im Vorfeld mal testen.


    Ich werde die Tage mal probieren, ob ich dazu eine kleine Platine mit USB-Stecker entworfen bekomme. Das würde aussehen wie ein USB-Stick aus dem die beiden Strippen kommen, die an den RasPi angeschlossen werden. Das dürfte für diejenigen hilfreich sein, die sich noch nicht näher mit dem Thema Elektronik beschäftigt haben.

  • Quick and dirty habe ich das vorbehaltlich einiger Schönheitsfehler mal nachgezeichnet. Auf der aktuellen Platinenbestellung habe ich noch eine Ecke frei. Dort passt die ca. 22x18 mm kleine Platine noch hin. Die Stecker muss ich mir erst noch bestellen und dann mit dem Footprint vergleichen, aber in etwa könnte das passen.


    Wer Interesse hat, kann gegen Erstattung der (Porto)kosten gerne eine bekommen. PN genügt.


    edit: Da ich nun schon mehrmals gefragt wurde, würde ich die Platine auch komplett mit Stecker und Bauteilen bestücken.
    edit2: Ich habe das Layout etwas optimiert. Die Platine ist jetzt noch rund 17x17mm "groß" und damit sogar kürzer als der Stecker, den ich nun auch richtig eingezeichnet habe. Um zu verhindern, dass die Kabel verpolt werden, wurden die Anschlüsse durch "Wort und Form" gekennzeichnet.


    edit3: In Beitrag #64 ist die aktuellste Version zu finden. Wer kein CEC Signal nutzen kann, findet das passenden Script in Beitrag #42.
    edit 11/2016: Da gelegentlich die Frage gestellt wird, ob ich noch Platinen hätte: Ja, ein paar habe ich hier noch liegen, die ich abgeben würde.

  • Hallo Community,
    Schöne Lösungs Ansätze habt ihr da. Ich als laie von Strom sieht es aber ziemlich komplizert aus wovon ich dann auch die Finger weglasse.
    Eine Frage hätte ich aber, man kann doch über den tv usb den raspi2 doch betreiben also als stromquelle oder? Dann müsste er doch automatisch mit an gehen wenn tv eingeschaltet wird oder habe ich es hier falsch verstanden. So habe ich es auch schon mal in einen anderen Beitrag gelesen das es funktioniert daher verstehe ich nicht warum ihr dafür was bastelt. Klärt mich auf wenn es nicht so ist.

  • Hallo und willkommen im Forum.


    Meine Platinenlösung wird sehr einfach sein. An die zwei Lötpunkte kommen zwei Kabel und die gehen dann auf den RasPi. (Wie schon geschrieben, würde ich die Platine fertig bestücken.) Das ist alles. Da ist nichts Kompliziertes dran. Damit nichts verpolt wird, habe ich die Pads auch noch pasend beschriftet.


    Das Starten beim Einschalten ist übrigens für das Dateisystem nicht das Problem. Das Problem ist, dass der Strom beim Ausschalten plötzlich weg wäre. Das mag das Dateisystem der SD-Karte nicht und wird auf Dauer dabei zerstört. Wenn Du ihn also rein über USB betreiben möchtest, dann wäre eine USV Lösung notwendig, wie ich sie hier mal vorgestellt habe: http://www.forum-raspberrypi.d…r-stromausfall?pid=152817


    Ollemo geht einen etwas anderen Weg und hat die Funktionsweise in seinem Beitrag eigentlich ganz gut beschrieben. Der RasPi hängt am Netzteil (bekommt seine Versorgungsspannung also nicht über USB) und ist herunter gefahren. Wird der TV eingeschaltet, bekommt der RasPi über die Schaltung von Ollemo ein Resetsignal und fährt hoch. Wird der TV abgeschaltet, bekommt er per HDMI Kabel über CEC das Signal zum Herunterfahren.


    Somit gibt es keine Probleme mit beschädigten Dateisystemen.

  • Hallo Elektrik Versteher,


    danke für die Schaltung, ich habe ein Vorhaben, das ich umsetzen will, und wollte mal fragen, ob das mit dieser Schaltung umsetzbar ist. Also mal folgendes für mein Grundverständnis. Ein reset am Rasperrry Pi bedeutet ja im Prinzip nichts anders als ein Kurzschluss oder ?


    Ich habe einen Raspberry pi, welcher als Mediacenter - Client fungiert. Weiters habe ich noch einen Computer als Media Server, wo der TV - Empfang stattfindet, Videos und Musik gespeichert sind. Nun würde ich gerne (da der Computer im Keller steht), dass wenn ich beim Raspberry aus Videos gehe, unten im Keller die externe Festplatte eingeschalten wird. Bei der externen Festplatte ist ja auch einfach "nur" ein Taster, welcher durch einen "Kurzschluss" gestartet wird oder liege ich da falsch ?


    Kann ich da eigentlich diese Schaltung verwenden, und bei Gebrauch einfach den USB Port beim Computer aktivieren, somit die Festplatte starten ? Glaubt ihr das könnte funktionieren, oder würdet ihr zu einer ganz anderen Lösung tendieren ?


    Danke im voraus für eure Überlegungen!


    Martin

  • Bei einem Reset, wird der RPi nicht kurzgeschlossen, sondern der Reset Pin des SoC über einen Widerstand nach Masse geschaltet. Aus dem Rest deiner Überlegung werde ich leider nicht schlau, was Du nun genau vorhast. Einen entfernten Rechner mit einer externen HDD, könnte man z.B. per WoL aufwecken.

  • Okidoki,


    Ausstattung:
    also ich habe einen Raspberry Pi 2 mit Openelec drauf in meinem Wohnzimmer stehen. Dieser dient als Client. Im Keller habe ich einen Computer stehen, mit eingebauter PCI Karte um Sat zu empfangen, dort befindet sich auch die Musik bzw. die Videos.


    Ablauf:
    Wenn ich jetzt den Raspberry Pi starte, wird automatisch ein script ausgeführt welches mir den PC im Keller (mittels WoL) aufweckt.


    Problem:
    Es funktioniert alles so weit so gut, bis auf die Tatsache, dass die externe Festplatte nicht eingeschalten wird. Die hat ja ein extra Netzteil und ist mit USB mit dem Computer verbunden. Wenn ich jetzt einen Film schauen will, dann muss ich in den Keller gehen, und dort den Einschalttaster der externen FEstplatte (Gehäuse) betätigen.


    Frage:
    kann man die im ersten Beitrag vorgestellten Schaltung dazu verwenden, um der externen Festplatte einen "Impuls" zu geben, damit diese dann startet ?


    Ich hoffe mich nun klarer ausgedrückt zu haben, und freue mich über eure Antworten !


    lg Martin

  • Das wird so nicht funktionieren, denke ich. Ich nehme an, dass die Platte herunter fährt und dann nur durch den Taster wieder geweckt werden kann? Das ist natürlich Käse. Da könntest du dir vielleicht etwas mit einem Timer IC bauen. Sinngemäß: Timer-IC-Schaltung bekommt 5V-Impuls über USB, wenn der Rechner gestartet wird. (Das setzt voraus, dass die Spannung abgeschaltet ist, wenn der Rechner aus ist) Durch den Impuls wird über einen Mosfet am Ausgang des Timer-ICs Masse geschaltet. Vorher musst Du aber den Taster der Platte frei legen, um zu messen, was genau passiert, wenn Du den drückst. Wird in dem Moment, in dem der Taster geschlossen wird, Masse geschaltet, könntest Du das so machen.


    Sollte Vcc durch den Taster geschaltet werden, könnte man messen, wie hoch der Strom ist. Ist er um die 10mA könnte man den Ausgang des Timer-ICs direkt parallel zum Taster schalten. Ist der Strom höher, dann könnte man hinter den ersten Mosfet einen zweiten installlieren, der dann nicht die Masse schaltet, sondern Vcc. Ich hoffe das war halbwegs verständlich? Wie es der Zufall will, kenne ich derartige Probleme und habe sie für mich auch schon mal gelöst ;)
    http://www.forum-raspberrypi.de/Thread-projekt-555-timer


    Dort, wo der Taster eingezeichnet ist, müsste eine Lötbrücke hin. Vcc und GND werden mit einem USB-Stecker versehen und unten links wird dann das Signal für beispielsweise eine Sekunde geschaltet. Damit würde sozusagen eine Tastendruck "simuliert".


    Da das mittlerweile etwas OT zum eigentlichen Thema ist, würde ich Dich bitten, weitere Fragen in einem eigenen Thread zu stellen.

  • Man könnte das gleiche Prinzip auch per PC ( USB, RS232 ...) anwenden. Einfacher wäre vermutl. aber sich einfach aus dem PC 12V & 5V abzuzweigen und damit die externe HDD mit Spannung zu versorgen. Dafür sollte man nur einen Molex u. einen zu HDD passenden DIN Stecker brauchen.


  • Problem:
    Es funktioniert alles so weit so gut, bis auf die Tatsache, dass die externe Festplatte nicht eingeschalten wird. Die hat ja ein extra Netzteil und ist mit USB mit dem Computer verbunden. Wenn ich jetzt einen Film schauen will, dann muss ich in den Keller gehen, und dort den Einschalttaster der externen FEstplatte (Gehäuse) betätigen.


    man kann vieles machen, nur frage ich mich welcher Aufwand betriebssicher und sinnvoll ist?


    Was ist denn das für eine ominöse Pltte die ein extra Netzteil und einen Tritt braucht?


    mir würde dazu nur eine 2,5" WD passport 2 TB für 100,-€ einfallen die bei aufgeweckten PC am USB hängt.


    Das ganze Basteln ist ja nett, gibt es auch nicht umsonst und kann risikobehaftet sein.


    Sollte es sich um eine externe 6TB Platte handeln dann grübel ich noch mal.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr