]> git.basschouten.com Git - openhab-addons.git/commitdiff
[knx] Refactor manufacturer map (#15297)
authorJ-N-K <github@klug.nrw>
Mon, 24 Jul 2023 21:09:46 +0000 (23:09 +0200)
committerGitHub <noreply@github.com>
Mon, 24 Jul 2023 21:09:46 +0000 (23:09 +0200)
* [knx] Refactor manufacturer map

This makes adding new manufacturers easy.

Signed-off-by: Jan N. Klug <github@klug.nrw>
bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/KNXBindingConstants.java
bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/client/DeviceInspector.java
bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java [deleted file]
bundles/org.openhab.binding.knx/src/main/resources/manufacturer.properties [new file with mode: 0644]

index 7e75da0f1b8fd6431ea2b059094a14c9b5e412a8..c5b66a08c55d37fdf5c53f48d58860a541dc60c5 100644 (file)
  */
 package org.openhab.binding.knx.internal;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.openhab.core.thing.ThingTypeUID;
@@ -106,4 +111,26 @@ public class KNXBindingConstants {
     public static final String STOP_MOVE_GA = "stopMove";
     public static final String SWITCH_GA = "switch";
     public static final String UP_DOWN_GA = "upDown";
+
+    public static final Map<Integer, String> MANUFACTURER_MAP = readManufacturerMap();
+
+    private static Map<Integer, String> readManufacturerMap() {
+        ClassLoader classLoader = KNXBindingConstants.class.getClassLoader();
+        if (classLoader == null) {
+            return Map.of();
+        }
+
+        try (InputStream is = classLoader.getResourceAsStream("manufacturer.properties")) {
+            if (is == null) {
+                return Map.of();
+            }
+
+            Properties properties = new Properties();
+            properties.load(is);
+            return properties.entrySet().stream()
+                    .collect(Collectors.toMap(e -> Integer.parseInt((String) e.getKey()), e -> (String) e.getValue()));
+        } catch (IOException e) {
+            return Map.of();
+        }
+    }
 }
index 61aebab5bc96c1e67a7ba6fe47d8837f76ddb133..75b66ebc8444e0d099a4a3c0d5f70c35e73c60a6 100644 (file)
@@ -22,7 +22,6 @@ import java.util.Set;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
-import org.openhab.binding.knx.internal.handler.Manufacturer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -126,8 +125,8 @@ public class DeviceInspector {
                 OPERATION_TIMEOUT);
         if ((elements == null ? 0 : toUnsigned(elements)) == 1) {
             Thread.sleep(OPERATION_INTERVAL);
-            String manufacturerID = Manufacturer.getName(toUnsigned(getClient().readDeviceProperties(address,
-                    DEVICE_OBJECT, PID.MANUFACTURER_ID, 1, 1, false, OPERATION_TIMEOUT)));
+            String manufacturerId = MANUFACTURER_MAP.getOrDefault(toUnsigned(getClient().readDeviceProperties(address,
+                    DEVICE_OBJECT, PID.MANUFACTURER_ID, 1, 1, false, OPERATION_TIMEOUT)), "Unknown");
 
             Thread.sleep(OPERATION_INTERVAL);
             String serialNo = toHex(getClient().readDeviceProperties(address, DEVICE_OBJECT, PID.SERIAL_NUMBER, 1, 1,
@@ -260,7 +259,7 @@ public class DeviceInspector {
                 // allowed to fail, optional
             }
 
-            ret.put(MANUFACTURER_NAME, manufacturerID);
+            ret.put(MANUFACTURER_NAME, manufacturerId);
             if (serialNo != null) {
                 ret.put(MANUFACTURER_SERIAL_NO, serialNo);
             }
@@ -272,7 +271,7 @@ public class DeviceInspector {
             }
             ret.put(MAX_APDU_LENGTH, maxApdu);
             logger.debug("Identified device {} as {}, type {}, revision {}, serial number {}, max APDU {}", address,
-                    manufacturerID, hardwareType, firmwareRevision, serialNo, maxApdu);
+                    manufacturerId, hardwareType, firmwareRevision, serialNo, maxApdu);
         } else {
             logger.debug("The KNX device with address {} does not expose a Device Object", address);
         }
diff --git a/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java b/bundles/org.openhab.binding.knx/src/main/java/org/openhab/binding/knx/internal/handler/Manufacturer.java
deleted file mode 100644 (file)
index 455280d..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-/**
- * Copyright (c) 2010-2023 Contributors to the openHAB project
- *
- * See the NOTICE file(s) distributed with this work for additional
- * information.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License 2.0 which is available at
- * http://www.eclipse.org/legal/epl-2.0
- *
- * SPDX-License-Identifier: EPL-2.0
- */
-package org.openhab.binding.knx.internal.handler;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
-
-/**
- * Enumeration containing all the KNX device manufactureres.
- *
- * @author Karel Goderis - Initial contribution
- */
-@NonNullByDefault
-public enum Manufacturer {
-    M1(1, "Siemens"),
-    M2(2, "ABB"),
-    M4(4, "Albrecht Jung"),
-    M5(5, "Bticino"),
-    M6(6, "Berker"),
-    M7(7, "Busch-Jaeger Elektro"),
-    M8(8, "GIRA Giersiepen"),
-    M9(9, "Hager Electro"),
-    M10(10, "INSTA ELEKTRO"),
-    M11(11, "LEGRAND Appareillage électrique"),
-    M12(12, "Merten"),
-    M14(14, "ABB SpA – SACE Division"),
-    M22(22, "Siedle & Söhne"),
-    M24(24, "Eberle"),
-    M25(25, "GEWISS"),
-    M27(27, "Albert Ackermann"),
-    M28(28, "Schupa GmbH"),
-    M29(29, "ABB SCHWEIZ"),
-    M30(30, "Feller"),
-    M32(32, "DEHN & SÖHNE"),
-    M33(33, "CRABTREE"),
-    M34(34, "eVoKNX"),
-    M36(36, "Paul Hochköpper"),
-    M37(37, "Altenburger Electronic"),
-    M41(41, "Grässlin"),
-    M42(42, "Simon"),
-    M44(44, "VIMAR"),
-    M45(45, "Moeller Gebäudeautomation KG"),
-    M46(46, "Eltako"),
-    M49(49, "Bosch-Siemens Haushaltsgeräte"),
-    M52(52, "RITTO GmbH&Co.KG"),
-    M53(53, "Power Controls"),
-    M55(55, "ZUMTOBEL"),
-    M57(57, "Phoenix Contact"),
-    M61(61, "WAGO Kontakttechnik"),
-    M66(66, "Wieland Electric"),
-    M67(67, "Hermann Kleinhuis"),
-    M69(69, "Stiebel Eltron"),
-    M71(71, "Tehalit"),
-    M72(72, "Theben AG"),
-    M73(73, "Wilhelm Rutenbeck"),
-    M75(75, "Winkhaus"),
-    M76(76, "Robert Bosch"),
-    M78(78, "Somfy"),
-    M80(80, "Woertz"),
-    M81(81, "Viessmann Werke"),
-    M82(82, "Theodor HEIMEIER Metallwerk"),
-    M83(83, "Joh. Vaillant"),
-    M85(85, "AMP Deutschland"),
-    M89(89, "Bosch Thermotechnik GmbH"),
-    M90(90, "SEF - ECOTEC"),
-    M92(92, "DORMA GmbH + Co. KG"),
-    M93(93, "WindowMaster A/S"),
-    M94(94, "Walther Werke"),
-    M95(95, "ORAS"),
-    M97(97, "Dätwyler"),
-    M98(98, "Electrak"),
-    M99(99, "Techem"),
-    M100(100, "Schneider Electric Industries SAS"),
-    M101(101, "WHD Wilhelm Huber + Söhne"),
-    M102(102, "Bischoff Elektronik"),
-    M104(104, "JEPAZ"),
-    M105(105, "RTS Automation"),
-    M106(106, "EIBMARKT GmbH"),
-    M107(107, "WAREMA electronic GmbH"),
-    M108(108, "Eelectron"),
-    M109(109, "Belden Wire & Cable B.V."),
-    M110(110, "Becker-Antriebe GmbH"),
-    M111(111, "J.Stehle+Söhne GmbH"),
-    M112(112, "AGFEO"),
-    M113(113, "Zennio"),
-    M114(114, "TAPKO Technologies"),
-    M115(115, "HDL"),
-    M116(116, "Uponor"),
-    M117(117, "se Lightmanagement AG"),
-    M118(118, "Arcus-eds"),
-    M119(119, "Intesis"),
-    M120(120, "Herholdt Controls srl"),
-    M121(121, "Zublin AG"),
-    M122(122, "Durable Technologies"),
-    M123(123, "Innoteam"),
-    M124(124, "ise GmbH"),
-    M125(125, "TEAM FOR TRONICS"),
-    M126(126, "CIAT"),
-    M127(127, "Remeha BV"),
-    M128(128, "ESYLUX"),
-    M129(129, "BASALTE"),
-    M130(130, "Vestamatic"),
-    M131(131, "MDT technologies"),
-    M132(132, "Warendorfer Küchen GmbH"),
-    M133(133, "Video-Star"),
-    M134(134, "Sitek"),
-    M135(135, "CONTROLtronic"),
-    M136(136, "function Technology"),
-    M137(137, "AMX"),
-    M138(138, "ELDAT"),
-    M139(139, "VIKO"),
-    M140(140, "Pulse Technologies"),
-    M141(141, "Crestron"),
-    M142(142, "STEINEL professional"),
-    M143(143, "BILTON LED Lighting"),
-    M144(144, "denro AG"),
-    M145(145, "GePro"),
-    M146(146, "preussen automation"),
-    M147(147, "Zoppas Industries"),
-    M148(148, "MACTECH"),
-    M149(149, "TECHNO-TREND"),
-    M150(150, "FS Cables"),
-    M151(151, "Delta Dore"),
-    M152(152, "Eissound"),
-    M153(153, "Cisco"),
-    M154(154, "Dinuy"),
-    M155(155, "iKNiX"),
-    M156(156, "Rademacher Geräte-Elektronik GmbH & Co. KG"),
-    M157(157, "EGi Electroacustica General Iberica"),
-    M158(158, "Ingenium"),
-    M159(159, "ElabNET"),
-    M160(160, "Blumotix"),
-    M161(161, "Hunter Douglas"),
-    M162(162, "APRICUM"),
-    M163(163, "TIANSU Automation"),
-    M164(164, "Bubendorff"),
-    M165(165, "MBS GmbH"),
-    M166(166, "Enertex Bayern GmbH"),
-    M167(167, "BMS"),
-    M168(168, "Sinapsi"),
-    M169(169, "Embedded Systems SIA"),
-    M170(170, "KNX1"),
-    M171(171, "Tokka"),
-    M172(172, "NanoSense"),
-    M173(173, "PEAR Automation GmbH"),
-    M174(174, "DGA"),
-    M175(175, "Lutron"),
-    M176(176, "AIRZONE – ALTRA"),
-    M177(177, "Lithoss Design Switches"),
-    M178(178, "3ATEL"),
-    M179(179, "Philips Controls"),
-    M180(180, "VELUX A/S"),
-    M181(181, "LOYTEC"),
-    M182(182, "SBS S.p.A."),
-    M183(183, "SIRLAN Technologies"),
-    M184(184, "Bleu Comm' Azur"),
-    M185(185, "IT GmbH"),
-    M186(186, "RENSON"),
-    M187(187, "HEP Group"),
-    M188(188, "Balmart"),
-    M189(189, "GFS GmbH"),
-    M190(190, "Schenker Storen AG"),
-    M191(191, "Algodue Elettronica S.r.L."),
-    M192(192, "Newron System"),
-    M193(193, "maintronic"),
-    M194(194, "Vantage"),
-    M195(195, "Foresis"),
-    M196(196, "Research & Production Association SEM"),
-    M197(197, "Weinzierl Engineering GmbH"),
-    M198(198, "Möhlenhoff Wärmetechnik GmbH"),
-    M199(199, "PKC-GROUP Oyj"),
-    M200(200, "B.E.G."),
-    M201(201, "Elsner Elektronik GmbH"),
-    M202(202, "Siemens Building Technologies (HK/China) Ltd."),
-    M204(204, "Eutrac"),
-    M205(205, "Gustav Hensel GmbH & Co. KG"),
-    M206(206, "GARO AB"),
-    M207(207, "Waldmann Lichttechnik"),
-    M208(208, "SCHÜCO"),
-    M209(209, "EMU"),
-    M210(210, "JNet Systems AG"),
-    M214(214, "O.Y.L. Electronics"),
-    M215(215, "Galax System"),
-    M216(216, "Disch"),
-    M217(217, "Aucoteam"),
-    M218(218, "Luxmate Controls"),
-    M219(219, "Danfoss"),
-    M220(220, "AST GmbH"),
-    M222(222, "WILA Leuchten"),
-    M223(223, "b+b Automations- und Steuerungstechnik"),
-    M225(225, "Lingg & Janke"),
-    M227(227, "Sauter"),
-    M228(228, "SIMU"),
-    M232(232, "Theben HTS AG"),
-    M233(233, "Amann GmbH"),
-    M234(234, "BERG Energiekontrollsysteme GmbH"),
-    M235(235, "Hüppe Form Sonnenschutzsysteme GmbH"),
-    M237(237, "Oventrop KG"),
-    M238(238, "Griesser AG"),
-    M239(239, "IPAS GmbH"),
-    M240(240, "elero GmbH"),
-    M241(241, "Ardan Production and Industrial Controls Ltd."),
-    M242(242, "Metec Meßtechnik GmbH"),
-    M244(244, "ELKA-Elektronik GmbH"),
-    M245(245, "ELEKTROANLAGEN D. NAGEL"),
-    M246(246, "Tridonic Bauelemente GmbH"),
-    M248(248, "Stengler Gesellschaft"),
-    M249(249, "Schneider Electric (MG)"),
-    M250(250, "KNX Association"),
-    M251(251, "VIVO"),
-    M252(252, "Hugo Müller GmbH & Co KG"),
-    M253(253, "Siemens HVAC"),
-    M254(254, "APT"),
-    M256(256, "HighDom"),
-    M257(257, "Top Services"),
-    M258(258, "ambiHome"),
-    M259(259, "DATEC electronic AG"),
-    M260(260, "ABUS Security-Center"),
-    M261(261, "Lite-Puter"),
-    M262(262, "Tantron Electronic"),
-    M263(263, "Yönnet"),
-    M264(264, "DKX Tech"),
-    M265(265, "Viatron"),
-    M266(266, "Nautibus"),
-    M268(268, "Longchuang"),
-    M269(269, "Air-On AG"),
-    M270(270, "ib-company GmbH"),
-    M271(271, "SATION"),
-    M272(272, "Agentilo GmbH"),
-    M273(273, "Makel Elektrik"),
-    M274(274, "Helios Ventilatoren"),
-    M275(275, "Otto Solutions Pte Ltd"),
-    M276(276, "Airmaster"),
-    M277(277, "HEINEMANN GmbH"),
-    M278(278, "LDS"),
-    M279(279, "ASIN"),
-    M280(280, "Bridges"),
-    M281(281, "ARBONIA"),
-    M282(282, "KERMI"),
-    M283(283, "PROLUX"),
-    M284(284, "ClicHome"),
-    M285(285, "COMMAX"),
-    M286(286, "EAE"),
-    M287(287, "Tense"),
-    M288(288, "Seyoung Electronics"),
-    M289(289, "Lifedomus"),
-    M290(290, "EUROtronic Technology GmbH"),
-    M291(291, "tci"),
-    M292(292, "Rishun Electronic"),
-    M293(293, "Zipato"),
-    M294(294, "cm-security GmbH & Co KG"),
-    M295(295, "Qing Cables"),
-    M296(296, "LABIO"),
-    M297(297, "Coster Tecnologie Elettroniche S.p.A."),
-    M298(298, "E.G.E"),
-    M299(299, "NETxAutomation"),
-    M300(300, "tecalor"),
-    M301(301, "Urmet Electronics (Huizhou) Ltd."),
-    M302(302, "Peiying Building Control"),
-    M303(303, "BPT S.p.A. a Socio Unico"),
-    M304(304, "Kanontec - KanonBUS"),
-    M305(305, "ISER Tech"),
-    M306(306, "Fineline"),
-    M307(307, "CP Electronics Ltd"),
-    M308(308, "Servodan A/S"),
-    M309(309, "Simon"),
-    M310(310, "GM modular pvt. Ltd."),
-    M311(311, "FU CHENG Intelligence"),
-    M312(312, "NexKon"),
-    M313(313, "FEEL s.r.l"),
-    M314(314, "Not Assigned"),
-    M315(315, "Shenzhen Fanhai Sanjiang Electronics Co., Ltd."),
-    M316(316, "Jiuzhou Greeble"),
-    M317(317, "Aumüller Aumatic GmbH"),
-    M318(318, "Etman Electric"),
-    M319(319, "EMT Controls"),
-    M320(320, "ZidaTech AG"),
-    M321(321, "IDGS bvba"),
-    M322(322, "dakanimo"),
-    M323(323, "Trebor Automation AB"),
-    M324(324, "Satel sp. z o.o."),
-    M325(325, "Russound, Inc."),
-    M326(326, "Midea Heating & Ventilating Equipment CO LTD"),
-    M327(327, "Consorzio Terranuova"),
-    M328(328, "Wolf Heiztechnik GmbH"),
-    M329(329, "SONTEC"),
-    M330(330, "Belcom Cables Ltd."),
-    M331(331, "Guangzhou SeaWin Electrical Technologies Co., Ltd."),
-    M332(332, "Acrel"),
-    M333(333, "Franke Aquarotter GmbH"),
-    M334(334, "Orion Systems"),
-    M335(335, "Schrack Technik GmbH"),
-    M336(336, "INSPRID"),
-    M337(337, "Sunricher"),
-    M338(338, "Menred automation system(shanghai) Co.,Ltd."),
-    M339(339, "Aurex"),
-    M340(340, "Josef Barthelme GmbH & Co. KG"),
-    M341(341, "Architecture Numerique"),
-    M342(342, "UP GROUP"),
-    M343(343, "Teknos-Avinno"),
-    M344(344, "Ningbo Dooya Mechanic & Electronic Technology"),
-    M345(345, "Thermokon Sensortechnik GmbH"),
-    M346(346, "BELIMO Automation AG"),
-    M347(347, "Zehnder Group International AG"),
-    M348(348, "sks Kinkel Elektronik"),
-    M349(349, "ECE Wurmitzer GmbH"),
-    M350(350, "LARS"),
-    M351(351, "URC"),
-    M352(352, "LightControl"),
-    M353(353, "ShenZhen YM"),
-    M354(354, "MEAN WELL Enterprises Co. Ltd."),
-    M355(355, "OSix"),
-    M356(356, "AYPRO Technology"),
-    M357(357, "Hefei Ecolite Software"),
-    M358(358, "Enno"),
-    M359(359, "Ohosure"),
-    M373(373, "ZF Friedrichshafen AG");
-
-    private int code;
-    private String name;
-
-    private Manufacturer(int code, String name) {
-        this.code = code;
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return name;
-    }
-
-    public static String getName(int code) {
-        for (Manufacturer c : Manufacturer.values()) {
-            if (c.code == code) {
-                return c.name;
-            }
-        }
-        return "Unknown (" + code + ")";
-    }
-}
diff --git a/bundles/org.openhab.binding.knx/src/main/resources/manufacturer.properties b/bundles/org.openhab.binding.knx/src/main/resources/manufacturer.properties
new file mode 100644 (file)
index 0000000..5709444
--- /dev/null
@@ -0,0 +1,303 @@
+1 = Siemens
+2 = ABB
+4 = Albrecht Jung
+5 = Bticino
+6 = Berker
+7 = Busch-Jaeger Elektro
+8 = GIRA Giersiepen
+9 = Hager Electro
+10 = INSTA ELEKTRO
+11 = LEGRAND Appareillage électrique
+12 = Merten
+14 = ABB SpA – SACE Division
+22 = Siedle & Söhne
+24 = Eberle
+25 = GEWISS
+27 = Albert Ackermann
+28 = Schupa GmbH
+29 = ABB SCHWEIZ
+30 = Feller
+32 = DEHN & SÖHNE
+33 = CRABTREE
+34 = eVoKNX
+36 = Paul Hochköpper
+37 = Altenburger Electronic
+41 = Grässlin
+42 = Simon
+44 = VIMAR
+45 = Moeller Gebäudeautomation KG
+46 = Eltako
+49 = Bosch-Siemens Haushaltsgeräte
+52 = RITTO GmbH&Co.KG
+53 = Power Controls
+55 = ZUMTOBEL
+57 = Phoenix Contact
+61 = WAGO Kontakttechnik
+66 = Wieland Electric
+67 = Hermann Kleinhuis
+69 = Stiebel Eltron
+71 = Tehalit
+72 = Theben AG
+73 = Wilhelm Rutenbeck
+75 = Winkhaus
+76 = Robert Bosch
+78 = Somfy
+80 = Woertz
+81 = Viessmann Werke
+82 = Theodor HEIMEIER Metallwerk
+83 = Joh. Vaillant
+85 = AMP Deutschland
+89 = Bosch Thermotechnik GmbH
+90 = SEF - ECOTEC
+92 = DORMA GmbH + Co. KG
+93 = WindowMaster A/S
+94 = Walther Werke
+95 = ORAS
+97 = Dätwyler
+98 = Electrak
+99 = Techem
+100 = Schneider Electric Industries SAS
+101 = WHD Wilhelm Huber + Söhne
+102 = Bischoff Elektronik
+104 = JEPAZ
+105 = RTS Automation
+106 = EIBMARKT GmbH
+107 = WAREMA electronic GmbH
+108 = Eelectron
+109 = Belden Wire & Cable B.V.
+110 = Becker-Antriebe GmbH
+111 = J.Stehle+Söhne GmbH
+112 = AGFEO
+113 = Zennio
+114 = TAPKO Technologies
+115 = HDL
+116 = Uponor
+117 = se Lightmanagement AG
+118 = Arcus-eds
+119 = Intesis
+120 = Herholdt Controls srl
+121 = Zublin AG
+122 = Durable Technologies
+123 = Innoteam
+124 = ise GmbH
+125 = TEAM FOR TRONICS
+126 = CIAT
+127 = Remeha BV
+128 = ESYLUX
+129 = BASALTE
+130 = Vestamatic
+131 = MDT technologies
+132 = Warendorfer Küchen GmbH
+133 = Video-Star
+134 = Sitek
+135 = CONTROLtronic
+136 = function Technology
+137 = AMX
+138 = ELDAT
+139 = VIKO
+140 = Pulse Technologies
+141 = Crestron
+142 = STEINEL professional
+143 = BILTON LED Lighting
+144 = denro AG
+145 = GePro
+146 = preussen automation
+147 = Zoppas Industries
+148 = MACTECH
+149 = TECHNO-TREND
+150 = FS Cables
+151 = Delta Dore
+152 = Eissound
+153 = Cisco
+154 = Dinuy
+155 = iKNiX
+156 = Rademacher Geräte-Elektronik GmbH & Co. KG
+157 = EGi Electroacustica General Iberica
+158 = Ingenium
+159 = ElabNET
+160 = Blumotix
+161 = Hunter Douglas
+162 = APRICUM
+163 = TIANSU Automation
+164 = Bubendorff
+165 = MBS GmbH
+166 = Enertex Bayern GmbH
+167 = BMS
+168 = Sinapsi
+169 = Embedded Systems SIA
+170 = KNX1
+171 = Tokka
+172 = NanoSense
+173 = PEAR Automation GmbH
+174 = DGA
+175 = Lutron
+176 = AIRZONE – ALTRA
+177 = Lithoss Design Switches
+178 = 3ATEL
+179 = Philips Controls
+180 = VELUX A/S
+181 = LOYTEC
+182 = SBS S.p.A.
+183 = SIRLAN Technologies
+184 = Bleu Comm' Azur
+185 = IT GmbH
+186 = RENSON
+187 = HEP Group
+188 = Balmart
+189 = GFS GmbH
+190 = Schenker Storen AG
+191 = Algodue Elettronica S.r.L.
+192 = Newron System
+193 = maintronic
+194 = Vantage
+195 = Foresis
+196 = Research & Production Association SEM
+197 = Weinzierl Engineering GmbH
+198 = Möhlenhoff Wärmetechnik GmbH
+199 = PKC-GROUP Oyj
+200 = B.E.G.
+201 = Elsner Elektronik GmbH
+202 = Siemens Building Technologies (HK/China) Ltd.
+204 = Eutrac
+205 = Gustav Hensel GmbH & Co. KG
+206 = GARO AB
+207 = Waldmann Lichttechnik
+208 = SCHÜCO
+209 = EMU
+210 = JNet Systems AG
+214 = O.Y.L. Electronics
+215 = Galax System
+216 = Disch
+217 = Aucoteam
+218 = Luxmate Controls
+219 = Danfoss
+220 = AST GmbH
+222 = WILA Leuchten
+223 = b+b Automations- und Steuerungstechnik
+225 = Lingg & Janke
+227 = Sauter
+228 = SIMU
+232 = Theben HTS AG
+233 = Amann GmbH
+234 = BERG Energiekontrollsysteme GmbH
+235 = Hüppe Form Sonnenschutzsysteme GmbH
+237 = Oventrop KG
+238 = Griesser AG
+239 = IPAS GmbH
+240 = elero GmbH
+241 = Ardan Production and Industrial Controls Ltd.
+242 = Metec Meßtechnik GmbH
+244 = ELKA-Elektronik GmbH
+245 = ELEKTROANLAGEN D. NAGEL
+246 = Tridonic Bauelemente GmbH
+248 = Stengler Gesellschaft
+249 = Schneider Electric (MG)
+250 = KNX Association
+251 = VIVO
+252 = Hugo Müller GmbH & Co KG
+253 = Siemens HVAC
+254 = APT
+256 = HighDom
+257 = Top Services
+258 = ambiHome
+259 = DATEC electronic AG
+260 = ABUS Security-Center
+261 = Lite-Puter
+262 = Tantron Electronic
+263 = Yönnet
+264 = DKX Tech
+265 = Viatron
+266 = Nautibus
+268 = Longchuang
+269 = Air-On AG
+270 = ib-company GmbH
+271 = SATION
+272 = Agentilo GmbH
+273 = Makel Elektrik
+274 = Helios Ventilatoren
+275 = Otto Solutions Pte Ltd
+276 = Airmaster
+277 = HEINEMANN GmbH
+278 = LDS
+279 = ASIN
+280 = Bridges
+281 = ARBONIA
+282 = KERMI
+283 = PROLUX
+284 = ClicHome
+285 = COMMAX
+286 = EAE
+287 = Tense
+288 = Seyoung Electronics
+289 = Lifedomus
+290 = EUROtronic Technology GmbH
+291 = tci
+292 = Rishun Electronic
+293 = Zipato
+294 = cm-security GmbH & Co KG
+295 = Qing Cables
+296 = LABIO
+297 = Coster Tecnologie Elettroniche S.p.A.
+298 = E.G.E
+299 = NETxAutomation
+300 = tecalor
+301 = Urmet Electronics (Huizhou) Ltd.
+302 = Peiying Building Control
+303 = BPT S.p.A. a Socio Unico
+304 = Kanontec - KanonBUS
+305 = ISER Tech
+306 = Fineline
+307 = CP Electronics Ltd
+308 = Servodan A/S
+309 = Simon
+310 = GM modular pvt. Ltd.
+311 = FU CHENG Intelligence
+312 = NexKon
+313 = FEEL s.r.l
+314 = Not Assigned
+315 = Shenzhen Fanhai Sanjiang Electronics Co., Ltd.
+316 = Jiuzhou Greeble
+317 = Aumüller Aumatic GmbH
+318 = Etman Electric
+319 = EMT Controls
+320 = ZidaTech AG
+321 = IDGS bvba
+322 = dakanimo
+323 = Trebor Automation AB
+324 = Satel sp. z o.o.
+325 = Russound, Inc.
+326 = Midea Heating & Ventilating Equipment CO LTD
+327 = Consorzio Terranuova
+328 = Wolf Heiztechnik GmbH
+329 = SONTEC
+330 = Belcom Cables Ltd.
+331 = Guangzhou SeaWin Electrical Technologies Co., Ltd.
+332 = Acrel
+333 = Franke Aquarotter GmbH
+334 = Orion Systems
+335 = Schrack Technik GmbH
+336 = INSPRID
+337 = Sunricher
+338 = Menred automation system(shanghai) Co.,Ltd.
+339 = Aurex
+340 = Josef Barthelme GmbH & Co. KG
+341 = Architecture Numerique
+342 = UP GROUP
+343 = Teknos-Avinno
+344 = Ningbo Dooya Mechanic & Electronic Technology
+345 = Thermokon Sensortechnik GmbH
+346 = BELIMO Automation AG
+347 = Zehnder Group International AG
+348 = sks Kinkel Elektronik
+349 = ECE Wurmitzer GmbH
+350 = LARS
+351 = URC
+352 = LightControl
+353 = ShenZhen YM
+354 = MEAN WELL Enterprises Co. Ltd.
+355 = OSix
+356 = AYPRO Technology
+357 = Hefei Ecolite Software
+358 = Enno
+359 = Ohosure
+373 = ZF Friedrichshafen AG