26.9.2016, 15:07
Ahoj dá se nějak vyparsovat v openelec informace o přehrávaném videu (název, čas apod.) ideálně do souboru? Chtěl bych to použít na display u mého HTPi.
![[Obrázek: DnVp.jpg]](http://www.jpeg.cz/images/2016/09/19/DnVp.jpg)
Hodnocení tématu:
Informace o videu
|
(29.9.2016, 15:21)Petrvald Napsal(a): Mohl by jsi podrobněji rozepsat jak máš pořešeno zapínání/vypínání přes DO (použité součástky, nastavení v OS....) ? dík
#include <IRremote.h>
#define PRODLEVA 50
bool MinulyStav = 0; // priznak predchoziho stavu tlacitka (1 .. stisknuto)
unsigned long CasZmeny; // promenna pro ulozeni casu zmeny stavu tlacitka
int zelena; // Zelene tlacitko na ovladaci TV Sony Bravia
int RECV_PIN = 3; // vstup od IRLED
int poc; // promenna na pocitani cycklu
int jas; // jas diody
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Zacatek cteni pinu v seriovem monitoru
pinMode(3, INPUT_PULLUP); // vstup od IRLED
pinMode(4, OUTPUT); // R
pinMode(5, OUTPUT); // G
pinMode(6, OUTPUT); // B
pinMode(7, INPUT_PULLUP); // zpetna vazba od RasPi
pinMode(12, OUTPUT); // napajeni pro RasPi
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(12, LOW);
}
void loop() {
// **OVLADANI RGB LED**
if (digitalRead(7) == 0 && digitalRead(12) == 1) // RasPi si seplo samodrzny kontakt vypnu napajeni
{
analogWrite(5, 150); // zelena LED = 1
analogWrite(4, 255); // cervena LED = 0
analogWrite(6, 255); // modra LED = 0
delay (5000); // cekej 5s
digitalWrite(12, LOW); // vypnu napajeni pro RasPi
}
else if (digitalRead(7) == 1 && digitalRead(12) == 1) // pokud RasPi jeste nenabehlo
{
analogWrite(4, 254); // cervena LED = 1
analogWrite(5, 254); // zelena LED = 1
analogWrite(6, 255); // modra LED = 0
}
else if (digitalRead(7) == 0 && digitalRead(12) == 0) // RasPi bezi a drzi si napajeni
{
analogWrite(6, 254); // modra LED = 1
analogWrite(5, 255); // zelena LED = 0
analogWrite(4, 255); // cervena LED = 0
}
else if (digitalRead(7) == 1 && digitalRead(12) == 0) // arduino v pohotovosti
{
analogWrite(4, 254); // cervena LED = 1
analogWrite(5, 255); // zelena LED = 0
analogWrite(6, 255); // modra LED = 0
}
// **ODCHYT TLACITKA Z DALKOVEHO OVLADACE**
if (irrecv.decode(&results)) {
int zelena = results.value;
if ((zelena == 13033) && ((digitalRead(7) == 1) && (digitalRead(12) == 0))) // pokud je stisknuto pozadovane tlacitko a zatim neprobehla akce spusteni RasPi
{
digitalWrite(12, HIGH); // sepni napajeni pro RasPi
analogWrite(5, 255); // zelena LED = 0
analogWrite(6, 255); // modra LED = 0
jas = 256; // zacatek bliknuti s cervenou LED
for(poc=0;poc<256;poc++){
jas = jas - 1;
analogWrite(4, jas);
delay(10);
}
for(poc=0;poc<256;poc++){
analogWrite(4, poc);
delay(10);
} // konec bliknuti s cervenou LED
}
Serial.println(zelena, HEX); // prepis HEX na seriovy monitor
irrecv.resume(); // Cti dalsi hodnotu
}
if (digitalRead(3) == 0) // je-li tlacitko stisknuto
{
if (MinulyStav == 0 && millis() - CasZmeny > PRODLEVA) // neni-li nastaven priznak
{ // tlacitko stisknuto a uplynul-li vetsi cas od zmeny stavu tlacitka nez je mez (50ms)
MinulyStav = 1; // nastav priznak tlacitko stisknuto
}
}
else // neni-li stisknuto tlacitko
{
CasZmeny = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
MinulyStav = 0; // nuluj priznak, tlacitko stisknuto
}
}
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.1
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# Konfigurace GPIO
#----------------------------------------------------------------------------------------------------------------------------------
echo "spouštím script pro HTPi"
echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction
#----------------------------------------------------------------------------------------------------------------------------------
# Samodrž pro napájení
#----------------------------------------------------------------------------------------------------------------------------------
cnt=0
until [ "$cnt" = "1" ]; do
echo "nahazuji samodrž";
echo "1" > /sys/class/gpio/gpio17/value;
out=$(cat /sys/class/gpio/gpio17/value);
if [ "$out" -eq "1" ]; then
echo "samodrž nahozena, informuji Arduino";
echo "1" > /sys/class/gpio/gpio18/value;
cnt=1;
else
echo "opět nahazuji samodrž";
cnt=0;
fi
unset out
done
exit 0
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.4
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# FRONTEND pro NAS server Raspberry
#----------------------------------------------------------------------------------------------------------------------------------
echo 'přihlašuji se:' `date`
#----------------------------------------------------------------------------------------------------------------------------------
# Konfigurační hlavička
#----------------------------------------------------------------------------------------------------------------------------------
uzivatel=$(whoami)
pc=$(uname -n)
cesta="/storage/komunikace"
cesta_disk1="/storage/toshiba"
cesta_disk2="/storage/mybook"
cesta_disk3="/storage/seagate"
kom="Komunikace.txt"
user="Prihlaseni.txt"
ip=$(cat ~/.cache/connman/ethernet_b827ebb63149_cable/settings | grep "IPv4.DHCP.LastAddress" | cut -d '=' -f2)
backend="raspberry"
#----------------------------------------------------------------------------------------------------------------------------------
# Přihlášení se k backendu
#----------------------------------------------------------------------------------------------------------------------------------
sed -i "/^$pc/d" $cesta/$user;
echo `uname -n` $ip `date` >> $cesta/$user
#----------------------------------------------------------------------------------------------------------------------------------
# Vyčtení stavu disků a NAS
#----------------------------------------------------------------------------------------------------------------------------------
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
restart="< $cesta/$kom | grep Restart | cut -c 9-"
restart=$(cat $cesta/$kom | grep Restart | cut -c 9-)
#----------------------------------------------------------------------------------------------------------------------------------
# Prohledání kdo je přihlášený a jestli je mezi nimy backend, pokud ano a jsou disky už připojené
# od jiného frontendu, požádám o připojení disků
#----------------------------------------------------------------------------------------------------------------------------------
echo "požadavek pro disk $cesta_disk1 je" $disk1
echo "požadavek pro disk $cesta_disk2 je" $disk2
echo "požadavek pro disk $cesta_disk3 je" $disk3
kontrola=$(grep -v $pc $cesta/$user | wc -l)
echo "pokud se někdo přihlásil mám > 0 - počet přihlášených:"$kontrola
echo "hledám NAS"
nas=$(grep $backend $cesta/$user | cut -d ' ' -f1 )
if [ -n $nas ] 2>/dev/null; then
echo "nalezeno" $nas
if [ "$disk1" -eq "2" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk1";
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Filmy $cesta_disk1;
fi
if [ "$disk2" -eq "2" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk2";
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Serialy $cesta_disk2;
fi
if [ "$disk3" -eq "2" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk3";
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/FilmyA3d $cesta_disk3;
fi
fi
#-----------------------------------------------------------------------------------------------------------------------------------
# Vyčtení stavu disků a NAS ve smyčce
#-----------------------------------------------------------------------------------------------------------------------------------
cnt=0
while [ 1 ]; do
cnt=$[cnt+1]
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
restart="< $cesta/$kom | grep Restart | cut -c 9-"
restart=$(cat $cesta/$kom | grep Restart | cut -c 9-)
#----------------------------------------------------------------------------------------------------------------------------------
# Prohledání ve smyčce kdo je přihlášený a jestli je mezi nimy backend
#----------------------------------------------------------------------------------------------------------------------------------
echo "požadavek pro disk $cesta_disk1 je" $disk1
echo "požadavek pro disk $cesta_disk2 je" $disk2
echo "požadavek pro disk $cesta_disk3 je" $disk3
kontrola=$(grep -v $pc $cesta/$user | wc -l)
echo "pokud se někdo přihlásil mám > 0 - počet přihlášených:"$kontrola
echo "hledám NAS"
nas=$(grep $backend $cesta/$user | cut -d ' ' -f1 )
if [ -n $nas ] 2>/dev/null; then
echo "nalezeno" $nas
#----------------------------------------------------------------------------------------------------------------------------------
# Pokud ano, požádám o připojení disků
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$disk1" -eq "3" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk1";
sed -i '/diskA/s/3/1/' $cesta/$kom;
fi
if [ "$disk2" -eq "3" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk2";
sed -i '/diskB/s/3/1/' $cesta/$kom;
fi
if [ "$disk3" -eq "3" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk3";
sed -i '/diskC/s/3/1/' $cesta/$kom;
fi
if [ "$disk1" -eq "1" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk1";
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
until [ "$disk1" -eq "2" ]; do
for x in / - \\ \|; do
echo -ne "čekám na backend... $x \r";
sleep 1;
done
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
done
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Filmy $cesta_disk1;
fi
if [ "$disk2" -eq "1" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk2";
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
until [ "$disk2" -eq "2" ]; do
for x in / - \\ \|; do
echo -ne "čekám na backend... $x \r";
sleep 1;
done
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
done
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Serialy $cesta_disk2;
fi
if [ "$disk3" -eq "1" -a "$kontrola" -ne "0" -a "$restart" -eq "2" ] 2>/dev/null; then
echo "připojuji $cesta_disk3";
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
until [ "$disk3" -eq "2" ]; do
for x in / - \\ \|; do
echo -ne "čekám na backend... $x \r";
sleep 1;
done
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
done
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/FilmyA3d $cesta_disk3;
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Pokud je disk disk1 již v backendu připojen, nebo je požadavek na jeho připojení a backend se odhlásí, odpojím disk1
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$kontrola" -eq "0" -a \( "$disk1" -eq "2" -o "$disk1" -eq "1" \) ] 2>/dev/null; then
echo "odpojuji $cesta_disk1";
sed -i '/diskA/s/1/0/' $cesta/$kom;
sed -i '/diskA/s/2/0/' $cesta/$kom;
umount $cesta_disk1;
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Pokud je disk disk2 již v backendu připojen, nebo je požadavek na jeho připojení a backend se odhlásí, odpojím disk2
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$kontrola" -eq "0" -a \( "$disk2" -eq "2" -o "$disk2" -eq "1" \) ] 2>/dev/null; then
echo "odpojuji $cesta_disk2";
sed -i '/diskB/s/1/0/' $cesta/$kom;
sed -i '/diskB/s/2/0/' $cesta/$kom;
umount $cesta_disk2;
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Pokud je disk disk3 již v backendu připojen, nebo je požadavek na jeho připojení a backend se odhlásí, odpojím disk3
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$kontrola" -eq "0" -a \( "$disk3" -eq "2" -o "$disk3" -eq "1" \) ] 2>/dev/null; then
echo "odpojuji $cesta_disk3";
sed -i '/diskC/s/1/0/' $cesta/$kom;
sed -i '/diskC/s/2/0/' $cesta/$kom;
umount $cesta_disk3;
fi
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola požadavku na restart NAS, popř. reakce na tuto událost
#----------------------------------------------------------------------------------------------------------------------------------
echo "požadavek na restart NAS:" $restart
sleep 45;
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli je připojen disk, pokud ne pokusím se o nové připojení
#----------------------------------------------------------------------------------------------------------------------------------
if [ -n "$(ls -A $cesta_disk1)" ] 2>/dev/null; then
echo "složka $cesta_disk1 neni prázdná";
else
echo "složka $cesta_disk1 je prázdná";
umount $cesta_disk1;
sleep 2;
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Filmy $cesta_disk1;
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli je připojen disk, pokud ne pokusím se o nové připojení
#----------------------------------------------------------------------------------------------------------------------------------
if [ -n "$(ls -A $cesta_disk2)" ] 2>/dev/null; then
echo "složka $cesta_disk2 neni prázdná";
else
echo "složka $cesta_disk2 je prázdná";
umount $cesta_disk2;
sleep 2;
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/Serialy $cesta_disk2;
fi
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli je připojen disk, pokud ne pokusím se o nové připojení
#----------------------------------------------------------------------------------------------------------------------------------
if [ -n "$(ls -A $cesta_disk3)" ] 2>/dev/null; then
echo "složka $cesta_disk3 neni prázdná";
else
echo "složka $cesta_disk3 je prázdná";
umount $cesta_disk3;
sleep 2;
mount -t cifs -o user=pi,password=raspberry,rw //192.168.4.9/FilmyA3d $cesta_disk3;
fi
cnt=0
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli mě backend nesmazal, pokud ano opět se přihlásím
#----------------------------------------------------------------------------------------------------------------------------------
grep -iq $pc $cesta/$user && echo "jsem stále online" || echo `uname -n` $ip `date` >> $cesta/$user
done
exit 0
#!/usr/bin/python
#--------------------------------------
# ___ ___ _ ____
# / _ \/ _ \(_) __/__ __ __
# / , _/ ___/ /\ \/ _ \/ // /
# /_/|_/_/ /_/___/ .__/\_, /
# /_/ /___/
#
# lcd_16x2.py
# 16x2 LCD Test Script
#
# Author : Matt Hawkins
# Date : 06/04/2015
#
# http://www.raspberrypi-spy.co.uk/
#
# Copyright 2015 Matt Hawkins
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#--------------------------------------
# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write) - GROUND THIS PIN
# 6 : Enable or Strobe
# 7 : Data Bit 0 - NOT USED
# 8 : Data Bit 1 - NOT USED
# 9 : Data Bit 2 - NOT USED
# 10: Data Bit 3 - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V**
# 16: LCD Backlight GND
#import
import sys
sys.path.append('/storage/.kodi/addons/python.RPi.GPIO/lib')
import RPi.GPIO as GPIO
import datetime
import time
# Define GPIO to LCD mapping
LCD_RS = 25
LCD_E = 4
LCD_D4 = 5
LCD_D5 = 6
LCD_D6 = 12
LCD_D7 = 13
# Define some device constants
LCD_WIDTH = 16 # Maximum characters per line
LCD_CHR = True
LCD_CMD = False
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005
localtime = time.asctime( time.localtime(time.time()) )
def main():
# Main program block
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7
# Initialise display
lcd_init()
while True:
prvniradka=sys.argv[1]
druharadka=sys.argv[2]
# Send some test
lcd_string((prvniradka),LCD_LINE_1)
lcd_string((druharadka),LCD_LINE_2)
time.sleep(3) # 3 second delay
def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD) # 110011 Initialise
lcd_byte(0x32,LCD_CMD) # 110010 Initialise
lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
lcd_byte(0x01,LCD_CMD) # 000001 Clear display
time.sleep(E_DELAY)
def lcd_byte(bits, mode):
# Send byte to data pins
# bits = data
# mode = True for character
# False for command
GPIO.output(LCD_RS, mode) # RS
# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)
# Toggle 'Enable' pin
lcd_toggle_enable()
# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)
# Toggle 'Enable' pin
lcd_toggle_enable()
def lcd_toggle_enable():
# Toggle enable
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)
def lcd_string(message,line):
# Send string to display
message = message.ljust(LCD_WIDTH," ")
lcd_byte(line, LCD_CMD)
i=0
while i < len(message):
if message[i] == "|" :
hexadec = message[i+1:i+3]
desit = int(hexadec, 16)
lcd_byte(desit,LCD_CHR)
i=i+2
else:
lcd_byte(ord(message[i]),LCD_CHR)
i = i + 1
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
pass
finally:
lcd_byte(0x01, LCD_CMD)
lcd_string("Cekam",LCD_LINE_1)
lcd_string("na data",LCD_LINE_2)
GPIO.cleanup()
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.1
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#---------------------------------------------------------------------------------------------------------------------------------
# Inicializace GPIO
#---------------------------------------------------------------------------------------------------------------------------------
echo "22" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio22/direction
echo "23" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio23/direction
echo "24" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio24/direction
echo "27" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio27/direction
#---------------------------------------------------------------------------------------------------------------------------------
# Zacatek smycky
#---------------------------------------------------------------------------------------------------------------------------------
cnt=0
while [ 1 ]; do
#---------------------------------------------------------------------------------------------------------------------------------
# Konfiguracni hlavicka
#---------------------------------------------------------------------------------------------------------------------------------
uzivatel=$(whoami)
pc=$(uname -n)
cpu=$(cputemp | tr -d 'C')
gpu=$(gputemp | tr -d 'C')
cesta="/storage/komunikace"
cesta_disk1="toshiba"
cesta_disk2="mybook"
cesta_disk3="seagate"
kom="Komunikace.txt"
user="Prihlaseni.txt"
ip=$(cat ~/.cache/connman/ethernet_b827ebb63149_cable/settings | grep "IPv4.DHCP.LastAddress" | cut -d '=' -f2)
backend="raspberry"
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
restart="< $cesta/$kom | grep Restart | cut -c 9-"
restart=$(cat $cesta/$kom | grep Restart | cut -c 9-)
kontrola=$(grep -v $pc $cesta/$user | wc -l)
#---------------------------------------------------------------------------------------------------------------------------------
# Vypis textu
#---------------------------------------------------------------------------------------------------------------------------------
if [ "$disk1" -eq "2" -a "$disk2" -eq "2" -a "$disk3" -eq "2" ] 2>/dev/null; then
echo "0" > /sys/class/gpio/gpio27/value;
else
echo "1" > /sys/class/gpio/gpio27/value;
fi
if [ "$cpu" -le "65" ] 2>/dev/null; then
echo "1" > /sys/class/gpio/gpio22/value;
else
echo "0" > /sys/class/gpio/gpio22/value;
fi
if [ "$cpu" -ge "65" -a "$cpu" -le "75" ] 2>/dev/null; then
echo "1" > /sys/class/gpio/gpio23/value;
else
echo "0" > /sys/class/gpio/gpio23/value;
fi
if [ "$cpu" -ge "75" -a "$cpu" -le "90" ] 2>/dev/null; then
echo "1" > /sys/class/gpio/gpio24/value;
else
echo "0" > /sys/class/gpio/gpio24/value;
fi
sleep 3;
$(dirname $0)/lcd_16x2.py `(date +%a)`' '`(date +%d.%m.%Y)` ' '`(date +%H:%M:%S)` &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py `uname -n` $ip &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "Teplota procesor" "CPU: $cpu"'|B2C' &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "Teplota grafika" "GPU: $gpu"'|B2C' &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "pozadavek pro" "$cesta_disk1" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "2=prip.3=odpoj." "je $disk1" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "pozadavek pro" "$cesta_disk2" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "2=prip.3=odpoj." "je $disk2" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "pozadavek pro" "$cesta_disk3" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "2=prip.3=odpoj." "je $disk3" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "pozadavek na" "restart NAS" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "0=ANO 2=NE" "je $restart" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
$(dirname $0)/lcd_16x2.py "aktualni pocet" "prihlasenych:$kontrola" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
if [ -n "$(ls -A /storage/$cesta_disk1)" ] 2>/dev/null; then
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk1" "neni prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
else
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk1" "je prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
fi
if [ -n "$(ls -A /storage/$cesta_disk2)" ] 2>/dev/null; then
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk2" "neni prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
else
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk2" "je prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
fi
if [ -n "$(ls -A /storage/$cesta_disk3)" ] 2>/dev/null; then
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk3" "neni prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
else
$(dirname $0)/lcd_16x2.py "slozka $cesta_disk3" "je prazdna" &
pid=$!
sleep 3;
kill -9 $pid
unset pid
fi
done
exit 0
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.3
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# BACKEND pro NAS server Raspberry
# konfigurační hlavička
#----------------------------------------------------------------------------------------------------------------------------------
pc=$(uname -n)
uzivatel=$(echo $USER)
cesta="$(dirname $0)"
velikost="100"
souborovysytem="ramfs"
nazev_slozky="RAMdisk"
pripojnybod="/home/$uzivatel/$nazev_slozky"
#----------------------------------------------------------------------------------------------------------------------------------
# příprava pro použití GPIO jako výstupy
#----------------------------------------------------------------------------------------------------------------------------------
raspi-gpio get 17 | grep -iq "OUTPUT" && echo "GPIO 0 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 0"; raspi-gpio set 17 op dl
raspi-gpio get 18 | grep -iq "OUTPUT" && echo "GPIO 1 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 1"; raspi-gpio set 18 op dl
raspi-gpio get 27 | grep -iq "OUTPUT" && echo "GPIO 2 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 2"; raspi-gpio set 27 op dl
raspi-gpio get 22 | grep -iq "OUTPUT" && echo "GPIO 3 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 3"; raspi-gpio set 22 op dl
raspi-gpio get 23 | grep -iq "OUTPUT" && echo "GPIO 4 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 4"; raspi-gpio set 23 op dl
raspi-gpio get 24 | grep -iq "OUTPUT" && echo "GPIO 5 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 5"; raspi-gpio set 24 op dl
raspi-gpio get 25 | grep -iq "OUTPUT" && echo "GPIO 6 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 6"; raspi-gpio set 25 op dl
raspi-gpio get 4 | grep -iq "OUTPUT" && echo "GPIO 7 je nakonfigurován, přeskakuji..." || echo "provádím konfiguraci GPIO 7"; raspi-gpio set 4 op dl
#----------------------------------------------------------------------------------------------------------------------------------
# kontrola jestli neběží předchozí proces, případné zabití
#----------------------------------------------------------------------------------------------------------------------------------
pid=$(ps -e | grep "runnas.sh" | sed 's/^ *//;s/ *$//' | grep -v $$ | cut -d' ' -f1)
echo "nalezen předchozí proces s PID:"$pid" zabíjím"
kill -9 $pid 2>/dev/null;
#----------------------------------------------------------------------------------------------------------------------------------
# kontrola RAMdisku, pokud není vytvořen, tak se vytvoří nový
#----------------------------------------------------------------------------------------------------------------------------------
echo "kontroluji RAMdisk"
mount | grep "RAMdisk" && echo "RAMdisk nalezen" || {
echo "Vytvářím RAMdisk v "$pripojnybod" o velikosti "$velikost"MB a typu "$souborovysytem".";
find $pripojnybod;
if [ "$PIPESTATUS" -ne "0" ] 2>/dev/null; then
echo "vytvářím přípojný bod"
sudo mkdir $pripojnybod;
fi
echo "přiděluji práva složky"
sudo mount -t $souborovysytem -o size=$velikost"M" $souborovysytem $pripojnybod;
sudo chown -R $uzivatel:$uzivatel $pripojnybod;
sudo chmod 777 $pripojnybod;
sudo /etc/init.d/samba restart;
echo "kopíruji se na RAMdisk";
cp $cesta/cekani.sh /home/$uzivatel/RAMdisk;
cp $cesta/pripojeni.sh /home/$uzivatel/RAMdisk;
cp $cesta/ping.sh /home/$uzivatel/RAMdisk;
cp $cesta/Komunikace.txt /home/$uzivatel/RAMdisk;
cp $cesta/Prihlaseni.txt /home/$uzivatel/RAMdisk;
}
#----------------------------------------------------------------------------------------------------------------------------------
# přenos programu na RAMdisk a jeho spuštění
#----------------------------------------------------------------------------------------------------------------------------------
echo "spouštím se z RAMdisku"
/home/$uzivatel/RAMdisk/cekani.sh &
PID=$!
sleep 5 &
pid=$PID
unset PID
while [ $? -eq 0 ]; do
for x in / - \\ \|; do
echo -ne "skenuji $x \r";
sleep 1;
done
kill -0 $pid 2>/dev/null;
done
#----------------------------------------------------------------------------------------------------------------------------------
# pokud se backend ukončil, restartuji NAS
#----------------------------------------------------------------------------------------------------------------------------------
echo "vypínám" $pc
echo "Odmountovávám RAMdisk..."
sudo rm -rv $pripojnybod;
sudo umount -l $pripojnybod;
sudo rmdir -v $pripojnybod;
sudo swapoff -a && sudo swapon -a;
out1=$(raspi-gpio get 17 | cut -d '=' -f2 | cut -d ' ' -f1);
out2=$(raspi-gpio get 18 | cut -d '=' -f2 | cut -d ' ' -f1);
out3=$(raspi-gpio get 27 | cut -d '=' -f2 | cut -d ' ' -f1);
echo "napájení pro diskA $out1"
echo "napájení pro diskB $out2"
echo "napájení pro diskC $out3"
if [ "$out1" -eq "1" ]; then
if [ "$out2" -eq "1" ]; then
if [ "$out3" -eq "1" ]; then
sleep 18m;
raspi-gpio set 17 op dl;
raspi-gpio set 18 op dl;
raspi-gpio set 27 op dl;
echo "vypínám diskA, diskB a diskC";
else
echo "diskC je bez napětí";
fi
sleep 18m;
raspi-gpio set 17 op dl;
raspi-gpio set 18 op dl;
echo "vypínám diskA a diskB";
else
echo "diskB je bez napětí";
fi
sleep 15m;
raspi-gpio set 17 op dl;
echo "vypínám diskA";
else
echo "diskA je bez napětí";
fi
out2=$(raspi-gpio get 18 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out2" -eq "1" ]; then
sleep 18m;
raspi-gpio set 18 op dl;
echo "vypínám diskB";
else
echo "diskB je bez napětí";
fi
out3=$(raspi-gpio get 27 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out3" -eq "1" ]; then
sleep 18m;
raspi-gpio set 27 op dl;
echo "vypínám diskC";
else
echo "diskC je bez napětí";
fi
unset out1
unset out2
unset out3
unset nazev_slozky
unset uzivatel
unset velikost
unset souborovysytem
unset pripojnybod
unset cesta
unset pc
sleep 15;
sudo reboot
exit 0
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.3
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# BACKEND pro NAS server Raspberry
# kontrola běžícího procesu, pokud je nalezen předchozí proces, je zabit
#----------------------------------------------------------------------------------------------------------------------------------
echo 'spouštím hlídání účastníků je:' `date`
sleep 5;
pid=$(ps -e | grep "cekani.sh" | sed 's/^ *//;s/ *$//' | grep -v $$ | cut -d' ' -f1)
echo "nalezen předchozí proces s PID:"$pid" zabíjím"
kill -9 $pid 2>/dev/null;
#----------------------------------------------------------------------------------------------------------------------------------
# Konfigurační hlavička
#----------------------------------------------------------------------------------------------------------------------------------
uzivatel=$(echo $USER)
pc=$(uname -n)
cesta="$(dirname $0)"
kom="Komunikace.txt"
user="Prihlaseni.txt"
restart="< $cesta/$kom | grep Restart | cut -c 9-";
restart=$(cat $cesta/$kom | grep Restart | cut -c 9-);
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli backend nebyl vzdáleně restartován, pokud ano přepíši zpět
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$restart" -eq "0" ] 2>/dev/null; then
sed -i '/Restart/s/0/2/' $cesta/$kom;
fi
sed -i "/^$pc/d" $cesta/$user;
#----------------------------------------------------------------------------------------------------------------------------------
# Přihlášení se do síťe
#----------------------------------------------------------------------------------------------------------------------------------
echo `uname -n` `hostname -I | cut -d' ' -f1` `date` >> $cesta/$user
#----------------------------------------------------------------------------------------------------------------------------------
# Začátek smyčky
#----------------------------------------------------------------------------------------------------------------------------------
cnt=0
until [ "$cnt" = "2" ]; do
cnt=$[cnt+1]
#----------------------------------------------------------------------------------------------------------------------------------
# Vyčtení stavu disků
#----------------------------------------------------------------------------------------------------------------------------------
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
restart="< $cesta/$kom | grep Restart | cut -c 9-"
restart=$(cat $cesta/$kom | grep Restart | cut -c 9-)
#----------------------------------------------------------------------------------------------------------------------------------
# Prohledání, jestli je přihlášený nějaký frontend a spuštění scriptu pro připojení
#----------------------------------------------------------------------------------------------------------------------------------
echo "požadavek pro diskA je" $disk1
echo "požadavek pro diskB je" $disk2
echo "požadavek pro diskC je" $disk3
kontrola=$(grep -v $pc $cesta/$user | wc -l);
echo "pokud se někdo přihlásil mám > 0 - počet přihlášených:"$kontrola;
$cesta/pripojeni.sh $kontrola;
#----------------------------------------------------------------------------------------------------------------------------------
# Kontrola jestli neni požadavek na restart NAS
#----------------------------------------------------------------------------------------------------------------------------------
echo "požadavek na restart NAS:" $restart
if [ "$cnt" -eq "$restart" ] 2>/dev/null; then
cnt=0;
fi
sleep 5;
#----------------------------------------------------------------------------------------------------------------------------------
# Vypnutí napájení
#----------------------------------------------------------------------------------------------------------------------------------
out1=$(raspi-gpio get 17 | cut -d '=' -f2 | cut -d ' ' -f1);
out2=$(raspi-gpio get 18 | cut -d '=' -f2 | cut -d ' ' -f1);
out3=$(raspi-gpio get 27 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out1" -eq "1" -a "$disk1" -eq "3" ]; then
offA=$[offA+1]
else
offA=0
fi
if [ "$out2" -eq "1" -a "$disk2" -eq "3" ]; then
offB=$[offB+1]
else
offB=0
fi
if [ "$out3" -eq "1" -a "$disk3" -eq "3" ]; then
offC=$[offC+1]
else
offC=0
fi
echo "vypnout diskA $offA"
echo "vypnout diskB $offB"
echo "vypnout diskC $offC"
unset out1
unset out2
unset out3
if [ "$offA" -ge "180" ]; then
raspi-gpio set 17 op dl;
echo "vypínám diskA";
fi
if [ "$offB" -ge "210" ]; then
raspi-gpio set 18 op dl;
echo "vypínám diskB"
fi
if [ "$offC" -ge "210" ]; then
raspi-gpio set 27 op dl;
echo "vypínám diskC"
fi
done
#----------------------------------------------------------------------------------------------------------------------------------
# Konec smyčky a odhlášení se ze sítě
#----------------------------------------------------------------------------------------------------------------------------------
sed -i "/^$pc/d" $cesta/$user;
unset restart
unset cnt
unset pc
unset kontrola
unset cesta
unset kom
unset user
unset disk1
unset disk2
unset disk3
exit 0
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.3
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# BACKEND pro NAS server Raspberry
# script pro připojení disků do sítě
#----------------------------------------------------------------------------------------------------------------------------------
echo "spouštím script pro připojení"
#----------------------------------------------------------------------------------------------------------------------------------
# Konfigurační hlavička a vzčtení stavu disků
#----------------------------------------------------------------------------------------------------------------------------------
pc=$(uname -n)
cesta="$(dirname $0)"
kom="Komunikace.txt"
user="Prihlaseni.txt"
disk1="< $cesta/$kom | grep diskA | cut -c 7-"
disk1=$(cat $cesta/$kom | grep diskA | cut -c 7-)
disk2="< $cesta/$kom | grep diskB | cut -c 7-"
disk2=$(cat $cesta/$kom | grep diskB | cut -c 7-)
disk3="< $cesta/$kom | grep diskC | cut -c 7-"
disk3=$(cat $cesta/$kom | grep diskC | cut -c 7-)
#----------------------------------------------------------------------------------------------------------------------------------
# Vyčtení kdo je přihlášen a kontrola jestli je online
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$1" -ne "0" ] 2>/dev/null; then
echo "je přihlášen:"
while read radek; do
echo $radek;
done < $cesta/$user;
$cesta/ping.sh $cesta/$user $pc;
else
echo "nikdo není přihlášen";
#----------------------------------------------------------------------------------------------------------------------------------
# Připojení disků, pokud je požadavek od Frontendu
#----------------------------------------------------------------------------------------------------------------------------------
if [ "$disk1" -eq "1" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskA/s/1/3/' $cesta/$kom;
fi
if [ "$disk2" -eq "1" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskB/s/1/3/' $cesta/$kom;
fi
if [ "$disk3" -eq "1" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskC/s/1/3/' $cesta/$kom;
fi
if [ "$disk1" -eq "2" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskA/s/2/0/' $cesta/$kom;
fi
if [ "$disk2" -eq "2" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskB/s/2/0/' $cesta/$kom;
fi
if [ "$disk3" -eq "2" -a "$1" -eq "0" ] 2>/dev/null; then
sed -i '/diskC/s/2/0/' $cesta/$kom;
fi
fi
if [ "$disk1" -eq "1" -a "$1" -ne "0" ] 2>/dev/null; then
echo "připojuji diskA";
out1=$(raspi-gpio get 17 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out1" -eq "0" ]; then
raspi-gpio set 17 op dh;
echo "zapínám diskA";
echo "kontroluji jestli neni požadavek pro připojení diskuB";
out2=$(raspi-gpio get 18 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$disk2" -eq "1" -a "$out2" -eq "0" ] 2>/dev/null; then
raspi-gpio set 18 op dh;
echo "zapínám diskB";
else
echo "diskB je pod napětím, nebo neni pozadavek pro pripojeni";
fi
echo "kontroluji jestli neni požadavek pro připojení diskuC";
out3=$(raspi-gpio get 27 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$disk3" -eq "1" -a "$out3" -eq "0" ] 2>/dev/null; then
raspi-gpio set 27 op dh;
echo "zapínám diskC";
else
echo "diskC je pod napětím, nebo neni pozadavek pro pripojeni";
fi
else
echo "diskA je pod napětím";
fi
unset out1;
unset out2;
unset out3;
sudo mount -o uid=pi,gid=pi -L TOSHIBA /media/pi/TOSHIBA;
case $? in
0)
echo "připojeno"
sed -i '/diskA/s/1/2/' $cesta/$kom
;;
1)
echo "chyba připojení, zařízení je již připojené, nebo nenalezeno"
sudo umount /media/pi/TOSHIBA
;;
2)
echo "systémová chyba"
;;
4)
echo "vnitřní chyba připojení"
;;
8)
echo "přerušení uživatelem"
;;
32)
echo "chyba připojení, zařízení je již připojené?"
sudo umount /media/pi/TOSHIBA
;;
16)
echo "potíže se zápisem nebo zamknutí /etc/mtab, zařízení je již připojené?"
sudo umount /media/pi/TOSHIBA
;;
64)
echo "něco se podařilo připojit"
sed -i '/diskA/s/1/2/' $cesta/$kom
;;
-1)
echo "něco se podělalo"
;;
esac
fi
if [ "$disk1" -eq "0" ] 2>/dev/null; then
echo "odpojuji diskA";
sudo umount /media/pi/TOSHIBA;
sed -i '/diskA/s/0/3/' $cesta/$kom;
fi
if [ "$disk2" -eq "1" -a "$1" -ne "0" ] 2>/dev/null; then
echo "připojuji diskB";
out2=$(raspi-gpio get 18 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out2" -eq "0" ]; then
raspi-gpio set 18 op dh;
echo "zapínám diskB";
else
echo "diskB je pod napětím";
fi
unset out2;
sudo mount -o uid=pi,gid=pi -L 'My Book' '/media/pi/My Book';
case $? in
0)
echo "připojeno"
sed -i '/diskB/s/1/2/' $cesta/$kom
;;
1)
echo "chyba připojení, zařízení je již připojené, nebo nenalezeno"
sudo umount '/media/pi/My Book'
;;
2)
echo "systémová chyba"
;;
4)
echo "vnitřní chyba připojení"
;;
8)
echo "přerušení uživatelem"
;;
32)
echo "chyba připojení, zařízení je již připojené?"
sudo umount '/media/pi/My Book'
;;
16)
echo "potíže se zápisem nebo zamknutí /etc/mtab, zařízení je již připojené?"
sudo umount '/media/pi/My Book'
;;
64)
echo "něco se podařilo připojit"
sed -i '/diskB/s/1/2/' $cesta/$kom
;;
-1)
echo "něco se podělalo"
;;
esac
fi
if [ "$disk2" -eq "0" ] 2>/dev/null; then
echo "odpojuji diskB";
sudo umount '/media/pi/My Book';
sed -i '/diskB/s/0/3/' $cesta/$kom;
fi
if [ "$disk3" -eq "1" -a "$1" -ne "0" ] 2>/dev/null; then
echo "připojuji diskC";
out3=$(raspi-gpio get 27 | cut -d '=' -f2 | cut -d ' ' -f1);
if [ "$out3" -eq "0" ]; then
raspi-gpio set 27 op dh;
echo "zapínám diskC";
else
echo "diskC je pod napětím";
fi
unset out3;
sudo mount -o uid=pi,gid=pi -L 'Seagate Expansion Drive' '/media/pi/Seagate Expansion Drive';
case $? in
0)
echo "připojeno"
sed -i '/diskC/s/1/2/' $cesta/$kom
;;
1)
echo "chyba připojení, zařízení je již připojené, nebo nenalezeno"
sudo umount '/media/pi/Seagate Expansion Drive'
;;
2)
echo "systémová chyba"
;;
4)
echo "vnitřní chyba připojení"
;;
8)
echo "přerušení uživatelem"
;;
32)
echo "chyba připojení, zařízení je již připojené?"
sudo umount '/media/pi/Seagate Expansion Drive'
;;
16)
echo "potíže se zápisem nebo zamknutí /etc/mtab, zařízení je již připojené?"
sudo umount '/media/pi/Seagate Expansion Drive'
;;
64)
echo "něco se podařilo připojit"
sed -i '/diskC/s/1/2/' $cesta/$kom
;;
-1)
echo "něco se podělalo"
;;
esac
fi
if [ "$disk3" -eq "0" ] 2>/dev/null; then
echo "odpojuji diskC";
sudo umount '/media/pi/Seagate Expansion Drive';
sed -i '/diskC/s/0/3/' $cesta/$kom;
fi
unset pc
unset kontrola
unset cesta
unset kom
unset user
unset disk1
unset disk2
unset diskC
echo "ukončuji script pro připojení"
exit 0
#!/bin/bash
# 2016 Cuore <r.nemcansky@seznam.cz>
# verze 0.0.1
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------------------
# BACKEND pro NAS server Raspberry
# script pro ping frontendu
#----------------------------------------------------------------------------------------------------------------------------------
echo "spouštím script pro ping"
date
cat $1 | grep -v $2 | cut -d ' ' -f2 | while read output
do
ping -c 10 "$output" > /dev/null
if [ $? -eq 0 ]; then
echo "zařízení s IP $output odpovídá";
else
smazat=$(cat $1 | grep $output | cut -d ' ' -f1);
echo "zařízení $smazat s IP $output neodpovídá";
sed -i "/^$smazat/d" $1;
fi
done
echo "ukončuji script pro ping"
exit 0
raspberrypi 192.168.4.9 St zář 7 13:21:07 CEST 2016
Restart 2
diskA 3
diskB 3
diskC 3