Décodage température et batterie

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

Décodage température et batterie

Message par patrice »

Bonjour à tous
Je pense que je ne comprends pas la config du plugin Mqtt

A savoir : comment décoder temperature et batterie dans le topic object dans cette branche

Code : Tout sélectionner

gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up
avec des datas qui arrivent sous cette forme

Code : Tout sélectionner

{
  "deduplicationId": "0a582d6a-922d-4bd5-8fe6-8bc62e6922b8",
  "time": "2025-01-30T08:02:09.501222406+00:00",
  "deviceInfo": {
    "tenantId": "52f14cd4-c6f1-4fbd-8f87-4025e1d49242",
    "tenantName": "SenseCAP",
    "applicationId": "9ffd554b-281a-4f54-8955-113858213e5c",
    "applicationName": "BFPLora",
    "deviceProfileId": "d0a7979c-4e44-4477-9984-d412867aa9ae",
    "deviceProfileName": "Congels -80",
    "deviceName": "Capteur Bloc9  serre2 ",
    "devEui": "f1ac4afbc81c39b0",
    "tags": {}
  },
  "devAddr": "012303cd",
  "adr": true,
  "dr": 5,
  "fCnt": 24,
  "fPort": 1,
  "confirmed": false,
  "data": "dDoyNC4yNSB2OjQuMzQ=",
  "object": {
    "batterie": 4.34,
    "temperature": 24.25
  },
  "rxInfo": [
    {
      "gatewayId": "2cf7f11054200049",
      "uplinkId": 3714373890,
      "rssi": -113,
      "snr": -6,
      "channel": 7,
      "location": {},
      "context": "YSZjug==",
      "metadata": {
        "region_config_id": "EU_863_870_TTN",
        "region_common_name": "EU868"
      },
      "crcStatus": "CRC_OK"
    }
  ],
  "txInfo": {
    "frequency": 867900000,
    "modulation": {
      "lora": {
        "bandwidth": 125000,
        "spreadingFactor": 7,
        "codeRate": "CR_4_5"
      }
    }
  }
}
A mon avis je ne pige pas la syntaxe d'ecriture

Merci de votre aide pour me remettre sur les rails

Patrice
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 FlyingDomotic seconde question

Message par Flying Domotic »

Le topic est "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up"

Les items sont "object/batterie" et "object/temperature".

J'ai ajoute --> et le nom du l'item devant chaque ligne de donnée. Ça devrait aider à comprendre.

Code : Tout sélectionner

  "time": "2025-01-30T08:02:09.501222406+00:00", --> time
  "deviceInfo": {
    "tenantId": "52f14cd4-c6f1-4fbd-8f87-4025e1d49242", --> deviceInfo/tenantId
    "tenantName": "SenseCAP", --> deviceInfo/tenantName
    "applicationId": "9ffd554b-281a-4f54-8955-113858213e5c", --> deviceInfo/applicationId
    "applicationName": "BFPLora", --> deviceInfo/applicationName
    "deviceProfileId": "d0a7979c-4e44-4477-9984-d412867aa9ae", --> deviceInfo/deviceProfileId
    "deviceProfileName": "Congels -80", --> deviceInfo/deviceProfileName
    "deviceName": "Capteur Bloc9  serre2 ", --> deviceInfo/deviceName
    "devEui": "f1ac4afbc81c39b0", --> deviceInfo/devEui
    "tags": {} --> deviceInfo/tags
  },
  "devAddr": "012303cd", --> devAddr
  "adr": true, --> adr
  "dr": 5, --> dr
  "fCnt": 24, --> fCnt
  "fPort": 1, --> fPort
  "confirmed": false, --> confirmed
  "data": "dDoyNC4yNSB2OjQuMzQ=", --> data
  "object": {
    "batterie": 4.34, --> object/batterie
    "temperature": 24.25 --> object/temperature
  },
  "rxInfo": [
    {
      "gatewayId": "2cf7f11054200049", --> rxinfo/gatewayId
      "uplinkId": 3714373890, --> rxinfo/uplinkId
      "rssi": -113, --> rxinfo/rssi
      "snr": -6, --> rxinfo/snr
      "channel": 7, --> rxinfo/channel
      "location": {}, --> rxinfo/location
      "context": "YSZjug==", --> rxinfo/context
      "metadata": {
        "region_config_id": "EU_863_870_TTN", --> rxinfo/metadata/region_config_id
        "region_common_name": "EU868" --> rxinfo/metadata/region_common_name
      },
      "crcStatus": "CRC_OK" --> rxinfo/crcStatus
    }
  ],
  "txInfo": {
    "frequency": 867900000, --> txinfo/frequency
    "modulation": {
      "lora": {
        "bandwidth": 125000, --> txinfo/modulation/lora/bandwidth
        "spreadingFactor": 7, --> txinfo/modulation/lora/spreadingFactor
        "codeRate": "CR_4_5" --> txinfo/modulation/lora/codeRate
      }
    }
  }
}
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Plugin MQTT FlyingDomotic seconde question

Message par patrice »

yes!!
merci donc je ne me suis pas trop raté avec ca , n'est ce pas ??

Code : Tout sélectionner


        "B9S2_Temp": {
                "topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
                "key": "B9S2_Temp",
                "type": "80", "subtype": "5", "switchtype": "0",
                "mapping": {"item": "object/temperature"}
        },
        "B9S2_Volts": {
                "topic": "gateway/2cf7f11054200049/device/f1ac4afbc81c39b0/event/up",
                "key": "B9S2_volts",
                "type": "243", "subtype": "8", "switchtype": "0",
                "mapping": {"item": "object/batterie"}
        },

MAIS
parfois (?!) (en cours d'investigation) mon chirpstack ne me renvoie pas de bloc object: et le plugin décode des 0 dans les temp et batterie ce qui seme le boxon dans Domoticz

C'est ce qui faisais que je me demandais si du coup j'avais bien pigé comment marche le plugin
Voici un exemple de ce que je recois et ou ca se passe mal car object est {}.

Code : Tout sélectionner

{
  "deduplicationId": "e331af88-0fb1-4a5f-a250-2d9ba1962118",
  "time": "2025-01-31T15:39:06.446281462+00:00",
  "deviceInfo": {
    "tenantId": "52f14cd4-c6f1-4fbd-8f87-4025e1d49242",
    "tenantName": "SenseCAP",
    "applicationId": "9ffd554b-281a-4f54-8955-113858213e5c",
    "applicationName": "BFPLora",
    "deviceProfileId": "42a2c9fd-f6d5-4fdf-b770-311daa23850e",
    "deviceProfileName": "Temp+Hum",
    "deviceName": "test",
    "devEui": "fce501daf1132337",
    "tags": {}
  },
  "devAddr": "0123b9d2",
  "adr": true,
  "dr": 5,
  "fCnt": 3,
  "fPort": 0,
  "confirmed": false,
  "data": "",
  "object": {},
  "rxInfo": [
    {
      "gatewayId": "2cf7f11054200049",
      "uplinkId": 824561315,
      "rssi": -105,
      "snr": 1.5,
      "channel": 4,
      "location": {},
      "context": "BQLfyw==",
      "metadata": {
        "region_config_id": "EU_863_870_TTN",
        "region_common_name": "EU868"
      },
      "crcStatus": "CRC_OK"
    }
  ],
  "txInfo": {
    "frequency": 867300000,
    "modulation": {
      "lora": {
        "bandwidth": 125000,
        "spreadingFactor": 7,
        "codeRate": "CR_4_5"
      }
    }
  }
}
Et Domoticz affiche (c'es

Code : Tout sélectionner

2025-01-31 15:46:52.278 Error: MQTTMAPP: Can't find >object/temperature< in >{'deduplicationId': '4352e231-d80c-4a4c-8a0e-215a61b76db8', 'time': '2025-01-31T14:46:51.777926120+00:00', 'deviceInfo': {'tenantId': '52f14cd4-c6f1-4fbd-8f87-4025e1d49242', 'tenantName': 'SenseCAP', 'applicationId': '9ffd554b-281a-4f54-8955-113858213e5c', 'applicationName': 'BFPLora', 'deviceProfileId': 'd0a7979c-4e44-4477-9984-d412867aa9ae', 'deviceProfileName': 'Congels -80', 'deviceName': 'Capteur Bloc9 serre2 ', 'devEui': 'f1ac4afbc81c39b0', 'tags': {}}, 'devAddr': '01231925', 'adr': True, 'dr': 5, 'fCnt': 60, 'fPort': 0, 'confirmed': False, 'data': '', 'object': {}, 'rxInfo': [{'gatewayId': '2cf7f11054200049', 'uplinkId': 3985646337, 'rssi': -112, 'snr': -2.0, 'channel': 7, 'location': {}, 'context': 'hnQ3VA==', 'metadata': {'region_common_name': 'EU868', 'region_config_id': 'EU_863_870_TTN'}, 'crcStatus': 'CRC_OK'}], 'txInfo': {'frequency': 867900000, 'modulation': {'lora': {'bandwidth': 125000, 'spreadingFactor': 7, 'codeRate': 'CR_4_5'}}}}<

2025-01-31 15:46:52.280 Error: MQTTMAPP: Can't find >object/batterie< in >{'deduplicationId': '4352e231-d80c-4a4c-8a0e-215a61b76db8', 'time': '2025-01-31T14:46:51.777926120+00:00', 'deviceInfo': {'tenantId': '52f14cd4-c6f1-4fbd-8f87-4025e1d49242', 'tenantName': 'SenseCAP', 'applicationId': '9ffd554b-281a-4f54-8955-113858213e5c', 'applicationName': 'BFPLora', 'deviceProfileId': 'd0a7979c-4e44-4477-9984-d412867aa9ae', 'deviceProfileName': 'Congels -80', 'deviceName': 'Capteur Bloc9 serre2 ', 'devEui': 'f1ac4afbc81c39b0', 'tags': {}}, 'devAddr': '01231925', 'adr': True, 'dr': 5, 'fCnt': 60, 'fPort': 0, 'confirmed': False, 'data': '', 'object': {}, 'rxInfo': [{'gatewayId': '2cf7f11054200049', 'uplinkId': 3985646337, 'rssi': -112, 'snr': -2.0, 'channel': 7, 'location': {}, 'context': 'hnQ3VA==', 'metadata': {'region_common_name': 'EU868', 'region_config_id': 'EU_863_870_TTN'}, 'crcStatus': 'CRC_OK'}], 'txInfo': {'frequency': 867900000, 'modulation': {'lora': {'bandwidth': 125000, 'spreadingFactor': 7, 'codeRate': 'CR_4_5'}}}}<


car en effet on ne trouve pas les object/temperature et les autres item

Tu as un truc sous le coude pour empecher l'integration si items pas trouvés ??
J'ai du mal a faire débugger les ESP32 et Chirpstack qui sont à l'origine de la transmission lora par mes collègues , alors j'aimerai bien le regler avec mon Domotic favori


Merci et désolé de la prose à rallooooonnngggeee :o

Bonne soirée
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 FlyingDomotic seconde question

Message par Flying Domotic »

Il est sûr que si les données en sont pas transmises, il va être dur de les récupérer ...

S'il y a besoin de valider les données, alors le plus simple est certainement de récupérer le contenu de l'item "object" dans un dispositif Domoticz de type "string", puis de l'analyser par un script LUA ou dzVents pour n'injecter que des valeurs qui passent le contrôle dans des dispositifs virtuels (et éventuellement râler si l'erreur persiste trop longtemps).
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Plugin MQTT FlyingDomotic seconde question

Message par patrice »

bonjour et merci pour la correction sur les valeurs non trouvés :D :D :D
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