WindWiz

En GSM-uppkopplad vindmätare

Windspeak

Den upplästa utläsningen av vinddata via telefonsamtal är fortfarande den mest använda metoden för att kolla av vinden bland CPS medlemmar. Inte så konstigt, eftersom bara 1 av 4 mätare internetuppkopplad, och dessutom tror jag många föredrar att slippa trycka och navigera i menyer ute i starkt solljus. Ett samtal är en knapptryckning, tryck luren mot örat och vänta. Easy as dell!

Att ljudkvalitén sedan är såpass dåligt att man ibland tvingas ringa två gånger eller att informationen som ges är ytterst begränsad verkar få bry sig om. Men faktum är att det enda sätt att bilda sig en uppfattning om trender är att gång på gång ringa mätaren med nån halvtimmes mellanrum. Det skulle vara intressant att veta hur mycket pengar CPS medlemmar totalt lägger per månad i mobilsamtal till mätarna. Med en öppningsavgift på 79 öre och i snitt 30 sekunder samtal så hamnar vi på 1.1 kr/samtal (åtminstone med min leverantör). Jag gör säkert 10+ samtal till vindmätaren per flygdag om jag är i (eller avser att åka till) Ravlunda eller på västkusten (för Hammar använder jag givetvis webben!). Alltså rör det sig om ca 11 kr/dag och medlem. CPS har 200 medlemmar, varav säkert 50 är riktigt aktiva. You do the math!

Inte nog med att den uppringda funktionalitet fungerar dåligt i existerande mätare, den utgör också en stor tröskel för min egna implementation. Ett stort bekymmer är den icke-deterministiska strömförbrukningen som uppstår när X antal skärmflygare bestämmer sig för att ringa ner mätaren på en solig dag. Telefonsamtal över GSM-nätet är den i särklass dyraste funktionen i en vindmätare med avseende på strömförbrukning. Ett annat problem är att röstsyntetisering ökar krav på både processorkraft och lagringsyta. Därför har jag sedan dag #1 strykt denna funktion från mitt egna bygge.

Planen har istället varit att erbjuda samma funktionalitet via en landlina där man ej behöver tumma på ljudkvalité, inte har några begränsningar i lagringsutrymme och dit uppringningskostnaden potentiellt kan bli lägre. Jag ser bara fördelar!

I teorin behöver riggen inte vara mer avancerad än en telefonsvarare vars meddelande byts varje gång en vindmätare sänder en ny rapport. Inspelning av nytt svarsmeddelande sker automatiskt via mjukvara som hämtar vinddata från webben och spottar ur sig en ljudfil som sedan matas till telefonsvararen. Tack vare att större delen av telefonnätet numera digitaliserats och var och varannan kotte har tillgång till ”IP-telefoni” behöver man heller inte skaffa någon dyr analog telefonväxel eller annan utrustning, allt sköts av en vanlig dator. Inkommande samtal anländer via nätverket, behandlas av telefonsvararmjukvaran och svar skickas tillbaks — via nätverket.

Asterisk är en sådan ”telefonsvararmjukvara**” för Linux. Förutsatt att du har ett IP-telefoniabb. hos en operatör som tillåter inkoppling av annan utrustning än deras egen är det bara att tuta och köra. Det råkar falla sig så väl att min bredbandsleverantör T3 just lanserat ett nytt IP-telefoniabbonemang som lämpar sig ypperligt för detta syfte — T3 Zero. Månadskostnad 0 kr. Kostnad att ta emot samtal 0 kr. Ni förstår! Givetvis har de gjort ordentliga påslag på utgående samtal, men eftersom min telefonsvarare aldrig någonsin skulle få för sig att ringa ut på egen hand kan detta aldrig kosta mig mer än 0 kr. (Ska bara läsa det finstilta också 😉

Idag har det ösregnat utanför och jag hittade tid till att snickra ihop ett testprogram för att generera ljudfiler från aktuell vinddata. Detta är den komponent som skapar det nya svarsmeddelandet som sedan matas till Asterisk, telefonsvararen. Program, döpt Windspeak, jobbar mot WindWiz API och fungerar som vilket tredjepartsprogram som helst. Röstsyntetiseringen är väldigt enkel och består av ett större antal ljudklipp som fogas samman till ett meddelanden. Just nu är slutresultatet i allra högsta grad opolerat, men duger väl som ett ”proof-of-concept”.

Programmet körs via en terminal och har relativt få växlar.

$ windspeak.py -s Svetlana -o test.wav 

Denna rad beordrar Windspeak att hämta ner senaste mätdatan via API, syntetisera ett meddelande med rådande vindriktning och vindhastighet för att slutligen spara resultatet i test.wav. Som en liten bonus kan man även välja syntetiseringsröst med växeln -v. För tillfället kan man lyssna på min eller min flickväns ljuva stämma 😉 Den lilla källkod som utgör Windspeak v 0.1 Alpha finns redan för beskådning på GitHub bland WindWiz källkodsförråd.

Avslutar med ett litet demo!

** Att kalla Asterisk för en telefonsvararmjukvara är kanske årets understatement. Asterisk är allt du någonsin önskat inom telefoni och kan konfigureras för oändligt många fler användningsområden.

Annonser

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: