我认为每个现代人至少都会想知道:您可以为公共公寓的这些垃圾费用支付多少?我在这里-也不例外。照明,煤气,暖气,水,租金,电梯,固体废物清除等 等等
创建BARY应用程序的原因之一(远非最后一个)是能够收集统计信息,分析和减少能耗。欧洲早已进入全面经济体制,我认为这种命运不会绕过我们。因此,事先准备绝对不会多余。
我建议考虑如何结合BARY:智能家居来优化能源成本。
入门:空调和地板采暖
能源成本的第一个优化是使用地板采暖和空调。即使没有详细的分析,很明显它们消耗很多。
今天,只有懒惰者没有写关于病毒感染预防的文章。但是,尽管如此,重复是学习的源泉。保持公寓健康抗病毒的关键是温度为18-24摄氏度,湿度为40-60%,以及定期通风。
我的空调实际上在夏天没有关闭。在冬天,地板采暖也发生了同样的事情。在屋主不在家的情况下,空调只是偶尔关闭(我不想回到闷的房间),而温暖的地板从来没有关闭。这件事的账单简直是宇宙的,温度远非理想。在离开之前,手动关闭所有东西是不可能的:没有时间,那简直就是被遗忘了。
大多数家用空调没有远程空气温度传感器(我只有一个),即它们不能准确地提供给定的温度范围。但是,当达到温度上限阈值时,可以通过任何外部传感器将其打开;而当温度达到下限阈值时,则可以将其关闭。这是我的第一次自动化。
实际上,它看起来像这样:下限阈值设置为24.0°C,上限阈值设置为24.5°C。一旦公寓内的温度上升到24.5°C以上,空调就会打开并工作直到温度下降到24.0°C以下。为了防止空调每分钟打开和关闭,我们为工作和休息的最短时间设置了条件。我吃了十分钟。我凭经验选择了含义。但是实际上,温度始终在指定范围内。
在BARY它看起来像这样:
图。
我认为打开空调的规则值得进一步详细说明示例中显示的规则:
- 在过去的10分钟内,空调的状况没有改变;
- 安全模式已关闭;
- 空调关闭;
- 睡眠模式被禁用(夜间模式使用不同的规则);
- , ( , . , );
- ( , .. , );
- ( , ).
从那以后,空调的电力消耗减少了数倍。为了使空调器在所有者不在时不会闲置,在BARY中创建了一个虚拟按钮,该按钮的状态出现在空调器的自动化中(上例中的“安全”)。相同的虚拟按钮用于夜间模式(上例中为“ Sleep”),在单独的自动化规则中也将其考虑在内,并以最安静的模式打开空调。最初,这些按钮必须手动激活。
以苹果生态系统的形式找到了自动化解决方案。实现了我的带有Homekit的设备捆绑,并购买了Apple TV。有了它的帮助,您可以在Homekit中实现自动化规则的工作(您也可以使用iPad,但那时我还没有iPad)。在Homekit本身中,创建了规则:最后一个人离开房屋;第一个人回家。BARY中的虚拟按钮已附加到这些规则。
图。自动布防/撤防规则
首先,我什至保留统计数据,该数据显示了空调每小时的工作时间(分钟)。不幸的是,现在统计数据已经丢失,但是空调的运行时间却减少了原始数字的近1/3。
识别主要用电量
主要消费者分析方法
为了开始以优化成本,有必要明白的地方的叶子使用的大部分电力。
我认为这里可能有不同的方法:
- 我们使用特殊的模块-继电器。除了主要的开/关功能外,它们还跟踪与之相连的设备所消耗的能量。
- 我们使用使用电流互感器的专用仪表;
- 我们自己测量电力消耗(例如,使用电表),并以BARY表示平均值(此方法完全不准确,但有可能考虑指示性读数)。
对于除地暖以外的所有设备,我都安装了:Blitzwolf的高架插座,Shelly 1pm中的模块/ Aqara继电器模块/ Fibaro Double Switch 2插座。也许还有其他地方,我现在不记得了。
对于地板采暖,我根据他们的工作状况和平均消耗率(仅是第三种,不是很准确的方法)读取读数。
有一个特殊的字段中,用于指定的能量消耗(消费者功率)设备设置:
图 设置设备的功耗参数
总功耗是使用Wemos D1板和一个简单的草图从输入电表获得的:
该草图的源代码
#include <Wire.h>
#include <EEPROM.h>
#include <ESP8266HTTPClient.h>
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#define WIFI_SSID "****"
#define WIFI_PASS "****"
#define API_URL "http://192.168.1.33/api/post-data"
volatile unsigned int state = 0;
volatile unsigned int kWh = 0;
volatile unsigned int blinked = 0;
int impulse = 3200;
int eeAddress = 0;
unsigned int lastMillis = 0;
int counter = 0;
int blinkMin = 10;
int timeout = 15000;
int PIN = D8;
void setup()
{
state = impulse;
EEPROM.begin(512);
counter = EEPROM.read(eeAddress);
EEPROM.write(eeAddress, counter + 1);
EEPROM.commit();
pinMode(PIN, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PIN), blink, RISING);
Serial.begin(115200);
Serial.println(F(" "));
connectWiFi();
}
void connectWiFi()
{
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("WiFi: Waiting for connection");
}
Serial.println("WiFi: connected");
}
float roundEx(float value, int digits)
{
int newValue = value * pow(10, digits);
return (float) newValue / pow(10, digits);
}
void loop()
{
if (blinked >= blinkMin && millis() - lastMillis > timeout) {
float divider = (float) impulse * (millis() - lastMillis) / 1000 / 3600;
float power = blinked / divider;
float kWhFloat = kWh + (float) (impulse - state) / impulse;
Serial.print(F("sec="));
Serial.print(millis() / 1000);
Serial.print(F("; time="));
Serial.print((millis() - lastMillis) / 1000);
Serial.print(F("; blinkMin="));
Serial.print(blinked);
Serial.print(F("; state="));
Serial.print(state);
Serial.print(F("; kWh="));
Serial.print(kWhFloat, 3);
Serial.print(F("; power="));
Serial.print(power, 3);
Serial.println(F(" "));
blinked = 0;
lastMillis = millis();
if (WiFi.status() == WL_CONNECTED) {
StaticJsonBuffer<300> JSONbuffer;
JsonObject& JSONencoder = JSONbuffer.createObject();
JSONencoder["device"] = "main_counter";
JSONencoder["function"] = "counter";
JSONencoder["counter"] = counter;
JSONencoder["power"] = power;
JSONencoder["usage"] = kWhFloat;
char JSONmessageBuffer[300];
JSONencoder.prettyPrintTo(JSONmessageBuffer, sizeof(JSONmessageBuffer));
Serial.println(JSONmessageBuffer);
HTTPClient http;
http.begin(API_URL);
http.addHeader("Content-Type", "application/json");
int httpCode = http.POST(JSONmessageBuffer);
String payload = http.getString();
Serial.print(httpCode);
Serial.print(" ");
Serial.println(payload);
http.end();
} else {
connectWiFi();
}
}
}
void blink()
{
detachInterrupt(digitalPinToInterrupt(PIN));
attachInterrupt(digitalPinToInterrupt(PIN), lowInterrupt, FALLING);
state--;
if (state == 0 || state > impulse) {
kWh++;
state = impulse;
}
blinked++;
}
void lowInterrupt(){
detachInterrupt(digitalPinToInterrupt(PIN));
attachInterrupt(digitalPinToInterrupt(PIN), blink, RISING);
}
任何电表都具有脉冲输出,该输出由LED复制。当LED闪烁时,脉冲已通过。如果将某些设备(例如Arduino)连接到脉冲输出,则可以计算脉冲数。草图每15秒一次发出一次POST请求,其中包含BARY中的当前读数(但不多于它拾取足够数量的脉冲) ... 在中断时读取脉冲,并执行奇怪的附加/分离方案以抑制接触反弹。没有误报。
识别和分析其他用电设备
如果主仪表系统中使用,则电力消费者没有电表将在统计数据未知显示:
图。能源消耗的详细统计数据不
准确确定了明显的主要消费者并玩了些自制酒的草图之后,我意识到“未知”类别中的消费者太多。决定发射重型火炮:WB-MAP12H多通道计数器。这使得识别最“有趣”的线路并进一步区分能耗成为可能。
大多数费用分配给空调(夏季),地板采暖(冬季),通气器(冬季),计算机和多媒体。是的,水壶总是吵得很厉害,而且泡芙,却几乎是最普通的消费者。
可以在“事件”-“统计”
选项卡中查看BARY中按类别划分的用电量统计。有关能耗的更详细统计信息。
非常方便:当任何类别的消耗量超过平均值时,该类别将以红色突出显示。就像上图中的“空调”一样。通过这一行的充实性,可以判断出超出部分的价值占平均值的百分比。
您还可以看到特定类别的统计数据组成:
图。设备详细统计
如何避免数据重复
如果您使用一套设备来分析用电量-插座中的电表+每条线的总电表-读数将重复。 BARY允许您构建父子层次结构。它是通过以下方式实现的:对于设备本身,我们设置消耗类别和上级计数器(请参见“设置设备的能耗参数”图)。
如果一个计数器对整条线路进行计数,而第二个计数器对特定的出口进行计数,则需要更高级别的计数器。当查看统计信息时,将从高级仪表的读数中减去该出口的读数,并且不会重复数据。如果我们从上游电表和特定点获取读数,则部分成本(属于上游电表线路但不挂在专用计数器插座上的那些用电器的成本)在统计中将显示为未知。(请参见图“低能耗详细统计”)
嵌套本身不受任何限制。例如,我使用最多4个附件的方案。
现在我能做什么?
假设我们已经完成了未知任务,现在如何开始保存?当然,每个智能家居都会有自己的详细信息。但是这里有一些通用的工作准则。
离开家/回家的场景
我强烈建议您设置离开家的场景!它似乎很陈旧,但是效果很好。在这种情况下,我们将禁用所有可能的功能。因此,返回主脚本将使所有内容返回工作模式。
图。离开家时要关闭的设备列表
晚安场景
您是否想过待机设备要消耗多少?刚插入电源插座?我是的 开车进入,所以开车=)
例如,仅留在插座中的空调消耗1.4 W * h。事实证明,每个月1.4 W * h * 24小时* 30天= 1 KW * h,至少半年不工作。
当然,这个数字很小。但是,使用智能家居系统来优化成本不会使我们付出任何代价。屋子里可能有不止一个这样的“等待”设备,而不是五个。电视,游戏机,计算机和其他设备。设备越多,消耗越多。
图。在睡眠模式下断开连接的设备列表
温度范围
我们将地板采暖的温度范围设置为最小允许范围。例如,在浴室中,温度设置为26°C,这是一个完全可以接受的温度,并且在此模式下花费的能量很少。如果超过湿度(有人在淋浴),我们会提高温度(在淋浴期间,地板通常有时间预热2-3度)。
在其他房间,我们使用运动传感器自动关闭加热的地板(如果房间中没有人,为什么要加热地板?)。
如果使用单独的电加热器,则我们还将其操作绑定到温度传感器(与空调一样)。如果使用的是Tion型通气孔,那么在夏季,我们尝试在夏季让空气尽可能少地进入室内(炎热的天气,这是空调的额外工作),而在冬天,冷空气的通透性相同(通气孔本身会对其进行加热)。
让它发光!但仅在业务上
如果浴室,更衣室,储藏室和其他类似房间中的照明仍然手动打开和关闭,我们可以将其绑定到运动传感器。这样,您将永远不会忘记关灯!好吧,您无需在黑暗中的午夜冰箱旁边的厨房里寻找开关。此外,这并非难事-阿里拥有许多可在Wi-Fi / Zigbee / 433 MHz上运行的开关,包括那些没有零线的开关。
如果您仍然使用白炽灯,卤素灯和其他贪食性光源,那么请了解:
2009年11月23日,颁布了第261-FZ号《节能法》,该法规定,自2011年1月1日起,将禁止生产和销售容量为100瓦以上的白炽灯,并且将从1月1日起取消容量为75瓦以上的白炽灯。 2013。
现在是时候考虑改用更经济的了-LED和节能灯。
在相同的1200Lm光通量下,白炽灯消耗100 W,荧光灯/节能灯(25-30 W)和LED(约10 W)。另外,LED和节能灯泡的使用寿命比白炽灯更长。
我们最近有一个使用爱迪生式白炽灯泡的自动化案例。40盏每盏60瓦的灯。经过一个月的能耗统计,我们毫不奇怪地发现,这些灯的电费超过三分之一。立即将所有灯泡替换为类似的LED灯泡。他们很快得到了回报。
结语
在您的智能家居上进行5年的工作后,许多场景和自动化都得到了改善,并进行了重大更改。节能已成为一种令人愉快的习惯。现在很难想象,从早到晚,地板采暖都是油炸的,而且空调一直在嗡嗡作响。屋子里的天气很舒适,光线和光线都令人愉悦。BARY可以节省资源!
我希望您发现此材料有用。如果您有自己的优化电费示例,请在注释中分享自动化的方式和方式。并加入我们的VK和电报小组!