sorry for my late anwser @Richard_B but I checked what changed in my network but did not found what could be the reason for it… maybe an update of the unifi udm pro device…
do we have a chance to add the sunny home manager 2.0 device with an ip address instead?
@Richard_B the “Sunny Home Manager 2” (Energie Meter) has two interesting values for my future project. GRID POWER and GRID FEED-IN. I would like to get notificated whenever one of those two changes - doesn’t matter which value it is. However the problem is, there seems to be only one of those two available in a flow as “when” clause. I see those two triggers:
Der Verbrauch hat sich geändert → seems to be related to GRID POWER, however if my PV feeds in, the variable is zero, so no trigger here anymore
Der Gesamtverbrauch hat sich geändert. → ??? don’t know to what variable this belongs to?
So I don’t have a trigger for “GRID FEED-IN”. Would it be possible that you add a trigger for "GRID FEED-IN as well? Or can you explaing what “Der Gesamtverbrauch hat sich geändert” is? Hope you can bring some light into the shed
where you able to install this and connect with homey ? I have sunny boy 3000TL and 3600TL but i can’t login to the inverter to change things, it keeps on lock , however i logged in as " installateur"
2.4.7 is a test version. Did you try and restart the app after the upgrade?
For me on HP23 it works as normal for all device types. I see there are only 9 people running the test version, so hard to get lots of feedback. There are at least 0 crash reports.
It updated at 12:00 yesterday and didn’t report anything so at 17:00 i restarted the Homey (23) but it didn’t start to update. Now i restarted the app manually without restarting the Homey and it went live. So now it’s up and running.
Hi Richard, wat a good app this is!
I’m using it for over a year now and never had problems, as a matter of fact this app works better than the SMA app for reading out the data
At home I have a flexible gas and electricity tarif. Often during the weekend the supply of electricity is too much, resulting in negative electricity prices.
I read that the inverters from SMA can be limited in the current they put on the grid.
This is also the only allowed writing action to the inverters from SMA.
Would it be possible to add this option to the app?
If needed I can research which data point it is.
At the moment my work around is switching the inverter off by hand.
We would need to find which modbus register address this is, and also test if it is possible to write via modbus. For the reading via modbus we do today there is no authentication, don’t know if this changes if we want to write.
EDIT
Ended up testing register 40915 and it worked on my STP 25000TL-30
Active power limit is now displayed as a slider. Max value in slider should be max power of your inverter. Should come in handy across Europe when electricity prices are negative for real.
Using the action Limit the active power output will be reflected in the slider
Improved support for the new Tripower Smart Energy inverters. Shows the battery state of charge, and present battery power (negative value means discharge).
Sorry Richard that you had to do a monologue.
I was clearly not paying enough attention.
I was reading the specifications from SMA and had also the impression that we needed a password. Besides to know, which address to write.
But you found it already and you even implemented it already!
I see the slider in my app and also I can use it in a flow.
I tested it and it works als on my STP 8.0-3AV-40.
When I set the value to 0 the inverter limits it output to approximately 40 Watt. When I log in to the inverter it states that the value has changed and is set to 0. And setting it back also works.
The inverter logs each write action.
I think it is because, that the datapoint should be protected against cyclical writing.
At least that is the information I found searching for it.
So, we have to be careful not to write this address to often. As far as I know Flash can be written at least 100.000 times. When used, no more then 18 writing actions per day, then we will stay under the 100000 in 15 years.
Good observation!
I wonder if the inverter has a similar setting that is not persisted to flash? I guess most use cases wouldn’t require the setting to be persisted between reboots.
For the Easee chargers (I also develop that app), they have a set of actions named dynamic which means only stored in memory and not persisted to flash in the charger.
I have been searching for the data points, I only found Modbus address 40016 or 40023. But these are password protected. A bit strange. We can change all the persistent values without any problem, but for change dynamic values you need to identify yourself.
It have the feeling that SMA wants to sell the sunny home manager and has for that reason protected writing these variables.
I will search further.
On holiday, right know. So other priorities…
And by the way I saved the first cents, by automatically lowering the output of the inverter.
Made no difference. Is there any logs I can review? I’m a fairly technical/dev type and before I jump in, as I’m new to Homey Pro 23, any pointers you can give me on where to first look?
Quick look at the code, and wondering about this section where devices is declared outside of the two callbacks… would it still be in scope? Would expain why the error is Cannot read properties of null (reading ‘length’)
async onPair(session) {
let devices = []; //<<< will this be out of scope / null when used in sleep below?
session.setHandler('list_devices', async (data) => {
let emSession = new EnergyMeter({
device: this
});
emSession.on('readings', readings => {
if (!devices.find((em) => em.data.id === readings.serialNo)) {
this.log(`Adding to devices: ${readings.serialNo}`);
devices.push({
name: `Energy Meter (${readings.serialNo})`,
data: {
id: readings.serialNo
}
});
}
});
//Wait for some time and see what we find
return this.#sleep(2500).then(() => {
try {
emSession.disconnect();
} catch (err) {
this.log(err);
}
if (devices.length == 0) {
throw new Error('No SMA Energy Meters found!')
} else {
return devices;
}
}).catch(reason => {
this.log('Timeout error', reason);
});
});
}
#sleep(time) {
return new Promise((resolve) => this.homey.setTimeout(resolve, time));
}