Pull to refresh

Идея будильника, или как объединить для этого книжку, CD-ROM, фен, старую нокию и немного shell'a?

Reading time 2 min
Views 38K
image
Если интересно — прошу под кат!

Книжный выключатель.


Откройте ваш любимый текстовый редактор и напишите в нем такой sh скрипт:

#!/bin/bash
eject /dev/cdrom
sleep 5
eject -t /dev/cdrom


Поставьте рядом с CDROM книжку, а под ней — сетевой фильтр (вот так).
image

Запустите скрипт и смотрите, как книжка падает на кнопку выключения сетевого фильтра от выехавшевого лотка сидирома. Установите запуск скрипта по cron и включайте в сетевой фильтр все, что необходимо выключить или включить по расписанию.
image
Мало? Согласен.

Дополнительная свобода.


В сетевой фильтр, очевидно, нужно что-то включать. К примеру, можно сделать будильник.

Берем обычный маленький фен и вставляем его в фильтр. Вешаем над кроватью. Программируем включение на 7 утра и просыпаемся под бодрящий теплый ветерок в лицо. (вот так)
image
Мало? Тогда идем дальше.

Управляй мечтой.


Что мешает сделать включение «будильника — фена» удаленно по нашему желанию? Ничего. Конечно, можно заморочится с командами, принимаемыми через сеть. Но вдруг произойдет что-то страшное и Интернет исчезнет (к примеру, я регулярно забываю оплатить свой собственный, да и тупо отваливается он часто)?

Значит, надо делать программирование его включения через входящую смску. Я уже писал тут на эту тему, но повторюсь для конкретно этого случая.

Вкратце: Берете старую нокию с блютузом, сопрягаете ее по этому самому синему зубу с компьютером с установленным драйвером gnokii на Линуксе и, далее, создаете что-то типа такого скрипта:

#!/bin/bash

inp=$(gnokii --getsms IN 1 end)

echo $inp>/home/light204/Desktop/inp.txt

# приказ по смс
counter_seven=$(grep -c 7 /home/light204/Desktop/inp.txt)
counter_eight=$(grep -c 8 /home/light204/Desktop/inp.txt)
counter_nine=$(grep -c 9 /home/light204/Desktop/inp.txt)

killall gnokii

#текущая дата
$time='date +%H'

if [ "$counter_seven" == "1" AND "$time" == "07"]; then

eject /dev/cdrom
sleep 5
eject -t /dev/cdrom

elif [ "$counter_eight" == "1" AND "$time" == "08"]; then

eject /dev/cdrom
sleep 5
eject -t /dev/cdrom

elif [ "$counter_nine" == "1" AND "$time" == "09"]; then

eject /dev/cdrom
sleep 5
eject -t /dev/cdrom

fi


sleep 3

killall gnokii


gnokii --deletesms IN 1 end

sleep 700

(предполагается, что в смске приходит число, означающее час срабатывания будильника)

Пусть этот скрипт автоматом по крону проверяет новые сообщения хотя бы каждые 3-4 минуты (чтобы не проспать даже при самом неудачном раскладе).

Теперь вы (особенно, если допилите представленный скрипт под свои нужды), даже находясь вне дома, можете давать другому человеку спокойно спать в вашей постели, удаленно, по смс, программируя момент его просыпания под мягкий ветерок фена в лицо.
Удачи и приятного wake up :)

UPD 1.0

0. Благодаря avalak'у уточняю, что действительно sleep 700 во втором скрипте не нужен. Он остался с отладки.
1. Книжка и вправду не всегда нажимает на кнопку. Это потому, что она не монолитна, а состоит из страниц (да ладно!). Но, если ее обжать, то частоту несрабатываний можно сильно понизить. Вот так:
image
Tags:
Hubs:
+54
Comments 45
Comments Comments 45

Articles