HM-CC-RT-DN Schaltprogramm auslesen / löschen / ändern

Begonnen von Andreas_, 05 Dezember 2013, 15:54:41

Vorheriges Thema - Nächstes Thema

hoppel118

#75
Moinsen,

auch wenn der Beitrag schon alt ist, möchte ich mich hier nochmal bedanken. Denn mit den Informationen im Wiki allein bin ich nicht klar gekommen. Ich bin auf dem Gebiet FHEM ganz frisch, habe eigentlich keine Programmierkenntnisse, kenne mich aber mit Linux ganz gut aus. Ich wusste einfach nicht, wo diese Funktion hin soll.  ???

Ich möchte hier für die Nachwelt nochmal vollständig festhalten, was zu tun ist, damit partyControl funktioniert.

Hier ist der der Beitrag im CommandRef: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29

1. Wenn man nur ein Thermostat in diesen Zustand bringen möchte, funktioniert das über die fhem Web-Oberfläche wie folgt:

set OG_Buero_Thermostat_Clima controlParty 16 12.01.18 08:00 24.01.18 18:00

Thermostat, Temperatur, Daten und Uhrzeiten ersetzen.

2. Wenn man alle Thermostate in diesen Zustand bringen möchte, funktioniert das wie folgt:

2a. Datei (Funktion) Namens "99_myUtils.pm" wie hier beschrieben erstellen und am Ende der Datei folgendem Inhalt ergänzen:

https://wiki.fhem.de/wiki/99_myUtils_anlegen

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(OG_Bad_Thermostat_Clima OG_Buero_Thermostat_Clima OG_Flur_Thermostat_Clima OG_Kueche_Thermostat_Clima OG_SZ_Thermostat_Clima OG_WZ_Essbereich_Thermostat_Clima OG_WZ_Wohnbereich_Thermostat_Clima)) {
      fhem ("set $rt controlParty $temp $startDate $startTime $endDate $endTime");
    }
  }


Die Thermostate "$rt" müssen durch die eigenen ersetzt werden. 

2b. Wenn das Datum für die Party oder den Urlaub feststeht, folgenden Befehl im WebInterface eingeben:

{Urlaub ("16", "12.01.18", "08:00", "24.01.18" ,"18:00")}


Kann man sich irgendwie für diesen einen Befehl ein Widget bauen? Oder macht ihr das tatsächlich immer mit dem Befehl? (Mal abgesehen, von Alexa und Homekit...)

Auf jeden Fall nochmal ein dickes Danke!

Gruß Hoppel

EDIT: OK, habe gerade noch folgenden Link gefunden, da werde ich mich dann wohl auch nochmal mit beschäftigen:

https://wiki.fhem.de/wiki/Calendar
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

darkness

#76
Hallo Hoppel,

mein Vorschlag wäre, dass du deine Anleitung ins Wiki stellst: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat
Dann wäre es thematisch an einer Stelle.


ZitatHier ist der der Beitrag im CommandRef: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29

Das ist nicht die CommandRef sondern das Wiki.
Was stimmt denn mit dem Wiki-Artikel nicht? Der Beschreibt doch auch dein Vorhaben, oder?





Gruß




hoppel118

#77
Ja, nur für mich als fhem-Neuling war aber nicht ersichtlich, dass es sowas wie myUtils.pm überhaupt gibt. Dazu gibt es im Wiki: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Betriebsmodus_Auto.2C_Manu.2C_Party_.28Urlaub.29 keinen Hinweis. Dort steht lediglich die Überschrift "Funktion". "Was ist das?" habe ich mich gefragt.

Als ich dann den Link zur Erstellung eines Kalenders: https://wiki.fhem.de/wiki/Google-Kalender_zur_Steuerung_von_Dummies gefunden hatte, habe ich entdeckt, dass das es dort eine Verlinkung zu einer Beschreibung gibt: https://wiki.fhem.de/wiki/99_myUtils_anlegen und dafür bereits ein Template existiert, was anhand des fhem internen Editors zu kopieren ist. Denn wenn man das manuell macht, fehlen einem die Inhalte aus dem Template.

Ich hatte die Beschreibung meines vorangegangenen Posts daraufhin gestern Nacht nochmal angepasst. Ursprünglich hatte ich dort auch beschrieben, wo und wie diese Datei über die Command Line zu erstellen ist, danach die Besitzerrechte anhand von chown anzupassen sind und der fhem Service einmal neuzustarten ist. Wie das richtig gemacht wird, sollte im Wiki unter "Funktion" verlinkt werden.

Ich kann das gerne dort im Wiki ergänzen. Ein Satz dazu mit der entsprechenden Verlinkung reicht ja aus. Wer kann mir die Berechtigung für das Wiki geben? Muss ich dann irgendwas wissen/beachten? Habe bisher noch keine Wiki-Einträge erstellt. Das kann sonst auch gerne jemand anders machen. Ich stelle mir das bspw. wie folgt vor:

ZitatFunktion:

Wer noch keine eigene Funktion erstellt hat, legt sich zunächst eine eigene 99_MyUtils.pm (LINK: https://wiki.fhem.de/wiki/99_myUtils_anlegen) an. Danach einfach den nachfolgenden Inhalt an das Ende der Datei kopieren (eigene Thermostate unter $rt ergänzen):

my $Urlaub;
sub
Urlaub($$$$$)
  {
...
...
...
  }

Wie seht ihr das?

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

martinp876

jetzt muss ich doch einmal nachsetzen. Man benötigt nicht unbedingt eine Routine in Myutils. defSpec2array ist der bringer.
Man muss allerdings irdent eine Systematik in den Parametern vorweisen können.
Basierend auf dem Vorschlag
set OG_Buero_Thermostat_Clima controlParty 16 12.01.18 08:00 24.01.18 18:00
für ALLE RTs im System wäre das:
set TYPE=CUL_HM:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN  controlParty 16 12.01.18 08:00 24.01.18 18:00

mit Varianten nach Raum oder Gruppe ... oder sonst etwas

set TYPE=CUL_HM:FILTER=room=Wohn:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN  controlParty 16 12.01.18 08:00 24.01.18 18:00
set TYPE=CUL_HM:FILTER=group=party:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN  controlParty 16 12.01.18 08:00 24.01.18 18:00
set TYPE=CUL_HM:FILTER=room=Sz.*:FILTER=DEF=......04:FILTER=model=HM-CC-RT-DN  controlParty 16 12.01.18 08:00 24.01.18 18:00


hoppel118

Ok, das sieht auch nicht schlecht aus, muss ich bei Gelegenheit mal ausprobieren. Ich bin gerade auf Dienstreise...

Gibt es eine Möglichkeit die Party bzw. den Urlaub per Klickibunti über das WebInterface zu konfigurieren?

Ich kann leider nicht programmieren.

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

martinp876

Nicht klar was du meinst. Ich gehe einmal davon aus, dass ein Ansatz wäre, die Parameter eines Kommandos nutzergeführt z.B. mit dropdown oder scrollbar einzugeben.
In fhem geht das. Aber nur für einen Parameter eines Kommandos. Notwendig wäre es für Kommandos mit mehreren Parametern. Und das auch noch dynamisch, da sich die möglichen Parameter mit der Auswahl der ersten ändern.
Wenn ich dich verstanden habe also nein.
Sinnvoll wäre es, ich suche es schon länger.

Die Auswahl der Regel im defspec2array allerdings musst du selbst machen. Da kann das Frontend nicht helfen. Es hängt von deinem Systemdesign und deiner Einrichtungsdisziplin ab.
Helfen kann ich nur, wenn bspw. Alle Device eines Typs im System bearbeitet werden sollen. Meist geht das einfach über das attr Model.

hoppel118

#81
Zitat von: martinp876 am 16 Januar 2018, 06:30:27
Nicht klar was du meinst. Ich gehe einmal davon aus, dass ein Ansatz wäre, die Parameter eines Kommandos nutzergeführt z.B. mit dropdown oder scrollbar einzugeben.

Jo, genau das meine ich.

Zitat von: martinp876 am 16 Januar 2018, 06:30:27
In fhem geht das. Aber nur für einen Parameter eines Kommandos. Notwendig wäre es für Kommandos mit mehreren Parametern. Und das auch noch dynamisch, da sich die möglichen Parameter mit der Auswahl der ersten ändern.
Wenn ich dich verstanden habe also nein.
Sinnvoll wäre es, ich suche es schon länger.

Hm..., mit einem Parameter kommt man wohl nicht weit. Es müsste ungefähr wie folgt aussehen:

1. Schaltfläche, um die betroffenen Thermostate per Checkliste oder bspw. eine Gruppe (bei mir ,,Thermostate"), die alle Thermostate enthält, auszuwählen
2. Dropdownfeld, um die Temperatur auszuwählen
3. Dropdownfeld, um das Startdatum des Urlaubs auszuwählen
4. Dropdownfeld, um die Uhrzeit am Tag des Startdatums festzulegen
5. Dropdownfeld, um das Enddatum des Urlaubs auszuwählen (>= Startdatum)
6. Dropdownfeld, um die Uhrzeit am Tag des Enddatums festzulegen (wenn Startdatum =Enddatum, dann muss die Uhrzeit größer als die Uhrzeit des Startdatums sein)
7. Schaltfläche zum Aktivieren der vorgenommenen Einstellungen

Zitat von: martinp876 am 16 Januar 2018, 06:30:27
Die Auswahl der Regel im defspec2array allerdings musst du selbst machen. Da kann das Frontend nicht helfen. Es hängt von deinem Systemdesign und deiner Einrichtungsdisziplin ab.
Helfen kann ich nur, wenn bspw. Alle Device eines Typs im System bearbeitet werden sollen. Meist geht das einfach über das attr Model.

Was genau meinst du mit Systemdesign und Einrichtungsdisziplin?

Ich habe alles nach Wiki konfiguriert. Ich habe Räume angelegt, in denen sich jeweils ein Thermostat in der Gruppe ,,Thermostate" befindet. Alle meine Thermostate befinden sich in dieser einen Gruppe. Es müsste also passen, wenn man alle Geräte eines Typs bearbeiten könnte.

Wenn ich dann irgendwann weiteres Equipment habe, gäbe es meiner Einrichtungsdisziplin nach weitere Gruppen, neben ,,Thermostate" wären das bspw. Licht, Bewegungsmelder, Türkontakte, Fensterkontakte, Rauchmelder, etc., die dann über die 1. Schaltfläche auswählbar sein müssten.

Da es bei all diesen beispielhaften Gruppen keinen Sinn macht eine Temperatur einzustellen, wäre stattdessen wahrscheinlich ein einfacher On-/Off-Switch ausreichend.

Ist das insgesamt irgendwie umsetzbar?

Wenn ich erstmal nur meine Thermostate über das WebInterface in den Urlaubsmodus versetzen könnte, wäre mir erstmal geholfen bzw. ich würde mich trauen, das meiner Frau zu erklären. [emoji6]

Danke und Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi