Capteur de température

Sous forum dédié au plugin MQTTMAPPER de FlyingDomotic
Merci de poster vous questions concernant ce plugin ici et non pas dans le forum MQTT directement
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Capteur de température

Message par patrice »

Bonjour
Aprés avoir installé le plugin de FlyingDomotic pour faire de la translation MQTT vers domoticz https://github.com/FlyingDomotic/domoti ... me-ov-file

J'ai configuré un petit fichier json d'après ce que j'ai compris du plugin mais j'ai une erreur qui remonte dans les logs de Domoticz

Code : Tout sélectionner

2024-04-03 13:34:08.639 Error: MQTTMAPP: Error loading /home/patrice/domoticz/plugins/MqttMapper/MqttMapper.json - JSONDecodeError at line 243 of /home/patrice/domoticz/plugins/MqttMapper/plugin.py: Extra data: line 1 column 9 (char 8)
Voici mon fichier json

Code : Tout sélectionner

"Temp1": {
        "topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
        "type": "80", "subtype": "5", "switchtype": "0",
        "mapping": {"item": "temperature", "multiplier": 0.1}
    }
Je veux alimenter le dispositif Temp1 de domoticz d'apres le contenu de ceci qui est dans la branche "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up"

Code : Tout sélectionner

{
  "deduplicationId": "c8e4953b-7579-4bea-9e35-d3561e50c044",
  "time": "2024-04-03T11:46:30.312682534+00:00",
  "deviceInfo": {
    "tenantId": "52f14cd4-c6f1-4fbd-8f87-4025e1d49242",
    "tenantName": "SenseCAP",
    "applicationId": "b6de024f-a3a5-41df-825e-541ca8730245",
    "applicationName": "BFPLora",
    "deviceProfileId": "563c992b-5a6c-4f94-8207-ae7cfb30ff22",
    "deviceProfileName": "BfpLoraDEvProfile",
    "deviceName": "Capteur2",
    "devEui": "f1ac4afbc81c39b0",
    "tags": {}
  },
  "devAddr": "5bb1133d",
  "adr": true,
  "dr": 5,
  "fCnt": 204,
  "fPort": 1,
  "confirmed": false,
  "data": "LTIwMQ==",
  "object": {
    "temperature": "-201"
  },
  "rxInfo": [
    {
      "gatewayId": "2cf7f11054200049",
      "uplinkId": 1046787505,
      "rssi": -69,
      "snr": 11.2,
      "channel": 2,
      "rfChain": 1,
      "location": {},
      "context": "FDojhA==",
      "metadata": {
        "region_common_name": "EU868",
        "region_config_id": "EU_863_870_TTN"
      },
      "crcStatus": "CRC_OK"
    }
  ],
  "txInfo": {
    "frequency": 868500000,
    "modulation": {
      "lora": {
        "bandwidth": 125000,
        "spreadingFactor": 7,
        "codeRate": "CR_4_5"
      }
    }
  }
}
Et question subsidiaire comment je peux retirer le rssi de rxinfo ?

(fin de la question du mauvais élève)
et merci de vos réponses
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Plugin MQTT de FlyingDomotic

Message par Flying Domotic »

Bonjour,

Y'a pas que des mauvais élèves, y'a aussi de mauvais profs ;-)

Et celui qui pose une question pour savoir n'est pas complètement mauvais, il a déjà le bon réflexe ;-)

En ce qui concerne la question, il manque les "{" et "}" de début/fin de fichier JSON. La bonne version serait :

Code : Tout sélectionner

{
	"Temp1": {
		"topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
		"type": "80", "subtype": "5", "switchtype": "0",
		"mapping": {"item": "object/temperature", "multiplier": 0.1}
	}
}
Noter que "temperature" dans le message associé au topic n'est pas à la racine, mais dans la branche "object", ce qui fait que la ligne "mapping" a été modifiée en conséquence.

Pour le rssi, de la façon dont il est décrit (une liste dans un dictionaire), il faut que je modifie le plugin pour qu'il arrive à aller le chercher.

Stay tuned!
Flying Domotic
Messages : 772
Inscription : 10 mars 2020, 15:26

Re: Plugin MQTT de FlyingDomotic

Message par Flying Domotic »

La dernière version (1.0.28) permet maintenant de rechercher des valeurs dans une liste. On peut soit préciser un élément de la liste (de 1 à n), soit spécifier "*" pour chercher dans tous les éléments.

Pour récupérer le rssi, essayer la configuration suivante :

Code : Tout sélectionner

{
	"Temp1": {
		"topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
		"key": "temp1",
		"type": "80", "subtype": "5", "switchtype": "0",
		"mapping": {"item": "object/temperature", "multiplier": 0.1}
	},
	"Rssi1": {
		"topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
		"key": "rssi1",
		"type": "243", "subtype": "31", "switchtype": "0",
		"options": {"Custom":"1;"},
		"mapping": {"item": "rxInfo/*/rssi"}
	}
}
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Plugin MQTT de FlyingDomotic

Message par patrice »

Bonjour
Flying Domotic a écrit : 03 avr. 2024, 16:37
Y'a pas que des mauvais élèves, y'a aussi de mauvais profs ;-)
Ah oui sans doute mais la en l'occurrence c'est moi le mauvais élève qui ait oublié les {} :D

En tout cas merci pour ta rapidité de réaction concernant mon bug et aussi pour ton ajout des chaines dans une liste , ca marche du feu de Dieu (bizarre cette expression d'ailleurs)

Je vais proposer ton plugin aux Oscar d'or du plugin Domoticz avec celui de Pipiche...


Merci encore et je continue à trifouiiler dans les json de ma LoRa Gateway et de mes ESP, et comme je ne comprends pas bien vite je risque de revenir avec une nouvelle question
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Répondre