Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

MQTT og navngiving


Anbefalte innlegg

Hei.

 

Jeg er såvidt igang med å ta i bruk MQTT som protokoll for logging av data, og ønsker i den forbindelse litt inspirasjon når det kommer til struktur i navngivingen.

 

Jeg har en Wemos d1 mini som leser inn temperaturer fra noen DS18B20 temperatursensorer.

Jeg ønsker at dette skal være et fleksibelt system, hvor jeg kan henge på flere sensorer på samme Wemos, men også programmere flere Wemos'er som "noder" i systemet.

 

Et par utfordringer jeg har møtt på:

  • Klientnavn på MQTT noden.
    • For å slippe å endre koden for hver ny node har jeg sett for meg at jeg kan hente ut MAC-adressen til wemos'en og bruke denne som klientnavn. På denne måten vil hver klient være unik
      • Fordeler: Autogenerert data som man slipper og forholde seg til
      • Ulemper: Vanskelig å feilsøke/finne når noden kun har et autogenerert navn.
  • Generering av topic.
    • Her ser jeg for meg å hente ut den unike adressen fra hver sensor, og sende denne som topic. Jeg vil deretter ha en kryssreferanse eller lignende på "serverside" som linker hver sensor mot riktig objekt i database/HA/Whatever.
      • Fordeler: med dette er at jeg kan flytte sensorer mellom forskjellige noder uten at det vil påvirke hvordan data sendes inn. En annen fordel er at jeg ikke risikerer at sensorer "bytter plass" når jeg kobler inn en ekstra sensor.
      • Ulemper vil nok være at det er forholdsvis tungvindt å hente ut den unike adressen fra hver sensor. Det vil også være mer arbeid på serversiden, samt at det blir vanskeligere å feilsøke siden navnene er autogenerert.

 

 

Tanken er å lage en robust og god løsning som fremtidig kan utvides til flere forskjellige typer sensorer og data. Målet er å ha et automatisk system hvor alle noder kan kjøre på samme arduino-prosjekt uten å måtte tilpasses individuellt.

 

 

En annen måte å gjøre det på er å lese inn all data til en JSON-streng som deretter sendes på MQTT. Fordelen med dette er at det blir færre publiseringer til MQTT brokeren. En ulempe er at dette blir vanskeligere å lese/feilsøke, samt at det krever mer programmering på serverside.

 

 

Så...hvordan strukturerer DU din MQTT kommunikasjon? Hvilke fordeler/ulemper har du erfart med måten du gjør det på? Hvilke fordeler/ulemper ser du med måten jeg ser for meg å sette ting opp på?

 

 

 

 

 

 

  • Like 1
Lenke til kommentar
Del på andre sider

Med tanke på mac-adresse så er det bare å lage seg en "jukselapp" som man etter beste evne fyller ut før man monterer enheten. Der skriver man ned mac-adresse og lokasjon.

 

Min personlige mening er at man sjelden (pre exit 350kr grense) flytter rundt på elektronikken som er tilknyttet din nodemcu/wemos/arduino/enhet. Man lager en ny som man erstatter den gamle med.

 

Selv har jeg kun to enheter som går nå. Begge overvåker temperaturer og slår av på vifter for lufting av skap med elektronikk (stereobenk og serverskap).

Jeg har en infokanal hvor de annonserer sin ip-adresse når de kommer på lufta etter restart.

Hver sensor har to kanaler som de melder inn temperatur og status på vifte-rele.

 

Felles

/sensors/info/

For hver enhet

/sensors/<sensornavn>/temperature/

/sensors/<sensornavn>/fanstatus/

 

Jeg har ikke gjort det mer avansert/fremtidsrettet siden jeg heller mot YAGNI tankegangen (you ain't gonna need it). Skal man hele tiden ta høyde for hva som kanskje skjer om 2-5 år så blir man sittende med løsninger som fort bruker 2-5 år på å komme på lufta. Flexus anyone?

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.