There are a lot of guides on how to install Pi-hole on a pi. I just used the win32DiskImager to put Rasbian on it and I did put an ssh.txt file on the SD card to enable SSH. I just had to plug it in the pi and wait for it to show up on the DHCP list of my router so that I knew the IP to ssh to.

I have an archer c7 router which has “DNS rebind protection” so I could not change the DNS to the local IP address.

In order to fix it I had to go to the Archer web interface and follow these steps:

Add in dhcp –> dhcp settings, set the primary DNS to the local ip

in the dhcp –> address reservation “add new “ paste the mac address which you can find in dhcp –> dhcp clients list.

and the local ip which the pi has. This makes sure that the next reboot, the pi/dns server will have the same lan IP.

By the way, I had an issue with the ‘ftl’ part in the installation of pi-hole

I fixed it with : `sudo nano /etc/resolv.conf`

add a line with: `nameserver`

That is the google dns and that makes sure that there is a know dns so that the installation can lookup ip’s and continue.

Save the .conf file and run `sudo bash /etc/.pihole/pihole –r`

That will repair the installation and the FTL part will succeed now that there is an dns entry to the google dns in the resolv.conf

Good luck!

ps. please let me know if you know a way to block youtube ads. No browser plugin, but a pi-hole solution please.

Post on LinkedIn

Recently the Raspberry Pi 4 was announced, But I am currently using my rpi 3test_1 and want to run Rabbit MQ on it in Docker. So I used these two commands to get it to work and I just wanted to share it:

sudo rm /etc/apt/sources.list.d/docker.list;

curl –sL get.docker.com | sed ‘s/9)/10)’ | sh

If you would like to use Docker as a non-root user you should add your user to the docker group:

sudo usermod –aG docker pi

To get Rabbit MQ (which has arm container) on the pi with a management web interface run:

sudo docker run –d –hostname my-rabbit –name some-rabbit –p 15672:15672 –p 5672:5672 rabbitmq:3-management

Then get the ip of the docker container with (but since you added the ports in the previous command, this step can be skipped):

sudo docker inspect –f ‘{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ some-rabbit

Then you can launch a browser and go to http://thatipaddress:15672 and login with 'guest/guest'. If you did not lookup the ip of the container you can use the ip of the pi because you opened container ports when running it.


Good luck!

Post on LinkedIn

It all starts with installing Windows 10 IoT on a suitable device. I used a Raspberry Pi 2 (Model B) and installed the creators update of Windows 10 IoT. You should really get the dashboard from Microsoft: https://developer.microsoft.com/en-us/windows/iot/downloads


It is really easy to get Windows 10 IoT on your device. Here is a small manual https://developer.microsoft.com/en-us/windows/iot/docs/iotdashboard


If you have your Visual Studio 2017 configured, you can easy deploy to it.

The hardware

I bought stuff from aliexpress. I had no rush, so saved a lot of money Smile

I was inspired by this article https://www.modmypi.com/blog/raspberry-pi-plant-pot-moisture-sensor-with-email-notification-tutorial but that referenced to a moisture sensor for 4 gbp and shipping was also 4 gbp. So just the sensor could cost me 9,40 eur. Which makes it less fun, because the whole idea of a raspberry pi is that you can make an internet of things device with little costs.


I spend only 42 cent on the sensor and bought some male/female, male/male, female/female jumper cables too and even an hdmi to dvi connector so I could connect an external monitor, but never used it.

Ali Url snip_20170504112536

€ 0,42

Ali Url snip_20170504112647

€ 2,19

Ali Url snip_20170504113017

€ 1,14


So I had to spend € 2,61 euro including shipping to get the parts for my Pi 2.

Hardware wiring

Connect the probe to the sensor with two wires. Doesn’t matter which goes where.

Connect the sensor to the GPIO

VCC 3v3 Pin 1
D0 GPIO 17 Pin 11






this is a good page for gpio pins: http://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/



I hit a strange bug with the UWP but fixed it, thanks to stack overflow, by manual creating a project.json file. As said, I was inspired by this article but that is coded in Python. My preference language is still C# and I wanted to try win 10 iot. So I rewrote this python code to C# and got this: 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using Windows.ApplicationModel.Background;
using Windows.Devices.Gpio;
using Windows.UI.Core;
using System.ServiceModel;
using LightBuzz.SMTP;
using Windows.ApplicationModel.Email;

namespace BackgroundApplication1
    public sealed class StartupTask : IBackgroundTask
        private const int SENSOR_PIN = 17;
        private GpioPin pinSensor;
        private BackgroundTaskDeferral deferral;

        private const string SMTP_SERVER    = "smtp-mail.outlook.com";
        private const string STMP_USER      = "YOURPLANTSADDRESSHERE@hotmail.com";
        private const string SMTP_PASSWORD  = "YOURPASSWORDHERE";
        private const int    SMTP_PORT      = 587;
        private const bool   SMTP_SSL       = false;

        private const string MAIL_RECIPIENT = "iwillwatertheplants@hotmail.com";

        public void Run(IBackgroundTaskInstance taskInstance)
            deferral = taskInstance.GetDeferral();

            taskInstance.Canceled += TaskInstance_Canceled;

            var gpio = GpioController.GetDefault();

            if (gpio != null)
                pinSensor = gpio.OpenPin(SENSOR_PIN);

                var r = pinSensor.Read();


                var dm = pinSensor.GetDriveMode();

                pinSensor.DebounceTimeout = TimeSpan.FromMilliseconds(50);

                pinSensor.ValueChanged += PinIn_ValueChanged;

        private void PinIn_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs args)
            if (pinSensor.Read() == GpioPinValue.High)
                SendMail("Thirsty", "Plant needs water");
                SendMail("I am good", "Plant is fine again");

        private async void SendMail(string subject, string body)
            using (SmtpClient client = new SmtpClient(SMTP_SERVER, SMTP_PORT, SMTP_SSL, STMP_USER, SMTP_PASSWORD))
                EmailMessage emailMessage = new EmailMessage();

                emailMessage.To.Add(new EmailRecipient(MAIL_RECIPIENT));
                emailMessage.Subject = subject;
                emailMessage.Body = body;

                await client.SendMailAsync(emailMessage);

        private void TaskInstance_Canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason)

I used the nuget "lightbuzz-smtp" to send mail https://github.com/LightBuzz/SMTP-WinRT

Have fun with Windows 10 IoT raspberries etc.

Post on LinkedIn

If you do not yet have a solution to watch pictures and movies on your TV, you really should buy a Raspberry Pi. It is around 40 euro and needs an SD card, USB to micro USB and HDMI cable. And last but not least some free Linux distribution with the famous XBMC. I have blogged before about RaspBMC but I have moved to Xbian because there are more developers involved and some are Dutch. You can reference network locations on your small raspberry xbmc to list the movies inside them. There are several solutions to make that reference. One is samba. This works great, but samba has some protocol overhead. NFS is an other option and is more ‘lightweight’. 


So download the windows installer for Xbian .  Or check this page for other operating system options. Put it on your SD. put the SD in your pi and power up and make sure it is connected to the LAN.

SSH (with putty for instance) to the pi. I have added the mac address in the router for a static IP. so I know how to connect with “ssh xbian@ipadres-of-pi” the default password is raspberry.

exit the menu and create local directories for the mounting points for your TV shows, movies, pictures and music.

I have made a dir named public on the root. which require root access so I had to sudo it.

xbian@xbian /public $ sudo mkdir Moives
xbian@xbian /public $ sudo mkdir Music
xbian@xbian /public $ sudo mkdir Pictures
xbian@xbian /public $ sudo mkdir TV

Next is to mount the network share and make it a permanent mount. So edit the /etc/fstab as root in your favorite texteditor. I used nano.


sudo nano /etc/fstab


The format to mount is: ip of network device:/path to share /local path  nfs so for my CH3Snas of conceptronic (which uses funplug) is: /public/Movies nfs rsize=8192,wsize=8192,timeo=14,intr 0 0 /public/Music nfs rsize=8192,wsize=8192,timeo=14,intr 0 0 /public/Pictures nfs rsize=8192,wsize=8192,timeo=14,intr 0 0\040Shows /public/TV nfs rsize=8192,wsize=8192,timeo=14,intr 0 0


After saving the file and rebooting the pi, it will be mounted. The next step is to configure the XBMC to see that the movies are on the local /public/movies folder.


Good luck and have fun with the Raspberry pi and Xbian (and XBMC)

Post on LinkedIn

A lot of (IT)people have heard of the raspberry pi. It is a tiny cheap computer. There are two models, model A and B. The difference between model A and B is the network (lan) connection.

Order a Raspberry pi

I have bought a model B at http://export.farnell.com/rp/order/

The raspberry pi was ordered at 23th of August and it arrived in the Netherlands at 11th of September. So that’s less then the 3 weeks that element14 mentions on the website. A fast SD card is recommended. So I have bought an 8GB Transcend class 10 card (for only 8 euro’s).

As programmer you should have an HDMI cable available and network connection and micro-usb power supply.

Make a HTPC from your Raspberry

In 2003 there was a project started to make an Xbox act as HTPC. This project was named XBMC (X-Box Media Center). The software is still available for the X-Box, but also for various number of other platforms.

As you might know, you can install various Linux distributions on your raspberry. A lot of them are listed on the official raspberry pi website. There is even a special distro for XBMC on your Raspberry pi called RaspBmc. It is super easy to install (when you run windows). Insert your (fast) SD card and download the Windows RaspBmc installer. Unzip and hit install. When you are done, put the SD in your pi and connect the LAN, HDMI and power up! It might take a while, so grab some coffee. If if fails downloading the updates, remove the power and try again after a few seconds. It should look like this after 30 minutes:



To work with it without usb keyboards or mice, you need a remote. Of course you can get a real remote. Some are supported out of the box. But it is now 2012 and everybody has a tablet and/or smartphone! So I downloaded the official XBMC remote for Android devices.

Airplay support

When you have your remote, you can enable Airplay support, so that you can send pictures and videos from your iPad/iPhone to the RaspBmc. You can enable it under

System –> Network –> “Allow XBMC to receive Airplay content”

Responsive UI

To make the user interface of XBMC more responsive, you can switch the skin to a more lightweight skin. The default skin is confluence

But for a system with limited resources like the raspberry pi, it’s better to move to Quartz.

So now you have a cheap good solution to add Airplay to your TV and play all kinds of files stored on the LAN.

The next step is to add DVR/PVR support and live TV. I can now use airplay from my iPad, so that’s great! Get yourself a Raspberry pi now!

Have fun with your Raspberry Pi!

p.s. the url for the official iOs XBMC remote.

Post on LinkedIn