per HM Script möchte ich hier mal etwas zusammenschreiben.
Die Abfrage der Datenpunkte per Script hat sich meiner Meinung nach nicht geändert
und funktioniert nach wie vor nach demselben Vorgehen.
Ob es sich um ein IP Gerät handelt oder normal Funk oder Wired spielt keine Rolle.
Auch hier gilt natürlich, viele Wege führen nach Rom.
Ich habe als Beispiel den Frequenzdatenpunkt einer
RF Schalt-Mess-Steckdose HM-ES-PMSw1-Pl und einer
IP Schalt-Mess-Steckdose HMIP-PSM benutzt, so das jeder hoffentlich die nachfolgenden Scripte nachvollziehen kann.
Wem das zu banal ist, der liest was anderes. Blöde Kommentare sind unerwünscht.
Wie kann ich nun endlich die Datenpunkte per HM Script auslesen?
1. Möglichkeit: über die Seriennummer und mit sicherere Zugriffsmethode:
bei RF
Code: Alles auswählen
var rfserial = (datapoints.Get("BidCos-RF.KEQ0968370:2.FREQUENCY")).Value();
WriteLine(rfserial);
Code: Alles auswählen
var rfserial = (dom.GetObject(ID_DATAPOINTS)).Get("BidCos-RF.KEQ0968370:2.FREQUENCY").Value();
WriteLine(rfserial);
bei IP
Code: Alles auswählen
var ipserial = (datapoints.Get("HmIP-RF.0001D3C990BFAC:6.FREQUENCY")).Value();
WriteLine(ipserial);
Code: Alles auswählen
var ipserial = (dom.GetObject(ID_DATAPOINTS)).Get("HmIP-RF.0001D3C990BFAC:6.FREQUENCY").Value();
WriteLine(ipserial);
die Struktur bleibt dieselbe:
HmIP-RF.0001D3C990BFAC:6.FREQUENCY
Interface.Seriennummer:Kanal.DATEN
Und da wären noch die CUxD Geräte. Auch hier ändert sich daran gar nichts.
Nehmen wir ein 9001001 Gerät als Beispiel und den eingekreisten Datenpunkt
Da auch hier die Struktur dieselbe ist
Interface.Seriennummer:Kanal.DATEN
Kann man dort dasselbe wie oben erreichen
Code: Alles auswählen
var cuxdserial = (datapoints.Get("CUxD.CUX9001001:2.TIME_OFF_24H")).Value();
WriteLine(cuxdserial);
Code: Alles auswählen
var cuxdserial = (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX9001001:2.TIME_OFF_24H").Value();
WriteLine(cuxdserial);
2. Möglichkeit über den Kanalnamen, wie schon oben aufgeführt.
bei RF
Code: Alles auswählen
var rfname = (dom.GetObject(ID_CHANNELS)).Get("Drainagesteckdose:2").DPByHssDP("FREQUENCY").Value();
WriteLine(rfname);
Code: Alles auswählen
var ipname =(dom.GetObject(ID_CHANNELS)).Get("Fernsehersteckdose:6").DPByHssDP("FREQUENCY").Value();
WriteLine(ipname);
3. Möglichkeit
über die ISE_ID, lass ich hier aber erstmal weg, wenn es wer wissen will, nachfragen.
4. Möglichkeit
hab ich noch nicht drüber nachgedacht.
Das sollte nun für jeden nachvollziehbar sein
Nun geht es aber auch noch darum, die vorhandenen Datenpunkte erstmal herauszubekommen.
Und das ist ja manchmal viel wichtiger.
Auch dazu gibt es wieder unterschiedliche Möglichkeiten.
Eine davon ist das Lesen, Verstehen und Anwenden der veröffentlichten Dokus, wie sie auch oben gepostet wurde.
Eine Weitere wäre das Verwenden von Tools / Addons wie z.B. >> xmlapi <<, was dann stellvertretend so was
ergibt.
Aber für alle die, die keine addons installieren wollen gibt es noch die Möglichkeit das alles per kleinen Script zu machen.
[EDIT]
Hier also jetzt ein schnelles Miniscript, auszuführen in Script Executer oder unter Script testen.
Erste Zeile einfach die Seriennummer des Gerätes eingeben, damit man nicht ewig scrollen muss.
Ducrch den EQ-3 Bug muss an für die virtuellen Tasten der CCU nicht die Seriennummer sondern
HmIP-RCV-1 für die virtuellen IP Tasten der CCU3 eingeben bzw. BidCoS-RF für die RF Tasten.
Also das was in der Klickibunti eben für die Seriennummer drin steht
Wenn man nix einträgt, sollten alle Datenpunkte ausgegeben werden.
Hab das nur schnell zusammengetütelt, sollte bei IP und auch bei RF funktionieren.
Bei vielen angemeldeten Geräten dauert die Ausführung eine Weile, da ich keinerlei Vorselektierung mache,
Keinerlei Schnickschnack nur die Funktion zählt.
Code: Alles auswählen
string auswahl = "KEQ0968370";
! +++++++++++++++++++
string index;
string liste = dom.GetObject(ID_DATAPOINTS).EnumUsedNames();
foreach (index, liste) {
var sserial = (index.StrValueByIndex(":",0).StrValueByIndex(".",1));
if (sserial == auswahl) {
Write(index #"\n");
}
}
Wenn Bedarf besteht, bitte melden, dann erweitere ich diese Infos.
Alchy