Recent data suggests a mega-mutant-monster has appeared!!!

Our sensor-rig has been deployed to several locations throughout the Oslofjord! A typical day goes by without incident. But today our sensors detect MUTANT-activity.

Combining light-, sound-, moisture- and airqaulity sensors, sonar, and atmospheric measurements we can safely determine a new threat has appeared. We post this through our cloud rig which will alert our intrepid reptiles! (Donatello is such an oldschool guy that he recieves smses to his old mobile phone, which is not of the smart-kind).

The cloud rig is an azurefunction which is connected to an EventHub which pushes our messages through to Dataverse, which then posts a snappy alert to Teams with the help of PowerAutomate.

Our sensors also display a summary of threatassesment on the local rig, to avoid a technician doing maintenance and is suddenly caught unawares by the new mutant.

Middle-age Mutable Ninja Tuples is integrating with all the things!

The backend for the end-user mobile app (.NET MAUI) is integrating with Dynamics 365 via MS Dynamics Web API, to create SOS alerts and get status updates.

The backend for the Turtle back-office (Blazor web app) is communicating with Azure via MS Graph API to programatically create Azure AD users.

Both backends are retrieving access tokens for MS APIs using MS OAuth API.

The Turtle code-base (GitHub) is configured to automatically post events to Discord, such as commits and releases.

IoT Central

Med hjelp av IoT Central kan vi vise frem leselig data. Microsoft har en “IoT Plug and Play” app som kan sende data hentet fra smart telefonen. Bilde nedenfor er et skjermbilde av appen på telefon.

IoT Plug and Play – App

Denne dataen har vi klart å sende til IoT Central. Bilde under viser data som blir sendt fra smarttelefonen.


IoT central:

Smarttelefonen kan vi bruke som som å simulere hvordan skildpadder eller fisker beveger seg i området. Med denne løsningen kan vi koble flere smarttelefoner til IoT Central, slik at det blir mer realistisk.

IoT DevKit

Vi har også koblet opp en MXCHIP (IoT DevKit) til Iot Central til vise frem temperatur, humidity osv… som er viktige data for å skape et godt og behagelig miljø til dyrene:

IoT Central/IoT Plug and Play er nytt og hipt så vi claimer Hipster badge. Dasboardet godt leselige grafer, så vi prøver oss på Dash It Out Badge. Vi claimer også Embedding numbuts grunnet IoT-løsningen.

IOT: Reading out messages on Sonos from Dataverse

When tasks are created in our nice little family the kids often doesn’t respond when their parents are sending out push notifications to their devices.

As a way to remind the kids on their tasks we have developed a system that reads out the tasks on the sonos speakers in the house

This setup requires the following components

  • Dataverse Tasks table
  • Power Automate Flow with “Common Data Service (current environment)” and “Service Bus” steps
  • Azure Service Bus
  • Talkity.com free text to speech subscription
  • Some device able to run Python on the same local netwok as the Sonos devices. E.g. a Raspberry PI
  • One or more Sonos Speakers

Power Automate Flow to put messages on Azure Service Bus Queue

Text to speech using Talkify

We have investigating several services for Text to Speech. Azure Cognitive Services have some, but we went the easy route and found one where it was possible to just compose a long url and post it directly and get a MP3 file with the speech back. https://talkify.com

The URL is on the format https://talkify.net/api/speech/v1?text=Clean your room&rate=2&format=mp3&voice=Microsoft Hazel Desktop&fallbackLanguage=English&key=xxxxxxx

The paid verison of Talkify also supports Norwegian, but as we are using the free version only English are supported

Our initial idea was to have a power automate flow step to do fetch the MP3 and upload the MP3 somewhere readable for Sonos (like Azure Blob Storage), but when it was as easy as calling an GET URL we can send that URL directly to Sonos.

Subscribing to the Azure Service Bus Queue and triggering the Sonos Speakers using Python running on a Raspberry PI

So playing files on the Sonos isn’t THAT difficult – especially when the sound files are from publically available URLs

The following Python script is using the SoCo Sonos Library (https://soco.readthedocs.io/en/v0.21/releases/0.13.html) and Azure Sevice Bus SDK v7.

The python script is deployed to a local raspberry Pi that can works as a local controller of the Sonos System.

Note: as long as you are on the same network as a Sonos speaker you can control it without any authentication. Tip for practical jokes 👌👍


from azure.servicebus import ServiceBusClient, ServiceBusMessage

from soco import SoCo
import soco
import urllib

sonos = SoCo('192.168.x.x') #kontor
print(sonos.player_name)

with ServiceBusClient.from_connection_string("Endpoint=sb://acdctaskservice.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=xxx=") as servicebus_client:
        print("ok")

        while True:
                try:
                        receiver = servicebus_client.get_queue_receiver(queue_name="taskqueue", max_wait_time=5)
                        with receiver:
                                for msg in receiver:
                                        print(msg)
                                        sonos.volume = 10
                                        url = "https://talkify.net/api/speech/v1?text="+ str(msg) +"&rate=2&format=mp3&voice=Microsoft Hazel Desktop&fallbackLanguage=English&key=xxx"
                                        print(url)
                                        sonos.play_uri(url)

                                        track = sonos.get_current_track_info()
                                        print(track)
                                        receiver.complete_message(msg)

                except Exception as e:
                        print( "Error: %s" % e )	
Bilderesultater for raspberry pi
Bilderesultater for sonos 1

Hopes for (some of) the following badges:

Embedding Numbnut

Go with the flow

Right now (uses service bus to send events directly)

Thieving Bastards (uses 3rd party SoCo Sonos library and shady text to speech service)

Nasty hacker (sends in the composed text-to-speech url with subscription key and everything to sonos)

And maybe a point or two in the categories

Blow my Mindstorm

Lego Autobots

Lego Shark Thank