DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Hur gör man för att ... ? Hur fungerar ... ? Steg för steg-guider och förklarande artiklar finns i detta forum.

DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav Plutonium » 26 jul 2008, 19:34

Hej.
Efter en veckas knåpande och donande fungerar allt enligt planerat och tänkte dela med mig av hur jag har gjort.
overvakning.sh scriptet körs varje sekund och kollar om sensed filen har ändrats, allt för att slippa crond..
Fördel med detta..
Jo har du ett script som körs med crond med minimum 1 minut uppdatering och någon är väldigt snabb att låsa upp & låsa under denna 1 minut så kommer inte detta att registreras, men med detta skript får man vara jäkligt snabb för att komma obemärkt förbi dörren..


Databas strukturen:
Kod: Markera allt
-- phpMyAdmin SQL Dump
-- version 2.11.1.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 26, 2008 at 07:22 PM
-- Server version: 5.0.37
-- PHP Version: 5.2.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `1wire`
--

-- --------------------------------------------------------

--
-- Table structure for table `entredoor`
--

CREATE TABLE IF NOT EXISTS `entredoor` (
  `id` int(20) NOT NULL auto_increment,
  `status` varchar(20) NOT NULL,
  `datum` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Dumping data for table `entredoor`
--

INSERT INTO `entredoor` (`id`, `status`, `datum`) VALUES
(1, 'låst', '2008-07-26 18:55:39'),
(2, 'upplåst', '2008-07-26 18:56:09'),
(3, 'låst', '2008-07-26 19:16:09'),
(4, 'upplåst', '2008-07-26 19:16:30');

-- --------------------------------------------------------

--
-- Table structure for table `settings`
--

CREATE TABLE IF NOT EXISTS `settings` (
  `id` int(14) NOT NULL auto_increment,
  `setting` varchar(16) NOT NULL,
  `value` tinyint(1) default NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `settings`
--

INSERT INTO `settings` (`id`, `setting`, `value`) VALUES
(1, 'smsalarm', 1);

Jag la till att man kan aktivera och inaktivera mailtjänsten i databasen.. För att lättast kunna sätta på den eller stänga av den från webben..


overvakning.sh
Kod: Markera allt
##
## Made by Dukeman & Plutonium -08
##
    #!/bin/bash

    # Mysql
    USER="1wire"
    PASSWD="*******"
    DB="1wire"
    MYSQL="mysql -u $USER -p$PASSWD -D $DB -e"

    # Första argumentet i funktionen är första ordet i filen (nytt värde)
    function reagera {
            if [ ${1} -eq 0 ]; then
    SMSLARM="Entre dörren är nu upplåst."
                    #echo "Upplåst"
       $MYSQL "INSERT INTO entredoor (status) VALUES ('upplåst')"
         
       else
    SMSLARM="Entre dörren är nu låst."
                      #echo "Låst!"
       $MYSQL "INSERT INTO entredoor (status) VALUES ('låst')"


            fi

    }

    function smslarm {

    if [ $LARM_VALUE -eq 1 ]; then

   echo -e "subject: Status$*\n\n  $(date +%Y:%m:%d:%k:%M:%S)"     $SMSLARM | sendmail -f Vakt@Home.nu 0730******@sms.comviq.se

    fi

    }

    # Inte lämna skräfiler kvar
    function cleanup {
            rm "$TEMPFIL"
            exit 0
    }

    # Första argumentet måste vara en fil
    [ -z "$1" -o ! -f "$1" ] && echo "overvakning.sh <fil>" && exit 1

    FIL=$1
    TEMPFIL=$(tempfile)

    # Hantera ^C och dylikt
    trap cleanup SIGHUP SIGINT SIGTERM

    cp "$FIL" "$TEMPFIL"

     while /bin/true; do

        # Kollar värdet sms alarm
           ROWS=`$MYSQL "SELECT value FROM settings WHERE setting='smsalarm'"`
           LARM_VALUE=$(echo $ROWS | cut -f2 -d' ')

   if [ `cat $FIL` -eq `cat $TEMPFIL` ]; then

      #echo "Value är lika med value"
      sleep 1

   elif [ `cat $FIL` -ne `cat $TEMPFIL` ]; then

      #echo "Filen har ändrats, då sover vi 4 sek och kollar igen"

      sleep 4

                   if [ `cat $FIL` -eq `cat $TEMPFIL` ]; then

            echo "Avbryt eld upphör!" &>/dev/null
         
         else
                 #echo "Allt stämde så skriv till databasen!"

      diff -qs $FIL $TEMPFIL &>/dev/null
           [ $? -ne 0 ] && reagera $(cat $FIL | cut -d " " -f 1) && smslarm
           cp "$FIL" "$TEMPFIL"

         fi

   else

      echo "Allt är åt helskotta nu skiter jag i detta" &>/dev/null

        fi

        done


overvakning.sh körs enligt följande:
Du måste göra filen körbar med chmod +x overvakning.sh
/path/overvakning.sh /mnt/1wire/uncached/05.*****/sensed &

Posta gärna lite feedback om vad är bra och dåligt..
http://essunga.org
Moderator - Temperatur.nu
Plutonium
Moderator
 
Inlägg: 513
Blev medlem: 04 jan 2008, 02:34
Ort: Essunga station

Annons


Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav Dowser » 27 jul 2008, 12:38

Trevligt!

Fast visst borde det inte behöva loggas så tätt om man istället använde en DS2413 och kollade på status-flaggan också?
Användarvisningsbild
Dowser
Moderator
 
Inlägg: 782
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa

Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav Plutonium » 27 jul 2008, 18:29

Tackar..
Jag har tyvärr ingen erfarenhet om ds2413, har den ett minne då eller?
http://essunga.org
Moderator - Temperatur.nu
Plutonium
Moderator
 
Inlägg: 513
Blev medlem: 04 jan 2008, 02:34
Ort: Essunga station

Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav Dowser » 27 jul 2008, 18:53

Mja, ds2406 har ju det och ds2413 skall ju ersätta både ds2405 & ds2406.
Men man borde nog läsa databladet för att vara säker. :)
Användarvisningsbild
Dowser
Moderator
 
Inlägg: 782
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa

Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav Plutonium » 27 jul 2008, 19:15

Okey :)
Låter intressant.. Får se om man kan komma på något bra användningsområde..
Skickade efter ibuttons igår, får se om man kan komma på nått bra med dessa intilligenta saker först.
http://essunga.org
Moderator - Temperatur.nu
Plutonium
Moderator
 
Inlägg: 513
Blev medlem: 04 jan 2008, 02:34
Ort: Essunga station

Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav elf98 » 18 sep 2008, 17:42

DS2413 har inte något minne. Och det går inte direkt att läsa av om statusen har ändrats.

En variant är att låta strömbrytaren styra båda ingångarna på ett chip, där den ena är transistorstyrd och återkopplad. Använd ytterligare en DS2413 för att styra spänningen till transistorn så kan du resetta detta externa "minne".

Utgå från IO-kortet (http://shop.temperatur.nu/iokort-4-kanaler-p-154.html) så behöver du antagligen bara ytterligare ett motstånd och 1st transistor.
Driver temperatur.nu
Användarvisningsbild
elf98
Har temperatur.nu som hobby
 
Inlägg: 3429
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping

Re: DS2405 Dörrövervakning med mail tjänst och mysql, owfs.

Inläggav noak » 30 dec 2011, 19:56

Hej, försöker förstå hur DS2413 / DS2406 avläses. Ligger scriptet och kör konstant eller triggas det automatiskt när förändringar görs i owfs filstruktur?
Hur fungerar denna rad? Läser den bara av värdet och stoppar in detta i overvakning.sh
Kod: Markera allt
/path/overvakning.sh /mnt/1wire/uncached/05.*****/sensed &

Behöver man då ett script som lopar denna rad t.ex varje sekund eller mountar raden någon trigger i katalogen för sensorn som i sin tur triggar igång overvakning.sh vid förändring?
Har inga sensorer att testa med men kommer att beställa ett antal innan vinterrean tar slut.
noak
Wannabe
 
Inlägg: 33
Blev medlem: 25 dec 2011, 18:02
Ort: Västmanland


Återgå till Guider/Artiklar/How to

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst