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.
Många guider finner också på vår blogg: https://blog.m.nu/
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

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

Inlägg av Plutonium »

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
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

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

Inlägg av Dowser »

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
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

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

Inlägg av Plutonium »

Tackar..
Jag har tyvärr ingen erfarenhet om ds2413, har den ett minne då eller?
http://essunga.org
Moderator - Temperatur.nu
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

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

Inlägg av Dowser »

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
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

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

Inlägg av Plutonium »

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
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

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

Inlägg av elf98 »

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.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
noak
Gillar hemautomation
Inlägg: 40
Blev medlem: 25 dec 2011, 18:02
Ort: Västmanland

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

Inlägg av noak »

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.
maglub
Inlägg: 1
Blev medlem: 30 jan 2013, 10:30
Ort: Zürich

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

Inlägg av maglub »

noak skrev: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.
Hej noak,

Av en slump fastnade jag på den här sidan och såg att ingen svarat dig. Koden i sig är inte jättekomplicerad om man är van att läsa shell-script.

Raden du frågar efter behöver inte köras varje sekund, utan kommer själv att gå i en slinga/loop. Ampersanden i slutet betyder att programmet körs i bakgrunden utan att du ser det.

Raden i scriptet som lyder:

Kod: Markera allt

while /bin/true; do
... sätter programmet i en oändlig loop. Sedan kollas en fil (/mnt/1wire/uncached/05.*****/sensed), ifall den är lika dan som sist den kollades på (vilket säkerställs genom att filen kopieras till en TEMPFIL), varpå scriptet sover (sleep 1) ifall den är lika dan som sist. Filen som kollas är en virtuell fil, som uppdateras av mjukvaran som hör till 1-wire-dongeln och representerar det som händer med enheten som är kopplad till dörren.

Ha en bra dag!
//magnus
chrilleman
Wannabe
Inlägg: 9
Blev medlem: 28 apr 2013, 08:56
Ort: Eslöv

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

Inlägg av chrilleman »

Ursäkta jag tar upp en gammal tråd men har precis gett mig på detta projektet.
Har fått allting att snurra i labbet och ska nu ge mig på dörrarna, när jag bytte dörrar drog jag fram kabel bakom slutblecket så det är på plats snyggt o fint.

MEN, hur har ni gjort vid slutblecket? Mikrobrytare eller annan lösning? Där är inte jätte gott om plats precis bakom slutblecket.

Tacksam för idéer då jag kört lite fast :)
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

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

Inlägg av Plutonium »

Kul att det funkar för dig i labbet.
Jag använde mig av en sådan här:
http://www.kjell.com/sortiment/el/elekt ... %29-p36023
som låskolven tryckte till i sitt yttre (låst) läge.

Nu har jag dock bytt dörr och karm, och i min nya så är det en sådan låskolv som "svingar" ner.. Men med lite finess så borde det inte vara så krångligt att sätta en likadan tryckströmbrytare som där kolven slår till och håller nere när det är låst.

Hoppas det klarnar lite för dig.
http://essunga.org
Moderator - Temperatur.nu
chrilleman
Wannabe
Inlägg: 9
Blev medlem: 28 apr 2013, 08:56
Ort: Eslöv

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

Inlägg av chrilleman »

Aha! Nu blev jag lite klokare, att jag inte tänkt på en vanlig tryckströmbrytare.
Testade med mikrobrytare men lyckades aldrig fästa den på något bra sätt, men en tryckströmbrytare kan man borra hål bakifrån på slutblecket och ställa snyggt med muttern så de blir lagom längd fram till kolven.

Ska prövas, tackar!
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

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

Inlägg av Plutonium »

Precis ;)
Inte lätt att tänka på allt :D
http://essunga.org
Moderator - Temperatur.nu
Skriv svar