![]() |
Zigbee gateway integration - Printable Version +- Logic Machine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10) +--- Thread: Zigbee gateway integration (/showthread.php?tid=3320) |
RE: Zigbee gateway integration - hocine - 24.06.2025 Hello Anyone have an idea? thx (18.06.2025, 12:44)hocine Wrote: Hello, RE: Zigbee gateway integration - Daniel - 24.06.2025 Are the new devices the same as the other or different? Which interface do you use? RE: Zigbee gateway integration - hocine - 02.07.2025 (24.06.2025, 09:24)Daniel Wrote: Are the new devices the same as the other or different? Which interface do you use? there is a product that is not in the same version. is it possible to add a script so that the zigbee module continues to retrieve states despite certain products returning an error? I made a scipt to read the states. it works well but as soon as it encounters a problem with products it doesn't move on to the next product. RE: Zigbee gateway integration - Daniel - 02.07.2025 Share device information from both versions. RE: Zigbee gateway integration - hocine - 02.07.2025 (02.07.2025, 08:51)Daniel Wrote: Share device information from both versions.Here are the product profiles with the 2 different versions and here is also a copy of my script local zb = require('applibs.zigbee') -- Liste des thermostats Zigbee local thermostats = { { name = "TH Atelier – TEST", addr = "7cc6b6fffe0ad6c5" }, { name = "TH Atelier N°1", addr = "70ac08fffe06bdfb" }, { name = "TH Atelier N°2", addr = "dc8e95fffe0f8e74" }, { name = "TH Atelier N°3", addr = "70ac08fffe06aaa5" }, { name = "TH Accueil Volvo", addr = "7cc6b6fffe0ad8ce" }, { name = "TH Bureau chef d'atelier", addr = "7cc6b6fffe0acac" }, { name = "TH Stock pneus", addr = "70ac08fffe06ad6c" }, { name = "TH5 Thermostat Réfectoire atelier", addr = "048727fffe35b3df" } } -- Cluster Thermostat local cluster = 0x0201 local attrs = { 0x0000, 0x0011, 0x0012, 0x001C } -- Lecture des attributs pour un thermostat local function read_thermostat(th) print("\n--- Lecture pour : " .. th.name .. " ---") local success, res_or_err = pcall(function() return zb.cmdsync('getattributes', th.addr, cluster, attrs) end) if success then local res, err = res_or_err, nil if res then print("Attributs récupérés :") for attr_id, value in pairs(res) do if attr_id == 0x0000 or attr_id == 0x0011 or attr_id == 0x0012 then print(string.format(" Attribut ID 0x%04X : %.2f °C", attr_id, value / 100)) elseif attr_id == 0x001C then print(string.format(" Attribut ID 0x%04X : Mode système = %d", attr_id, value)) else print(string.format(" Attribut ID 0x%04X : %s", attr_id, tostring(value))) end end else print(" [!] Aucun attribut reçu – passage au thermostat suivant.") end else print(" [!] Erreur lors de la requête : " .. tostring(res_or_err)) end end -- Boucle principale for _, th in ipairs(thermostats) do read_thermostat(th) end Manufacturer: Schneider Electric Model: S520619 Firmware version: 001.000.053 Device type: Router Power source: Mains Receive when idle: Yes Endpoint 1 Profile: 260 Input clusters - Basic (0) - Identify (3) - Groups (4) - HvacThermostat (513) - HvacUserInterfaceCfg (516) - HaDiagnostic (2821) - ManuSpecificWiserEvent (65027) - ManuSpecificCycleTime (65302) - ManuSpecificHeatingCooling (65315) Output clusters - Identify (3) - Time (10) - Ota (25) - MsTemperatureMeasurement (1026) - MsOccupancySensing (1030) Endpoint 2 Profile: 260 Input clusters - Basic (0) - Identify (3) - MsTemperatureMeasurement (1026) Output clusters - Identify (3) Endpoint 4 Profile: 260 Input clusters - Basic (0) - Identify (3) - MsOccupancySensing (1030) Output clusters - Identify (3) Endpoint 5 Profile: 260 Input clusters - Basic (0) - Identify (3) - Groups (4) - SeMetering (1794) Endpoint 242 Profile: 41440 Output clusters - GreenPower (33) Reported attributes - currentsummdelivered: 0 - heatingstatus: true - localtemperature: 25.64 - occupiedcoolingsetpoint: 20.00 - occupiedheatingsetpoint: 18.00 - picoolingdemand: 0 - piheatingdemand: 0 - seopenwindowstatus: false - sepowerdivisor: 1000 - sepowermultiplier: 1 - systemmode: 4 Manufacturer: Schneider Electric Model: S520619 Firmware version: 001.000.071 Device type: Router Power source: Mains Receive when idle: Yes Endpoint 1 Profile: 260 Input clusters - Basic (0) - Identify (3) - Groups (4) - HvacThermostat (513) - HvacUserInterfaceCfg (516) - HaDiagnostic (2821) - ManuSpecificWiserEvent (65027) - ManuSpecificCycleTime (65302) - ManuSpecificHeatingCooling (65315) Output clusters - Identify (3) - Time (10) - Ota (25) - MsTemperatureMeasurement (1026) - MsOccupancySensing (1030) Endpoint 2 Profile: 260 Input clusters - Basic (0) - Identify (3) - MsTemperatureMeasurement (1026) Output clusters - Identify (3) Endpoint 4 Profile: 260 Input clusters - Basic (0) - Identify (3) - MsOccupancySensing (1030) Output clusters - Identify (3) Endpoint 5 Profile: 260 Input clusters - Basic (0) - Identify (3) - Groups (4) - SeMetering (1794) Endpoint 242 Profile: 41440 Output clusters - GreenPower (33) Reported attributes - currentsummdelivered: 0 - heatingstatus: false - localtemperature: 27.96 - occupiedheatingsetpoint: 19.00 - picoolingdemand: 0 - piheatingdemand: 0 - seopenwindowstatus: false - sepowerdivisor: 1000 - sepowermultiplier: 1 - systemmode: 0 RE: Zigbee gateway integration - RomansP - 02.07.2025 Hi, hocine Please give the output of your script. I think that it is possible that you receive some nil value and try to prepare some actions with nil, which causes the error RE: Zigbee gateway integration - hocine - 02.07.2025 (02.07.2025, 10:58)RomansP Wrote: Hi, hocineI have to go back to the site because in the backup I made I no longer have the zigbee logs. But is it possible to modify the zigbee software so that it doesn't get stuck when it receives nil information? RE: Zigbee gateway integration - RomansP - 02.07.2025 I think that the easiest is to just slightly modify your script, to check every value is not a nil And to check that you are doing everything correctly |