@YuryPol as far as I know, all licenses require some form of documentation. In all cases I know of, this is documented with the license or on the licenses official site.
@magpern said in MyQTherm - replace IQTherm heating thermostat:
I actually am thinking somewhat in the line of discontinuing mysensors network. It is to much, hacks and tricks, and I forget everything in between sessions.
I gave up more than once, also over period of years. Recently I came back again and decided to focus on the heart of the issue, getting my radios working and once you get over that, it starts to get fun again.
I can respect if you already moved on to something else. I even cheated on MySensors and installed some 433 mhz devices too , just to get something working. You have to keep your interest in HA alive in the meantime. But the reward is great when you get MySensors working.
There are "easier" solutions like Tasmota, 433mhz, etc. but not as customizable as MySensors. MySensors is for when you outgrow those other solutions and need something more custom.
@ZenBlizzard in case you are measuring the output with a multimeter, you will get an averaged level, since AC current waveform should be sinusoidal and overlapped with the Vcc/2->2.56V in your case.
To measure the current you need a decently high sampling and some math.
#define SENSITIVITY 66 // mV/A
const float readings = 5;
const float alpha = 2.0 / (2 * readings + 1);
for (ifor = 0; ifor < 250; ifor++)
{
// Voltage
voltageSampleRead = analogRead(V) * vccRead / 1023 - vccRead / 2; /* read the sample value including offset value*/
voltageSampleSum = voltageSampleSum + sq(voltageSampleRead); /* accumulate total analog values for each sample readings*/
voltageSampleOffsetSum = voltageSampleOffsetSum + voltageSampleRead;
// Current
currentSampleRead = analogRead(I) * vccRead / 1023 - vccRead / 2; /* read the sample value including offset value*/
currentSampleSum = currentSampleSum + currentSampleRead * currentSampleRead; /* accumulate total analog values for each sample readings*/
currentSampleOffsetSum = currentSampleOffsetSum + currentSampleRead;
wait(1);
}
voltageMean = voltageSampleSum / ifor; /* calculate average value of all sample readings taken*/
voltageOffset = voltageSampleOffsetSum / ifor;
reading = (sqrt(voltageMean) - voltageOffset) * 230.0 / 1.0; // read voltage / reported voltage.
voltage = round_to_dp(alpha * reading + (1 - alpha) * voltage,1);
Serial.println(voltage);
if (voltage < 25) voltage = 0;
currentMean = currentSampleSum / ifor; /* calculate average value of all sample readings taken*/
currentOffset = currentSampleOffsetSum / ifor;
reading = (sqrt(currentMean) - currentOffset) / SENSITIVITY * 1000 - currentZeroOffset; // subtract no load current.
if (reading < 0) reading = 0;
current = round_to_dp( alpha * reading + (1 - alpha) * current,2);