Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Forum dédié au ZigBee : objets, interfaces ...
Plugins DeConz et ZigBee2MQTT
Pour les questions concernant le plugin ZigBeeForDomoticZ, merci d'utiliser le forum spécifique en dessous.
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par Thorgal »

Ben je pense comme toi, car avec le fonctionnement initial ca ne peut pas deconner (enfin je vois pas comment), la batterie est interrogée lors de la decouverte, et des infos sont passée toute les 2 heures.
temperature.jpg
temperature.jpg (68.41 Kio) Consulté 6696 fois
Ca c'est le mien, il y a quelque chose qui change sur le tien ? (boutton "read" et presser le bouton pour "reveiller")
Mais ce qui m'etonne, c'est que vous ne soyez pas plus a avoir ce probleme.

Pour les logs, j'attend de les faire reagir d'abord, car meme si c'est pas critique comme bug, c'est franchement louche pour moi, et les logs sont assez lourd a generer. De mon coté j'utilise un sniffeur zigbee car les logs de deconz sont juste une horreur a lire. Apres je ne pense pas que ce soit un bug dur a reproduire de leur coté, si on arrive justement a trouver comment le reproduire.
Mais dans tout les cas vu que dans l'API tu as "null" en valeur, les logs de domoticz ne serviront pas.

Vu que je n'ai pas eu de mouvement sur mon issue, je me suis incruste sur celle la https://github.com/dresden-elektronik/d ... ssues/1451
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par papoo »

J'ai fais un script en dzvents pour regrouper les devices générés par le plugin deCONZ en un seul device Température + hygrométrie + baromètre.
il prend en charge l'ensemble des devices Température hygrométrie baromètre générés par le plugin deCONZ sans paramétrage autre que la convention de nommage suivante : une sonde température + hygrométrie + baromètre que nous appellerons pour l'exemple Douche.

le plugin génère 3 devices :
Température Douche.
hygrométrie Douche.
baromètre Douche.
on nomme ces 3 devices en :
$Température Douche
$Hygrométrie Douche
$Baromètre Douche

on créé manuellement un device virtuel THB nommé ... Douche
2019-04-27 10_48_16-Domoticz.png
2019-04-27 10_48_16-Domoticz.png (13.32 Kio) Consulté 6663 fois
il est automatiquement prise en charge par le script et sera mis à jour avec les données de $Température Douche, $hygrométrie Douche, $baromètre Douche qui n'apparaissent plus dans les onglets Température et météo de domoticz mais sont toujours actifs.

si vous respectez cette règle de nommage à chaque ajout de device, nul besoin de toucher au script, le nouveau device sera directement pris en charge

Code : Tout sélectionner

--[[
xiaomiTHBsensors.lua
author/auteur = papoo
update/mise à jour = 10/06/2019
création = 22/04/2019
https://pon.fr/dzvents-gestion-des-sondes-xiaomi-thb-avec-le-plugin-domoticz-deconz
https://github.com/papo-o/domoticz_scripts/blob/master/dzVents/scripts/xiaomiTHBsensors.lua
https://easydomoticz.com/forum/viewtopic.php?f=15&t=7593&p=69089#p69089
--]]


local scriptName = 'xiaomiTHBsensors'
local scriptVersion = '1.2'

return {
    active = true,
    logging = {
                    level    =   domoticz.LOG_DEBUG, -- Uncomment to override the dzVents global logging setting
                    -- level    =   domoticz.LOG_INFO,  -- Seulement un niveau peut être actif; commenter les autres
                    -- level    =   domoticz.LOG_ERROR,
                    -- level    =   domoticz.LOG_MODULE_EXEC_INFO,
         marker = scriptName..' '..scriptVersion
    },
    on = {
    devices = {'$Température*'}
    },

    execute = function(domoticz,sensor)
    
        local function logWrite(str,level)             -- Support function for shorthand debug log statements
            domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
        end

        local function levelForecast(pressure)
            pressure = tonumber(pressure)

            if type(pressure) ~= "number" then
                return domoticz.BARO_NOINFO
            elseif pressure < 1000 then 
                return domoticz.BARO_RAIN
            elseif pressure < 1020 then 
                return domoticz.BARO_CLOUDY
            elseif pressure < 1030 then 
                return domoticz.BARO_PARTLYCLOUDY
            else  
                return domoticz.BARO_SUNNY
            end
        end

        function deviceType(device)
            if device ~= nil then
                if domoticz.devices(device).deviceType:upper() == "GENERAL" then
                    return domoticz.devices(device).deviceSubType
                else
                    return domoticz.devices(device).deviceType
                end
            else
                return nil
            end
        end

        local function UpdateSensor(sensor)
            TemperatureSensor = sensor.name
            sensor = string.gsub (sensor.name, "$Température ", "")
            t = domoticz.utils.round(domoticz.devices(TemperatureSensor).temperature,1)
            logWrite(t)

            logWrite(deviceType(sensor))

            if domoticz.devices("$Humidité "..sensor) ~= nil then 
                HumiditySensor = tostring("$Humidité "..sensor) 
                if domoticz.devices(HumiditySensor).humidity ~= nil then
                    h = domoticz.devices(HumiditySensor).humidity
                    hs = domoticz.devices(HumiditySensor).humidityStatusValue
                    logWrite(h)
                    logWrite(hs)
                end

            end
            if deviceType(sensor) == "Temp + Humidity + Baro" then
                if domoticz.devices("$Baromètre "..sensor) ~= nil then 
                    BarometreSensor = tostring("$Baromètre "..sensor) 
                    if domoticz.devices(BarometreSensor).barometer ~= nil then
                        p = tonumber(domoticz.devices(BarometreSensor).barometer)
                        logWrite(p)
                    end
                end
            end

            if h ~= nil and p ~= nil and domoticz.devices(sensor) then
                domoticz.devices(sensor).updateTempHumBaro(t, h, hs, p, levelForecast(p))
                logWrite("mise à jour du device "..domoticz.devices(sensor).name)
           elseif h ~= nil and p == nil and domoticz.devices(sensor) then
                domoticz.devices(sensor).updateTempHum(t, h, hs)
                logWrite("mise à jour du device "..domoticz.devices(sensor).name)
           end
        end

        UpdateSensor(sensor)

    end
}
Dernière modification par papoo le 10 juin 2019, 22:02, modifié 2 fois.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par Thorgal »

Mais y a plein de scripts terribles sur ton github. Franchement ca va me servir.

Sinon en passant, si tu as tjour le bug de batterie ? Les infos de ton appareil m'interessent encore. Quelqu'un a le meme prb que toi, et ca marcherait avec une vielle version de deconz, donc le prb serait peut etre de leur coté plutot qu'une histoire de modification de fonctionnement.

Sinon une question perso, il y a des differences de perf entre le LUA et Dzevent ? Car je me suis deja demandé si ca valait le coup de convertir mes scripts ?
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Zigbee plugin, pont deCONZ (passerelle universelle Zigbee)

Message par papoo »

Thorgal a écrit : 27 avr. 2019, 15:31 Sinon en passant, si tu as tjour le bug de batterie, les infos de ton appareil m'interessent encore. Quelqu'un a le meme prb que toi, et ca marcherait avec une vielle version de deconz, donc le prb serait peut etre de leur coté plutot qu'une histoire de modification de fonctionnement.
j'ai toujours le bug
pour rappel c'est avec la conbee2
que dois-je faire pour te transmettre ce que tu souhaites?
Thorgal a écrit : 27 avr. 2019, 15:31 Sinon une question perso, il y a des differences de perf entre le LUA et Dzevent ? Car je me suis deja demandé si ca valait le coup de convertir mes scripts ?
il semblerait oui.
apparemment, les scripts lua s’exécutent tous en même temps alors que le framework dzvents les enchaînerait les uns après les autres et cela n'impacterait pas aussi la mémoire de la même façon.
en plus de cela, de mon avis, moins d'utilisation de fonctions perso, le framework etant très complet (fonction round par exemple), la possibilité d'utiliser directement les noms des devices avec les caractères génériques (comme dans ce script) mais aussi la possibilité d'enregistrer des données pour faire des moyennes et les global_datas.
du coup les scripts sont bien moins longs, donc plus lisible, avec plus de fonctionnalités
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par Thorgal »

Le meme que celui la

Image

Enfin, si tu as des differences avec le mien.

Sinon, c'est clair que niveau fonction, y a un manque dans le LUA, j'ai justement du refaire ma fonction round() ^^.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par papoo »

J’accède comment à ces infos ?
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par Thorgal »

Dans deCONZ, "cluster info" apres selctionne le cluster 0000 "basic".
Elle devrait etre vide, suffit de cliquer sur le boutton "Read", et de reeiller le capteur en appuyant sur le bouton brievement.

En passant dans "Node info" tu as "Power level" qui devrait etre a 100% ou "False" si ca deconne ici.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par papoo »

2019-04-28 11_04_26-deCONZ - ConBee II (__._COM3).png
2019-04-28 11_04_26-deCONZ - ConBee II (__._COM3).png (19.51 Kio) Consulté 6632 fois
2019-04-28 11_05_18-deCONZ - ConBee II (__._COM3).png
2019-04-28 11_05_18-deCONZ - ConBee II (__._COM3).png (19.97 Kio) Consulté 6632 fois
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par Thorgal »

Il manque la ligne que j'esperait ^^.
"HW Version" je pense que c'est le firmware du capteur.

Dans "Node info" tu as "Power level" avec une valeur ? (cette valeur est presente par contre, pas besoin de te faire chier a reveiller le capteur)
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Zigbee plugin, pont deCONZ (passelle universelle Zigbee)

Message par papoo »

oui c'est à 100% alors qu'il est à 78% via la gateway xiaomi
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Répondre