FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ChristianH am 22 Dezember 2018, 15:38:03

Titel: Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: ChristianH am 22 Dezember 2018, 15:38:03
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


Titel: Antw:Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: rabehd am 22 Dezember 2018, 19:04:16
Zitatbloss ohne jeden Erfolg.
Logeintrag?
Fehlermeldung?

Zitataufgerufen
Zur Sicherheit mal gefragt: wo?
Titel: Antw:Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: MadMax-FHEM am 22 Dezember 2018, 19:59:50
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
Titel: Antw:Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: rabehd am 22 Dezember 2018, 20:36:28
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
#####################
Titel: Antw:Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: ChristianH am 23 Dezember 2018, 10:39:44
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
Titel: Antw:Funktion Urlaub aus dem Wiki HM-CC-RT-DN
Beitrag von: Neuhier am 23 Dezember 2018, 10:42:40
Soweit ich weiß, erscheint der Koffer nur, wenn Party/ Urlaub aktiv ist.