#!/usr/bin/tclsh set ::test 0 set ::debug 0 set ::owfs /mnt/1wire set ::sensor 12.0C4A02000000 set ::sensorinit [list \ [list $::sensor/set_alarm 311] \ [list $::sensor/PIO.ALL 0,0] \ ] proc logger {msg {priority err}} { syslog -facility daemon -ident dooropen $priority $msg } proc owget {name} { if {[catch {open $::owfs/$name} f]} { logger "ERROR: $f" return "" } set res [read -nonewline $f] close $f return $res } proc owput {name {val ""}} { if {[catch {open $::owfs/$name WRONLY} f]} { logger "ERROR(owput): $f" return 0 } puts $f $val close $f return 1 } proc DoInit {{dev ""}} { if {($dev=="") || ($dev==$::sensor)} { if {$::debug} {logger "sensor init" info} foreach l $::sensorinit {owput [lindex $l 0] [lindex $l 1]} } } if {($argc < 1) || (([set mode [lindex $argv 0]] != "init") && ($mode != "start"))} { puts stderr "Usage: $argv0 init [device]|start" exit 1 } package require Syslog if {[file exists $::owfs/uncached]} {set ::uncached uncached/} {set ::uncached ""} if {$mode == "init"} { DoInit [lindex $argv 1] exit 0 } if {$mode == "start"} { exit 0 }