Kā nolasīt MAX! termostatu temperatūru regulāros intervālos

Viena no problēmām, ko novēroju, izmantojot MAX! termostatus ir tā, ka tie ar regulāru intervālu neziņo par temperatūru telpā. Termostati savu izmērīto temperatūru noziņo tikai gadījumos kad mainās kāds no sekojošiem parametriem:

  • Vārsta pozīcija;
  • Termostata darbības režīms (Auto, manuāls, eko vai izslēgts);
  • Uzstādītā temperatūra

Tāpēc temperatūras grafiki izskatās haotiski un ar lieliem lēcieniem

FHEM piedāvā MaxScanner moduli, kas ļauj apiet šo problēmu un ļauj nolasīt un saglabāt temperatūru regulāros intervālos. Pirms to konfigurēt ir jāņem vērā vairāki nosacījumi.

  • Regulēšanai ir iespējami divi režīmi. Pirmajā (pēc noklusēšanas) tiek regulāros intervālos tiek mainīts apkures režīms no automātisku uz manuālu un atpakaļ. Otrā gadījumā termostata uzstādītā temperatūra tiek pamainīta par mazu vienību un pēc brīža atgriezta uz iepriekšējo vērtību. Abos gadījumos tas liek termostatam ziņot aktuālo temperatūru.
  • Programmatūra, kas šīs operācijas veic, paļaujas, ka sensoriem IR uzstādītas nedēļas programmas un termostati ir automātiskajā temperatūras režīmā.
  • Šī moduļa izmantošana palielina pārsūtāmās informācijas apjomu starp sistēmu un termostatiem tāpēc:
    • jāņem vērā limiti informācijas pārsūtīšanai;
    • gadījumā, ja telpā ir sienas termometrs, kas regulāri sūta informāciju, jāizvērtē vai nepieciešams lasīt aktuālo temperatūru no radiatoru termostatiem;
    • gadījumos, kad telpā ir vairāki radiatori, jāizvērtē vai ir nepieciešams lasīt temperatūru no visiem termostatiem, vai tikai no viena katrā telpā.

Priekšnosacījumi

Radio signāla kvalitāte

Pārliecinieties, ka radio signāla kvalitāte starp sistēmu un termostatiem ir pietiekami laba. Par sliktu signāla kvalitāti var liecināt sekojoši ieraksti log failā:

2018.11.12 13:45:25 2: CUL_MAX_SendQueueHandler: Missing ack from 1a3c91 for 0f4c04031234561a3c9100120c0dadd6

Tas norāda, ka sistēma ir sūtījusi signālu termostatam (vai citai ierīcei), bet nav saņēmusi apstiprinājumu. Šādā gadījumā sistēma mēģinās, ar pāris minūšu intervālu, atkārtoti sūtīt ziņojumu, izmantojot pieejamos kredītus, kas traucēs temperatūras skanera darbību

Nedēļas programmas

Pārliecinieties, ka visiem termostatiem, kuriem vēlaties skanēt temperatūru ir korekti uzstādītas nedēļas programmas un tās jau kādu laiku darbojas. Laikā, kad uzstādiet programmas, tiks izmantoti daudz pārraides kredīti, kas neļaus skanera programmai korekti darboties, par ko liecina sekojoši ieraksti log failā:

2018.11.15 16:54:56 2: CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 3, but we need 121. Waiting 118 seconds. Currently 3 messages are waiting to be sent.

Manā gadījumā, es vairākās telpās, piemēram garāžā, turēju konstantu temperatūru un termostatus manuālā režīmā. Pirms skanera palaišanas, es šo telpu aktuālo temperatūru neredzēju vispār vai ļoti reti, jo termostati to neziņoja, ja vien es manuāli nemainīju uzstādīto temperatūru, vai termostati nemainīja vārstu pozīciju.

Lai šajās telpās varētu regulāri redzēt aktuālo temperatūru, es izveidoju sekojošu nedēļas programmu

set MAX_Garaza_1 weekProfile Mon 10,23:55,10 Tue 10,23:55,10 Wed 10,23:55,10 Thu 10,23:55,10 Fri 10,23:55,10 Sat 10,23:55,10 Sun 10,23:55,10
<h3>Problēma ar Max! termostatu firmware</h3>
Iespējams, ievērojāt, ka iepriekšējā kodā par nedēļas profilu es katrai dienai definēju divus laika periodus, no 00:00 naktī līdz 23:55 un no 23:55 līdz pusnaktij. Pie tam, abiem periodiem temperatūra ir vienāda.

Šāds papildus periods ir nepieciešams, jo Max! sensoru firmware (Vismaz versijā 1.1, kas ir manos termostatos) ir kļūda, kuras dēļ termostats dienas pēdējā periodā vienmēr uzstāda temperatūru 17 grādi! Tāpēc ir nepieciešams uzstādīt pēdējo periodu īsi pirms pusnakts un nav pat svarīgi, kādu temperatūru norādīsiet, termostats šajās 5ās minūtēs centīsies temperatūru noturēt pie 17 grādiem.
<h2>Konfigurācija</h2>
Lai definētu skanera moduli fhem.cfg failā jāpievieno sekojoša rinda:

define Scanner MaxScanner

Skanera modulim var definēt sekojošus atribūtus:

  • disable - uzstādot šo parametru uz 1, modulis tiek deaktivizēts un temperatūras nolasīšana nenotiek. Noklusētā vērtība ir 0 - temperatūra tiek lasīta
  • scnCreditThreshold - skaitlis no 150 līdz 600 (noklusētā vērtība ir 300) nosaka minimālo pieejamo kredītu apjomu, pie kura skaneris skanēs temperatūru. Ja pieejamo kredītu skaits ir zemāks par definēto, tad skanēšana tiek izlaista līdz nākamajam noalsīšanas laikam.
  • scnMinInterval - skaitlis no 3 līdz 60 (noklusētā vērtība ir 3), kas nosaka minimālo intervālu minūtēs pēc kāda tiks veikta temperatūras lasīšana.

Katram MAX! termostatam, kuram vēlaties skanēt aktuālo temperatūru jāpievieno rinda:

attr MAX_Kristera scanTemp 1

Šajā gadījumā temperatūras skanēšana tiek iestatīta termostatam MAX_Kristera.

Ar scnProcessByDesiChange atribūtu var izvēlēties vienu no diviem temperatūras nolasīšanas režīmiem. Šis atribūts var būt 0 vai 1:

  • 0 (noklusētā vērtība) - temperatūras lasīšana notiek, mainot termostata darba režīmu no automātiska uz manuālu un pēc pusminūtes atgriežot to automātiskā režīmā, tādējādi liekot tam ziņot par temperatūru.
    Šī mehānisma priekšrocība ir tā, ka termostats negroza vārstu, tādējādi tas notiek pilnīgi klusi un patērē mazāk baterijas.
  • 1 - temperatūras lasīšana notiek palielinot uzstādīto temperatūru par 0,5 grādiem un pēc pusminūtes to atkal samazinot par 0,5 grādiem.
    Šī mehānisma galvenā priekšrocība ir tā, ka termostats netiek pārslēgts uz manuālo režīmu un, pat ja notiek problēmas ar fhem sistēmu, tas turpina darbu automātiskā režīmā ar uzstādīto nedēļas režīmu.