Databasdesign

I detta forum hör diskussioner gällande teknik i största allmänhet och hemautomation i synnerhet hemma.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Johannabacken
Wannabe
Inlägg: 18
Blev medlem: 05 feb 2011, 17:20
Ort: nacka

Databasdesign

Inlägg av Johannabacken »

** Re-post i mer passande kategori **

Hej,

Skrotar mitt msure system och går till ett raspberry baserat OWFS system.
I samband med det skapar jag en ny mysql-databas men jag kan inte tillräckligt för att veta vilken design som är att föredra.

Vad har ni databaskunniga för tankar om följande två olika upplägg:

A. Många tabeller
Msure's sätt att ha en tabell (som är sensornamnet) per sensor med kolumner [Value] [TimeStamp]

ELLER

B. Två Tabeller
HA's(?) sätt med en sensortabell med [ID] [Namn]
och
EN tabell med all data, exempel [ID][Value][TimeStamp]

Konsekvenser i hanterbarhet, kompliceade söksträngar och performance?

Har 20-tal sensorer, behöver inte ta med de 8 åren av gammal data, har färdig visulaisering för msure's tabellstruktur.

Tacksam för alla synpunkter!
/Johan
Videonisse
Tar hemautomation på allvar
Inlägg: 82
Blev medlem: 07 mar 2012, 22:09
Ort: Stockholm/Örby

Re: Databasdesign

Inlägg av Videonisse »

B med 2 tabeller eftersom data aldrig bör dupliceras.
Johannabacken
Wannabe
Inlägg: 18
Blev medlem: 05 feb 2011, 17:20
Ort: nacka

Re: Databasdesign

Inlägg av Johannabacken »

Ok, bra regel men hur menar du att data dupliceras i alt A?
Jag kanske förklarade dåligt:
i A finns en tabell för varje sensor som innehåller [Value] [TimeStamp].
Exempel:
Tabell: Badrum
[20160313 10.00] [23.2]

Tabell: Sovrum
[20160313 10.05] [23.1]

i alternativ B är all data i en tabell:

Tabell: 1wiretemp
[20160313 10.00] [Badrum] [23.2]
[20160313 10.05] [Sovrum] [23.1]

Tankar?

/Johan
hellgun
Tar hemautomation på allvar
Inlägg: 76
Blev medlem: 22 apr 2010, 12:16

Re: Databasdesign

Inlägg av hellgun »

Finns ett tredje alternativ som jag kör.

Tabell: temperatur
Kolumner: tidpunkt, utomhus, badrum, kök, sovrum
[20160313 10:00] [1.2] [23.1] [22.9] [20.5]

Skickat från min Nexus 5 via Tapatalk
simply
Wannabe
Inlägg: 21
Blev medlem: 21 jan 2009, 10:04
Ort: nacka

Re: Databasdesign

Inlägg av simply »

Ditt förslag B känns mest korrekt.

Tabell: Enheter
[ID] [Namn] [Typ]
("Typ", om man mäter annat än temp)

Tabell: Temperatur
[ID] [Temp] [Tid]

Sen kan man ju skapa fler Temp-tabeller om man vill ha genomsnitt/timme/dag/vecka utan att behöva plöja igenom all rådata och beräkna det varje gång man vill se det...

--- Tapatalk'd
flyvert
Hemautomation - det är mer än en hobby
Inlägg: 393
Blev medlem: 22 aug 2013, 00:48
Ort: Västerås

Re: Databasdesign

Inlägg av flyvert »

Jag har tre tabeller där de två första innehåller metadata - tex beskrivning, min, max och ingenjörsstorhet (grader, Volt, kWh, etc) som mina Flot (JavaScript) trender kan läsa från.

sensors
properties
data


En sensor kan ju ha flera properties, t.ex en EDS0668 har ju temp, fukt, tryck och ljus. Har själv två, en inne och en ute (egen IP-klassning: klarlackad ekretskortet med sensorerna maskerade).

Datatabellen har flera kolumner

time, sensorid, propertyid, value, aggregate, period

Aggregate anger om det är ett momentanvärde (celsiusgrader) eller ett ackumulerat värde (kWh). Har även aggregat för min, max o medel.
Period är tidsbasis, t.ex. aggregate 1 och period 1 är ett minutvärde medan aggregate 2 och period 3 är ett dygnsmedelvärde.

Jag har stored procedures som körs på tim, dygn, vecko och månadsbasis som räknar fram min/max/medel-värden och tar bort minutdatat efter drygt en månad.

La ut hela designen (en tidig version) under mina första månader här på forumet.

Med denna design begränsar jag databastillväxten (kör på Raspberry PI) och jag snabbt leta upp t.ex. ett maxvärde eller medelvärde utan att behöva göra tunga beräkningar.
Om traktorn stjälper; håll i ratten, hoppa ej!
Johannabacken
Wannabe
Inlägg: 18
Blev medlem: 05 feb 2011, 17:20
Ort: nacka

Re: Databasdesign

Inlägg av Johannabacken »

Tack!

Genomgående är att ni har valt varianter där alla data samlas i en tabell med taggar som talar om vilken data det är,

Jag tar med mig det och gör antagligen på liknande sätt. det lutar åt att jag gör samlar all data men gör olika tabeller beroende på vilken typ av sensor det är (temp och elförb får egna tabeller) Då tänker jag att tabellerna blir lite "renare" och att jag håller min/max/avg och liknande beräknade värden utanför datatabellen.

(eller så gör jag en kopia av msure setupen så jag kan använda de visualiseringsscript jag har. Jag är ju ingen hejare på SQL...)

Tack igen för inspirationen!

/Johan
sege
Tar hemautomation på allvar
Inlägg: 157
Blev medlem: 05 feb 2008, 11:36
Ort: Ingarö
Kontakt:

Re: Databasdesign

Inlägg av sege »

Jag slår ett slag för InfluxDB istället för MySQL. Det är helt fel att lagra mätvärden i en SQL, en time series DB är otroligt mycket bättre på det.
Mina queries gick från timmar till sekunder när jag slängde ut MySQL till förmån för InfluxDB.

SQL är bra på vissa saker men riktigt usel på att räkna ut snitt/min/max/gruppera efter tid och dylikt.

Jag lagrar alla mina värden kopplat med 'sensorname' som inte har något med ursprungssensor att göra utan är ett för mig unikt namn. Det gör att jag kan byta min tempgivare på norrsidan till en helt ny sensor, teknik och så vidare men fortsätta med samma 'sensorname'. Smidigt, anser jag.

Sen ligger koppling till fysisk sensor i en tabell där även ett mer human readable-namn finns. :)

/Johan
Johannabacken
Wannabe
Inlägg: 18
Blev medlem: 05 feb 2011, 17:20
Ort: nacka

Re: Databasdesign

Inlägg av Johannabacken »

Jag slår ett slag för InfluxDB istället för MySQL. Det är helt fel att lagra mätvärden i en SQL, en time series DB är otroligt mycket bättre på det.
Mina queries gick från timmar till sekunder när jag slängde ut MySQL till förmån för InfluxDB.

SQL är bra på vissa saker men riktigt usel på att räkna ut snitt/min/max/gruppera efter tid och dylikt.
Tack, mycket intressant. Tycker ju att det är krångligt med SQL och lätt att ställa frågor som tar orimligt lång tid (min SQL-kunskap har brister, jag vet)
Saken är väl att jag tänkt lagra data på antigen NASen eller hos webhotellet och där finns bara MYSQL förinstallerat.
Jag lagrar alla mina värden kopplat med 'sensorname' som inte har något med ursprungssensor att göra utan är ett för mig unikt namn. Det gör att jag kan byta min tempgivare på norrsidan till en helt ny sensor, teknik och så vidare men fortsätta med samma 'sensorname'. Smidigt, anser jag.

Sen ligger koppling till fysisk sensor i en tabell där även ett mer human readable-namn finns. :)
Kanon. Så klarat ska mätvärdena vara relaterade till vad de mäter och inte vad de heter.

/Johan
selstam
Wannabe
Inlägg: 21
Blev medlem: 25 jun 2009, 09:19
Ort: Göteborg

Re: Databasdesign

Inlägg av selstam »

Jag kör mongodb för att spara mina värden ... Så här kan ett document för ett dygn se ut:

Kod: Markera allt

{
    "_id" : ObjectId("56f07debcae0d31b34fbfdaa"),
    "hn" : "sensorpi.selstam.nu",
    "sid" : "10EF30CB01080002",
    "d" : ISODate("2016-03-22T00:00:00.000+01:00"),
    "mi" : 17.7500000000000000,
    "ma" : 18.5625000000000000,
    "c" : 24,
    "av" : 18.2140625000000010,
    "vah" : [ 
        {
            "h" : 0,
            "mi" : 18.5000000000000000,
            "ma" : 18.5625000000000000,
            "c" : 11,
            "av" : 18.5340909090909100,
            "vam" : [ 
                {
                    "m" : 4,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 9,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 15,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 20,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 25,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 31,
                    "r" : "18.5625",
                    "v" : 18.5625000000000000
                }, 
                {
                    "m" : 36,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 41,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 47,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 52,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 57,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }
            ]
        }, 
        {
            "h" : 1,
            "mi" : 18.3750000000000000,
            "ma" : 18.5000000000000000,
            "c" : 11,
            "av" : 18.4318181818181830,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 8,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 14,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 19,
                    "r" : "18.5",
                    "v" : 18.5000000000000000
                }, 
                {
                    "m" : 25,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 31,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 36,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 42,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 48,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 53,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 58,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }
            ]
        }, 
        {
            "h" : 2,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 10,
            "av" : 18.3500000000000010,
            "vam" : [ 
                {
                    "m" : 3,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 9,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 15,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 21,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 26,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 32,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 54,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 3,
            "mi" : 18.2500000000000000,
            "ma" : 18.3125000000000000,
            "c" : 11,
            "av" : 18.2784090909090900,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 5,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 10,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 16,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 21,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 26,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 32,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 37,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }
            ]
        }, 
        {
            "h" : 4,
            "mi" : 18.1250000000000000,
            "ma" : 18.2500000000000000,
            "c" : 11,
            "av" : 18.1818181818181830,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 5,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 11,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 16,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 22,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 27,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 32,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 44,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 50,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }
            ]
        }, 
        {
            "h" : 5,
            "mi" : 18.0625000000000000,
            "ma" : 18.1250000000000000,
            "c" : 11,
            "av" : 18.0909090909090900,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 30,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 35,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 40,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 57,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }
            ]
        }, 
        {
            "h" : 6,
            "mi" : 18.0000000000000000,
            "ma" : 18.0625000000000000,
            "c" : 10,
            "av" : 18.0062500000000010,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 8,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 19,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 25,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 31,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 37,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }
            ]
        }, 
        {
            "h" : 7,
            "mi" : 17.8750000000000000,
            "ma" : 17.9375000000000000,
            "c" : 11,
            "av" : 17.9147727272727270,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 44,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }
            ]
        }, 
        {
            "h" : 8,
            "mi" : 17.8125000000000000,
            "ma" : 17.8750000000000000,
            "c" : 11,
            "av" : 17.8579545454545470,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 17,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 23,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 28,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 45,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 50,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }
            ]
        }, 
        {
            "h" : 9,
            "mi" : 17.7500000000000000,
            "ma" : 17.8125000000000000,
            "c" : 11,
            "av" : 17.7954545454545470,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 40,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 45,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 50,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }
            ]
        }, 
        {
            "h" : 10,
            "mi" : 17.7500000000000000,
            "ma" : 17.8125000000000000,
            "c" : 11,
            "av" : 17.7727272727272730,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 11,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 17,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 23,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 45,
                    "r" : "17.75",
                    "v" : 17.7500000000000000
                }, 
                {
                    "m" : 50,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "17.8125",
                    "v" : 17.8125000000000000
                }
            ]
        }, 
        {
            "h" : 11,
            "mi" : 17.8750000000000000,
            "ma" : 18.0625000000000000,
            "c" : 11,
            "av" : 17.9715909090909100,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "17.875",
                    "v" : 17.8750000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "17.9375",
                    "v" : 17.9375000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 35,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 40,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18",
                    "v" : 18.0000000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }
            ]
        }, 
        {
            "h" : 12,
            "mi" : 18.0625000000000000,
            "ma" : 18.1875000000000000,
            "c" : 11,
            "av" : 18.1193181818181830,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "18.0625",
                    "v" : 18.0625000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "18.125",
                    "v" : 18.1250000000000000
                }, 
                {
                    "m" : 44,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 50,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "18.1875",
                    "v" : 18.1875000000000000
                }
            ]
        }, 
        {
            "h" : 13,
            "mi" : 18.2500000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.2784090909090900,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 17,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 22,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 27,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 33,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.25",
                    "v" : 18.2500000000000000
                }, 
                {
                    "m" : 44,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 14,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3181818181818170,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 11,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 17,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 22,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 28,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 45,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 15,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3181818181818170,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 30,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 35,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 40,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 57,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 16,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3579545454545470,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 30,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 35,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 41,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }
            ]
        }, 
        {
            "h" : 17,
            "mi" : 18.3750000000000000,
            "ma" : 18.4375000000000000,
            "c" : 11,
            "av" : 18.3806818181818170,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 7,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 19,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 24,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 30,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 36,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 42,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 48,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 53,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 58,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }
            ]
        }, 
        {
            "h" : 18,
            "mi" : 18.3750000000000000,
            "ma" : 18.4375000000000000,
            "c" : 10,
            "av" : 18.3937500000000010,
            "vam" : [ 
                {
                    "m" : 4,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 9,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 15,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 21,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 26,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 32,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 55,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }
            ]
        }, 
        {
            "h" : 19,
            "mi" : 18.3750000000000000,
            "ma" : 18.3750000000000000,
            "c" : 12,
            "av" : 18.3750000000000000,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 5,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 10,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 16,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 22,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 27,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 33,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 48,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 53,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 59,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }
            ]
        }, 
        {
            "h" : 20,
            "mi" : 18.3750000000000000,
            "ma" : 18.4375000000000000,
            "c" : 10,
            "av" : 18.3874999999999990,
            "vam" : [ 
                {
                    "m" : 5,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 10,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 15,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 21,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 26,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 32,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 38,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 43,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 49,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }, 
                {
                    "m" : 54,
                    "r" : "18.4375",
                    "v" : 18.4375000000000000
                }
            ]
        }, 
        {
            "h" : 21,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3636363636363630,
            "vam" : [ 
                {
                    "m" : 0,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 5,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 11,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 16,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 22,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 28,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 40,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 22,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3295454545454530,
            "vam" : [ 
                {
                    "m" : 1,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 6,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 12,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 18,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 23,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 29,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 34,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 39,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 45,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }, 
        {
            "h" : 23,
            "mi" : 18.3125000000000000,
            "ma" : 18.3750000000000000,
            "c" : 11,
            "av" : 18.3295454545454530,
            "vam" : [ 
                {
                    "m" : 2,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 8,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 13,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 19,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 25,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 30,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 35,
                    "r" : "18.375",
                    "v" : 18.3750000000000000
                }, 
                {
                    "m" : 41,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 46,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 51,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }, 
                {
                    "m" : 56,
                    "r" : "18.3125",
                    "v" : 18.3125000000000000
                }
            ]
        }
    ]
}
Johannabacken
Wannabe
Inlägg: 18
Blev medlem: 05 feb 2011, 17:20
Ort: nacka

Re: Databasdesign

Inlägg av Johannabacken »

MongoDB......
Nog för att trenden mot textbaserade protokoll har varit stark men jag är inte riktigt övertygad. Kalla mig gammalmodig.

Men jag hade inte hört talas om det så det var rolig och intresssant läsning, kan tänka mig att det finns användningsområden. Kanske ypperligt för konfigurationsdata?

Tack för tips!
/Johan
selstam
Wannabe
Inlägg: 21
Blev medlem: 25 jun 2009, 09:19
Ort: Göteborg

Re: Databasdesign

Inlägg av selstam »

Om någon är intresserad ... :)

Schema Design for Time Series Data in MongoDB
http://blog.mongodb.org/post/6551719337 ... in-mongodb
brimstedt
Wannabe
Inlägg: 3
Blev medlem: 13 apr 2016, 17:35
Ort: Borås

Re: Databasdesign

Inlägg av brimstedt »

Hej!

Jag har svårt att tro att mätvärden hemma hos någon skulle ge så mycket data att en sql-db tar timmar att fråga där en timeseries går supersnabbt.. Då har man nog inte indexerat eller modellerat riktigt ;-)

Men det jag tänkte säga egentligen - varför inte använda ett existerande system?

zabbix, tex är ett opensourcesystem för övervakning generellt. Funkar att lagra tex temperaturvärden, men har även stöd för övervakning av datorer, mm, så man kan få in mycket grejjer. Sedan har det inbyggt stöd för grafer, dashboards, att skicka varningar via mail eller sms om vissa villkor uppfylls, etc.

Bara ett tips :-)

/Linus
dargosch
Tar hemautomation på allvar
Inlägg: 281
Blev medlem: 26 aug 2015, 09:37
Ort: Holmsund

Re: Databasdesign

Inlägg av dargosch »

brimstedt skrev:Hej!

Jag har svårt att tro att mätvärden hemma hos någon skulle ge så mycket data att en sql-db tar timmar att fråga där en timeseries går supersnabbt.. Då har man nog inte indexerat eller modellerat riktigt ;-)

Men det jag tänkte säga egentligen - varför inte använda ett existerande system?

zabbix, tex är ett opensourcesystem för övervakning generellt. Funkar att lagra tex temperaturvärden, men har även stöd för övervakning av datorer, mm, så man kan få in mycket grejjer. Sedan har det inbyggt stöd för grafer, dashboards, att skicka varningar via mail eller sms om vissa villkor uppfylls, etc.

Bara ett tips :-)

/Linus
Ja, eller openHAB. De har en one wire-binding, och då får du väldigt mycket väl fungerande infrastruktur på köpet.

https://github.com/openhab/openhab/wiki ... re-Binding
"Life is like a trumpet - if you don't put anything into it, you don't get anything out of it."
- William Christopher Handy

Rekommenderad läsning för Z-wave-entusiaster
https://bit.ly/2GS72Ez
Skriv svar