Apple iOS Personal Hotspot Annoyances

This week, I ran into an annoying feature regarding the Apple iOS Personal Hotspot function of my iPhone 5s. I had to do some software testing with various WiFi clients. This worked fine, up to the moment that new devices ran into connectivity problems.

The new devices could connect, but got a message that there was no/limited Internet connectivity. Checking the IP address of the devices showed that they had an 169 address assigned.
So the iPhone wouldn't give new IP addresses to the new devices. Earlier devices that connected correctly could reconnect without a problem though.

It turned out to be a 'normal' DHCP problem. The IP address scope on the iPhone was depleted.

The iPhone has a small DHCP address pool that can give out 16 addresses ( Of these 16 addresses are 3 taken by the network, broadcast ( and and iPhone itself ( Leaving 13 addresses for other devices.

In normal situations, this shouldn't be a problem, but when your testing stuff, you can run into a shortage of IP addresses. Besides the shortage of addresses there is another challenge; no way of altering the DHCP lease time, or even clearing the issued IP addresses.

The lease time for the DHCP address is approximately 1 day (85536 seconds), as shown by a little network traffic capturing below.

20:53:29.544291 56:e4:3a:38:4d:64 > 00:23:6c:8d:7f:8e, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 255, id 45806, offset 0, flags [none], proto UDP (17), length 328) > BOOTP/DHCP, Reply, length 300, xid 0xfd7e0982, Flags [none]
      Client-Ethernet-Address 00:23:6c:8d:7f:8e
      sname "Free-Public-WiFi"
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: ACK
        Server-ID Option 54, length 4:
        Lease-Time Option 51, length 4: 85536
        Subnet-Mask Option 1, length 4:
        Default-Gateway Option 3, length 4:
        Domain-Name-Server Option 6, length 4:

There is a function to reset the network settings on the iPhone, but that just clears everything regarding (wireless) network settings, but it doesn't touch the DHCP service in the iPhone. A reboot of the iPhone doesn't do the trick either. So you just have to wait till it clears automagically.

So there is room for improvement......

Posted on July 30, 2015 and filed under Annoying, Apple, iPhone, Tips'n Tricks.

Domotica Babysteps

The first steps with domotica have been made over here. We now have an overview of our electricity and gas usage by using a smart-meter with solar-panels and a Raspberry Pi with Domoticz software.

The image below indicates that the solar panels are delivering 558W at that moment and the smart-meter reports that it's delivering to the net (139W). So we were self sustaining at that moment.

Actual electricity and gas usage

Some statistics over the last couple of days indicate that we produce more electricity than we consume. Don't think that those graphs look anything like this during the winter though :-)

The green columns are topping the blue, so we're making 'money' on those days. And that 'money' will most likely be consumed during the winter period, when solar output is much less.

Electricity consumption during the week where green is good :-)

I'll make a more extensive post about the set-up in due time, but for now, these are the things I used:

Total cost: ~75 euros (Raspberry Pi 2B starter kit + Smart meter cable), and a crap-load of time (experimenting, research, etc.).

Next steps are adding z-wave functionality to the set-up for more monitoring enhancements.


Posted on July 12, 2015 and filed under Raspberry Pi, Personal, Tips'n Tricks.

Custom Raspberry Pi Console Login Message

The Raspberry Pi tweaking continues. I did a fresh install of my first project to make sure that I documented all the steps correctly. To make sure I didn't loose any work I created a backup of the SD card.

The documentation was relatively complete. I did miss some things I added to the Pi, but forgot to document. One of these was a nicer welcome screen when you log in to the Pi via console or SSH.

I added the following to the /etc/bash.bashrc file for all users, or just in the ~/.bash_profile file (at the end):

let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
let secs=$((${upSeconds}%60))
let mins=$((${upSeconds}/60%60))
let hours=$((${upSeconds}/3600%24))
let days=$((${upSeconds}/86400))
UPTIME=`printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs"`

# get the load averages
read one five fifteen rest < /proc/loadavg

echo "$(tput setaf 2)
   .~~.   .~~.    `date +"%A, %e %B %Y, %r"`
  '. \ ' ' / .'   `uname -srmo`$(tput setaf 1)
   .~ .~~~..~.   
  : .~.'~'.~. :   Uptime.............: ${UPTIME}
 ~ (   ) (   ) ~  Memory.............: `cat /proc/meminfo | grep MemFree | awk {'print $2'}`kB (Free) / `cat /proc/meminfo | grep MemTotal | awk {'print $2'}`kB (Total)
( : '~'.~.'~' : ) Load Averages......: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
 ~ .~ (   ) ~. ~  Running Processes..: `ps ax | wc -l | tr -d " "`
  (  : '~' :  )   Local IP Addresses.: `$(hostname -I)`
   '~ .~~~. ~'    WAN IP Address.....: `wget -q -O - | tail`
       '~'        Weather............: `curl -s "|NL|NL001|UTRECHT|" | sed -n '/Currently:/ s/.*: \(.*\): \([0-9]*\)\([CF]\).*/\2°\3, \1/p'`
$(tput sgr0)"

The result is this:

I got the 'original' script form the Raspberry Pi forum, and I altered the IP Address section and the weather forecast.

Posted on June 22, 2015 and filed under Tips'n Tricks, Raspberry Pi.

Rsync And Encrypted Containers

My 'little' off-site Raspberry Pi backup/remote storage project will probably use a combination of Bittorrent Sync and rsync. The latter will be used to backup personal information, but I want that data to be absolutely secure. So I want to use encryption. Preferably by using container that I can mount (e.g. Truecrypt or the Apple OSX encrypted disk images).

The problem with containers is that many backup solutions tend to backup / transfer the entire container when a change occurred. Thankfully, rsync only copies the changes.

Posted on June 20, 2015 and filed under Raspberry Pi, Security, Software, Tips'n Tricks.