Utility-translatorer
Utility-gruppen är det som blir kvar när de övriga kategorierna har tagit det de beskriver: translatorer som konfigurerar en annan translator, avkodar ett generiskt format, korrigerar en uppströms translator, eller finns till för att läsas som genomarbetade exempel.
Att avkoda Modbus
Modbus är inte ett självbeskrivande format. Samma byte är en temperatur, ett flöde eller ett serienummer beroende på en registerlayout som bara installatören känner till, så en generisk avkodare behöver få den layouten.
| Translator | Roll |
|---|---|
modbus | Den generiska avkodaren. Tar en hex-kodad Modbus-payload och avkodar den enligt registerlayouten i contextMap.modbusRegisters. Kedjad, typiskt bakom en Watteco- eller Enginko-brygga för Modbus över LoRaWAN, men den fungerar med varje källa som producerar en sammanhängande hex-payload |
Varje register i modbusRegisters beskrivs av ett fieldName, en dataType av float, int eller
uint, en length på 1 för ett 16-bitars register eller 2 för 32-bitars, en scale-multiplikator,
och en encoding av BE eller LE. Byteordningen spelar roll och går inte att gissa: att få den fel
producerar siffror snarare än fel.
Till skillnad från resten av plattformen läser modbus sin layout från kontextuella parametrar i
stället för translatorparametrar, eftersom layouten är en lista med registerbeskrivningar snarare än
en uppsättning namngivna värden.
Om du ska ta in en vanlig mätare på plattformen, titta i A–Ö-katalogen först. Flera tillverkare har egna förinställningar, som avkodarna för Kamstrup Multical och Ambiductor, vilka redan bär den korrekta registerkonfigurationen.
Att spara den råa payloaden
| Translator | Roll |
|---|---|
set-payload-from-uplink | Kopierar varje rå uplink-payload till payload, som en hexsträng med versaler, så att den sparas i nodens tidsserie. Kedjad ovanpå hårdvarutranslatorn |
Yggio sparar inte den råa payloaden i tidsserien av sig själv. Lägg till den här translatorn på de noder där du vill ha den, till exempel för att kunna avkoda historiken igen efter en rättning av avkodaren.
Att korrigera en uppströms translator
| Translator | Roll |
|---|---|
xovis-field-inverter | Byter riktning in och ut på utdata från xovis-pc2se-people-line-counter, i varje räkning den producerar: live, dagliga, totala, och de långa och korta varianterna. För en sensor monterad åt motsatt håll mot det räknaren antar |
Att montera en räknare åt andra hållet är ett fysiskt faktum som ofta inte går att ändra efter installationen. Att invertera i mjukvara håller datan korrekt utan att någon behöver komma ihåg att just den här enheten räknar baklänges.
Felsöka uplinks
| Translator | Roll |
|---|---|
set-log-from-uplink | Skriver varje rå uplink till nodens logg: payloaden som hex, plus porten och gatewaytiden när integrationen anger dem. Kedjad ovanpå hårdvarutranslatorn |
Translatorn fyller bara i log; en regel i regelmotor v1 med en Log-åtgärd gör den till en
loggpost (translatorns beskrivning har den exakta uppsättningen). Regelmotor v2 kan inte göra detta,
eftersom dess åtgärd för att skriva logg loggar på regeln, inte på noden. Posterna är verbose och
raderas efter 14 dagar. Verbose-poster är dolda i logglistan tills du markerar Verbose i
typfiltret. Ta bort translatorn när du är klar, eftersom log också sparas i nodens tidsserie.
Exempel för translatorutvecklare
De här tre finns till för att läsas. De är fungerande translatorer, och de är den kortaste vägen till att förstå formen på en innan du skriver din egen.
| Translator | Visar |
|---|---|
example-regular | Grundformen: att avkoda en hex-payload till en temperatur, en status och en tidsstämpel, att läsa flera datatyper ur binärdata och returnera dem i resultatet |
example-parameterized | Parameterfunktionen, som tillämpar en scaleFactor och en offset som användaren anger |
example-timeseries | Att returnera en tidsserie snarare än en enskild avläsning, med en payload där varje byte är en temperatur en minut längre bakåt i tiden |
För att skriva en egen, se Translatorutveckling.
För det fullständiga A–Ö-registret över alla translatorer, se översikten över translatorer.