PellMon, pelletlogger med öppen källkod
Re: PellMon logger/setup-program för biocomfort/scotte/woody
lättanvänt och trevligt!
Ser att jag nog behöver ett externt pullup motstånd och även en kondensator på ingång B på ds2406 för min kontaktor som styr pump_running
återkommer efter montaget.
Ser att jag nog behöver ett externt pullup motstånd och även en kondensator på ingång B på ds2406 för min kontaktor som styr pump_running
återkommer efter montaget.
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Bättre rubrik!
Hoppas att fler hänger på, detta är verkligen ett mycket tilltalande program, ser inget liknande just nu.
enkelt och snyggt och praktiskt!
Och inte minst viktigt, ett användbart system för att optimera inställningar och minska förbrukning av pellets.
Och i mitt fall maximera uttaget av solenergin.
(fick ordning på min andra ingång på min ds2406 också.
ser att det är gjorda några mindre justeringar i programmet men inget att uppdatera för ännu?)
Hoppas att fler hänger på, detta är verkligen ett mycket tilltalande program, ser inget liknande just nu.
enkelt och snyggt och praktiskt!
Och inte minst viktigt, ett användbart system för att optimera inställningar och minska förbrukning av pellets.
Och i mitt fall maximera uttaget av solenergin.
(fick ordning på min andra ingång på min ds2406 också.
ser att det är gjorda några mindre justeringar i programmet men inget att uppdatera för ännu?)
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
email med grafisk bild verkar ju spännande, vågar man prova?
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Pushade det till master, så javisst.
Man får alltså en graf med valfri storlek och innehåll som bilaga vid alarm-epost, alternativt som inline bild i html-mail. Man kan också få ett 'follow-up' mail med en ny graf då en inställbar tid gått efter alarm, tänkte att det kan vara användbart om man inte har ordnat så man kan surfa in på loggern ifrån internätet.
Man får alltså en graf med valfri storlek och innehåll som bilaga vid alarm-epost, alternativt som inline bild i html-mail. Man kan också få ett 'follow-up' mail med en ny graf då en inställbar tid gått efter alarm, tänkte att det kan vara användbart om man inte har ordnat så man kan surfa in på loggern ifrån internätet.
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon logger/setup-program för biocomfort/scotte/woody
Har du funderat något mer på säkerheten?Honda skrev:
En cherrypy webbapplikation följer en standard för pythonbaserade webbapplikationer, WSGI http://en.wikipedia.org/wiki/Web_Server ... _Interface
Så då kommer vi till: varför vill du köra bakom apache? Cherrypy är inte min konstruktion, och även om det inte är apache så tror jag knappast att man behöver oroa sig för säkerheten i själva servern. Här finns en diskussion om säkerheten i cherrypy http://www.pythonsecurity.org/wiki/cherry-py/ Pellmonweb kör som standard under en egen systemanvändare med begränsade rättigheter, så även om det skulle finnas något hål i cherrypy så är skadan begränsad.
Nu skrivs ju felinloggningar till logg vilka sedan kan bannas och svartlistas, men hur ser du på övriga möjliga attacker, såsom försök till att injektera kod eller liknande, har du upplevt några störningar här?
ser att det verkar annars vara en smal sak att lägga upp den som virtuell host och "proxa" den .
exempelvis:
pellmon.example.com
är dock inte helt på det klara med det som ska in pellmon ännu, men virtuell host ska ju bara in i apache2 och bind och så några mappar med rättigheter.
då får man ju nytta av, precis som du skriver, alla säkerhetsfunktioner i apache2 kombinerat med exempelvis shorewall och fail2ban.
Senast redigerad av bosse123 den mån 17 mar, 2014 21:54, redigerad totalt 3 gång.
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Efter bästa förmåga så har jag kommit till att den enda punkten på den här listan: https://www.owasp.org/index.php/Categor ... en_Project som är relevant för PellMon är A8, CSRF. Det borde fixas i något skede, men det värsta som kan hända är ju att någon kan ändra de parameterar som är tillgängliga i PellMon via en riktad attack mot exakt dig på en extern webbsida som du besöker samtidigt som du är inloggad i PellMon, så jag har bedömt den risken som relativt låg och i praktiken hyfsat harmlös.
Koden är öppen så om någon som är mera insatt vill göra en analys så är det bara att sätta igång. Skriver du om punkt A9 "Using Components with Known Vulnerabilities" till "Using Components with Unknown Vulnerabilities" så gäller det förstås vilken kod som helst, så som vanligt gäller det att hålla systemet uppdaterat.
Koden är öppen så om någon som är mera insatt vill göra en analys så är det bara att sätta igång. Skriver du om punkt A9 "Using Components with Known Vulnerabilities" till "Using Components with Unknown Vulnerabilities" så gäller det förstås vilken kod som helst, så som vanligt gäller det att hålla systemet uppdaterat.
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon, pelletlogger med öppen källkod
Börjar bli mogen för att skapa mig en systembild med mina givarvärden utplacerade. html/javascript
Du skriver att det är fördelaktigt att hämta värdena från pellmoncli.
Japp, ska ge mig på det, men för att gena lite i kurvan, var i strukturen ligger det
eller ska jag kanske ladda ner hela härligheten till en annan dator hemma och "forka" lite istället?
Du verkar ju vara en "selfmademan", var bör jag börja?
enbart hämta värden från pellmon och ladda de i ett annat dokument eller göra min systembild "inuti" pellmonstrukturen?
Du skriver att det är fördelaktigt att hämta värdena från pellmoncli.
Japp, ska ge mig på det, men för att gena lite i kurvan, var i strukturen ligger det
eller ska jag kanske ladda ner hela härligheten till en annan dator hemma och "forka" lite istället?
Du verkar ju vara en "selfmademan", var bör jag börja?
enbart hämta värden från pellmon och ladda de i ett annat dokument eller göra min systembild "inuti" pellmonstrukturen?
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Pellmoncli (PellMon-Command-Line-Interface...) är ett separat program som installeras tillsammans med pellmonsrv och pellmonweb, skriv på kommandoraden så får du hjälp med hur det används.
Om du vill göra ett helt separat program och få tillgång till data från pellmon så är det enklast att använda pellmoncli, det kan du anropa från bash-script, perl, php, eller vadsomhelst. Pellmoncli kan bara läsa/skriva mätvärden, inte generera grafer. Grafer kan du 'beställa' i png format från pellmonweb tex med kommandot
/graph har ett ganska komplett 'api' numera, så du kan ange
?time=tidpunkt i sekunder sedan 'unix tid noll', om inte anges så används 'nu'
?timespan=x-axelns bredd i sekunder
?timeoffset=offset i sekunder (för att hoppa bakåt i tiden från 'nu')
?width=bredden i pixlar
?height=höjden i pixlar
?lines=kommaseparerad lista på data som ska plottas
?legends=yes/no
?bgcolor=rrbbgg i HEX
?align=left/center/right (om den angivna tidpunkten hamnar längst till vänster/mitten/höger)
(parametrar separas med '&', "/graph?time=98792834×pan=3600&lines=boiler_temp")
Vill du utöka webbgränssnittet i pellmon så är det i src/pellmonweb.py du ska starta. Läs genom http://www.cherrypy.org/ och någon bra 'grunderna i python' om det behövs. Jag har använt Mako template http://www.makotemplates.org/ för dynamisk generering av html, templaten finns i src/Pellmonweb/html. Framsidan genereras tex av 'index.html'. Javascript servas statiskt från src/Pellmonweb/media/js
För ett 'hello world' test kan du leta upp
i src/pellmonweb.py
och lägga till:
och sedan navigera till http://ip.ip.ip.ip:8081/helloworld
Och du måste alltså inte installera (make install) för att köra koden, starta det bara direkt från src med:
Du måste antingen ha en pellmon.conf fil i samma mapp, eller ge sökstigen till en config fil med parametern -C /path/to/configfile
Se bara till att använda en annan port ifall pellmonweb redan är igång på maskinen.
För att få hjälp med alla parametrar:
Lycka till!
Kod: Markera allt
pellmoncli.py -h
Om du vill göra ett helt separat program och få tillgång till data från pellmon så är det enklast att använda pellmoncli, det kan du anropa från bash-script, perl, php, eller vadsomhelst. Pellmoncli kan bara läsa/skriva mätvärden, inte generera grafer. Grafer kan du 'beställa' i png format från pellmonweb tex med kommandot
Kod: Markera allt
wget http://localhost:8081/graph
?time=tidpunkt i sekunder sedan 'unix tid noll', om inte anges så används 'nu'
?timespan=x-axelns bredd i sekunder
?timeoffset=offset i sekunder (för att hoppa bakåt i tiden från 'nu')
?width=bredden i pixlar
?height=höjden i pixlar
?lines=kommaseparerad lista på data som ska plottas
?legends=yes/no
?bgcolor=rrbbgg i HEX
?align=left/center/right (om den angivna tidpunkten hamnar längst till vänster/mitten/höger)
(parametrar separas med '&', "/graph?time=98792834×pan=3600&lines=boiler_temp")
Vill du utöka webbgränssnittet i pellmon så är det i src/pellmonweb.py du ska starta. Läs genom http://www.cherrypy.org/ och någon bra 'grunderna i python' om det behövs. Jag har använt Mako template http://www.makotemplates.org/ för dynamisk generering av html, templaten finns i src/Pellmonweb/html. Framsidan genereras tex av 'index.html'. Javascript servas statiskt från src/Pellmonweb/media/js
För ett 'hello world' test kan du leta upp
Kod: Markera allt
class PellMonWeb:
och lägga till:
Kod: Markera allt
@cherrypy.expose
def helloworld(self, **args):
return 'Hello world'
Och du måste alltså inte installera (make install) för att köra koden, starta det bara direkt från src med:
Kod: Markera allt
./pellmonweb.py
Se bara till att använda en annan port ifall pellmonweb redan är igång på maskinen.
För att få hjälp med alla parametrar:
Kod: Markera allt
./pellmonweb.py -h
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon, pelletlogger med öppen källkod
Jag har börjat experimentera med websockets för att hålla alla data uppdaterade utan att webbsidan behöver polla servern. Det är nog en bra bit kvar innan det är färdigt för 'master', men tillvidare finns det en prototyp i 'feature/websockets' som fungerar hyfsat.
Sedan började jag kolla lite på en systembilden. Jag har haft en tanke om att det borde gå att rita systembilden i svgformat och placera ut färdiga texter för mätvärden med lämplig textstorlek direkt i bilden, sedan skulle mätvärdena uppdateras på plats då de ändrar. Det visade sig fungera utmärkt, jag ritade en 'testbild' med inkscape och gav texterna ett unikt ID baserat på datapunkten som dess värde fås från. Via en websocket skickar webbservern upp ändrade data som uppdaterar bilden 'i realtid'. Man kan alltså öppna systembilden 'system.svg' i inkscape och rita om den, bilden är i vektorformat så det är bara att flytta om radera och lägga till enligt tycke och smak och den skalas fint till alla skärmstorlekar. Proton till det här finns i feature/processimage. ('Not recommended for production...'
Nytt beroende dessutom: python modulen ws4py behövs för webbsockets)

(ja det fattas enheter, bilden är inte vacker osv, men det är bara ett första test)
Sedan började jag kolla lite på en systembilden. Jag har haft en tanke om att det borde gå att rita systembilden i svgformat och placera ut färdiga texter för mätvärden med lämplig textstorlek direkt i bilden, sedan skulle mätvärdena uppdateras på plats då de ändrar. Det visade sig fungera utmärkt, jag ritade en 'testbild' med inkscape och gav texterna ett unikt ID baserat på datapunkten som dess värde fås från. Via en websocket skickar webbservern upp ändrade data som uppdaterar bilden 'i realtid'. Man kan alltså öppna systembilden 'system.svg' i inkscape och rita om den, bilden är i vektorformat så det är bara att flytta om radera och lägga till enligt tycke och smak och den skalas fint till alla skärmstorlekar. Proton till det här finns i feature/processimage. ('Not recommended for production...'


(ja det fattas enheter, bilden är inte vacker osv, men det är bara ett första test)
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon, pelletlogger med öppen källkod
Fantastiskt bra!
bör man installera ws4py nedladdad från github eller ska man ladda ner ws4py-0.3.4?
Edit:
Körde:
Det borde väl gjort susen?
bör man installera ws4py nedladdad från github eller ska man ladda ner ws4py-0.3.4?
Edit:
Körde:
Kod: Markera allt
pip install ws4py
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Ja säg det, ws4py dök ju upp i ubuntu först i 13.04. Jag har provat med den version som är paketerad i ubuntu 13.10 vilken det nu var, annars på ubuntu 12.04 och raspberry/raspbian har jag installerat ws4py från "python package index" med
det fungerar fint. 'pip' kan du installera med paketet python-pip om du inte redan har det installerat. (Annars är det ju snart dags att uppgradera till nästa LTS)
Fixade nyligen så att man kan lägga in 'hur många data som helst' i bilden utan att ändra i varken koden eller konfigurationsfilen. Ett javascript i browsern skannar genom bilden efter "id" som startar med 'paramname:', tex: 'paramname:boiler_temp' och öppnar en websocket som skickar upp ändrade data till de datapunkter som finns i bilden. Id till ett textfält ges enkelt i inkscape genom att högerklicka på texten och fylla i 'object properties->id'. Det är enklast att använda den medskickade 'system.svg' som template och redigera i den, den är lite redigerad för hand för att bildskalningen ska fungera.
(Du hann visst före med ditt EDIT ser jag... Om du körde pip install utan root så blev det installerat under ditt username i home, då hittar inte pellmonweb modulen längre då den är systeminstallerad, därför skrev jag 'sudo pip' då installeras det under /usr/local...)
Kod: Markera allt
sudo pip install ws4py
Fixade nyligen så att man kan lägga in 'hur många data som helst' i bilden utan att ändra i varken koden eller konfigurationsfilen. Ett javascript i browsern skannar genom bilden efter "id" som startar med 'paramname:', tex: 'paramname:boiler_temp' och öppnar en websocket som skickar upp ändrade data till de datapunkter som finns i bilden. Id till ett textfält ges enkelt i inkscape genom att högerklicka på texten och fylla i 'object properties->id'. Det är enklast att använda den medskickade 'system.svg' som template och redigera i den, den är lite redigerad för hand för att bildskalningen ska fungera.
(Du hann visst före med ditt EDIT ser jag... Om du körde pip install utan root så blev det installerat under ditt username i home, då hittar inte pellmonweb modulen längre då den är systeminstallerad, därför skrev jag 'sudo pip' då installeras det under /usr/local...)
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon, pelletlogger med öppen källkod
kör alltid i su - läge...
Funderar på om det går att använda något av alla plugin till att styra ett relä över min ds2406?
tänker mig denna funktion, ursäkta att koden ännu inte är fullständig men jag tror ni förstår önskan i koden.
Edit:
Ett startvillkor och ett stopvillkor, återstår att få de att samspela
Varför då då?
Jo, idén är att styra pelletsbrännarens start/stop med denna funktion, för att på så sätt få långa gångtider samtidigt som att den inte startar "i onödan" de dagar som solen klarar uppvärmningsbehovet.
(får skynda mig med systembilden, en bild säger som bekant mer...)
Funderar på om det går att använda något av alla plugin till att styra ett relä över min ds2406?
tänker mig denna funktion, ursäkta att koden ännu inte är fullständig men jag tror ni förstår önskan i koden.
Edit:
Ett startvillkor och ett stopvillkor, återstår att få de att samspela
Kod: Markera allt
toppen_tekniktank=pellmoncli.py get toppen_tekniktank
mitten_tekniktank=pellmoncli.py get mitten_tekniktank
Start
if ($toppen_tekniktank<='60'
Stop
$mitt_tekniktank>='60')
}
Jo, idén är att styra pelletsbrännarens start/stop med denna funktion, för att på så sätt få långa gångtider samtidigt som att den inte startar "i onödan" de dagar som solen klarar uppvärmningsbehovet.
(får skynda mig med systembilden, en bild säger som bekant mer...)
Senast redigerad av bosse123 den mån 31 mar, 2014 07:20, redigerad totalt 1 gånger.
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
lite försent på kvällen för denna typ av övning men jag kunde inte hålla mig
gjorde ändring i id till detta i filen /usr/local/lib/python2.7/distpackages/Pellmonweb/media/img/system.svg :
för id,t för pannan i system.svg
paramname:panna
startade sedan om både pellmonsrv och pellmonweb
Behöver jag göra en ny make install?
eller redigerade jag fel fil???

gjorde ändring i id till detta i filen /usr/local/lib/python2.7/distpackages/Pellmonweb/media/img/system.svg :
för id,t för pannan i system.svg
paramname:panna
startade sedan om både pellmonsrv och pellmonweb
Behöver jag göra en ny make install?
eller redigerade jag fel fil???
Viking bio 20 i en vedolux 40, ackumulatortankar och 15m2 solfångare.
Re: PellMon, pelletlogger med öppen källkod
Det är rätt fil, och det verkar ju att fungera då jag öppnar din logger. Du behöver inte installera om eller starta om något då du redigerat system.svg, bara ladda om webbsidan med F5.
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger
Re: PellMon, pelletlogger med öppen källkod
Visst kan du styra brännarens start/stopp med en ds2406 och ett 'Calculate' script eller ett skräddarsytt plugin. Du har väl en viking bio? Den har visst en ingång för styrning med panntermostat så själva styrningen är ju enkel, men här gäller det att ta en ordentlig funderare på driftssäkerheten. Jag skulle nog personligen kunna tänka mig att lita på PellMon mjukvarumässigt, men du måste ju lita på hårdvaran också, och onewire nätet. Kanske det går att kombinera termostatingången med ordinarie temperatursensor så att den fungerar 'som vanligt' om något hänger upp sig? Om du nöjer dig med att elpatronen får ta över ifall det fastnar i 'off' läge och ordinarie tempsensorn kan släcka ner brännaren om det fastnar i 'on' så är det väl ganska enkelt.
Annars är det väl något sånt här du är ute efter (med python syntax):
(Jag experimenterade med en ny layout med två kolumner på 'frontpage' förresten i den grenen så du fick det med på köpet. Vad tror du, bättre/sämre? Jag tyckte systembilden blev för stor med enkolumnslayouten, men du kanske vill ha en stor bild med alla dina givare. Layouten skulle förstås kunna vara konfigurerbar den också...)
Annars är det väl något sånt här du är ute efter (med python syntax):
Kod: Markera allt
if running:
if mitten_tekniktank > 60:
running = False
else:
if toppen_tekniktank < 60:
running = True
Termax 25Cr med spaksotning, Bio Comfort + lambda + kompressorrengöring, 10m skorsten med 125mm insatsrör. 8t bulkförråd. Matene vertikalskruv. https://github.com/motoz/PellMon open source pelletlogger