Forum użytkowników automatyki budynkowej
Z-wave => Inne urządzenia => Wątek zaczęty przez: sztywniak w Kwiecień 01, 2015, 10:48:03 pm
-
Urządzenie NeTV umożliwiające mixowanie obrazu HDMI czyli nakładanie własnych obrazów na obraz przesyłany przez HDMI.
W inteligentnym domu można to wykorzystać np do :
- wyświetlanie komunikatów na pasku
- wyświetlanie dowolnych komunikatów
- wyświetlanie stron internetowych
- wyświetlanie animacji GIF
NeTV opracowane zostało na licencji Open Hardware przez Sutajio Ko-Usagi.
(http://forum.lic.pl/img/netv.jpg)
Urządzenie zostało wykonane przez zespół Adafruit : http://www.adafruit.com/product/609
Dokumentacja : http://www.kosagi.com/blog/
Przykłady działania NeTV :
https://youtu.be/Ena1P77JjmM
-
Więc skoro sztywniak rozpoczął, pozwolę sobie za przeproszeniem pociągnąć temat i tak na jakimś forum o kiepskiej renomie kilku mądrych bardziej zaawansowanych użytkowników pisało jak wystartować i jak bawić się NeTV.
Niektóre moje wpisy mogą się lekko różnić bo powiem jak wygląda to u mnie.
Po otrzymaniu NeTV miałem problemy z jego zawieszaniem polepszyło się jak go rozebrałem z obudowy (zrobiło się chłopowi chłodniej) i dodałem IP na stałe. Jak był na DHCP stanowczo częściej przestawał działać.
Więc na początku: (marecki_Oluk1)
Update naszego NeTV
ssh 192.168.XXX.XXX
cd /tmp
curl -o update.sh http://netv.bunnie-bar.com/updates/chumby-silvermoon-netv/update.sh
chmod +x update.sh
./update.sh
Aby móc łączyć się po ssh i po każdym resecie nie włączać go można odpalić auto ssh:
touch /psp/start_sshd
teraz robimy katalog do zabawy docroot:
mkdir /media/storage/devroot
cp -r /usr/share/netvserver/docroot/* /media/storage/devroot/
echo "/media/storage/devroot" > /psp/homepage
/usr/share/netvserver/docroot/scripts/psphomepage.sh
W pliku /media/storage/devroot/index.html linia (u mnie) 661 jest:
<div id="stamp_demo_container"><div style="position: absolute; top: 10px; left: 7px; width: 80px; height: 40px; -webkit-transform: rotate(-20deg); font-size: 24px; color: #FFFFFF; opacity: 0.1;">DEMO</div></div>
Wywal z tego DEMO, zapisz, zresetuj i już nie ma napisu.
Od linijki 647 (u mnie) zaczyna się wszystko co dotyczy widgetu – miłej zabawy.
Dalej można pokusić się o zmianę wyglądu strony startowej naszego cudeńka robiąc plik bootlogo.png w rozdzielczości 1280x720 i kopiując go do /tmp, potem:
killall NeTVBrowser
SCREEN_X_RES=1280 SCREEN_Y_RES=720 imgtool --bitfmt=rgb565 /tmp/bootlogo.png
dd if=/dev/fb0 bs=$((1280*720*2)) count=1 | gzip -c | config_util --cmd=putblock --block=logo
(Marek pisał lekko inaczej ale u mnie to działało wcześniej więc podałem to - a Marek pisał tak co zapewne też działą):
killall NeTVBrowser
SCREEN_X_RES=1280 SCREEN_Y_RES=720 imgtool --bitfmt=rgb565 /tmp/bootlogo.png
dd if=/dev/
powiedzmy, że już wszystko śmiga teraz by trzeba coś wysłać do niego.
Z pomocą na tym samym forum co już niestety pisałem przyszedł Sztywniak (tu też jest trochę moich zmian więc w razie coś odsyłam do drugo planowego forum kurczę z niechęcią ale podam link http://forum.fibaro.com/index.php?/topic/17146-netv-napisy-obraz-na-tv-z-fibaro/page-1 )
i tak chcąc włączyć wyłączyć widget (wnerwiający kwadracik po prawej) dodajesz wirtualne urządzenie w naszej centralce i polecenie:
HC2 = Net.FHttp("IP.naszej.centralki");
dane, status = HC2:GET("/bridge?cmd=remotecontrol&value=widget");
napis na pasku (jw.)
HC2 = Net.FHttp("IP.naszej.centralki ")
dane, status = HC2:GET("/bridge?cmd=tickerevent&message=Lili:%20tu%20beda%20wyswietlane%20informacje%20ucze%20sie%20dopiero&title=.&type=sms&level=high&image=http://adres.fanego.obrazka.pl/nazwajego.png")
u mnie mam raspbery założone i do niego kamera która luka na klatkę i w momęcie gdy ktoś dzwoni pojawia się obraz na TV, a żeby to uczynić wpisujemy:
HC2 = Net.FHttp("IP.naszej.centralki ");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http://ip.raspberry:9000/?action=snapshot");
chcąc zrobić fajny napis (sztywniak miał łazienka temp….) robimy tak:
HC2 = Net.FHttp("IP.naszej.centralki ");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http://adres.IP.naszego.sererawww/tv/obraz.php?tresc=Lili%20-%20ucze%20sie");
a do tego robimy plik obraz.php na naszym serwerku a w niego wklejamy:
<?php
$tresc = $_GET['tresc'];
$im = imagecreatetruecolor(1840, 180);
imagesavealpha($im, true);
imagealphablending($im, false);
$white = imagecolorallocatealpha($im, 255, 255, 255, 127);
imagefill($im, 0, 0, $white);
$text_color = imagecolorallocate($im, 204, 255, 51);
$font = 'arial.ttf';
imagettftext($im, 50, 0, 151, 151, $text_color, $font, $tresc);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
Do tego na serwerek trzeba wsadzić plik z czcionkami *.ttf u mnie to arial.ttf i już można wywołać napis. Sztywniak na podupadłym forum do którego link podałem – dał dostęp do swojego *.ttf-a
Czas na wyświetlanie pogody ala-sztywniak:
Więc na swoim serwerku robię plik tv.htm a do środka:
<br><div style="font-family:arial;"><div style="font-size:19px; padding:7px;"><div id="antis-s-390" style="width:30px; height:30px; float:left; border:1px solid #bbbbbb;"> </div><a href="http://antistorm.eu" title="Radary pogodowe, opady deszczu i ostrzeżenia przed burzami"><div id="antis-l-390" style="margin-left:38px;"> </div></a><div id="antis-t-390" style="margin-left:38px;"></div></div></div></div>
<script src="http://antistorm.eu/api-v1/antistormWidgetV2.js" charset="UTF-8"></script><script>var widget = new antistormWidget(); widget.url="http://antistorm.eu/webservice.php";widget.id="390";widget.pytajSerwer();</script>
<center>
<img src="http://lowcyburz.pl/skypredict/convection/forecast/current/outlook.png?" width="422" height="307" />
<img src="http://estofex.org/forecasts/tempmap/.png" width="422" height="307" />
</center>
<br> <br>
<center>
<img src="http://www.sat24.mobi/Image/satvis/europa/pl?w=500&h=400" width="422" height="307" />
<img src="http://zagle.pogodynka.pl/polska/polska1-1.png" width="422" height="307" />
</center>
Z tym, że na stronie http://antistorm.eu/ trzeba znaleźć ID swojego miasta i zmienić w kodzie u mnie 390 gdyż jestem z wioski Warszawa.
I w centralkę:
HC2 = Net.FHttp("IP.naszej.centralki ");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http://IP.serwera.www/tv/tv.htm");
teraz samo ostrzeżenie o zagrożeniu (prawie jw.)
ale wsadzamy plik antistorm.html a w nim:
<br><div style="font-family:arial;"><div style="font-size:30px; padding:15px;"><div id="antis-s-390" style="width:30px; height:30px; float:left; border:1px solid #bbbbbb;"> </div><a href="http://antistorm.eu" title="Radary pogodowe, opady deszczu i ostrzeżenia przed burzami"><div id="antis-l-390" style="margin-left:38px;"> </div></a><div id="antis-t-390" style="margin-left:38px;"></div></div></div></div>
<script src="http://antistorm.eu/api-v1/antistormWidgetV2.js" charset="UTF-8"></script><script>var widget = new antistormWidget(); widget.url="http://antistorm.eu/webservice.php";widget.id="390";widget.pytajSerwer();</script>
Oczywiście ID jak wyżej.
I w centralkę:
HC2 = Net.FHttp("IP.naszej.centralki ");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http:// IP.serwera.www /tv/antistorm.html");
dodam, że nie jestem oblatany tak jak „nasze chłopaki” i dlatego bardzo dużo uczę się metodą prób i błędów, dlatego dużo jest tu naprawdę pomocy marecki_Oluk1 oraz sztywniak, którym baaaardzo dziękuje.
Jak znajdziecie jakieś błędy poproszę o informacje to od razu zmienię aby nie mylić kogoś kto jest bardziej świeży ode mnie (jeśli tacy są).
Mam nadzieję, że podokładamy jeszcze jakieś fajne przykłady.
-
:) No i fajnie :)
-
Tutaj powinny być fanfary...
Do rzeczy wiem, że wielu z Was tak jak i ja boryka się z problemem tracenia sieci przez neTV. Dzięki uprzejmości mojego kolegi z pracy (Jarek pozdrawiam Cię ;)) oraz xobs'a udało się wspólnymi siłami coś tym zrobić.
Co musimy zrobić?
1) ssh do neTV (najlepiej po USB),
2) filesystem został tak stworzony, żeby go w prosty sposób nie zepsuć, więc musimy z consoli zrobić:
mount -o remount,rw /
3) w lokalizacji /var/local/ umieszczamy dwa pliki: wifi.sh (źródło poniżej) oraz wifi_logger.txt (pusty plik).
4) wykonujemy:
chmod +x /var/local/wifi.sh
chmod 666 /var/local/wifi_logger.txt
Zawartość pliku wifi.sh
#!/bin/bash
NOW=$(date +"%m-%d-%Y %H:%M:%S")
echo "[$NOW] 0LUK1 SERVICE RUN" >> /var/local/wifi_logger.txt
PING=0
while true
do
iwconfig wlan1 | grep "Access Point: Not-Associated"
if [ $? -eq 0 ]
then
NOW=$(date +"%m-%d-%Y %H:%M:%S")
echo "[$NOW] WiFi not working ... restarting" >> /var/local/wifi_logger.txt
/etc/init.d/NetworkManager restart
sleep 10
else
#NOW=$(date +"%m-%d-%Y %H:%M:%S")
#echo "[$NOW] WiFi working ok" >> /var/local/wifi_logger.txt
sleep 10
fi
((PING++))
#CHECK=($PING % 10)
#echo $PING
#echo $CHECK
if [ $((PING % 12)) -eq 0 ]
then
NOW=$(date +"%m-%d-%Y %H:%M:%S")
echo "[$NOW] Script alive.. " >> /var/local/wifi_logger.txt
fi
done
5) W lokalizacji /etc/init.d definiujemy nowy service (należy stworzyć plik M0luk1_service)
Źródło:
#!/bin/sh
### BEGIN INIT INFO
# Provides: 0LUK1 SERVICE - WATCH WIFI STATE
# Required-Start: $remote_fs $syslog $all
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Monitor wifi
# Description: neTV WiFi Monitor
### END INIT INFO
### START config here:
USLUGA="0luk1_wifi_service"
USLUGA_SKRYPT="wifi.sh"
### END config here.
start() {
echo "Start $USLUGA"
pkill $USLUGA_SKRYPT
/var/local/wifi.sh &
}
stop() {
echo "Stop $USLUGA"
pkill $USLUGA_SKRYPT
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
start
;;
*)
echo "Usage: /etc/init.d/0luk1_wifi_service {start|stop|restart}"
exit 1
esac
exit 0
6) Robimy nowy wpis do rc.d
update-rc.d M0luk1_service start 50 2 3 4 5 . stop 50 0 1 6 .
7) Sprawdzamy czy skrypt działa:
top | grep wifi.sh
tail -5 /var/local/wifi_logger.txt
8) jak problem z siecia znika wysyłamy podziękowania marecki_0luk1, kolegom Jarkowi i xobs'owi
-
no nareszcie, rozwiązania masz fajne tylko czas wykonania masakryczny. Muszę rozpracować co Cię motywuje, bo wynik działania masz wyśmienity.
-
no nareszcie, rozwiązania masz fajne tylko czas wykonania masakryczny. Muszę rozpracować co Cię motywuje, bo wynik działania masz wyśmienity.
Najpierw sprawdź czy pomogło. PS. Rysiu a czy u Ciebie neTV jak mu wypniesz zasilanie również uruchamia ten shitowy kreator sieci za każdym razem jak wraca prąd ?
-
Nie u mnie nie uruchamia
-
Marek u mnie od 2 dni śmiga i jest ok. Chyba działa bo za zwyczaj się wywalał wcześniej. Dam znać za parę dni, chyba, że wywali się wcześniej :)
-
Lubię to ! ;-)
Wysłane z iPhone za pomocą Tapatalk
-
4 dzień śmiga bez najmniejszych dramatów - Marek - jesteś wielki.
ps. w logach nawet słowem nie wspomniał, że coś zrobił :)
-
4 dzień śmiga bez najmniejszych dramatów - Marek - jesteś wielki.
ps. w logach nawet słowem nie wspomniał, że coś zrobił :)
@marcinwojciesz : jak tam połączenie od tamtego czasu ? ;-)
-
U mnie działa od tamtej pory bez najmniejszych problemów. Powinni Marka zatrudnić u siebie i za ten kod dać Mu co miesiąc gotówkę - czemu od razu czegoś takiego nie napisali???
Wcześniej jechałem końcówką nerwów byłem o nawet nie krok tylko stopę od wywalenia tego w diabły a teraz jest świetne i fajnie mi się sprawdza.
-
Czy jest możliwość aby neTV pokazało nam obraz na żywo?
Teraz pokazuje mi fotke.
W Fibaro mam Tak:
HC2 = Net.FHttp("192.xxx.xxx.xxx");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http://192.xxx.xxx.xxx:9000/?action=snapshot");
Jest to obraz z kamery (z malinki) spięte z dzwonkiem - jak ktoś dzwoni to wyświetla się jego fotka, niedoskonałością jest to, że często osoba ta jest niewidoczna a obraz na żywo na pewno by to poprawił.
Znacie sposób na wstawienie obrazu live?
-
wpisałem:
HC2 = Net.FHttp("192.xxx.xxx.xxx");
dane, status = HC2:GET("/bridge?cmd=seturl&value=http://192.xxx.xxx.xxx:9000/?action=stream");
ale też lipa ekran zalał matrix same zera i 1 na czarnym tle
-
chyba tylko przez odświeżanie pliku JPG lub wygenerowanie animowanego gif-a
-
tak myślałem :(. nie patrzyłem jeszcze jednej opcji - mogę wyświetlić całą stronę www ciekawe jak zachowa się wyświetlając *.php na którym jest obraz na żywo. postaram się w sobotę luknąć.
-
Czy jest może możliwość aby wyświetlić dane ze strony na którą muszę się zalogować?
wklejałem:
http://IP FIBARO/api/proxy?url=http%3A%2F%2Fadmin%3Ahasło%40IPSTRONY%2Fvideo.cgi
oraz
http://login:hasło@ADRES
ale nie śmiga.
2 pytanie: Czy jak mam dodaną kamerę w Fibaro mogę ją wyświetlić na netv? Za nic w świecie nic nie przychodzi mi do głowy.
-
Widzieliście może już to:
https://www.crowdsupply.com/alphamax/netv2
ktoś coś wie?