Lägg till kontext i avläsningarna

Kolla upp tillgångens kalibreringsoffset och lägg till den i varje mätning. Detta exempel lägger till en offset av 2 till värdet , 20vilket ger correctedValue: 22.

Förutsättningar

Fyll i förutsättningarna för det delade exemplet, inklusive default-profilen och factory-mqtt-slutpunkten. Använd YAML för felsökning och Azure CLI eller Bicep för produktionshantering.

Använd den befintliga inbyggda registerslutpunkten med namnet default. För miljövariablerna, sätt AIO_INSTANCE_NAME och RESOURCE_GROUP till namnen på din befintliga instans och resursgrupp. För Bicep anger du också CUSTOM_LOCATION_NAME till namnet på din befintliga anpassade plats.

Synkronisera state-store-skrivarklockan med brokern. Bekräfta ett lyckat svar från +OK när kalibreringsposten fylls i innan du publicerar avläsningar.

Konfigurera en kalibreringsuppslagstabell

Diagram över en avläsning med värde 20 som går in i en mappningstransform. Transformen slår upp offset 2 för samma resurs i tillståndslagringen och genererar korrigeratVärde 22.

Använd enrichment för att läsa kalibreringsposter som en applikation håller i state store. Uppslagningen använder den kontext som finns tillgänglig under bearbetningen, inte nödvändigtvis den kontext som var giltig när avläsningen togs. I det fallet, matcha kontexten efter tidsstämpel.

Distribuera kalibreringsgrafen:

  1. I vyn Operations öppnar du din instans och väljer Dataflödesgraf>Skapa dataflödesgraf.

  2. Ge grafen namnet add-calibration och välj profilen default.

  3. Lägg till en källa med namnet source med endpoint factory-mqtt och topic factory/readings.

  4. Lägg till en karttransform med namnet calibrate, med hjälp av azureiotoperations/graph-dataflow-map:1.0.0 från registerslutpunkten default.

  5. I karttransformkonfigurationen, lägg till en datamängd med State store-nyckelfactory-calibration as calibration, Match-indata$source.assetId och $context.assetId i den ordningen, samt Match-uttrycket$1 == $2.

  6. Lägg till dessa kartregler:

    Indata i ordning Output Expression
    * * Lämna tom
    value, $context(calibration).offset correctedValue $1 + $2
  7. Lägg till en destination namngiven destination med endpoint factory-mqtt och topic factory/calibrated.

  8. Koppla source → calibrate → destination, välj sedan Spara för att distribuera den aktiverade grafen.

Innan du skickar avläsningar, skriv denna syntetiska NDJSON-post under state-store-nyckeln factory-calibration. Använd state-store-proceduren SET i Fyll state store-nyckeln.

{"assetId":"line-1","offset":2}

Publicera denna läsning till factory/readings:

{"assetId":"line-1","value":20}

Förvänta dig denna payload på factory/calibrated. Kartan bevarar de ursprungliga fälten och lägger till 20 + 2:

{"assetId":"line-1","value":20,"correctedValue":22}

Denna graf förutsätter en matchande kalibreringspost med numerisk offset. Innan du använder det i produktion, definiera hur man hanterar saknad kontext och övervaka uppslagsfel; exemplet inkluderar inte en rutt för ogiltig kontext.