April 2025 |
||||||
Mo |
Di |
Mi |
Do |
Fr |
Sa |
So |
1 |
2 |
3 |
4 |
5 |
6 |
|
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
||||
#!/bin/bash
#
# dieses Skript kann man beliebig oft ausführen
#
# Anzahl der Sicherungen die aufgehoben werden sollen
KEEP=3
BACKUPS=`find /volume1/Backup/DBBackup/backup -name "mysqldump-*.gz" | wc -l | sed 's/\ //g'`
while [ $BACKUPS -ge $KEEP ]
do
ls -tr1 /volume1/Backup/DBBackup/mysqldump-*.gz | head -n 1 | xargs rm -f
BACKUPS=`expr $BACKUPS - 1`
done
DATE=`date +%Y%m%d%H%M%S`
rm -f /volume1/Backup/DBBackup/.mysqldump-${DATE}.gz_INPROGRESS
/usr/syno/mysql/bin/mysqldump --opt -uroot -phomer_2009 --all-databases | gzip -c -9 > /volume1/Backup/DBBackup/.mysqldump-${DATE}.gz_INPROGRESS
mv -f /volume1/Backup/DBBackup/.mysqldump-${DATE}.gz_INPROGRESS /volume1/Backup/DBBackup/mysqldump-${DATE}.gz
exit 0
# Jeden Tag um 5:00 h ausführen
0 5 * * * root sh /volume1/Backup/DBBackup/backup.sh
synoservicecfg --restart crond
_________________________________________________________event_scheduler = on
Danach Restart der DB: /usr/share/mysql/mysql.server restart
CREATE EVENT cleanup_fhem
ON SCHEDULE EVERY 1 DAY
DO
delete from history where device like 'iPhone%' or device like 'iphone%' or device like 'HK.Wasch%' or device like 'st_anwe%' or (device like '%Sauna%' and device not like '%Saunag%') or device like 'HMLAN%' or device like 'E_WS%' or device like 'WS1%' or device like 'Weihna%' or device like 'Action%' or device like 'FSB14%' or device like 'Fenster%' or device like 'HM_%' or device like 'HR%' or device like 'Lampe%' or device like 'Mac%' or device like 'Stehl%' or (device = 'Zisterne' and reading <> 'level') or device like 'DS18B20%' or device = 'CCU' or device = 'CUL1' or device = 'CUL_0' or device like 'TC_TWI%' or device = 'fronthem' or device like 'TCM%' or device like 'EnO%' or device like 'Stern%' or device like '%Wasch%' or (device like 'DS2423%' and event like 'counters.B%') or device like 'Auto_Raff%' or device like 'Securasp%' or device = 'global' or device = 'OWSERVER' or device like 'Raff%' or device like 'Rasen%' or device like '%Temp'
mysql -u root -p fhem
SHOW PROCESSLIST\G
destination cron { file("/var/log/cron.log"); };
filter f_cron { facility(cron); };
log { source(src); filter(f_cron); destination(cron); };
query_cache_type = 1
query_cache_limit = 256K
query_cache_min_res_unit = 2k
query_cache_size = 20M
#backup all databases in one file (eventually add the option --add-locks):
mysqldump -u username -p -–all-databases > file.sql
#backup all databases in one gzipped file:
mysqldump -u username -p -–all-databases | gzip > file.sql.gz
#restore all databases:
mysql -u username -p < file.sql
...
Log3 $name, 5, "TCM $name sent ESP: $bstring";
DevIo_SimpleWrite($hash, $bstring, 1);
# next commands will be sent with a delay
usleep(int(AttrVal($name, "sendInterval", 100)) * 1000);
my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
my $ClearedErrorFlags = $po->reset_error;
}
...
}
$hash->{PARTIAL} = $data;
my $po = $hash->{USBDev};
my ($BlockingFlags, $InBytes, $OutBytes, $ErrorFlags) = $po->status;
my $ClearedErrorFlags = $po->reset_error;
}
define HK.Waschmaschine CUL_HM 38B715
attr HK.Waschmaschine IODev CUL1
attr HK.Waschmaschine IOgrp CCU:CUL1
attr HK.Waschmaschine actCycle 000:10
attr HK.Waschmaschine actStatus alive
attr HK.Waschmaschine autoReadReg 4_reqStatus
attr HK.Waschmaschine expert 2_full
attr HK.Waschmaschine firmware 1.6
attr HK.Waschmaschine group 2: Geräte
attr HK.Waschmaschine model HM-ES-PMSw1-Pl
attr HK.Waschmaschine room UG.Heizungskeller
attr HK.Waschmaschine serialNr MEQ0170626
attr HK.Waschmaschine subType powerMeter
attr HK.Waschmaschine webCmd getConfig:clear msgEvents
define HK.Waschmaschine_Sw CUL_HM 38B71501
attr HK.Waschmaschine_Sw devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr HK.Waschmaschine_Sw event-on-change-reading state
attr HK.Waschmaschine_Sw group 2: Geräte
attr HK.Waschmaschine_Sw model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_Sw peerIDs 00000000,
attr HK.Waschmaschine_Sw room UG.Heizungskeller
attr HK.Waschmaschine_Sw subType switch
attr HK.Waschmaschine_Sw webCmd statusRequest:toggle:on:off
define HK.Waschmaschine_Pwr CUL_HM 38B71502
attr HK.Waschmaschine_Pwr event-on-change-reading current,power
attr HK.Waschmaschine_Pwr model HM-ES-PMSw1-Pl
define HK.Waschmaschine_SenPwr CUL_HM 38B71503
attr HK.Waschmaschine_SenPwr event-on-change-reading none
attr HK.Waschmaschine_SenPwr model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenPwr peerIDs 00000000,
define HK.Waschmaschine_SenI CUL_HM 38B71504
attr HK.Waschmaschine_SenI event-on-change-reading none
attr HK.Waschmaschine_SenI model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenI peerIDs 00000000,
define HK.Waschmaschine_SenU CUL_HM 38B71505
attr HK.Waschmaschine_SenU event-on-change-reading none
attr HK.Waschmaschine_SenU model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenU peerIDs 00000000,
define HK.Waschmaschine_SenF CUL_HM 38B71506
attr HK.Waschmaschine_SenF event-on-change-reading none
attr HK.Waschmaschine_SenF model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenF peerIDs 00000000,
#Dummy WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define HK.WaschmaschineWatt dummy
attr HK.WaschmaschineWatt event-on-change-reading state
attr HK.WaschmaschineWatt group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineWatt room UG.Heizungskeller
#Dummy HK.WaschmaschineWatt mit Werten versorgen
define HK.WaschmaschineWattSet notify HK.Waschmaschine_Pwr {my $power =ReadingsVal("HK.Waschmaschine_Pwr","power","");; fhem ("set HK.WaschmaschineWatt $power")}
attr HK.WaschmaschineWattSet group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineWattSet room UG.Heizungskeller
define HK.WaschmaschineBetrieb dummy
attr HK.WaschmaschineBetrieb event-on-change-reading state
attr HK.WaschmaschineBetrieb group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineBetrieb room UG.Heizungskeller
define HK.WaschmaschineBetriebCheck DOIF ([HK.Waschmaschine_Pwr:power]>30) (set HK.WaschmaschineBetrieb on) \
DOELSEIF \
([HK.Waschmaschine_Pwr:power]<9) (set HK.WaschmaschineBetrieb off, set Pushover msg 'FHEM' 'Waschmaschine ist fertig', set HM_3674FE playTone 032, setstate HK.WaschmaschineAutoOff defined, trigger HK.WaschmaschineBetrieb off)
attr HK.WaschmaschineBetriebCheck event-on-change-reading state
attr HK.WaschmaschineBetriebCheck group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineBetriebCheck room UG.Heizungskeller
attr HK.WaschmaschineBetriebCheck wait 60:300
define HK.WaschmaschineAutoOff watchdog HK.WaschmaschineBetrieb:off 00:15 HK.WaschmaschineBetrieb:on {fhem("set HK.Waschmaschine_Sw off");;;;fhem("set Pushover msg 'FHEM' 'Waschmaschine wurde ausgeschaltet'")}
attr HK.WaschmaschineAutoOff group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineAutoOff regexp1WontReactivate 1
attr HK.WaschmaschineAutoOff room UG.Heizungskeller
define Weatherforecast OPENWEATHER meinProjekt meinOrt meinAPIkey
attr Weatherforecast INTERVAL 21600
attr Weatherforecast room Wetter
define DailyWeatherNotify at *06:45 {my $TETemperatur = ReadingsVal("WS1_TEMPERATURE","state", "");; my $TERain = ReadingsVal("WS1_ISRAINING","state", "");; my $TETempmax = ReadingsVal("Weatherforecast","fc0_tempMax11", "");; my $TEWeather = ReadingsVal("Weatherforecast","fc0_weather11", "");; my $TEUnit = "°C";; system ("curl -s -F 'token=aYA4DVYTVt77Dc93JsUZXWBtaBWVXm' -F 'user=u8QsBGPTr41B5H7GupYVD4qS6W8j5S' -F 'message=aktuelles Wetter\nTemperatur $TETemperatur°C\nRegen: $TERain\nHeute: $TETempmax$TEUnit / $TEWeather' https://api.pushover.net/1/messages.json")}
attr DailyWeatherNotify room Wetter
define UG.SaunaBereit DOIF ([UG.Saunaofen] eq "on" and [UG.SaunatemperaturInnen] > 79) (set Pushover msg 'FHEM' 'Sauna bereit')
attr UG.SaunaBereit disable 0
attr UG.SaunaBereit group 1: Sauna
attr UG.SaunaBereit room UG.Sauna
define HM_3674FE CUL_HM 3674FE
attr HM_3674FE IODev CUL1
attr HM_3674FE IOgrp CCU:CUL1
attr HM_3674FE autoReadReg 4_reqStatus
attr HM_3674FE devStateIcon .*:audio_volume_high
attr HM_3674FE expert 2_raw
attr HM_3674FE firmware 1.0
attr HM_3674FE group 2: Benachrichtigungen
attr HM_3674FE model HM-OU-CM-PCB
attr HM_3674FE peerIDs 00000000,
attr HM_3674FE room System
attr HM_3674FE serialNr MEQ0277871
attr HM_3674FE subType outputUnit
set HM_3674FE playTone 032
define OG.SZ.TempDes dummy
attr OG.SZ.TempDes group 4: Heizung
attr OG.SZ.TempDes room OG.Schlafzimmer
attr OG.SZ.TempDes setList state:20,21,22,23,24
attr OG.SZ.TempDes webCmd state
define OG.SZ.TH THRESHOLD OG.SZ.Temp:temperature:0.2:OG.SZ.TempDes:state HM_35F8F0_Sw_03
attr OG.SZ.TH group 4: Heizung
attr OG.SZ.TH number_format %.1f
attr OG.SZ.TH room OG.Schlafzimmer
attr OG.SZ.TH setOnDeactivated cmd1_gt
attr OG.SZ.TH state_cmd1_gt off
attr OG.SZ.TH state_cmd2_lt on
attr OG.SZ.TH state_format _m _dv _sc
define Mischer.OG.zu RPI_GPIO 18
attr Mischer.OG.zu direction output
attr Mischer.OG.zu eventMap on:1 off:0
attr Mischer.OG.zu group GPIO
attr Mischer.OG.zu poll_interval 1
attr Mischer.OG.zu room Heizung,System
define Mischer.OG.auf RPI_GPIO 17
attr Mischer.OG.auf direction output
attr Mischer.OG.auf eventMap on:1 off:0
attr Mischer.OG.auf group GPIO
attr Mischer.OG.auf poll_interval 1
attr Mischer.OG.auf room Heizung,System
define Heizung.OG.Pumpe RPI_GPIO 2
attr Heizung.OG.Pumpe alias Heizung.OG.Pumpe
attr Heizung.OG.Pumpe comment Pin3
attr Heizung.OG.Pumpe direction output
attr Heizung.OG.Pumpe group GPIO
attr Heizung.OG.Pumpe poll_interval 1
attr Heizung.OG.Pumpe room Heizung,System
define Heizung.OG.Mischer STELLMOTOR FhemDev
attr Heizung.OG.Mischer STMcalibrateDirection L
attr Heizung.OG.Mischer STMdebugToLog3 0
attr Heizung.OG.Mischer STMfhemDevRL Mischer.OG.auf
attr Heizung.OG.Mischer STMfhemDevSTART Mischer.OG.zu
attr Heizung.OG.Mischer STMinvertOut 0
attr Heizung.OG.Mischer STMlastDiffMax 1
attr Heizung.OG.Mischer STMmapOffCmd 0
attr Heizung.OG.Mischer STMmapOnCmd 0
attr Heizung.OG.Mischer STMmaxDriveSeconds 118
attr Heizung.OG.Mischer STMmaxTics 100
attr Heizung.OG.Mischer STMpollInterval 0.1
attr Heizung.OG.Mischer STMresetOtherDeviceAtCalibrate 0
attr Heizung.OG.Mischer STMrlType einzel
attr Heizung.OG.Mischer STMtimeTolerance 0.01
attr Heizung.OG.Mischer group Steuerung
attr Heizung.OG.Mischer room Heizung
define Heizung.OG.MischerCommands DOIF ([Heizung.OG.VorlaufIst:temperature.avg] < 10)\
(set Heizung.OG.Mischer 1)\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] > 49)\
(set Heizung.OG.Mischer 1)\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] < ([Heizung.OG.VorlaufSollClone]-10) and [Heizung.OG.Mischer:position]<97 and [Heizung.OG.Pumpe] eq "on")\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]+3)}) ## Cmd 3: Schnell oeffnen\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] < ([Heizung.OG.VorlaufSollClone]-6) and [Heizung.OG.Mischer:position]<98 and [Heizung.OG.Pumpe] eq "on")\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]+2)}) ## Cmd 4: Ganz langsam oeffnen\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] < ([Heizung.OG.VorlaufSollClone]-2) and [Heizung.OG.Mischer:position]<98 and [Heizung.OG.Pumpe] eq "on")\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]+1)}) ## Cmd 5: Noch ein bisschen\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] > ([Heizung.OG.VorlaufSollClone]+5) and [Heizung.OG.Mischer:position]>3)\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]-2)}) ## Cmd 6: Viel zu heiss, schnell zu\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] > ([Heizung.OG.VorlaufSollClone]+3) and [Heizung.OG.Mischer:position]>2)\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]-1)}) ## Cmd 7: Zu heiss, schnell zu\
DOELSEIF ([Heizung.OG.VorlaufIst:temperature.avg] > ([Heizung.OG.VorlaufSollClone]+1) and [Heizung.OG.Mischer:position]>2)\
(set Heizung.OG.Mischer {([Heizung.OG.Mischer:position]-1)}) ## Cmd 8: Noch ein bisschen\
DOELSEIF ([03:50])\
(set Heizung.OG.Mischer calibrate) ## Cmd 9: Calibrieren fuer Tagprogramm\
DOELSE()
attr Heizung.OG.MischerCommands cmdpause 0:0:30:60:90:60:120:180:0:0
attr Heizung.OG.MischerCommands do always
attr Heizung.OG.MischerCommands group Steuerung
attr Heizung.OG.MischerCommands room Heizung
attr Heizung.OG.MischerCommands wait 0,0,90,120,150,180,240,480,0,0
define FHEM FHEM2FHEM 192.168.1.39:7072 LOG:Heizung.*
attr FHEM room System
define Heizung.OG.VorlaufSollClone cloneDummy Heizung.OG.VorlaufSoll
attr Heizung.OG.VorlaufSollClone group Temperaturen
attr Heizung.OG.VorlaufSollClone room Heizung
attr Heizung.OG.VorlaufSollClone stateFormat {sprintf(ReadingsVal("Heizung.OG.VorlaufSollClone","temperature",30))}
define Heizung.OG.PumpenanforderungClone cloneDummy Heizung.OG.Pumpenanforderung
attr Heizung.OG.PumpenanforderungClone group Steuerung
attr Heizung.OG.PumpenanforderungClone room Heizung
attr Heizung.OG.PumpenanforderungClone stateFormat {sprintf(ReadingsVal("Heizung.OG.PumpenanforderungClone","status","off"))}
define Sensorencheck DOIF ([Heizung.OG.VorlaufIst:temperature] == 0) (set Pushover msg 'FHEM' 'Heizungssensoren ausgefallen - Neustart notwendig!')
attr Sensorencheck group Benachrichtigungen
attr Sensorencheck room System
define Heizung.OG.VorlaufIst GPIO4 28-80000026e279
attr Heizung.OG.VorlaufIst group Temperaturen
attr Heizung.OG.VorlaufIst model DS18B20
attr Heizung.OG.VorlaufIst room Heizung
attr Heizung.OG.VorlaufIst stateFormat {sprintf (ReadingsVal("Heizung.OG.VorlaufIst","temperature",0))}
attr Heizung.OG.VorlaufIst userReadings temperature.avg {movingAverage("Heizung.OG.VorlaufIst","temperature",300)}
sub movingAverage($$$){
my ($name,$reading,$avtime) = @_;
my $hash = $defs{$name};
my @new = my ($val,$time) = ($hash->{READINGS}{$reading}{VAL},$hash->{READINGS}{$reading}{TIME});
my ($cyear, $cmonth, $cday, $chour, $cmin, $csec) = $time =~ /(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)/;
my $ctime = $csec+60*$cmin+3600*$chour;
my $num;
my $arr;
#-- initialize if requested
if( ($avtime eq "-1") ){
$hash->{READINGS}{$reading}{"history"}=undef;
}
#-- test for existence
if( !$hash->{READINGS}{$reading}{"history"}){
#Log 1,"ARRAY CREATED";
push(@{$hash->{READINGS}{$reading}{"history"}},\@new);
$num = 1;
$arr=\@{$hash->{READINGS}{$reading}{"history"}};
} else {
$num = int(@{$hash->{READINGS}{$reading}{"history"}});
$arr=\@{$hash->{READINGS}{$reading}{"history"}};
my $starttime = $arr->[0][1];
my ($syear, $smonth, $sday, $shour, $smin, $ssec) = $starttime =~ /(\d+)-(\d+)-(\d+)\s(\d+):(\d+):(\d+)/;
my $stime = $ssec+60*$smin+3600*$shour;
#-- correct for daybreak
$stime-=86400
if( $stime > $ctime);
if( ($num < 25)&&( ($ctime-$stime)<$avtime) ){
#Log 1,"ARRAY has $num elements, adding another one";
push(@{$hash->{READINGS}{$reading}{"history"}},\@new);
}else{
shift(@{$hash->{READINGS}{$reading}{"history"}});
push(@{$hash->{READINGS}{$reading}{"history"}},\@new);
}
}
#-- output and average
my $average = 0;
for(my $i=0;$i<$num;$i++){
$average+=$arr->[$i][0];
Log 4,"[$name moving average] Value = ".$arr->[$i][0]." Time = ".$arr->[$i][1];
}
$average=sprintf( "%5.3f", $average/$num);
#--average
Log 4,"[$name moving average] calculated over $num values is $average";
return $average;
}
define Heizung.OG.Neigung dummy
attr Heizung.OG.Neigung group 4: Heizung
attr Heizung.OG.Neigung room UG.Heizungskeller
attr Heizung.OG.Neigung setList state:0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0
attr Heizung.OG.Neigung webCmd state
define Heizung.OG.Niveau dummy
attr Heizung.OG.Niveau group 4: Heizung
attr Heizung.OG.Niveau room UG.Heizungskeller
attr Heizung.OG.Niveau setList state:0,1,2,3,4,5,6
attr Heizung.OG.Niveau webCmd state
define Heizung.OG.Verstaerkung dummy
attr Heizung.OG.Verstaerkung group 4: Heizung
attr Heizung.OG.Verstaerkung room UG.Heizungskeller
attr Heizung.OG.Verstaerkung setList state:0.0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0
attr Heizung.OG.Verstaerkung webCmd state
define Heizung.OG.VorlaufMin dummy
attr Heizung.OG.VorlaufMin group 4: Heizung
attr Heizung.OG.VorlaufMin room UG.Heizungskeller
attr Heizung.OG.VorlaufMin setList state:25,26,27,28,29,30
attr Heizung.OG.VorlaufMin webCmd state
define Heizung.OG.VorlaufMax dummy
attr Heizung.OG.VorlaufMax group 4: Heizung
attr Heizung.OG.VorlaufMax room UG.Heizungskeller
attr Heizung.OG.VorlaufMax setList state:45,46,47,48,49,50
attr Heizung.OG.VorlaufMax webCmd state
define Heizung.OG.VorlaufSoll dummy
attr Heizung.OG.VorlaufSoll group 4: Heizung
attr Heizung.OG.VorlaufSoll room UG.Heizungskeller
attr Heizung.OG.VorlaufSoll userReadings temperature { ReadingsVal ("Heizung.OG.VorlaufSoll", "state",30);;;;}
define Heizung.OG.VorlaufSollRefresh at +*00:10:00 { prg_Vorlauf_OG() }
attr Heizung.OG.VorlaufSollRefresh group 4: Heizung
attr Heizung.OG.VorlaufSollRefresh room UG.Heizungskeller
sub
prg_Vorlauf_OG()
{
my $steil = ReadingsVal("Heizung.OG.Neigung","state","0.4");
my $kh = ReadingsVal("Heizung.OG.Niveau","state","1");
my $verst = ReadingsVal("Heizung.OG.Verstaerkung","state","1");
my $minvl = ReadingsVal("Heizung.OG.VorlaufMin","state","25");
my $maxvl = ReadingsVal("Heizung.OG.VorlaufMax","state","50");
my $sw = ReadingsVal("OG.KZ.TempDes","state","22");
my $iw = ReadingsVal("OG.KZ.Temp","temperature","20");
my $at = ReadingsVal("E_WS1","temperature","10");
my $t1 = ($at/(320-$at*4));
my $t2 = pow($sw,$t1);
my $maxabw = $sw-$iw;
my $swhk = (((0.55)*$steil*($t2)*((-$at+20)*2)+$sw+$kh)+($maxabw*$verst));
if ($swhk < $minvl) {$swhk=$minvl};
if ($swhk > $maxvl) {$swhk=$maxvl};
$swhk = int(100*$swhk+0.5)/100;
fhem ("set Heizung.OG.VorlaufSoll $swhk");
}
define OG.Heizung.Sommerbetrieb dummy
attr OG.Heizung.Sommerbetrieb devStateIcon on:weather_sun off:weather_frost
attr OG.Heizung.Sommerbetrieb group 4: Heizung
attr OG.Heizung.Sommerbetrieb room UG.Heizungskeller
attr OG.Heizung.Sommerbetrieb setList on off
define Heizung.OG.Pumpenanforderung dummy
attr Heizung.OG.Pumpenanforderung group 4: Heizung
attr Heizung.OG.Pumpenanforderung room UG.Heizungskeller
attr Heizung.OG.Pumpenanforderung userReadings status { ReadingsVal ("Heizung.OG.Pumpenanforderung", "state","off");;;;}
define Heizung.OG.PumpenanforderungCommands DOIF ([+0:01] and [OG.Heizung.Sommerbetrieb] eq "off" and \
([?HM_35F8F0_Sw_06] eq "on" or \
[?HM_35F8F0_Sw_03] eq "on" or\
[?HM_35F8F0_Sw_02] eq "on"))\
(set Heizung.OG.Pumpenanforderung on) ## 6 KZ, 3 SZ, 2 Bad\
DOELSE\
(set Heizung.OG.Pumpenanforderung off)
attr Heizung.OG.PumpenanforderungCommands group 4: Heizung
attr Heizung.OG.PumpenanforderungCommands room UG.Heizungskeller