2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 16:46:35 +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.
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=???????)
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"
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=???????)

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.