Allt i samma perl-script?

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Allt i samma perl-script?

Inlägg av MartinF »

Jag loggar data, producerar grafer, skickar grafer till webben och visar realtidsdata på LCD. Planer finns också på att börja styra cirkulationspumpar, golvvärmeslingor m.m.

En nackdel med att köra allt i samma script, är att varje loop nu tar ca 16 sekunder och då tar det tid, exempelvis att reagera på ett knapptryck på displayen. Sedan är det en del saker som inte måste ske så ofta som var 16:e sekund. Fördelen är att jag har enkel tillgång till alla variabler.

Har kollat in IPC::Shareable which "allows you to tie a variable to shared memory making it easy to share the contents of that variable with other Perl processes". Men innan jag räknar ut hur man gör för att installera det så undrar jag:
Hur gör ni andra och vad är rätt väg att gå för en glad amatör?
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Allt i samma perl-script?

Inlägg av daromer »

Jag kör varje del för sig i egna script. hade likväl kunnat varit i egna trådar i ett och samma program om man dragit det krasst.

jag delar t ex ingen data mellan scriptet som hämtar temperaturer och scritpet som styr pannan eller lyset i huset. Så de kan alla agera var och sig utan problem. Fördelen är också att jag inte lamslår allt när jag behöver göra en förändring.

Enda alla dessa ahr gemensamt just nu är databasen. Och därifrån styr jag det mesta. Jag har dessutom dubbla styrdatorer och även dubbla databaser som är synkade. Så spelar ingen roll vilken maskin jag startar upp grejerna på. (Förutom de som arbetar mot hårdvaran. De måste ligga på den maskinen...)

tex när jag ska tända lyset så läggs en rad i databasen. Nästa program som ska ha datan loopar hela tiden igenom. Och hittar den nåt nytt utför den det. Max 1 sekunds fördröjning har jag just nu. Hade säkerligen kunnat dra ner det ytterligare men tycker det funkar mer än väl.

Orsaken till att jag lägger alla förändringar i databasen istället för att skicka kommandot direkt över tcp/ip till processen är väl för att det är bekvämt och enkelt att lägga det i databasen. Måhända påverka databasen lite mer men maskinerna i sig har inga som helst problem med detta.

har några problem som läser via nätet direkt också. Och kommer gå över till det för vissa saker som kräver att jag skjuter ändringarna med 10ms fördröjning som mest för att inte störas på det.
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Allt i samma perl-script?

Inlägg av MartinF »

Tack för tipset, vad är det för databas du använder och var lär jag mig om den?
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Allt i samma perl-script?

Inlägg av daromer »

Jag kör med MySql databaser. 2 st till detta på 2 maskiner med master-master replikering emellan.

mysql är ganska stor så är bara att googla på.
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Allt i samma perl-script?

Inlägg av MartinF »

Bra, tack, misstänkte nästan det. Har länge tänkt sätta mig in i mysql, så nu är jullovet är räddat!
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Skriv svar