diesen HLW8012 gibt es wohl auch nicht als fertiges Bauteil, oder ? Habe jetzt nichts gefunden
Beiträge von tourer4778
-
-
-
Hallo, es gibt ja Sonoff, Shelly Baugruppen mit integrierter Energiemessung.
Was wird dort für Hardware verbaut?
Ich frage, weil ich ich verschiedenen Anwendungen auch gerne mit einem ESP8266 zb. auch die Energie (230VAC) messen möchte und nicht zusätzlich einen weiteren ESP verbauen möchte.
-
Schau mal nach, ob du in der Konfiguration (IoBroker oder EPever) irgendetwas findest, was auf QoS hindeutet. Oder im IOBroker-Forum nachfragen.
Guten Morgen, danke für deine Hilfe.
Das ist das einzigste, was man einstellen kann am ESP mit der Firmware.
-
Hallo zusammen,
mein Epever Laderegler habe ich an einen Wemos angeschlossen und den ESP mit dieser Firmware geflasht.
Die Verbindung zum IoBroker (MQTT Adapter) und dem ESP funktioniert.
Leider bekomme ich immer Warnungen ...
Kann mir jemand sagen, woran das liegt und ob man das abstellen kann ?
Wlan Verbindung ist gut.
-
ja klar ist es ja auch. die Protokolle laufen dann über seriellen MODBUS. du brauchst einen Adapter der automatisch Receive und Transmit umschaltet,
und du must dann für deinen Controller die MODBUS Registercodes anpassen
Ahh, okay, dann hört es auch schon auf .
Es hätte ja sein können, das es einfacher sein würde. Bin da nicht so tief in der Materie ...
Trotzdem Danke
-
Okay, danke für die Info.
Dieser Adapter den ich habe, macht aus dem RS485 Singal ein TTL Signal. Dachte das wäre dann Seriell
-
Hast Du dir das mal durchgelesen?
Natürlich nicht .
Baudrate bzw sBaudrate, Serialconfig, Serialdelimeter über die Konsole wie es der Laderegler eben braucht
Okay, Bautrate könnten die 115200 sein.
Serialconfig, Serialdelimeter
C
Alles anzeigen*/ #include "config.h" #include <ESP8266WiFi.h> #include <ESP8266mDNS.h> #include <WiFiUdp.h> #include <ArduinoOTA.h> #include <SimpleTimer.h> #include <ModbusMaster.h> #include <LeifHomieLib.h> #define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0])) int timerTask2, timerTask3; float bvoltage, bcurrent, bpower, btemp, bremaining, lvoltage, lcurrent, lpower, pvvoltage, pvcurrent, pvpower; uint8_t result; WiFiClient espClient; HomieDevice homie; HomieProperty * pPropbvoltage=NULL; HomieProperty * pPropbcurrent=NULL; HomieProperty * pPropbpower=NULL; HomieProperty * pPropbremaining=NULL; HomieProperty * pProplvoltage=NULL; HomieProperty * pProplcurrent=NULL; HomieProperty * pProplpower=NULL; HomieProperty * pProppvvoltage=NULL; HomieProperty * pProppvcurrent=NULL; HomieProperty * pProppvpower=NULL; // this is to check if we can write since rs485 is half duplex bool rs485DataReceived = true; ModbusMaster node; SimpleTimer timer; char buf[10]; String value; // tracer requires no handshaking void preTransmission() {} void postTransmission() {} // a list of the regisities to query in order typedef void (*RegistryList[])(); RegistryList Registries = { AddressRegistry_3100, AddressRegistry_311A, }; // keep log of where we are uint8_t currentRegistryNumber = 0; // function to switch to next registry void nextRegistryNumber() { currentRegistryNumber = (currentRegistryNumber + 1) % ARRAY_SIZE( Registries); } void setup() { Serial.begin(115200); Serial.println("Booting"); WiFi.mode(WIFI_STA); WiFi.hostname(OTA_HOSTNAME); WiFi.begin(ssid, password); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connection Failed! Rebooting..."); delay(5000); ESP.restart(); } // Modbus slave ID 1 node.begin(EPSOLAR_DEVICE_ID, Serial); node.preTransmission(preTransmission); node.postTransmission(postTransmission); // Port defaults to 8266 // ArduinoOTA.setPort(8266); // Hostname defaults to esp8266-[ChipID] ArduinoOTA.setHostname(OTA_HOSTNAME); // No authentication by default //ArduinoOTA.setPassword((const char *)"123"); ArduinoOTA.onStart([]() { Serial.println("Start"); }); ArduinoOTA.onEnd([]() { Serial.println("\nEnd"); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); HomieLibRegisterDebugPrintCallback([](const char * szText){ Serial.printf("%s",szText); }); { HomieNode * pNode=homie.NewNode(); pNode->strID="properties"; pNode->strFriendlyName="Properties"; HomieProperty * pProp; pPropbvoltage=pProp=pNode->NewProperty(); pProp->strFriendlyName="Battery Voltage"; pProp->strID="bvoltage"; pProp->strFormat="V"; pProp->SetRetained(true); pProp->datatype=homieFloat; pPropbcurrent=pProp=pNode->NewProperty(); pProp->strFriendlyName="Battery Charging Current"; pProp->strID="bcurrent"; pProp->strFormat="A"; pProp->SetRetained(true); pProp->datatype=homieFloat; pPropbpower=pProp=pNode->NewProperty(); pProp->strFriendlyName="Battery Charging Power"; pProp->strID="bpower"; pProp->strFormat="W"; pProp->SetRetained(true); pProp->datatype=homieFloat; pPropbremaining=pProp=pNode->NewProperty(); pProp->strFriendlyName="Battery Remaining"; pProp->strID="bremaining"; pProp->strFormat="%"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProppvvoltage=pProp=pNode->NewProperty(); pProp->strFriendlyName="PV Voltage"; pProp->strID="pvvoltage"; pProp->strFormat="V"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProppvcurrent=pProp=pNode->NewProperty(); pProp->strFriendlyName="PV Current"; pProp->strID="pvcurrent"; pProp->strFormat="A"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProppvpower=pProp=pNode->NewProperty(); pProp->strFriendlyName="PV Power"; pProp->strID="pvpower"; pProp->strFormat="W"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProplvoltage=pProp=pNode->NewProperty(); pProp->strFriendlyName="Load Voltage"; pProp->strID="lvoltage"; pProp->strFormat="V"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProplcurrent=pProp=pNode->NewProperty(); pProp->strFriendlyName="Load Current"; pProp->strID="lcurrent"; pProp->strFormat="A"; pProp->SetRetained(true); pProp->datatype=homieFloat; pProplpower=pProp=pNode->NewProperty(); pProp->strFriendlyName="Load Power"; pProp->strID="lpower"; pProp->strFormat="W"; pProp->SetRetained(true); pProp->datatype=homieFloat; } homie.strFriendlyName="EPSolar 1"; homie.strID="EPsolar1"; homie.strID.toLowerCase(); homie.strMqttServerIP=MQTT_IP; homie.strMqttUserName=MQTT_USER; homie.strMqttPassword=MQTT_PASS; homie.Init(); timerTask2 = timer.setInterval(10000, doRegistryNumber); timerTask3 = timer.setInterval(10000, nextRegistryNumber); } void doRegistryNumber() { Registries[currentRegistryNumber](); } void AddressRegistry_3100() { result = node.readInputRegisters(0x3100, 16); if (result == node.ku8MBSuccess) { bvoltage = (long)node.getResponseBuffer(0x04) / 100.0f; pPropbvoltage->SetValue(dtostrf(bvoltage, 2, 3, buf )); bcurrent = (long)node.getResponseBuffer(0x05) / 100.0f; pPropbcurrent->SetValue(dtostrf(bcurrent, 2, 3, buf )); bpower = ((long)node.getResponseBuffer(0x07) << 16 | node.getResponseBuffer(0x06)) / 100.0f; pPropbpower->SetValue(dtostrf(bpower, 2, 3, buf )); lvoltage = (long)node.getResponseBuffer(0x0C) / 100.0f; pProplvoltage->SetValue(dtostrf(lvoltage, 2, 3, buf )); lcurrent = (long)node.getResponseBuffer(0x0D) / 100.0f; pProplcurrent->SetValue(dtostrf(lcurrent, 2, 3, buf )); lpower = ((long)node.getResponseBuffer(0x0F) << 16 | node.getResponseBuffer(0x0E)) / 100.0f; pProplpower->SetValue(dtostrf(lpower, 2, 3, buf)); pvvoltage = (long)node.getResponseBuffer(0x00) / 100.0f; pProppvvoltage->SetValue(dtostrf(pvvoltage, 2, 3, buf )); pvcurrent = (long)node.getResponseBuffer(0x01) / 100.0f; pProppvcurrent->SetValue(dtostrf(pvcurrent, 2, 3, buf )); pvpower = ((long)node.getResponseBuffer(0x03) << 16 | node.getResponseBuffer(0x02)) / 100.0f; pProppvpower->SetValue(dtostrf(pvpower, 2, 3, buf )); } else { rs485DataReceived = false; } } void AddressRegistry_311A() { result = node.readInputRegisters(0x311A, 2); if (result == node.ku8MBSuccess) { bremaining = node.getResponseBuffer(0x00) / 1.0f; pPropbremaining->SetValue(dtostrf(bremaining, 2, 3, buf )); } else { rs485DataReceived = false; } } void loop() { ArduinoOTA.handle(); timer.run(); homie.Loop(); }
-
Das meine ich nicht. Die Firmware, die derzeit läuft, hatte ich auch schon selbst drauf gemacht. Diese wurde von jemanden gemacht für den ESP8266. Aber darum geht es mir nicht.
Wenn alles über Tasmota läuft, muss ich erstmal die Daten anfordern, vom Laderegler. Ich habe keinen Plan, wie das funktionieren soll, was ich zum Beispiel in der Konsole von Tasmota eingeben muss, damit dieser, die Daten sendet.
-
Hi.
Was meinst du mit "auslesen" ?? Meinst du serielles Logging? Das geht z.B. mit Putty.
Oder ein FW Backup? das geht dann unter anderem mit dem Tasmotizer.
Derzeit habe ich eine Firmware am Laufen, die für den EPEVER speziell gemacht wurde, um die Daten des Ladereglers seriell auszulesen.
Ich würde aber gerne das mit Tasmota machen, damit der ESP noch andere Dinge machen kann.
Allerdings weiß ich nicht, wie die Daten aus dem Laderegler bekomme, wenn ich Tasmota laufen habe. Was müsste ich zum Beispiel in der Konsole eingeben, damit ich die Werte bekomme?
-
-
Hallo,
ich hätte eine Frage zum Laden eines Li-Ion Akkus Typ: 18650 mit einem Solarmodul.
Damit wiederum möchte ich einen ESP8266 betreiben.
Ich habe ein Solarmodul was ca 12V ausgibt.
Ein TP4056 1A Laderegler gibt mir 4,2V raus für den 18650 Lithium-Akku .
Was aber, wenn die Spannung des Solarpanels abends auf 2V absackt?
Ich habe es mit einem Voltmeter getestet, dann gibt der Regler auch nur 2V weiter.
Kann man dadurch den Akku wieder entleeren?
Zerstört man den Akku auf dauer?
-
Okay, danke.
MQTT Dash ist also eine App, mit der man sich Dinge anzeigen kann aus dem IoBroker oder dem Wemos.
Kann man denn dort auch eine Zeitschaltuhr darstellen und mit Tasmota verknüpfen?
Bei meinem IoBroker nutze ich VIS. Die App werde ich mal ausprobieren.
Was mir ursprünglich in den Sinn kam, ein Weboberfläche auf dem ESP, ähnlich wie bei der Fritz Dect 200.
Die Darstellung und Bedieunung sollte möglichst einfach sein, das auch meine Frau alles einstellen / einschalten kann, ohne wichtige Parameter zu verstellen.
-
äääähm ... Tasmota?
Guten Morgen
Ja, da habe ich mich etwas blöde ausgedrückt.
Ja, mit Tasmota Sensor arbeite ich bereits. Und ja, dort ist auch ein Timer verbaut. Allerdings ist es doch etwas umständlich diesen einzustellen, da das Menü noch viele andere Dinge beinhaltet.
Gibt es eine vereinfachte Benutzerfreundliche Oberfläche ?
-
Hallo,
gibt es schon fertige Firmeware, womit ich ein Ausgang (Relay) ansteuern kann?
Ich möchte gerne eine Funkstecksoe bauen mit einem ESP8266 (Wemos d1 Mini).
Darin ein ausschalter und eventuell eine Zeitschaltuhr.
Gibt es so etwas ?
Mit dem Iobroker habe ich so etwas ja schon gemacht, nun möchte ich aber ohne IoBroker arbeiten.
-
Hallo, habe gerade ein Projekt gestartet und habe mit erschrecken festgestellt, das der D6 gar kein Relay mehr steuert mit der Firmware Sound Reactive WLED.
Bei der normalen WLed ging das noch. Kann man bei der Sound Reactive WLED ein Relay nachrüsten, damit ich die Lastspannung der LEDs schalten kann ?
-
Kann es sein, das bei Sound Reactive WLED die Relay Funktion nicht hat ?
-
Hallo zusammen,
habe den Fehler gefunden.
Zum einen war ein LED Streifen defekt. Das kam aber wohl später hinzu. Die erste LED muss wohl defekt gewesen sein. Nach dem ich die erste LED heraus genommen habe, hatte Sie imme rnoch Fehlfarben, auch wenn der Wemos gleich am anfang der Datenleitung war.
Zum anderen hatte ich nur für den Wemos eine eingene Spannungsquelle. Das 5V Netzteil für die Strips wollte ich über ein Relai extra schalten. Leider war dies eine weitere Fehlerquelle.
Entweder weil es unterschiedliche Quellen waren (Wemos & LED Strip), oder weil das Wemos Netzteil nicht sauber arbeitete ...
Vielleicht kann mir ja jemand schreiben, ob es probleme gibt, bei unterschiedlichen Spannungsquellen.
-
Habe ich derzeit nicht ausprobiert, weil ich gleich alles schön verbaut habe ...
Werde ich aber wohl testen müssen.
Ich werde berichten ...
-
Hallo zusammen,
Im Garten habe ich einen Wemos mit Wled laufen.
Ich habe ein Kabel mit ca. 5 - 7m 3 x 1,5mm² und daran zwei LED Strips parallel laufen (2-3m).
Bedeutet, die Datenleitung geht an beide LED Strips in der Mitte.
Nun habe ich das Problem, das gerade bei den ersten Leds es zu fehlfarben kommt.
Kann das an der Leitungslänge liegen, oder an Störungen in der Datenleitung?