HM-LC-Dim1TPBU-FM Nachts gedimmt kkonfigurieren

Hallo zusammen,
ich habe gefühlt das ganze Forum durchgekämmt und keine Antwort auf meine Frage gefunden deshalb erstelle ich diesen Thread. Falls ich doch einen entsprechenden Thread übersehen haben sollte, entschuldige ich mich schon mal für.

Nun zu meiner Frage. Ich habe den HM-LC-Dim1TPBU-FM mit Homegear laufen und würde gerne von 22-06 Uhr das Licht beim betätigen des Schalters per Wippe nur auf zb. 30% schalten. ich habe dies bereits in ioBroker implementiert aber die Lösung ist suboptimal da bis Signal vom Aktor -> Homegear -> ioBroker ankommt, ist die Lampe schon auf 100%.

Deshalb hätte ich gerne eine Lösung in der ich dem Aktor mitteilen “Schalte dann und dann bei 1x drück auf maximal X %” oder halt “Schalte ab jetzt maximal auf X %”. Ich habe mir die möglichen Datenpunkte und Params des Aktors in Homegear angeguckt aber blicke da ehrlich gesagt nicht durch.

Man kann es wohl am Aktor über die CCU wohl so konfigurieren er hat ja auch mehrere Kanäle(Wie man den 2+3 Kanal benutzt habe ich bis jetzt auch nicht rausgefunden). Aber wie per Homegear ?

Hat schon mal jemand sowas umgesetzt und kann mir die Lösung verraten? :smiley:

Viele Grüße, David

Node-blue ist die Lösung.

Du brauchst 2 flows:

  • timer und Variable-out. Zeitgesteuert wird eine Sytemvariable auf den gewünschten helligkeitswert gestellt.

  • 2 x variable-in, einer für die obige Sytemvariable und einer für den Taster. Dann in passthrough (enable ist der taster, value die systemvariable). Der output dann zum entsprechenden Licht (variable-out).

Ich hoffe ich habe nicht in und out von den Bezeichnungen verwechselt.

Hi Danke schon mal für die Antwort.
Musste mich jetzt aber erstmal einlesen was Node-blue ist… ^^ Nutze Homegear wirklich nur als Gateway, sonst passiert die Logik nur in ioBroker bei mir.

Meinst du sowas?
Flow 1


Flow 2




1 Like

Ja, ziemlich genau das habe ich gemeint. Was mir jetzt auffällt, ist dass du noch einen Switch brauchst im ersten Flow, bei True/On wird die Nachmodus-Brightness gesetzt, bei False/Off die Normale.

So hatte ich das auch mal, nur mit openHAB. Bei mir war die Verzögerung vom Auslösen der Bewegungsmelder bis zum Einschalten des Lichts der Grund. Mittlerweile habe ich (fast) keine Logik mehr in openHAB. OpenHAB ist nur noch das UI.

Wie soll den der Switch aussehen, kriege es nicht hin, dass der Switch einen Wert rausspuckt nur 0 oder 1…

Meinst du es ist schneller, ich habe eher da sgefühl, dass der Aktor das Licht schaltet bevor homegear überhaupt das mitkriegt ?

So müsste das sein:

Hast du noch eine Direktverknüpfung drauf? Falls ja, solltest du die entfernen und über node-blue schalten.

Was ist das Orangene für ein Knoten?

Was heißt Direktvernküpfung?
Es ist ein Wandschalter(Dimmer) der schaltet die Phase an der die Deckenlampe hängt(Doof nicht smart). Wenn ich die Wippe betätige schaltet er die Lampe und sendet signal an die zentrale(homegear).

Das ist ein Template-Knoten. Damit kannst du beliebige Nachrichten erzeugen. Einfach den gewünschten Dimm-Wert ins payload schreiben und plain text ausgeben.

Das wäre wenn die Lampe direkt mit dem Taster verknüpft wäre, ist aber bei dir nicht.

Eine weitere Variante wäre über eine Limiter-Node. ich benutze die für Temperaturebgrenzung, daher weiss ich ncht, ob das schnell genug für Licht ist.

Jo habe es hingekriegt aber es ist viel zu langsam…

Ich schalte per Wippe das Licht ein, es geht auf 100% 3sek später auf 30% runter.

Ich suche eher eine Lösung die mir direkt die Config Params des Dimmers verändert, damit der Dimmer von sich aus sagt “ich gehe nur auf 30%”.

Für Lösung über Node-Blue müsste der Schalter so Arbeiten:
Wippe betätigen -> Meldung an Zentrale -> warte auf Rückmeldung der Zentrale -> setzen Phase.

ahja mein Taster/Dimmer ist doch direkt mir der Lampe verknüpft, die Lampe hängt direkt am Phasenausgang des Dimmers (Lichttaster an der Wand)?

Du könntest auch direkt über den Timer die Helligkeit direkt schreiben.

Dann müsstest Du dich aber in die Tiefen einer php-node begeben und dort dann über putParamset den konfigurierten Helligkeitswert schreiben.

Im Grunde hast du dann die Timer-Node und eine php-node. Folgendes wäre ungefähr die Logik der php-Node (Bei putParamset müsstest du noch mal Beispiele durchschauen.):

if($message['payload'])
{
    $dimmvalue=30;
} 
else 
{
    $dimmvalue=100;
}
putParamSet(<peerId>, <parameter>, $dimmvalue);
return $message;

das ist mir klar Frage ist, welchen Param muss ich da setzen ^^
Denn kann ich dann auch per ioBroker setzen, frage ist halt nur welcher.

ich denke es wird einer oder mehrere von hier sein: https://ref.homegear.eu/device.html?directory=HomeMatic+BidCoS&file=rf_dim_1tconf_644_le_v2_4.xml&familyLink=homematicbidcos&name=HM-LC-Dim1TPBU-FM#affixSubsection1_1

aber welche und wie ist die Frage…

Ich würde vermuten LONG_ON_LEVEL bzw. SHORT_ON_LEVEL je nachdem, ob du eine kurzen oder langen Druck konfigurieren möchtest. Die Werte wären jeweils 0.3 (=30%) und 1.0 (=100%).

Und wie kann ich es Verändern? Ich kriege es nur hin Params für Master zu verändern aber nicht für LINK.

Wieso LINK? Ich denke du hast keine Direktverknüpfung?

Schau mal hier:

Buaa leck mich einer am … Popes…

War das jetzt ein Rotz. Der Parameter SHORT_ON_LEVEL ist zwar richtig doch wenn man sich die getParamsetDescription für das Device anzeigen lässt, taucht er nur unter LINK auf. Was natürlich falsch ist, da ich ja kein Gerät direkt mit dem Aktor “verlinkt” habe.

Dieser Thread hat mir eben weitergeholfen: https://homematic-forum.de/forum/viewtopic.php?f=19&t=8120&start=10

Anscheinend gibt es neben MASTER, VALUES, LINK einen weiteren “versteckten” ParamsetType der heißt genauso wie die Addresse mit Channel 1 des Geräts.

Also der Befehl zum Verändern des Param ist :
homegear -e rc 'print_v($hg->putParamset("QEQ0012345:1", "QEQ0012345:1", ARRAY("SHORT_ON_LEVEL" => 0.3)));'

zum Anzeigen wäre es dann:
homegear -e rc 'print_v($hg->getParamset("QEQ0012345:1", "QEQ0012345:1"));'

Das ist ja hier ein Sonderwissen, ich hoffe ich konnte es verständlich niederschreiben damit Leute nach mir sich diese Sucherei sparen…

2 Likes

Hätte das hier geholfen?

https://www.eq-3.de/Downloads/eq3/download%20bereich/hm_web_ui_doku/hm_devices_Endkunden.pdf - Seite 84 ff.

2 Likes

Vom groben Überfliegen eher nicht, da dort nur die Parameter vom ParamsetType “VALUES” angezeigt werden, die werden mir zB. auch bei ioBroker angezeigt über Homegear.

hier mal der Unterschied an was für eine Menge an Parameter man für den Dimmer bekommt, wenn man den versteckten paramsetType sich anzeigen lässt:
VALUES (In jeder Doku beschrieben quasi):

Zusammenfassung
homegear -e rc 'print_v($hg->getParamset("QEQ0012345:1", "VALUES"));'
(Struct length=13)
{
  [DIRECTION] (Integer) 0
  [ERROR_OVERHEAT] (Boolean) 0
  [ERROR_OVERLOAD] (Boolean) 0
  [ERROR_REDUCED] (Boolean) 0
  [INHIBIT] (Boolean) 0
  [INSTALL_TEST] (Boolean) 0
  [LEVEL] (Float) 0
  [LEVEL_REAL] (Float) 0
  [OLD_LEVEL] (Boolean) 0
  [ON_TIME] (Float) 0
  [RAMP_STOP] (Boolean) 0
  [RAMP_TIME] (Float) 0.5
  [WORKING] (Boolean) 0
}

Und hier der “versteckte” ParamsetType, das sind quasi alle Konfigurationsparameter die man für den Dimmer auch in der CCU Oberfläche im Expertenmopdus setzen kann. An sich sind die einzelnen Punkte auch in der Homegear Doku beschrieben jedoch unter “Link Configuration” was ich zb. nicht habe.

Zusammenfassung

homegear -e rc ‘print_v($hg->getParamset(“QEQ0012345:1”, “QEQ0012345:1”));’
(Struct length=93)
{
[LONG_ACTION_TYPE] (Integer) 5
[LONG_COND_VALUE_HI] (Integer) 100
[LONG_COND_VALUE_LO] (Integer) 50
[LONG_CT_OFF] (Integer) 0
[LONG_CT_OFFDELAY] (Integer) 0
[LONG_CT_ON] (Integer) 0
[LONG_CT_ONDELAY] (Integer) 0
[LONG_CT_RAMPOFF] (Integer) 0
[LONG_CT_RAMPON] (Integer) 0
[LONG_DIM_MAX_LEVEL] (Float) 1
[LONG_DIM_MIN_LEVEL] (Float) 0
[LONG_DIM_STEP] (Float) 0.05
[LONG_ELSE_ACTION_TYPE] (Integer) 0
[LONG_ELSE_JT_OFF] (Integer) 1
[LONG_ELSE_JT_OFFDELAY] (Integer) 5
[LONG_ELSE_JT_ON] (Integer) 4
[LONG_ELSE_JT_ONDELAY] (Integer) 2
[LONG_ELSE_JT_RAMPOFF] (Integer) 6
[LONG_ELSE_JT_RAMPON] (Integer) 3
[LONG_ELSE_MULTIEXECUTE] (Integer) 1
[LONG_ELSE_OFF_TIME_MODE] (Integer) 0
[LONG_ELSE_ON_TIME_MODE] (Integer) 0
[LONG_JT_OFF] (Integer) 4
[LONG_JT_OFFDELAY] (Integer) 5
[LONG_JT_ON] (Integer) 4
[LONG_JT_ONDELAY] (Integer) 4
[LONG_JT_RAMPOFF] (Integer) 6
[LONG_JT_RAMPON] (Integer) 4
[LONG_MULTIEXECUTE] (Integer) 1
[LONG_OFFDELAY_BLINK] (Integer) 1
[LONG_OFFDELAY_NEWTIME] (Float) 0.5
[LONG_OFFDELAY_OLDTIME] (Float) 0.5
[LONG_OFFDELAY_STEP] (Float) 0.05
[LONG_OFFDELAY_TIME] (Float) 0
[LONG_OFF_LEVEL] (Float) 0
[LONG_OFF_TIME] (Float) 111600
[LONG_OFF_TIME_MODE] (Integer) 0
[LONG_ONDELAY_MODE] (Integer) 0
[LONG_ONDELAY_TIME] (Float) 0
[LONG_ON_LEVEL] (Float) 1
[LONG_ON_LEVEL_PRIO] (Integer) 0
[LONG_ON_MIN_LEVEL] (Float) 0.1
[LONG_ON_TIME] (Float) 1
[LONG_ON_TIME_MODE] (Integer) 1
[LONG_RAMPOFF_TIME] (Float) 0.5
[LONG_RAMPON_TIME] (Float) 0.5
[LONG_RAMP_START_STEP] (Float) 0.05
[SHORT_ACTION_TYPE] (Integer) 1
[SHORT_COND_VALUE_HI] (Integer) 100
[SHORT_COND_VALUE_LO] (Integer) 50
[SHORT_CT_OFF] (Integer) 0
[SHORT_CT_OFFDELAY] (Integer) 0
[SHORT_CT_ON] (Integer) 0
[SHORT_CT_ONDELAY] (Integer) 0
[SHORT_CT_RAMPOFF] (Integer) 0
[SHORT_CT_RAMPON] (Integer) 0
[SHORT_DIM_MAX_LEVEL] (Float) 1
[SHORT_DIM_MIN_LEVEL] (Float) 0
[SHORT_DIM_STEP] (Float) 0.05
[SHORT_ELSE_ACTION_TYPE] (Integer) 0
[SHORT_ELSE_JT_OFF] (Integer) 1
[SHORT_ELSE_JT_OFFDELAY] (Integer) 5
[SHORT_ELSE_JT_ON] (Integer) 4
[SHORT_ELSE_JT_ONDELAY] (Integer) 2
[SHORT_ELSE_JT_RAMPOFF] (Integer) 6
[SHORT_ELSE_JT_RAMPON] (Integer) 3
[SHORT_ELSE_OFF_TIME_MODE] (Integer) 0
[SHORT_ELSE_ON_TIME_MODE] (Integer) 0
[SHORT_JT_OFF] (Integer) 4
[SHORT_JT_OFFDELAY] (Integer) 5
[SHORT_JT_ON] (Integer) 4
[SHORT_JT_ONDELAY] (Integer) 4
[SHORT_JT_RAMPOFF] (Integer) 6
[SHORT_JT_RAMPON] (Integer) 4
[SHORT_OFFDELAY_BLINK] (Integer) 1
[SHORT_OFFDELAY_NEWTIME] (Float) 0.5
[SHORT_OFFDELAY_OLDTIME] (Float) 0.5
[SHORT_OFFDELAY_STEP] (Float) 0.05
[SHORT_OFFDELAY_TIME] (Float) 0
[SHORT_OFF_LEVEL] (Float) 0
[SHORT_OFF_TIME] (Float) 111600
[SHORT_OFF_TIME_MODE] (Integer) 0
[SHORT_ONDELAY_MODE] (Integer) 0
[SHORT_ONDELAY_TIME] (Float) 0
[SHORT_ON_LEVEL] (Float) 0.3
[SHORT_ON_LEVEL_PRIO] (Integer) 0
[SHORT_ON_MIN_LEVEL] (Float) 0.1
[SHORT_ON_TIME] (Float) 111600
[SHORT_ON_TIME_MODE] (Integer) 0
[SHORT_RAMPOFF_TIME] (Float) 0.5
[SHORT_RAMPON_TIME] (Float) 0.5
[SHORT_RAMP_START_STEP] (Float) 0.05
[UI_HINT] (String)
}

Homegear kann ja nichts für, ist das Homematic RPC was diesen paramsetType beim “getParamsetDescription” unterschlägt.

2 Likes

Korrekt. Das ist ein Link-Parametersatz mit sich selbst. Keine Ahnung, warum es so implementiert wurde…