Gruss in dir Runde - ich versuche gerade aus https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Modus_Party_.28Urlaub.29
die Funktion Urlaub() umzusetzen - habe bis jetzt nichts brauchbareres gefunden - und es geht mit allein um die Heizkörpersteuerung. Dort steht:
my $Urlaub;
sub
Urlaub($$$$$)
{
my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;
# HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.
# Daher $startTime und $endTime abrunden
$startTime =~ s/\:[0-2].$/:00/;
$startTime =~ s/\:[3-5].$/:30/;
$endTime =~ s/\:[0-2].$/:00/;
$endTime =~ s/\:[3-5].$/:30/;
# controlParty bei jedem HM-CC-RT-DN setzen.
for my $rt (qw(Kammer Treppenhaus)) {
fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
}
}
Es fehlt vollkommen die Angabe, wo man diese Funktion eintragen soll. Ich habe dies mal in 99_myUtils.pm getan:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new file. They are then available in every Perl
# expression.
package main; use strict; use warnings; use POSIX; sub myUtils_Initialize($$) {
my ($hash) = @_;
}
# Enter you functions below _this_ line.
my $Urlaub;
sub
Urlaub($$$$$)
{
my ($temp, $startDate, $startTime, $endDate, $endTime) = @_;
# HM-CC-RT-DN akzeptiert nur Zeiten, die auf Minute 00 oder 30 enden.
# Daher $startTime und $endTime abrunden
$startTime =~ s/\:[0-2].$/:00/;
$startTime =~ s/\:[3-5].$/:30/;
$endTime =~ s/\:[0-2].$/:00/;
$endTime =~ s/\:[3-5].$/:30/;
# controlParty bei jedem HM-CC-RT-DN setzen.
for my $rt (qw(Wohnzimmer.Wandthermostat Bad_Oben.Wandthermostat Rebecca.Wandthermostat Galerie.Wandthermostat Patricia.Wandthermostat Schlafzimmer.Wandthermostat Kueche.Wandthermostat Bad_Unten.Wandthermostat)) {
fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
}
}
1;
fhem gestoppt, gestartet und wie in dem Wiki beschrieben mit
{Urlaub ("16.0", "28.12.2018", "15:00", "05.01.2019", "05:00")}
aufgerufen, bloss ohne jeden Erfolg. Was mache ich falsch?
Hier ein "list Wohnzimmer.Wandthermostat":
Internals:
DEF 49B28302
NAME Wohnzimmer.Wandthermostat
NOTIFYDEV global
NR 124
NTFY_ORDER 50-Wohnzimmer.Wandthermostat
STATE T: 21.1 desired: 21.0
TYPE CUL_HM
chanNo 02
device TH_Wohnzimmer
peerList HZ_Wohnzimmer_Climate,
Helper:
DBLOG:
desired-temp:
myDbLog:
TIME 1545489183.31569
VALUE 21.0
humidity:
myDbLog:
TIME 1545489183.31569
VALUE 46
measured-temp:
myDbLog:
TIME 1545489183.31569
VALUE 21.1
state:
myDbLog:
TIME 1545489183.31569
VALUE T: 21.1 desired: 21.0
READINGS:
2018-12-19 14:30:14 CommandAccepted yes
2017-09-11 16:12:01 R-dayTemp 21 C
2017-09-11 16:12:01 R-daylightSaveTime on
2017-09-11 16:12:01 R-heatCool heating
2017-09-11 16:12:01 R-modePrioManu all
2017-09-11 16:12:01 R-modePrioParty all
2017-09-11 16:12:01 R-nightTemp 17 C
2017-09-11 16:12:01 R-noMinMax4Manu off
2017-09-11 16:12:01 R-sendWeatherData on
2017-09-11 16:12:01 R-showHumidity temp
2017-09-11 16:12:01 R-showInfo time
2017-09-11 16:12:01 R-showSetTemp actTemp
2017-09-11 16:11:56 R-sign off
2017-09-11 16:12:01 R-tempOffset 0.0K
2017-09-11 16:12:01 R-weekPrgSel prog1
2017-09-11 16:12:01 R-winOpnBoost off
2018-10-21 20:57:12 R_P1_0_tempListSat 04:00 18.0 05:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_1_tempListSun 04:00 18.0 05:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_2_tempListMon 04:00 18.0 05:00 19.0 08:15 21.0 16:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_3_tempListTue 04:00 18.0 05:00 19.0 08:15 21.0 16:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_4_tempListWed 04:00 18.0 05:00 19.0 08:15 21.0 16:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_5_tempListThu 04:00 18.0 05:00 19.0 08:15 21.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_6_tempListFri 04:00 18.0 05:00 19.0 22:30 21.0 24:00 18.0
2018-10-21 20:57:12 R_P1_tempList_State verified
2018-10-21 20:57:16 R_P2_0_tempListSat 24:00 17.0
2018-10-21 20:57:16 R_P2_1_tempListSun 24:00 17.0
2018-10-21 20:57:16 R_P2_2_tempListMon 24:00 17.0
2018-10-21 20:57:16 R_P2_3_tempListTue 24:00 17.0
2018-10-21 20:57:16 R_P2_4_tempListWed 24:00 17.0
2018-10-21 20:57:16 R_P2_5_tempListThu 24:00 17.0
2018-10-21 20:57:16 R_P2_6_tempListFri 24:00 17.0
2018-10-21 20:57:16 R_P2_tempList_State verified
2018-10-21 20:57:20 R_P3_0_tempListSat 24:00 17.0
2018-10-21 20:57:20 R_P3_1_tempListSun 24:00 17.0
2018-10-21 20:57:20 R_P3_2_tempListMon 24:00 17.0
2018-10-21 20:57:20 R_P3_3_tempListTue 24:00 17.0
2018-10-21 20:57:20 R_P3_4_tempListWed 24:00 17.0
2018-10-21 20:57:20 R_P3_5_tempListThu 24:00 17.0
2018-10-21 20:57:20 R_P3_6_tempListFri 24:00 17.0
2018-10-21 20:57:20 R_P3_tempList_State verified
2018-10-21 20:57:08 RegL_01. 08:00 00:00
2018-10-21 20:57:12 RegL_07. 01:2A 02:22 03:09 04:3D 05:00 06:00 07:00 08:00 09:87 0A:30 0B:00 0C:00 0D:00 0E:01 0F:04 10:00 11:00 12:09 13:00 14:48 15:30 16:4C 17:3C 18:55 19:0E 1A:49 1B:20 1C:41 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:48 2F:30 30:4C 31:3C 32:55 33:0E 34:49 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:48 49:30 4A:4C 4B:3C 4C:54 4D:63 4E:4C 4F:C0 50:55 51:0E 52:49 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:48 63:30 64:4C 65:3C 66:54 67:63 68:4C 69:C0 6A:55 6B:0E 6C:49 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:48 7D:30 7E:4C 7F:3C 80:54 81:63 82:4C 83:C0 84:55 85:0E 86:49 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:48 97:30 98:4C 99:3C 9A:54 9B:63 9C:55 9D:0E 9E:49 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:48 B1:30 B2:4C B3:3C B4:55 B5:0E B6:49 B7:20 B8:41 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:00 CB:00 CC:00 CD:00 CE:00 CF:00 00:00
2018-10-21 20:57:16 RegL_08. 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:00 0B:00 0C:00 0D:00 0E:00 0F:00 10:00 11:00 12:00 13:00 14:45 15:20 16:45 17:20 18:45 19:20 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:45 2F:20 30:45 31:20 32:45 33:20 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:45 49:20 4A:45 4B:20 4C:45 4D:20 4E:45 4F:20 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:45 63:20 64:45 65:20 66:45 67:20 68:45 69:20 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:45 7D:20 7E:45 7F:20 80:45 81:20 82:45 83:20 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:45 97:20 98:45 99:20 9A:45 9B:20 9C:45 9D:20 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:45 B1:20 B2:45 B3:20 B4:45 B5:20 B6:45 B7:20 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:00 CB:00 CC:00 CD:00 CE:00 CF:00 00:00
2018-10-21 20:57:20 RegL_09. 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:00 0B:00 0C:00 0D:00 0E:00 0F:00 10:00 11:00 12:00 13:00 14:45 15:20 16:45 17:20 18:45 19:20 1A:45 1B:20 1C:45 1D:20 1E:45 1F:20 20:45 21:20 22:45 23:20 24:45 25:20 26:45 27:20 28:45 29:20 2A:45 2B:20 2C:45 2D:20 2E:45 2F:20 30:45 31:20 32:45 33:20 34:45 35:20 36:45 37:20 38:45 39:20 3A:45 3B:20 3C:45 3D:20 3E:45 3F:20 40:45 41:20 42:45 43:20 44:45 45:20 46:45 47:20 48:45 49:20 4A:45 4B:20 4C:45 4D:20 4E:45 4F:20 50:45 51:20 52:45 53:20 54:45 55:20 56:45 57:20 58:45 59:20 5A:45 5B:20 5C:45 5D:20 5E:45 5F:20 60:45 61:20 62:45 63:20 64:45 65:20 66:45 67:20 68:45 69:20 6A:45 6B:20 6C:45 6D:20 6E:45 6F:20 70:45 71:20 72:45 73:20 74:45 75:20 76:45 77:20 78:45 79:20 7A:45 7B:20 7C:45 7D:20 7E:45 7F:20 80:45 81:20 82:45 83:20 84:45 85:20 86:45 87:20 88:45 89:20 8A:45 8B:20 8C:45 8D:20 8E:45 8F:20 90:45 91:20 92:45 93:20 94:45 95:20 96:45 97:20 98:45 99:20 9A:45 9B:20 9C:45 9D:20 9E:45 9F:20 A0:45 A1:20 A2:45 A3:20 A4:45 A5:20 A6:45 A7:20 A8:45 A9:20 AA:45 AB:20 AC:45 AD:20 AE:45 AF:20 B0:45 B1:20 B2:45 B3:20 B4:45 B5:20 B6:45 B7:20 B8:45 B9:20 BA:45 BB:20 BC:45 BD:20 BE:45 BF:20 C0:45 C1:20 C2:45 C3:20 C4:45 C5:20 C6:45 C7:20 C8:45 C9:20 CA:00 CB:00 CC:00 CD:00 CE:00 CF:00 00:00
2018-12-22 13:13:13 boostTime -
2018-12-22 13:13:13 commReporting off
2018-12-22 13:13:13 controlMode auto
2018-12-22 15:33:03 desired-temp 21.0
2018-12-22 15:33:03 humidity 46
2018-12-22 15:33:03 measured-temp 21.1
2018-11-23 12:20:50 partyEnd 18-11-25 11:30
2018-11-23 12:20:50 partyStart 18-11-23 16:30
2018-11-23 12:20:50 partyTemp 15
2018-12-22 15:09:23 peerList HZ_Wohnzimmer_Climate,
2018-12-19 14:30:14 recentStateType ack
2018-12-22 15:33:03 state T: 21.1 desired: 21.0
2018-12-22 13:13:13 winOpenReporting off
helper:
regLst ,1,7,8,9
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
shRegR:
07 00
Attributes:
group Heizung
icon temp_control
model HM-TC-IT-WM-W-EU
peerIDs 00000000,42BD2102,
room 01. Wohnzimmer,Dashboard,Heizung
userattr Heizung Heizung_map structexclude
Danke für jeglichen Input - auch ein Alternativvorschlag für das gleichzeitige versetzen meiner 8 Thermostate in den Party/Urlaubsmode.
Gruss & Merry Christmas
Christian
Zitatbloss ohne jeden Erfolg.
Logeintrag?
Fehlermeldung?
Zitataufgerufen
Zur Sicherheit mal gefragt: wo?
controlParty gibt es nur beim Climate-Kanal des Wandthermostaten bzw. im Clima-Kanal des Heizkörperthermostaten.
Du musst also die Liste der Thermostate mindestens so anpassen:
for my $rt (qw(Wohnzimmer.Wandthermostat_Climate
Es sollte auch das gehen:
for my $rt (qw(Kammer Treppenhaus)) {
$rt .= "_Climate";
fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
}
Es sollte daher ein Fehler im fhem-Log stehen sowas wie: unknown command partyMode chose...
Steht aber auch im Wiki...
Ob das dann schon alles ist weiß ich nicht...
Anmerkung: einen Punkt im Namen würde ich vermeiden/nicht machen. Der hat bei RegEx eine "Sonderrolle"...
Anmerkung2: das "my $Urlaub" sollte auch nicht nötig sein...
EDIT: jetzt hast du mich mit dem Namen deines lists in die Irre geführt. D.h. du hast das komplett umbenannt alles...
EDIT2: woher weißt du, dass es nicht funktioniert hat? Du willst ja den Party-Modus erst am 28.12. haben. Ich würde zum Testen mal einen nehmen der gleich kommt. Also die nächste halbe/volle Stunde und dann noch mal schauen... Und auch mal im Heizkörperthermostaten schauen. Irgendwie kann ich mich erinnern, dass sich das der Wandthermostat so gar nicht merkt. Wollte schon mal einen Wandthermostat an der Tür zur zentralen Steuerung nehmen, also nur das was du mit der Funktion machst ohne dass der Wandthermostat tatsächlich steuert.
Wollte nur die Party-Funktion übertragen und habe gemerkt, dass das so nicht geht, weil die im Wandthermostaten irgendwie nicht drin stand...
Gruß, Joachim
ja, das ist ohne Ergebnis.
Warum?
Siehe meine Kommentare in meiner Sub
Zitat#####################
# Versetzen der Heizungsthermostate in den Partymodus für die angegebene Zeit
# Parameter: $temp, $startDate, $startTime, $endDate, $endTime)
# Aufruf: {Urlaub ("16", "06.12.13", "16:30", "09.12.13" ,"05:00")}
# $temp Temperatur
# $startDate Startdatum ohne Jahrtausend
# $startTime Startzeit ohne Sekunden
# $endDate Enddatum ohne Jahrtausend
# $endTime Enddatum ohne Sekunden
#####################
Ok, lesen bildet:
# $startDate Startdatum ohne Jahrtausend
19 statt 2019 und schon geht es.
Bzgl. der Frage, woran ich gemerkt habe, dass es nicht geht. Sobald man ein "controlParty" anlegt (auch mit Beginn in der Zukunft) erscheint auf den HMs ein Koffersymbol - da war keines - ergo, es hat nicht funktioniert. Auch hatten sich im list device die Daten zum PartyMode nicht geändert. Fehlermeldungen gab es weder im eventlog noch im log.
Danke für den Input.
Eins noch "Wohnzimmer.Wandthermostat" ist der Climate Channel bei mir.
Allen ein frohes Fest und 'nen ordentlichen Rutsch
Christian
Soweit ich weiß, erscheint der Koffer nur, wenn Party/ Urlaub aktiv ist.