Homey Community Forum

Homeyduino Energy meting gaat mis

Sinds enkele weken werkt ‘energie’ op mijn homey, wat een top functie!
Echter… Ik loop tegen een probleempje aan, ik heb ooit met een Arduino icm de Homeyduino app op de Homey zelf een energiemeting gemaakt, deze meet het actuele energieverbruik van mijn hele woning. Nu komt het probleem, deze energiemeting word nu in de Homey Energie opgeteld bij alle verbruik (terwijl dit al het totaalverbruik in mijn hele woning is.

Dit probleem heb ik voorgelegd bij de helpdesk waarop ik deze reactie krijg, echter ik begrijp niet hoe ik dit in de Arduino sketch kan aanpassen, kan iemand mij hiermee uit de brand helpen??

Reactioe Athom:

Blockquote
Dat is een goede vraag! Als je het niet erg vindt om een beetje in de app-code van Homeyduino te duiken dan kun je het daar aanpassen door in de app.json aan te geven dat de gemeten energie ‘cumulative’ moet zijn. Check hiervoor even de documentatie op https://developer.athom.com/docs/apps/tutorial-Drivers-Energy.html onder ‘Cumulative Devices’.
Helaas is het op dit moment nog niet mogelijk dit op een andere manier aan te geven. Dit om te voorkomen dat mensen die er wat minder in thuis zijn hun hele overzicht overhoop halen.

Hieronder mijn Arduino sketch die draait via de Homeyduino applicatie:

Blockquote
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
#include “EmonLib.h”
EnergyMonitor emon1;
unsigned long VorigeMillis1 = 0;
const long interval1 = 5000;
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin(“AFGESCHERMD”, “AFGESCHERMD”);
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
if (timeout<1) break;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println(“Verbonden met WiFi netwerk!”);
Serial.println(WiFi.localIP());
Serial.println(" ");
} } }
void setup()
{
Serial.begin(9600);
Homey.begin(“Energie”);
Homey.setClass(“sensor”);
Homey.addCapability(“measure_power”);
Homey.addCapability(“measure_current”);
emon1.current(A0, 140); // (A0 = input pin, 140 = calibratie)
}
void Dataloop(){
double Irms = emon1.calcIrms(1480); // Bereken Irms
float Currentcur = Irms;
float Current = Currentcur;
int Watts = Current*230;
wifi();
Homey.loop();
Homey.setCapabilityValue(“measure_power”,(int) Watts);
Homey.setCapabilityValue(“measure_current”,(float) Current);
// Serial.print("Wattage “); Serial.print((float) Watts);
// Serial.println(” ");
// Serial.print("Stroom “); Serial.print((float) Current);
// Serial.println(” ");
}
void loop(){
wifi();
Homey.loop();
unsigned long HuidigeMillis1 = millis();
if (HuidigeMillis1 - VorigeMillis1 >= interval1) {
VorigeMillis1 = HuidigeMillis1;
Dataloop();
}
}

Hoop zo dat iemand mij hiermee kan verder helpen!