Beiträge von Ernestopheles

    Danke für die Tipps.

    Ich habe mal nach Sensoren geguckt und werde mal mit dem Abstandssensor experimentieren. Das sollte besser als mit dem Bewegungsmelder funktionieren.
    Will mir einen Sensor-Kit zulegen, weiß noch nicht, welcher am besten ist (tendiere zu Sunfound Sensor kit V2).

    Nein, eine Fernbedienung / Konsole / etc. kann mein Sohn nicht bedienen.

    Ginge die WLAN Variante nicht auch mit einem zweiten kleinen raspi?

    Sorry, aber "ein paar Ampere" wäre heftig, wenn die vom Netz abgenommen würden :D Aber du hast recht, der Raspi zieht kaum Strom, das probiere ich einfach mal aus. Ansonsten gibt es ja auch Schaltaktoren.

    Mit Json habe ich noch nicht gearbeitet, schau ich mir aber an.

    Liebes Forum,

    ich habe für meinen behinderten Sohn eine Musikanlage (siehe Foto) gebaut, die Musik von der SD Karte abspielt, einen Ein/Aus Schalter hat und einen Bewegungsmelder zum Weiterschalten des Musikstückes.So kann er das Gerät steuern (Tastendruck, Hand an Bewegungsmelder halten).
    Bisheriger Aufbau:

    Raspi 3B+ mit Hifiberry DAC+ im Holzgehäuse
    Taste für Ein/Aus per python scrypt realisiert
    Bewegungsmelder auf dem Gehäusedeckel, durch Nagellack auf einen engen Erfassungskegel reduziert (reagiert leider trotzdem manchmal auch auf entfernte Bewegungen, der Radius lässt sich nur auf minmal 3m verkleinern per Poti)

    Aktivlautsprecher 2.1
    Ohne Monitor, Tastatur, Maus
    Raspbian Strech
    Kodi mit addon für Bewegungsmelder (python service script), Kodi startet automatisch im Modus Abspielen einer automatischen playlist von Musiktiteln auf der SD Karte
    Remotezugriff per Teamviewer und Yatse

    Dies will ich nun ausbauen für Video und suche Erfahrungen, vielleicht sogar Beispiele für das folgende Projekt:

    Zusätzlich:
    Monitor ca 22 Zoll, Wandbefestigung, Halterung vorhanden
    Der Monitor sollte vom Raspi aus automatisch ein/aus geschaltet werden. Der vorhandene Schalter am Monitor muss deaktiviert werden. Alternativ Schalten des raspberry durch Betätigen des vorhandenen Schalters am Monitor.

    Der Raspi muß fest montiert werden, am besten unterhalb des Monitors, z.B. an der Wandhalterung. Der Bewegungsmelder kann dann hinter dem Monitor angebracht werden und richtet den Erkennungskegel zur Seite weg.

    Dann braucht es einen zweiten Bewegungsmelder und einen zweiten Ein/Aus Schalter, der über Funk / WLAN / Bluetooth mit dem raspi kommuniziert und ebenfalls das Skippen / Schalten ermöglicht. Das braucht mein Sohn, wenn er auf dem Bett sitzt und Musik hören will.

    Ein weiterer Bewegungsmelder, der von Musik auf Video schaltet, wenn mein Sohn sich vor den Monitor setzt.Und auf Musik schaltet, wenn er wieder weg geht.

    Die Aktivlautsprecher bleiben einfach immer eingeschaltet (vielleicht kann man eine Funksteckdose nehmen, die der raspi ansteuert? Dafür suche ich auch Erfahrungen, Beispiele, ist aber zweitrangig.)

    Alle Kabel müssen vor dem Herausziehen gesichert sein, am besten hinter einer Abdeckung.

    Lautstärkeregler (kann nur von Helfern bedient werden)


    Tastatur und Maus sollen zu Wartungszwecken bei Bedarf anschliessbar sein (Buchsen im Gehäuse oder per Funk).

    Musik läuft per Zufallsplaylist von der SD Karte
    Video analog, ich lade dazu passende Videos von Youtube etc. runter.

    Ich hoffe, es wird einigermassen klar, was ich will und ihr habt Ideen und Beispiele dazu.

    LG Ernestopheles

    Quellcodes:


    Habe es durch weitere Recherche herausgefunden: Teamviewer verwendet zur GUI Darstellung eine Hardware-Komponente die der Teamviewer nicht darstellt. Raspi Forum
    Eine andere Lösung habe ich bisher nicht gefunden.

    Verwende raspian stretch latest version und kodi desktop latest version, raspi 3B+.

    Möchte, da Gerät ohne Monitor und Tastatur eingesetzt ist, per remote Zugriff das Kodi konfigurieren (Bibliothek bzw. Playlist aktualisieren, Addon installieren ,...). Mit Teamviewer gehts also nicht. Remote desktop auch nicht so weit ich mich erinnere. Es wird der desktop angezeigt, ein Kodi Bildschirm nicht.
    Hinzu kommt, dass das Gerät an einem enrfernten Ort steht, Vodafone DSL mit Vodafone Router. Der hat glaube ich schon eine dauerhaft feste IP Adresse, allerdings nur IPv6. Bei Ansteuerung über "normale" Clients (SSH, VNC) wird ja die IP Adresse (IPv4) benötigt. Kann vor Ort z.B. mit Yatse ansteuern, aber kein Update der Bibliothek machen.

    Habe auch Musikdateien, die Kodi nicht abspielt (Fehler im Log). Allerdings nicht feststellbar, a) welche Datei (Dateiname auf dem Speicher) und b) warum nicht abspielbar. Siehe dazu meinen Forumbeitrag: Fehler init codec

    Liebes Forum,

    mein Kodi unter raspberrypi raspbian stretch bringt hin und wieder im [definition=9,2]kodi.[definition='1','0']log[/definition][/definition] das folgende:

    0:12:11.798 T:1583829760 ERROR: CAudioDecoder: Error while decoding 120:34:03.099 T:1492120320 ERROR: Init: Error opening file musicdb://songs/4.mp3?xsp=%7b%22order%22%3a%7b%22direction%22%3a%22ascending%22%2c%22ignorefolders%22%3a0%2c%22method%22%3a%22random%22%7d%2c%22rules%22%3a%7b%22and%22%3a%5b%7b%22field%22%3a%22time%22%2c%22operator%22%3a%22lessthan%22%2c%22value%22%3a%5b%2210%3a00%22%5d%7d%5d%7d%2c%22type%22%3a%22songs%22%7d20:34:03.100 T:1492120320 ERROR: CAudioDecoder: Unable to Init Codec while loading file musicdb://songs/4.mp3?xsp=%7b%22order%22%3a%7b%22direction%22%3a%22ascending%22%2c%22ignorefolders%22%3a0%2c%22method%22%3a%22random%22%7d%2c%22rules%22%3a%7b%22and%22%3a%5b%7b%22field%22%3a%22time%22%2c%22operator%22%3a%22lessthan%22%2c%22value%22%3a%5b%2210%3a00%22%5d%7d%5d%7d%2c%22type%22%3a%22songs%22%7d20:34:03.100 T:1492120320 WARNING: PAPlayer::QueueNextFileEx - Failed to create the decoder

    Frage: woran liegt es und kann man aus den Angaben die betreffende Musikdatei ermitteln?

    Danke für jede Hilfe.

    Ernestopheles

    du solltest bei "waitForAbort" nicht "monitor" übergeben sonder die Zeit die gewartet werden soll.

    probier mal sowas

    xbmc.Monitor.waitForAbort(1) gab bei mir eine exception, es werde kein integer verlangt, sondern ein object. daher meine Anpassung, die ja funktioniert, wenn auch nicht ohne Nebenwirkungen...

    Jetzt ist alles bestens, bis auf die fehlende Abort-Behandlung. Soll Kodi beim Verlassen also weiterhin das script nach 5 Sec killen, macht fast gar nix.

    Offen ist auch die Frage, warum häufig audio not playing erkannt wird, das aber nur aus akademischem Interesse.
    Dumm ist auch, dass ich 2 Bedingungen für die Bewegungserkennung habe, das kostet unnötige Resourcen, zumal die If-Abfrage ja ständig wiederholt wird.

    Ich lass es jetzt erst mal so, verbessern kann ich immer noch, Hauptsache es läuft.

    Das ganze Projekt stelle ich später als ganzes vor.

    Danke euch allen und liebe Grüße

    Habe etwas weiter gearbeitet, diese Lösung funktioniert noch nicht:

    1. Wenn die Schleife eine Endebedingung über den Abort (Verlassen des Kodi) hat - entweder über die auskommentierte Whilebedingung oder mittels des break - werden nur die Start- und die Endezeile in die Datei geschrieben.

    2. Meistens erhalte ich eine Zeile "not playing audio", obwohl die ganze Zeit über Musik läuft (von einer automatischen Playlist). Das auch dann, wenn ich die Bedingung if GPIO.event_detected(SENSOR_PIN) fortlasse. In wenigen Versuchen erhalte ich tatsächlich eine Ausgabe des Musikstückes, dann allerdings in nicht brauchbarer Form:
    Skipped: musicdb://songs/61.mp3?xsp=%7b%22order%22%3a%7b%22direction%22%3a%22ascending%22%2c%22ignorefolders%22%3a0%2c%22method%22%3a%22random%22%7d%2c%22rules%22%3a%7b%22and%22%3a%5b%7b%22field%22%3a%22time%22%2c%22operator%22%3a%22lessthan%22%2c%22value%22%3a%5b%2210%3a00%22%5d%7d%5d%7d%2c%22type%22%3a%22songs%22%7d

    Das ist offenbar die Definition der Playlist.
    Wenn ich nicht die automatische Playlist laufen habe, sondern Musik so laufen lasse, erhalte ich den Dateinamen in der Datenbank, z.B. 24.m4a, auch nicht wirklich ausagekräftig...

    Durch Fortlassen der Abortbedingung erhöht sich die Frequenz der Dateiausgaben erheblich. Damit wird offenbar hinreichend häufig der verklausulierte Dateinamen ausgegeben, sodass das script so belassen werden kann, wenn ich nur den wirklichen Musiktitel nur irgendwie ausgeben könnte.

    Dies ist meine funktionierende Lösung. Leider fehlt die Ausgabe des übersprungenen Musikstücks. Vielleicht hat jemand eine Idee?

    Danke euch.