Thermostat pour piloter jusqu'à 4 radiateurs avec fil pilote
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
1.2 KiB

// SPDX-License-Identifier: GPL-3.0-or-later
/*
* Qt mutizone MQTT thermostat
*
* Copyright (C) 2019 Richard Genoud
*
*/
#include <QTranslator>
#include <QString>
#include "settings.h"
Settings *Settings::_singleton = NULL;
Settings::Settings()
{
QSettings s;
struct Room room;
struct Heater heater;
int nb_rooms;
nb_rooms = s.beginReadArray("rooms");
if (nb_rooms > MAX_NB_ZONES) {
// TODO;
nb_rooms = MAX_NB_ZONES;
}
for (int i = 0; i < nb_rooms; ++i) {
s.setArrayIndex(i);
room.name = s.value("name", "").toString();
room.sensor_topic = s.value("sensor_topic", "").toString();
room.availability_topic = s.value("availability_topic", "").toString();
int size = s.beginReadArray("heaters");
for (int j = 0; j < size; ++j) {
s.setArrayIndex(j);
heater.ctrl_topic = s.value("control_topic", "").toString();
room.heaters << heater;
}
s.endArray();
m_rooms << room;
}
s.endArray();
}
int Settings::nbZones(void)
{
return m_rooms.size();
}
Settings::~Settings()
{
}
Settings *Settings::getInstance(void)
{
if (!_singleton) {
_singleton = new Settings;
}
return _singleton;
}
/* vim: set tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab: */