NEWS
Liste der Homematic Geräte erstellen
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
@Homoran sagte:
laut CuxD gibt es 5 Geräte
Dann fehlt ja nur noch ein Gerät
Genau - das Risiko nehme ich in Kauf
Gefunden!!!
die virtuellen Kanäe BidCos_RF!Super!
-
Jetzt geht es noch um das Sahnehäubchen
(und die Kirsche darauf): kann man auch den Raum auslesen?Wichtiger ist jedoch wie ich es "maschinenlesbar" hinbekomme
Ich bekomme keinen Zeilenumbruch hin um es in Open office zeilenweise einlesen zu können
-
@Homoran sagte:
Ich bekomme keinen Zeilenumbruch hin
-
@paul53 <br> habe ich auch schon gemacht, wird aber nicht als Zeilenumbruch erkannt
Habe es dann im Notepad++ eingelesen und manuell nach <br>, gesucht und ENTER gedrückt127x f3 - ENTER und fertig
-
@Homoran sagte:
wird aber nicht als Zeilenumbruch erkannt
Bei mir macht die Log-Ausgabe die Zeilenumbrüche. Wenn ich die Log-Ausgabe in Notepad++ einfüge und anschließend als CSV-Datei abspeichere, kann ich es sofort als Tabelle einlesen.
-
@paul53 gut ich hatte <br> als Textblock
dann teste ich mal mit dem "Liste mit Trennzeichen"-Block -
@Homoran
Korrektur: In JS Version 3.6.4 funktioniert es mit <br>, in neueren Versionen nicht. -
@paul53 sagte in Liste der Homematic Geräte erstellen:
in neueren Versionen nicht.
Bestätigt!
Habe wegen einer anderen Funktion 4.6.23 drauf
Welche Informationen dafür liefert denn die Funktion noch?
ggf. an 1., 7. oder wieveilter auch immer Position? -
@Homoran sagte:
Welche Informationen dafür liefert denn die Funktion noch?
ggf. an 1., 7. oder wieveilter auch immer Position?Was meinst Du ?
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
Was meinst Du ?
ich hatte gehofft, dass ich einfach weitere Elemente aus den Datenpunkten hinzufügen kann, indem ich nicht das 3. Element aus der Funktion (=common name) sondern ein x-tes Element = HM-LC-Sw1_PBU nehmen könnte.
Habe einige schon ausprobiert aber nichts gefunden.
statt dessen hat es mir gerade die Ausgabe umformatiert
['GEQ0013764,Schluessel_Papa<CR>','HEQ0105937,Windsensor<CR>','IEQ0086197,schlüssel_Mona<CR>','JEQ0031354,JEQ0031354<CR>','JEQ0033065,Licht_SZ<CR>','JEQ0046663,Klima_Werkstatt<CR>','JEQ0047574,Leinwand<CR>','JEQ0064523,Klima_Bad<CR>','JEQ0090871,Wandtaster_Ladestrom<CR>','JEQ0090876,Funktaster 3<CR>','JEQ0092921,Licht_SZ<CR>','JEQ0093682,Licht_Balkon<CR>','JEQ0093694,Licht_Treppe_DG<CR>','JEQ0096204,Licht_Gast<CR>','JEQ0101940,Licht_Arcade<CR>','JEQ0110516,Rolladen Mona<CR>','JEQ0112228,Rolladen Schlafzimmer<CR>','JEQ0112436,Rolladen_Stubentuer<CR>','JEQ0112542,Rolladen Tina<CR>','JEQ0112564,Rolladen Stubenfenster<CR>','JEQ0112571,Markise<CR>','JEQ0114266,Rolladen_Kueche<CR>','JEQ0139530,Unterschrankbeleuchtung<CR>','JEQ0140901,Wetterstation<CR>','JEQ0201654,Licht_Stube_Kranz<CR>','JEQ0202324,Licht_Stube_Decke<CR>','JEQ0202330,Licht_Esszimmer<CR>','JEQ0243266,Taster Esszimmer<CR>','JEQ0267518,Klima_Saunakabine<CR>','JEQ0459186,BWM_hinten<CR>','JEQ0459314,BWM_vorne<CR>','JEQ0459323,BWM_Garten<CR>','JEQ0466320,Schloss_Haustuer<CR>','JEQ0466609,Schlüssel Mama<CR>','JEQ0499736,Steckerschalter Garage<CR>','JEQ0646431,quattro<CR>','JRT0001400,Griff WC<CR>','JRT0001416,Griff Schlafzimmer<CR>','JRT0001572,Griff Bad<CR>','JRT0001587,Griff Kellertür<CR>','KEQ0035101,Luefter_Dusche<CR>','KEQ0068246,Griff Stubentür<CR>','KEQ0120652,3_fach_01<CR>','KEQ0120726,3-Fach-Taster_Stube<CR>','KEQ0543528,Heizkreis<CR>','KEQ0543553,HKV_OG<CR>','KEQ0543560,Therme<CR>','KEQ0713122,Rauchmelder_Studio<CR>','KEQ0713193,Rauchmelder_Heizung<CR>','KEQ0848001,Griff_Arcade<CR>','KEQ0963067,Hitzesensor_vorne<CR>','KEQ0963583,Hitzesensor_hinten<CR>','KEQ0966548,Strom_Spuelmaschine<CR>','KEQ0967747,Waschmaschine<CR>','KEQ1022589,Regensensor<CR>','KEQ1070107,BWM KEQ1070107<CR>','LEQ0073262,Gong_EG<CR>','LEQ0080851,Klima_SZ<CR>','LEQ0081020,Klima_Stube<CR>','LEQ0143433,Griff_Studio_rechts<CR>','LEQ0242145,Steckdose_Stube_hinten_rechts<CR>','LEQ0242152,Steckdose_Stube_hinten_links<CR>','LEQ0250425,Bewaesserung<CR>','LEQ0397071,Wandtaster_Treppe_DG<CR>','LEQ0397107,Funkwandtaster_02<CR>','LEQ0397120,Funkwandtaster_03<CR>','LEQ0417179,Klima_Studio<CR>','LEQ0440620,Klima_Bureau<CR>','LEQ0629532,Griff_Studio_links<CR>','LEQ0631051,Griff_Kueche<CR>','LEQ0773306,Pooltemperaturen<CR>','LEQ0773307,FBH_EG_Ruecklauf_01<CR>','LEQ0889352,Griff Gast<CR>','LEQ1236782,Klingeltaster<CR>','LTK0044647,Wandtaster_Werkstatt<CR>','LTK0045860,Taster Küche hinten<CR>','LTK0124143,Hamsterkaefig<CR>','LTK0124191.....
kann mich aber nicht erinnern irgendwo etwas umgestellt zu haben
Doch habe ich - sorry habe aus der Liste keinen Text mehr erstellt -
@Homoran sagte:
HM-LC-Sw1_PBU nehmen könnte.
Diese Information hat ioBroker nicht, es sein denn Du hast sie bewusst irgendwo mit untergebracht.
-
Lass gut sein, das wird zu aufwändig!
Ich habe es mir gerade noch einmal angesehen, die Räume, die auf der CCU vergeben wurden sind zum einen nur ab Kanal:1, also weder beim Gerät, noch bei dem Kanal mit unreach, zum anderen kommen diese ja über den hm-rega, den du nicht verwendest.
Den Gerätetyp habe ich unter native, TYPE ebenfalls nur im RAW des Geräts gefunden, nicht in Kanal 0
{ "_id": "hm-rpc.0.KEQ0543528", "type": "device", "common": { "name": "Heizkreis", "icon": "/icons/IP65_G201_thumb.png" }, "native": { "ADDRESS": "KEQ0543528", "CHILDREN": [ "KEQ0543528:0", "KEQ0543528:1", "KEQ0543528:2", "KEQ0543528:3", "KEQ0543528:4", "KEQ0543528:5" ], "FIRMWARE": "1.1", "FLAGS": 1, "INTERFACE": "KEQ1065589", "PARAMSETS": [ "MASTER" ], "PARENT": "", "RF_ADDRESS": 2224197, "ROAMING": 1, "RX_MODE": 12, "TYPE": "HM-WDS30-OT2-SM", "UPDATABLE": 1, "VERSION": 5 }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1599044955264, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@Homoran sagte:
Den Gerätetyp habe ich unter native, TYPE ebenfalls nur im RAW des Geräts gefunden
Du hast recht. Den kann man abfragen. Funktion deviceType(id):
id = id.substring(0, id.lastIndexOf('.')); id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).native.TYPE;
-
@paul53 sagte in Liste der Homematic Geräte erstellen:
Den kann man abfragen
Danke mal wieder!!
Dann will ich mal an die Arbeit
-
-
@FredF sagte:
habe mir damit eine Liste der zigbee Geräte erstellt.
Sicherlich nicht mit "0.UNREACH".
-
@paul53 Klar, nein. Mit
zigbee.0.*.available
-
@Homoran
Ich frage nur aus Neugier, warum willst du das im Iobroker machen? Im Homematic Forum gab es da doch mal so ein Inventur - Script.Das folgende Ausgabe bringt (hier als Auszug):
. . ... 115 NEQ093XXXX HM-TC-IT-WM-W-EU (Wandthermostat.Wohnz) :1 Wandthermostat.Wohnz.NEQ093XXXX:1 :2 Wandthermostat.Wohnz.NEQ093XXXX:2 :3 Wandthermostat.Wohnz.NEQ093XXXX:3 :6 Wandthermostat.Wohnz.NEQ093XXXX:6 :7 Wandthermostat.Wohnz.NEQ093XXXX:7 116 OEQ036XXXX HM-WDS100-C6-O-2 (Wetterstation) :1 Wetterstation.OEQ036XXXX:1 117 INT0000001 HM-CC-VG-1 (Wohnen | Heizen INT0000001) :1 Wohnen | Heizen INT0000001:1 :2 Wohnen | Heizen INT0000001:2 -------------------------------------------- 356 Kanäle in 117 Geräten: 1x HM-PB-6-WM55, 8x HM-CC-VG-1, 1x HM-Sen-MDIR-O, 7x HM-Sen-MDIR-WM55, 1x HM-Sen-MDIR-O-3, 31x HM-Sec-SCo, 1x HM-Sec-RHS, 1x HM-MOD-Re-8, 1x HM-RC-Key4-3, 1x HM-RC-Sec4-3, 1x HmIP-RCV-50, 5x HM-LC-Bl1PBU-FM, 2x HM-LC-Sw1-DR, 11x HM-LC-Sw1-FM, 4x HM-LC-Sw2PBU-FM, 4x HM-LC-Dim1T-FM, 1x HM-LC-Dim1T-Pl-3, 1x HM-Sen-LI-O, 2x HM-LC-Sw4-DR, 1x HM-Sec-TiS, 3x HM-ES-PMSw1-DR, 1x HM-LC-Sw1-Ba-PCB, 1x HM-Sec-Sir-WM, 2x HM-ES-PMSw1-Pl, 1x HM-WDS30-OT2-SM, 15x HM-CC-RT-DN, 1x HM-MOD-EM-8, 7x HM-TC-IT-WM-W-EU, 1x HM-WDS100-C6-O-2 --------------------------------------------
-
@Peoples sagte in Liste der Homematic Geräte erstellen:
Im Homematic Forum gab es da doch mal so ein Inventur - Script.
da bin ich schon lange nicht mehr drin gewesen, und das einzige Inventurscript, das ich kenne ist von QuickAccess.
Das gibt nur die Anzahl von jedem Gerät aus. (so wie deine letzte Zeile)Hast du den Link zu dem von dir erwähnten Script?
(auch wenn ich schon fertig bin) -
@Homoran
Den Link habe ich leider auch nicht mehr, aber das Script kann ich dir rein stellen:string s_device; object o_device; integer i_devices = 0; integer i_cdevices = 0; string s_channel; object o_channel; integer i_channels = 0; integer i_cchannels = 0; string s_typelist = ""; string s_temp; foreach(s_device, dom.GetObject(ID_DEVICES).EnumUsedIDs()) { var o_device = dom.GetObject(s_device); boolean is_cux = o_device.Address().Substr(0,3) == "CUX"; if ((o_device.Address() != "BidCoS-Wir") && (o_device.Address() != "BidCoS-RF")) { if (is_cux) { i_cdevices = i_cdevices + 1; s_temp = i_cdevices.ToString(); } else { i_devices = i_devices + 1; s_temp = i_devices.ToString(); } if (i_devices < 10) { s_temp = " " # s_temp; } if (i_devices < 100) { s_temp = " " # s_temp; } if (is_cux) { s_temp = "C" # s_temp; } else { s_temp = " " # s_temp; } WriteLine(s_temp # " " # o_device.Address() # " " # o_device.HssType() # " (" # o_device.Name() # ")"); if (is_cux) { s_typelist = s_typelist # o_device.Address().Substr(0,5) # "\t"; } else { s_typelist = s_typelist # o_device.HssType() # "\t"; } foreach(s_channel, o_device.Channels().EnumUsedIDs()) { if (is_cux) { i_cchannels = i_cchannels + 1; } else { i_channels = i_channels + 1; } o_channel = dom.GetObject(s_channel); s_temp = " :" # o_channel.Address().StrValueByIndex(":",1); WriteLine(s_temp # " " # o_channel.Name() ); } } } WriteLine("--------------------------------------------"); Write(i_channels # " Kanäle in " # i_devices # " Geräten"); if (i_cdevices > 0) { Write(" und "#i_cchannels # " CUxD-Kanäle in " # i_cdevices # " CUxD-Geräten"); } WriteLine(":"); string s_typeidx; string s_typeidx2; string s_typechecked = ""; integer i_subcount; foreach (s_typeidx, s_typelist) { ! EnergyStar 13.10.2010 vvv ! den Suchstring um ein Komma und ein Leerzeichen erweitern um kein Teilstringproblem zu bekommen if (s_typechecked.Find(s_typeidx # ", ") == -1) { ! EnergyStar 13.10.2010 ^^^ i_subcount = 0; foreach (s_typeidx2, s_typelist) { if (s_typeidx2 == s_typeidx) { i_subcount = i_subcount + 1; } } ! EnergyStar 13.10.2010 vvv ! immer ein Komma und ein Leerzeichen anfügen s_typechecked = s_typechecked # i_subcount # "x " # s_typeidx # ", "; ! EnergyStar 13.10.2010 ^^^ } } ! EnergyStar 13.10.2010 vvv ! überflüssiges Komma und Leerzeichen am Ende entfernen WriteLine(s_typechecked.Substr(0, s_typechecked.Length() - 2)); ! EnergyStar 13.10.2010 ^^^ WriteLine("--------------------------------------------");