HMiP Kombi Signalgeber über Skript ansteuern

HMIP lokale Installation

Moderator: Co-Administratoren

Cwc6g
Beiträge: 4
Registriert: 19.12.2018, 12:10

HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Cwc6g » 06.01.2019, 15:49

Hallo,
den HM Signalgeber habe ich herausgefunden, dass man ihn wie folgt Ansteuert:

Code: Alles auswählen

dom.GetObject("Signalgeber").DPByHssDP("SUBMIT").State("0.9,1,108000,1,84,19,100,29,32");
Jedoch gibt es den Datenpunkt SUBMIT bei der HMIP-Variante nicht.


Hat jemand ein Beispiel wie ich den Signalgeber entsprechend ansteuere?

mfg

C.W
Zuletzt geändert von alchy am 06.01.2019, 23:27, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von alchy » 06.01.2019, 23:33

Und wie lautet der Datenpunkt lt. der EQ-3 Doku für die IP Geräte?
Vielleicht auch hilfreich:
>> HM Script Abfrage von Datenpunkten (RF,IP...) <<

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.

Cwc6g
Beiträge: 4
Registriert: 19.12.2018, 12:10

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Cwc6g » 07.01.2019, 14:11

Hi

Genau das ist die Frage wie der bzw. Die Datenpunkte heißen.

Weiß das jemand?

MfG
C.W.

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Gluehwurm » 07.01.2019, 14:19

Die Datenpunktliste steht bei Eq-3 zum Download bereit. Verstehe das Problem nicht.

Gruß
Bruno

Cwc6g
Beiträge: 4
Registriert: 19.12.2018, 12:10

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Cwc6g » 07.01.2019, 15:33

Danke für die Info
Hast du auch einen Link

Gluehwurm
Beiträge: 12434
Registriert: 19.03.2014, 00:37
System: in Planung
Hat sich bedankt: 105 Mal
Danksagung erhalten: 380 Mal

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Gluehwurm » 07.01.2019, 16:03

Nö, Dl-Art Skripte auswählen, schon isses da.

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

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von alchy » 07.01.2019, 16:17

Abgesehen von der Möglichkeit per Doku nachzuschauen (siehe auch Signatur) habe ich dir zusätzlich auch noch einen Link gepostet.
In dem Beitrag findest du (zugegebenermaßen ein schlampiges) Script welches dir die Datenpunkte deiner Geräte ausgibt.
Wenn dir schon das selber aktiv werden zuviel ist, dann geb ich dir den Rat: lass es sein mit Scripten und steuere den Signalgeber mittels Programm, so wie es eben vorgesehen ist.


Alchy
unglaublich

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.

Cwc6g
Beiträge: 4
Registriert: 19.12.2018, 12:10

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von Cwc6g » 07.01.2019, 21:16

Hallo,

Also meine ursprüngliche Frage war ob jemand ein Beispiel hat.
Antwort ist nach den geschriebenen Kommentaren: NEIN

Auf die Frage wie die Datenpunkte heißen die zu verwenden sind bekommt man auch keine richtige Antwort.
Welche Datenpunkte verfügbar sind und wie ich die über die XMLAPI ermittle weiß ich und das war auch nicht meine Frage.
Dennoch danke für den Link wie man das über ein Skript ermitteln kann. Und den Tip mit der Doku bei EQ3 und wie man sie doch finden kann.

Daher meine Frage noch mal konkreter gestellt:
Gibt es eine Doku die beschreibt, was die folgendne Datenpunkte im Detail bedeuten (ich meine nicht welche Parametertypen / Werte / Wertebereiche / Defaultwerte sie haben - Sondern eine textuelle Funktionsbeschreibung):
  • ACTIVITY_STATE
  • COMBINED_PARAMETER
  • DURATION_UNIT
  • DURATION_VALUE
  • LEVEL
  • LEVEL_STATUS
  • PROCESS
  • RAMP_TIME_UNIT
  • RAMP_TIME_VALUE
  • SECTION
  • SECTION_STATUS
  • SOUNDFILE
Zum Thema wie man einen belibiges Soundfile über Skript startet:

Code: Alles auswählen

! Soundfile auswählen
dom.GetObject("HmIP-RF.Serl-Nr:2.SOUNDFILE").State(42);
! Lautstärke setzen und los gehts
dom.GetObject("HmIP-RF.Serl-Nr:2.LEVEL").State(0.6);
Die eigentliche Problematik ist somit wie kann man mehre Soundfiles nach einander abspielen ohne das sie sich überschneiden oder ersetzten?


MfG
C.W.

P.S.: Zum Thema selber aktive werden @Alchy: Wenn man die Frage nicht richtig verstanden hat sollte man lieber noch mal nachfragen anstatt vorschnell was zu unterstellen was nicht stimmt. Denn den Rat gebe ich dir: Wenn die Sprache nicht stimmt, ist das was gesagt wird nicht das was gemeint ist. (Konfuzius)

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

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von alchy » 07.01.2019, 22:19

Du hast gefragt und ich habe versucht auf Grund deiner Informationen zu antworten.
Das du eigentlich nicht wissen willst oder du schon alles zu wissen denkst
Cwc6g hat geschrieben:
07.01.2019, 21:16
Welche Datenpunkte verfügbar sind und wie ich die über die XMLAPI ermittle weiß ich und das war auch nicht meine Frage.
war auf Grund der Fragestellung deinerseits nicht abzusehen.
Das ich dich gelangweilt habe, tut mir leid. Das war natürlich so nicht beabsichtigt und kommt nicht wieder vor.
Cwc6g hat geschrieben:
07.01.2019, 21:16
@Alchy: Wenn man die Frage nicht richtig verstanden hat sollte man lieber noch mal nachfragen anstatt vorschnell was zu unterstellen was nicht stimmt.
Ich unterstelle? Wo denn ?
Ich sag dir mal meine Meinung: Wenn Helfende mehrfach nachfragen müssen, dann hat der Hilfesuchende in erster Linie einen Fehler begangen.
Cwc6g hat geschrieben:
07.01.2019, 21:16
Denn den Rat gebe ich dir: Wenn die Sprache nicht stimmt, ist das was gesagt wird nicht das was gemeint ist. (Konfuzius)
Danke für den Tipp.
Aber ich meine grundsätzlich das was ich schrieb und versuche in dem Forum hier mit halbwegs ordentlichem Deutsch zu helfen.
Somit sind für mich die Sprache und auch die Meinung von meiner Seite geklärt.

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.

CCUGast
Beiträge: 4
Registriert: 08.04.2021, 20:17
System: CCU
Danksagung erhalten: 3 Mal

Re: HMiP Kombi Signalgeber über Skript ansteuern

Beitrag von CCUGast » 08.10.2021, 19:35

Hi,
ich möchte mich bei euren Stichelein nicht einmischen - halte sie bei Foren aber generell für unangebracht.
Die Frage ist ziemlich konkret: Gibt es etwas gleichwertiges wie den Datenpunkt SUBMIT bei HomemMatic für den neuen Homematic IP Kombisignalgeber HMIP-MP3P.
Ich weiß nicht ob das 2019 bereits der Fall war, aber mittlerweile gibt es das - ich habe es im Einsatz und es funktioniert. Und nebenbei hatte ich genau dieselbe Frage und bin deshalb auf diesen und einige (wenige) andere Threads gestoßen.

Kurze Erklärung zunächst: bei HMIP ist es in der Regel so, dass es nach meinem Amateur-Verständnis für jeden "Kanal" eigentlich 4 Kanäle gibt:
1. Status-Kanal (HmIP-RF.00151DXXXXXXXX:1.***)
2. Virtueller Kanal 1 (HmIP-RF.00151DXXXXXXXX:2.***)
3. Virtueller Kanal 2 (HmIP-RF.00151DXXXXXXXX:3.***)
4. Virtueller Kanal 3 (HmIP-RF.00151DXXXXXXXX:4.***)
Dieselben 4 Kanäle gibt es dann noch für die eingebauten LEDs (Kanäle XXX:5, ..., XXX:8). Kanal 9 ist das Wochenprogramm und Kanal 0 für die Konfiguration.
Virtueller Kanal hat hier nichts mit den virtuellen Kanälen der CCU zu tun. Man könnte sie auch als logische Kanäle bezeichnen - den genauen Begriff kenne ich leider nicht. Mit ihnen ist es möglich auch nur über Direktverbindungen eine Art Programmlogik zu realisieren. Bei manchen Produkten (wie Dimmer oder RGB-Module) ist das sinnvoller als bei anderen (wie z.B. hier dem MP3 Modul). Genauer will ich hier nicht darauf eingehen.
Erste Versuche von mir gingen auf Kanal XXX:1 also den (ich nenne ihn) "Status" Kanal. Das ist naheliegend, denn wenn man sich die Datenpunkte anschaut, sehen diese vielversprechend aus. Vermutlich geht das aber garnicht, da Status eher lesend ist - habe nicht weiter probiert.

Statt also den Status-Kanal zu nehmen nehme ich einen der drei logischen Kanäle - der einfachheithalber hier (und meistens) den ersten.
Erstellt man zum Beispiel in der CCU ein einfaches Programm (ohne Skript) und wählt als Gerät das HMIP-MP3P aus, so kann man einen dieser 3 log. Kanäle auswählen - bei MP3-Modul macht wie gesagt nur einer - also der erste - wirklich Sinn. Achtung: nicht mit den Kanälen für die LED verwechseln. Aber wer das mit dem MP3-Kanälen verstanden hat, kann analog auch die LED im Script ansprechen.
Im Programm bekommt man für den ausgewählten Kanal dann mehrere Parameter zum Einstellen (ich nenne das mal hier nicht Datenpunkte): z.B. EINHEIT***, LAUTSTÄRKE, ... . Und eben auch den Parameter WIEDERGABELISTE oder KANALAKTIVITÄT.

Hmm, fast geschaft. Wählt man den Parameter WIEDERGABELISTE aus, stehen da komische Kürzel wie L=100,DU=2,... - alles Banane. Man kann draufklicken und die Parameter ändern. Dann bekommt man ein Gefühl wie sich der entsprechende String ändert. Die Bedeutung des Strings wird im Forum an anderen Stellen auch erklärt. Nur kurz
L = Level (Lautstärke = wichtig, 100 = 100%), DU = Duration Unit (egal), DV = Duration Value (egal), RTU = Ramp Time Unit (egal), RTV = Ramp Time Value (egal), R = REPETITIONS (interessant) UUNNDD Tada SL = Soundfile List. Woher ich das weiß? Schaut euch mal die Datenpunkte von Kanal 2 (MP3 log. Kanal 1) an - bzw. der Fragende hat sie auch schon gelistet!

var lo = dom.GetObject("MEIN_KOMBISIGNALGEBER:PLAYER-CHANNEL_1");
string lv_dp;
foreach (lv_dp, lo.DPs()) {
WriteLine(dom.GetObject(lv_dp).Name());
}
WriteLine("Hallo Welt!");
MEIN_KOMBISIGNALGEBER:PLAYER-CHANNEL_1 = HmIP-RF.00151DXXXXXXXX:2

Ein Datenpunkt sticht hervor: COMBINED_PARAMETER
Dort kann man die oben (auswendig) gelernten Parameter als Zeichenkette übergeben:

var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:PLAYER-CHANNEL_1");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=60,DU=2,DV=31,RTV=0,R=0,SL=001;002;003" );
WriteLine("Hallo Welt!");

Achtung: mehrere Soundfiles müssen durch Semikolon getrennt sein.
/* Update:
Folgendes Problem wurde mit CCU FW Version 3.61.6 behoben:
ACHTUNG: CCU FW Version 3.61.5 hat ein Problem mit dem Semikolon. Einen Ersatz (= alternatives Trennzeichen) gibt es nicht. Mehrere MP3-Files am Stück abzuspielen geht überhaupt nicht. eQ-3 konnte das Problem nachstellen und verspricht Abhilfe. Wem das wichtig ist (wie mir :( ) der sollte mit dem Update warten, bis eine gefixte Firmware verfügbar ist (für mich leider zu spät - Downgrade mach ich nicht). Ich versuche dran zu denken diesen Beitrag upzudaten, wenn eine gefixte Version verfügbar ist.
*/

Wer das alles Verstanden hat, kann sich an die LED ranmachen.
Herrausforderung: auch die anderen beiden logischen Kanäle (von den 4 LED-Kanälen) benutzen und setzen.
Das ist z.B. sinnvoll, wenn man den Alarmzustand immer rot markieren will (z.B. Nachts wenn der Alarm aktiv ist) und unabhängig (von dem Wissen über den Alarm) den Zustand der Fenster signalisieren will, z.B. in Blau.
Ist z.B. tagsüber ein Fenster offen, leuchtet es blau. Sind nachts alle Fenster zu, leuchtet es rot. Ist nachts ein Fenster offen (und eben der Alarm an) leuchtet es rot und blau also Violett.
Für die Farbe des Alarms verwendet man also den log. Kanal 1 und setzt ihn rot oder aus - abhängig vom Arm-State.
Für die Farbe der Fenster verwendet man den log. Kanal 2 und setzt ihn blau oder aus - abhängig davon ob ein Fenster geöffnet ist.
Trifft beides zu gilt als Gesamtstatus der LED des Kombisignalgebers log. Kanal 1 + log. Kanal 2 (+ log. Kanal 3) = Violett.
Die Ingenieure haben einem aber (positiv formuliert) noch mehr Freiheitsgrade gelassen: man kann eine Farbe setzen das DIM-Level angeben und die LED ein oder ausschalten (WTF?).
So kann es also passieren, dass log. Kanal 1 aus ist, aber die Farbe noch auf rot gesetzt ist und wenn dann ein Fenster aufgeht und log. Kanal 2 auf blau schaltet, leuchtet als resultierende trotzdem Violett.
Ganz geblickt habe ich das auch noch nicht - aber das ist eine ganz andere Geschichte ...

Viel Spaß

Update: mitlerweile habe ich das mit den Farben auch "verstanden" (will sagen: ich kann damit umgehen)
Um die LED auszuschalten muss man für den verwendeten log. Kanal bei COMBINED_PARAMETER folgenden String setzen:
var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=0,DV=31,DU=2,RTV=0,RTU=1,C=0" );
Hat man bei mehreren log. Kanälen eine Farbe gesetzt, muss man natürlich für alle gesetzten Kanäle die Farbe auf "Aus" stellen, wenn man möchte, dass die LED komplett aus ist:
var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:LED-CHANNEL_2");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=0,DV=31,DU=2,RTV=0,RTU=1,C=0" );
var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:LED-CHANNEL_3");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=0,DV=31,DU=2,RTV=0,RTU=1,C=0" );

Zum Setzen der Farbe eines log. Kanals kann man zum Beispiel folgenden String setzen:
var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=10,DV=31,DU=2,RTV=0,RTU=1,C=4" ); ! rot (10%) = Alarm Aktiv
bzw.
var lr_channel = dom.GetObject("MEIN_KOMBISIGNALGEBER:LED-CHANNEL_2");
lr_channel.DPByHssDP("COMBINED_PARAMETER").State( "L=10,DV=31,DU=2,RTV=0,RTU=1,C=1" ); ! blau ( 10%) = Fenster offen
Setzt man beide Kanäle => ist die Resultierende violett
Der Vorteil ist hier, dass man für "Fenster offen" und "Alarm aktiv" zwei völlig unabhängige Skripte benutzen kann. Da nachts oder wenn man weg ist meist zwar der Alarm an, aber die Fenster zu* sind => Kanal 1 = Gesamt = rot. Tagsüber dagegen ist der Alarm aus und aber die Fenster könnten geöffnet sein => Kanal 2 = Gesamt = blau.
* .. gekippte Fenster werden bei der wetterabgewandten Seite im Sommer nicht als offen dargestellt (also blaue LED bleibt aus).
Der Zustand Fenster offen + Alarm aktiv = Violett ist deshalb eher selten - man darf sich dann aber nicht wundern.
Den dritten Kanal benutze ich noch für die Klingel. Hat einer geklingelt, leuchtet die LED noch 5 Minuten lang gelb. Durch Überlagerung mit Kanal 1 und Kanal 2 kommen dann ggf. natürlich noch weitere Mischfarben dazu, die man wissen muss.
Natürlich könnte man auch alles in ein großes Skript packen und nur den Kanal 1 verwenden und für jeden Sachverhalt eine dedizierte Farbe verwenden. Das ist Geschmackssache!

Abschließend noch ein Tipp zum (Aus-)schalten der LED in der CCU ohne Skript. Da muss man bei der Auswahl des Parameters "Kanalaktion" im Wizzard sowohl die Helligkeit auf 0 als auch die Farbe auf "Aus" stellen und in der Regel die Einschaltdauer nicht begrenzen. Übrigends kommt man dann auf genau den String von oben:
"L=0,DV=31,DU=2,RTV=0,RTU=1,C=0"

Will man auf die kryptischen Zeichen ganz verzichten, kann man auch mehrere Aktivitäten in Reihe setzen:
Beispiel:
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Blau
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Einheit Zeitdauer: Stunden
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Wert Zeitdauer: 1
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Wert: 50 (= Level: 50%)
=> das Ergebnis ist, dass die LED (genaugenommen der 1. log. Kanal) für eine Stunde lang blau leuchtet.
Zum Ausschalten:
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Farbe Aus
--> MEIN_KOMBISIGNALGEBER:LED-CHANNEL_1 - Sofort - Wert: 0 (= Level: 0%)
(eventuell noch die Einschaltzeit? - habe ich nicht getestet)

Aber wer den Beitrag tatsächlich bis hier unten gelesen hat, hätte das vermutlich bereits gewusst ;-) Ist ja bei vielen anderen Geräten genauso - insbesondere, wenn man die Einschaltzeit verwendet.

Antworten

Zurück zu „HomeMatic IP mit CCU“