letscontrolit / espeasy Goto Github PK
View Code? Open in Web Editor NEWEasy MultiSensor device based on ESP8266/ESP32
Home Page: http://www.espeasy.com
License: Other
Easy MultiSensor device based on ESP8266/ESP32
Home Page: http://www.espeasy.com
License: Other
PCF8574 documentation states "The I/Os should be HIGH before being used as inputs." (https://www.nxp.com/documents/data_sheet/PCF8574.pdf section 7.3).
In function Plugin_019_Write to write an output pin first it reads all pins, then set the pin and write all pins.
If coincide an input pin reads LOW, then writes that pin as LOW and that pin leaves to be input pin. That pin always reads LOW until PCF8574 restart (or until explici writes HIGH to that pin; now I make that on rules after write an output pin).
I think the solution is to keep a mask in the module and set to HIGH all pins defined as inputs. Then in function Plugin_019_Write apply the mask when read all pins, so all input pins are set to HIGH.
this is a copy of my forum post ( https://www.letscontrolit.com/forum/viewtopic.php?p=14015#p14015 )
There's a bug in the off-the-shelf binary of R147. Chances are, it's still present in the code - although I haven't checked the current version:
Changing the admin password on the GUI and saving it on the "Config" tab (pressing "submit"), inadvertedly sets the WiFiKey (the WiFi password) to the admin password...
This results in locking out the module from the WiFi on the next reboot.
(tested with ESPEasy_R147_4096.bin)
It can easily be verified through the serial console with the command "Setting" right before and after the GUI change.
Hello,
the current configuration of the BME280 sensor is not meant to be used for a weather / climate measurement and therefore the chip is running to warm and shows a tempertature which is 1-1.5 degree to high. As described in the Bosch specification and also shown in the Adafruit advanced example https://github.com/adafruit/Adafruit_BME280_Library/blob/master/examples/advancedsettings/advancedsettings.ino the are at least three typical scenarios:
Weather / Climate Monitor:
bme.setSampling(Adafruit_BME280::MODE_FORCED,
Adafruit_BME280::SAMPLING_X1, // temperature
Adafruit_BME280::SAMPLING_X1, // pressure
Adafruit_BME280::SAMPLING_X1, // humidity
Adafruit_BME280::FILTER_OFF );
// suggested rate is 1/60Hz (1m)
delayTime = 60000; // in milliseconds
Indoor Navigation:
bme.setSampling(Adafruit_BME280::MODE_NORMAL,
Adafruit_BME280::SAMPLING_X2, // temperature
Adafruit_BME280::SAMPLING_X16, // pressure
Adafruit_BME280::SAMPLING_X1, // humidity
Adafruit_BME280::FILTER_X16,
Adafruit_BME280::STANDBY_MS_0_5 );
Gaming:
bme.setSampling(Adafruit_BME280::MODE_NORMAL,
Adafruit_BME280::SAMPLING_X1, // temperature
Adafruit_BME280::SAMPLING_X4, // pressure
Adafruit_BME280::SAMPLING_NONE, // humidity
Adafruit_BME280::FILTER_X16,
Adafruit_BME280::STANDBY_MS_0_5 );
Since the typical weather / climate Scenario works in the "forced mode" a special call is necessary - here the example from Adafruit:
// set to forced mode, i.e. "take next measurement"
write8(BME280_REGISTER_CONTROL, _measReg.get());
// wait until measurement has been completed, otherwise we would read
// the values from the last measurement
while (read8(BME280_REGISTER_STATUS) & 0x08)
delay(1);
I tested the different modes in a test environment and indeed with the weater / climate scenario the temperature was 1 degree lower compared to the other scenarios and thereofore closer to a SI7021 sensor.
So from my point of view it would be great to change the default to the weather / climate sensor scenario. Maybe it would be feasible to give the user the chance to select the appropriate scenario.
Kind regards.
Add support for IAQ Core Sensor (CO2 & Tvoc). Please set value of I2C ClockStretchLimit parameter to 1000 at menu Tools --> Advanced.
_P050_IAQCOREC.zip
Arduino: 1.8.2 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)"
Command:478: error: variable or field 'printDirectory' declared void
void printDirectory(File dir, int numTabs) {
^
Command:478: error: 'File' was not declared in this scope
Command:478: error: expected primary-expression before 'int'
void printDirectory(File dir, int numTabs) {
^
Networking:394: error: variable or field 'SSDP_schema' declared void
void SSDP_schema(WiFiClient client) {
^
Networking:394: error: 'WiFiClient' was not declared in this scope
_N001_Email:110: error: 'WiFiClient' was not declared in this scope
boolean NPlugin_001_MTA(WiFiClient client, String aStr, String aWaitForPattern)
^
_N001_Email:110: error: expected primary-expression before 'aStr'
boolean NPlugin_001_MTA(WiFiClient client, String aStr, String aWaitForPattern)
^
_N001_Email:110: error: expected primary-expression before 'aWaitForPattern'
boolean NPlugin_001_MTA(WiFiClient client, String aStr, String aWaitForPattern)
^
_N001_Email:110: error: expression list treated as compound expression in initializer [-fpermissive]
boolean NPlugin_001_MTA(WiFiClient client, String aStr, String aWaitForPattern)
^
C:\Users\Acer\Desktop\Neuer Ordner\ESPEasy\espeasy\Command.ino: In function 'void ExecuteCommand(byte, const char*)':
Command:49: error: 'RTC' was not declared in this scope
RTC.factoryResetCounter = 0;
^
Command:66: error: 'Settings' was not declared in this scope
if (Settings.NotificationEnabled[Par1 - 1] && Settings.Notification[Par1 - 1] != 0)
^
Command:69: error: aggregate 'EventStruct TempEvent' has incomplete type and cannot be defined
struct EventStruct TempEvent;
^
Command:71: error: 'NPlugin_id' was not declared in this scope
if (NPlugin_id[NotificationProtocolIndex] != 0)
^
Command:72: error: 'NPlugin_ptr' was not declared in this scope
NPlugin_ptr[NotificationProtocolIndex](NPLUGIN_NOTIFY, &TempEvent, message);
^
Command:72: error: 'NPLUGIN_NOTIFY' was not declared in this scope
NPlugin_ptr[NotificationProtocolIndex](NPLUGIN_NOTIFY, &TempEvent, message);
^
Command:80: error: 'RTC' was not declared in this scope
RTC.flashDayCounter = 0;
^
Command:97: error: 'File' was not declared in this scope
File root = SD.open("/");
^
Command:97: error: expected ';' before 'root'
File root = SD.open("/");
^
Command:98: error: 'root' was not declared in this scope
root.rewindDirectory();
^
Command:99: error: 'printDirectory' was not declared in this scope
printDirectory(root, 0);
^
Command:110: error: 'SD' was not declared in this scope
SD.remove((char*)fname.c_str());
^
Command:115: error: 'lowestRAM' was not declared in this scope
Serial.print(lowestRAM);
^
Command:117: error: 'lowestRAMid' was not declared in this scope
Serial.println(lowestRAMid);
^
Command:130: error: 'loopCounterLast' was not declared in this scope
Serial.print(100 - (100 * loopCounterLast / loopCounterMax));
^
Command:130: error: 'loopCounterMax' was not declared in this scope
Serial.print(100 - (100 * loopCounterLast / loopCounterMax));
^
Command:148: error: 'SecuritySettings' was not declared in this scope
Serial.println(sizeof(SecuritySettings));
^
Command:150: error: 'Settings' was not declared in this scope
Serial.println(sizeof(Settings));
^
Command:152: error: 'ExtraTaskSettings' was not declared in this scope
Serial.println(sizeof(ExtraTaskSettings));
^
Command:154: error: 'Device' was not declared in this scope
Serial.println(sizeof(Device));
^
Command:166: error: 'Wire' was not declared in this scope
Wire.beginTransmission(Par1); // address
^
Command:175: error: 'Wire' was not declared in this scope
Wire.beginTransmission(Par1); // address
^
Command:191: error: 'Settings' was not declared in this scope
Settings.Build = Par1;
^
Command:198: error: 'Settings' was not declared in this scope
Settings.deepSleep = 0;
^
Command:208: error: 'Wire' was not declared in this scope
Wire.beginTransmission(address);
^
Command:241: error: 'UserVar' was not declared in this scope
UserVar[(VARS_PER_TASK * (Par1 - 1)) + Par2 - 1] = result;
^
Command:241: error: 'VARS_PER_TASK' was not declared in this scope
UserVar[(VARS_PER_TASK * (Par1 - 1)) + Par2 - 1] = result;
^
Command:253: error: 'RULES_TIMER_MAX' was not declared in this scope
if (Par1>=0 && Par1<RULES_TIMER_MAX)
^
Command:258: error: 'RulesTimer' was not declared in this scope
RulesTimer[Par1 - 1] = millis() + (1000 * Par2);
^
Command:261: error: 'RulesTimer' was not declared in this scope
RulesTimer[Par1 - 1] = 0L;
^
Command:275: error: 'Settings' was not declared in this scope
Settings.UseRules = true;
^
Command:277: error: 'Settings' was not declared in this scope
Settings.UseRules = false;
^
Command:286: error: 'Settings' was not declared in this scope
if (Settings.UseRules)
^
Command:313: error: 'MQTTclient' was not declared in this scope
MQTTclient.publish(topic.c_str(), value.c_str(), Settings.MQTTRetainFlag);
^
Command:313: error: 'Settings' was not declared in this scope
MQTTclient.publish(topic.c_str(), value.c_str(), Settings.MQTTRetainFlag);
^
Command:327: error: 'IPAddress' was not declared in this scope
IPAddress UDP_IP(ipaddress[0], ipaddress[1], ipaddress[2], ipaddress[3]);
^
Command:327: error: expected ';' before 'UDP_IP'
IPAddress UDP_IP(ipaddress[0], ipaddress[1], ipaddress[2], ipaddress[3]);
^
Command:328: error: 'portUDP' was not declared in this scope
portUDP.beginPacket(UDP_IP, port.toInt());
^
Command:328: error: 'UDP_IP' was not declared in this scope
portUDP.beginPacket(UDP_IP, port.toInt());
^
Command:341: error: 'WiFiClient' was not declared in this scope
WiFiClient client;
^
Command:341: error: expected ';' before 'client'
WiFiClient client;
^
Command:342: error: 'client' was not declared in this scope
if (client.connect(host.c_str(), port.toInt()))
^
Command:355: error: 'LOG_LEVEL_DEBUG' was not declared in this scope
addLog(LOG_LEVEL_DEBUG, line);
^
Command:370: error: 'SecuritySettings' was not declared in this scope
strcpy(SecuritySettings.WifiSSID, Line + 9);
^
Command:376: error: 'SecuritySettings' was not declared in this scope
strcpy(SecuritySettings.WifiKey, Line + 8);
^
Command:414: error: 'WiFi' was not declared in this scope
WiFi.persistent(true); // use SDK storage of SSID/WPA parameters
^
Command:440: error: 'Settings' was not declared in this scope
Settings.SerialLogLevel = Par1;
^
Command:447: error: 'Settings' was not declared in this scope
if (!str2ip(TmpStr1, Settings.IP))
^
Command:458: error: 'IPAddress' was not declared in this scope
IPAddress ip = WiFi.localIP();
^
Command:458: error: expected ';' before 'ip'
IPAddress ip = WiFi.localIP();
^
Command:459: error: 'ip' was not declared in this scope
sprintf_P(str, PSTR("%u.%u.%u.%u"), ip[0], ip[1], ip[2], ip[3]);
^
Command:461: error: 'BUILD' was not declared in this scope
Serial.print(F(" Build : ")); Serial.println((int)BUILD);
^
Command:462: error: 'Settings' was not declared in this scope
Serial.print(F(" Unit : ")); Serial.println((int)Settings.Unit);
^
Command:463: error: 'SecuritySettings' was not declared in this scope
Serial.print(F(" WifiSSID : ")); Serial.println(SecuritySettings.WifiSSID);
^
C:\Users\Acer\Desktop\Neuer Ordner\ESPEasy\espeasy\Command.ino: At global scope:
Command:478: error: variable or field 'printDirectory' declared void
void printDirectory(File dir, int numTabs) {
^
Command:478: error: 'File' was not declared in this scope
Command:478: error: expected primary-expression before 'int'
void printDirectory(File dir, int numTabs) {
^
In file included from c:\users\acer\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\typeinfo:34:0,
from c:\users\acer\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\functional:53,
from C:\Users\Acer\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiGeneric.h:27,
from C:\Users\Acer\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:28,
from C:\Users\Acer\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from C:\Users\Acer\Desktop\Neuer Ordner\ESPEasy\espeasy\ESPEasy.ino:268:
c:\users\acer\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\exception:35:37: error: expected declaration before end of line
#pragma GCC visibility push(default)
^
Mehrere Bibliotheken wurden für "SD.h" gefunden
Benutzt: C:\Users\Acer\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\SD
Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\SD
Mehrere Bibliotheken wurden für "Servo.h" gefunden
Benutzt: C:\Users\Acer\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\Servo
Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\Servo
exit status 1
variable or field 'printDirectory' declared void
Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.
Run two (might happen with one) EspEasy instances on v147rc8 connected to a MQTT server using OpenHab MQTT configuration. Shutdown/unplug MQTT server. The EspEasy instances running v147rc8 will eventually become unresponsive.
Should continue to operate without MQTT server
EspEasy v147rc8 becomes unresponsive when MQTT server is unavailable while ESPEasy v120 continues to run.
v1.4.11 Mosquitto MQTT server
EspEasy v147rc8 on WeMos D1 mini - using two GPIO switches & a DS18b20 temperature sensor
EspEasy v120 on WeMos D1 mini - using a DHT22 tyemp/hum sensor and a SSD1306 OLED display
EspEasy v147rc8 on Chinese "white board" SDK hardware - using a DHT22 temp sensor, an ADC, and 6 GPIO outputs
Hardware:
Mosquitto MQTT server on Raspberry Pi 3
WeMos D1 Mini
Chinese ESP8266 SDK hardware (the "white board")
Software or git version:
147rc8
Hello
when i build normal are OK but not test and dev it's normal ?
Environment normal_1024 [SUCCESS]
Environment normal_4096 [SUCCESS]
Environment test_1024 [ERROR] firmware.elf section .text' will not fit in region
iram1_0_seg'
Environment test_4096 [ERROR] firmware.elf section .text' will not fit in region
iram1_0_seg'
Environment dev_1024 [ERROR] firmware.elf section .text' will not fit in region
iram1_0_seg'
Environment dev_4096 [ERROR] firmware.elf section .text' will not fit in region
iram1_0_seg'
other question why include :
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
it's need only by plugin LiquidCrystal_I2C.h ex P012
I have dev a plugin for quirky nimbus but i need brzo_I2C (more speed and i need 400khz i2c) librarie and i need to disable some lib and plugin (ex LiquidCrystal_I2C ) without this my build generate also firmware.elf section .text' will not fit in region
iram1_0_seg' in normal environment.
why not use brzo_I2C in espeasy ? it s more speed and seem less consumes ESP8266 ressource
ex :
http://www.electronics-lab.com/esp8266-ssd1306-oled-library-release/
ex :
with and without brzo i2c implementation from a other project :
version with brzo implementation uses flash: 258 961 and ram: 34 248
version with wire.h implementation uses flash: 259 065 and ram: 34 392
Thanck you by advance
( sorry perhaps you prefer 3 issues ? )
Seems be a Mega code under ESPEasy....
What are i doing wrong?
Regards
Using ESP Easy with the NDIR MH-Z19 plugin
Domoticz should be updated, but it only updates the sensor with a zero-value.
The Domoticz API requires the following syntax for a Air Quality sensor "/json.htm?type=command¶m=udevice&idx=IDX&nvalue=PPM".
Instead of a nvalue, a svalue is used by ESP Easy. That's why the data isn't processed in Domoticz.
Password protection is not checked in some important handlers.
Also the OTA updater has no authentication at all currently.
Is it possible to use the webinterface via SSL/https or is it a planned feature?
Hi all,
I saw that the current Controller.ino has some hardcoded limits that although ESPEasy Mega supports up to 3 controllers, MQTT capable controllers are only supported if the are the first controller.
Now, there is a easy fix but should we bother? It just requires additional computational cycles and adds flash space to implement and we are still limited to only one MQTT capable controller. A better way would be to just mention the MQTT limitation in the wiki.
Why are our thoughts about this? Attached the needed modifications in controller.ino.
Controller.ino.zip
Please add CSS Style Class for:
1. Node list IP addresses, like class="ipaddr" (image 1)
2. Enabled sate in the Controllers, Devices and Notifications Tab, like class="enbl"
(btw...the Green and Red color for Yes and No it's not mandatory (make it to be default color), those are hardcoded in the INO file), (image 2, 3, 4).
Because of these two missing class, I can't fully customize my current ESPEasyMega style!
And also please FIX the orientation for the IDX/Variable in the Devices Tab to be CENTER (image 3) and for the Enabled state values to be centered too (image 2, 3, 4).
Thank you! ;)
Some in-dev screenshots....
The "before_deploy" script assumes a Unix-style environment, but as far as I can see (I'm a newbie with platform.io) the rest of the environment is system-agnostic.
By moving all scripts to Python the scripts could run independent of the underlying system. This would add Python to the prequisites for building (but Python is available for nearly every platform...) and can be installed without problems.
Hi, I'm having troubles with Build07 as Thingspeak does not receive any values anymore...in Build06 all was fine.
SaveToFile()should return an error string which in turn can be shown in the webgui and others.
Hi there,
I don't know guys, but ESPEasy was not been developed for years for led array controlling, thus I think the whole NeoPixel and the Motor Control is not suitable for it (maybe better to remove it, maybe only 1-2% of ESPEasy users use it or maybe even less), but, there are more simple and usefully, cheap sensors out there (what I already have and I can't use them) like (LM75A, SHT30, HTU21D, DHT21, AM2320, TEMT6000, SI1145 - to be officially included), what do you think of it?!
Just my humble opinion! ;)
Especially with the sometimes unstable sonoffs it can take a long time until the configured boot states for GPIOs get applied.
Found the reason in ESPEasy.ino (line 564ff): hardwareInit() is run after the wifi stuff is done.
I use several sonoffs buried in lamps, they are powered through the original (wall)switches. This way the lamps can be used in the normal way. Just the delay between flipping the switch and the lamp coming on is irritating (especially if the wifi connection fails three times until AP mode is firered) and I think it would greatly improve the WifeAcceptanceFactor ;) to do the hardware init first.
Is there technically anything speaking against moving hardwareInit() a few lines up?
download sources via an official github link
get a complete archive with all libraries in it.
library directories are empty
Hi,
I've now tried to build the 8285 version. Both this and the 1024 version do not fit into 1MB. What could I strip down to get a version that I can use for this memory size?
Cheers, Joachim
stuff like #ifdef PLUGIN_BUILD_DEV
Hello!
I want to know best practice how you move a plugin from playground to main ESPEasy branch.
In my case it is _P111_SenseAir.ino that I feel its ready to move to ESPEasy branch, it is tested for a long time and got a big update last week.
Best Regards
Daniel
I am using a couple of EspEasy sensors to measure temperature in my flat.
I noticed that when the ESP module is unable to connect to the router, means no connection in the connect loop is possible, then the module continues to connect until the battery is empty, means within a couple of hours.
It would be great to add a function that tells ESP to go into normal sleep mode (normal delay) after a certain number of attempts which are already included inside the code. In case we measure temperature every 10 minutes, the ESP module would retry to connect x times every 10 minutes and not constantly. This would also mean the battery life would be the same if it connects or not.
with nice screenshots and stuff
Hi,
as one of the collaborators on the IRremoteESP8266 library, we've had a number of odd reports of our library not working coming from some ESPEasy users. I think I've trace the root of the problem to your project referencing an unmaintained fork instead of the canonical version.
I'll create a pull request to fix what I can immediately see might be the issue, however, can you please check there is no other references your project has to the unmaintained version?
Thanks in advance.
1. Missing files from the zipped builds (empty folders), why?:
- Adafruit_NeoPixel
- ArduinoJson
- IRremoteESP8266
Explained by @krikk, but it's not so handy, maybe make only one combined distribution archive file.
2. Build version shown as 20000, why?
- instead maybe use 207 (regarding v2.0.0-dev07), no?
3. Node list not compatible with previous versions of builds, e.g. r146, why?
- r146 node list shows the Mega builds, but the Mega builds can't see or show the r146 node list
Explained by @bicnet, It's working, but, the Node list updates after a few hours in ESP Easy Mega build?!
4. There is a bug in the web interface under Devices, when you add some devices, the IDX/Variable value is not centered in the cell (it stays in the left up corner of the cell).
Hello,
Since I've issues with WiFi drops, I'm using the latest arduino core from http://arduino.esp8266.com/nightly/package_esp8266com_index.json
I can compile - I do not experience Wifi drops anymore, but I've an issue with Config/Advanced/Publish Template when trying to enter device=%sysname%&taskid=%id%&cmd=%valname%&value=%value%
only the part before the &
is kept.
It sounds that some string parsing does not work with the latest ESP core and espressif SDK
I also tried to place this string in my .ino file and applied a reset command as described, but the same issue occurs
Any clue on how to fix this?
diving91
As far as i see it the "HTTP Generic" Controller can be replaced with the "HTTP Generic Advanced" cause the advanced one does nearly everything the "basic" one does...
only feature of basic which is missing from the advanced is http basic authentication, but i will try to merge this to the advanced controller... ...will try to get a pull request ready on the weekend :)
(and test if it works, there might be some problems)
As the title asks ;)
"Are those plugins from ESPEasyPluginPlayground still fully compatible with recent ESPEasy v2.0 builds?"
If not, can you include this few plugins for the next release?
Thank you!
There are some long standing hard to reproduce stability issues. I've reviewed all the core-framework code and found a few instances where out-of-bounds was missing. (most places just assume correct input data)
Trying to build this with platformio (as opposed to arduino ide) before i send a PR with some code updates:
/home/infernix/.platformio/packages/toolchain-xtensa/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld: .pioenvs/test_4096/firmware.elf section `.text' will not fit in region `iram1_0_seg'
Is this a bug or do I need to exclude some things from the build somehow?
As the title says...
Can it be done? It's annoying to chase my Devices on 3 separated page per 4 Devices!
Thank you!
I have multiple Devices, and complex rules, just too many config changes for 2.0.0.Dev7 to handle in the daily flash rate limit. I waited a day, tried to config the last outstanding device, 'daily flash rate exceeded' still active. See discussion -->
https://www.letscontrolit.com/forum/viewtopic.php?f=6&t=2961
Save to flash, for more than the usual Device configs.
Not saving Device config of the Value Names, and the Device, to flash.
5 relay using Switch Inputs, 2 pulse counters, one DHT22, 2 System Info devices,
Hardware:
ESP12F
Software or git version:
GIT version: v2.0.0-dev7
Enhancement!
Tell us what should happen?
Be able to select the IP address to be sent to the MQTT server, this would help to identify the module over the IP address.
Tell us what happens instead?
Hardware: ESP8266 module
Software or git version: 2.0.0.0 rev7
Hi,
when you configure a System Info Device with Load, it instead shows uptime.
regards Matze
Cheap Eastron SDM120, but good quality.
Can control 13 parameters.
Template library for reading SDM120 / SDM220 / SDM630 Modbus Energy meters.
1$ rs232<->rs485 is needed.
I think it's a procedure issue putting 3x <BR>
after the IDX/Variable value and it's beyond my programming knowledge, but I can lead you to it to be able to fix it.
The Value need to be left-centered in the cell, no?!
In the file WebServer.ino from line 1206 to 1212, if I'm not wrong.
for (byte controllerNr = 0; controllerNr < CONTROLLER_MAX; controllerNr++) {
if (Settings.TaskDeviceID[controllerNr][x] != 0)
reply += Settings.TaskDeviceID[controllerNr][x];
if (x < CONTROLLER_MAX)
reply += F("<BR>");
}
Thank you!
Hi
I'm having a problems to compile the new version of EspEasy....
What am i doing wrong?
Here the error log
Please add the 433 MHz RC-Switch library and support for 433 MHz modules. Cheers!
This example is use to trigger a switch within Domoticz
SendToHTTP 192.168.0.243,8080,/json.htm?type=command¶mm=switchlight&idx=10&switchcmd=On
When the submit button is pressed in the web gui the line changes to this instead.
SendToHTTP 192.168.0.243,8080,/json.htm?type=command¶mm=switchlight&idx=10&switchcmd=On
Release v2.0.0-dev7
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.