Ny temperaturserver på gång

Ni som följt Sundhults sidor tidigare vet att vi haft ett temperaturnät, men att det förstörts i ett åskväder. Nu tänkte jag återuppbygga det igen.

Tempearutrmätnätverket består av en rad sensorer som via ett 1-wirenätverk är kopplat till en tunn klient, i vilken alla temperaturer lagras i en databas. Sedan kan man beräkna medlevärden, trender och se hur temperaturer på olika mätställen påverkar varandra. 1-wirenätverket tillåter också en rad andra sensorer och som ger ännu mer funktionalitet, men det huvudsakliga är temperaturavläsning för oss. Data kan presenteras i grafer eller systembilder. Vi har faktiskt temperaturmätning idag också, och levererar temperaturdata till Temperatur.nu och där finns en speciell Sundhultssida med grafer över utetemperaturen här.

I ett åskväder 2009 så slogs alla sensorer ut, plus att den dåvarande tunna klienten slogs ut. Det var för andra gången på ganska kort tid så som alla temperatursensorer gick sönder. Den mätservern kördes på en mjukvara som hette MSure, och nu mer går under namnet Beyond measure. Nackdelen med MSure är att den kräver Windows som operativsystem. När jag nu skall återuppbygga det är jag lite sugen att försöka bygga upp det kring en linux-server.

Jag lyckades skaffa en ny tunn klient via min vän Mattias Weckstén, åkte ned till Kjell & Co och köpte ett USB-wifi-nätverkskort från Levelone (WUA-605), och sedan kutade jag över till Clas Ohlson och köpte 16Gb USB-minne från SAN-disk (Cruzer).

Den tunna klienten är en VXL Itona TC4331 på 1 Ghz, 512b RAM, 4 USB-portar, 2 IDE-portar, 1 paralellport 1 serieport, 1VGA och nätverkskort. Anledningen till att jag vill köra trådlöst nätverkskort är att förhindra att eventuell åska skall vandra från temperaturnätveket  till datornätverket, vilket nog är det som hänt tidigare när åskan förstört för oss.

Min plan är att köra en Ubuntu-server på klienten. Tänkte välja en serverversion utan grafiskt gränssnitt, för att prestandan är begränsad. Dessutom kan jag lätt via ett ’remote-shell’ administera burken på ett lätt sätt. Jag valde att ladda ner Ubuntu Server 10.04 LTS, där LTS står för Long-term support.

Dock har jag haft lite problem att installera Ubuntu från ett USB-minne som jag hade tänkt. USB-minnet ville inte boota. Jag hade ett gammalt 4 Gb USB-minne (SAN-disk micro cruzer) sedan tidigare som jag testade att göra till en bootbar Ubuntu-installation med hjälp av Pendrivelinux och det fungerade att börja installera. Under installationen vill den göra en ompartition, vilket jag godkände.  Senare hängde sig installationen, och sedan dess är inte det minnet heller bootbart, trots försök med Pendrivelinux och UNetbootin.

Eftersom jag inte har någon dator med linux idag så har jag letat efter verktyg i som fungerar i Windows-miljö. Dock har inget verktyg lyckats.

Då bestämde jag mig för att ladda ned VM-ware player, vilket skapar en virtuell dator inne i datorn. Med VM-ware player kan du testa linux, utan att behöva installera om datorn, eller skapa dual boot. Du kan köra operativsystem också om du så önskar. Det finns färdiga installationer som fixar in webserver, databasserver och till och med en WordPress för den som vill testa det.

Det vara bara att köra igång och ange var jag hade Ubuntu-iso-filen. Vips, så fanns det en linux-burk som snurrade här, om än utan grafiskt gränssnitt (eftersom jag tog Ubuntu-serverfilen).Det var inga problem att få tillgång till USB-portarna på den fysika datorn från den virtuella.  Där provade jag att ändra boot-flaggor med hjälp av linux-kommandot fdisk, utan lycka.

Tyvärr har jag inte i skrivande stund hittat något enkelt sätt att fixa ett installations USB-minne som inte kräver grafiskt gränssnitt. Givetvis skall jag fortsätta att kämpa med att få in det, och kommer tala om hur jag lyckas… Om jag nu lyckas.

Till slut lyckades jag starta installtionen

Nu har jag lyckats göra installationen. Lösningen för mig var att köra igång en Ubuntu Desktop i den virtuella maskinen. I den finns ett administrativt verktyg som heter Startup Disk Creator, från vilken jag gjorde ett bootbart USB-minne. I den virtuella maskinen valde jag att via CD-ikonen längst ned monter ISO-filen som en CD-rom, och välja den som källa i Startup Disk Creator.

Jag bootade på ett USB-minne, och hade måldisken, 16gb SAN-disk-minnet, i samtidigt.  Som jag förstod det gick det inte, eller är åtminstone är svårt, att botta och ha samma disk som mål.

Nu är det bara kvar att förstå varför installationen hänger sig efter det att 41% av grundsystemet installerats.

Det kan vara en av två orsaker.:

  1. Minnet, för burken hade 128 Mb, och inte 1 Gb som jag fått för mig. Jag plockade i en 512 Mb
  2. Värme, för jag tyckte det blev varmt. Hade kört med öppet skal, och liggande. Jag skruvade på skalet och placerade den stående, vilket ventilerar burken mer.

Så nu finns det en burk i gång, med webbserver (inklusive php) och  Mysql-databas. Nästa steg är att få igång USB-interfacet till 1-wirenätet, samt att dra igång OWFS som används för att läsa av sensorer på 1-wirenätet.

Att få igång 1-wireinterfacet

Det gick smidigare än väntat att få igång själva 1-wireinterfacet. Killarna hos Temperatur.nu har satt ihop en HowTo-guide att följa som fungerade att köra rätt av.

Det jag vill göra nu är att läsa in data från temperatursensorer och lägga in i en databas.

Nu fungerar det att läsa av temperaturer. Se så vackert!

Tjoff in i databasen

Nu har jag fixat ett schemalagt jobb (crontab) som var femte minut lägger in temperaturen från sensorn i en MySQL-databas genom ett Linux-shell-script.

Nu återstår lite pill för att definiera alla sensorer som skall in, och se till att data hamnar i databasen. Skall fundera ett varv till över hur man skall lägga upp databaserna.

Därefter blir det lite php/jQuery eller liknande för att presentera data på webben. Just nu finns den bara som en textrad på Sundhults Logger.