Page 1 sur 1

Décodage température et batterie

Publié : 30 janv. 2025, 09:23
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

Re: Plugin MQTT FlyingDomotic seconde question

Publié : 31 janv. 2025, 16:32
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
      }
    }
  }
}

Re: Plugin MQTT FlyingDomotic seconde question

Publié : 31 janv. 2025, 16:52
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

Re: Plugin MQTT FlyingDomotic seconde question

Publié : 31 janv. 2025, 17:07
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).

Re: Plugin MQTT FlyingDomotic seconde question

Publié : 05 févr. 2025, 14:26
par patrice
bonjour et merci pour la correction sur les valeurs non trouvés :D :D :D