Apparati > Firmware (di classe WRT)

Domotica con openwrt su x86

(1/20) > >>

truthahn:
Salve a tutti...
Dopo quasi un anno di sperimentazione con la "centralina controllo gpio" sul prode wrt54gl del centro sociale che ha dato veramente ottimi risultati (non ha mai sbagliato un colpo!!!) si ? deciso di dotare tutte le sale comunali (palestra, 3 sale civiche, biblioteca, sala polifunzionale, centro del volontariato) di una centralina per il controllo domotico da gestire direttamente dal municipio. Alcune strutture sono dotate di collegamento ad internet, altre dovranno essere raggiunte come il centro sociale con un collegamento wifi. La scelta dell'assessore, condivisibile, ? di passare da una centralina basata su un router "modificato" come quello sperimentato a materiali reperibili sul mercato e non dipendenti dalle saldature, modifiche artifici vari eseguiti da Truthahn. Fare quindi qualcosa in serie, facilmente aggiornabile, cambiabile e trovabile.
L'obiettivo ? quello di dotare ogni struttura del controllo dei seguenti device:
apriporta, riscaldamento, luci interne e esterne, Fari esterni quando presenti, irrigazione quando presente ecc.., videocontrollo, Telefoni voip, accesso ad internet il tutto controllato da remoto tramite interfaccia web con "pulsanti", programmazione, telefono e localmente tramite tastierino numerico posto all'esterno degli edifici per consentire anche l'apertura della porta.
Ho scelto di utilizzare Openwrt avendone testata la stabilit? sull'altra centalina e avendo gi? chiaro come muovermi e poterlo poi utilizzare anche su altre mie sperimentazioni su router.
Cos? ? nata la (scusate la spacconata  8-) )... OpenXwrTrutahnDomoticControl


Materiali utilizzati:
Intel? Desktop Board D510MO... dispone di tutto e di pi?, porte seriali, usb, veloce, minipci per scheda wifi, a basso consumo.

1 gb di ram
1 adattatore sata-cf
1 cf da 4 gb (esagerata ma ho trovato quella a basso prezzo e per immaganizzare log e jpg del videocontrollo a iosa)
1 scheda rel? (8 rel?) con interfaccia seriale

1 tastierino numerico con interfaccia seriale (l'ho trovato!!!!!!!)

1 termometro usb (? in viaggio)
2 webcam "normali"

ed ecco il risultato.... simile all'all'atra centralina ma con accorgimenti e varie cose in pi?. Per la gestione della tastiera numerica ho udato python con il modulo pyserial, ho instalalto asterisk che ora risiede localmente e non si appoggia pi? all'esterno e migliorato il tutto.... almeno spero :-D

questa ? la pagina delle configurazioni. Da qui impostando il nome dei device e collegandoli ai rel? vengono generati automaticamente i programmi di gestione associati ai vari device, si pu? modificali anche a piacimento in casi partricolari.



Passando al modo "centralina" si trovano le varie pagine di gestione...
La pagina comandi funziona come una semplice plancia a bottoni, da qui al volo si gestisce il tutto..


La pagina programmazione serve appunto per programmare, cancellare, aggiornare, abilitare o disabilitare le varie programmazioni per data, orario ecc..


La pagina Password per dare agli utenti la pass che vale sia per la tastiera che per il telefono. (le pass degli amministratori si settano nella pagina principale di configurazione)


la pagina telefoni serve per vedere lo stato dei vari telefoni e per far ripartire, al caso, asterisk.


La pagina telecamera per gestire il videocontrollo, con registrazione filmati su server remoto e chiamata telefonica


la pagina log per gestire i log e scaricarli per gestirli con exel


i dati scaricati....
-----------------------------------------------------------------
LOG Palestra - 28/12/2010 12:11:26


Condizionatore
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Martedi|28|Dicembre|2010|10:10|11:11|01:01|Comandi |
|2|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 01:02

Fari
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Martedi|28|Dicembre|2010|10:10|11:36|01:26|Comandi |
|2|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 01:27

Irrigazione
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Martedi|28|Dicembre|2010|10:10|11:11|01:01|Comandi |
|2|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 01:02

Luci
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Martedi|28|Dicembre|2010|10:10|11:36|01:26|Comandi |
|2|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 01:27

Riscaldamento
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Lunedi|27|Dicembre|2010|17:44|17:45|00:01|Antigelo |
|2|Lunedi|27|Dicembre|2010|17:49|17:51|00:02|Antigelo |
|3|Lunedi|27|Dicembre|2010|18:05|18:10|00:05|Antigelo |
|4|Lunedi|27|Dicembre|2010|18:15|18:20|00:05|Antigelo |
|5|Lunedi|27|Dicembre|2010|18:45|20:18|01:33|Comandi |
|6|Lunedi|27|Dicembre|2010|21:10|21:19|00:09|Comandi |
|7|Lunedi|27|Dicembre|2010|21:39|21:39|00:00|Comandi |
|8|Lunedi|27|Dicembre|2010|21:39|21:41|00:02|Comandi |
|9|Lunedi|27|Dicembre|2010|21:41|21:42|00:01|Comandi |
|10|Lunedi|27|Dicembre|2010|21:42|21:47|00:05|Comandi |
|11|Lunedi|27|Dicembre|2010|21:48|21:48|00:00|Comandi |
|12|Lunedi|27|Dicembre|2010|21:49|21:50|00:01|Comandi |
|13|Lunedi|27|Dicembre|2010|21:50|21:50|00:00|Comandi |
|14|Lunedi|27|Dicembre|2010|21:50|22:20|00:30|Comandi |
|15|Lunedi|27|Dicembre|2010|22:24|22:25|00:01|Comandi |
|16|Lunedi|27|Dicembre|2010|22:26|22:37|00:11|Comandi |
|17|Lunedi|27|Dicembre|2010|23:59|11:36|11:37|Comandi |
|18|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
|19|Martedi|28|Dicembre|2010|11:40|<blink>In corso</blink>||Admin Telefono|
TOTALE: 14:24

Telefoni
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Lunedi|27|Dicembre|2010|23:24|23:25|00:01|Comandi |
|2|Martedi|28|Dicembre|2010|10:10|11:11|01:01|Comandi |
|3|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 01:03

Termostato
|N.|Giorno_sett|Giorno|Mese|Anno|Ora_start|Ora_stop|Ore|Utente|
|1|Martedi|28|Dicembre|2010|11:38|11:39|00:01|Admin |
TOTALE: 00:01

tastiera
2 28 12 2010 09:43:27 nello 11111

tastieraadmin
2 28 12 2010 11:40:45 Apriporta

tastieraerror
2 28 12 2010 11:40:51 8562 tas
2 28 12 2010 11:40:57 1235 tas

telefono
2 28 12 2010 11:37:50 pippo 11111(100)

telefonoadmin
2 28 12 2010 11:38:20 Accenditutto 100
2 28 12 2010 11:39:22 Spegnitutto 100
2 28 12 2010 11:40:05 Riscaldamento 100

telefonoerror
2 28 12 2010 11:40:33 85632(100) tel
----------------------------------------------------------------------------------------

la pagina backup per scaricare le configurazioni


? stato veramente un gran lavoro ma ora ? pronta all'installazione. :-)
C'ho perso un sacco di serate a farla funzionare a dovere, per capire e scoprire come leggere la tastiera in phyton e leggere lo stato dei rel? che per linux non era previsto (o provato con "cats" non presente in openwrt).
Non volendo lasciare programmi in esecuzione con degli sleep e poter fare le programmazioni da un'ora precisa ad un'altra, ho affidato tutto a cron, ma questo mi ha incasinato la vita per il fatto che i vari comandi son possibili per 4 vie diverse (programmazione, comandi web, tastiera e telefono), quindi dar priorit? e permettere ai log di registrarsi in modo corretto.
Detto cos? sembra una cavolata ma non lo ? stata.

truthahn:
non ho (ancora) creato l'ipk , ho l'immagine della cf pronta da clonare con dd.... son 4gb e quindi non la metto in rete.

Fabietto_DJ:
Un bel progetto completo! Complimenti... :-)

thedog75:
Complimenti anche da parte mia, veramente un bel lavoro...  Viva linux!!

truthahn:
Viva!!!!
Avrei bisogno di una mano. Il tutto ora gira con uhttp e va bene, ma provando ad installare apache  ? un'altra storia per velocit? e stabilit?,. Ora dopo giorni e giorni di debug va bene ma ho notato che al minimo errore uhttp s'impappina e certe volte va fatto un restart per rifarlo andare. Apache ? una bomba ma ha un problema: viene compilato di default per essere lanciato da un utente e mai da root. Questo naturalmente ? pi? che giusto per qualsiasi server web pubblico ma qui ? un'altra storia perch? si devono lanciare un sacco di programmi con permessi da root, solo per configurare l'aspetto router.
Ora se provo a farlo partire con user root naturalmente mi "sgrida" di brutto e dice che non ? cosa da fare ma che se proprio non capisco nulla basta aggiungere "-DBIG_SECURITY_HOLE" con l'env CFLAGS.  Se si avesse un bel .configure naturalmente che s? ma con gli svn di openwrt backfire dove cacchio la imposto. Passarla con il make non funge, esportarla come variabile globale neanche... l'ho ricompilato 10 volte 'sto apache. O metto l'utente nel gruppo root e setto tutto, ma proprio tutto in suid... ma non mi garba.  Uno pi? sveglio di me mi da una dritta... anche una storta la prendo se funziona. :-D

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa