2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 22:56:34 +00:00

update of documentation

git-svn-id: https://svn.fhem.de/fhem/trunk@582 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
martinhaas 2010-03-13 11:10:15 +00:00
parent 0f4d6ccd1b
commit 0d9e556da8
9 changed files with 18 additions and 311 deletions

View File

@ -0,0 +1,17 @@
Be sure that the directory <pgm3>/tmp is writeable for the user of the webserver (e.g. wwwrun.www or www-data.www-data)
Make something like "chown -R wwwrun.www tmp"
Hint: you need the packages php-gd and gnuplot to see the graphics
Look at the wiki on http://www.fhemwiki.de. In the future there will be the most of the Documentation.
All the other Documentation of pgm3 is there:
http://www.martin-haas.de/fhz
Enjoy it :-)
Martin Haas
fhz@martin-haas.de

View File

@ -1,5 +0,0 @@
Gnuplot is now automatically supported for HMS, KS300 and FHT.
If you really want to change the graphics then look at the include/gnuplot.php
######################################################################

View File

@ -1,10 +1,4 @@
If the files are too big the system will be slower than usual. If the files are too big the system will be slower than usual.
In the config.php it is now possible to automatic logrotate the HMS, FHT and KS300-Logs. But it is only possible if the user of the pgm3 (e.g. wwwrun) has the rights to write the logfiles from fhz1000.pl (user=???????) In the config.php it is now possible to automatic logrotate the HMS, FHT, KS300-Logs and others. But it is only possible if the user of the pgm3 (e.g. wwwrun) has the rights to write the logfiles from fhz1000.pl (user=???????)
If you want do that manually then read the enclosed examples for your crontab.
Every Linux-System normally has a logrotate-Daemon. Put the fhz1000.logrotate in your /etc/logrotate.d/ to lograte the fhz1000.cfg and edit it or use the builtin method: "logfile /tmp/fhz1000-%Y-%m.log"

View File

@ -1,11 +0,0 @@
/var/tmp/fhz1000.log {
rotate 6
size 2M
compress
missingok
notifempty
postrotate
[[ `ps -ef | grep fhz1000.pl | grep -v grep` ]] && \
/etc/init.d/fhz1000 restart
endscript
}

View File

@ -1,24 +0,0 @@
#!/bin/bash
# this script should be installed in e.g. /etc/crontab:
# 0 3 * * * root /usr/local/bin/logrotate.wz.sh > /dev/null 2>&1
# then there are only about 5 days in the logfile for the FHT-Device
logs="adi bao bau leo wz wzo"
for fht in $logs
do
newlogs="0"
# first time
[[ ! -f /var/tmp/$fht.log.main ]] && cp -p /var/tmp/$fht.log /var/tmp/$fht.log.main
cat /var/tmp/$fht.log | while read line;
do
[[ "$newlogs" = "1" ]] && echo $line | egrep -v 'measured-temp: [0-2]\.' >>/var/tmp/$fht.log.main
[[ "$line" = "NEWLOGS" ]] && newlogs="1"
done;
# 4500 for about 5 days
tail -4500 /var/tmp/$fht.log.main >/var/tmp/$fht.log
echo "NEWLOGS" >>/var/tmp/$fht.log
done;

View File

@ -1,30 +0,0 @@
#!/bin/bash
# this script should be installed in e.g. /etc/crontab:
# 0 3 * * * root /usr/local/bin/logrotate.hms100.ks300.sh > /dev/null 2>&1
# then there are only about 4 days in the logfile for the HMS/KS300-Device
logpath=/var/tmp
logs="heating laundry ks300"
for dev in $logs
do
newlogs="0"
# first time
if [ ! -f $logpath/$dev.log.main ]; then cp -p $logpath/$dev.log $logpath/$dev.log.main; fi;
cat $logpath/$dev.log | while read line;
do
if [ "$newlogs" = "1" ];
then echo $line >>$logpath/$dev.log.main; fi;
if [ "$line" = "NEWLOGS" ]; then newlogs="1"; fi;
done;
# 1900 for about 5 days
tail -1900 $logpath/$dev.log.main >$logpath/$dev.log
echo "NEWLOGS" >>$logpath/$dev.log
done;

View File

@ -1,150 +0,0 @@
##############################################
# Low Budget ALARM System
##############################################
# ATTENTION! This is more a toy than a professional alarm system!
# You must know what you do!
##############################################
#
# Concept:
# 1x Signal Light (FS20 allight) to show the status (activated/deactivated)
# 2x Sirene (in/out) (FS20 alsir1 alsir2 )
# 2x PIRI-2 (FS20 piriu pirio)
# 1x Sender (FS20 alsw) to activate/deactivate the system.
# Tip: use the KeyMatic CAC with pin code or
# optional a normal sender (FS20 alsw2)
#
# Add something like the following lines to the configuration file :
# notifyon alsw {MyAlsw()}
# notifyon alsw2 {MyAlswNoPin()}
# notifyon piriu {MyAlarm()}
# notifyon pirio {MyAlarm()}
# and put this file in the <modpath>/FHZ1000 directory.
#
# Martin Haas
##############################################
package main;
use strict;
use warnings;
sub
ALARM_Initialize($$)
{
my ($hash, $init) = @_;
$hash->{Type} = "none";
}
##############################################
# Switching Alarm System on or off
sub
MyAlsw()
{
my $ON="set allight on; setstate alsw on";
my $OFF="set allight off; set alsir1 off; set alsir2 off; setstate alsw off";
if ( -e "/var/tmp/alertsystem")
{
unlink "/var/tmp/alertsystem";
#Paranoia
for (my $i = 0; $i < 2; $i++ )
{
fhz "$OFF";
};
Log 2, "alarm system is OFF";
} else {
system "touch /var/tmp/alertsystem";
#Paranoia
for (my $i = 0; $i < 2; $i++ )
{
fhz "$ON"
}
Log 2, "alarm system is ON";
};
}
##############################################
# If you have no Keymatic then use this workaround:
# After 4x pushing a fs20-button within some seconds it will activate/deactivate the alarm system.
sub
MyAlswNoPin()
{
my $timedout=5;
## first time
if ( ! -e "/var/tmp/alontest1")
{
for (my $i = 1; $i < 4; $i++ )
{
system "touch -t 200601010101 /var/tmp/alontest$i";
}
}
## test 4 times
my $now= `date +%s`;
for (my $i = 1; $i < 4; $i++ )
{
my $tagx=`date -r /var/tmp/alontest$i +%s`;
my $testx=$now-$tagx;
if ( $testx > $timedout )
{
system "touch /var/tmp/alontest$i";
die "test$i: more than $timedout sec";
}
}
system "touch -t 200601010101 /var/tmp/alontest*";
Log 2, "ok, let's switch the alarm system...";
#if you only allow to activate (and not deactivate) with this script:
# if ( -e "/var/tmp/alertsystem") { die "deactivating alarm system not allowed"};
MyAlsw();
}
##############################################
# ALARM! Do what you want!
sub
MyAlarm()
{
#alarm-system activated??
if ( -e "/var/tmp/alertsystem")
{
my $timer=180; # time until the sirene will be quiet
my $ON1="set alsir1 on-for-timer $timer";
my $ON2="set alsir2 on-for-timer $timer";
#Paranoia
for (my $i = 0; $i < 2; $i++ )
{
fhz "$ON1";
fhz "$ON2";
}
Log 2, "ALARM! #################" ;
# have fun
my @lights=("stuwz1", "stuwz2", "nachto", "nachtu", "stoliba" ,"stlileo");
my @rollos=("rolu4", "rolu5", "roloadi", "rololeo", "roloco", "rolowz", "rolunik1", "rolunik2");
foreach my $light (@lights) {
fhz "set $light on"
}
foreach my $rollo (@rollos) {
fhz "set $rollo on"
}
}
}
1;

View File

@ -1,80 +0,0 @@
##############################################
# Switching the FHTs with e.g. a Button
##############################################
# This is only an example.
# After pressing e.g. a button it will change the values
# of desired-temp against the value of windowopen-temp
# With small changes it is possible to change e.g. all FHTs to
# 2 degrees less if you are leaving the house and activating
# the alarm system.
# Don't change the values very often within a time because the FHT seems
# to hang if there are too much values within a time.
#
# Add something like the following lines to the configuration file :
# notifyon NameOfButton {MyFHTswitch("NameOfFHT")}
# and put this file in the <modpath>/FHZ1000 directory.
# Martin Haas
##############################################
package main;
use strict;
use warnings;
sub
FHTswitch_Initialize($)
{
# my ($hash) = @_; ## for fhz1000 >3.0
# $hash->{Category} = "none"; ## for fhz1000 >3.0
my ($hash, $init) = @_; ## for fhz1000 <=3.0
$hash->{Type} = "none"; ## for fhz1000 <=3.0
}
###### ok, let's learn perl ;-)...
sub
MyFHTswitch($)
{
my $str;
my $fhtorder;
my @a = @_;
my $fht=$a[0];
my @windowopentemp;
my @desiredtemp;
no strict "refs";
$str = &{$devmods{$defs{$a[0]}{TYPE}}{ListFn}}($defs{$a[0]});
my @lines = split("\n", $str);
use strict "refs";
foreach my $l (@lines) {
my ($date, $time, $attr, $val) = split(" ", $l, 4);
if($attr eq "desired-temp")
{
Log 3, "old $attr of $a[0]: $val";
@desiredtemp = split(" ", $val);
}
if($attr eq "windowopen-temp")
{
Log 3, "old $attr of $a[0]: $val";
@windowopentemp = split(" ", $val);
}
}
$fhtorder="set $fht desired-temp $windowopentemp[0] ";
fhz "$fhtorder";
$fhtorder="set $fht windowopen-temp $desiredtemp[0] ";
fhz "$fhtorder";
fhz "set $fht report1 255 report2 255";
}
1;

View File

@ -1,4 +0,0 @@
These are some Modules for the fhz1000.pl.
Read the docu from fhz1000 howto intall them.
They are intended as an example.