Start Party-Modus aus fhem (HMCCU + HM-CC-RT-DN)

Begonnen von Tina, 19 Dezember 2017, 16:10:55

Vorheriges Thema - Nächstes Thema

Tina

ich habe zu der oben genannten Thematik einfach nichts gefunden.
Also vorab, falls ich nur "blind" war, dann bitte einfach mit einem Link antworten.

Weiß jemand, wie ein Heizungsthermostat (HM-CC-RT-DN), dass an einer CCU2 angelernt und einwandfrei in fhem gesteuert werden in den Party-Modus versetzt werden kann?

Nach meinem Verständnis müssten die folgenden Werte gesetzt werden und dann irgendwie der Party-Modus gestartet werden:

set HM_A_Heizung datapoint 4.PARTY_TEMPERATURE 21
set HM_A_Heizung datapoint 4.PARTY_START_TIME 870
set HM_A_Heizung datapoint 4.PARTY_START_DAY 19
set HM_A_Heizung datapoint 4.PARTY_START_MONTH 11
set HM_A_Heizung datapoint 4.PARTY_START_YEAR 117
set HM_A_Heizung datapoint 4.PARTY_STOP_TIME 960
set HM_A_Heizung datapoint 4.PARTY_STOP_DAY 19
set HM_A_Heizung datapoint 4.PARTY_STOP_MONTH 11
set HM_A_Heizung datapoint 4.PARTY_STOP_YEAR 117


starten evtl. mit einem

set HM_A_Heizung datapoint 4.PARTY_MODE_SUBMIT 1

Alle Werte ließen sich einwandfrei setzen (keine Fehlermeldung), aber leider auch keine Reaktion.

Ich bin für jeden Hinweis dankbar.

Wie macht ihr das?
Eine alternative Idee wäre noch ein entsprechendes Programm auf der CCU2 zu schreiben und dieses über fhem zu starten.

Vielen Dank
Tina

zap

#1
Laut Datenpunkt Doku von EQ-3 sehen die Wertebereiche wie folgt aus:

PARTY_STOP_TIME 0-1410 (das sind Minuten seit 0 Uhr, warum nicht 1440 ist mir ein Rätsel. Vielleicht auf 30 Minuten Intervalle gerundet)

PARTY_STOP_DAY 1-31

PARTY_STOP_MONTH 1-12 (du hast 11 angegeben, das wäre November)

PARTY_STOP_YEAR 0-99 (du hast 117 angegeben, vermutlich müsste das 17 sein)

Entsprechendes gilt für ..START..

Dann ist da noch PARTY_MODE_SUBMIT. Das hat den Datentyp String. Keine Ahnung ob die 1 da richtig ist. Die Doku schweigt dazu.

UPDATE aus dem Homematic Forum. Es reicht also, nur PARTY_MODE_SUBMIT zu verwenden. Den Rest kannst Du ignorieren:

https://homematic-forum.de/forum/viewtopic.php?t=34673#p330200

"An PARTY_MODE_SUBMIT übergibt man einen String mit folgenden kommagetrennten Elementen:

Partytemperatur (z. B. 21.5 - nicht mit Komma schreiben)
Start-Uhrzeit in Minuten seit 0 Uhr mit einer Auflösung von 30 Minuten (also zum Beispiel 1020 für 17 Uhr)
Starttag (z. B. 21)
Startmonat (z. B. 5)
Letzte zwei Ziffern des Startjahres (z. B. 14 für 2014)
End-Uhrzeit in Minuten seit 0 Uhr wieder mit einer Auflösung von 30 Minuten (z. B. 1380 für 23 Uhr)
Endtag
Endmonat
Letzte zwei Ziffern des Endjahres"
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Tina

Super cool danke.
Ich teste das mal und gebe dann Bescheid.

Tina

Hmm, also das war schon einmal ein sehr guter Hinweis. Vielen Dank.
Wenn ich in der CCU2 ein Programm mit Partymodus schreibe, dann werden genau diese Parameter gesetzt.

Ich hatte in meinem myUtils die Werte zusammengesetzt (insbesondere wegen der Rundungsgeschichte) und kam nach der Anpassung auf folgenden Befehl:

set HM_A_Heizung datapoint 4.PARTY_MODE_SUBMIT 21,990,19,12,17,1080,19,12,17
                                                                                       
Der müsste eigentlich passen. Leider zeigen fhem, CCU2 und das Thermostat keine Reaktion.
Hat jemand noch Ideen?

zap

#4
So geht es:


set HM_A_Heizung datapoint 4.PARTY_MODE_SUBMIT "'21,990,19,12,17,1080,19,12,17'"


Zunächst ein doppeltes Anführungszeichen, dann ein einfaches. Am Ende umgekehrt.

Grund: Der Parameter muss als String übergeben werden, d.h. in der CCU muss die Zeichenkette inklusive umschließender Hochkommata ankommen. Da HMCCU ParseParams verwendet (ermöglicht die Angabe von Leerzeichen in Parametern durch Verwendung von Hochkommata), werden nach Eingabe des Set-Befehls die äußeren Hochkommata entfernt. Wenn dann die inneren nicht da sind, wird in der CCU State(21,990,19,12,17,1080,19,12,17) aufgerufen statt State('21,990,19,12,17,1080,19,12,17').

Ich werde mir da was überlegen, damit das zukünftig einfacher angegeben werden kann.

Etwas vereinfachen lässt es sich durch das Attribut eventMap:


eventMap /datapoint 1.PARTY_MODE_SUBMIT:partyOn/
widgetOverride party:textField


Dann geht:


set HM_A_Heizung partyOn "'21,990,19,12,17,1080,19,12,17'"
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Tina


zap

Und zum Ausschalten einfach vergangenes Zeitfenster angeben
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Tina

Danke für den Hinweis.

Ich "missbrauche" die Partyfunktion ein wenig: Heizung für einen bestimmten Zeitraum (z. B. zum Duschen) recht hoch stellen. Der Partymodus ist nur dafür da, dass ich nicht vergesse die Heizung wieder auf "normal" zu stellen ;-)

Roadrunner1106

Zitat von: zap am 19 Dezember 2017, 17:41:59
Und zum Ausschalten einfach vergangenes Zeitfenster angeben
Es reicht auch einmal den Auto-Modus für das Thermostat erneut zu aktivieren.

Roadrunner1106

Hier noch mal ein Update zum nachlesen für andere. Bei meiner Suche zu dem Thema habe ich bis auf diesen Thread nicht viel gefunden.

Damit die Party-Readings bei mir auch aktualisiert wurden, musste ich im Attribut ccureadingfilter noch "PARTY" aufnehmen.
attr OG_KU_Thermostat ccureadingfilter (TEMPERATURE|VALVE_STATE|CONTROL|BATTERY_STATE|PARTY)

Dann hatte ich mir eine Tabelle (Numbers macOS) erstellt, die aus den vorgegebenen Werten den String für das Kommando erstellt. Heraus kam dann das.
set OG_KU_Thermostat datapoint 4.PARTY_MODE_SUBMIT "'17,960,9,10,20,990,9,10,20'"

Damit wurde zwar der Party-Modus aktiviert und auch die Start- und Endzeiten, aber nicht die Temperatur!

Ich habe dann auch mal mit einem String hier aus dem Thread probiert und dort nur das Datum aktualisiert. Damit wurde aber nichts übernommen oder aktiviert. Wie ich dann festgestellt habe, hat Numbers andere Hochkommas in den String eingebaut, als ich auf der Tastatur ausgewählt hatte. :(

Nach längerem probieren habe ich schließlich herausgefunden, dass ich die Hochkommas im String weglassen muss. D.h. das Kommando was bei mir funktioniert sieht so aus.
set OG_KU_Thermostat datapoint 4.PARTY_MODE_SUBMIT "17,960,9,10,20,990,9,10,20"

zap

Ich habe mit irgendeinem Update mal diesen String Parameter Bug beseitigt
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB