26

(11 odpowiedzi, napisanych Mini komputery)

Podpinam się pod temat, również poszukuje takiego urządzenia które spełniłoby funkcje domowego serwera.
Znalazłem takie coś: http://giadatech.com/index.php?act=pShow&id=16
Generalnie jest to dokładnie to czego potrzebowałem: 5 portów USB, RS232, 8 gb flash, miejsce na dysk 2.5", bateria 2250 mah, bluetooth, IR, wifi. Jedyne do czego mogę się przyczepić to słaby procesor, Cortex-A8 1.0Ghz. Co sądzicie o tym sprzęcie? Link do testu urządzenia: http://www.techpowerup.com/reviews/Giada/Q11/2.html
I mam tutaj pytanie do specjalisty, czy na takim urządzeni dałoby się zrobić aby bez problemu funkcjonował monitoring z 4 kamer, 640x480, 15 fps lub o podobnych parametrach.
Może znacie jeszcze jakieś podobe urządzenia?

27

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Właśnie problem jest też w tym że openvpn automatycznie dodaje rekordy do route, nie idzie ich edytować. To 192.168.88.19 to ip na wam routera, mam radiówkę z unikalnym ip, a mój router jest ustawiony jako router brzegowy (wszystkie porty są przekierowane na mój router).
W rt_tables dodałem
10      vpn

28

(256 odpowiedzi, napisanych Termometr)

Używasz starych plików, pobierz sobie nowe tam masz poprawione większość błędów + łatwy config.

29

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Ta, nie znam się na tym, jak masz jakiś konkretny pomysł to podrzuć i coś z tego może będzie.

30

(256 odpowiedzi, napisanych Termometr)

Zmień sobie lepiej w index.php
valueDecimals: 2
na
valueDecimals: 1

31

(14 odpowiedzi, napisanych Oprogramowanie / Software)

No tak, zadziałało tylko że vpn działa mi teraz tylko na porcie 80 (na 443 mam już normalne ip)

#edit
Poradziłem sobie tongue

ip route add 178.212.167.xx via 192.168.88.1 dev eth0.2

#edit 2
Jednak nie, dziala tylko z domowego ip..

32

(14 odpowiedzi, napisanych Oprogramowanie / Software)

ip route add default 192.168.88.1 dev tun0 table vpn
Error: either "to" is duplicate, or "192.168.88.1" is a garbage.

Coś nie bardzo mi to działa.

#Edit
Po zrobieniu:

 ip route delete 0.0.0.0/1 via 10.4.78.133 dev tun0

Zadziałało yikes

33

(256 odpowiedzi, napisanych Termometr)

A no jest jeden błąd.
w 16 lini trzeba zmienić

if(empty($id) || !isset($temp[($id)]))

na

if(!isset($temp[($id)]))

I nie będzie pokazywać wszystkich temperatur jak się termometr z id 0 kliknie wink

34

(256 odpowiedzi, napisanych Termometr)

Jak ktoś chce sobie dodać jakąś akcje na daną temperaturę to niech skrypt meteo.php zedtuje.

    foreach($e as $v) {
        $e1 = explode(" ",$v);
        $id = $e1[0]; // Id Termometra
        $temp = $e1[2]; // Temperatura na termometrze
        ...
        $a[($id)] = $temp;
        // W tym miejscu własne skrypty
       }

Skrypty można uzależnić od $id i $temp, np.:

if($id == 2 && $temp < 20.5)
system("dowonla komenda systemowa");

Takie coś uruchomi komendę systemową jak na termometrze z id 2 będzie mniej niż 20.5 stopnia.

35

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Masz racje, z tcpdump wynika że pakiety dochodzą na wan.

root@OpenWrt:~# ip route
0.0.0.0/1 via 10.4.78.133 dev tun0
default via 192.168.88.1 dev eth0.2  proto static
10.4.0.1 via 10.4.78.133 dev tun0
10.4.78.133 dev tun0  proto kernel  scope link  src 10.4.78.134
95.211.149.200 via 192.168.88.1 dev eth0.2
128.0.0.0/1 via 10.4.78.133 dev tun0
192.168.3.0/24 dev br-lan  proto kernel  scope link  src 192.168.3.1
192.168.88.0/24 dev eth0.2  proto kernel  scope link  src 192.168.88.19

36

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Mam otwarte wszystkie porty na WAN

config rule
        option src      wan
        option proto    tcp
        option target   ACCEPT

Taka konfiguracja bez openvpn bez problemu śmiga, dopiero po dodaniu option defaultroute '1' urywa się dostęp do rutera z zew..

37

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Witam.

Mecze się już z jednym problemem prawie godzinę nie mogąc znaleźć rozwiązania, być może ktoś tutaj będzie znał odpowiedź.
Mam na routerze zainstalowanego klienta openvpn, żeby na stałe łączyć się przez niego z internetem.
Jednak chciałbym mieć dostęp do routera z zew., na normalnym ip.
Oto moje configi:

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config interface 'lan'
    option ifname 'eth0.1'
    option type 'bridge'
    option proto 'static'
    option ipaddr '192.168.3.1'
    option netmask '255.255.255.0'

config interface 'wan'
    option ifname 'eth0.2'
    option proto 'dhcp'
    option macaddr '00:1F:A4:DE:17:78'

config interface 'vpn'
    option ifname 'tun0'
    option proto 'none'
    option defaultroute '1'
config defaults
    option syn_flood '1'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'lan'
    option network 'lan'
    option input 'ACCEPT'
    option output 'ACCEPT'
    option forward 'REJECT'

config zone
    option name 'wan'
    option network 'wan'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq '1'
    option mtu_fix '1'

config zone
    option name 'vpn'
    option network 'vpn'
    option input 'REJECT'
    option output 'ACCEPT'
    option forward 'REJECT'
    option masq 1

config forwarding
    option src 'vpn'
    option dest 'lan'

config forwarding
        option src lan
        option dest vpn

config forwarding
    option src 'lan'
    option dest 'wan'

#vpn
config rule
       option src              lan
       option dest             wan
       option proto            tcpudp
       option dest_ip          192.168.3.0/24
       option target           ACCEPT

config rule
       option src              lan
       option dest             wan
       option proto            tcpudp
       option target           REJECT

config rule
        option src      wan
        option proto    tcp
        option target   ACCEPT
#end
 ...

Co powinienem zmienić aby działało to tak jak chcę?

38

(189 odpowiedzi, napisanych Termometr)

Dzięki, zapomniałem o tym wink
Pobrałem te RelayBoard, przełączniki działają poprawnie jednak przy getIn 1-8 zawsze pokazuje mi open, nie ważne co zrobię. Kiedy powinno pokazać że jest closed?

#edit, ok już działa

39

(256 odpowiedzi, napisanych Termometr)

Nowy system: http://eko.one.pl/forum/viewtopic.php?id=12533

40

(189 odpowiedzi, napisanych Termometr)

Dostałem urządzenie smile
Działa jak należy, poprosiłem żeby nie montować od razu przełączników. Dodatkowo dostałem wejście I/O widoczne po prawej stronie i tu pojawia się pytanie. Czy wie ktoś jak je obsłużyć (działa, jest na nim napięcie ok 5V)
http://s22.postimg.org/7zdyod5ep/IMG_20131004_134142.jpg

41

(189 odpowiedzi, napisanych Termometr)

Mam pytanie.
Dostałem ten układ 8 przekaźników, całkiem fajny, ale myślę jakby zrobić na nim sterowanie światłem.
Bo mam tutaj dwie wersje:
a) Przełącznik zamyka obwód w włączniku światła, włącznikiem wtedy się nie da sterować, jedynie gdy nie działa przełącznik sterowanie tradycyjnym włącznikiem działa
b) Zrobienie to w systemie instalacji schodowej, jednak wtedy nie będzie można określić statusu czy światło jest włączone/wyłączone.
http://www.zbychdom.republika.pl/rozne/Schodowy.gif

Czy są jeszcze jakieś inne możliwości?

42

(189 odpowiedzi, napisanych Termometr)

Wrzucam kod index.php i data.php gdyby ktoś chciał, dodałem na stronie kilka temperatur na jednym wykresie

<?php
/** data.php
<?php
$id = (int)$_GET['id'];
echo "[".file_get_contents($id.".txt")."]";
?>
**/
$temp = array(); $obecna = array();
$test = false; // pokazuje wszystkie pokoje na wykresie
$temp[0] = "Sypialnia";
$temp[1] = "Zewnątrz #1";
$temp[2] = "Pokój Dagmary";
$temp[3] = "Strych";
$temp[4] = "Łazienka";
$temp[5] = "Pokój Bartosza";
$temp[6] = "Salon";
$temp[7] = "Zewnątrz #2";
$temp[8] = "Piec (temp)";
$temp[9] = "Grunt (10 cm)";
$temp[10] = "Kaloryfer";
$temp[11] = "Zewnątrz #3";
$temp[12] = "Kuchnia";
$temp[99] = "Status Pieca";
// obecna temp
$a = unserialize(base64_decode(file_get_contents("last.txt")));
$ps = file_get_contents("piec_status.txt");
foreach($a as $id => $t) {
    $obecna[($id)] = "".$t."°C";
}
if(!isset($_GET['id']))
    $test = true;
?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Temperatura</title>

        <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>




        <script type="text/javascript">



$(function() {
<?php
if(!$test)
    echo "    $.getJSON('data.php?id=".$_GET['id']."', function(data) {";
?>


Highcharts.setOptions({
lang: {
months: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec',
'Lipiec', 'Śierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
//months: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze',
//'Lip', 'Śie', 'Wrz', 'Paź', 'Lis', 'Gru'],
weekdays: ['Nie', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob']
},
global: {
    useUTC: false
    }

}),


        // Create the chart


        window.chart = new Highcharts.StockChart({
            chart: {
                renderTo: 'container'
            },
xAxis: {
        type: 'datetime',
        dateTimeLabelFormats: {
        second: '%d-%m-%y<br/>%H:%M:%S',
        minute: '%d-%m<br/>%H:%M',
//        minute: '%d-%m-%y<br/>%H:%M',
        hour: '%d-%m<br/>%H:%M',
//        hour: '%d-%m-%y<br/>%H:%M',
        day: '%Y<br/>%d-%m',
        week: '%Y<br/>%d-%m',
        month: '%m-%Y',
        year: '%Y'
        }
    },



            rangeSelector: {
buttons: [{
    type: 'day',
    count: 1,
    text: '1d'
}, {
    type: 'day',
    count: 7,
    text: '7d'
}, {
    type: 'month',
    count: 1,
    text: '1m'
}, {
    type: 'year',
    count: 1,
    text: '1rok'
}, {
    type: 'all',
    text: 'All'
}],
                selected: 0
            },

            title: {
                text: '<?php  if($_GET['id'] == 99) echo "".$temp[($_GET['id'])]; else echo "Temperatura - ".$temp[($_GET['id'])]; ?>'
            },
            

yAxis: {
        title: {
            text: '<?php echo ($_GET['id'] == 99 ? "Status" : "Temperatura ( °C )"); ?>'
        },
        },
        <?php
            if(!$test) {
                echo "series: [{
                    name: '".($_GET['id'] == 99 ? "Status" : "Temperatura")."',
                    data: data,
                    type: 'spline',
                    shadow: true,
                    tooltip: {
                        valueDecimals: ".($_GET['id'] == 99 ? "0" : "2").",
                    valueSuffix: '".($_GET['id'] == 99 ? "" : " °C")."'
                    }
                }] ";
            } else {
                echo "series: [";
                    foreach($temp as $k => $v) {
                        if(in_array($k,array(99,1,7,11,10,8,3,9))) continue;
                        if($k) echo ",";
                        echo "{
                        name: '".$v."',
                        data: [".file_get_contents($k.'.txt')."],
                        type: 'spline',
                        shadow: true,
                        tooltip: {
                            valueDecimals: '2',
                            valueSuffix: ' °C'
                            }
                        }";
                    }
                echo "] ";
            }
        ?>
        });
    <?php
    if(!$test)
        echo "});";
    ?>
});
        </script>
    </head>
    <body>
<script src="js/highstock.js"></script>
<script src="js/modules/exporting.js"></script>

<script type="text/javascript" src="js/themes/gray.js"></script>

<b>Temperatura by BBarwik&nbsp;&nbsp;&nbsp;(<a href="?">wszystkie pokoje</a>)</b>
<table rules="all" border=1 width="90%"><tr width="90%">
<td align="center"><a href="?id=6">SALON</a></td>
<td align="center"><a href="?id=12">KUCHNIA</a></td>
<td align="center"><a href="?id=5">POKÓJ BARTOSZA</a></td>
<td align="center"><a href="?id=2">POKÓJ DAGMARY</a></td>
<td align="center"><a href="?id=0">SYPIALNIA</a></td>
<td align="center"><a href="?id=4">ŁAZIENKA</a></td>
<td align="center"><a href="?id=3">STRYCH</a></td></tr>
<td align="center"><b><?php echo $obecna[6]; ?></b></td>
<td align="center"><b><?php echo $obecna[12]; ?></b></td>
<td align="center"><b><?php echo $obecna[5]; ?></b></td>
<td align="center"><b><?php echo $obecna[2]; ?></b></td>
<td align="center"><b><?php echo $obecna[0]; ?></b></td>
<td align="center"><b><?php echo $obecna[4]; ?></b></td>
<td align="center"><b><?php echo $obecna[3]; ?></b></td></tr><tr>
<td align="center"><a href="?id=1">ZEWNĄTRZ #1</a></td>
<td align="center"><a href="?id=7">ZEWNĄTRZ #2</a></td>
<td align="center"><a href="?id=11">ZEWNĄTRZ #3</a></td>
<td align="center"><a href="?id=8">&nbsp;PIEC (temp)&nbsp;</a></td>
<td align="center"><a href="?id=10">KALORYFER</a></td>
<td align="center"><a href="?id=9">GRUNT (10 cm)</a></td>
<td align="center"><a href="?id=99">&nbsp;PIEC (status)&nbsp;</a></td>
</tr><tr>
<td align="center"><b><?php echo $obecna[1]; ?></b></td>
<td align="center"><b><?php echo $obecna[7]; ?></b></td>
<td align="center"><b><?php echo $obecna[11]; ?></b></td>
<td align="center"><b><?php echo $obecna[8]; ?></b></td>
<td align="center"><b><?php echo $obecna[10]; ?></b></td>
<td align="center"><b><?php echo $obecna[9]; ?></b></td>
<td align="center"><b><?php echo ($ps == 1 ? '<font color="green">ON</font>' : '<font color="red">OFF</font>'); ?></b></td></tr>
</table><br>
<div id="container" style="height: 500px"></div><br>
Programy dla pieca:<br>
<?php
$dni_tygodnia = array( 'Nd', 'Pon', 'Wt', 'Śr', 'Czw', 'Pt', 'Sob' );
echo "<table rules='all' border=1 width='80%'><tr>
<td>Nazwa Programu</td>
<td>Warunki</td>
<td>Ramy czasowe</td>
<td>Dni tygodnia</td>
<td>Stan</td></tr>";
foreach(file("piec.txt") as $k => $v) {
    if(strlen($v) < 10) continue;
    $v = str_replace("&&","\r\n",$v);
    $d = unserialize($v);
echo "<tr>
<td>".$d['name']."</td><td>";
foreach(explode("\r\n",trim($d['vars'])) as $kk => $e) {
    if($kk > 0)
        echo "<br>";
    $e1 = explode(" ",$e);
    echo $temp[($e1[0])]." ".$e1[1]." ".$e1[2]."";
}
echo "</td><td>".nl2br($d['czas'])."</td>
<td>"; 
foreach($d['dni'] as $kk => $vv)
    if($vv == 1)
        echo $dni_tygodnia[($kk)]."&nbsp;&nbsp;";
echo "</td>
<td>".($d['status'] == 1 ? '<font color="green">Aktywny</font>' : '<font color="red">Nieaktywny</font>')."</td></tr>";
}
echo "</table><br>";
?>
<a href="strych2.jpg">Jesteś ciekaw jak wygląda stacja?</a><br>
Budowane wg. <a href="http://openwrt.pl/doku.php/usb:1wire">tego</a> poradnika.<br>
Kontakt: <a href="mailto:bbarwik@gmail.com">bbarwik@gmail.com</a><br>
    </body>
</html>

http://bbarwik.com/meteo/meteo.7z - tu są pliki z starym systemem i instrukcją, po podmianie index.php na nowy powinno wszystko ładnie nadal działać.

43

(189 odpowiedzi, napisanych Termometr)

Witam.
Stacja meteo została już chyba maksymalnie rozbudowana, 13 termometrów - http://bbarwik.com/meteo/

Napisałem do gościa co wystawił ta aukcje http://allegro.pl/modul-8-przekaznikow- … 54982.html i dostałem odpowiedź na następujące pytania:
1. Jak przebiega sterowanie urządzeniem na linuksie (openwrt)? Czy komendy echo "cos" > /dev/ttyUSBX działają, a jeśli tak to jak one wyglądają.
2. Czy dałoby się wyciągnąć te przekaźniki, zamiast niego podpiąć 2 kable i przekaźnik podpiąć dopiero przy urządzeniu? Myślę że nie powinno być z tym problemów jeśli nie ma żadnych dodatkowych elementów za przekaźnikiem tylko bezpośrednio ma on połączenie do tych 3 styków. Chodzi o to że łatwiej pociągnąć mi dwa kable skrętki z niskim napięciem do urządzenia niż ciągnąć od urządzenia po 5-10m grubych kabli.
3. Wystawiacie fakturę vat?

Ad1. jest to trochę bardziej skompilowane. Mam serwer dla linuksa + klienta na androida . Można uruchomic na openwrt. Już uruchamiałem to kilku użytkownikom, oraz mam sam u siebie (router musi mieć trochę pamięci lub exroota do zainstalowania bibliotek). Klienta mam na razie tylko dla androida (PC i iOS w planach). Specyfikacja protokołu w załączniku. link do filmiku http://www.youtube.com/watch?v=73DhEVNqW3Y Aplikacja na androida już wygląda trochę lepiej. Obsługuje wiele płytek.
Ad2. jest to teoretycznie możliwe. W praktyce kwestia tkwi w długości przewodu. Przekaźniki są zasilane z 5V, wiec spadki na przewodzenie muszą być jak najmniejsze. Skrętka owszem, ale nie jestem w stanie powiedzieć na ile metrów to wystarczy. Jeżeli będzie Pan chciał tak zrobić, to proszę o info, wtedy nie będę montował przekaźników i złączy śrubowych na PCB, tylko zamontuje je Pan sam wg uznania.
Ad3. Tak,

Mam serwer skompilowany dla ar71xx więc wyślę Panu binarkę i bez problemu pójdzie tutaj wszystko uruchomić.

W związku z czym prawdopodobnie zakupie ten sprzęt na dniach.

44

(189 odpowiedzi, napisanych Termometr)

Dostałem odpowiedź - można tak sterować.

komenda:
ff portb =
ustawia stan  wysoki na całym porcie B
Komenda:
00 portb =
ustawia stan niski na całym porcie B

Jednak są dwa problemy:
1) Cały układ jest do samodzielnego montażu
2) "Nie można dołączyć przekaźników bezpośrednio, wymagany jest prosty driver np w postaci tranzystora.", a ja nigdy nie miałem tranzystora w ręce...

Gotowe dla mnie rozwiązanie kosztowałoby zaś 80 zł i miałoby tylko dwa przełączniki, trochę za drogo (8 przełączników jest za prawie 300 zł).
http://sklep.avt.pl/p/pl/481412/karta+p … miony.html

Póki co jest trochę za drogo, zwłaszcza że nie miałoby to jakiegoś większego praktycznego zastosowania (w grę wchodziło sterowanie światłem na zew.).

45

(189 odpowiedzi, napisanych Termometr)

rufik - plik txt, skrypt php odpalany z cron co 10 min zapisuje dane

    system("digitemp_DS9097U -a > meteo.txt");
    $f = file_get_contents("meteo.txt");
    $e = explode("Sensor ",$f); unset($e[0]);
    foreach($e as $v) {
        $e1 = explode(" ",$v);
        file_put_contents("/www/meteo/".$e1[0].".txt",",[".time(NULL)."000,".$e1[2]."]",FILE_APPEND);
    }

http://bbarwik.com/meteo/1.txt
http://bbarwik.com/meteo/2.txt
...
http://bbarwik.com/meteo/10.txt
http://bbarwik.com/meteo/99.txt

A jeśli chodzi o przełącznik to myślę o http://sklep.avt.pl/p/pl/483877/konwert … ntazu.html
Cezary - czy takim czymś da się sterować za pomocą echo "cos" > /dev/ttyUSBX ?
Napisałem też email do producenta z podobnym pytaniem, ciekawe co odpiszę.

46

(189 odpowiedzi, napisanych Termometr)

Mam router WDR-3600, ma dwa porty usb.
Okazało się że za pomocą gpio  (echo 1 > /sys/devices/virtual/gpio/gpio22/value) mogę sterować napięciem na każdym z nich.
Do tego okazało się że aby kontrolować mój piec wystarczy jedynie zamknąć obwód na którym jest napięcie ok 45V (przekonałem się po tym jak mnie kopnęło). Dzięki temu ( http://www.elportal.pl/pdf/k14/56_13.pdf ) poradnikowi dowiedziałem się że są przełączniki reagujące na napięcie 5V które zamykają obwód. Kupiłem taki przełącznik, RM95P-5W i diodę prostowniczą. Połączyłem to tak jak na schemacie, tylko że zamiast obwodu listwy był zamykany obwód pieca.
Napisałem programy w php które sterują piecem ustawiając odpowiednią wartość value w gpio22 i to wszystko - działa.
Dodałem informacje o aktualnych programach i stanie pieca na: http://bbarwik.com/meteo/
Trochę zdjęć i screenów:
http://bbarwik.com/meteo/piec4.jpg
http://bbarwik.com/meteo/piec1.png
http://bbarwik.com/meteo/piec2.png
http://bbarwik.com/meteo/piec3.png
http://bbarwik.com/meteo/strych2.jpg

Swoją drogą, pytanie do specjalisty. Jaki jest najtańszy hub usb na którym można by sterować zasilaniem każdego z portów? Mam jeszcze trochę przełączników RM96 i chętnie zrobiłbym sterowanie innymi urządzeniami wink

47

(189 odpowiedzi, napisanych Termometr)

Witajcie.
Po kilku dniach przyszła pora na kolejny postęp w budowie inteligentnego domu.
Za około 20 zł zbudowałem układ do sterowania piecem, uruchamia się jeśli na złączu usb pojawi się napięcie (sterowane przez gpio)
http://s24.postimg.org/le72qy8px/camera.png

48

(189 odpowiedzi, napisanych Termometr)

Podłączam się do pytania gonzalesa, chętnie bym rozbudował stacje jeśli koszt powiedzmy 2-3 wilgotnościomierzy ze sprzętem zmieścił się poniżej 100 zł.

Swoją drogą, skończyłem już tą moją domowa stacje i upubliczniłem na mojej stronie.
http://bbarwik.com/meteo/
Ciekawa sprawa, wielu ludziom się takie coś podoba wink

49

(189 odpowiedzi, napisanych Termometr)

No to trudno, aż tak mi to potrzebne nie jest by płacić 100 zł, wolę sobie kupić 5 kolejnych termometrów wink

50

(189 odpowiedzi, napisanych Termometr)

W zasadzie to potrzebowałbym jedynie czujników wilgotności, w cenie nie większej niż 30 zł. Jak są droższe to sobie odpuszczę bo aż tak nie jest mi to potrzebne.