Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

FoCarMaxElvFhz
Beiträge: 5
Registriert: 03.09.2016, 10:50

Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von FoCarMaxElvFhz » 03.09.2016, 11:10

Hallo zusammen,

ich bin ganz neu hier und ich stelle hiermit meine erste Frage. Folgendes Problem habe ich:
Ich habe einen HomeMatic-IP Bewegungsmelder vom Typ HmIP-SMI gekauft und problemlos an meinem CCU2 (Firmware 2.21.10, gerade aktualisiert) angeschlossen. Ich kann den Sensor sehen und ich kann die Werte (Helligkeit und Bewegung) über die WebUi/Geräte/HmIP-SMI... sehen. Nun möchte ich die Datenpunkten per Skript ermitteln. Zuerst im Test-Skript-Fenster gebe ich folgendes ein:

Code: Alles auswählen

var Test = dom.GetObject("HmIP-SMI 00091569927B26");
var chns = Test.Channels().EnumUsedNames();
WriteLine(chns);
und ich erhalte folgende Antwort:

Code: Alles auswählen

HmIP-SMI 00091569927B26:0	HmIP-SMI 00091569927B26:1
Ich möchte nun die Datenpunkte des Kanals 0 ablesen und ich gebe ein:

Code: Alles auswählen

var myChannel = dom.GetObject("HmIP-SMI 00091569927B26:0");
var dp = myChannel.DPs().EnumUsedNames();
WriteLine(dp);
Ich erhalte als Antwort:

Code: Alles auswählen

HmIP-RF.00091569927B26:0.CONFIG_PENDING	HmIP-RF.00091569927B26:0.DUTY_CYCLE	HmIP-RF.00091569927B26:0.ERROR_CODE	HmIP-RF.00091569927B26:0.LOW_BAT	HmIP-RF.00091569927B26:0.OPERATING_VOLTAGE	HmIP-RF.00091569927B26:0.SABOTAGE	HmIP-RF.00091569927B26:0.UNREACH
Nun möchte ich die Datenpunkte vom Kanal 1 erhalten (Am Wichtigstens, da Sie die Helligkeit und Bewegungsinformation beinhalten):

Code: Alles auswählen

var myChannel = dom.GetObject("HmIP-SMI 00091569927B26:1");
var dp = myChannel.DPs().EnumUsedNames();
WriteLine(dp);
Hier ist mein Problem: ich erhalte keine Antwort!!! :cry:

Hätte Jemand einen Tipp für mich / eine Lösung?

Ich bedanke mich im Voraus!

Viele Grüße

M. C.

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

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von Gluehwurm » 03.09.2016, 11:32

Der Name muss dem verwendeten Kanalnamen entsprechen

Code: Alles auswählen

var myChannel = dom.GetObject("HMIP-PS xxxxxxx:1");
Spalte 1 im WebUI, Kanalname HMIP-PS xxxxxxx:1


Gruß
Bruno

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

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von alchy » 03.09.2016, 19:09

Versuchs mal hiermit

Code: Alles auswählen

string index;
string list = dom.GetObject(ID_DATAPOINTS).EnumUsedNames();
foreach (index, list) {
var s1tmp = index.StrValueByIndex(":",0);
if (s1tmp == "HmIP-RF.00091569927B26") {
Write(index #"\n");
}
}
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.

FoCarMaxElvFhz
Beiträge: 5
Registriert: 03.09.2016, 10:50

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von FoCarMaxElvFhz » 04.09.2016, 17:57

Hallo Bruno und Alchy,

Vielen Dank zuerst für Ihre Antwort!

@ Bruno:
Ich habe leider deinen Beitrag nicht 100% verstanden. Ich habe mal probiert mit HMIP-SMI statt HmIP-SMI und es hat leider auch nicht funktioniert. Ich denke, dass ich den richtigen Kanalnamen benutzt habe, da ich nach den Kanalnamen via eine Skript-Anfrage vorher gesucht habe:

Code: Alles auswählen

var Test = dom.GetObject("HmIP-SMI 00091569927B26");
var chns = Test.Channels().EnumUsedNames();
WriteLine(chns);
Antwort:

Code: Alles auswählen

HmIP-SMI 00091569927B26:0   HmIP-SMI 00091569927B26:1
Gern kann ich aber deine Lösung nochmal probieren, wenn du mir sie etwas ausführlicher erklärt.

@ Alchy:
Deine Lösung hat funktioniert und ich konnte die Datenpunkte ermittelt, also "ILLUMINATION" & "MOTION" waren für mich wichtig.


Nur zur Info:
ich konnte dann die Werte von ILLUMINATION und MOTION über diese Befehle ablesen:

Datenpunkt ILLUMINATION:

Code: Alles auswählen

var myChannel = dom.GetObject("HmIP-SMI 00091569927B26:1");
var dp = myChannel.DPByHssDP("ILLUMINATION");
WriteLine(dp.Value());
Datenpunkt MOTION:

Code: Alles auswählen

var myChannel = dom.GetObject("HmIP-SMI 00091569927B26:1");
var dp = myChannel.DPByHssDP("MOTION");
WriteLine(dp.Value());

Vielen Dank nochmal an euch und einen schönen Sonntagabend!

VG

M.C.

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

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von Gluehwurm » 04.09.2016, 18:59

Hallo M.C.,
FoCarMaxElvFhz hat geschrieben:Gern kann ich aber deine Lösung nochmal probieren, wenn du mir sie etwas ausführlicher erklärt.
Da kann ich Dir leider nicht viel mehr erklären. Habe nur Deine Skripte probiert und eben die Feststellung gemacht, daß die Namen exakt übereinstimmen müssen. Warum das bei Dir trotzdem nicht funktioniert, kann ich aus der Ferne nicht prüfen. Ein Screenshot fehlt auch. :wink:

Somit hilft Dir alchys Skript zwar auf die Schnelle, löst jedoch nicht das eigentliche Problem.

Ergänzung: Bei eq-3 kannst Du auch eine Datenpunktliste runterladen.

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

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von alchy » 04.09.2016, 21:43

FoCarMaxElvFhz hat geschrieben: Ich denke, dass ich den richtigen Kanalnamen benutzt habe, da ich nach den Kanalnamen via eine Skript-Anfrage vorher gesucht habe:
8)
FoCarMaxElvFhz hat geschrieben: @ Alchy:
Deine Lösung hat funktioniert und ich konnte die Datenpunkte ermittelt, also "ILLUMINATION" & "MOTION" waren für mich wichtig.
Naja, deshalb hab ich es ja gepostet. :lol:
Abgesehen davon, das hättest du auch in der Doku rausbekommen hättest oder per Frage,
es hat mich aber wirklich gefreut, das wer sich mal die Mühe gemacht hat. :!:
FoCarMaxElvFhz hat geschrieben:
ich konnte dann die Werte über diese Befehle ablesen:
Datenpunkt ILLUMINATION:

Code: Alles auswählen

var myChannel = dom.GetObject("HmIP-SMI 00091569927B26:1");
var dp = myChannel.DPByHssDP("ILLUMINATION");
WriteLine(dp.Value());
Und da wirds interessant. :wink:
Da die Objektbezeichnung hier gleich ist wie oben und es hier funktioniert, jedoch oben nicht. 8)

Die verwirrende Namensbezeichnung des Kanales, die ähnlich der interface.Seriennummer ist,
trägt nicht zur Übersichtlichkeit bei. :shock:
Zumal diese bei dir noch mit einem kleinen m läuft, worüber Gluehwurm gestolpert ist.
Standardmäßig ist sind da große M in Verwendung, da frage ich mich wer denn wohl das kleine m da reingezaubert hat. Du wirst doch doch nicht den Namen der Kanäle anpassen und lediglich das große M zum kleinem m machen?

Für mich weiterhin die favorisierte Methode ist die Abfrage auf die Interface.Seriennummer:Kanalnummer.Datenpunkt statt des Kanalnamens.

Code: Alles auswählen

object dp = dom.GetObject("HmIP-RF.00091569927B26:1.ILLUMINATION");
WriteLine(dp.Value());
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.

BadenPower

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von BadenPower » 05.09.2016, 09:19

alchy hat geschrieben: Und da wirds interessant. :wink:
Da die Objektbezeichnung hier gleich ist wie oben und es hier funktioniert, jedoch oben nicht. 8)
Was mich auch ein wenig verwundert, das ist, dass bei Verwendung von EnumUsedNames() auf des Channels-Objekt des Gerätes auch der Kanal 0 ausgegeben wird.

Bestehen hier etwa weitreichendere Differenzen zwischen Homematic- und Homematic-IP-Geräten?
.

FoCarMaxElvFhz
Beiträge: 5
Registriert: 03.09.2016, 10:50

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von FoCarMaxElvFhz » 05.09.2016, 21:52

Hallo zusammen,

vielen Dank für Ihre Beiträge und für Ihr Interesse an meinem Problem!

Zuerst @ Bruno:
Da gebe ich dir rechts. Das eigentliche Problem (Keine Abfrage der Datenpunkte für den Kanal HmIP-SMI 00091569927B26:1 möglich) wurde nicht gelöst. Mein übergeordnete Problem (Ablesen vom Wert ILLUMINATION und MOTION) wurde aber gelöst. Gern liefere ich die Screenshots, vielleicht kannst du / könnt ihr einen Tipp-Fehler oder ähnliches entdecken.

Zuerst der Befehl, das funktioniert hat:
Screenshot0.jpg
und dann der Befehl, das nicht funktioniert hat. Der einzige Unterschied ist die Endung des Kanalnamen, also statt "0", ein "1":
Screenshot1.jpg
und noch ein Screenshot des Kanalnamen im WebUI, direkt nach dem Anlernen des Bewegungsmelders:
Screenshot2.jpg
@ Alchy:
Ich gebe dir Recht. Die Namensvergebung ist etwas irreführend. Zusätzlich ist das kleine "m" seltsam. Ich habe den Namen nach dem Anlernen nicht geändert. Ich hatte vor ein paar Wochen eine HomeMatic IP Mess- / Schaltsteckdose angelernt. Sie wurde mit einem großen "M" angelernt. Deinen Datenpunkt-Lesen-Befehl finde ich tatsächlich eleganter, da er kürzer ist. In der Zukunft werde ich probieren, ihn zu benutzen.

@ Bruno & Alchy: Die HomeMatic IP-Dokumentation mit einer Übersicht aller Datenpunkten habe ich gefunden und ihr habt Recht: nächstes Mal werde ich zuerst dort suchen. Danke für den Tipp!


@BadePower: Da kann ich dir nicht helfen. Meine einzige Vermutung: die Integration der HomeMatic-IP-Geräte in die CCU2-Zentrale ist nicht ganz alt (mal 12 Monate oder so, glaube ich ...) und es sind vielleicht noch ein paar Bugs übrig. Ich denke die Entwickler von der Fa. eq3 haben die Antwort ...

Schon spät, morgen muss ich arbeiten ...

Noch eine gute Woche und vielen Dank für Ihre Beiträge!

VG

M.C.

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

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von Gluehwurm » 05.09.2016, 23:01

N'Abend,
FoCarMaxElvFhz hat geschrieben:Gern liefere ich die Screenshots, vielleicht kannst du / könnt ihr einen Tipp-Fehler oder ähnliches entdecken.
Hat keinen, scheint tatsächlich ein Fall für eq-3 zu sein. Ausser, jemand entdeckt noch was.

Habe jetzt auch so einen angelernt, genau gleiches Verhalten. Kanal 1 lässt sich so nicht auslesen (Copy+Paste, div., ...) probiert. Geht nicht.
Zusätzlich ist das kleine "m" seltsam.
Das Teil wird so angelernt, abweichend von den bisherigen.
Ich denke die Entwickler von der Fa. eq3 haben die Antwort ...
Nächste Fw, vielleicht. :wink:


Gute Woche auch von mir
Bruno

Beneli
Beiträge: 3
Registriert: 02.11.2016, 14:10

Re: Datenpunkte des Bewegungsmelders HmIP-SMI ablesen

Beitrag von Beneli » 02.11.2016, 14:27

FoCarMaxElvFhz hat geschrieben:Zuerst der Befehl, das funktioniert hat:
Screenshot0.jpg
und dann der Befehl, das nicht funktioniert hat. Der einzige Unterschied ist die Endung des Kanalnamen, also statt "0", ein "1":
Screenshot1.jpg
Habe das ganze jetzt bei mir auch mal ausprobiert. Und habe bei mir das gleiche Verhalten festgestellt. Nach ein wenig testen ist die Lösung eigentlich ganz simpel.
Damit es funktioniert musst du einfach den Namen deiner Variable von dp in dp1 oder etwas anderes ändern, schon geht es auch mit ":1" und nicht nur mit ":0".

Warum sich das ganze so verhält, würde ich jetzt auch gerne wissen :?:

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“