Hallo,
ich bin noch nicht sehr gut in Skript-Programmierung und habe hierzu eine Frage:
Jedes HM-Gerät hat ein oder mehrere Kanäle. Leider habe ich bisher keine Kanalliste gefunden.
Diese Kanäle haben auch Bezeichnungen.
Man braucht diese Angaben, um die Geräte im Skript verwenden zu können.
Von einem Gerät habe ich die Angaben dazu gefunden. Hier das Beispspiel (auch im Anhang):
var a = dom.GetObject("BidCos-RF.KEQ193878:1.BRIGHTNESS").Value();
KEQ193878 ist die Seriennr meines Bewegungsmelders
1 = Kanalnummer, BRIGHTNESS = Kanalbezeichnung oder Kanalname
Die Seriennr eines jeden Gerätes ist bekannt
Mir fehlen zu meinen übrigen Geräten die betreffenden Kanalnummern und Kanalbezeichnungen
Wo gibt es dazu eine Liste oder vielleicht ein Skript, um für jedes Gerät an diese Daten zu gelangen???
Gruß
Cosi
Skript-Programmierung
Moderator: Co-Administratoren
-
- Beiträge: 20
- Registriert: 10.03.2020, 11:12
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Köln
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 2 Mal
Re: Skript-Programmierung
Geht z.B. so:
Ergibt dann eine lange Liste in der Form:
Code: Alles auswählen
string dpID;
string channelID;
var channels = dom.GetObject(ID_CHANNELS);
foreach(channelID,channels.EnumUsedIDs()) {
var channel = dom.GetObject(channelID);
WriteLine("Kanal: " # channelID # " " # channel.Name() # " " # channel.TypeName() # " " # (dom.GetObject(channel.Device())) );
var dps = channel.DPs();
foreach(dpID,dps.EnumUsedIDs()) {
var dp = dom.GetObject(dpID);
WriteLine(" DP: " # dpID # " " # dp.Name() # " " # dp.ValueType());
}
}
Code: Alles auswählen
Kanal: 1270 Wohnzimmer Thermostat CHANNEL Thermostat Wohnzimmer
DP: 1277 BidCos-RF.LEQ0848701:4.CONTROL_MODE 16
DP: 1278 BidCos-RF.LEQ0848701:4.FAULT_REPORTING 16
DP: 1273 BidCos-RF.LEQ0848701:4.BATTERY_STATE 4
DP: 1313 BidCos-RF.LEQ0848701:4.VALVE_STATE 16
DP: 1275 BidCos-RF.LEQ0848701:4.BOOST_STATE 16
DP: 1271 BidCos-RF.LEQ0848701:4.ACTUAL_TEMPERATURE 4
-
- Beiträge: 10685
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 330 Mal
- Danksagung erhalten: 507 Mal
Re: Skript-Programmierung
Im Übrigen steht vor jedem Gerät ein kleines Pluszeichen. Wenn du darauf klickst, öffnet sich die zugehörige Kanalliste und das Pluszeichen verwandelt sich in ein Minuszeichen.
Hier sollte man auch die entsprechenden Raum- und Gewerkzuordnungen für jeden einzelnen Kanal erzeugen. Zudem würde ich auch die Kanäle analog den Gerätenamen umbenennen, wobei im Falle von mehreren Kanälen unterschiedliche Namen vergeben werden müssen. Hat das Gerät nur einen einzigen Kanal, dann kann man beiden durchaus den identischen Namen geben. Willst du auf Nummer Sicher gehen, dann kannst du auch hier den Kanal unterschiedlich zum Gerät benenenn, z.B. durch eine angefügte Nummer oder Kurzbeschreibung.
Hier sollte man auch die entsprechenden Raum- und Gewerkzuordnungen für jeden einzelnen Kanal erzeugen. Zudem würde ich auch die Kanäle analog den Gerätenamen umbenennen, wobei im Falle von mehreren Kanälen unterschiedliche Namen vergeben werden müssen. Hat das Gerät nur einen einzigen Kanal, dann kann man beiden durchaus den identischen Namen geben. Willst du auf Nummer Sicher gehen, dann kannst du auch hier den Kanal unterschiedlich zum Gerät benenenn, z.B. durch eine angefügte Nummer oder Kurzbeschreibung.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- Black
- Beiträge: 5552
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 435 Mal
- Danksagung erhalten: 1097 Mal
- Kontaktdaten:
Re: Skript-Programmierung
Geräte und Kanalnamen gleich benennen geht, birgt aber bei nicht gradlinigem Vorgehen z.b. bei EInsatz des einfachen dom.GetObject ("Name"); die Gefahr, dass bei Namensgleichheit von 2 Objekttypen das Objekt mit der niedrigeren ID gegriffen wird, und dass ist sogut wie immer die ID des Device.
Natürlich lässt sich jede Information der Rega über Scripte abgreifen und darstellen, es gibt allerdings auch komfortablere und schnellere Möglichkeiten mit externen programmen.
Black
Natürlich lässt sich jede Information der Rega über Scripte abgreifen und darstellen, es gibt allerdings auch komfortablere und schnellere Möglichkeiten mit externen programmen.
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 10685
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 330 Mal
- Danksagung erhalten: 507 Mal
Re: Skript-Programmierung
Da gebe ich dir selbstverständlich Recht. Daher sollte man auch immer mit dom.GetObject("ID_CHANNELS").Get("Name") arbeiten.
Wenn ich etwas von @BadenPower gelernt habe, dann das.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- robbi77
- Beiträge: 13919
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 182 Mal
- Danksagung erhalten: 749 Mal
Re: Skript-Programmierung
DATENPUNKT nicht Kanal. Oder liege ich falsch?BRIGHTNESS = Kanalbezeichnung oder Kanalname
Nur das man vom gleichen redet ...
CCU - Anleitung: https://homematic-ip.com/sites/default/ ... h-eq-3.pdf