Pinning applications from a network share to the Windows 10 taskbar

Pinning applications from a network share to the Windows 10 taskbar

Pinning applications to the Windows taskbar, usually often-used applications for the current user, is a very common and simple action. Unfortunately, Windows does not allow that for applications that are located on a network share. Since it can be useful to share applications this way, for example, to simplify deployment to multiple computers, this can present a problem. Additionally, there isn’t an official interface for pinning applications (even local ones) to the taskbar, so one has to jump through a few hoops to accomplish that.

While researching solutions for this, I found several blog posts concerning this issue, but none seemed to completely solve this under the most current Windows 10 version and network-located applications.

Approach

My approach (temporarily) copies the network-located application to a local folder, pins the application to the taskbar (to circumvent the network restriction) and changes the path of the shortcut to the original network-located application. Afterward, it deletes the temporarily-stored application copy.

This worked fine on multiple systems for over 2 years now. Obviously, this is a relatively heavy operation and is better suited for small to medium applications, but should also work for larger applications if the transfer time and temporary storage are acceptable.

Solution

Since I had to automate this for a project, I refactored this functionality to two applications (1 CLI and 1 GUI) and published it to GitHub, aptly named PinToTaskbarHelper. You can find the project under this link.

Environmental sensor: first prototype, first problems

Environmental sensor: first prototype, first problems

Sensors are a big part of the components that make up “JarvisSuite”. These include basic types of sensors, like for presence detection and temperature measuring, as well as a few more special types.

Currently, these were built in varying levels of prototype states:

  • Presence detection sensor (via PIR, or passive IR)
  • Temperature sensor
  • Door sensor
  • Window sensor
  • Passage sensor (via light barriers)
  • Bed occupancy sensor

Since it makes sense to have both presence detection and temperature measurement possibilities in every room, one could combine those as one “environmental sensor” component. As a bonus, we can throw in a humidity sensor as well to complement the temperature measuring.

Design

During the development of my touch-enabled light switch (blog post planned), I designed and built a custom case for it. This case was made by cutting acrylic glass (made possible with the laser cutter of a local maker lab) and glue them together with special acrylic glass glue. The front of this case design was partially see-through to have a visible “touch area” and allow a LED to shine through. I’ll expand more on this in a later blog post.

This case design can be easily modified to have an opaque front (since we have no use for touching and LEDs) with an exact cutout of the dimensions for the PIR module. The PIR module is named HC-SR501 and is the go-to type for cheap and readily available PIR components.

Summed up, this means we’ll have 4 main components:

  • ESP8266 for logic and connectivity
  • PIR sensor: HC-SR501
  • Temperature sensor: DS18B20
  • Humidity sensor: BME280

Unfortunately, I ordered the wrong component for the humidity sensor, thanks to ordering deep into the night and a really unfortunate or misleading eBay article label. I received the BMP280 instead of the needed BME280, which can only measure pressure, not humidity. Thus, we’ll just leave humidity measuring out of the prototype.

The circuit board is rather simple and straightforward, as it only consists of paths to connect the voltage and ground ports as well as data lines from the sensor components to the ESP8266’s GPIO pins. I am a developer, not an engineer, who furthermore isn’t considered to be especially handy, so please keep that in mind when looking at the picture of the circuit board. I just learned to solder, so I’d imagine my soldering skills are just enough to get the job done.

 

Put together, the case and the circuit board make up the complete environmental sensor module:

Problem

Unfortunately, after building the first complete environmental sensor prototype based on the aforementioned design, a problem occurred that was not present in earlier breadboard-based prototypes: Having the HC-SR501 and the ESP8266 this close to each other seems to result in a lot of false positive measurements by the PIR module. The reason for this, as I understand it based on quite a lot of forum posts I’ve found, seems to be radio frequencies from the ESP8266’s antennas which interfere with the seemingly sensitive HC-SR501.

I found the following tips to mitigate and/or fix this interference:

  1. Move those two components away from each other
  2. Shield the HC-SR501 from the ESP8266 with the help of aluminum foil
  3. Add a resistor between the HC-SR501’s Data Out and the ESP8266’s pin input
  4. Add a ceramic capacitor

As of yet, I only had time to try out tip nr. 2, which didn’t seem to have any effect. Since this is a rather complicated side project, I don’t have a lot of time I can invest in it, so this may take some time to resolve this issue, but I’ll report on my progress in a follow-up post as soon as I have more details.

Introduction to “JarvisSuite”

Introduction to “JarvisSuite”

Over the years, I found various technical topics to be interesting, but home automation (or Smart Home, as it’s nowadays called) was always something special. But it was only recently, that I had the opportunity to really get into it.

As I am currently finishing my master’s degree in applied information science, the opportunity presented itself to find topics of interest and work on them in the context of university courses. I started with two projects, namely

  • “Entwicklung einer Heimautomationslösung mit Multi-System-Kompatibilität und Tablet-Interface”
    (english: Development of a home automation solution with multi-system-compatibility and tablet interface)

and

  • “Entwicklung von vernetzten Benutzungsschnittstellen für die Heimautomation”
    (english: Development of distributed user interfaces for home automation).

The former is a system to control various lighting systems (Philips Hue, for example) with a customized tablet-based user interface. The latter was a project born in need. As I wasn’t overly happy with the (affordable) physical user interfaces that could integrate advanced features (like changing light temperature, brightness or color), I decided to dive into topics like Arduino-based development and just build my own. These two projects could be used together and are in use in my own flat for nearly a year now, codenamed “JarvisSuite”.

Following these two projects, I am currently working on a research project titled “Benutzerzentrierte Entwicklung eines Systems zur ortsensitiven Steuerung von Elementen eines Smart Homes” (english: User-driven development of a System for Location-aware element control in a smart home). This project extends the mentioned JarvisSuite-system with multiple sensors (for example, presence and occupancy detection) as well as a rule engine to allow the user to define rules to customize the behavior of the smart home based on events like presence changes (e.g. person enters the room).

Sidenote: Clearly, “JarvisSuite” is only a temporary name. While the reason for the name is obvious, it is not a valid name for a commercial product. But since I currently don’t have plans to evolve JarvisSuite into a distributable and/or complete software solution and it will probably remain more or a hobby project, I don’t see a problem here.

In the following days and weeks, I’ll continue in describing more details of the mentioned projects and explain what my next steps will be. As I’m very new to writing blog posts, I’ll currently making my plan for it up as I go. Hopefully, this will result in a somewhat concise and informative journey for potential readers.

New blog, new beginnings

New blog, new beginnings

Welcome to my new blog! A few years ago, I already had a (german) blog with a few posts on it, but I quickly lost interest and/or didn’t get around to writing more posts.

So why try again? Well, primarily I’d like to have a place to write about a few projects that I am currently working on. Furthermore, I was intrigued by the idea to have a platform for interacting and participating with the development community in this way.

Additionally, I’d like to practice my skill of writing in the english language. Being in the world of computers, one is always surrounded by english. But I rarely get the chance to write something in english besides a quick mail, StackOverflow post or forum post.