Changer le JSON

Bonjour,

J’ai reçu 2 prises chinoises qui sont censées remonter la puissance.
Modèle : _TZ3000_gjnozsaz

Le plugin Deconz reconnait comme une prise ON/OFF pas plus. En cherchant sur le Net, j’ai récupéré le JSON modifié qui semble récupérer la puissance. Par contre débutant la dessus j’imagine que je dois le placer qq part ici pour qu"il soit lu ?

root@Ubuntu-Jeedom:/var/www/html/plugins/deconz/core# ls
ajax  class  config  i18n  js  php
root@Ubuntu-Jeedom:/var/www/html/plugins/deconz/core# 

Le Json pour ceux qui souhaitent

{
  "schema": "devcap1.schema.json",
  "manufacturername": "_TZ3000_gjnozsaz",
  "modelid": "TS011F",
  "vendor": "_TZ3000_gjnozsaz",
  "product": "TS011F",
  "sleeper": false,
  "status": "Gold",
  "path": "/devices/_TZ3000_gjnozsaz.json",
  "subdevices": [
    {
      "type": "$TYPE_ON_OFF_PLUGIN_UNIT",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "state/alert",
          "description": "The currently active alert effect.",
          "default": "none"
        },
        {
          "name": "state/on",
          "refresh.interval": 5
        },
        {
          "name": "state/reachable"
        }
      ]
    },
    {
      "type": "$TYPE_CONSUMPTION_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0702"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/consumption",
          "refresh.interval": 300
        },
        {
          "name": "state/lastupdated"
        }
      ]
    },
    {
      "type": "$TYPE_POWER_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0b04"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/current",
          "refresh.interval": 300
        },
        {
          "name": "state/lastupdated"
        },
        {
          "name": "state/power",
          "refresh.interval": 30
        },
        {
          "name": "state/voltage",
          "refresh.interval": 300
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0006",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x10",
          "min": 1,
          "max": 1800
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0702",
      "report": [
        {
          "at": "0x0000",
          "dt": "0x25",
          "min": 1,
          "max": 300,
          "change": "0x0000000A"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0B04",
      "report": [
        {
          "at": "0x0505",
          "dt": "0x21",
          "min": 1,
          "max": 500,
          "change": "0x00000003"
        },
        {
          "at": "0x0508",
          "dt": "0x21",
          "min": 1,
          "max": 300,
          "change": "0x0000000F"
        },
        {
          "at": "0x050B",
          "dt": "0x29",
          "min": 1,
          "max": 300,
          "change": "0x00000003"
        }
      ]
    }
  ]
}


Merci

1 « J'aime »

Le json que tu as récupéré est un fichier ddf.
il faut le placer dans /home/<DECONZUSER>/.local/share/dresden-elektronik/deCONZ/devices
où est l’utilisateur qui lance deconz (voir dans /home quel est ce dernier sur votre box domotique).

C’est dans la doc deCONZ :
All DDF provided directly with deCONZ typically reside in /usr/share/deCONZ/devices/on a Linux system and are loaded first. However, files residing in the home directory of the user running deCONZ (e.g./home/deconzuser/.local/share/dresden-elektronik/deCONZ/devices) will override the pre-packaged files to allow users to amend and keep their own files if desired.

Merci Yves.
J’ai du mal à comprendre qui peut etre le deconzuser.
J’ai dans /home, 3 rep et un seul de ces rep est un user :

root@Ubuntu-Jeedom:/home# ls
jc  motion  samba
root@Ubuntu-Jeedom:/home# cd jc/
root@Ubuntu-Jeedom:/home/jc# ls
install.sh
root@Ubuntu-Jeedom:/home/jc# ls .*
.bash_history  .bash_logout  .bashrc  .profile  .sudo_as_admin_successful

.:
install.sh

..:
jc  motion  samba

.cache:
motd.legal-displayed

.gnupg:
private-keys-v1.d
root@Ubuntu-Jeedom:/home/jc# 

J’ai sans doute pas compris qq chose ?

Merci

les répertoires avec le préfixe . n’apparaissent pas au listing, c’est la manière de les cacher.

tu dois taper directement :

cd /home/jc/.local/share

ensuite si les sous-arbo n’existent pas il faut les créer

1 « J'aime »

pour voir les répertoires masqués il faut exécuter la commande
ls -la

et voici :slight_smile:

jc@Ubuntu-Jeedom:/home$ ls
jc  motion  samba
jc@Ubuntu-Jeedom:/home$ ls -la
total 20
drwxr-xr-x  5 root   root  4096 août  22 15:19 .
drwxr-xr-x 22 root   root  4096 févr.  7  2022 ..
drwxr-xr-x  4 jc     jc    4096 août  11  2020 jc
drwxr-xr-x  4 motion root  4096 août  22 15:19 motion
drwxr-xr-x  2 samba  samba 4096 juil. 19  2021 samba
jc@Ubuntu-Jeedom:/home$ cd /home/jc/.local/share
-bash: cd: /home/jc/.local/share: Aucun fichier ou dossier de ce type
jc@Ubuntu-Jeedom:/home$ 

1 « J'aime »

il te faut exécuter la commande dans ton dossier « jc », là tu l’as lancée a la racine de « home »

mince … mais je n’ai pas non plus de dossier pertinent:

jc@Ubuntu-Jeedom:/home$ cd jc
jc@Ubuntu-Jeedom:~$ ls -la
total 48
drwxr-xr-x 4 jc   jc    4096 août  11  2020 .
drwxr-xr-x 5 root root  4096 août  22 15:19 ..
-rw------- 1 jc   jc      49 août  22 17:26 .bash_history
-rw-r--r-- 1 jc   jc     220 févr. 12  2020 .bash_logout
-rw-r--r-- 1 jc   jc    3771 févr. 12  2020 .bashrc
drwx------ 2 jc   jc    4096 févr. 12  2020 .cache
drwx------ 3 jc   jc    4096 août  11  2020 .gnupg
-rwxr-xr-x 1 root root 15489 févr. 12  2020 install.sh
-rw-r--r-- 1 jc   jc     807 févr. 12  2020 .profile
-rw-r--r-- 1 jc   jc       0 févr. 12  2020 .sudo_as_admin_successful
jc@Ubuntu-Jeedom:~$ 

Pour ma part, je suis passé par WinSCP afin d’accéder a ce dossier et de créer l’arborescence désirée « /dresden-elektronik/deCONZ/devices »

Capture2

en mettant les droits evidemment sur mon user (et pas sur « root »)

mhmh pas de chance la:

Je crois que mon user est le root en fait :wink:

1 « J'aime »

C’est bon:

root@Ubuntu-Jeedom:~/.local/share/dresden-elektronik/deCONZ/devices# ls -l
total 8
-rw-r--r-- 1 root root 4303 août  26 12:12 _TZ3000_gjnozsaz.json
root@Ubuntu-Jeedom:~/.local/share/dresden-elektronik/deCONZ/devices# 

J’imagine que je dois recréer la détection, mais comment le système va savoir qu’il faut aller lire le json ?

je débute :slight_smile:

1 « J'aime »

Arrête le démon Deconz puis relance le. Cela aura pour effet de relancer deCONZ qui ira lire le fichier DDF au bon endroit.

j’en suis un peu au meme point que toi avec ces prises là… même avec le DDF et le relancement de deCONZ, pas de reconnaissance de la puissance (idem apres exclusion et inclusion) =/

J’ai fait ce que Yves a dit et par miracle la puissance est apparue. Reste à voir si cela fonctionne vraiment :slight_smile:

Tant mieux, moi je continue les recherches pour afficher ces infos qui font leur caprice chez moi ^^

En général quand ça marche pas :

  • Trop vielle version deconz, sans support des DDFs.
  • Le status du DDF n’est pas en « Gold ».
  • Appareil différent, il y a gavé de clones, bien vérifier le model id et le manufacture name.
  • DDF placé au mauvais endroit pour être utilisé automatiquement.
  • Conflit de DDF si on bricole trop.

En tout cas merci pour le post, je pense qu’il va servir de tuto ^^.

1 « J'aime »

Effectivement, ton post m’a mis la puce a l’oreille concernant l’endroit du DDF… en effet, Jeedom exécute deCONZ en root et non pas avec le user de debian… du coup je n’avais pas mis le DDF dans le bon dossier qui est « scanné » par deCONZ :exploding_head:
j’ai bien les remontées de puissance désormais :+1:
Merci à toi @HugoVal11 :kissing_heart:

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.