Spurred on by the Twitter discussion regarding the old Backnet network and Electron Club founding, I went for a rummage through some backups.
— Andrew Elwell (@elwell2000) October 25, 2015
Fond memories of the Backnet Assigned Names And Number Authority, BANANA. Whilst I still use 172.24.32.0, I’ve expanded somewhat from the /27 to /24. My home network won’t fit on a /27 these days! Gordon is on 172.24.33.0/24, my parents on 172.24.34.0/24. The legacy lives on a little, and still technically within the allocated BANANA range
Archive.org to the rescue! https://web.archive.org/web/20050421022318/http://wiki.backnet.org/BANANA/Addresses
Like I say, these are from backups. The file this came from was last modified in 2004!
Current Address Allocations
The majority of these addresses also route to the Backnet network
GlasgowNet currently runs on the IP range 172.24.32.0/21, and we have 172.24.40.0/21 as well for overflow usage.
We also use AS numbers 65088 – 65103 from the private AS numbers range defined by IANA
You can see the current routing table on one of the routers at the looking glass
172.24.32.000/27 – AS65089 – Kyle Gordon
172.24.32.032/27 – AS65096 – Justin Hayes
172.24.32.064/27 – AS65090 – Neil McKillop
172.24.32.096/27 – ICM
172.24.32.128/27 – AS65092 – Colin Petrie
172.24.32.160/28 – Kenny Duffus
172.24.32.176/30 – Andrew Elwell
172.24.32.180/30 – AS65094 – William Anderson
172.24.32.184/30 – AS65091 – Gordon Pearce
172.24.32.188/28 – AS65093 – Stinkpad
172.24.32.204/27 – AS65095 – Matthew Keay
Amazon AWS recently released the IOT service, a utility for lightweight devices to create and consume messages on the internet, and also in the case of AWS to leverage the rest of their feature set, such as Kinesis, Lambda, S3, DynamoDB, etc.
Of course, I didn’t fancy using the AWS SDK to do this. I just wanted to get mosquitto_pub and mosquitto_sub working on the command line, so see how easy it would be to get plain old MQTT working with it. It’s not that difficult.
First off, create a working directory, and download the root CA file for your client to use
wget https://www.symantec.com/content/en/us/enterprise/verisign/roots/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem -O rootCA.pem
Now that you have the root certificate, head to the AWS IOT console, sign up or sign in, and click on the “Create a Resource”, and then the “Create a thing” button. Give it a name, and optional attributes, and hit “Create”. Once the page loads, you can now select your new “Thing” and aim for the “Connect a Device” button. You can then choose which SDK to use. That’s up to you, but after you select it and hit the “Generate Certificate and Policy” button you will be invited to download three files – public and private keys, and a cert. Do so, save them in your working directory, and also somewhere safe if you plan on deleting the directory later. You can’t download them again.
Now you have to ascertain what your broker endpoint is. The AWS IOT UI isn’t the clearest on this, but it’s helpfully hidden inside the parameter “REST API Endpoint”. You’ll need to select a thing from the console, and it appears at the top right. It’s just the domain part of the REST endpoint, so “https://A2HAT5HHRF2IFT.iot.eu-west-1.amazonaws.com/things/KyleG_Test/shadow” becomes A2HAT5HHRF2IFT.iot.eu-west-1.amazonaws.com
Once you have that information, and have the certificate files in place, it’s a simple case of passing some SSL options to the mosquitto client tools.
mosquitto_pub –cafile rootCA.pem –cert dec39df945-certificate.pem.crt –key dec39df945-private.pem.key -h A2HAT5HHRF2IFT.iot.eu-west-1.amazonaws.com -p 8883 -q 1 -d -t ‘$aws/things/KyleG_Desktop/shadow/update’ -m ‘testing’
Recently I mentioned monitoring the house with wireless sensors dotted around the place. It uses node-red to average the temperatures, and come up with a synthetic value that gets reported back to the home control system, Domoticz.
Next stage is to control the heating.
The heating system in my house is a very old design, and there’s simply a plug for the heating pump, and a plug for the boiler. When the heating is commanded to turn on by the control device (so old it’s not even a thermostat) downstairs, it really just connects these two plugs to a mains supply. The boiler and pump then turns on, and warmth ensues.
My chosen method of automation is simply to keep the heating ‘on’ all the time, and have some sort of device plugged in to the plugs in order to turn them on and off remotely. I want this to be completely retrofittable, so we can remove or change it at a later date without massive amounts of rewiring.
My initial thought was just to use a couple of LightwaveRF appliance modules, but I had a USB controlled dual relay floating around that I long planned to control the TV with, but never quite managed to get around to. Additionally, and conveniently, up the loft there’s a laptop that I use for transcoding the satellite feed to IPTV (with TVHeadend), so it was a simple case of hooking the USB board up to that laptop and getting some software on to it.
Also, to make it a bit safer, and along with the retrofitting feature, I opted to put the relay board into a little dual gang enclosure, and wire in some 13A sockets that I had in the garage.
The end result is a little deamon called mqtt-usb-relay that sits and listens for MQTT messages and then act upon them to turn the USB connected relays on and off. It subscribes to the /raw/`hostname -f`/usb-relay/#, topic, and simply takes the last component of the topic as the relay number to control, and the message as the state to turn the relay to.
Now, doing this ‘correctly’ would involve parsing the JSON output of the 3rd party mqtt.js script for Domoticz, but I decided to keep things simple and to use the On and Off Actions built into Domoticz to trigger simple mosquitto_pub events.
To do this, just create the dummy switch in Domoticz, and in the On/Off Action field, stick in commands similar to this.
script://///usr/bin/mosquitto_pub -h mqtt.vpn.glasgownet.com -t /raw/wmlp1000.vpn.glasgownet.com/usb-relay/1 -m 1
Job done. The heating can now be controlled from Domoticz. It’s not extensive control over zones or power levels of the boiler (although I have an idea for that), but it can certainly command the ‘MORE HEAT’ desire, and maybe one day I’ll install wireless TRVs on the radiators.
What with the recent buzz around the latest ESP8266 chips, I thought I should compile a list of handy links here…
Community forum – http://www.esp8266.com/
Lua based firmware – http://nodemcu.com/index_en.html
Discussion regarding MQTT on the ESP8266 – https://groups.google.com/forum/#!topic/mqtt/Uy985KUpG64
ESP8266 Github wiki – https://github.com/esp8266/esp8266-wiki/wiki
Working GCC Toolchain – https://github.com/esp8266/esp8266-wiki/wiki/Toolchain
Open source SDK – https://github.com/pfalcon/esp-open-sdk
Native DHT22 and LED I/O using Lua – http://harizanov.com/2014/11/esp8266-powered-web-server-led-control-dht22-temperaturehumidity-sensor-reading/
Buy one (UK) – http://www.amazon.co.uk/gp/product/B00O9DSZBA/?tag=thelod-21
I’ve been fiddling with an Avaya 4621SW IP phone recently, and I wondered if it would be more appropriate to pass settings to it via DHCP options, rather than editing the 46xxsettings.txt file that it always downloads via TFTP.
Previously I had the following in my 46xxsettings.txt file
SET SIPDOMAIN glasgownet.com
SET SIPPROXYSRVR voip.vpn.glasgownet.com
SET SNTPSRVR pool.ntp.org
In an effort to transition this to DHCP, after a few minutes of experimenting this was the final outcome that went in to the top of my Debian dhcpd.conf file. It handles the Option 176 that Avaya phones use to get parameters passed to them.
option space Avaya;
option Avaya.custom code 176 = string;
option Avaya.custom “SNTPSRVR=pool.ntp.org,SIPPROXYSRVR=voip.vpn.glasgownet.com,SIPDOMAIN=glasgownet.com”;
The last line there contains my SIP server settings as I’m using the SIP software stack on the phone. Equally, I’ve tested the following with the H323 firmware, and it works too
option Avaya.custom “MCIPADD=18.104.22.168,MCPORT=1719,TFTPSRVR=172.24.32.1,L2Q=1,L2QVLAN=10”;
Now, http://www.voip-info.org/wiki/view/Avaya+4602+configuration states that the 4602s can be configured independently by manipulating sip_