<!DOCTYPE html><html><head><meta charset="utf-8"><title>marco&#39;s blog</title><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="me" type="text/html" href="https://twitter.com/mwiede"><link rel="me" type="text/html" href="https://github.com/mwiedemeyer"><meta property="og:image" content="/images/marco.jpg"><meta property="og:profile:first_name" content="Marco"><meta property="og:profile:last_name" content="Wiedemeyer"><meta name="keywords" content=".NET,ASP.NET,Azure,Blog,Code,Developer,Hardware,IoT,JavaScript,Microsoft,Microsoft Zertifizierungen,PowerShell,Raspberry Pi,SharePoint,Software,Visual Studio,Web Development,Windows"><meta name="msvalidate.01" content="7961E9266884BEC8452FF9BB78EEAA01"><meta name="description" content="Blog of Marco Wiedemeyer"><meta property="og:type" content="website"><meta property="og:title" content="marco&#39;s blog"><meta property="og:url" content="https://blog.mwiedemeyer.de/index.html"><meta property="og:site_name" content="marco&#39;s blog"><meta property="og:description" content="Blog of Marco Wiedemeyer"><meta property="og:locale" content="en_US"><meta property="article:author" content="Marco Wiedemeyer"><meta name="twitter:card" content="summary"><meta name="twitter:creator" content="@mwiede"><link rel="alternate" href="/atom.xml" title="marco&#39;s blog" type="application/atom+xml"><link rel="icon" href="/favicon.ico"><link rel="stylesheet" href="/css/style.css"><script defer src="https://use.fontawesome.com/releases/v5.0.9/js/all.js" integrity="sha384-8iPTk2s/jMVj81dnzb/iFR2sdA7u06vHJyyLlAd4snFpCl/SnyUjRrbdJsw1pGIl" crossorigin="anonymous"></script><meta name="generator" content="Hexo 4.2.1"></head><body><div id="container"><div id="wrap"><header id="header"><div id="banner"></div><div id="header-outer" class="outer"><div id="header-title" class="inner"><h1 id="logo-wrap"><a href="/" id="logo">marco&#39;s blog</a></h1><h2 id="subtitle-wrap"><a href="/" id="subtitle">Developer and nerd stuff</a></h2></div><div id="header-inner" class="inner"><nav id="main-nav"><a id="main-nav-toggle" class="nav-icon"></a> <a class="main-nav-link" href="/">Home</a> <a class="main-nav-link" href="/archive">Archive</a> <a class="main-nav-link" href="/contact">Contact</a> <a class="main-nav-link" href="/impressum">Impressum</a> <a class="main-nav-link" href="/dsgvo">Datenschutz</a></nav><nav id="sub-nav"><a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="RSS Feed"></a></nav><div id="search-form-wrap"><form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="https://blog.mwiedemeyer.de"></form></div></div></div></header><div id="search-bar"><div id="search-bar-outer" class="outer"><div class="search-icon"></div><input id="js-search-input" class="search-bar-input" type="search" placeholder="What are you looking for?" autocomplete="off" autofocus role="searchbox" spellcheck="true"></div></div><div><div id="js-search-overlay" class="search-overlay search-default-hidden"></div><div id="js-search-no-results" class="search-results-text search-default-hidden"><div><div class="bl">Sorry, we found 0 results. Please try another query.</div><div class="search-close js-search-close"></div></div></div><div id="js-search-results" class="search-results-text search-default-hidden"><div><div class="bl">Showing max 10 of <span id="js-search-resultcount"></span> results</div><div class="search-close js-search-close"></div></div><div id="js-search-results-inner"></div></div><div class="search-footer search-default-hidden">This search is built with Azure Search Service. <a href="https://blog.mwiedemeyer.de/post/2019/Add-Azure-Search-Service-to-my-blog/" style="color:red">Click here to learn how it was done</a>.</div></div><div class="outer"><section id="main"><article id="post-2021/Feuerwehr-SmartHome-Tesla" class="article article-type-post" itemscope itemprop="blogPost"><div class="article-meta"><a href="/post/2021/Feuerwehr-SmartHome-Tesla/" class="article-date"><time datetime="2021-01-02T13:21:00.000Z" itemprop="datePublished">2021-01-02</time></a></div><div class="article-inner"><header class="article-header"><h1 itemprop="name"><a class="article-title" href="/post/2021/Feuerwehr-SmartHome-Tesla/">Feuerwehr + Smart Home + Tesla</a></h1></header><div class="article-entry" itemprop="articleBody"><p>Seit einiger Zeit bin ich wieder aktiv in der Freiwilligen Feuerwehr. Genauer in der <a href="https://www.feuerwehr-hamburg.de" target="_blank" rel="noopener">Feuerwehr Hamburg</a> in der <a href="http://www.ff-fischbek.de" target="_blank" rel="noopener">FF Fischbek</a>.<br>Die Alarmierung erfolgt per digitalem Meldeempfänger:</p><p><img class="lazyload" data-src="/images/2021/ff1.jpg" alt="/images/2021/ff1.jpg"></p><p>Die Ladestation hat außerdem einen Relaisausgang der bei Alarm geschaltet wird. Das eröffnet natürlich eine Menge Möglichkeiten dies in mein Smart Home zu integrieren.</p><p>Dazu habe ich den Relaisausgang auf einen Eingang meiner <a href="http://localhost:4000/post/Mein-Smart-Home/" target="_blank" rel="noopener">Loxone Anlage</a> gelegt. Von dort trigger ich einen NodeRED Flow mit 3 wesentlichen Teilen:</p><p><img class="lazyload" data-src="/images/2021/ff2.jpg" alt="/images/2021/ff2.jpg"></p><p>Im oberen Bereich (gelb) sende ich eine Toast Benachrichtigung an meinen Fernseher. Dieser zeit dann oben rechts ein kleines Popup an (natürlich nur sofern der Fernseher gerade läuft).</p><p>Im mittleren Bereich (blau) prüfe ich mit einem Loxone Baustein, ob sich das Haus im “Nacht-Modus” befindet und schalte dann das Flur Licht ein (und nach 3 Minuten wieder aus). Das passiert natürlich auch durch den Präsenzmelder, wenn ich in den Flur gehe, aber so kann man vom Bett aus schon mal Licht sehen und weckt so nicht direkt alle anderen im Haus. Außerdem deaktiviere ich die Alarmanlage, so dass beim Öffnen der Haustür nicht direkt der Alarm los geht.</p><p>Im unteren Bereich (rot) frage ich ab, ob der Tesla zu Hause ist. Dazu nutze ich die mehr oder weniger offizielle <a href="https://www.teslaapi.io" target="_blank" rel="noopener">Tesla API</a>. Mit der wecke ich dann schon mal das Auto um es daraufhin direkt aufzuschließen. Da man nicht so genau prüfen kann, wann das Auto erfolgreich aufgeweckt wurde, versuche ich einmal direkt (könnte ja bereits wach sein) und dann nach 10 und nochmal nach 30 Sekunden das Auto aufzuschließen.</p><p>Wenn das erfolgreich war, prüfe ich noch ob es ggf. gerade an der Ladestation hängt. Wenn das der Fall ist, deaktiviere ich meine Wallbox, was dann direkt den Stecker freigibt und ich diesen somit sofort abziehen kann.</p><p>Der nächste Einsatz kann kommen.</p></div><footer class="article-footer"><ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Feuerwehr/" rel="tag">Feuerwehr</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Loxone/" rel="tag">Loxone</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/SmartHome/" rel="tag">SmartHome</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Tesla/" rel="tag">Tesla</a></li></ul><a id="comment-2021-Feuerwehr-SmartHome-Tesla" class="comment-count" href="/post/2021/Feuerwehr-SmartHome-Tesla/"></a></footer></div></article><article id="post-2020/Ein-Jahr-Tesla-Model-3" class="article article-type-post" itemscope itemprop="blogPost"><div class="article-meta"><a href="/post/2020/Ein-Jahr-Tesla-Model-3/" class="article-date"><time datetime="2020-06-14T13:21:00.000Z" itemprop="datePublished">2020-06-14</time></a></div><div class="article-inner"><header class="article-header"><h1 itemprop="name"><a class="article-title" href="/post/2020/Ein-Jahr-Tesla-Model-3/">Ein Jahr Tesla Model 3</a></h1></header><div class="article-entry" itemprop="articleBody"><p>Ich habe nun seit einem Jahr ein Tesla Model 3.<br><img class="lazyload" data-src="/images/2020/tesla1.jpg" alt="/images/2020/tesla1.jpg"><br>Heute liste ich hier mal ein paar Daten auf.</p><blockquote><p><strong>Du willst auch einen Tesla kaufen? Dann verwende gerne meinen Referral Link. Damit bekommen wir dann beide 1500km gratis Supercharging. <a href="https://ts.la/marco81154" target="_blank" rel="noopener">https://ts.la/marco81154</a></strong></p></blockquote><h2 id="Verbrauch"><a href="#Verbrauch" class="headerlink" title="Verbrauch"></a>Verbrauch</h2><ul><li>~17.000 km gefahren, ~2900 kWh verbraucht ergibt einen Durchschnittsverbrauch von ~17kWh auf 100km in einem Jar</li><li>Wenn man das komplett zu Hause bei 0,30 EUR pro kWh laden würde, kommt man auf ~5 EUR pro 100 km.</li><li>Man merkt allerdings deutlich, wie sehr die Außentemperatur (und damit die Akkutemperatur) Einfluss auf den Verbrauch hat, wie man hier sehen kann:<br><img class="lazyload" data-src="/images/2020/tesla2.png" alt="/images/2020/tesla2.png"></li></ul><h2 id="Laden"><a href="#Laden" class="headerlink" title="Laden"></a>Laden</h2><p>Hier gibt es eigentlich nichts zu sagen. Vorteil am Tesla ist das gut ausgebaute <a href="https://www.tesla.com/de_de/findus?search=Germany&bounds=56.342228674168624%2C25.36436672399139%2C47.32853293162225%2C-1.4159077863922143&zoom=7&filters=supercharger" target="_blank" rel="noopener">Supercharger Netzwerk</a>. Vor allem da diese eigentlich immer funktionieren und man einfach nur den Stecker reinstecken muss. Keine Ladekartensammlung und x verschiedene Abrechnungssysteme. Außerdem ist das Auto schneller fertig mit laden als die Kinder mit essen.<br>Im ersten Jahr und für Strom für maximal 1500km ist super charging kostenfrei gewesen, denn ich habe bei der Bestellung einen <strong><a href="https://ts.la/marco81154" target="_blank" rel="noopener">Referral Link</a></strong> verwendet. Insgesamt habe ich davon aber maximal 1000km genutzt, da die Supercharger ja nur auf der Langstrecke wirklich relevant sind. Sonst wurde immer zu Hause geladen. Am Urlaubsort dann an entsprechenden AC Ladesäulen in der Regel mit <a href="https://www.maingau-energie.de/e-mobilit%C3%A4t/Autostrom-Tarif" target="_blank" rel="noopener">Maingau</a>, da es dort nur einen Tarif gibt und der im Vergleich auch noch am kostengünstigsten (0,35 EUR/kWh) ist.</p><h2 id="Updates"><a href="#Updates" class="headerlink" title="Updates"></a>Updates</h2><p>Das gute an dem Auto gegenüber den “klassischen” Autos ist, dass das Auto beim Kauf nicht direkt veraltet ist. Stattdessen wird es immer besser, denn es gibt over-the-air Updates. Und zwar jede Menge. Im Durchschnitt etwa alle 4 Wochen:<br><img class="lazyload" data-src="/images/2020/tesla3.png" alt="/images/2020/tesla3.png"><br>Seit ich das Auto habe, kamen so Funktionen wie Netflix und Spiele hinzu, aber auch Sinnvolle Dinge wie die Anzeige von Fremd-Ladestationen im Navi oder auch viele Autopilot Verbesserungen (und manchmal auch wieder Rückschritte.).</p><h2 id="Extras"><a href="#Extras" class="headerlink" title="Extras"></a>Extras</h2><p>Im Prinzip ist das Auto unverändert. Da der Zugang zum Kofferraum allerdings arg in der Höhe beschränkt ist und man manchmal richtig rein klettern muss, habe ich die Standardbeleuchtung durch <a href="https://amzn.to/2BW1bgG" target="_blank" rel="noopener">richtig helle Lampen</a>* ersetzt. Damit sieht man jetzt auch, was ganz hinten drin ist.</p><p>Außerdem haben wir einen Dachgepäckträger angeschafft. Allerdings nicht den Originalen von Tesla. Dieser soll nämlich allein für die Träger 480 EUR kosten.<br>Es gibt aber gute und günstige Alternativen. Nach einiger Recherche in diversen Foren habe ich mich für <a href="https://amzn.to/3f5z3Ga" target="_blank" rel="noopener">diese hier</a>* entschieden. Sie werden einfach drauf gesetzt und geklemmt und sind somit sehr gut geeignet für das Glasdach.<br><img class="lazyload" data-src="/images/2020/tesla5.png" alt="/images/2020/tesla5.png"> <img class="lazyload" data-src="/images/2020/tesla4.png" alt="/images/2020/tesla4.png"><br>Es passen 2 Fahrräder oben drauf und die zwei Kinderfahrräder hinten rein. Noch zumindest und nur wenn man nicht noch groß Gepäck dabei hat. Für Tagestouren perfekt. Für den Urlaub kommen dann nur die Kinderfahrräder auf das Dach und wir leihen uns dann welche vor Ort.</p><h2 id="Logger"><a href="#Logger" class="headerlink" title="Logger"></a>Logger</h2><p>Ich bin im November letzten Jahres vom <a href="https://github.com/lunars/tesla-apiscraper" target="_blank" rel="noopener">Tesla API Scraper</a> umgestiegen auf <a href="https://github.com/adriankumpf/teslamate" target="_blank" rel="noopener">Teslamate</a>. Das wird sehr aktiv weiterentwickelt, läuft ausschließlich lokal (nicht in der Cloud) und hat viele gute Auswertungsmöglichkeiten. Außerdem eine MQTT Schnittstelle, so dass das Fahrzeug gut in die Hausautomatisierung z.B. über NodeRED eingebunden werden kann.</p><p>Ich schalte z.B. die Ladestation im Carport ein oder aus je nachdem ob das Auto zu Hause ist.</p><h2 id="Was-passierte-dann"><a href="#Was-passierte-dann" class="headerlink" title="Was passierte dann?"></a>Was passierte dann?</h2><p>Dann war es soweit. Auf den Tag genau ein Jahr nach Abholung passierte erst das:<br><img class="lazyload" data-src="/images/2020/tesla6.png" alt="/images/2020/tesla6.png"><br>Und dann das:<br><img class="lazyload" data-src="/images/2020/tesla7.png" alt="/images/2020/tesla7.png"></p><p>Offenbar ist ein Fehler in der Drive Unit, also dem Motor das Problem. Das Servicecenter in Hamburg hat aktiv mit mir kommuniziert und war sehr schnell. Sie hatten diesen Fehler in Hamburg wohl bisher aber noch nie… Jedenfalls musste die gesamte Drive Unit getauscht werden. Zum Glück ist der Fehler nicht weit von zu Hause bei Freunden aufgetreten und nicht mitten auf der Autobahn oder im Urlaub. Inzwischen ist wieder alles in Ordnung und ich bin zuversichtlich, dass das das einzige Problem bleibt.</p><p><em>Links mit * sind Amazon Affiliate Links</em></p></div><footer class="article-footer"><ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Tesla/" rel="tag">Tesla</a></li></ul><a id="comment-2020-Ein-Jahr-Tesla-Model-3" class="comment-count" href="/post/2020/Ein-Jahr-Tesla-Model-3/"></a></footer></div></article><article id="post-2019/Start-my-Azure-VM-based-on-my-Tesla-location" class="article article-type-post" itemscope itemprop="blogPost"><div class="article-meta"><a href="/post/2019/Start-my-Azure-VM-based-on-my-Tesla-location/" class="article-date"><time datetime="2019-09-26T16:41:00.000Z" itemprop="datePublished">2019-09-26</time></a></div><div class="article-inner"><header class="article-header"><h1 itemprop="name"><a class="article-title" href="/post/2019/Start-my-Azure-VM-based-on-my-Tesla-location/">Start my Azure VM based on my Tesla location</a></h1></header><div class="article-entry" itemprop="articleBody"><h2 id="My-car-has-an-API…-now-what"><a href="#My-car-has-an-API…-now-what" class="headerlink" title="My car has an API… now what?"></a>My car has an API… now what?</h2><p>I have a <a href="https://www.tesla.com/model3" target="_blank" rel="noopener">Tesla Model 3</a> and it is a computer on wheels. Next-level IoT ;-)<br>I’m using the <a href="https://github.com/lunars/tesla-apiscraper" target="_blank" rel="noopener">Tesla API Scraper</a> to log some data from the car to a local InfluxDb. It has a nice Grafana dashboard like this one:<br><img class="lazyload" data-src="/images/2019/tesla1.png" alt="/images/2019/tesla1.png"></p><h2 id="What-can-I-do-with-the-data"><a href="#What-can-I-do-with-the-data" class="headerlink" title="What can I do with the data?"></a>What can I do with the data?</h2><p>My main developer machine is a VM in Azure (<a href="/post/2018/Create-a-dev-machine-in-the-cloud-for-daily-use/">see previous post</a>). It shutsdown automatically every evening to save costs, but I have to start it manually in the morning.<br>Now that the InfluxDb contains near real-time location data I’ve created a simple .NET core console app to connect to the InfluxDb, gets the latest location and check the distance to my work location.<br>If the car is near my work location the console app posts to an Azure Automation WebHook to start the VM. Awesome!</p><p><img class="lazyload" data-src="https://media.giphy.com/media/ZZkCo8zKWtt2ZgozfX/giphy.gif" alt="https://media.giphy.com/media/ZZkCo8zKWtt2ZgozfX/giphy.gif"></p></div><footer class="article-footer"><ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Azure/" rel="tag">Azure</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/IoT/" rel="tag">IoT</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Tesla/" rel="tag">Tesla</a></li></ul><a id="comment-2019-Start-my-Azure-VM-based-on-my-Tesla-location" class="comment-count" href="/post/2019/Start-my-Azure-VM-based-on-my-Tesla-location/"></a></footer></div></article><article id="post-2019/Track-my-expenses" class="article article-type-post" itemscope itemprop="blogPost"><div class="article-meta"><a href="/post/2019/Track-my-expenses/" class="article-date"><time datetime="2019-07-11T11:00:00.000Z" itemprop="datePublished">2019-07-11</time></a></div><div class="article-inner"><header class="article-header"><h1 itemprop="name"><a class="article-title" href="/post/2019/Track-my-expenses/">Track my expenses</a></h1></header><div class="article-entry" itemprop="articleBody"><h2 id="How-is-it-working"><a href="#How-is-it-working" class="headerlink" title="How is it working?"></a>How is it working?</h2><p>To track my personal expenses throughout a month, I have created a simple web form with <a href="https://vuejs.org" target="_blank" rel="noopener">Vue.js</a> and <a href="https://vuetifyjs.com/en/" target="_blank" rel="noopener">Vuetify</a> and the <a href="https://github.com/Azure/azure-storage-node/releases/tag/v2.10.103" target="_blank" rel="noopener">Azure Storage JavaScript Client Libraries</a>. It is hosted on an Azure static web site.</p><p><img class="lazyload" data-src="/images/2019/expenses1.jpg" alt="/images/2019/expenses1.jpg"></p><p>On save, the entry is stored in an Azure storage queue.<br>From there I have created a <a href="https://flow.microsoft.com" target="_blank" rel="noopener">Flow</a> to append the data to an existing Excel sheet hosted on SharePoint Online.</p><p><img class="lazyload" data-src="/images/2019/expenses2.jpg" alt="/images/2019/expenses2.jpg"></p><h2 id="Add-some-pre-built-machine-learning-to-it"><a href="#Add-some-pre-built-machine-learning-to-it" class="headerlink" title="Add some (pre-built) machine learning to it"></a>Add some (pre-built) machine learning to it</h2><p>Microsoft just launched the private preview to <a href="https://azure.microsoft.com/en-us/blog/enable-receipt-understanding-with-form-recognizer-s-new-capability/" target="_blank" rel="noopener">understand receipts with Form Recognizer</a>.<br>So to make it even easier to enter new receipts, I have added a capture button to my web app to make a photo from the receipt and send it to the Form Recognizer API.<br>The API returns a JSON response with fields for <code>Total</code>, <code>MerchantName</code>, <code>TransactionDate</code>, and a lot more. I grab them and populate the input fields.</p></div><footer class="article-footer"><ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Azure/" rel="tag">Azure</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Cognitive-Services/" rel="tag">Cognitive Services</a></li></ul><a id="comment-2019-Track-my-expenses" class="comment-count" href="/post/2019/Track-my-expenses/"></a></footer></div></article><article id="post-2019/Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status" class="article article-type-post" itemscope itemprop="blogPost"><div class="article-meta"><a href="/post/2019/Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status/" class="article-date"><time datetime="2019-04-02T00:32:00.000Z" itemprop="datePublished">2019-04-02</time></a></div><div class="article-inner"><header class="article-header"><h1 itemprop="name"><a class="article-title" href="/post/2019/Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status/">Visual Studio Code Extension to see the Azure DevOps Agent Status</a></h1></header><div class="article-entry" itemprop="articleBody"><p>We are using <a href="https://azure.microsoft.com/en-us/services/devops/pipelines/" target="_blank" rel="noopener">Azure DevOps / Pipelines</a> for build and release management in our team.<br>I wanted to have a quick look if the hosted build agent is currently free or in use, so I have created a Visual Studio Code Extension to display the info in the status bar.</p><p><img class="lazyload" data-src="/images/2019/devops-status.gif" alt="/images/2019/devops-status.gif"></p><p><a href="https://marketplace.visualstudio.com/items?itemName=mwiedemeyer.devops-build-status" target="_blank" rel="noopener">DOWNLOAD EXTENSION</a></p><h2 id="Extension"><a href="#Extension" class="headerlink" title="Extension"></a>Extension</h2><ul><li>To get started you create a new project with yeoman: <code>yo code</code></li><li>The <a href="https://code.visualstudio.com/api" target="_blank" rel="noopener">docs</a> are really helpful.</li><li>There are a lot of samples for the different use cases <a href="https://github.com/Microsoft/vscode-extension-samples" target="_blank" rel="noopener">here</a></li></ul><p>The source of my extension can be found here <a href="https://github.com/mwiedemeyer/VSCodeDevOpsBuildStatus" target="_blank" rel="noopener">in my GitHub repo</a></p><h2 id="DevOps-API"><a href="#DevOps-API" class="headerlink" title="DevOps API"></a>DevOps API</h2><p>To connect to the Azure DevOps REST API you need a personal access token, which can be obtained from <a href="https://dev.azure.com/YOUR_ORG" target="_blank" rel="noopener">https://dev.azure.com/YOUR_ORG</a> -&gt; Your Account -&gt; Security</p><p><img class="lazyload" data-src="/images/2019/devops-pat.jpg" alt="/images/2019/devops-pat.jpg"></p><p>The API documentation can be found <a href="https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-5.0" target="_blank" rel="noopener">here</a>.</p><p>The specific API I wanted to use is missing in the documentation which maybe means it is not for public use (yet?). However the DevOps portal is using the same API so it works for now:</p><pre><code class="HTTP">GET https://dev.azure.com/[YOUR_ORG]/_apis/distributedtask/resourceusage?parallelismTag=Private&amp;poolIsHosted=true&amp;includeRunningRequests=true</code></pre><p>The parameters are important to see all the running tasks from the hosted agents. The result contains a variable <code>usedCount</code> with the number of currently running jobs. However to get the details who is building what you need a second call to the details API, which comes back as a result from the first call. <a href="https://github.com/mwiedemeyer/VSCodeDevOpsBuildStatus/blob/11ce3bdc3ff24a116963b367fb16ba9fed9f5fd5/src/extension.ts#L92" target="_blank" rel="noopener">See here</a>:</p><pre><code class="Javascript">data.runningRequests[0].owner._links.self.href</code></pre><p>To access the REST API you have to use BASIC auth with a dummy username and the PAT (personal access token) as the password as you can see <a href="https://github.com/mwiedemeyer/VSCodeDevOpsBuildStatus/blob/11ce3bdc3ff24a116963b367fb16ba9fed9f5fd5/src/extension.ts#L80" target="_blank" rel="noopener">here</a> (I’m using the <a href="https://www.npmjs.com/package/request" target="_blank" rel="noopener">request</a> HTTP client library to call the API).</p></div><footer class="article-footer"><ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Azure/" rel="tag">Azure</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/VSCode/" rel="tag">VSCode</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/Visual-Studio/" rel="tag">Visual Studio</a></li></ul><a id="comment-2019-Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status" class="comment-count" href="/post/2019/Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status/"></a></footer></div></article><nav id="page-nav"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="page-number" href="/page/3/">3</a><span class="space">&hellip;</span><a class="page-number" href="/page/43/">43</a><a class="extend next" rel="next" href="/page/2/">Next 🡪</a></nav></section><aside id="sidebar"><div class="widget-wrap"><h3 class="widget-title">About</h3><div class="widget"><div><img class="lazyload" data-src="/images/marco_rund.png" alt="Marco Wiedemeyer" title="Marco Wiedemeyer"><br><p style="font-size:16px;color:#000">I'm Marco Wiedemeyer and I'm a Senior Software Engineer working with Azure and Office 365 for the<br><a href="http://www.ottogroup.com/" target="_blank">Otto Group</a> in Hamburg, Germany.</p><br><div style="font-size:28px"><a href="https://twitter.com/mwiede" target="_blank"><i class="fab fa-twitter" aria-hidden="true"></i></a> <a href="https://github.com/mwiedemeyer" target="_blank"><i class="fab fa-github" aria-hidden="true"></i></a> <a href="https://xing.com/profile/Marco_Wiedemeyer" target="_blank"><i class="fab fa-xing" aria-hidden="true"></i></a> <a href="/contact"><i class="fas fa-envelope" aria-hidden="true"></i></a></div><br><div>Public Key: <a href="https://keybase.io/mwiede" target="_blank" rel="noopener">2E1F 18B4 070A 744F</a></div></div></div></div><a class="twitter-timeline" data-height="900" data-dnt="true" data-theme="light" href="https://twitter.com/mwiede?ref_src=twsrc%5Etfw" target="_blank" rel="noopener">Tweets by mwiede</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script><div class="widget-wrap"><h3 class="widget-title">Recent Posts</h3><div class="widget"><ul><li><a href="/post/2021/Feuerwehr-SmartHome-Tesla/">Feuerwehr + Smart Home + Tesla</a></li><li><a href="/post/2020/Ein-Jahr-Tesla-Model-3/">Ein Jahr Tesla Model 3</a></li><li><a href="/post/2019/Start-my-Azure-VM-based-on-my-Tesla-location/">Start my Azure VM based on my Tesla location</a></li><li><a href="/post/2019/Track-my-expenses/">Track my expenses</a></li><li><a href="/post/2019/Visual-Studio-Code-Extension-to-see-the-Azure-DevOps-Agent-Status/">Visual Studio Code Extension to see the Azure DevOps Agent Status</a></li></ul></div></div><div class="widget-wrap"><h3 class="widget-title">Tags</h3><div class="widget tagcloud"><a href="/tags/NET/" style="font-size:20px">.NET</a> <a href="/tags/AntMe/" style="font-size:12.86px">AntMe</a> <a href="/tags/AutoHistory/" style="font-size:10.48px">AutoHistory</a> <a href="/tags/Avanade/" style="font-size:18.1px">Avanade</a> <a href="/tags/Azure/" style="font-size:15.24px">Azure</a> <a href="/tags/Azure-Functions/" style="font-size:10.48px">Azure Functions</a> <a href="/tags/Azure-Search-Service/" style="font-size:10px">Azure Search Service</a> <a href="/tags/Blog/" style="font-size:15.71px">Blog</a> <a href="/tags/Code/" style="font-size:16.19px">Code</a> <a href="/tags/Cognitive-Services/" style="font-size:10px">Cognitive Services</a> <a href="/tags/Diplomarbeit/" style="font-size:13.33px">Diplomarbeit</a> <a href="/tags/Feuerwehr/" style="font-size:10px">Feuerwehr</a> <a href="/tags/Hardware/" style="font-size:14.76px">Hardware</a> <a href="/tags/IoT/" style="font-size:10.48px">IoT</a> <a href="/tags/JavaScript/" style="font-size:10.48px">JavaScript</a> <a href="/tags/Loxone/" style="font-size:12.38px">Loxone</a> <a href="/tags/Microsoft/" style="font-size:19.52px">Microsoft</a> <a href="/tags/Microsoft-Zertifizierungen/" style="font-size:13.81px">Microsoft Zertifizierungen</a> <a href="/tags/NuGet/" style="font-size:10.48px">NuGet</a> <a href="/tags/Office/" style="font-size:17.14px">Office</a> <a href="/tags/ProxySwitcher/" style="font-size:17.62px">ProxySwitcher</a> <a href="/tags/Raspberry-Pi/" style="font-size:11.43px">Raspberry Pi</a> <a href="/tags/SPC12/" style="font-size:14.29px">SPC12</a> <a href="/tags/SPForms/" style="font-size:10px">SPForms</a> <a href="/tags/SPSync/" style="font-size:14.29px">SPSync</a> <a href="/tags/SQL-Server/" style="font-size:12.38px">SQL Server</a> <a href="/tags/Search/" style="font-size:10.48px">Search</a> <a href="/tags/Serverless/" style="font-size:10px">Serverless</a> <a href="/tags/SharePoint/" style="font-size:19.05px">SharePoint</a> <a href="/tags/SharePoint-2013/" style="font-size:17.62px">SharePoint 2013</a> <a href="/tags/SmartHome/" style="font-size:12.38px">SmartHome</a> <a href="/tags/Software/" style="font-size:19.52px">Software</a> <a href="/tags/Student-Technology-Conference/" style="font-size:12.86px">Student Technology Conference</a> <a href="/tags/Tesla/" style="font-size:10.95px">Tesla</a> <a href="/tags/VSCode/" style="font-size:10px">VSCode</a> <a href="/tags/Visual-Studio/" style="font-size:18.57px">Visual Studio</a> <a href="/tags/Web-Development/" style="font-size:16.67px">Web Development</a> <a href="/tags/Windows/" style="font-size:18.57px">Windows</a> <a href="/tags/Windows-Phone/" style="font-size:11.9px">Windows Phone</a></div></div></aside></div><footer id="footer"><div class="outer"><div id="footer-info" class="inner">&copy; 2021 Marco Wiedemeyer<br>Powered by <a href="http://hexo.io/" target="_blank">Hexo</a> and <a href="http://azure.com" target="_blank">Azure</a> (<a href="https://blog.mwiedemeyer.de/post/Make-my-blog-faster-and-cheaper/">how is it done?</a>)</div></div></footer></div><nav id="mobile-nav"><a href="/" class="mobile-nav-link">Home</a> <a href="/archive" class="mobile-nav-link">Archive</a> <a href="/contact" class="mobile-nav-link">Contact</a> <a href="/impressum" class="mobile-nav-link">Impressum</a> <a href="/dsgvo" class="mobile-nav-link">Datenschutz</a></nav><script src="/js/jquery.min.js"></script><link rel="stylesheet" href="/fancybox/jquery.fancybox.css"><script src="/fancybox/jquery.fancybox.pack.js"></script><script src="/js/lazyload.js"></script><script src="/js/script.js"></script><script src="/js/comment.js"></script><script src="/js/app.js"></script></div></body></html>