1

Temat: Przełączanie stacji radiowych w triggerhappy

Miałem tak - to samo w autostarcie w /etc/rc.local:

KEY_F9    1    /usr/bin/killall madplay ; sleep 1 ; /usr/sbin/screen -dmS player /usr/bin/madplay -z /root/mp3/*.mp3

Dzięki screen mogę także podłączyć się w Putty i sterować.

Dodałem stacje radiowe ale bez screen'a np.

KEY_7    1    /usr/bin/killall madplay ; sleep 1 ; wget -q http://strm112.1.fm/chilloutlounge_mobile_mp3 -O - | madplay -q - &

Jak to przerobić na screen, wpisałem tak ale nie działa:

KEY_1    1    /usr/bin/killall madplay ; sleep 1 ; wget -q http://stream3.polskieradio.pl:8900 -O - | /usr/sbin/screen -dmS player /usr/sbin/madplay -q - &

2

Odp: Przełączanie stacji radiowych w triggerhappy

screen przed wgetem

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez jzef 2024-09-26 19:21:33)

Odp: Przełączanie stacji radiowych w triggerhappy

Dałem tak i nie działa:

KEY_1    1    /usr/bin/killall madplay ; sleep 1 ; /usr/sbin/screen -dmS player wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -q - &

Oczywiście robię /etc/init.d/triggerhappy restart

4

Odp: Przełączanie stacji radiowych w triggerhappy

Jak uruchomisz samo "/usr/bin/killall madplay ; sleep 1 ; /usr/sbin/screen -dmS player wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -q - &" to działa?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Przełączanie stacji radiowych w triggerhappy

Nie, ale jak teraz podłączę się do okna screen -r player to wyskakuje duża liczba krzaczków - jakby jakieś dane i daję Ctrl+C aby to przerwać.

6

Odp: Przełączanie stacji radiowych w triggerhappy

Zrób  z tego skrypt i uruchamiaj w screenie skrypt.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Przełączanie stacji radiowych w triggerhappy

Zrobiłem skrypt pl1.sh, chmod +x

#!/bin/sh

wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -q - &

i odpalam tak ale nie działa - nie tworzy okna screen:

/usr/bin/killall madplay ; sleep 1 ; /usr/sbin/screen -dmS player /root/pl1.sh

8

Odp: Przełączanie stacji radiowych w triggerhappy

Ale weź takie rzeczy testuj najpierw ręcznie wykonując polecenie.

Sam skrypt działa? Skrypt uruchomiony w  screenie działa?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Przełączanie stacji radiowych w triggerhappy

Oba polecenia działają:

sh pl1.sh
screen -dmS player ; /root/pl1.sh

Nie trzeba żadnego skryptu tylko trzeba dodać średnik po screen a przed wget:

/usr/bin/killall madplay ; sleep 1 ; /usr/sbin/screen -dmS player ; wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -q - &

Działa, odtwarza radio, mogę podłączyć się do screen ale tam nic nie ma - nie pokazuje statusu madplay i nie mogę sterować skrótami klawiatury.

10

Odp: Przełączanie stacji radiowych w triggerhappy

Jak dodasz średnik to shell interpretuje to jako koniec polecenie i wykonuje nastepne. Czyli osobno uruchamia screena i osobo następne polecenie. Dlaczego masz pustego screena.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Przełączanie stacji radiowych w triggerhappy

Czemu nie działaja skróty p, s madplay jak odpalę ręcznie:

wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -

Jak dam odpalanie MP3 z dysku to działają:

madplay -z /root/mp3/*.mp3

12

Odp: Przełączanie stacji radiowych w triggerhappy

Ponieważ jest to strumień live które nie możesz zapauzować?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: Przełączanie stacji radiowych w triggerhappy

Nie, to nie o to chodzi bo strumień można pauzować - już sprawdziłem, trzeba dodać opcję --tty-control o tak:

wget -q http://stream3.polskieradio.pl:8900 -O - | madplay - --tty-control
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
error: frame 0: lost synchronization
 --Paused--

Gdy madplay odtwarza lokalny plik np. MP3 to ta kontrola jest domyślnie włączona a gdy używamy w połączeniu z opcją -o, -q lub -Q to opcja jest wyłączana i trzeba wtedy używać tego przełącznika jeśli chcemy sterować skrótami z klawiatury.

A więc to już wiemy ale co ze screen'em?

14 (edytowany przez Cezary 2024-09-27 06:28:17)

Odp: Przełączanie stacji radiowych w triggerhappy

Skrypt bez & na końcu:

#!/bin/sh
wget -q http://stream3.polskieradio.pl:8900 -O - | madplay -
exit 0

screen -dmS player ./test.sh

i normalnie działa, możesz zrobić screen -r i wszystko jest.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15 (edytowany przez jzef 2024-09-27 09:44:12)

Odp: Przełączanie stacji radiowych w triggerhappy

Dobra - działa ale w triggerhappy trzeba podać pełną ścieżkę do skryptu a nie ./skrypt.sh

## control an mpd instance
# KEY_NEXTSONG        1    /usr/bin/mpc next
# KEY_PREVSONG        1    /usr/bin/mpc prev
KEY_F9    1    killall madplay ; sleep 1 ; screen -dmS player madplay -z /root/mp3/*.mp3
KEY_V    1    killall madplay ; sleep 1 ; poweroff
KEY_P    1    killall madplay
KEY_1    1    killall madplay ; sleep 1 ; screen -dmS player /root/pl1.sh

Aby sterować skrótami - jak pisałem trzeba dodać w skrypcie opcję --tty-control oraz małe -q dla wget i duże -Q dla madplay aby w oknie screen nie pokazywało danych a zamiast tego dodaję sobie nazwę stacji i pokazuje tylko stan Paused, Stopped itp. gdy wcisnę klawisz.

Skrypt dla jednej stacji radiowej pl1.sh:

#!/bin/sh

echo Polskie Radio 1
wget -q http://stream3.polskieradio.pl:8900 -O - | madplay - -Q --tty-control

Wygląd screen'a jak wciśniemy klawisz p (Pause):

Polskie Radio 1
--Paused--

Ze screena wychodzimy przez Ctrl+a+d aby nie przerywać odtwarzania.

No i do każdej stacji radiowej muszę robić oddzielny skrypt no ale mam ich tylko kilka więc mogłoby być i tak smile

Aha, i nie wiem czemu kiedyś musiałem podawać pełną ścieżkę /usr/bin lub /usr/sbin do killall i screen a teraz działa bez tego i plik konfiguracyjny triggerhappy jest bardziej przejrzysty.

16

Odp: Przełączanie stacji radiowych w triggerhappy

Nie ma żadnego gui pod to? Takie trochę to masochistyczne.

Dom : router https://i.imgur.com/IuB6Zwy.png | TP-LINK T1700G-28TQ |Zyxel XGS-1210-12 | 6x Ruckus r310 unleashed  + Ruckus icx7150-c12p | Truenas scale 124TB 25Gb| Xpenology 12TB | apc smart ups 750 lcd smile 100Mb/s - 25Gb/s
Podróżne : GL.Inet MT3000  +1TB hdd
Działka : rb260gs 1j wdm 1Gb+ ruckus r310 + nb m5 + kilka kamer ip  + panel 285Wp + lifepo4 12v 60Ah .

17

Odp: Przełączanie stacji radiowych w triggerhappy

@ambrozy5
Nie wiem ale teraz jestem happy i działa jak trzeba - zrobiłem tyle skryptów ile mam stacji radiowych:

# This is an example configuration for the triggerhappy daemon (thd)
# please note that every file to be processed must end in ".conf"
#
# To view a list of supported event codes, use "thd --listevents" or
# "thd --dump /dev/input/event*"
#
# Format:
# <eventcode> <value> <command>
#
# values for key events are 1 (pressed), 0 (released) or 2 (held)
#
## control an mpd instance
# KEY_NEXTSONG        1    /usr/bin/mpc next
# KEY_PREVSONG        1    /usr/bin/mpc prev
KEY_F9    1    killall madplay ; sleep 1 ; screen -dmS player madplay -z /root/mp3/*.mp3
KEY_V    1    killall madplay ; sleep 1 ; poweroff
KEY_P    1    killall madplay
KEY_1    1    killall madplay ; sleep 1 ; screen -dmS player /root/pl1.sh
KEY_2    1    killall madplay ; sleep 1 ; screen -dmS player /root/pl2.sh
KEY_3    1    killall madplay ; sleep 1 ; screen -dmS player /root/pl3.sh
KEY_4    1    killall madplay ; sleep 1 ; screen -dmS player /root/rmffm.sh
KEY_5    1    killall madplay ; sleep 1 ; screen -dmS player /root/zet.sh
KEY_6    1    killall madplay ; sleep 1 ; screen -dmS player /root/rdc.sh
KEY_7    1    killall madplay ; sleep 1 ; screen -dmS player /root/chillout.sh
KEY_8    1    killall madplay ; sleep 1 ; screen -dmS player /root/club.sh
KEY_9    1    killall madplay ; sleep 1 ; screen -dmS player /root/dance.sh

18

Odp: Przełączanie stacji radiowych w triggerhappy

Jeszcze taki drobny szczegół - po włączeniu routera odtwarza losową MP3, teraz jak wejdę przez Putty i zrobię screen -r player to widać co odtwarza ale jak wcisnę inny klawisz na pilocie, który uruchamia stację radiową lub wybiera nową MP3 to okno screen jest Terminated i muszę od nowa robić screen -r player
Czy da się tak zrobić aby wszystko było w jednym oknie screen od momentu włączenia routera?