<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by TechTeam on Medium]]></title>
        <description><![CDATA[Stories by TechTeam on Medium]]></description>
        <link>https://medium.com/@techteamwriting?source=rss-886305397fff------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*21sGnMztiXftVhGGGKK2jQ.png</url>
            <title>Stories by TechTeam on Medium</title>
            <link>https://medium.com/@techteamwriting?source=rss-886305397fff------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 25 Jun 2026 07:40:52 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@techteamwriting/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Tech Lab: My Smart Home Shops For Me!]]></title>
            <link>https://medium.com/@techteamwriting/tech-lab-my-smart-home-shops-for-me-51c9aaef9c6d?source=rss-886305397fff------2</link>
            <guid isPermaLink="false">https://medium.com/p/51c9aaef9c6d</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[software-architecture]]></category>
            <category><![CDATA[automation]]></category>
            <category><![CDATA[home-assistant]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[TechTeam]]></dc:creator>
            <pubDate>Wed, 03 Dec 2025 15:59:25 GMT</pubDate>
            <atom:updated>2025-12-03T15:59:25.704Z</atom:updated>
            <content:encoded><![CDATA[<p>Most people use their smart home ecosystem for familiar tasks such as turning lights on, or checking who’s at the door. I decided to take a different route and automate my online grocery shopping. With a single tap, my smart home can add items to my online shopping cart for me.</p><p>What started as a small experiment turned into a surprisingly fun project involving Python, Selenium, REST APIs, and a small virtualized environment running on an old laptop. I was able to explore where browser automation can fit in a smart home, and more importantly, <em>why </em>certain architectural decisions matter when building automations that interact with the web.</p><h3>Why Automate?</h3><p>I regularly order groceries online and often buy the same items every week (think fresh produce). But the repetitive flow of:</p><ul><li>Searching for the product</li><li>Opening the product page</li><li>Clicking “Add to cart”</li></ul><p>…quickly becomes tedious when done repeatedly. Multiply that across multiple items and you lose a surprising amount of time, and attention every week.</p><p>My initial idea was to use NFC tags. Each tag would correspond to an item in my kitchen and tapping it with my phone would add the item to my cart. It sounded seamless, as most smart phones have an in built NFC reader, but in practice it wasn’t:</p><ul><li>If I rearranged my kitchen, I would have to move all the NFC tags.</li><li>I needed my phone in hand every time I was in the kitchen.</li><li>It added friction instead of removing it as if I wanted to add multiple items, I would have to navigate to wherever the NFC tags were located.</li></ul><p>I wanted a more seamless interaction: a single button on my kitchen tablet (or phone) that instantly adds items to my cart. No typing, no searching… just tapping. And this brings us to my chosen approach.</p><h3>Automate How?</h3><p>My automation has three parts:</p><ol><li>A Python REST server (running on an Ubuntu VM)</li><li>Selenium WebDriver to perform the browser actions</li><li>Home Assistant (HA) to orchestrate the flow and notify me</li></ol><p>And the automation flow:</p><p><strong>Tap button in HA → HA makes REST call → Python opens webpage → Selenium adds item to cart → Python returns success/failure → HA notifies me</strong></p><p>The whole process finishes in about 10 seconds, compared to ~30 seconds if I did it manually (possibly more) and I’m not tied to my screen during those 10 seconds.</p><p>I wanted a clean separation between my smart home and the automation logic. Instead of embedding Python or browser logic inside Home Assistant, the REST API:</p><ul><li>Decouples the front-end trigger (HA) from the automation logic</li><li>Allows scalability as any item can be added just by passing the product URL</li><li>Keeps HA lightweight as no heavy browser automation is carried out on it</li></ul><p>To accomplish this, I spun up both Home Assistant OS and Ubuntu in Proxmox VMs. This allows me to keep the browser automation isolated from the HA automation. If something crashes, only that VM is affected. Anytime there has to be a change made to either the HA automation, or the server it is possible without bringing down the full service. This also makes any enhancement on either part of the flow more seamless as each tool is designed to be responsible for a single task. The added benefit of Proxmox VMs make it easy to snapshot, backup or clone and even scale if needed. And VMs also mean I do not need to purchase multiple expensive hardware for each of my OS and merely an old laptop is sufficient for a reliable home server.</p><p>Many grocery sites don’t expose public APIs for adding items to a cart, and selenium mimics real user actions. It is also resilient against any UI changes, and would be able to work on almost any site if I wanted to expand this across various platforms. This makes it an ideal choice for this particular use case.</p><p>My early version hard-coded each automation with every item having its own complete end to end flow with its own API request. It worked, but was not scalable. To fix this, I built a single reusable HA script that accepts parameters like the product URL, allowing me to add unlimited items without duplicating code. This also means, enhancements to the automation flow is simpler as I only need to modify it at one place.</p><p>I also included timeouts and error handling which will be sent back to me as a notification so I can quickly identify what the issue is. This enables the automation to always have an end state and not be left waiting for a response from the API endpoint. I also get a notification, if the item was successfully added to cart and clicking on it opens the app on my mobile for quick verification (I don’t use this often because I trust my automation but it is a nice feature to have)!</p><h3>Enhancing the Automation</h3><p>One improvement I’m exploring is the ability to add an entire preset list of groceries with a single button tap instead of one for each item. This would be perfect for fresh essentials like fruits, vegetables and milk which I purchase weekly without fail. I’d also consider allowing the system to automatically add the weekly purchases without my input or even integrating it with voice assistants for hands-free additions.</p><p>I am also going to try to do some data analysis to see how frequently I use up other regular items such as rice and oils and possibly automate the addition based on the last date added to cart. This way, it would be like the smart home knows what I want, and allows me to reduce all the mundane tasks (and honestly this is my vision of a smart home, not just having devices connected to the internet and using our phones merely as a remote control).</p><p>For now, though, I already have the most important feature working… <strong><em>One tap is all it takes, my smart home buys for me!</em></strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/832/1*mtLoJs31HwrQ4QD1B5LntQ.gif" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=51c9aaef9c6d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Tech Perspectives: mmWave Radar Technology]]></title>
            <link>https://medium.com/@techteamwriting/tech-perspectives-mmwave-radar-technology-153116d8e414?source=rss-886305397fff------2</link>
            <guid isPermaLink="false">https://medium.com/p/153116d8e414</guid>
            <category><![CDATA[mmwave]]></category>
            <category><![CDATA[internet-of-things]]></category>
            <category><![CDATA[sensors]]></category>
            <category><![CDATA[smart-home]]></category>
            <category><![CDATA[iot]]></category>
            <dc:creator><![CDATA[TechTeam]]></dc:creator>
            <pubDate>Sun, 13 Oct 2024 11:45:13 GMT</pubDate>
            <atom:updated>2024-10-13T11:45:13.396Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*n89p4stNr_ECTR_qA6kOwQ.jpeg" /><figcaption>Aqara FP2 Sensor. Image courtesy of Smart Home Scene.</figcaption></figure><p>Millimeter wave (mmWave) sensors such as Aqara’s FP2 presence sensors are one of the coolest applications of mmWave available to the consumer market at this time. But before we dive into its applications, we need to understand the underlying technology behind the sensor.</p><h3>What are mmWaves</h3><p>mmWaves get their names from the fact that their wavelengths are between 1–10 millimeters, which also makes them ideal for sensing very small changes in movements. Similar to infrared sensors, mmWave sensors work by transmitting electromagnetic waves. These waves are transmitted with increasing frequency and the reflected signals are processed. Not too dissimilar to ultrasonic sensors which emit sound waves and detect objects’ presence based on the reflection of said sound waves. However, contrary to ultrasonic waves, which are tailored for the transmission of sound waves through one type of medium (air), mmWave sensors tend to be more accurate as they are not optimized for a single transmission medium and these waves can be relied upon regardless of the environmental conditions [<a href="https://www.ti.com/lit/ta/ssztd01/ssztd01.pdf">1</a>]. The changes in signal from mmWaves can also be translated to accurate measurements of distance, velocity, and angle of an object [<a href="https://www.ti.com/lit/wp/spry331b/spry331b.pdf?ts=1723556879692">2</a>].</p><p>So what about motion sensors? Typically motion sensors use Passive Infrared (PIR) signals. Instead of transmitting signals, they detect changes in the surrounding thermal environment. In a nutshell, when a warm body passes the sensor, the change in IR in the surroundings is what a PIR sensor detects [<a href="https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/how-pirs-work">3</a>]. So while they are good at catching large-scale movements, they may not be as accurate for smaller range of motions (I always get frustrated when I have to wave my hands vigorously before motion sensor enabled taps detect me or when a motion sensor light times out). mmWave sensors can be so accurate to the extent of detecting one’s breathing.</p><h3>Applications of mmWave Sensors</h3><p>mmWave sensors are currently being used in a whole host of applications. One area of huge promise is in <a href="https://www.youtube.com/watch?v=8LOyxzPXw8E">automated parking</a>. It can also assist in detecting rear seat occupancy so you don’t accidentally leave your kid locked in the car. In fact, Tesla has also filed to use mmWave sensors in its cars [<a href="https://www.topcarstesla.com/blogs/news/tesla-resumes-use-of-millimetre-wave-radar#:~:text=On%20June%207%2C%202022%2C%20Tesla,FCC%20regarding%20millimeter%20wave%20radar.)">4</a>]. But I am more interested in the smart home applications of these sensors — which also make their potential accessible to the average consumer!</p><p>Such sensors can continue detecting you when you are sitting still on a couch, unlike a motion sensor. This means you can now safely set home automations to light fittings purely based on if someone is in the room or not. Additionally, one would not even need any additional fall detection hardware or tools as the high accuracy of identifying subtle movements can be beneficial in detecting falls! The accuracy of the sensors ensures they can detect multiple people and even which part of a room one is in (zone detection). Consequently, you can even have automations based on how many or where someone is in the room (imagine having the television turned on automatically if you are sitting on the couch). If you have several smaller lights in the room, you can turn on the lights individually based on where you are automatically as you traverse the room — how cool is that!</p><h3>Future of mmWave Sensors</h3><p>This technology has the potential to change the way we interact with gadgets and digital interfaces as shown by Soli, a gesture detection technology based on mmWaves developed by Google [<a href="https://modernmobile.cs.washington.edu/docs/soli.pdf">5</a>]. Such accurate detection could give rise to interactions with your television consoles, computers, or other devices without the need for a remote — just your hands and gestures. Google’s vision of gesture detection and how it can enhance human-computer interactions is portrayed <a href="https://www.youtube.com/watch?v=r-eh2K4HCzI">here</a>. Just like how Bluetooth and USB are standards, if gesture-based interactions have a specified standard, we could even see a unified way of interaction between devices, giving rise to an overall better user experience. While these sensors are fitted in cars to assist with automated parking, just imagine if we use them to control in-car entertainment systems hands-free. This could result in a reduction in distraction for drivers, making for a safer experience.</p><p>Another area in which these sensors could be deployed would be in retail and event settings to manage crowds, or even identify popular zones. By detecting precise movements or counting individuals, organizations can identify how and where customer interactions occur, leading to a data-driven approach in deciding what works and what doesn’t in terms of store layout, product displays, and the likes.</p><p>The ability to track micromovements makes the technology extremely viable in healthcare settings — not just for fall detection but they can be a potential substitute for wearables or contact devices that are currently used in tracking respiration or heart rate, aiding the comfort of patients [<a href="https://dl.acm.org/doi/10.1145/3627161">6</a>]. With even better data processing and modelling, in the near future they could even be used to help detect certain diseases or medical conditions [<a href="https://www.sciencedirect.com/science/article/pii/S2667102623000748">7</a>]. As mmWave radar technology becomes more integrated into healthcare systems, its applications will expand to enable real-time, remote, and highly accurate patient monitoring, potentially reducing the burden on healthcare systems and improving patient outcomes. With advancements in AI and data analytics, mmWave technology will also become more precise, comfortable, accessible, and actionable.</p><p>As the technology continues to advance, it’s exciting to think about how mmWave sensors will evolve. Their ability to detect fine movements with remarkable precision opens up new possibilities from device interactions to seamless home automation and improved vehicle safety features. Its integration with complex data models and analytics will only enhance its capabilities, making it an essential tool. With companies like Tesla, Google, and others investing in mmWave’s vast potential, we may soon see even more innovative and ubiquitous uses for this technology in everyday life as we are just beginning to tap into its full range of possibilities.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=153116d8e414" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Tech Perspectives: Why you Should Not Rely on ChatGPT]]></title>
            <link>https://medium.com/@techteamwriting/why-you-should-not-rely-on-chatgpt-140f24ecf98d?source=rss-886305397fff------2</link>
            <guid isPermaLink="false">https://medium.com/p/140f24ecf98d</guid>
            <category><![CDATA[ai-ethics]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[openai]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[genai]]></category>
            <dc:creator><![CDATA[TechTeam]]></dc:creator>
            <pubDate>Wed, 25 Sep 2024 13:49:01 GMT</pubDate>
            <atom:updated>2024-09-25T14:03:00.758Z</atom:updated>
            <content:encoded><![CDATA[<p>ChatGPT took the world by storm when it was released to the public and along came the hype around generative artificial intelligence (genAI). And the hype is not unfounded — its benefits are easily identifiable by many. From generating essays and travel itineraries, to even writing code. Everyone started jumping on the hype train. But for all it’s benefits, we should be wary — it is not perfect. To understand some of the flaws behind genAI, we first need to understand how it works.</p><p>GenAI models churn out an output based on statistical models, analysing the input elements and identifying potential patterns and the likely output <a href="https://www.ucl.ac.uk/teaching-learning/generative-ai-hub/introduction-generative-ai">[1]</a>. For instance, a text based genAI model like chatGPT is trained on an insane amount of text based datasets, trying to figure what the next likely character or word will be; while an image generating platform would be trained on images (pixels), and it will attempt to identify what shade the next pixel should be when generating an output. The outputs generated are kind of in a blackbox even to the engineers who developed such models. Even if the training data is 100% accurate, the data may not cover everything under the sun, so it ends up hypothesising and making a best guess effort in generating a response. This results in the very first problem, hallucinations.</p><p>Since these models attempt to merely predict the next best correct output, they do not possess the capability to understand the context of the question asked by the human user. There is no logical reasoning applied to questions asked. Subsequently, the response may not be the most accurate, and worst yet, may contain falsehoods. In general hallucinations can include a variety of inaccuracies, from contradictions, to falsehood, to even nonsensical answers. One <a href="https://chatgpt.com/share/0636c7c7-3456-4622-9eae-01ff265e02d8">popular hallucination making the rounds</a> now can be seen on reddit posts where chatGPT consistently miscounts the number of letter ‘r’ in the word ‘strawberry’. You can view more examples of hallucinations over <a href="https://flyingbisons.com/blog/hallucinations-of-chatgpt-4-even-the-most-powerful-tool-has-a-weakness">here</a>. Overly relying on the responses as the absolute truth will be detrimental. Take for example a search I did recently where half of the suggestions were not even 2-syllables even though I explicitly asked for them and ChatGPT acknowledged the request.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kWtJDp9iwq57k6AhoJzPmA.png" /></figure><p>That said, genAI models are continuously being improved upon [<a href="https://openai.com/index/gpt-4-research/">2</a>], and the occurrence of hallucinations are likely to reduce as models get better over time. But for as long as models are not 100% accurate, we must always verify our sources, and do a cross-reference before accepting genAI responses as the ultimate truth.</p><p>Secondly, genAI models can be susceptible to bias. The models are only as good as the data they were trained on. If the data is inherently bias, it could be carried forward to the resulting output. Take for example, Correctional Offender Management Profiling for Alternative Sanctions (COMPAS) — where Black people had a 44.9% chance of being incorrectly identified to be at risk of recidivism, while for white individuals, it was 23.5%. This means the algorithm was almost 2 times more likely to criminalize Black people incorrectly, potentially perpetuating a racial bias [<a href="https://www.propublica.org/article/how-we-analyzed-the-compas-recidivism-algorithm">3</a>]. While COMPAS is not a genAI tool, the same limitation applies. Attempting to understand these models is another issue with genAI as their models tend to be complex, and convoluted [<a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9138134/#:~:text=Transparency%20is%20more%20problematic%20for,non%2Dtransparent%20%5B1%5D">4</a>]. And even if we unveil and understand these models better, there tends to be a greater risk involved — giving rise to the AI transparency paradox [<a href="https://hbr.org/2019/12/the-ai-transparency-paradox">5</a>]. Exposing such information could result in vulnerability attacks.</p><p>There are also plenty of other associated (ethical) problems such as deepfakes [<a href="https://link.springer.com/article/10.1007/s13347-021-00459-2">6</a>] or copyright issues with genAI image models [<a href="https://hbr.org/2023/04/generative-ai-has-an-intellectual-property-problem">7</a>], but that would make for a lengthy article. The problem with genAI does not just stop with the models themselves. They also pose a risk to us. Over-reliance on such tools could result in stifling our creativity and critical thinking as we do not think as much, potentially under stimulating our brains neither do we verify sources, and ensure the response is factually correct. This could lead to a wider and rapid spread of misinformation.</p><p>But all hope is not lost — genAI can still be useful if used right. These tools can help in easing and speeding up our work, and assist in learning, provided they are not abused. They should complement human efforts. This can be done if we are conscious of their limitations and bias. We should take an active role in verifying genAI tools’ responses and exercise ethical awareness and responsibility. Maybe then, we will be able to overcome the risks associated with such tools.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=140f24ecf98d" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>