Med den nye firmware 2.3.1(150) kan LoRaWan, NB-IOT og andre eksterne sensorer nu også integreres.
Forudsætningen er dog, at de afleverer deres sensordata til en MQTT-mægler; OpenSprinkler kan så abonnere på dette som sensordata.
Sensoren er integreret med sit "emne" og et tekst/JSON-filter. Vandingsregulatoren kan så bruge denne værdi.
Sådan fungerer det:
- LoRa WAN-sensorer er placeret inden for radius af en LoRa WAN-hub, afhængig af version, med en rækkevidde på op til 10 km. Du betjener selv LoRa WAN-hubben, også kaldet gateway, og forbinder den med dit netværk
- NB-IoT-sensorer er integreret via udbyderportalen. Da NB-IoT fungerer over mobilnetværket, kan sensoren placeres hvor som helst - forudsat at der er modtagelse.
- I gatewayen eller udbyderportalen skal du aktivere MQTT-funktionen og bruge den til at eksportere sensordataene. Afhængigt af versionen kan yderligere implementering med et IoT-styringsværktøj såsom ChirpStack være nødvendig, som konverterer de "nøgne" sensordata til evaluerbare data.
- I OpenSprinkler forbinder du den via MQTT-mulighederne og opretter derefter en ny sensor af typen "MQTT-abonnement".
- Indtast abonnementsoplysningerne og datafilteret i sensoren.
- Komplet! Så snart data er modtaget, vises værdierne og gemmes.
Sensorkonfiguration i detaljer
De to MQTT-sensorer er markeret med rødt. De øvrige sensorer er integreret via det analoge sensorkort
Rediger sensor
Ved at klikke på "Tilføj sensor" eller på navnet på en eksisterende sensor får du følgende editor:
Dette eksempel viser en CHIRPSTACK-integration af MQTT-data. Strukturen er defineret som følger:
application/<application-id>/device/<deviceid>/event/up
Det er bedst at se på de mulige værdier ved hjælp af et værktøj, såsom MQTT Explorer. Det er ofte forvirrende, især for begyndere, at der ikke vises noget i MQTT Explorer. Fordi sensordataene kun ankommer hvert 10. minut (afhængigt af konfigurationen), skal du blot forlade MQTT Explorer i et stykke tid.
For feltet MQTT-filter skal du indtaste navnet på det felt, der skal læses. I CHIRPSTACK kan du se felterne udlæst under "Enhedsprofiler" / "Målinger". Hvis der ikke vises noget her, skal du først gemme et script på fanen "CODEC"; skabelonerne kan hjælpe her, eller du kan spørge producenten af sensoren.
Hvorfor LoRaWAN eller NB-IoT og ikke Wi-Fi eller Bluetooth?
Det største problem med sensorer er, at de kræver strøm. Kan du lægge et strømkabel, så kan du som regel også lægge et datakabel. Men hvis dette ikke er muligt, hvordan forbinder man så disse sensorer?
For at besvare dette spørgsmål har vi lavet nogle eksperimenter og præsenteret resultaterne her.
- Bluetooth fejler, rækkevidden er simpelthen for kort (medmindre planterne naturligvis er inden for 10m. Se her)
- WiFi kan bruges, men strømforbruget er så højt, at du enten skal skifte batterierne hver 4. uge eller også har du brug for kæmpe batterier. Dette kan også forbedres med solceller, men så har du allerede høje investeringsomkostninger pr. sensor. Derudover er der en vis risiko for tingskade ved udendørs installation.
- LoRaWAN er mere velegnet her, fordi batterierne er langtidsholdbare og ofte holder op til 10 år. Udendørs rækkevidde kan være op til 10 km (åben mark, byområder ca. 2 km). Da LoRaWAN kan drives licensfrit, er der kun engangsomkostninger.
- NB-IoT er også meget velegnet, hvis der er passende mobildækning. Det betyder, at rækkevidden er praktisk talt "uendelig", fordi sensordataene leveres til en cloud-tjeneste. Der er dog løbende omkostninger
Realisering og test
Til vores test brugte vi en Milesight UG65-868M som en LoRaWAN-gateway, samt en Dragino LSE01 og en Milesight EM-500 SMTC jordfugtighedssensorer. Da UG65 også kan aktivere en MQTT-mægler med den seneste opdatering (ChirpStack-common skal aktiveres), kan den tilsluttes som en selvstændig MQTT-server.
Begge sensorer kan måle ikke kun jordfugtighed, men også jordtemperatur og dielektrisk ledningsevne (permittivitet). Især den sidste værdi er meget vigtig for landbrugssektoren, da den også kan bruges til at bestemme jordens gødningsindhold.
Milesight UG65 har strømtilslutningerne bagpå og kan betjenes via POE. Det har også WiFi og kan endda fungere som et adgangspunkt. Andre antenner og et LTE-modul er også tilgængelige som ekstraudstyr.
Milesight EM-500 SMTC er mere end blot en jordfugtighedssensor. Den kan måle jordtemperatur og permittivitet. Den består af to komponenter, der er forbundet med et kabel. Det overjordiske er senderen, det underjordiske er selve sensoren. Der medfølger masteholder.
Dragino LSE01 ligner EM500, den kan også måle jordens fugtighed, temperatur og permittivitet. Alle Dragino-sensorer ser ud til at være ens, alle produkter har den samme sender.
ChirpStack
Ved opsætning af Chirpstack er det vigtigt først at opsætte profiler for sensorerne ("Enhedsprofiler"). Her registrerer du sensorerne med deres generelle enhedsdata. Du kan vælge standardindstillingerne ved hjælp af funktionen "Vælg enhedsprofilskabelon". Hele denne konfiguration er nødvendig for at de binære sensordata kan konverteres til læsbare værdier. Derfor er "Codec"-funktionen også den vigtigste funktion her.
Det tog mig dog et stykke tid at indse, at disse codec-specifikationer var forældede. De aktuelle codecs kan findes her:
Milesight: https://github.com/Milesight-IoT/SensorDecoders
Dragino: https://github.com/dragino/dragino-end-node-decoder
For at gøre dette skal du blot vælge den rigtige sensor, downloade filen til ChirpStack, åbne den med en editor og indsætte den i codec-feltet.
Opret derefter en "Applikation" og indtast sensorerne under "Enheder". Det er også vigtigt at kende JOIN-dataene for sensorerne; disse er normalt trykt på enhederne, på typeskiltet, i selve enheden eller i de medfølgende dokumenter.
Nu hvor alt er sat op, skal du udløse JOIN på sensorerne. Denne proces forbinder først sensoren med din gateway - ellers kunne alle styre dine sensorer. Du kan enten gøre dette med en APP (Milesight har "Toolbox" APP'en), eller du åbner enheden og trykker på en speciel JOIN knap. Nogle gange skal du blot kortvarigt fjerne batteriet og sætte det i, så udløses JOIN-processen.
Dataene skulle nu ankomme i ChirpStack. Men vær tålmodig, sensorerne sender kun et signal hvert 10. minut, så det kan tage tid.
MQTT
Chirpstack har sin egen MQTT broker, men alternativt kan man også bruge sin egen MQTT. For at denne modtager dataene fra Chirpstack MQTT brokeren, har jeg oprettet en MQTT bridge og videresendt alt. Det nødvendige program til dette hedder “Mosquitto”
forwarder.conf i /etc/mosquitto/conf.d mappen ser sådan ud hos mig:
connection bridge-01
address 192.168.0.50:1884
topic # out 0
topic # in 0
hvor 192.168.0.50:1884 er IP og port på Chirpstack MQTT brokeren
Når alt nu er sat op, skulle værdierne automatisk blive vist i OpenSprinkler som vist ovenfor. Konfigurer nu en programjustering for denne sensor, f.eks. sådan:
Dermed holdes vandingen mellem 10% og 20% jordfugtighed. Vandingsjusteringen er her fra 0 til 200%










Hej,
det lyder yderst interessant. Jeg spekulerer bare på, om man behøver den relativt dyre Milesight UG65-868M, eller om noget enklere også kan gøre det?
Selvfølgelig fungerer dette også med andre LoRaWAN-gateways. Da integrationen sker via MQTT, kan enhver kompatibel enhed bruges.
Desværre mangler felterne MQTT Topic/MQTT Filter/Unit i firmware 2.3.1 (164) ved valg af “MQTT Subscription”
Et skift af browser har heller ikke ændret noget ved det. Er det en kendt fejl?
Ja, det sker, når man bruger producentens “originale” hjemmeside; den halter desværre bagefter udviklingen. Tilpas derfor /su som beskrevet i vejledningen.
Tryk derefter på Ctrl+F5 flere gange i browseren (eller genindlæs), så siden opdateres. Her er linket igen:
Tak! Fungerer super, og på den måde er en integration af min Ecowitt-vejrstation via Homeassistant => Mosquitto mulig.