1

Temat: Zegarynka, Everyhour, dzwięk o równe godznie

Hej,
Miałem kiedyś taką fajną appkę na BlackBerry, która o równej godzinie wydawała dźwięk.
Na pewno da się to jakoś oskryptować w OpenWRT.
Kartę muzyczną USB i MPD mam.
Jak mógłby wyglądać skrypt? i gdzie go umieścić?
Można by też zrobić czytanie godziny, ale chce żeby działało też bez połączenia z Internetem.
Macie jakieś sugestie?

2

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

mpc clear; mpc add plik.mp3; mpc play

W cronie co równą godzinę? Tak po prostu.

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

3 (edytowany przez luk 2021-07-24 12:13:55)

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Dzięki, tak właśnie zrobiłem:

CRON:

0 * * * * sh say-time.sh

say-time.sh

#!/bin/sh
if mpc status | grep playing >/dev/nul      # If mpd is playing
then
 mpc toggle -q
 sleep 0.5
 sayt.sh
 sleep 0.5
 mpc toggle -q
else
 sayt.sh
fi

sayt.sh

#!/bin/sh
CO=$(date +"%H:%M")
wget -q -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "http://translate.google.com/translate_tts?tl=pl&q=$CO&client=tw-ob" -O - | madplay -a -7 -q -

say-time.sh pauzuje MPC jak jest uruchomione (gra muzyka)
sayt.sh czyta aktualną godzinę.

Tylko sleep wywala błąd:

sleep: invalid number '0.5'

nie da się mniej niż sekunda?
a nie ma pakietu usleep.

4

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Pakiet coreutils-sleep i będziesz mógł.

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

5

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Cezary napisał/a:

Pakiet coreutils-sleep i będziesz mógł.

Mam zainstaloway:

Package coreutils-sleep (8.30-2) installed in root is up to date.

coś innego musi być.

6

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

# date; sleep 0.5; date
Mon Jul 19 09:18:32 UTC 2021
Mon Jul 19 09:18:33 UTC 2021

Ja bym powiedział że działa.

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

7

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Może mam za stary OpenWRT
OpenWrt 19.07-SNAPSHOT, r11360-ceb8821a3d

albo za stary pakiet
coreutils-sleep (8.30-2)

Zrobię aktualizacje do najnowsze 21 i zobaczę.

Na razie usunąłem pakiet i przy próbie ponownej instalacji wyskakuje:

Unknown package 'coreutils-sleep'.
Collected errors:
 * opkg_install_cmd: Cannot install package coreutils-sleep.

8

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

opkg update nie zrobiłeś?

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

9

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Cezary napisał/a:

opkg update nie zrobiłeś?

Robiłem, coś mam namieszane z pakietami, i tak musze od nowa zrobić system bo mam stare OpenWRT.

10

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Zrobiłem aktualizację do najnowszego LEDE 21 i przesiadłem się na wyższy model routera WDR4300 (z WDR3500)
ułamkowy sleep działa.
Teraz mam taki problem - ucina mi końcówkę w czytanej godzinie/dacie np. zamiast siódma czyta siód (ucina 'ma')
Tak samo ucina jak się wpisze dowolny tekst np. say.sh "dzień dobry" utnie "ry"
Nie wiem w czym może być przyczyna, madplay odtwarza mp3 w pełni.
może coś z konfiguracją mpd ale skopiowałem ze starego to powinno być OK.

11

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

A może po prostu na końcu dodaj kilka spacji czy coś takiego?

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

12 (edytowany przez luk 2021-07-24 13:52:57)

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

Cezary napisał/a:

A może po prostu na końcu dodaj kilka spacji czy coś takiego?

Nic to nie daje, sprawdziłem na drugim routerze, jest tak samo czyli ucina,
na openWRT 19 działał ten skrypt:
https://eko.one.pl/?p=openwrt-soundnotify
na openWRT 21 ucina,
niech ktoś potwierdzi jeszcze może trzeba zmienić komendę.

#!/bin/sh
CO=$(date +"%H:%M")
wget -q -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "http://translate.google.com/translate_tts?tl=pl&q=$CO&client=tw-ob" -O - | madplay -a -7 -q -

Jak dopisać spację albo znak nowej linii tutaj:
CO=$(date +"%H:%M")
aby wydłużyć tekst i nie ucinał?

13

Odp: Zegarynka, Everyhour, dzwięk o równe godznie

To wina madplay była,
zamieniłem na mpg123

opkg install mpg123

Teraz czyta dobrze.

#!/bin/sh
CO=$(date +"%H:%M")
wget -q -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" "http://translate.google.com/translate_tts?tl=pl&q=$CO&client=tw-ob" -O - | mpg123  -q -