Vi har laget en Power BI løsning med fokus på oversikt i en krisesituasjon for Lego City. Evil Mountain har en aktiv vulkan som må overvåkes og krisehåndtering må være lett tilgjengelig ved utbrudd. Borgemester Captain America og innbyggerne har høy tillit til hverandre og systemene som er satt i drift for byens sikkerhet.
I oversiktsbilde ser vi live data fra sensorene som er plassert i fjellet og måler temperatur. Dersom temperaturen overstiger en kritisk grenseverdi bli rapportbrukerne varslet. Temperatursvingningene fra sensorene vises som KPI og historisk:
Ved vulkanutbrudd er værforholdene svært kritiske for å ha kontroll på situasjonen. Vind påvirker spredningen av brann og hastigheten denne spredningen skjer. Ved høy vind vil brannen flytte seg svært fort. Derfor er det integrert værdata i rapportpakken.
Øverst i værvarslet ser vi temperatur og vind for valgt dag. Hover gir kort oversikt over været.
For et dypdykk i værvarselet kan oversikten benyttes:
Under en krisesituasjon melder innbyggerne skade og behov for hjelp i innbyggerportalen.
Rapportpakken viser oversikt over antall saker og en oversikt over sakene som er meldt inn, når og av hvem.
Når sakene blir meldt inn blir sakene prioritert og det blir opprettet arbeidsordre. Antall arbeidsordre og oversikt finnes her:
Interessen rundt sjakk har eksplodert det siste året, blant annet The New York Times melder om rekordsalg og en økning på over 1000% på salg av fysiske sjakkbrett. Økningen i salget er hovedsakelig påvirket av den populære serien the Queen’s Gambit, og streaming programmet PogChamp. Men det er et problem, vi er midt i en pandemi og ingen kan spille fysisk sjakk mot hverandre.
Heldigvis sitter vi på løsningen: Power Chess! Ved å bruke Power Chess kan du spille et fysisk sjakkparti mot hvem du vil uansett hvor i verden motstanderen befinner seg.
Slik fungerer det:
Hver spiller har hvert sitt sjakkbrett som er koblet på internett og bruker AI som identifiserer hvilke trekk som er utført. Når et sjakktrekk er identifisert vil sjakkbrettet til motstanderen utføre det samme sjakktrekket.
Under ser dere den automatiske lego-armen i Action. Filmen viser først et sjakktrekk på sjakkbrett 1, deretter ser vi lego-armen på sjakkbrett 2 på motstanderen sitt sjakkbrett.
Teknologien bak Power Chess
API og Azure Cognitive Services
Gjennom å integrere oss mot SharePoint, function app og ACS (Azure Cognitive Services)
I den tekniske løsningen vår benytter vi en integrasjon mot SharePoint, for å detektere at en ny fil har blitt lagt til, samt uthenting av denne filens innhold.
Videre har vi en integrasjon mot Function App som vi kjører et POST-kall mot tjenesten som gir oss 64 objekter tilbake.
Disse 64 objektene sendes til Azure Cognitive Services for analysering av innholdet.
Deretter blir dataen(Sjakkbrettet) prosessert og sendt til DataVerse ved en create.
Flow:
Ved å bruke Power Automate sin Cloud Flow har vi opprettet en Flow som trigges ved opprettelse av en ny fil i SharePoint i en mappe vi har kalt “Moves”. Ved å bruke en standard funksjon i Flow som henter innholdet i filen, får vi en string som vi kan sende til function app.
Function-app
Function appen mottar en string gjennom HTTP protokollen og deretter kutter opp bildet/Sjakkbrettet i 64 objekter, samt legger metadata på hver enkelt objekt for å identifisere hvor plasseringen er. Deretter blir disse sendt tilbake til flowen gjennom HTTP.
CRM / Dataverse
All dataen vi prosesserer illustrerer vi i en Model Driven app. Her kan vi se oversikt over alle rundene i enhvert spill, og posisjonene på alle brikkene. Ved hjelp av plattformen, og litt fancy HTML-kode, har vi fått denne skalerbar i forhold til enheter og skjermstørrelser. Er man «on-the-run», kan man enkelt åpne applikasjonen via telefonen, og få en tilsvarende opplevelse.
Rasberry PI + Lego Boost
For å kontrollere Boost motoren til Lego har vi benyttet en Raspberry PI med Python script som kan sende signaler til boost motoren via BLE (Bluetooth Low Energy).
Badger vi clamer med denne posten:
#Glossy Pixels #High 5 #Go With the Flow #Chameleon #Plug N’ Play #Power User Love
Claim for Crawler: Når vulkanutbruddet først er et faktum trenger myndighetene en måte å skaffe seg oversikt over tilgjengelige ressurser i samfunnet som kan bidra i gjenoppbyggingen. I Lego City sine myndigheters egen Dataverse har de lagret denne informasjonen på tvers av mange tabeller, som for eksempel Accounts, Contacts, Bookable Resources og Products.
For kjapt å få oversikt er det derfor nyttig å kunne søke enkelt på tvers av tabellene i Dataverse. Dette har vi løst ved å bruke Dynamics 365 sitt Relevance Search API.
Dette API’et tilgjengeliggjør Relevance Search-funksjonaliteten også utenfor Dynamics, slik at søket kan gjøres i den type applikasjon som er riktig for hver enkelt brukertype. Dette kan være i Sharepoint, i Teams, en Canvas app, eller noe helt annet. Man er altså ikke låst til å gjennomføre søket inne i Dynamics 365. Vi har laget en enkel Canvas app som alle på Lego City sitt eget kriseteam har tilgang til.
Et søk i denne appen trigger en Power Automate-flow som gjør søk ved hjelp av Relevance Search-API’et, og returnerer resultater på tvers av tabellene i Dataverse:
Ordføreren i Lego City er stressa etter vulkanutbruddet og søker simpelthen på “Emergency”:
Flow’en kjører, og søker på tvers av tabellene. I Account-tabellen finner de et firma som spesialiserer seg på krisehåndtering, perfekt! Navnet på firmaet er “Emergency Inc”.
Her er firmaet slik det ser ut inne i Dynamics 365:
Flow’en returnerer søkeresultatet tilbake til app’en, som viser søkeresultatene. La gjenoppbyggingen starte!
Bonden Emmet er en glad og flink bonde som er opptatt av hvordan det står til med sine jorder. Han er selvsagt opptatt av været men også hvorvidt han må vanne sine jorder gjennom en varm sommer. En annen liten ting Emmet må passe på er farlig ugress, men han er ikke helt sikker på hva som er farlig ugress og ikke. Derfor må han hele tiden kontakte sin nabovenn for å spørre. Han skulle ønske det fantes en enklere måte å finne ut av dette på. En annen liten ting Emmet er opptatt av er å telle kuer.
Men nå er det kommet en ny app fra Cowders som har vekket stor begeistring hos Emmet. Cowders App gir han god oversikt over jordene med temperatur, luft og jordfuktighet ved hjelp av små sensorer han kan sette ut på jordene sine. I appen kan Emmet få oversikt over jordene sine og se tilstand, dersom det er tørt eller for fuktig vil han se dette i appen ved at det vises en advarsel.
Basert på innhentet data ser bonden i løsningen at det på en lokasjon av jordet har begynt å vokse en spesifikk type ugress. Bonden Emmet kan i løsningen se størrelsen og hvor stort området er og det kalkuleres hvor mye ugressmiddel som trengs. Basert på værdata og hvor mye bonden har på lager planlegges det å gjøre et innkjøp.
Målinger av fukt og temperatur fra både jorden og luften tilsier at det må vannes på jordet. I forhold til vær data er det spådd at det vil regne. Basert på på disse opplysningene får bonden hjelp til å beslutte hvor mye når det skal vannes.
Vekstkontroll:
For å utføre en vekstkontroll kan bonden Emmet bruke mobil appen til å ta bilde av veksten han har funnet, sende inn og få beskjed om dette er ugress eller ikke:
I tillegg til Appen kan Emmet logge seg på via sin PC og få tilgang til løsningen gjennom en web-side laget med Blazor. Denne er til og med mulig å installere som en PWA( Progressive Web App) siden den benytter en service worker for caching av appen for rask og fin brukeropplevelse.
Vekstkontroll.
Vår løsning har som mål å bistå bonden med vektkontrol. Målet er å hente inn sensor data, visualisere disse og trigge alerts i løsningen for å hjlepe
Cownter
En annen viktig funksjon Bonden Emmet liker ved appen er at han enklere kan telle kuer, Emmet bruker ikke tall så han vil heller se hvor mange kuer han har.
Avvik på jordmålinger og ugress i bilder ender opp i Customer Service Hub for oppfølging fra Felleskjøpets fagkonsulenter som vil kunne bistå bonden i å fikse problemene hans.
Vår løsning som gir bonden anledning til å sende inn bilder til analyse, for å identifisere ugress, inkluderer bruk av Cloudmersive sin ML/AI-baserte bilde-API’er.
Utsnitt fra deres dokumentasjon for API’ene:
Vår bruk av API’et skjer via Logic App som kommer med en hendig ferdig connector.
Responsen fra Cloudmersive kommer som RGB arrays med de 5 mest fremtredende fargene. Dette oversetter og forenkler vi til fargenavn (Red, Purple, Blue, Green, Yellow, Cyan) via Hue i HSL fargemodell. Denne oversettingen gjøres i Function App RGBtoHSL, ref screenshot under.