Todays progress

So far so Good 😊, we have done some modifications to our solution and have now established a more attractive business value and some better user interfaces and data integrations.

First of all the new idea is to reduce the monitoring space and range, so we came up with changing the scope and customer type to: ZOOs. Our new brand is: SmartZoo.

In each ZOO we can find different species of animals living together in controlled habitats, they have very different needs and behaviors, that is why we needed an adaptable system that could receive information from different IoT devices measuring different types of data.

Our platform is “device ready”, it means that we can include new devices in an easy way by using the concept of “device groups” which allows us to differentiate animals by grouping IoT devices based on species.

Our final goal is to implement Smart ZOO in multiple locations around the world in different ZOOs and get Insights from all of them so we can identify anomalies, improve facilities and procedures and last but not least increase sustainability by optimizing the use of resources like electricity, food and water.

We created a web page to be presented to possible customers, it is responding very well to different screens and devices and it is a good entry point to get in touch with us. The URL is: https://smartzoo.webflow.io/

We have created a dashboard, in IoT Central, with data from the IoT devices (smarthphones + IoT DevKit). IoT DevKit provides data of temperature, pressure and humidity.

We are tracking the turtles locations in and showing it in a map. We want to use this information to send alerts if turtles escape their cage. We also want to generally gather information about their movement, which can be used to tell if a turtle is sick or hurt.

Smartphone (turtle) devices provides gyroscope (x,y,z) which tell how the rotation is for the smartphone (turtle). We are using this to provide information if the turtle is turned upside down (the worst thing that can happen to a turtle…). If the turtle (smarphone in our case) is upside down a rule is trigged and an email is sent to the zoo keeper and the light on the smarphone is turned on.

Logic app:

Email:

Light turned on the smartphone:

Machine Learning

We are currently working on implementing machine learning such as anomaly detection. If there is any spikes or dibs in the temperature value want to store this information in CosmosDB and send an alert message. This can detect any abnormal behavior in any of data we are collecting, and automate the job of alerting relevant people of what is happening.

We are gathering temperature information from the Event hub, sending it to Stream Analytics Jobs to detect anomaly and sending output result to Cosmos DB:

CosmosDB:

WebApplication

We have implemented Geolocation with SignalR so the markers are shown in the map in real time. When the devices are in motion the markers will move at the same time.

The front end calls the Hub so it does not need to call the controllers each time with a common Http call.

Excellent user experience

Here we can include all changes to our branding and webpage. IoT central got also a new brand and it is much easier to identify the different habitats per species in the dashboards.

We have also improved the responsiveness of some of the visuals in the IoT central by implementing signalr and React.

Most extreme business Value

We tried to explain it in the overview of this POST, but as we mentioned before, the real business values comes when getting data from different Zoos and produce Insights and make decisions based on it.

Rock Solid Geekness

Here is an overview of technology used:

Killer App We find it difficult to explain how it is a killer app, but we hope it is enough with all the previous text 😊

Hva har vi gjort i dag:

Våre endringer fra i går til i dag: 

Excellent user experience 

Vi har en applikasjon (canvas app) som besøkende av Munch-museet kan bruke. Siden i går har vi gjort følgende for å forbedre brukeropplevelsen: 

  1. Du kan nå kommunisere med vår chat-bot direkte i applikasjonen. Vi brukte en PCF-komponent for å legge inn chatboten som en iframe.  
  1. Vi har fullført funksjonaliteten som lar brukerne ta bilder og få mer informasjon om kunstverket ved bruk av AI Builder (Se tidligere post og video). 
  1. Besøkende kan nå besøke vårt digitale museum med både bilder og behagelig bakgrunnslyd som støtter opp under opplevelsen av museet. Museet kan også brukes med VR briller for de som ønsker det.  

Rock Solid Geekness 

Siden i går har vi forstått at vi har litt å gå på når det gjelder geekiness-nivået. Vi har derfor jobbet mye med en app for de ansatte ved museet der vi får opp data fra sensormålinger i utstillingsrommene som skal visualiseres i PowerBI. 

Siden vi ikke har tilgang på noen IoT-enheter (😢) genererer vi målingene ved bruk av simuleringer fra en Raspberry Pi web simulator: https://azure-samples.github.io/raspberry-pi-web-simulator/ som vi har ti instanser av og skriver til ti forskjellige enhetregistreringer i IoT Hub i Azure.  

Denne dataen blir så tilgjengeliggjort i endepunktet til som er innebygd i IoT Hub som igjen trigger en Azure Function App som skriver til Dataverse.  

Most Extreme Business Value 

Virtuelle museum: Det virtuelle museet kan bidra til å generere penger og interesse rundt museet selv om det ikke er åpent, men også i form av interesse for NFT kunst og kunstverk lånt fra andre museer.  

I tillegg lar det museets kuratorer vise frem en større del av kunstsamlingen som totalt består av nærmere 28 000 kunstverk. I dag er kun en liten andel av disse tilgjengelig for publikum. 

Bildegjenkjenning: Ved å legge inn mer informasjon i applikasjonen i stedet for ved siden av kunstverket kan vi bruke plassen på veggen til å stille ut enda flere bilder.  

ChatBot: Chatbotten kan nå avlaste ansatte slik at de besøkende heller bruker applikasjonen enn å kalle på de ansatt for hjelp. De ansatte kan da bruke arbeidsdagen på mer verdiskapende oppgaver. 

IoT: Ved bruk av vår IoTl-øsning som monitorerer temperatur og fuktighet rundt kunstverkene, vil spare museet for store utgifter: 

  • Ved bruk av IoT-løsningen kan lufteanlegget kjøle og varme opp rommene som trenger det 
  • Minimere skade på dyre uvurderlige malerier grunnet fukt 
  • Færre ansatte som flytter på malerier grunnet dårlig temperatur og fuktmålinger 
  • Unngår å måtte stenge Munch eller redusere antall besøkende i løpet av sommeren når det både er varmt og høy luftfuktighet 
  • I fremtiden ønsker de å styre lufteanlegget basert på sensorata. 

NB! I Munch museet har vi underdimensjonert lufteanlegget og kommunen ønsker ikke å gi støtte for mer utbedringer av denne! Deres store frykt er at den store antall besøkende på sommeren og den høye sommertemperaturen vil gjøre store skader på flere kunstverk. 

“Munchmuseet frykter at klimaanlegget ved det nye museet i Bjørvika ikke vil tåle sommervarme og rekordbesøk. […] Nå får imidlertid Munchmuseet et tydelig nei fra PBE, skriver Avisa Oslo. Begrunnelsen er at det vil ødelegge byggets «særegne visuelle og arkitektoniske utrykk», heter det i artikkelen.” https://www.arkitektnytt.no/notiser/munch-sliter-med-klimaet 

Killer App 

Vi har endelig fått bruke vår AI modell i vår besøksapplikasjon! Se vår youtube video her:Illustrasjon av vår funkjsonalitet 

Vår nye Chatbot i besøksapplikasjonen tuter og kjører. Den ble både ferdigstilt og lagt inn i applikasjonen: Her trykket de på ChatBot ikonet og stiller Chatbotten spørsmål som den kan svare på 🙂 

Vi har også ferdigstilt museet med både musikk, malerier og NFT’er. Sjekk ut videoen i den tidligere posten her: https://acdc.blog/steria2022/virtuelt-museum/ 

Middle-Age Mutable Ninja Tuples has evolved!

A lot of improvements have been added to our solution, described in detail below. As different parts start to connect, we can see the potential value provided by our solution. Not just in crime fighting, but also as a competitor to food delivery apps like Foodora or Wolt, or transport apps like Uber or Lyft. Our now fully integrated solution includes apps for employees, the back-office and end users, and is easily applied to areas like those described above.

.NET MAUI app

https://streamable.com/fof2sw
Video of our app running on MacOS. Note: Some features are disabled when this video was recorded

We’ve just updated some design elements of our Ninja Turtle SOS App. It has a modern minimalist design. Because when you’re in an emergency you don’t want to have a confusing patterned background or 20 menus to click through. We are still improving on it but it’s feeling more modern already.

Our app is truly cross-platform. It works on iOS, Android, MacOS and Windows. The MAUI framework makes sure our app runs natively and uses device-specific buttons and UI. 

Two-way communication

The MAUI app now properly communicates with the gRPC service, giving it the ability to post SOS alerts to Dynamics and receive SOS status updates back, using a custom Dynamics API client. The status updates are streamed to the app from the server via gRPC.

The gRPC service is automatically deployed to an Azure App Service when we commit to master, using a GitHub Action. 

gRPC isn’t properly supported in Azure App Services yet, because of how new it is. Hopefully we can demonstrate the gRPC service working from Azure tomorrow – in the meantime it’s working fine running locally.

New feature: Google Maps!

When you need help from a Ninja Turtle it’s very useful to know where they are in relation to you. So we have now added Google Maps support to the .NET MAUI app. When a Turtle has been assigned to your distress call you will see a map of your area and live updates of your Ninja Turtles location. 

It’s a beautiful and easy to use feature that shows you where your Ninja Turtle and you are at any time. A small glance at the app and you know if they are close and you can continue to run towards your savior.

The Google Maps integration into MAUI was a challenge. We solved it by creating a React app that the MAUI app accesses using a WebView, basically rendering a website inside the app. The React app uses a Google Maps react library and is hosted as a separate web app (https://sosmap.vercel.app). We use CI/CD to update new features into our React app, so the users will always get the newest map features.

App for registering Turtles

We have added a web app for accepting new applicants for Ninja Turtles. This app allows for fast onboarding and expansion of the workforce in a gig economy style. Thus, Middle-aged Mutable Ninja Tuples can quickly become the biggest provider of Personal Safety as a Service, benefiting from the accompanying network effects.

The Blazor app is automatically deployed to an Azure App Service when committing to main, using a GitHub Action. It’s available here: https://mamntservice.azurewebsites.net/ 

After registering, the user should quickly be able to log in to the Dynamics mobile app. In order to make this possible, a lot of things need to happen behind the scenes.

The first step is automatic creation of an Azure AD user, and assigning of a Dynamics license. We created a custom Azure API client for this, which is called from the backend of the Blazor app. After that, the only thing missing is a Dynamics license. But first, the user must be synced to Dynamics from Azure AD, which can take up to an hour.

Because of this delay, we aren’t available to programmatically add a Dynamics license right away, so we created a Dynamics plug-in which automatically adds the license when a user is created. After it has run, the user should be able to log in to the Dynamics mobile app:

Note: it’s possible to force the user sync to happen right away using PowerShell, we’ll look into that as a possible improvement.

Feel The Heat

Dispatchers have a new tool at their disposal; a Power BI report that visualizes reported distress calls in a heatmap. This is achieved by pulling data using Azure Synapse Link to Dynamics 365, which is then used as a dataset for the Power BI report. For MaMNT, both Synapse and Power BI were uncharted waters before development began, and have proven to be just the tools we needed to bring some extra oomph to the user interface.The heatmap itself is a prebuilt feature by AppSource user Weiwei Cui that takes our latitude and longitude parameters as input and allows us to customize the clustering, values and the look and feel of the map. 

The heatmap dots warp in shape as you zoom on the map, in order to scale the dots and heat signatures, which produces an awesome-looking effect when the dots are split and merged. Going forward, the heatmap will be limited to a set number of the most recent calls, and we may add a timelapse effect to show patterns and development in crimes committed in the city.

For dispatchers, we also added a filtering feature to the right-hand side where the different types of distress calls can be selected to filter the map instantly. This will enable the turtles to move towards proactively fighting and predicting crime instead of reacting to distress calls. This has great utility not just for improving our services for individual users, but also for providing business facing services to third party security entities (i.e. Police).

Automatic test data generation

When developing a tool to fight crime and respond to distress calls, it is imperative to be able to simulate different loads on the systems and dispatchers to build the best possible solution that fits real-life scenarios. MaMNT set up an Azure Data Factory to produce the desired effect of simulated, continuous distress calls being sent from all over the city of Oslo. The Data Factory job randomizes a caller name, a crime type and x-values of coordinates within the range of 59.9xxxx, 10.xxxxx. New distress calls pop up all over the city at set intervals, and you can see the heatmap updating with a new batch of distress calls every 15 minutes. 

Bombshells Day 2

Fremgang er stikkordet når Bombshells raser i gang med dag 2. Gjennom dagen har vi lagt inn mange claims for nye badges.

Excellent User Experience

Data er oljen i vår løsning. Første dag gikk i stor grad til å samle inn data fra sensorene, behandle og flytte disse dataene inn i Dataverse. Siden prosessen med å få mengder av data har laget jobbet med å fremstille alternative data visuelt både gjennom rapporter, apper og andre flater. Bombshells har som et sosialt tiltak en bucketlist med drømmer som de ønsker skal bli virkelighet. Sammen med disse har de lagt til litt ekstra informasjon som kategoriserer punktene på listen, viser sannsynlighet for at de går i oppfyllelse osv.

Power BI

Med kanskje tidenes styggeste layout har Donatello fremstilt en rapport i PowerBI hvor han forsøker å vise detaljer rundt punktene på listen. Som del av denne rapporten har han lagt inn en enkel canvas-app som laster inn valgt rad fra tabellen og lar brukeren gjøre endringer i sin drøm.

Visually appealing and an engaging experience surpassing expectations of simplicity, attractiveness and a look that just speaks of blings.

Most Extreme Business Value in Real World Scenarios

Vi ønsker med vår teknologi å “Tenke globalthandle lokalt”. Slagordet stammer fra den gangen Gro Harlem Brundtland deltok i det store verdensmøtet om klima og miljø. Slagordet står den dag i dag. Sammen med 1.6 millioner mennesker bor alle på team Skill bombshell rundt Oslofjorden. Oslofjorden er i en elendig tilstand der alt liv snart er borte. Vi ønsker derfor i dette hackatonnet å å lage en prototyp som simmulerer miljøovervåking av Oslofjorden. Når det oppstår en hendelse av uønsket karakter skal innbyggere blir varslet via SMS mens de som kan komme å ordne opp blir varslet på flere kanaler som SMS og teams varsler.

Best pris på Nokia 3210 Mobiltelefoner - Sammenlign priser hos Prisjakt

Vi benytter det siste innen teknologi som sensorer, maskinlæring. Vi henter i data fra eksterne kilder som høyvann og lavvann for å kunne utføre bedre predikeringer av hva utslipp kan medføre. Alle tjenester er i Microsoft azure og rulles automatisk via CI/CD av kode og infrastruktur. Prototyåen skal derfor kunne rulles ut enkelt til andre lokasjoner i verden.  

Vi mener derfor at vår løsning har en ekstrem forteningsverdi for samfunnet lokalt, men også på sikt globalt. Selv om det antagligvs finnes øknomiske modeller for hva liv i oslofjorden er verdt i kroner og øre, mener vi at dette er uerstattelig. Gjennom innovasjonnorge og private aktører vil vi påsta at det er det penger til å fortsette prosjektet etter endt hackaton.

Rock Solid Geeknes

Sensorene vi benytter som en protyp skal kunne erstattes med real word sensorer som er beregnet for hav. Det vi her ønsker å teste er en flyt fra ende til ende. Det Rock Solid Geeknes vi holder på med er sensorene. Sensorene sender verdier til Azure Eventhub. Videre har vi satt opp maskinlæring som predikerer samt varsler om uønskede hendelser pr SMS (for befolkning) eller via SMS og Teams (for de som skal ut å redde Oslofjorden)

Vi har gått over fra noen ikke 100% vellykkede forsøk på å få sensorriggen opp på interwebz via wifi, til å sikre at vi kan bruke et mellomledd til å for at vi kan fange dataene over på en maskin som så fører dataene til sin endelige destinasjon. Der kan de bli håndtert som nødvendig.

Vi har i løpet dagen trent ai-modeller på både pizza og skilpadder. Den endelige konklusjonen er at de to ikke bør blandes (pizzaen blir litt ulækker).

Når vi populerte med data fikk også en liten utilsiktet bonus E2E test på flyten av data inn i eventhub og hele veien ut til varslingene i teams. Vi håper at ingen turtles fikk ødelagt lunsjen sin som følge av falske alarmer.

Monitorering av planten på pulten har avdekket at fuktinnholdet i jorden i potta synker med ca. 5% i løpet av en dag. Det er uklart hvor mye planten har inntatt og hvor mye som har fordampet.

Til slutt har vi geeket ut for å få flest mulig badges og jobber fortsatt med å skaffe det komplette settet (selv dooooh).

Killer App

Det er en tøff kamp å redde Oslofjorden. Det er derfor viktig at det sammles inn hva som motiverer den enkelte ansatt slik at de kan utføre en god jobb. Derfor har vi laget følgende killer-app

Som Rema 1000 sier; “Det enkle er ofte det beste!” Apper er ikke noe unntak. Donatello lever etter mottoet “if it doesn´t add any value, it doesn´t belong there. Derfor strippet han bort alle elementer som ikke hører hjemme i canvas-appen som er integrert i PowerBI. Alle elementene som skal spille inn mot appen lever i rapporten og det eneste brukeren trenger å gjøre er å endre noe og trykke “Oppdater drømmen min”. En så enkel app at den nesten tar livet av deg. Rett og slett en killer app.

Badges

Liste over badges vi har jobbet med fredag før kl 17.

Hva har skjedd siden i går?

I dag har teamet jobbet beinhardt for å stable på beina en fungerende løsning. Vi har jobbet målrettet og hardt for å forbedre de fire hovedområdene av konseptet vårt.
Teamet syr sammen det vi har laget til en fungerende løsning

Most Extreme Business Value

Når du kommer hjem fra en lang dag med studier og kriminalbekjempelse, er det godt at du slipper å tenke “hva skal vi ha til middag i dag?”.
Kjøleskapet har allerede oversikt over hva du har, vår flotte app kan gi deg oppskrift på hva du kan lage. Har du en favorittpizza? Har du det du trenger?
Du trenger ikke bekymre deg. Hvis du mangler noe, kan du sjekke handlelisten i vår flotte webapp. Hvis du ikke orker lage maten selv, send en bestilling til Pizza Time (@pointtaken). Alt gjøres gjennom vårt enkle grensesnitt i vår PowerApp.

Alt dette letter hverdagen til en hvilken som helst superhelt! Skilpadder spesielt 😉

Vi kaller det Fridgitoid 9000®

Ved å lage pizza, ta ut matvarer, og rangere de pizzaene du liker best vil du generere data i vårt Dataverse-miljø som vi kan analysere og presentere i PowerBI dashbord.
Dette vil åpne ny verden av innsikt i matvarekonsum!

Vi frigjør masse tid i hverdagen til alle hverdagshelter, samtidig som vi fjerner behovet for “hva skal vi ha til middag i dag?”

Rock Solid Geeknes

Vi har fått hele kommunikasjonslinjen på plass fra kjøleskap til sky. Knappen på arduinoen registreres av den tilkoblede raspberry pi’en, som igjen sender bildet til Azure for analyse.

Det viste seg å være nokså utfordrende å få en enkel knapp til å fungere på arduinoen. I mangel av riktige resistor satt vi opp knappen på en alternativ måte:

Dette gjorde at signalet fra knappen ikke var konsekvent ”0” når den ikke var trykket ned, men vekslet mellom 1 og 0. Løsningen ble å ta vare på de 10 siste state’ene til knappen, og først når vi hadde status «1» 10 ganger på rad, registrerte vi dette som et knappetrykk. En løsning vi er godt fornøyde med.

Kjøleskapet er også snekret sammen av papp gaffateip og kjærlighet. Med integrert webkamera og skuff til mikrokontrollene våre. Arduinoen er også utstyrt med en roterende motor, som skal gi Frigitoid 9000 litt sårt trengt bling.

3D-printet deksel til Arduino

Killer App + Excellent User Experience

For å gjøre det lettere for Ninja Turtles i kollektivet å handle inn det som mangler i kjøleskapet har vi bestemt oss for å lage en responsive SPA applikasjon med React og .NET core 6 som kan brukes på mobil.
Applikasjonen gjør en spørring mot Microsoft Dataverse og lister ut ingredienser som ikke står registret i kjøleskapet.
Bruker har mulighet til å markere matvarene som er kjøpt inn, og når matvarene legges i kjøleskapet blir de registret, og matvarene forsvinner fra handlelisten.
Applikasjonen kjører på en app service i Azure og vi har skrevet kode for infrastruktur med Pulumi.
Vi jobber også med å automatisere CICD as code med YAML og det vil bli kjørt i Azure Devops.

Vi tenker også å benytte PowerBI til å hente ut data på hvilke pizzaer som blir spist mest og en oversikt over hvilke matvarer som blir handlet mest.
Vi ønsker å intrigere dette inn i vår powerapp slik at dette blir synlig for bruker.

Mer om dette i en annen bloggpost 😉

WebApp
PowerApp

Bombshell Updating recent posts

Her er de postene som vi har oppdatert og kommet med nye. Please review

Tieving Bastards Thieving shellbombs | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Glossy pixels Glossy pixels – Bombshells rebranding | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Sharing is caring Sharing is caring | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Stairway To Heaven Straight up and away! | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Chameleon Dashes and numbers | Arctic Cloud Developer Challenge Submissions (acdc.blog)

It’s cool, it’s hip, it’s open source!

We have used several open source and hip packages in our React app. Node.js with cors and express for api requests, reactstrap (the React GUI underdog) for page layout and root design and the react-webcam package for accessing the users camera. All open source, all hip, baby!

react-strap
node, cors, express
webcam component

Power Platform :: Head 2 Head

Here comes the Power Platform head 2 head challenge!

How many are the ninja turtles gang?! YES, four! And in todays challenge you get 4 different possibilities to claim the head 2 head badge, 25 points and a prize! Additionally, if you embedded any of the 4 challenges in your solution and blogged about it, you might get extra badges!!!

Together we get the best solutions!

We started this mornig with a call to a company called OneFlow. We have had some conversations with them before, and decided that we wanted to try to get something done together with them today. We wanted to bulid an API integration from Dynamics 365 HR to OneFlow, so that we can sen out Employment Agreements for digital signatures directly from Dynamics! If this is not a huge business value, then we don’t know what are!
This is what this we did together with them right here and now, and how it works:

Contract is generated in oneflow, and is sent to the company representative as well as the employee.

When the contract is signed electronically by both parties, power automate get a callback with information on which employee that has signed and we can tick off “contract signed” in HR and add an url link to the contract in oneflow.

The solution is set up to support Swedish BankID,

Danish NemID, Finnish BankID,

Norwegian BankID and advanced e-signature for other countries with e-mail/phone verification