Med den nye fastvaren 2.3.1(150) kan LoRaWan, NB-IOT og andre eksterne sensorer nå også integreres.
Forutsetningen er imidlertid at de overleverer sensordataene sine til en MQTT-megler; OpenSprinkler kan da abonnere på dette som sensordata.
Sensoren er integrert med sitt "emne" og et tekst/JSON-filter. Vanningskontrolleren kan da bruke denne verdien.
Slik fungerer det:
- LoRa WAN-sensorer er plassert innenfor radiusen til en LoRa WAN-hub, avhengig av versjon, med en rekkevidde på opptil 10 km. Du betjener LoRa WAN-huben, også kalt gateway, selv og kobler den til nettverket ditt
- NB-IoT-sensorer er integrert via leverandørportalen. Siden NB-IoT fungerer over mobilnettet, kan sensoren plasseres hvor som helst – forutsatt at det er mottak.
- I gatewayen eller leverandørportalen aktiverer du MQTT-funksjonen og bruker den til å eksportere sensordataene. Avhengig av versjonen kan det være nødvendig med ytterligere implementering med et IoT-administrasjonsverktøy som ChirpStack, som konverterer de "bare" sensordataene til evaluerbare data.
- I OpenSprinkler kobler du den til via MQTT-alternativene og lager deretter en ny sensor av typen "MQTT-abonnement".
- Skriv inn abonnementsinformasjonen og datafilteret i sensoren.
- Fullstendig! Så snart data er mottatt, vises og lagres verdiene.
Sensorkonfigurasjon i detalj
De to MQTT-sensorene er merket rødt. De andre sensorene er integrert via det analoge sensorkortet
Rediger sensor
Ved å klikke på "Legg til sensor" eller på navnet på en eksisterende sensor får du følgende editor:
Dette eksemplet viser en CHIRPSTACK-integrasjon av MQTT-data. Strukturen er definert som følger:
application/<application-id>/device/<deviceid>/event/up
Det er best å se på de mulige verdiene ved å bruke et verktøy, for eksempel MQTT Explorer. Det er ofte forvirrende, spesielt for nybegynnere, at ingenting vises i MQTT Explorer. Fordi sensordataene kun kommer hvert 10. minutt (avhengig av konfigurasjonen), må du bare forlate MQTT Explorer en stund.
For MQTT Filter-feltet, skriv inn navnet på feltet som skal leses. I CHIRPSTACK kan du se feltene lest opp under "Enhetsprofiler" / "Målinger". Hvis ingenting vises her, må du først lagre et skript i "CODEC"-fanen; malene kan hjelpe her eller du kan spørre produsenten av sensoren.
Hvorfor LoRaWAN eller NB-IoT og ikke Wi-Fi eller Bluetooth?
Det største problemet med sensorer er at de krever strøm. Hvis du kan legge en strømkabel, så kan du vanligvis også legge en datakabel. Men hvis dette ikke er mulig, hvordan kobler du disse sensorene?
For å svare på dette spørsmålet gjorde vi noen eksperimenter og presenterer resultatene her.
- Bluetooth svikter, rekkevidden er rett og slett for kort (med mindre plantene selvfølgelig er innenfor 10m. Se her)
- WiFi kan brukes, men strømforbruket er så høyt at du enten må bytte batterier hver 4. uke eller så trenger du digre batterier. Dette kan også forbedres med solcelle, men da har du allerede høye investeringskostnader per sensor. I tillegg er det en viss risiko for materielle skader ved installasjon utendørs.
- LoRaWAN er mer egnet her fordi batteriene er langvarige og ofte varer i opptil 10 år. Utendørsrekkevidden kan være opptil 10 km (åpen mark, byområder ca. 2 km). Siden LoRaWAN kan drives lisensfritt, er det kun engangskostnader.
- NB-IoT egner seg også veldig godt dersom det er passende mobildekning. Dette betyr at rekkevidden er praktisk talt "uendelig" fordi sensordataene leveres til en skytjeneste. Det er imidlertid løpende kostnader
Realisering og testing
For vår test brukte vi en Milesight UG65-868M som en LoRaWAN-gateway, samt en Dragino LSE01 og en Milesight EM-500 SMTC jordfuktighetssensorer. Siden UG65 også kan aktivere en MQTT-megler med siste oppdatering (ChirpStack-common må aktiveres), kan den kobles til som en uavhengig MQTT-server.
Begge sensorene kan måle ikke bare jordfuktighet, men også jordtemperatur og dielektrisk ledningsevne (permittivitet). Særlig den siste verdien er svært viktig for landbrukssektoren, da den også kan brukes til å bestemme gjødselinnholdet i jorda.
Milesight UG65 har strømtilkoblingene bak og kan betjenes via POE. Den har også WiFi og kan til og med fungere som et tilgangspunkt. Andre antenner og en LTE-modul er også tilgjengelig som ekstrautstyr.
Milesight EM-500 SMTC er mer enn bare en jordfuktighetssensor. Den kan måle bakketemperatur og permittivitet. Den består av to komponenter som er koblet sammen med en kabel. Den over bakken er senderen, den underjordiske er selve sensoren. En masteholder følger med.
Dragino LSE01 ligner på EM500, den kan også måle jordfuktighet, temperatur og permittivitet. Alle Dragino-sensorer ser ut til å være like, alle produktene har samme sender.
ChirpStack
Når du setter opp Chirpstack, er det viktig å først sette opp profiler for sensorene ("Enhetsprofiler"). Her registrerer du sensorene med deres generelle enhetsdata. Du kan velge standardinnstillingene ved å bruke funksjonen "Velg enhetsprofilmal". Hele denne konfigurasjonen er nødvendig for at de binære sensordataene kan konverteres til lesbare verdier. Derfor er "Codec"-funksjonen også den viktigste funksjonen her.
Det tok meg imidlertid en stund å innse at disse kodekens spesifikasjoner var utdaterte. De gjeldende kodekene finner du her:
Milesight: https://github.com/Milesight-IoT/SensorDecoders
Dragino: https://github.com/dragino/dragino-end-node-decoder
For å gjøre dette, velg rett sensor, last ned filen for ChirpStack, åpne den med en editor og lim den inn i kodekfeltet.
Deretter oppretter du en "applikasjon" og skriver inn sensorene under "Enheter". Det er også viktig å kjenne JOIN-dataene til sensorene; disse er vanligvis trykt på enhetene, på navneskiltet, i selve enheten eller i de medfølgende dokumentene.
Wenn jetzt alles eingerichtet ist, so muss man das JOIN an den Sensoren auslösen. Dieser Vorgang verbindet erst den Sensor mit ihrem Gateway – sonst könnte ja jeder ihre Sensoren steuern. Entweder geht das mit einer APP (bei Milesight gibt es die “Toolbox” APP) oder man öffnet das Gerät und drückt eine spezielle JOIN Taste. Manchmal muss auch nur die Batterie kurz abziehen und anstecken, dann wird auch der JOIN Vorgang ausgelöst.
Jetzt sollten in ChirpStack auch die Daten ankommen. Aber bitte Geduld, die Sensoren senden nur alle 10 Minuten ein Signal, das kann also dauern.
MQTT
Chirpstack hat einen eigenen MQTT Broker, alternativ kann man aber auch einen eigenen MQTT verwenden. Damit dieser die Daten des Chirpstack MQTT broker erhält, habe ich eine MQTT bridge eingerichtet und alles weitergeleitet. Das notwendige Programm dafür hat den Namen “Mosquitto”
Die forwarder.conf im /etc/mosquitto/conf.d Ordner sieht bei mir so aus:
connection bridge-01
address 192.168.0.50:1884
topic # out 0
topic # in 0
wobei 192.168.0.50:1884 die IP und Port des Chirpstack MQTT brokers sind
Wenn nun alles eingerichtet, sollte wie oben dargestellt die Werte automatisch im OpenSprinkler erscheinen. Konfigurieren Sie nun eine Programmanpassung für diesen Sensor, z.B. so:
Damit wird die Bewässerung zwischen 10% bis 20% Bodenfeuchtigkeit gehalten. Die Bewässerungsanpassung ist dabei von 0 bis 200%









Hallo,
das klingt äusserst interessant. Ich frage mich nur ob es den relativ teuren Milesight UG65-868M braucht oder ab es da auch was einfacheres tut?
Natürlich funktioniert dies auch mit anderen LoRaWAN Gateways. Da die Einbindung über MQTT geschieht, kann jedes kompatible Gerät verwendet werden.
Leider fehlt bei der Firmware 2.3.1 (164) bei Auswahl von “MQTT Subscription” die Felder MQTT Topic/MQTT Filter/Unit
Auch der Wechsel des Browsers hat daran nichts geändert. Ist das ein bekannter Bug?
Ja, das passiert, wenn man die “original” Webseite des Herstellers verwendet, diese hinkt der Entwicklung leider hinterher. Daher wie in der Anleitung beschrieben /su entsprechende anpassen.
Im Browser dann mehrfach Strg+F5 drücken (bzw neu laden), damit die Seite aktualisiert wird. Hier nochmal der Link:
Danke! Funktioniert super und so ist eine Einbindung meiner Ecowitt Wetterstation über Homeassistant => Mosquitto möglich.