nytt program RRDbuddy

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

nytt program RRDbuddy

Inlägg av motoz »

Jag har under något års tid utvecklat en pelletlogger med RRDTool som bas, PellMon. Programmet är numera rätt användbart och har också en hel del användare (relativt sett... )

Tanken har slagit mig att om man kunde stänga av oönskade pelletrelaterade funktioner så skulle det kanske vara användbart även i andra sammanhang, men samtidigt vill jag inte göra det onödigt komplicerat. Så för att kolla intresset så gjorde jag en gren med ett eget namn där bara basfunktionerna finns med, RRDbuddy, https://github.com/motoz/rrdbuddy

Programmet består av två huvuddelar: en serverdel som hanterar rrd databasen och en webbapplikation med en egen webbserver. Dessutom finns ett kommandotolkprogram som kan kommunicera med servern. För att läsa in data används ett pluginsystem, för tillfället finns två plugin som tillhandahåller data: OWFS och raspberryGPIO. OWFS i sin tur kommunicerar med en vanlig owserver för att läsa och skriva data, och raspberryGPIO ger tillgång till raspberryns alla gpio som kan konfigureras som ingångar, utgångar, timers eller räknare. Det finns också ett 'alarm' plugin som övervakar datanivåer och kan skicka email och ett plugin som kan utföra enkla beräkningar och köra periodiska skript.

Webbapplikationen har en systembild, en händelselogg och en graf, och en sida för inställningar med autentisering. Systembilden är en svg-fil (vektorgrafik), där man enkelt kan lägga in 'live' data genom att rita in ett textobjekt taggat med datapunktens namn varifrån data ska läsas. Enklast genom att öppna filen i ett vektorritprogram, tex inkscape (som är gratis och bra). Standardbilden har två data, 'indoor_temp' och 'outside_temp', som man kan utgå ifrån. Eftersom det är vektorgrafik så kan man fritt ställa in storlek, färg, stil och position på texterna och rita in vilken bakgrund man vill direkt i ritprogrammet. All grafik ritas i webbläsaren (flotcharts.org för grafen), och uppdateringar av livedata sker med websockets.

Inställningar och dokumentation finns i en konfigurationsfilen https://github.com/motoz/rrdbuddy/blob/ ... dy.conf.in. Databasen är färdigt konfigurerad med plats för ett antal data som kan utökas vid behov och några väl valda RRA som håller data upp till 15 år.

Frågan är, finns det intresse av ett sådant här färdigt paket ovanpå RRDTool? Mycket skulle kunna göras ännu enklare och också flexiblare, koden från pelletförbrukningen skulle kunna användas för att logga elförbrukning och annat smått och gott. Så om någon orkar testa så kom gärna med feedback, annars så forstätter jag väl bara att knåpa på pelletloggern.

Programmet är endast för Linux. Installationsanvisningen är lite debian-influerad, men det fungerar lika bra på vilken linux som helst bara man installerar rätt beroenden. Programmet kör utan problem på en raspberry pi, även äldsta modellen med bara 256M RAM.

Programmet är skrivet i python, koden är fri under GPLv2 och inkluderade javascriptbibliotek under andra öppna licenser.

Och ett screenshot ska det ju vara, direkt efter installation ser det ut så här med de två testdata som kommer med 'testplugin' som då är aktiverat:
http://forumbilder.com/image/mMn
Open source pellet logger: https://github.com/motoz/PellMon
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: nytt program RRDbuddy

Inlägg av motoz »

Jag drog in nyaste ändringar från pellmon till 'lillebror' rrdbuddy. Nytt är bla att ett plugin förutom tillägg till backenden även kan innehålla html och javascript för webbapplikationen. Framsidan är också fritt konfigurerbar i konfigurationsfilen, tex:

Kod: Markera allt

# Select which widgets are displayed on the frontpage
[frontpage_widgets]
row_1 = systemimage,events
row_2 = graph
.. ger en framsida motsvarande skärmbilden ovan.

Intresset var ju inte direkt överväldigande här :), kan nog förstå att det kan vara roligare att peta ihop egna script än att använda ett färdigt paket, men jag fortsätter väl tillsvidare att dra in passande delar från pellmon till rrdbudy då och då. Om inte annat så ger det bra övning i att använda git... Glömde förresten nämna förra inlägget att webbapplikationen i rrdbuddy anpassar sig till olika skärmstorlekar, man behöver alltså inte zooma eller rulla i sidled på en surfplatta eller telefon.
Open source pellet logger: https://github.com/motoz/PellMon
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: nytt program RRDbuddy

Inlägg av motoz »

RrdBuddy har fått lite användare och alla verkar nöjda så jag lägger upp en snabbguide för enkel temperaturloggning med rrdbuddy och raspberry här också:


1. Exempel på inköpslista:
raspberry, minneskort, usb-laddare, nätverkskabel, låda:
https://www.m.nu/startpaket-raspberry-litet-p-783.html
onewire-usb adapter för temperaturmätning
https://www.m.nu/adapter-1wire-ds9490r-p-49.html
temperatursensor -55..125°C X önskat antal
https://www.m.nu/temperatursensor-kabel ... -p-44.html
kabel till temperatursensor i lämpliga längder
https://www.m.nu/forlangningskabel-p-37.html
förgreningskontakt till temperatursensorer
https://www.m.nu/forgreningskontakt-rj12-p-33.html

2. Ladda ner och installera raspbian på minneskortet
Ladda raspbian.zip härifrån https://www.raspberrypi.org/downloads/
Zippa upp .img filen ur raspbian.zip och följ guiden https://www.raspberrypi.org/documentati ... ng-images/

3. Sätt minneskortet i raspberryn och koppla nätverkskabel till routern. Raspberryn startar då du sätter i usb-laddaren.

4. Raspberryn får en IP adress tilldelad av routern, ett enkelt sätt att hitta raspberryn på nätet är att logga in på routern och kolla vilken IP den har fått. Det skiljer sig mellan modellerna hur det ser ut, ett exempel finns här: http://jacobjthomas.com/how-to-raspberr ... irst-boot/

5. Har du windows så ladda ner putty.exe härifrån, http://www.chiark.greenend.org.uk/~sgta ... nload.html
Mac och Linuxanvändare kan använda ssh direkt i terminalen för att logga in på raspberryn.

6. Logga in på raspberryn enligt guiden i http://jacobjthomas.com/how-to-raspberr ... irst-boot/. Kör raspi-config för att ta hela minneskortet i bruk och sätt tangentbordslayout och lokalisering.

7. Installera RrdBuddy genom att följa anvisningarna i README (Installation How-To): https://github.com/motoz/rrdbuddy. (Du kan kopiera och klistra in alla kommandon i terminalen eller putty)

8. Kolla att allt fungerar genom att gå till http://raspberryip:8082 i din webbläsare (där raspberryip är IP nummern till din raspberry).

9. Installera OWFS för temperaturmätning
sudo apt-get install owserver owhttpd

10. Konfigurera OWFS att använda usb adaptern
Öppna filen /etc/owfs.conf i en textredigerare och ta bort kommentarstecknet # i raden #server: usb = all
Spara filen och starta om raspberryn

10. Koppla ihop temperaturgivarna till adaptern.
Temperaturgivarna fungerar bäst om man kopplar dem som en lång ledning med så korta förgreningar till givarna som möjligt.

11. Hitta temperaturgivarnas adresser.
Öppna en webbläsare och gå till adressen http://raspberryip:2121 där raspberryip är raspberryns IP adress.
Notera länkarna som börjar på '28.' i tabellen som visas, de är adresser till temperaturgivare. Tex 28.8C9214050000.

12. Lägg till temperaturgivarna till rrdbuddys konfigurationsfil /etc/rrdbuddy/rrdbuddy.conf:
Ta bort kommentarstecknet # i raden #p05 = OWFS
Lägg till följande efter raden [plugin_OWFS]:
ow1_path = 28.8C9214050000/temperature
ow1_item = outside_temp
, där adressen matchar din givare. Givaren ges ett namn, tex 'outside_temp'. Upprepa med ow2_path/item för nästa givare, sedan ow3_ osv.

13. Ta bort 'testplugin' ur rrdbuddys konfigurationfil /etc/rrdbuddy/rrdbuddy.conf. Sök upp följande:
p99 = TestPlugin
och kommentera bort raden p99 = Testplugin:
#p99 = TestPlugin

14. Systembilden som följer med installationen innehåller två data: 'indoor_temp' och 'outside_temp', vilka får sina värden från 'testplugin'. Då du tagit bort testplugin så saknas alltså dessa data. Om du vill logga just inne och utetemperatur så kan du döpa sensorerna till 'indoor_temp' och 'outside_temp' så fungerar det direkt, eller så är det bara att rita om systembilden för att få med dina egna sensorer. Systembilden i RrdBuddy fungerar likandant som i PellMon så guiden https://github.com/motoz/PellMon/wiki/C ... stem-image duger bra.

Mycket kan göras annorlunda. Det blir förstås billigare att köpa lösa komponenter och kabel i metervara istället för kompletta givare, förgreningskontakter och färdiga RJ-12 kablar. Man kan också använda en I2C-onewire modul istället för usb adaptern, men då är owfs inte lika enkel att installera. Den äldre långsammare modellen av raspberry fungerar också utmärkt och är ofta billigare, och om en raspberry är för dyr eller om man bara vill prova på så kan man ersätta den med en gammal pc (men elkostnaderna för en pc äter upp besparingen ganska snabbt).

Om det är för krångligt att logga in över nätet med putty/ssh och göra allt i terminalen så kan man koppla raspberryn till en hdmi-monitor eller tv och använda ett usb-tangentbord och mus.

Och eftersom rrdbuddy läser av temperatursensorer via owserver så är det inget som hindrar att man kör rrdbuddy parallellt med en owfs/cron/bash/perl lösning om man redan har det igång.
Senast redigerad av motoz den 18 aug 2015, 16:24, redigerad totalt 1 gånger.
Open source pellet logger: https://github.com/motoz/PellMon
Användarvisningsbild
supportM
Moderator
Inlägg: 1010
Blev medlem: 20 aug 2014, 10:27
Ort: Linköping
Kontakt:

Re: nytt program RRDbuddy

Inlägg av supportM »

Några av länkarna är trasiga :)
De klipps med " ... " mitt i.
Du kanske vill göra ett blogginlägg om detta, så det får lite större spridning än här på forumet? Maila oss på info@m.nu om det låter intressant :)

//Jonas, m.nu
// Officiellt supportkonto för m.nu
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: nytt program RRDbuddy

Inlägg av motoz »

Fixat... Jag får tänka på det, under tiden är det skoj om någon vågar prova programmet!
Open source pellet logger: https://github.com/motoz/PellMon
Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: nytt program RRDbuddy

Inlägg av motoz »

RRDbuddy har en del problem då man kör med jessie versionen av raspbian, men jag orkar nog inte flytta över korrigeringarna som skulle behövas från PellMon, så utveckligen av RRDbuddy stannar här. Intresset var för lågt för att motivera mig.
Open source pellet logger: https://github.com/motoz/PellMon
Skriv svar