Domotica 1.0 Go!!!

Finalmente la luce...

« Older   Newer »
 
  Share  
.
  1. frank10a
     
    .

    User deleted


    Sì, ma ho appunto provato a mettere tutto assieme e mi dà quei problemi.

    Ho un locale dove ho i computer e da lì mi partono e arrivano i vari cavi:
    parto con un cavo con IO, 4 sensori temp , 1 dualcounter, altri due temp e mi ritorna lì. Fin qui tutto ok.
    Poi se collego il cavo che è tornato, a un altro cavo che parte da lì e mi va per altri 30mt con altri due sensori Temp, mi dà i problemi.
    La parte di cavo da 30 mt senza la prima parte di rete funziona bene da sola.
    Messe assieme in serie non va.
     
    .
  2.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    in che senso parte e arriva un cavo?
    io ho i cavi che partono... e non tornano.

    PC -> coppia cavi dentro cat5 o da soli -> sensore -> coppi cavi -> dualcounter ... etc etc
     
    .
  3. frank10a
     
    .

    User deleted


    Nel senso che originariamente avevo 3 cavi separati che partivano da quella stanza, ma non funzionava bene così. Penso proprio per la topologia a stella che può dare problemi col solo Master USB, come ho letto in un doc della Maxim.
    Per quella tipologia è ottimo l'Hub.

    Allora ho pensato di fare un collegamento seriale, collegando le estremità di due linee e farne una sola che mi parte e mi arriva nella stessa stanza.
    Poi l'estremità la avrei collegata al terzo cavo. Ma facendolo non va bene come ho detto sopra.
     
    .
  4. lucab2
     
    .

    User deleted


    CITAZIONE (Fringui75 @ 16/10/2010, 19:50)
    ...

    Se volete impazzire ;) e vedere la nuova versione di tcasa.. prelevatelo qui:
    http://rapidshare.com/files/425551438/Tcasa.zip


    ...

    azz... sono arrivato tardi? :ph34r:
     
    .
  5.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    In effetti il link pubblicato non va più.. provo un altro modo di condivisione..

    www.megaupload.com/?d=S93RNXG3

    Vediamo se questo regge ;)

    Correggo anche l'altro post, così non ci si sbaglia

    CITAZIONE (frank10a @ 18/10/2010, 18:51)
    Nel senso che originariamente avevo 3 cavi separati che partivano da quella stanza, ma non funzionava bene così. Penso proprio per la topologia a stella che può dare problemi col solo Master USB, come ho letto in un doc della Maxim.
    Per quella tipologia è ottimo l'Hub.

    Sinceramente mi sembra strano.. ho certificato con un impianto fatto veramente da cani che la 1wire funziona pure sott'acqua :D

    Calcola che il mio impianto è misto e fatto veramente male, ora un po meno male di prima :)
    Ho saldato e messo la termorestringente su tutte le giunte (che sono veramente tante).

    Prima funziona ed era uno schifo, fili arrotolati a mano senza nulla sopra, esposti a qualsiasi intemperia, qualche problema solo durante la pioggia, tratti fatti solo da 2 fili attorcigliati (spelato filo di rete e prese singole coppie per fare tutte le derivazioni).
    Passo in tanti tubi dove c'è corrente e altro...
    La tratta che va dal pc al piano terra passa in un cavo cat5 ma dove dentro passano anche i segnali di 3 telecamere e la loro alimentazione!!

    Mi chiedo come possa funzionare ;)
     
    .
  6. frank10a
     
    .

    User deleted


    Bè, ma se sono alimentazioni in CC non dovrebbero dare disturbi magnetici.
    Più che altro la tratta vicino alla 220V, ma i cat5 tengono bene, soprattutto se sono bassi amperaggi.

    Io penso sia soprattutto un problema di lunghezza dei fili.
    La maxim parla di riflessioni nel segnale che torna indietro e confonde un po' tutto.
    Soprattutto quando hai un cavo portante e da lì parti con vari cavi lunghi dei vari sensori: una tipologia seriale sì, ma "stubbed".
    Oppure, oltre alla cat5 ho usato il cavetto flessibile a 4 fili del telefono per arrivare ai sensori Temp, ma penso che per 2-3m non possa fare tanti danni anche se non sono twistati, questi tratti non sono su canalette o altro.

    Ho letto questo doc molto interessante:
    www.maxim-ic.com/app-notes/index.mvp/id/148
    Il master ideale non sarebbe comunque quello USB, ma penso un tipo da porta seriale un po' più sofisticato e arriverebbe anche fino a 500m:
    CITAZIONE
    Appendix C and application note 4104, "Understanding and Configuring the 1-Wire Timing of the DS2480B.")

    The recommended circuit for long line applications is the microcontroller with advanced bus interface, as discussed in application note 244 discussed above. This master-end interface circuit uses impedance matching (of both the high and low drivers) and "intelligent" (software-controlled) active pullup. The pullup is turned on whenever the 1-Wire protocol determines that the bus should be at a high level, and during reads after the bus has been sampled and found to be at a high level. This interface works with large and small 1-Wire networks equally well, and can reliably operate a network with high weight and radius values up to 500m.

    Comunque sì, sono rimasto un po' male della portata complessiva nel mio caso... circa 130mt con 8xTemp 1xIO 1xDual

    Tu nelle diramazioni che vanno ai sensori partendo dalla portante cat5e quanti metri fai al massimo? E sono quasi tutte simili le lunghezze o hai molte differenze?
     
    .
  7.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    In effetti io ho il seriale autocostruito, con l'usb, che uso sul portatile per fare test di programmazione in effetti spesso non ho tutte le letture fatte con il seriale.

    Per il mio.. boh.. in caldaia anche 5/6metri, alcuni pochi cm.. ma poi è una diramazione unica la mia... tipo parto con un filo, diramazione 2 sensori, altra diramazione sensore con diramazione... altri 4 collegati, altra diramazione qualche metro, altri sensori.. etc etc...

    La linea che mi da maggiori problemi adesso è quella sul tetto che parte da un miscuglio allucinante.. e va su in un cavo pezzent twistato ma non schermato.. e poi di dirama ulteriormente..

    Io ho 2 dual counter, 1 I/O, e 36 temperature!!
    Prova a costruirti il seriale, sono 4 componenti in croce.. e a quanto pare funziona meglio ;)
    Anche se inizialmente pensavo che l'usb avesse a disposizione più corrente e quindi... boh ;)
     
    .
  8. frank10a
     
    .

    User deleted


    Ho provato a farmi l'adattatore seriale, seguendo questo schema:

    http://frittolinux.it/docs/temp_howto/#AEN79

    L'hai costruito anche tu così?

    Ho comprato anche un adattatore USB-seriale perché non ho la seriale sul portatile. Dovrebbe darmi la COM5.

    Però al momento non mi funziona: tu come adapter port e type che valori hai messo?
    E poi controllando col tester all'uscita dei due fili (DQ e GND) senza connettere i fili della 1-wire, mi dà solo 1V, partendo dai circa 6V della seriale (pin 2 e 4): penso ci sia qualcosa che non va... A te dà 5V?
     
    .
  9.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    Adapter type 1 o 6 (uno usb l'altro seriale)

    Mai misurato, questa sera verifico.

    Lo schema mi sembra uguale... questa sera verifico.. ma sembra proprio lui.
     
    .
  10.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    Direi che si potrebbe cambiare il titolo in DOMOTICA 2.0Beta GO!!! :woot:

    Finalmente sono riuscito a ritagliare tempo e voglia.. e ho dato un bel colpo di spugna alla baracca di software che avevo
    fatto, che funzionava a spinta.. e bastava nulla per farlo andare in crisi.

    Adesso.. è un pochetto più elaborato, ecco qua la schermata che regola la mandata del pavimento:

    image

    Evito di spiegare ogni singola cosa.. a meno che qualche pazzo me la chieda...
    Ho rivisto tutto il progetto e fatto in modo "modulare", se voglio aggiungere non dovrei fare troppa fatica.
    In più ho risolto tutti i controlli delle accensioni con i relè.
    Ho anche fatto alcune parti del programma varibili, tipo i sensori di riferimento, se mi gira che al posto di controllare
    una temperatura per fare una determinata cosa ne voglio usare un'altra, non devo fare altro che sceglirere dai menu a tendina.. COSA PARECCHIO COMODA, senza dover riaprire il progetto, cercare valori, righe di codice.. etc etc.

    Non è ancora finito.. ma è già a buon punto.
    In alcuni punti ho quasi esagerato come verifiche.. ma meglio una verifica in più che in meno.
    Ora farò un paio di giorni di rodaggio.. e vediamo come si comporta 24/24.

    Se volete.. metto anche le altre schermate finite.
     
    .
  11. lucab2
     
    .

    User deleted


    posta le foto!
    ma non ti serve un beta tester :ph34r:
    oggi il mio impianto è andato in crisi: se aggiungo dei sensori al secondo centro stella va in corto tutto :mad3.gif: gli stessi sensori collegati in un altro punto funzionano. ho letto da qualche parte che andrebbero messe delle resistenze da 100 ohm in serie a ogni ramo... proverò
     
    .
  12. frank10a
     
    .

    User deleted


    Sì, posta posta pure :).

    Nel tuo caso con tutti i sensori che hai, è stato utile prevedere anche di cambiare al volo il controllo. Nel mio caso ogni stanza ha il suo sensore e il controlo è solo quello.

    Come verifiche cosa intendi? Controlli CRC o controlli incrociati dei vari sensori?

    Io, ad esempio ho notato alcuni errori - molto rarissimi - anche nella lettura delle temp: una volta un valore di 85°, sufficiente però a farmi partire il relè per niente. Ho messo quindi un range di valori 'possibili' per escludere errori.
    Idem per il dual counter, rarissime volte mi ha portato 30 scatti di colpo portandomi la potenza impegnata a 30kW... e mi ha fatto partire il controllo carichi, anche qui ho messo dei limiti.

    A proposito di CRC, nel programma in C c'è un codice tipo:
    CODICE
    CRCByte = (BYTE) TMTouchByte(session_handle,0xFF);
    CRC16 = TMCRC(1, &CRCByte, CRC16, 1);

    CRCByte = (BYTE) TMTouchByte(session_handle,0xFF);
    CRC16 = TMCRC(1, &CRCByte, CRC16, 1);


           
            if (CRC16 != 0xB001)
            {
                    rt = -1;
                    return rt;
            }


    Cioè usa la funzione dell'API TMEX TMROM per calcolare il CRC ad ogni lettura di Byte.
    Alla fine però confronta il CRC con 0xB001 ?? Che vuol dire?
    Il compilatore poi mi dice che è sempre vero il confronto:
    "comparison is always true due to limited range of data type"
    il CRC16 è un unsigned char.

    Insomma voi come lo calcolate il CRC, potrebbe risolvere parecchi problemi di errate letture!

    CITAZIONE (lucab2 @ 6/11/2010, 21:41) 
    oggi il mio impianto è andato in crisi: se aggiungo dei sensori al secondo centro stella va in corto tutto :mad3.gif: gli stessi sensori collegati in un altro punto funzionano.

    Ho visto anch'io qualcosa di strano nei sensori: mi sembra utile usare OnewireViewer: nel caso ci sia qualcosa che non va, i vari sensori nella parte sinistra appaiono e spariscono senza motivo. Ad esempio a me faceva così finchè non ho aggiunto un altro sensore in un punto dell'impianto!
    Quindi ho risolto un po' di stabilità aggiungendo un sensore, non togliendone.
    Penso sia un problema di equilibrio di impedenza, da quello che ho letto nei doc della Maxim.

    Però ho letto che il trucco dei 100-150 Ohm non si adattava bene all'adattatore USB.
     
    .
  13.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    Tento di rispondere un po a tutto...

    Beta tester purtroppo non servono perchè è vero che l'ho fatto + elastico possibile, ma non così tanto da adattarsi ad un altro impianto, molto codice usa parametri variabili impostabili sull'interfaccia, ma altrettando usa valori fissi perchè farlo variabile richiede più del doppio di codice da scrivere.. e sinceramente in 2 giorni questo ho potuto produrre.. ok che mi è venuta voglia.. ma tutto ha un limite :woot:

    Letture strane, le ho evitate semplicemente con un po di logica, ho notato pure io l'85.. semplicemente saltato a piedi pari, quando ho numeri strani (86, -0,06, >1000 e 0) leggo nel db la lettura precedente e la prendo come buona, raramente ho visto leggere 2 volte un valore sbagliato, quinti, sempre teoricamente ora è tutto corretto.
    Poi ovviamente nulla è esente da errori.

    Il dual counter non mi ha mai dato problemi (di lettura, di impulsi si, l'ho risolto mettendo a massa la calza del cavo cat.5 che va ai contatori).

    Gli errori maggiori che mi mandavano in crisi l'impianto erano dalla scheda a relè, la scrittura sulla scheda 0 problemi, però poi quando andavo a leggere a volte mi dava accese cose che invece non lo erano, accendendole la volta successiva per errore oppure dandomi informazioni sbagliate per la logica del programma, anche qui saltato a piedi pari l'errore, all'inizio la spengo tutta, ogni volta che mando un comando alla scheda ciò che è spento viene rispento e non la leggoo più, vado sulla fiducia.. ho fatto un po di test ed è un fulmine scrivere senza leggere successivamente, basta non mandare comandi più vicini di 1 secondo.

    Controllo CRC si potrebbero fare, ma sinceramente adesso non ho voglia, magari nella versione 3 :giveup.gif:

    E ora.. spiego la prima schermata postata qui sopra, sicuramente ci saranno altre modifiche per sistemare o aggiornare, ma ho già un ottimo risultato, nelle prime 12 ore di funzionamento nessun errore, regolazione climatica da certosino!! ;) ma soprattutto.. fa tutto da solo!!

    Partendo dall'alto.. ho adottato un ciclo di 1 minuto grafico, nel senso.. c'è una barra che impiega 1 minuto per arrivare in fondo, dopodichè ricomincia, serve per avere un timer per azionare tutto e avere una visione di quello che sta facendo.. in questo modo se sto pasticciando sul programma o lo sto controllando per vedere il funzionamento ho un riscontro visivo di quando manca per il prossimo passaggio.

    Sotto ho le varie sezioni, che cambiano anche durante il funzionamento, quando regola il pavimento visualizza il pavimento, la caldaia.. etc etc. sempre per poter seguire le logiche senza dover premere nulla, lo posso tenere in una finestra e vedo che sta lavorando e cosa sta facendo.

    E ora.. la seconda, la prima è semplicissima, una barra che scorre per la lettura di tutti i sensori, e salva nel DB, tutte le sezioni hanno in comune il tasto ADESSO, che lancia le funzioni della schermata senza aspettare il ltimer (quasi sempre usato nelle verifiche, a volte 1 minuto è lungo da aspettare ;) ).

    In alto l'attivazione automatica della schermata, se "flaggato" al suo momento entra in funzione, entra in funzione con il tempo di intervento, se metto 1 verrà eseguita ogni volta che la barra del timer principale arriva in fondo, 2 ogni 2.. e così via. Alcune funzioni le regolo ogni minuto, altre ogni 2 e salvo nel db ogni 5, ovviamente tutto modificabile con un click.. senza dover ricompilare il progetto.

    Ora, le seghe mentali di 2 anni di studio e rilevamenti ;)
    Curva climatica, legge la T esterna e leggendo da una mia tabella trova a che T mandare l'acqua.. se non attivo usa il valore fisso nel campo a fianco, delta di intevento è il +- che usa come range di azione, valore +-X da tenere come mandata, se diverso apre o chiude.

    Correggi climatica, è un semplice +- in aggiunta, se voglio sperimentare un grado in meno anche qui non devo toccare nessuna tabella ma basta un click :lighten.gif:

    Riduzione data/ora, sto provando a ridurre di notte la temperatura di mandata di X gradi, notare, non la T in casa ma solo la mandata, la T in casa è una conseguenza.. qui è possibile dargli dalle alle.. oppure se si va in vacanza dargli una data ;)

    Elabora temperatura, usato per quando c'è sole in casa, se la T di un sensore X, selezionabile, supera il valore scritto la mandata viene ridotta della differenza tra valore X e mandata calcolata fino a quel momento, c'è pure un orario, lo uso praticamente quando non sono in casa e c'è sole, visto il grosso apporto di calore dovuto alle finestre, ma come sempre intervengo sulla mandata, non sulla T ambiente.

    Mandata minima, se in fondo a tutte le caxxate calcolate fino ad ora scendo sotto un certo limite, salto tutto il calcolo fatto e prendo questo valore, l'ho fatto per non mettere acqua fredda nel pavimento di casa, se per caso il ritorno fosse a 24 e il calcolo mi dice 20, come limite prendo questo nuovo valore, ovvio che scenderà in modo progressivo, ma non tanto quando chiudere tutto e far circolare acqua.

    Ottimizza termostufa, serve per non morire di caldo, quando accendo la stufa cala la mandata di X° per non avere troppo caldo e far lavorare meglio la stufa, se non c'è troppo prelievo dlal'accumulo sale prima di temperatura, scalda meglio e accumula di più.

    Sotto, ogni esecuzione mi fa vedere il valore calcolato, anche qui utile nei vari test.. mancano ancora un paio di cose.. ma verranno con il tempo ;).. dopotutto siamo alla versione beta. (impostazione mezza stagione, estate/inverno.. e non molto altro, spero :ops.gif: )

    Pannello sotto.. uazz.. ma quanta roba ho fatto?!?! :wave.gif:

    Comanda manualmente la scheda a relè, graficamente si vede a che punto è la miscelatrice, ottenuto semplicemente cronometrandola, all'avvio del programma la chiude per il tempo cronometrato (a fine corsa tanto si spegne da sola) e quindi sa con una precisione apprezzabile, dove si trova, non è solo grafica ma serve anche come riferimento quando parte la caldaia che butterebbe tutto nel pavimento, questo è ancora da ottimizzare.

    A fianco uno schema rapido del pavimento di casa.. ma ormai uso il grafico di Tcasa per capire cosa è successo e cosa sta succedendo.

    Appena riesco pubblico anche le altre schemate spiegate per filo e per segno.. chi è interessato si può leggere tutto.. :woot:

    Sicuramente in giro ci sono centraline evolute.. ma questa, modestia a parte.. secondo me controlla un po più cose ed è più impostabile..

    Non vedo l'ora che arrivi l'idraulico settimana prossima per avere anche i valori del gas e vedere con scarti di 1° le differenze sui consumi.. da qui potrò scoprire se le varie regolazioni servono a consumare di meno

    Per il momento.. that's all folks!! :rotflmao.gif:

     
    .
  14.  
    .
    Avatar

    Veterano

    Group
    Member
    Posts
    12,481
    Location
    Cannobio

    Status
    Anonymous
    E per la gioia di grandi e di piccini.. ecco il pannello della caldaia

    image

    Ovviamentte identico al precendente per tutte le parti comuni, attivazione e gestione.

    Innesco e disinnesco, tramite 4 valori presi dai sensori, ovviamente in modo personalizzabile pure qui, decide quando accendere la caldaia e quando spegnerla, ovviamente è il risultato finale dei 2 controlli che lavora, per partire usa il primo per spegnere il secondo.. nelle ultime 12 ore ha funzionato in modo certosino!!
    Dalle 21 di ieri alle 7 di questa mattina si è accesa solo 3 volte per un tempo che varia dai 20 ai 30 minuti, impostata com'è si attiva quando l'accumulo non può soddisfare la richiesta di mandata del pannello precedente, e si spegne quando tutto l'accumulo raggiunge quella temperatura.

    Sotto ho messo 2 interventi aggiuntivi per pannelli e termostufa, se sono attivi questi 2 verifica le loro temperature e spegne la caldaia, inutile farla andare se c'è un'altra fonte di energiia attiva.

    Il flag termobagni attiva in contemporanea la pompa per scaldare i termobagni.. e cosa se no?!?!?! ;)

    Grazie a questa nuova gestione finalmente la caldaia non fa più 1000 accensioni e la T di mandata è costante come piace a me ;)
     
    .
  15. frank10a
     
    .

    User deleted


    Ottimo Fringui. Bravo!
    Mi sa che ci assomigliamo ;) Anch'io ho fatto un sacco di controlli e comandi, mi manca la parte grafica, poi la posterò.

    Sì, ho notato anch'io gli errori sulla scheda relè.
    Infatti ho parzialmente risolto i problemi che vi avevo scritto, tramite SW. In particolare questi errori:
    1) a volte segna tutte le 8 posizioni dell'activity tutte on (anche se non sono state accese...)
    2)a volte in lettura, quando si resetta l'activity, dà errore 0xAA
    3)qualche volta non scrive il relè comandato né nessun altro.
    4)l'unico relè che ho passo-passo, mi dava un po' di problemi in più perché devo accenderlo-spegnerlo in un secondo: la seconda scrittura dà errore anche se poi scrive giusto, ma molte volte rimaneva on anche se gli avevo detto di spegnersi.
    5) per ultimo un brutto problema di 'Shift' dei valori in lettura: se ho 00101000, mi legge 00010100, cioè sposta a destra di uno i valori Logic e output. Solo che è raro e random! Per capirlo, individuarlo e risolverlo ci ho messo un bel po' nei log...


    Confermo comunque che la lettura con FindFirstFamily e Next non va bene con oltre 6 sensori T. Andando di ROM invece va benissimo.

    Per ultimo ho fatto un'altra brutta esperienza a lieto fine che può essere utile però ad altri:
    ho collegato per sbaglio una lampadina da 100W 220V a un input e mi ha bruciato la resistenza con relativo fumo, la scheda andava per una settimana senza l'ingresso che non andava. Poi invece non andava più tutta la scheda.
    Ho guardato nei fogli della hobby-board, sono resistenze da 1500ohm 1W, ne ho saldata una ed è tornata come nuova!
    Posto la foto.

    Ciao
    Attached Image
    IMAG0332.jpg

     
    .
365 replies since 20/9/2009, 19:07   14412 views
  Share  
.