Datalogger version 2
Jag håller på att bygga om min datalogger så att värden plockas direkt från min Tellstick Znet istället för att hämtas från Telldus Live.

Samtidigt så ändrar jag strukturerna i min mysql-databas. Den nya strukturen betyder en tabell + en hjälptabell för varje datatyp som jag loggar.
Just nu har jag tre datatyper: temperatur, relativ luftfuktighet och ljusstyrka. Telldus rapporterar dessa som temp, humidity resp. lum, och så får också tabellerna heta.
Sen finns ytterligare en styrtabell. Här finns ett namn, den id som Telldus använder och ett internt id för varje sensor.
Eftersom Telldus har egenheten att ge ett nytt id efter batteribyte, så förenklar den nya strukturen, eftersom det räcker att ange det nya id:t på ett ställe.
I den gamla dataloggern var jag tvungen att byta id på alla loggade poster för den sensorn! Jag hade snott datastrukturen och inte tänkt efter själv...
Om jag börja logga någon ny datatyp så räcker det att skapa datatabellen och hjälptabellen, och sen lägga till sensorn i styrtabellen, så ska det hela hoppa igång.

Presentationen ska också hänga med. Nej just ja, en sak är hårdkodad: Temperatur måste sensorn logga. Annars hänger inte presentationen med.
Men det får jag lösa den dagen hag skaffar en sensor som inte mäter temperatur.

Jag bygger hela loggern i php. Den gamla versionen hade en mix av php och python (eftersom jag hade stulit olika delar från olika platser), men det är enklare att hålla sig till en teknik.

Historik:
2019-03-03: Första version, hämtar data direkt från Tellstick Znet.
2019-03-05: Backend som cykliskt hämtar data från Tellstick Znet. Data lägs upp som fil med tidsstämpel.
2019-03-06: Nu styr jag vilka sensorer som visas, det namn som visas på sensorn och ordningen från en tabell i mySQL.
2019-03-07: Ikväll funkar loggningen! Jag loggar endast vid förändring. Tidpunkten för senaste loggtillfälle innom parentes.
2019-03-09: Skiljt mellan ett internt id och den id som sensorn har i Tellsticken. Detta underlättar vid batteribyte, då Tellstick ger sensorn ett nytt id.
2019-03-09: Förbättrat programmet så att när en ny sensor läggs till så kommer den att börja loggas med minimal handpåläggning.
2019-03-09: Förenklat strukturen genom att använda tabellnamn som överensstämmer med den storhet som rapporteras från Tellstick.
2019-03-09: Flyttat gamla data loggad via Telldus Live till den nya datastrukturen.
2019-03-09: Förbättrat prestanda genom att använda hjälptabeler som endast innehåller senast loggat värde.
2019-03-10: Börjat jobba med presenetationen. Än så länge så är det bara senaste loggade värden som jag visar.
2019-03-13: Fixat datafiler, navigation och rendrering för momentanvärdeskurvor för senaste veckan.
2019-03-13: Nu får nya sidan bli den som jag anropar från menyn! Gamla sidan nås fortfarande genom att ta bort avslutande 2:an i url:en
2019-03-13: Uppdaterat tabellen för ljusstyrka eftersom min ljusmätare mäter upp till 64000 lux, men jag bara kunde lagra upp till 9999 lux.
2019-03-14: Ökat bredden på momentanvärdeskurvan, ändrat så att den använder dagens datum istället för datafilens datum för skalan på datumaxeln.
2019-03-14: Tagit bort spårutskrifter i loggningsscriptet och skapar data för momentanvärdeskurvan var 5 minut istället för var 15.
2019-03-14: ComHem startade om något igår. Jag fick en ny IP-adress. Sen kom jag inte åt servern. Det visade sig att ddclient (min dyndns-klient) hade fel lösenord till internetleverantören och domänens dns fick inte nya adressen.
2019-03-14: Byggde en kurva med dygnsmax- -medel- och -minvärden per år. Inte helt relevant, särskillt för ljusstyrka, men tills vidare så...
2019-03-14: Fixade så att dygnsvärdeskurvorna funkar innan det finns så många värden samplade. Lade upp ett rakt streck till "nu" i momentanvärdeskurvan.
2019-03-14: Stoppade skapandet av dataserier för gamla loggen.
2019-03-18: Byggde en kurva med månadsmax- -medel- och -minvärden sen start. Funkar inte förrän man har två värden över två månader, men det får vara för nu.
2019-03-18: Ändrat filnamn och funktionsnamn för att få lite mer konsekvens.
2019-03-19: När jag uppdaterade tabellen för ljusstyrka så glömde jag dess hjälptabell. Upptäckte detta idag när solen sken för första gången sedan jag gjorde den uppdateringen, den 13 mars.
2019-03-30: Tog bort dag i skala när jag visar månadsvärden.
2019-04-11: En stor bugg! Jag hade helt missat att göra refresh på mitt accesstoken, så efter en månad dog min loggning. Det tog flera dagar för mig att komma på vad som hade gått fel. Som en temporär lösning så authentierade jag lggen manuellt, men nu så har jag skapat en rutin som gör refresh cykliskt.

Kvarstår:
- Tänka igenom vilka av min medel och max som är relevanta för resp. datatyp och hur jag ordnar kurvorna på motsvarande sätt.
- Logatitmisk skala för ljusstyrka?
- Tänka igenom hur jag räknar ut medelvärden när jag samplar by event.
- Göra en smidigare presentation där valet av datatyp hänger med när man byter sensor
- Sen ska den gamla databasen rensas bort.
- Till slut: backupper!