Hmip-FSM per Script hoch-/runterdimmen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Spencer
Beiträge: 57
Registriert: 08.06.2014, 13:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 4 Mal

Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Spencer » 06.03.2019, 12:07

Hallo zusammen,

folgendes Problem:
Ich habe den bestehenden Dimmer HM-LC-Dim1PWM-CV (12V) gegen den IP Dimmer Hmip-FDT (230V) getauscht.
Der Dimmer und die GU10 Leichtmittel Funktionieren auch soweit wie gewünscht.

Mein Problem ist die Fernbedienung HM-RC-8. Die Fernbedienung lässt sich nicht als Direktverknüpfung mit dem IP Dimmer Hmip-FSM verknüpfen, da unterschiedliche Funkprotokolle verwendet werden.

Mit einer Verknüpfung über die Zentrale habe ich nur Ein- und Ausschalten, per kurzen Tastendruck hinbekommen.
Hoch- und Runterdimmen in 5% oder 10% Schritten, so wie es mit der Direktverknüpfung möglich war, habe ich nicht hinbekommen.

Hat jemand einen Tip oder ein Script parat?

Viele Grüße
Sven
Zuletzt geändert von Spencer am 06.03.2019, 15:42, insgesamt 1-mal geändert.
Raspberrymatic(VM)@proxmox, CUxD, ioBroker, InfluxDB, Grafana, Tasmota

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Bratmaxe » 06.03.2019, 13:04

Hallo,

der HmIP-FSM ist laut ELV Beschreibung kein Dimmer, sondern ein einfacher Schaltaktor.

Da du schreibst, das es klappt hast du evtl den HmIP-FDT?
Dieser hat auf Kanal 1 den Dimmer, den du mit .Value setzen können musstest

Gruß Carsten
Gruß Carsten

Spencer
Beiträge: 57
Registriert: 08.06.2014, 13:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 4 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Spencer » 06.03.2019, 15:49

Hallo Carsten,

ja es war ein copy/paste Fehler, ich meine den Dimmer HmIP-FDT.
Hab mir gerade die HmIP-RC8 Fernbedienung geholt ...

Ich wäre trotzdem dankbar wenn mir jemand ein Skript schreiben könnte, dass bei jedem kurzen Tastendruck hoch- bzw. runterdimmt.
Hab sowas schon lange nicht mehr gemacht...

Viele Grüße
Sven
Raspberrymatic(VM)@proxmox, CUxD, ioBroker, InfluxDB, Grafana, Tasmota

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Bratmaxe » 06.03.2019, 16:05

Spencer hat geschrieben:
06.03.2019, 15:49
...wenn mir jemand ein Skript schreiben könnte, dass bei jedem kurzen Tastendruck hoch- bzw. runterdimmt.
Hab sowas schon lange nicht mehr gemacht...
Versuche es mal damit:

Code: Alles auswählen

string Aktorname = "AKTORNAME"; ! hier Aktorname eintragen
integer AenderungWert = 0.05; ! prozentwert eintragen um den erhöht/reduziert werden soll 0.05 = 5%, 0.2 = 20%
boolean Addieren = true; ! true=addieren, false=subtrahieren

! ab hier nicht mehr ändern..........................................................................

! hole aktuellen Wert
integer AktualValue = dom.GetObject(ID_CHANNELS).Get(Aktorname # ":1").DPByHssDP("LEVEL").Value();
integer NewValue = 0.0;
if (Addieren)
{
	! berechne neuen Wert
	NewValue = AktualValue + AenderungWert;
	! prüfe, ob neuer Wert unter Min liegt
	if (NewValue < 0.0) { NewValue = 0.0; }
}
else
{
	! berechne neuen Wert
	NewValue = AktualValue - AenderungWert;
	! prüfe, ob neuer Wert über Max liegt
	if (NewValue > 1.005) { NewValue = 1.005; }
}

! neuen Wert übernehmen
dom.GetObject(ID_CHANNELS).Get(Aktorname # ":1").DPByHssDP("LEVEL").State(NewValue);
Bitte nicht steinigen, da ich den Aktor nicht habe, kann ich es nicht testen...
Gruß Carsten

Spencer
Beiträge: 57
Registriert: 08.06.2014, 13:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 4 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Spencer » 07.03.2019, 10:14

Vielen Dank Bratmaxe!

Ich werde es bei Gelegenheit testen und berichten.

Gruß
Sven
Raspberrymatic(VM)@proxmox, CUxD, ioBroker, InfluxDB, Grafana, Tasmota

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von alchy » 07.03.2019, 21:39

Ich würde korrekterweise statt Aktorname in der Anleitung/Script Kanalname vorschlagen.
UND als Hinweis
Das mit dem Anhängen von :1 an den Gerätenamen kann natürlich funktionieren, wenn der User sich an eine bestimmte Benennung hält, in dem er seine Kanäle genau so benennt wie seine Geräte und nur jeweils die Kanalnummer an den Gerätenamen anhängt in Form von :1 usw.
....
Spencer hat geschrieben:
06.03.2019, 15:49
ich meine den Dimmer HmIP-FDT.
Hab mir gerade die HmIP-RC8 Fernbedienung geholt .
Wieso aber per Script? Sollte das nicht auch ohne ein Script gehen?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ACEcomputing
Beiträge: 2
Registriert: 22.01.2023, 15:11
System: CCU

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von ACEcomputing » 25.01.2023, 14:30

Ich hatte mit dem Skript von Bratmaxe leider keinen Erfolg, vielleicht wegen Leerzeichen im Aktornamen?
Jedenfalls hab ich das Skript etwas überarbeitet, laufzeitoptimiert und getestet mit einem HmIP-BDT:

Code: Alles auswählen

integer step = 0.1; ! Dimmer Schrittweite
boolean add = true; ! true=Hoch, false=Runter

! XXXXXXXXXXXXXX durch die 14-stellige ID des HmIP-Dimmers ersetzen...
integer current = dom.GetObject("HmIP-RF.XXXXXXXXXXXXXX:4.LEVEL").Value();
integer NewValue = 0.0;
if (add)
{
	NewValue = current + step;
	if (NewValue > 1) { NewValue = 1; }
}
else
{
	NewValue = current - step;
	if (NewValue < 0) { NewValue = 0; }
}
dom.GetObject("HmIP-RF.XXXXXXXXXXXXXX:4.LEVEL").State(NewValue);
Im Code bitte die Reihen von XXXen jeweils durch die 14-stellige Seriennummer des zu steuernden Homematic IP Dimmers ersetzen (z.B. 01234567890ABC).
In diesem Skript ist die Helligkeit übrigens auf 100% begrenzt. Eigentlich klar, aber interessanterweise ist in der Doku der HmIP-Datenpunkte an manchen Stellen von max. 1,01 (also 101%) die Rede. Fragt sich nur, wie das gehen soll... Dimmer-Overdrive oder wie? :wink:
CCU2, 62 HM Devices, 9 HmIP Devices, IP-Symcon 6.2/Asus PN40. My SmartHome is my Castle.

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von Henke » 25.01.2023, 20:15

ACEcomputing hat geschrieben:
25.01.2023, 14:30
laufzeitoptimiert
Echt jetzt? Wie und wo?

Ich bin mal so frei und nehme die Fehler raus und optimiere auch mal ein wenig...

1. Es wird nur etwas gesendet, wenn sich der Wert ändert.
2. Der Dimmer muss nur einmal eingetragen werden
3. Hoch/Runter auf einem Tastendruck, wenn oRichtungWechseln = true

Code: Alles auswählen

real step = 0.1; ! Dimmer Schrittweite,  0.1=Hoch, -0.1 =Runter
boolean oRichtungWechseln = true;
! XXXXXXXXXXXXXX durch die 14-stellige ID des HmIP-Dimmers ersetzen...
object oCh = dom.GetObject("HmIP-RF.XXXXXXXXXXXXXX:4.LEVEL");

real current = oCh.Value();
real NewValue = current + step;

if (NewValue > 1.0) { NewValue = 1.0; if ( oRichtungWechseln ) {step = 0.0 - step;}}
if (NewValue < 0.0) { NewValue = 0.0; if ( oRichtungWechseln ) {step = 0.0 - step;}}

if ( NewValue != current ) { oCh.State(NewValue); };

Nicht getestet, aber sollte laufen.

ACEcomputing
Beiträge: 2
Registriert: 22.01.2023, 15:11
System: CCU

Re: Hmip-FSM per Script hoch-/runterdimmen

Beitrag von ACEcomputing » 26.01.2023, 12:51

"laufzeitoptimiert" bezog sich auf verkürzte Bemerkungen und einen direkteren Objektzugriff auf den LEVEL Wert. Das mit den Variablentypen ist mir auch aufgefallen, aber dafür dass das Skript ja angeblich immer noch Fehler enthielt, hat es immerhin tadellos funktioniert.
Es gibt immer jemanden, der Dinge besser kann. Ich habe nie den Anspruch erhoben, dass das Skript perfekt ist. Es hat mein Problem gelöst und ich wollte damit nur eine wirklich funktionierende Lösung in einen fast 3 Jahre toten Thread ohne Lösung bringen.
CCU2, 62 HM Devices, 9 HmIP Devices, IP-Symcon 6.2/Asus PN40. My SmartHome is my Castle.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“