Script correzione temperatura valvole: funziona!

24567

Commenti

  • Jacopo2
    Jacopo2 ✭✭✭
    Io intanto ho scritto uno script che corregge la temperatura senza uso di termometri esterni (quindi costo 0)
    Un offset per quando il radiatore è acceso e uno per quando è spento

    Lo sto sperimentando in una delle mie stanze e registrando la temperatura con un termometro per vedere come si comporta...
  • Ottimo @Jacopo2 !

    Io invece ho lasciato funzionare il mio script per 48 ore nel weekend e oggi e ho registrato oscillazioni dell'offset tra 3° e 10°. Il valore basso si raggiunge quando il termosifone è spento per ore, mentre quello alto quando il termosifone è acceso per almeno 1h, nel tentativo di raggiungere la temperatura desiderata. L'offset massimo che si può impostare è di 9°C, ma comunque l'algoritmo fa il suo lavoro.

    Prima considerazione: le temperature misurate da Tado sono molto più ottimistiche del reale. Ho approfittato per misurare la temperatura con un altro termometro indipendente (che fornisce la stessa misura del Sonoff) e ho la conferma che la mia valvola Tado è "starata" di almeno 2,5°C verso l'alto.

    Seconda considerazione: la stanza in cui sto sperimentando il sensore aggiuntivo registra una forte differenza di temperatura tra quanto misura la valvola termostatica di Tado e l'angolo opposto della stanza, anche a causa del fatto che il termosifone e dunque la valvola sono in un angolo e sotto una mensola di marmo, che genera una "bolla" di aria calda. Grazie al sensore aggiuntivo e alla gestione dinamica dell'offset, ora la temperatura nell'ambiente è molto migliorata (e ho anche abbassato la temperatura target su Tado di un paio di gradi).

  • alfaman
    alfaman
    modificato gennaio 2020

    Ottimo ! Speriamo che TADO prenda spunto per mettere sul mercato dei sensori esterni ed inizi a rispondere ai post di questo forum !!

    Mi viene solo un dubbio, visto che lavorate sull'offset... come la mettete con il bug sul "rilevamento finestre aperte" ?

    Io sono rimasto all'APP V3, non so se sia stato risolto il problema con la V3+, e quando riduco l'offset anche di un solo grado tado vede un repentino calo di temperature e quindi invece di aprire di più la valvola la chiude completamente !

  • @alfaman Io ho disattivato il rilevamento delle finestre aperte per evitare che l'automatismo, alla modifica dell'offset, chiudesse la valvola del termosifone.

    Nota: Supponendo che ci sia davvero un meccanismo di machine learning nel server Tado, immagino che la modifica dinamica dell'offset generi qualche confusione nella capacità del sistema Tado di apprendere qual è la dinamica della temperatura nella stanza. Che ne pensate?

    Ovviamente il modo migliore per gestire la cosa sarebbe di avere un sensore di temperatura ufficiale di Tado. Ho notato che ieri un moderatore di Tado (@Kenzo) ha risposto a vari topic, magari ci potrebbe dire qui se nella roadmap di Tado c'è l'idea di aggiungere un sensore economico nella gamma dei prodotti.

  • Jacopo2
    Jacopo2 ✭✭✭
    Il guadagno che si ha applicando anche grezzamente l’offset dinamico è nettamente superiore al disagio che si ha lasciando tutto com’è...
    Per il rilevamento finestra aperta, io l’ho disattivato più per sicurezza ma è vero che potrebbe non funzionare (non è che fosse affidabilissimo e utilissimo comunque)
  • Aggiungo che sembra sia possibile tramite Api impostare offset con i decimali; inoltre l’algoritmo di Tado sembra fare uno smoothin per rimuovere eventuali picchi e repentini cambi di temperatura, quindi anche questo lavora a nostro favore
  • @Jacopo2 Sono d'accordo sul fatto che il beneficio sia superiore ai possibili svantaggi e infatti io sto tenendo il mio raspberry attivo giorno e notte.

    Farò prove sulla possibilità di settare l'offset con decimali e poi vi confermo.

  • Ciao, io alla fine devo ancora iniziare a fare le prove (@Jacopo2 grazie per aver condiviso lo script). Onestamente invece dei sonoff pensavo di usare gli HT di shellycould. Sono interrogabili via MQTT, quindi se riesco a leggere il dato e fare il parsing dovrei riuscire (grazie al tuo script a fare la correzione dovuta).

    Costano poco quindi il tentativo lo farò anche perché con il Tasmota i onoff diventano inusabili su Alexa &co, inoltre gli shelly HT sono a batteria quindi dovrei riuscire a posizionarli meglio.

    Nel frattempo ho fatto anche una domanda a Tado: dato che sto installando i condizionatori pensavo di mettere anche lo smart AC... magari inserendolo in una stanza è possibile usare la temperatura che misura lui come riferimento... se mi rispondono di no mi sa che prendo da shellycloud pure quelli, il fatto che vadano via MQTT mi intriga parecchio.

  • Jacopo2
    Jacopo2 ✭✭✭
    No, non puoi usare il Tado ac come misuratore temperatura; puoi usare però un’altra valvola tado da radiatore

    Lo Shelly HT aggiorna solo quando la temperatura cambia di mezzo grado mi pare, quindi non so se funzionerà bene
  • Non sapevo del mezzo grado. Mi sa che prendo una e vedo un po' come funziona. Forse interrogandola aggiorna più di frequente
  • Confermo che le API consentono di impostare l'offset con valori decimali, che rimane poi memorizzato. La app su telefono e la versione web continuano però a mostrare un valore intero. Non so come si comporti l'algoritmo automatico. Se noterò differenze, vi saprò dire.

  • @FilTax anche te stai usando sonoff tasmota? sono alla ricerca di un'alternativa a batteria...

  • FilTax
    FilTax ✭✭
    modificato gennaio 2020

    @rischiav Sì, io uso Sonoff con Tasmota. Ha il difetto di richiedere una presa di corrente, ma mi pare di avere letto su vari siti che per i sensori a batteria si pone il problema della durata delle batterie a causa del consumo in fase di interrogazione e risposta via WiFi. Non vorrei dovere ricordare di cambiare le batterie ogni 2/4 settimane. Ho letto di tentativi di ridurre la frequenza delle interrogazioni fino a una all'ora per preservare la batteria, ma secondo me poi si perde il vantaggio di avere il sensore aggiuntivo.

  • Io sto usando Home Assistant su un MacBook Pro (nonostante abbia tutto sotto controllo via HomeKit e Alexa) da 2 giorni, ma non sono riuscito a far funzionare l'integrazione di HA con tado, seguendo alla lettera le istruzioni del sito situ ufficiale, ovvero inserendo nel file configuration.yaml le informazioni che uso per il login al sito di tado°:

    tado:

    username: miousername

    password: miapassword


    Dove sbaglio?

  • sono riuscito finalmente a modificare lo script ed ho messo in funzione un Th16 Tasmota in una stanza... vediamo come si comporta.


    Nel frattempo mi stavo studiando le API per riuscire a capire quando la caldaia è accesa e quando (ed eventualemtne quanto) il radiatore è aperto... avete qualche dritta da darmi o un documento che descriva le API?

  • Jacopo2
    Jacopo2 ✭✭✭
    C’è un parametro che si chiama HEATING o POWER che misura in percentuale la richiesta di calore
    Quando la caldaia è effettivamente accesa/spenta e quanto le valvole sono aperte non si può sapere, penso sia controllato direttamente dai vari termostati in locale
  • Pecato, volevo provare a correggere la temperatura in funzione delo stao della caldia e del radiatore. Io ho radiatori in anello (valvole monotubo) e quindi l'errore sulla temperatura misurata dipende da entrambi i fattori... avendo un solo sensore di temperatura volevo provare a coreggere in questo modo,ma se non esporta i dati non posso risuscirci, prenderò i sensori...


    Approposito, mi hanno risposto anhe dall'assistenza, non è possibile usare gli smart AC come iferimanto di temperatura per la caldaia. A sto punto prederò qualcos'altro magari usabile via REST

  • @rischiav Fino ad ora io avevo supposto che se almeno una delle valvole aveva il valore

    'activityDataPoints'.'heatingPower'.'percentage'

    maggiore di zero, allora la caldaia fosse accesa. Non riesco a verificarlo in maniera empirica.

  • @Jacopo2 Hai per caso notato un consumo anomalo della batteria delle valvole di cui modifichi l'offset in maniera dinamica? Io ho notato che la mia valvola modifica l'apertura molto spesso da quando ho attivato la correzione dinamica dell'offset e oggi ho dovuto sostituire le batterie, nonostante non mi fosse segnalata la bassa carica dalla applicazione. Io sto aggiustando l'offset ogni 5 minuti se è variato e imposto valori con i decimali.

    Forse mi conviene ridurre la frequenza di aggiustamento e magari impostare una granularità di 0.2 °C invece che l'attuale 0.1 °C?

  • Jacopo2
    Jacopo2 ✭✭✭
    modificato gennaio 2020
    Si, ho notato che c’è un movimento della valvola ad ogni aggiornamento dell’offset purtroppo; lo script che ho condiviso ha un errore che fa aggiornare l’offset anche quando non necessario
    L’ho corretto adesso e lo ripubblicherò a breve
  • Io avevo già evitato di aggiornare l’offset se il valore non era cambiato, ma avendo provato a usare il settaggio con i valori decimali, di fatto variazioni di decimi di grado causano frequenti riscritture dell’offset. Domani riduco la granularità del controllo a mezzo grado.
  • @FilTax ho provato a verificare... ma non mi sembra che sia sufficiente verificare 'activityDataPoints'.'heatingPower'.'percentage'


    Intanto ho messo in funzione un TH16 in una stanza... temperatura fissata a 18 gradi e sembra funzionare alla grande. Come granularità ho messo 0.2 gradi per l'offset, aggiornamento ogni 5 minuti. Vediamo come funziona

  • Cioè hai verificato che anche se tutte le % di apertura delle valvole sono a zero, la caldaia è accesa?
  • @FilTax si ho trovato un paio di volte la caldaia accesa con tutte le valvole a zero.


    Intanto ho sistemato lo script. attualemente calcolo l'offset ogni 5 minuti e lo invio solo se la valvola è su ON e diferisce dal valore salvato almeno di 0.2 gradi. Inoltre al primo giro in cui la valvola è su OFF invio offset = 0.0, poi finché rimane in off smetto di inviare.


    In questo modo stanotte a riscaldamento accesso ha inviato 5 aggiornamenti.... vediamo come funziona nei prossimi giorni.

  • Sai che non ho capito come funziona la tua logica? Supponendo che ci siano 5 gradi di differenza tra la temperatura rilevata dalla valvola e la temperatura misurata dal Sonoff, quando il Sonoff raggiunge la temperatura desiderata la valvola si chiuderà, e se tu imposti l'offset a 0, immediatamente la valvola si dovrebbe aprire perchè senza offset sarai 5 °C al di sotto dell'obiettivo desiderato. Forse ho capito male?

  • quando la valvola è su OFF, ovvero ottieni OFF chiedendo qualcosa del tipo

      POWER_SYST = response_POWER_SYS.json().get("setting").get("power")

    significa che non si aprirà ammeno che tu non cambi dandogli un setopint in manuale o un nuovo schedule.

    Se quel valore passa da ON a OFF allora invio OFFSET = 0.0 e non lo aggiorno più fino a quando non torna a ON

    Se è a OFF signigica che piano piano la valvola si rafredderebbe e quindi quindi l'offset andrebbe a zero (o comunque ad un valore costante) ma facendo diversi agiornamenti. In questo modo faccio un solo aggiornamento risparmiando batterie anche se metendo 0.0 e non l'ofset misurato il dato di temperatura che ottieni sullo storico non è veritiero, ma chissene tanto essendo su OFF vuol dire che non riscalda.

    Mi sono spiegato meglio?


    Comunque dopo circa 20 ore di funzionamento con la nuova logica e correzione dell'offset se la temperatura di riferimno differisce da quella della valvola di almeno 0.2 gradi la stanza settata a 19 sta tra 18.3 e 19.1, che direi accettabile. Prima con setpoint a 23 il termometro aggiuntivo misurava 17....

  • Ho capito qual è il parametro che osservi, ma da me è sempre ON, anche quando la valvola è aperta allo 0.0%. Parlo di questo, estratto dalla chiamata alla API zones/ZONA<x>/state:

      'setting':{ 

          'type':'HEATING',

          'power':'ON',

          'temperature':{ 

             'celsius':18.0,

             'fahrenheit':64.4

      }

        }

    Questo estratto XML è stato restituito dalla API in un momento in cui l'unica valvola della stanza era chiusa, la temperatura obiettivo era pari alla temperatura del Sonoff, ovvero 18°C. E la caldaia era spenta pure lei, in quanto anche le altre valvole erano tutte chiuse.

    Dunque non saprei come interpretare quel valore e come utilizzarlo per l'algoritmo di controllo.

  • esatto il parametro è quello. Vale ON se hai un setpoint qualsiasi indipendentemente che sia aperta chiusa, vale OFF non se la valvola cè chiusa ma se metti OFF come setpoint,

    ON non significa che il radiatore si sta scaldando, significa che hai un setpoint impostato e la valvola può aprirsi quando vuole e richiedere acqua calda.

    Prova a mettere una valvola in manuale e imposta al minimo possibile il setpoint, anche dalla valvola, ad un certo punto ti dice off.

  • Forse ho capito: tu hai sostituito completamente la logica automatica di Tado e stai comandando le valvole con una logica tua. Confermi?

    Io invece sto lasciando fare a Tado e alla programmazione che ho definito nella App Tado; gli sto solo dicendo qual è la temperatura corretta nella stanza, agendo dinamicamente sull'offset in base alla temperatura rilevata dal sensore Sonoff. Ecco perchè io non spengo mai la valvola (cioè non la metto su OFF).

  • No non stò usando una logica mia.

    Al momnto non uso lo schedule, per praticità uso il setpoint manuale, uo diverso per ogni stanza. Avendo un bambino di pochi giorni in pratica il riscaldamento è sempre acceso...

    Molto spesso uso Alexa pr cambiare il setpoint, e per praticità su Alexa ho fatto un grippo "riscaldamento" che contiene tutte le valvole, quini quando voglio aprire le finestre vado di: "Alexa spegni il riscaldamento"...

    E dopo trovo OFF sul parametro ;)

    La stessa cosa la ottieni mettendo da app un setpoint manuale (il più basso possibile), ma dovrei farlo stanza per stanza, mentre con i gruppi di Alexa riesco a fare le stanze tutte in una volta.