• Quick and easy way to tweet from a function app

    After my last post, I spent some time looking through this. Eventually, I found a really lightweight class which does what i need. After spending some time adding some error handling to the api.request() method, I then wrapped a webrequest around it and created a function app. You can find it here: https://github.com/mnbf9rca/TwitterFunctionApp the app takes a simple JSON: You can obtain the oAuth token and oAuth secret by following the instructions on the Twitter Developer site. The Function App will return a JSON with the data returned by the Twitter API, or an error. Note that as long as it gets SOME response from… Continue reading →


  • BMW API now requires location, no bypass available

    Earlier this year, we got a new car, a BMW 3 series. It came subscribed to the BMW ConnectedDrive service, and that comes with an iPhone or Android app. So, of course, I immediately set about deconstructing the traffic to figure out what was going on, inspired by the work of Terence Eden. Unfortunately, BMW appears to have implemented certificate pinning in the time since Terrence wrote his paper, so my favourite tool, Charles Proxy, was useless – the BMW app simply dropped the connection. So – I decided to reverse engineer the iphone app itself. I finally managed to get… Continue reading →


  • Twitter API without libraries – for posting as yourself (e.g. a bot)

    I have to say that the twitter API documentation is absolutely abysmal. It’s impossible to navigate – calls make reference to other calls but the major problem is that there are almost no examples – they almost all recommend that you use a library. So how on earth are you supposed to learn how the API works? How do you write a bot which tweets as itself (such as my https://twitter.com/EnfieldTownBot)? anyway – i found a StackExchange article outlining how to use Twitter’s API from Postman – which handles the hashing for you. Once I got a good grip on the API itself… Continue reading →


  • How to: access the Honeywell Evohome API documentation

    Since writing this post, Honeywell has sold their products to Resideo, the new URL is: https://tccna.resideo.com/WebApi/Help/ApiIntroduction After my last post, I did some more digging. I found that the API is actually documented at https://tccna.honeywell.com/WebApi/Help/ApiIntroduction you need an APP ID to log in with (or OAuth app ID+secret). Continue reading →


  • How to: Manage Honeywell Evohome with Azure Logic Apps

    When we bought our house a few years ago, we totally gutted it and one of the things we installed was an evohome heating system. Honeywell has an iphone app for the evohome, so recently, I decided to explore the API. Unfortunately, Honeywell doesn’t seem to offer a public API, so I spent a bit of time deconstructing the app with the help of the excellent Charles Proxy. I’ve published my logic app here on github  https://github.com/mnbf9rca/AzureEvoHome I also included some logic app recipes for connecting to thethings.io, thingspeak.com and ubidots.com. Enjoy! Continue reading →


About me

I’m rob. I spend my time exploring the world, playing board games with my family, solving complex technical problems, and learning new things. At work, I lead a team of solution architects designing and building complex realtime trading systems. Sometimes i write about things here, or code them on GitHub. I believe a few things that guide what I do and how I do it:

  • Hard things are hard. It takes time, effort and practice to be good at them.
  • Everybody can learn something new every day. When we’re born we know how to eat and cry and that’s about it. Everything else we’ve learnt, and we can keep doing that all our lives.
  • Great teams are fun to work in, and great teams achieve great outcomes. The wider the range of people and perspectives in the room, the better the work.

Look back