Select your language

Mida teha kui kütteruumi sattub tossu ja see võib kogemata kombel tuppa hiilida või kuumal suveööl on toas palav ?
Siin on abiks üks väike arduino Nano või Mini, MQ-2 gaasi detektor ja relee,
mis aitab väljatõmbeventilaatori (katuseventilaator)  käima ajada kui need õiges järjekorras kokku kruvida ja veidi "koodi" peale lugeda.
Kuna see oli üks esimesi kindla rakendusega projekt siis olin usin ka kommentaare kirjutama.

Komponendid:
1. Arduino Nano (5V)
2. Toiteplokk 5V DC
3. MQ-2 gaasi andur
4. 220 V relee (hea kui ESP1S sisendiga)
5. Installatsiooni materjalid

Vilkuv roheline: CO gaasi konsentratsiooni kontroll töötab ja tase on alla lubatava taseme.
Vilkuv punane:  CO tase on ületatud ja ventilaator on sisse lülitatud.

Kui vajutada nuppu < 3 sek automaat reziimis siis süsteemi paus 3 min siis taastub autmaatreziim.

Kui vajutada nuppu > 3 sek siis süsteem seiskub (hea kasutada puude katlasse lisamisel, et alarõhk ei tõmbaks suitsu katlast ruumi).
Kui vajutada nuppu < 3 sek seisu reziimis siis taastub autmaatreziim.

Hiljem asendasin relee mooduli ESP-relee mooduliga ja lisandus võimalus telefonist (app Blynk) ventilaatori siise / välja lülitamiseks.
Serveris töötav Node red saab infot muuhulgas ka maja sise / välis temperatuuri kohta ja on seadistatud manual / auto reziimidel ventilaatorit juhtima.

1. Automaat reziim:
a) kui  (toa temp. > seadistus temp (25 C)  &  toatemp > õue temp) siis lülita vent. siisse <- hoiab toaõhu jaheda

b) ventilaatori juhtimine vastavalt ajakavale
2. Manual reziim: app Blynk käsitsi siise / välja lülitamine

MQ2 suitsuanduri käsk on priorteetne auto/manual reziimi suhtes (suitsu sattumise oht eluruum) ja lülitab vent. vajadusel sisse / välja.
/* GAS Sensor MQ-2
  This sensor detects flammable gasses
  connect AO to Arduino analog pin A0
  connect Gnd to Arduino Gnd
  connect Vcc to Arduino 5 volts+
  Arduino NANO
  Nupp1 - +5v
  Nupp2 - 10k - GND
  Nupp2 - pin10
  LED(roheline)- pin8
  LED(rohelin)- 220k - GND
  LED(punane)- pin6
  LED(punane) - 220k - GND
*/

const int analogInPin = A0;     // Analog input pin MQ2 sensor
const int ledPin = 13;          // LED connected to digital pin 13
const int relee = 12;           // relee väljund
const int nupp = 10;            // Nupp to digital pin 10
const int ledRo = 8;            // LED (roheline)connected to digital pin 8
const int ledPu = 6;            // LED (punane)connected to digital pin 6

const int alarm = 210;          // alarm value 210
int sensorValue = 0;            // value read from the sensor
long tsukkel = 1000;            // kontroll tsükli pikkus
long paus = 3 * 60 * tsukkel;   // min vent tööaeg 3min*60s*tsukkel 1000ms

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);       // sets the digital pin as output
  pinMode(ledRo, OUTPUT);        // sets the digital pin as output
  pinMode(ledPu, OUTPUT);        // sets the digital pin as output
  pinMode(nupp, INPUT);          // sets the digital pin as input
  pinMode(relee, OUTPUT);        // set rreel as output
  digitalWrite(relee, HIGH);
  digitalWrite(ledRo, LOW);      // sets LED (roheline) off
  digitalWrite(ledPu, LOW);      // sets LED (punane) on
}
void loop()
{
a:
if(digitalRead(nupp)==HIGH){        // kui nuppu vajutada
  digitalWrite(ledPu, HIGH);        // punane led kustub
  digitalWrite(ledRo, HIGH);        // roheline led kustub
  delay(3000);                      // paus 3 s
  if (digitalRead(nupp)==LOW){      // kui nupp vajutatud vähem kui 3s siis
    Serial.println(F("PAUS !"));    // paus
    digitalWrite(relee, HIGH);      // vent stopp
    for (int i=3*60 ; i>0 ; i--){   // pausi aeg 3 min
      Serial.println(i);            // serial print sek
      if(digitalRead(nupp)==HIGH){  // kui vajutada uuesti nuppo siis
        digitalWrite(ledPu, LOW);   // punane led kustub
        digitalWrite(ledRo, LOW);   // roheline led kustub
        delay(3000);
        goto a;                     // tagasi algusesse
      }
      delay(1000);
    }
    digitalWrite(ledPu, LOW);
    digitalWrite(ledRo, LOW);
  }
  else {
    Serial.println(F("TOTAL STOPP !"));  //kui nupp surutud kauem kui 3 sek siis seiskab ventilaatori
    digitalWrite(ledPu, LOW); 
    digitalWrite(ledRo, LOW);
    digitalWrite(relee, HIGH);
    delay(10000);
    while(digitalRead(nupp)!=HIGH){}     //kuni nuppu uuesti vajutada läheb algusesse /lõputu tsükkel
    digitalWrite(ledPu, HIGH); 
    digitalWrite(ledRo, HIGH);
    delay(1000);
    digitalWrite(ledPu, LOW); 
    digitalWrite(ledRo, LOW);
    delay(3000);
    goto a;
  }
}
  
  sensorValue = analogRead(analogInPin); // read the analog in value:
  delay(tsukkel);
  digitalWrite(ledPu, LOW);              // sets LED (roheline) off
  delay(tsukkel);
  if (sensorValue > alarm)               // determine alarm status
  {
    // TÖÖTAB
    digitalWrite(relee, LOW);            // sets relee on
    digitalWrite(ledPu, HIGH);           // sets LED (roheline) on
    digitalWrite(ledRo, LOW);            // sets LED (punane) off
    Serial.println(F("Tootab"));
  }
  else
  {
    digitalWrite(ledPu, LOW);            // sets LED (roheline) off
    digitalWrite(ledRo, HIGH);           // sets LED (punane) on
    delay(tsukkel);
    digitalWrite(ledRo, LOW);            // sets LED (punane) off
    if (paus <= 0)
    {
      // SEISAB
      digitalWrite(relee, HIGH);         // sets relee on
      Serial.println(F("Seisab"));
    }
  }
  Serial.print(F("sensor (alarm: "));
  Serial.print (alarm);
  Serial.print(") = ");                  // jadapordi monitor - sensor
  Serial.println(sensorValue);
  Serial.print(F("Paus (s) = " ));       // jadapordi monitor   - pausi pikkus
  Serial.println(paus);
  if (paus <= 0) {
    paus = 3 * 60 * tsukkel; //reset timer
  }
  paus = paus - tsukkel;                 // pausi vähendus tsükkli võrra
}



​
4.283MBMemory Usage522msRequest Duration
Joomla! Version4.4.2
PHP Version8.2.15
Identityguest
Response200
Templatepupu_juku
Database
Server
mysql
Version
10.3.39-MariaDB-0+deb10u2
Collation
utf8mb4_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
array:1 [ "q" => "/info/et/arduinoklubi/kütteruumi-ventilaator" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:42 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_ACCEPT_ENCODING" => "gzip, deflate,...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743567143 "last" => 1743567143...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
plg_system_languagefilter
array:1 [ "language" => "et-EE" ]
  • afterLoad (391.58KB) (5.41ms)
  • afterInitialise (1.06MB) (56.26ms)
  • afterRoute (191.48KB) (10.75ms)
  • beforeRenderComponent com_content (18.48KB) (1.36ms)
  • Before Access::preloadComponents (all components) (60.85KB) (4.72ms)
  • After Access::preloadComponents (all components) (87.69KB) (1.6ms)
  • Before Access::preloadPermissions (com_content) (752B) (58μs)
  • After Access::preloadPermissions (com_content) (36.45KB) (1.3ms)
  • Before Access::getAssetRules (id:94 name:com_content.article.23) (1.37KB) (61μs)
  • After Access::getAssetRules (id:94 name:com_content.article.23) (6.18KB) (347μs)
  • afterRenderComponent com_content (248.8KB) (30.58ms)
  • Before Access::getAssetRules (id:8 name:com_content) (25.72KB) (3.25ms)
  • After Access::getAssetRules (id:8 name:com_content) (1.17KB) (41μs)
  • afterDispatch (2.63KB) (2.1ms)
  • beforeRenderRawModule mod_menu (Main Menu EST) (231.25KB) (9.72ms)
  • afterRenderRawModule mod_menu (Main Menu EST) (10.61KB) (4.73ms)
  • beforeRenderRawModule mod_languages (Language) (21.01KB) (1.16ms)
  • afterRenderRawModule mod_languages (Language) (18.4KB) (4.58ms)
  • Before Access::getAssetRules (id:16 name:com_menus) (10.58KB) (709μs)
  • After Access::getAssetRules (id:16 name:com_menus) (5.07KB) (101μs)
  • afterRender (266.91KB) (382ms)
  • 1 x afterRender (266.91KB) (73.28%)
    382.47ms
    1 x afterInitialise (1.06MB) (10.78%)
    56.26ms
    1 x afterRenderComponent com_content (248.8KB) (5.86%)
    30.58ms
    1 x afterRoute (191.48KB) (2.06%)
    10.75ms
    1 x beforeRenderRawModule mod_menu (Main Menu EST) (231.25KB) (1.86%)
    9.72ms
    1 x afterLoad (391.58KB) (1.04%)
    5.41ms
    1 x afterRenderRawModule mod_menu (Main Menu EST) (10.61KB) (0.91%)
    4.73ms
    1 x Before Access::preloadComponents (all components) (60.85KB) (0.9%)
    4.72ms
    1 x afterRenderRawModule mod_languages (Language) (18.4KB) (0.88%)
    4.58ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (25.72KB) (0.62%)
    3.25ms
    1 x afterDispatch (2.63KB) (0.4%)
    2.10ms
    1 x After Access::preloadComponents (all components) (87.69KB) (0.31%)
    1.60ms
    1 x beforeRenderComponent com_content (18.48KB) (0.26%)
    1.36ms
    1 x After Access::preloadPermissions (com_content) (36.45KB) (0.25%)
    1.30ms
    1 x beforeRenderRawModule mod_languages (Language) (21.01KB) (0.22%)
    1.16ms
    1 x Before Access::getAssetRules (id:16 name:com_menus) (10.58KB) (0.14%)
    709μs
    1 x After Access::getAssetRules (id:94 name:com_content.article.23) (6.18KB) (0.07%)
    347μs
    1 x After Access::getAssetRules (id:16 name:com_menus) (5.07KB) (0.02%)
    101μs
    1 x Before Access::getAssetRules (id:94 name:com_content.article.23) (1.37KB) (0.01%)
    61μs
    1 x Before Access::preloadPermissions (com_content) (752B) (0.01%)
    58μs
    1 x After Access::getAssetRules (id:8 name:com_content) (1.17KB) (0.01%)
    41μs
27 statements were executed, 5 of which were duplicates, 22 unique10.83ms57.7KB
  • SELECT @@SESSION.sql_mode;175μs928B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `dm5ti_session` WHERE `session_id` = ?319μs976BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `dm5ti_session` WHERE `session_id` = :session_id LIMIT 1313μs1.14KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `dm5ti_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)432μs800BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `dm5ti_viewlevels`128μs920B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `dm5ti_usergroups` AS `a` LEFT JOIN `dm5ti_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest141μs1.16KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `value` FROM `dm5ti_admintools_storage` WHERE `key` = 'cparams'124μs504B/administrator/components/com_admintools/src/Helper/Storage.php:120Copy
  • SELECT `option`,`view`,`query` FROM `dm5ti_admintools_wafexceptions`133μs624B/plugins/system/admintools/src/Utility/Cache.php:196Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `dm5ti_categories` AS `s` INNER JOIN `dm5ti_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray1,:preparedArray2)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`317μs4.36KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id` FROM `dm5ti_content` WHERE `alias` = :alias AND `catid` = :catid154μs1.17KBParams/components/com_content/src/Service/Router.php:263Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `dm5ti_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)332μs6.09KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `dm5ti_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0223μs2.2KBParams/libraries/src/Access/Access.php:301Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `dm5ti_content` AS `a` INNER JOIN `dm5ti_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `dm5ti_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `dm5ti_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `dm5ti_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `dm5ti_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0 AND `a`.`language` IN (:preparedArray1,:preparedArray2)) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray3,:preparedArray4)1.33ms6.07KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `dm5ti_categories` AS `s` INNER JOIN `dm5ti_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`316μs3.8KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `dm5ti_contentitem_tag_map` AS `m` INNER JOIN `dm5ti_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)305μs3.81KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `dm5ti_categories` AS `s` INNER JOIN `dm5ti_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`319μs3.8KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM dm5ti_fields AS a LEFT JOIN `dm5ti_languages` AS l ON l.lang_code = a.language LEFT JOIN dm5ti_users AS uc ON uc.id=a.checked_out LEFT JOIN dm5ti_viewlevels AS ag ON ag.id = a.access LEFT JOIN dm5ti_users AS ua ON ua.id = a.created_user_id LEFT JOIN dm5ti_fields_groups AS g ON g.id = a.group_id LEFT JOIN `dm5ti_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC350μs5.72KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `dm5ti_content` AS `a` LEFT JOIN `dm5ti_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) AND `a`.`language` IN (:preparedArray3,:preparedArray4) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC2.45ms1.81KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:188Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `dm5ti_categories` AS `s` INNER JOIN `dm5ti_categories` AS `c` ON (`s`.`lft` < `c`.`lft` AND `c`.`lft` < `s`.`rgt` AND `c`.`language` IN (:preparedArray3,:preparedArray4)) OR (`c`.`lft` <= `s`.`lft` AND `s`.`rgt` <= `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`368μs3.8KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `language`,`id` FROM `dm5ti_menu` WHERE `home` = '1' AND `published` = 1 AND `client_id` = 0130μs592B/libraries/src/Language/Multilanguage.php:123Copy
  • SELECT `alias` FROM `dm5ti_content` WHERE `id` = :id139μs1.15KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `alias` FROM `dm5ti_content` WHERE `id` = :id126μs1.15KBParams/components/com_content/src/Service/Router.php:168Copy
  • SELECT `c2`.`language`,CONCAT_WS(':', `c2`.`id`, `c2`.`alias`) AS `id`,CONCAT_WS(':', `ca`.`id`, `ca`.`alias`) AS `catid` FROM `dm5ti_content` AS `c` INNER JOIN `dm5ti_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `dm5ti_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `dm5ti_content` AS `c2` ON `a2`.`id` = `c2`.`id` INNER JOIN `dm5ti_categories` AS `ca` ON `c2`.`catid` = `ca`.`id` AND `ca`.`extension` = :extension2 WHERE `c`.`id` = :id AND c2.access IN (1,5) AND c2.language != 'et-EE' AND (c2.publish_up IS NULL OR c2.publish_up <= '2025-04-02 04:12:23') AND (c2.publish_down IS NULL OR c2.publish_down >= '2025-04-02 04:12:23') AND c2.state = 1677μs1.31KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT `c2`.`language`,`c2`.`id` FROM `dm5ti_menu` AS `c` INNER JOIN `dm5ti_associations` AS `a` ON `a`.`id` = `c`.`id` AND `a`.`context` = :context INNER JOIN `dm5ti_associations` AS `a2` ON `a`.`key` = `a2`.`key` INNER JOIN `dm5ti_menu` AS `c2` ON `a2`.`id` = `c2`.`id` WHERE `c`.`id` = :id177μs1.22KBParams/libraries/src/Language/Associations.php:145Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `dm5ti_scheduler_tasks` AS `a` WHERE `a`.`state` = 1566μs1.2KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `dm5ti_session` WHERE `session_id` = ?350μs984BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `dm5ti_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?434μs576BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy