TLDR; Hold both the On button and the scene 1 button on the remote while near the bridge performs some kind of reset that isnt the same as a hard reset.

I have had a set of Hue lights since I was givent them while at Braintree's Battlehack last year. When I first set them up I used the hue bridge but shortly bought a second hand living colors remote. I completely disconnected the hub and packed it away.

Then amazon put a load of the living color Blooms and Aura's on sale, and I bought myself some new toys.

I dragged out the bridge and quickly found that I just couldnt get the remote to transfer the lights via touchlink.

A quick search of the forums brings up plenty of suggestions and solutions, however as it typical none of them helped at all. The most common being to telnet into the bridge on port 30000. When I tried this the bridge refused the connection.

After almost giving up I stumbled across a button combination not listed in the remotes manual... If you put the remote near the bridge and hold BOTH the on button and the scene 1 button the bridge will preform some kind of reset (Possibly channel?), once it restarts I found I was able to perform a normal touchlink connection.

Hopefully this information helps someone else!

I thought I'd share this and save other people searching!

I hadn't driven my car in a while and the battery went flat, I took the battery into the house and charged it up using a portable charger. When I reconnected the battery the alarm immediately began to sound. I did lots of searchs and came up with many proposed solutions such as putting the key in the door and locking -> unlocking -> locking. None of these worked. Finally I found a solution and it's very simple!

Reconnect the battery and let the alarm go off, they make sure that every door, boot and bonnet is closed and locked. After about 30 seconds the siren will stop and shortly after the indicators will all start flashing. (I assume this is the alarm system performing a self check and reseting)

Once the indicators have stopped flash I opened the car using the key fob and success the alarm didnt go off!

One of the more painful aspects of setting up a private realm is getting your address_translation.conf file setup correctly. It still causes me problems each time I setup a new realm!

As realms are not always run on a single public facing server the address_translation.conf file is required to inform the game server what port forwarding is in effect.

The conf file is split into several sections to help keep track of the different records that are required:

  • w3route server ip - This is used for Warcraft 3 so I shall ignore this for now but is pretty similar to the other sections
  • Game Translations for clients - This section is used to define clients that are playing from inside the network
  • Diablo II Charactar Server (d2cs) - This section sets up the forwarding required to get from your gateway / router to d2cs
  • Diablo II Game Server (d2gs) - This section sets up the forwarding required to get from your gateway / router to d2gs

Diablo uses two different network topologies depending on if the realm is Open or Closed. For Closed it uses a Star Topology which means all client traffic goes to the game server and then is repeated back out to the other clients. Open realms instead use a Mesh Topology where each client sends its traffic to every other client.

You need to keep both of these in mind as it will help you plan out what translations you need to setup. Since all traffic goes through D2GS for Closed realms you only need to setup translations for clients outside the network to contact the game server. However for Open realms you will also need to setup translations for each client within the network.

Each address translation is made up of 4 parts:

  • The original address
  • The translated address
  • Client addresses that should be excluded from the translation
  • Client addresses to include in the translation

For example, The game server is being run on a normal home internet connection. The game servers original address might be 192.168.1.100, however this IP will be inaccessible for anyone outside the local network. The external IP for the home internet is 88.77.66.55. First we need to setup port forwarding on the router to forward ports 4000, 6112 - 6114, 6200 to 192.168.1.100, Next we need to setup address tranlation to use the port forwards. However we only want to translation to happen for clients outside of the local network as they can already access the server, Therefore we set the exluded addresses to 192.168.1.0/24, the /24 is a netmask and translates to 192.168.1.0 - 192.168.1.255.

The D2GS entry that we need to add to address_translation.conf:

192.168.1.100:4000      88.77.66.55:4000        192.168.1.0/24      ANY

The D2CS entry that we need to add to address_translation.conf:

192.168.1.100:6112      88.77.66.55:6112        192.168.1.0/24      ANY

For Open realms we also need to setup port forwards and translations for each internal client. So for client 192.168.1.50 we need to add a port forward on the router for port 6112, however as this external port is already being forwarded to the game server we need to pick a different external port. Lets use port 6118 externally. Below is the address translation record, you will see that it is not only translating the IP address but also the port:

192.168.1.50:6112       88.77.66.55:6118        192.168.1.0/24      ANY

Diablo 2, in my opinion, is one of the best games ever made. It was released in 2000 and to this day it still has the power to keep me playing for hours.

Thankfully even though its been 14 years Blizard still maintains the realm servers to allow online play, and they are still packed with players, which is a rarety as most online enabled games last only till their successor is released.

In order to maintain the love I have for D2 into the foreseeable future I have decided to setup my own private realm. This is made possible by some fantastic work to devlop PVPGN and D2GS

PVPGN

PvPGN (Player vs Player Gaming Network) is a bnetd based gaming network server emulation project. It currently supports all Battle.net games (such as StarCraft, Diablo II, and Warcraft III), and most Westwood Online clients (Tiberian Sun, Red Alert 2, Yuri's Revenge). It gives you the power to run your own server, manage your own users, run your own tournaments, etc.

PVPGN comes in both windows and linux flavours, I personally prefer using the linux binary. Although it also has the ability to act a server for Westwood Online games and other Battle.net games I wont cover it in this post.

Installation Instructions

Files (Sourceforge)

D2GS

D2GS is the Diablo 2 game server, it only comes as a windows binary.

For the D2GS installation you will also require all the files from a 1.13d installion of D2 or D2LoD. I just copied the entire contents of the game folder into the D2GS folder.

Instructions for setting up D2GS can be found in a README in the server folder.

D2GS 1.13c - This works for 1.13d for me

Setup

Hardware

I am using VM's to construct my realm but physical machines work just as well.

Ubuntu 12.04

This will be used to run PVPGN

Windows 7

This will run D2GS

Port Forwarding

The following port forwards are required:

6112 to 6114 - D2CS, D2DBS (PVPGN)
6200 - BNETD (PVPGN)
4000 - D2GS Server
8888 - D2GS Telnet Access
4005 - WWOL (PVPGN)

You dont really need 4005 unless you are planning to use the server to host Westwood Online games.

Problems

During the setup I ran into a few problems, I've tried to document my solutions below.

Failed to join game

When trying to create a new game the process hangs at the cathedral door followed by the message 'Failed to join game' The problem is that the D2 client is unable to connect to the game server.

This can be broken down into a few possible fixes:

  1. Address Translation - The realm server (D2CS) did not provide the client with the correct IP to connect to. Check your d2cs.log file and make sure that the correct IP is being sent,if not you need to edit the address_translation.conf file.

  2. Port Forwarding - Check port 4000 is forwarding correctly to the game server and not to the realm server.

  3. Firewall - Make sure your Windows machine running D2GS isnt firewalling the connections

  4. D2GS Not Running - Make sure your D2GS service is running correctly. If it shows as started then check the D2GSSVC.log file in the D2GS folder for any errors. The one that always catches me out is covered seperately below.

D2GS not running

This is caused by running D2GS on a 64 bit system, you need to change the location of the registry settings as per this forum post: http://forums.pvpgn.org/index.php?topic=1326.0

EXPORT //HKLM/SOFTWARE/D2Server/D2GS to desktop. 
Right click .reg file -->  Edit.

Find:
[HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS]

Replace With:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\D2Server\D2GS]

Merge with registry.
Telnet on port 8888.
Marvel in your own awesomeness.

No realms are available right now

The message "No realms available right now" is displayed after you log into Battle.net

This meants you havent correctly setup a realm in the realm.conf file (/usr/local/etc/realm.conf), double check the example in the file.

Only users inside / outside the network running the realm can connect

This caused me a fair few headaches. Firstly you have to play with address_translation.conf to make sure you are giving the correct ip addresses to each of the clients, I found the best way to check this is to watch d2cs.log as users try to connect.

The second, and the way that worked for me, is to setup unique port forwards for each user inside the LAN and then add these to the address_translation.conf file.

For good or bad I have decided to migrate my existing Hetzner dedicated server to an identical one at Hetzner that is €11 cheaper a month.

Since I'm getting to start from scratch Im going to correct a few things I mis-setup last time, The first being to turn off the software RAID and add both disks to LVM for a single useable 5.5TB volume. I realise that most would recommend against this as it leaves me open to hardware failure, however this isnt a production server and the entire thing will be backed up to a RAID5 NAS.

Rambling aside the first job was to ssh into the Hetzner rescue system and run the system installer.

Terminal

$
installimage

Select Virtualization from the list

installimage main screen

Then select the version of Proxmox (I chose Proxmox - Wheezy)

installimage main screen

Once Proxmox has been selected you will need to edit the config script to turn off software raid and use LVM rather than the default partitions. Change your config script to look like this:

#
# Hetzner Online AG - installimage
#
# This file contains the configuration used to install this
# system via installimage script. Comments have been removed.
#
# More information about the installimage script and
# automatic installations can be found in our wiki:
#
# http://wiki.hetzner.de/index.php/Betriebssystem_Images_installieren
#

DRIVE1 /dev/sda
DRIVE2 /dev/sdb
SWRAID 0
SWRAIDLEVEL 1
BOOTLOADER grub
HOSTNAME Proxmox-VE.localdomain
PART /boot  ext3     512M
PART lvm    vg0       all
LV vg0   swap  swap      swap         8G
LV vg0   root   /        ext4         all
IMAGE /root/.oldroot/nfs/install/../images/Debian-70-wheezy-64-minimal.tar.gz

Press f10 to exit and save your changes. The install will then begin, once it finishes you will be returned to the command prompt, just reboot the server and reconenct via ssh.

Our next task is to setup the second physical disk and add it to the LVM

Setup the partition table using gdisk:

Terminal

$
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gdisk /dev/sdb
  Command (? for help): o #create a new empty GUID partition table (GPT)
  
  This option deletes all partitions and creates a new protective MBR.
  Proceed? (Y/N): Y

  Command (? for help): n #add a new partition
  Partition number (1-128, default 1): 1
  First sector (34-2047, default = 34) or {+-}size{KMGTP}:
  Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:
  Current type is 'Linux filesystem'
  Hex code or GUID (L to show codes, Enter = 8300): 8e00 #This is Linux LVM

  Command (? for help): w #write table to disk and exit

  Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
  PARTITIONS!!

  Do you want to proceed? (Y/N): Y

Now we just want to add the new space to LVM

Terminal

 
$
 
 
$
 
 
$
 
 
$
#Add a new Physical Volume to LVM
pvcreate /dev/sdb1
#Extend the Volume Group onto the new Phiyscal Volume
vgextend vg0 /dev/sdb1
#Add the new free space to our root Logical Volume
lvextend -l +100%FREE /dev/vg0/root
#Extend the file system to the new space
resize2fs /dev/mapper/vg0-root

Success!