From f1ed0e486cbb4fa5d92651220f8f679a43a614e7 Mon Sep 17 00:00:00 2001 From: Martin Grill Date: Sat, 16 Apr 2022 11:09:41 +0200 Subject: [PATCH 01/58] More sensible order in main loop: rx, then tx. More consistent output (no more duplicates: JSON only) --- tools/rpi/ahoy.py | 146 +++++++++++++++++++++++----------------------- 1 file changed, 72 insertions(+), 74 deletions(-) diff --git a/tools/rpi/ahoy.py b/tools/rpi/ahoy.py index fc68a142..f7e246e4 100644 --- a/tools/rpi/ahoy.py +++ b/tools/rpi/ahoy.py @@ -127,46 +127,37 @@ def on_receive(p, ch_rx=None, ch_tx=None): # interpret content mid = p[0] d['mid'] = mid - name = 'unknowndata' d['response_time_ns'] = t_now_ns-t_last_tx d['ch_rx'] = ch_rx d['ch_tx'] = ch_tx + d['src'] = 'src_unkn' + d['name'] = 'name_unkn' if mid == 0x95: src, dst, cmd = struct.unpack('>LLB', p[1:10]) - src_s = f'{src:08x}' - dst_s = f'{dst:08x}' - d['src'] = src_s - d['dst'] = dst_s + d['src'] = f'{src:08x}' + d['dst'] = f'{dst:08x}' d['cmd'] = cmd - print(f'MSG src={src_s}, dst={dst_s}, cmd={cmd}, ', end=' ') + print(f'MSG src={d["src"]}, dst={d["dst"]}, cmd={d["cmd"]}:') if cmd==1: - name = 'dcdata' + d['name'] = 'dcdata' unknown1, u1, i1, p1, u2, i2, p2, unknown2 = struct.unpack( '>HHHHHHHH', p[10:26]) - print(f'u1={u1/10}V, i1={i1/100}A, p1={p1/10}W, ', end='') - print(f'u2={u2/10}V, i2={i2/100}A, p2={p2/10}W, ', end='') - print(f'unknown1={unknown1}, unknown2={unknown2}') d['u1_V'] = u1/10 d['i1_A'] = i1/100 d['p1_W'] = p1/10 d['u2_V'] = u2/10 d['i2_A'] = i2/100 d['p2_W'] = p2/10 + d['p_W'] = d['p1_W']+d['p2_W'] d['unknown1'] = unknown1 d['unknown2'] = unknown2 elif cmd==2: - name = 'acdata' + d['name'] = 'acdata' uk1, uk2, uk3, uk4, uk5, u, f, p = struct.unpack( '>HHHHHHHH', p[10:26]) - print(f'u={u/10:.1f}V, f={f/100:.2f}Hz, p={p/10:.1f}W, ', end='') - print(f'uk1={uk1}, ', end='') - print(f'uk2={uk2}, ', end='') - print(f'uk3={uk3}, ', end='') - print(f'uk4={uk4}, ', end='') - print(f'uk5={uk5}') d['u_V'] = u/10 d['f_Hz'] = f/100 d['p_W'] = p/10 @@ -177,17 +168,11 @@ def on_receive(p, ch_rx=None, ch_tx=None): d['uk2'] = uk2 elif cmd==129: - name = 'error' - print('Command error') + d['name'] = 'error' elif cmd==131: # 0x83 - name = 'statedata' + d['name'] = 'statedata' uk1, l, uk3, t, uk5, uk6 = struct.unpack('>HHHHHH', p[10:22]) - print(f'l={l}%, t={t/10:.2f}C, ', end='') - print(f'uk1={uk1}, ', end='') - print(f'uk3={uk3}, ', end='') - print(f'uk5={uk5}, ', end='') - print(f'uk6={uk6}') d['l_Pct'] = l d['t_C'] = t/10 d['uk1'] = uk1 @@ -196,17 +181,17 @@ def on_receive(p, ch_rx=None, ch_tx=None): d['uk6'] = uk6 elif cmd==132: # 0x84 - name = 'unknown0x84' + d['name'] = 'unknown0x84' uk1, uk2, uk3, uk4, uk5, uk6, uk7, uk8 = struct.unpack( '>HHHHHHHH', p[10:26]) - print(f'uk1={uk1}, ', end='') - print(f'uk2={uk2}, ', end='') - print(f'uk3={uk3}, ', end='') - print(f'uk4={uk4}, ', end='') - print(f'uk5={uk5}, ', end='') - print(f'uk6={uk6}, ', end='') - print(f'uk7={uk7}, ', end='') - print(f'uk8={uk8}') + d['uk1'] = uk1 + d['uk2'] = uk2 + d['uk3'] = uk3 + d['uk4'] = uk4 + d['uk5'] = uk5 + d['uk6'] = uk6 + d['uk7'] = uk7 + d['uk8'] = uk8 else: print(f'unknown cmd {cmd}') @@ -220,21 +205,21 @@ def on_receive(p, ch_rx=None, ch_tx=None): # output to MQTT if d: j = json.dumps(d) - mqtt_client.publish(f'ahoy/{src}/{name}', j) + mqtt_client.publish(f"ahoy/{d['src']}/{d['name']}", j) if d['cmd']==2: - mqtt_client.publish(f'ahoy/{src}/emeter/0/voltage', d['u_V']) - mqtt_client.publish(f'ahoy/{src}/emeter/0/power', d['p_W']) - mqtt_client.publish(f'ahoy/{src}/emeter/0/total', d['wtot1_Wh']) - mqtt_client.publish(f'ahoy/{src}/frequency', d['f_Hz']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter/0/voltage', d['u_V']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter/0/power', d['p_W']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter/0/total', d['wtot1_Wh']) + mqtt_client.publish(f'ahoy/{d["src"]}/frequency', d['f_Hz']) if d['cmd']==1: - mqtt_client.publish(f'ahoy/{src}/emeter-dc/0/power', d['p1_W']) - mqtt_client.publish(f'ahoy/{src}/emeter-dc/0/voltage', d['u1_V']) - mqtt_client.publish(f'ahoy/{src}/emeter-dc/0/current', d['i1_A']) - mqtt_client.publish(f'ahoy/{src}/emeter-dc/1/power', d['p2_W']) - mqtt_client.publish(f'ahoy/{src}/emeter-dc/1/voltage', d['u2_V']) - mqtt_client.publish(f'ahoy/{src}/emeter-dc/1/current', d['i2_A']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/0/power', d['p1_W']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/0/voltage', d['u1_V']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/0/current', d['i1_A']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/1/power', d['p2_W']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/1/voltage', d['u2_V']) + mqtt_client.publish(f'ahoy/{d["src"]}/emeter-dc/1/current', d['i2_A']) if d['cmd']==131: - mqtt_client.publish(f'ahoy/{src}/temperature', d['t_C']) + mqtt_client.publish(f'ahoy/{d["src"]}/temperature', d['t_C']) @@ -269,7 +254,7 @@ def main_loop(): radio.setChannel(rx_channel) radio.enableDynamicPayloads() - radio.setAutoAck(True) + radio.setAutoAck(False) radio.setPALevel(RF24_PA_MAX) radio.setDataRate(RF24_250KBPS) radio.openWritingPipe(ser_to_esb_addr(inv_ser)) @@ -278,35 +263,14 @@ def main_loop(): radio.openReadingPipe(1,ser_to_esb_addr(dtu_ser)) radio.startListening() - t_end = time.monotonic_ns()+1e9 - while time.monotonic_ns() < t_end: - has_payload, pipe_number = radio.available_pipe() - if has_payload: - size = radio.getDynamicPayloadSize() - payload = radio.read(size) - print(last_tx_message, end='') - last_tx_message = '' - dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") - print(f"{dt} Received {size} bytes on channel {rx_channel} pipe {pipe_number}: " + - " ".join([f"{b:02x}" for b in payload])) - on_receive(payload, ch_rx=rx_channel, ch_tx=tx_channel) - else: - # pass - # time.sleep(0.01) - radio.stopListening() - radio.setChannel(rx_channel) - radio.startListening() - rx_channel_id = rx_channel_id + 1 - if rx_channel_id >= len(rx_channels): - rx_channel_id = 0 - rx_channel = rx_channels[rx_channel_id] - time.sleep(0.01) - tx_channel_id = tx_channel_id + 1 if tx_channel_id >= len(tx_channels): tx_channel_id = 0 tx_channel = tx_channels[tx_channel_id] + # + # TX + # radio.stopListening() # put radio in TX mode radio.setChannel(tx_channel) radio.openWritingPipe(ser_to_esb_addr(inv_ser)) @@ -315,13 +279,47 @@ def main_loop(): payload = compose_0x80_msg(src_ser_no=dtu_ser, dst_ser_no=inv_ser, ts=ts) dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") last_tx_message = f"{dt} Transmit {ctr:5d}: channel={tx_channel} len={len(payload)} | " + \ - " ".join([f"{b:02x}" for b in payload]) + "\n" - radio.write(payload) # will always yield 'True' because auto-ack is disabled + " ".join([f"{b:02x}" for b in payload]) + f" rx_ch: {rx_channel}" + print(last_tx_message) + + # for i in range(0,3): + result = radio.write(payload) # will always yield 'True' because auto-ack is disabled + # time.sleep(.05) + t_last_tx = time.monotonic_ns() ctr = ctr + 1 - print(flush=True, end='') + t_end = time.monotonic_ns()+5e9 + tslots = [1000] #, 40, 50, 60, 70] # switch channel at these ms times since transmission + + for tslot in tslots: + t_end = t_last_tx + tslot*1e6 # ms to ns + + radio.stopListening() + radio.setChannel(rx_channel) + radio.startListening() + while time.monotonic_ns() < t_end: + has_payload, pipe_number = radio.available_pipe() + if has_payload: + size = radio.getDynamicPayloadSize() + payload = radio.read(size) + # print(last_tx_message, end='') + last_tx_message = '' + dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") + print(f"{dt} Received {size} bytes on channel {rx_channel} pipe {pipe_number}: " + + " ".join([f"{b:02x}" for b in payload])) + on_receive(payload, ch_rx=rx_channel, ch_tx=tx_channel) + else: + pass + # time.sleep(0.001) + + rx_channel_id = rx_channel_id + 1 + if rx_channel_id >= len(rx_channels): + rx_channel_id = 0 + rx_channel = rx_channels[rx_channel_id] + print(flush=True, end='') + # time.sleep(2) From 8030acd283ddac6efc0d2e7da708c7bbd2a9f990 Mon Sep 17 00:00:00 2001 From: Martin Grill Date: Sat, 16 Apr 2022 11:13:23 +0200 Subject: [PATCH 02/58] No delay --- tools/rpi/discover/discover.cpp | 3 ++- tools/rpi/discover/pretender.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/rpi/discover/discover.cpp b/tools/rpi/discover/discover.cpp index 60d013f6..6a522eac 100644 --- a/tools/rpi/discover/discover.cpp +++ b/tools/rpi/discover/discover.cpp @@ -109,6 +109,7 @@ int main(int argc, char** argv) dstaddrs.push_back(string("1Node")); dstaddrs.push_back(string("2Node")); dstaddrs.push_back(serno2shockburstaddrbytes(114174608145)); + dstaddrs.push_back("\x45\x81\x60\x74\x01"); dstaddrs.push_back(serno2shockburstaddrbytes(114174608177)); // channels that we will scan @@ -127,7 +128,7 @@ int main(int argc, char** argv) cout << " - "; } cout << " " << flush; - delay(10); + //delay(10); } cout << endl; } diff --git a/tools/rpi/discover/pretender.cpp b/tools/rpi/discover/pretender.cpp index a9aa6943..75ed47ce 100644 --- a/tools/rpi/discover/pretender.cpp +++ b/tools/rpi/discover/pretender.cpp @@ -11,6 +11,7 @@ #include #include // CLOCK_MONOTONIC_RAW, timespec, clock_gettime() #include // RF24, RF24_PA_LOW, delay() +#include // usleep() using namespace std; @@ -45,7 +46,7 @@ void receiveForever(int ch, string myaddr) while (true) { uint8_t pipe; - delay(500); + usleep(500000); if (radio.failureDetected) { cout << "!f! " << flush; } From 5f927ad8c51b1e57aa4419a2d0d0bb66ae0ded5f Mon Sep 17 00:00:00 2001 From: lumapu Date: Sun, 17 Apr 2022 01:54:48 +0200 Subject: [PATCH 03/58] added ESP8266 code --- tools/esp8266/CircularBuffer.h | 158 ++++++++++++++ tools/esp8266/README.md | 45 ++++ tools/esp8266/ahoy-esp.ino | 25 +++ tools/esp8266/app.cpp | 265 +++++++++++++++++++++++ tools/esp8266/app.h | 50 +++++ tools/esp8266/defines.h | 37 ++++ tools/esp8266/eep.cpp | 130 ++++++++++++ tools/esp8266/eep.h | 30 +++ tools/esp8266/hoymiles.h | 228 ++++++++++++++++++++ tools/esp8266/html/conv.bat | 4 + tools/esp8266/html/h/index_html.h | 1 + tools/esp8266/html/h/setup_html.h | 1 + tools/esp8266/html/h/style_css.h | 1 + tools/esp8266/html/index.html | 45 ++++ tools/esp8266/html/setup.html | 51 +++++ tools/esp8266/html/style.css | 151 +++++++++++++ tools/esp8266/main.cpp | 340 ++++++++++++++++++++++++++++++ tools/esp8266/main.h | 79 +++++++ tools/esp8266/tools/fileConv.exe | Bin 0 -> 67584 bytes 19 files changed, 1641 insertions(+) create mode 100644 tools/esp8266/CircularBuffer.h create mode 100644 tools/esp8266/README.md create mode 100644 tools/esp8266/ahoy-esp.ino create mode 100644 tools/esp8266/app.cpp create mode 100644 tools/esp8266/app.h create mode 100644 tools/esp8266/defines.h create mode 100644 tools/esp8266/eep.cpp create mode 100644 tools/esp8266/eep.h create mode 100644 tools/esp8266/hoymiles.h create mode 100644 tools/esp8266/html/conv.bat create mode 100644 tools/esp8266/html/h/index_html.h create mode 100644 tools/esp8266/html/h/setup_html.h create mode 100644 tools/esp8266/html/h/style_css.h create mode 100644 tools/esp8266/html/index.html create mode 100644 tools/esp8266/html/setup.html create mode 100644 tools/esp8266/html/style.css create mode 100644 tools/esp8266/main.cpp create mode 100644 tools/esp8266/main.h create mode 100644 tools/esp8266/tools/fileConv.exe diff --git a/tools/esp8266/CircularBuffer.h b/tools/esp8266/CircularBuffer.h new file mode 100644 index 00000000..ab29e96a --- /dev/null +++ b/tools/esp8266/CircularBuffer.h @@ -0,0 +1,158 @@ +/* + CircularBuffer - An Arduino circular buffering library for arbitrary types. + + Created by Ivo Pullens, Emmission, 2014 -- www.emmission.nl + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef CircularBuffer_h +#define CircularBuffer_h + +#ifdef ESP8266 +#define DISABLE_IRQ noInterrupts() +#define RESTORE_IRQ interrupts() +#else +#define DISABLE_IRQ \ + uint8_t sreg = SREG; \ + cli(); + +#define RESTORE_IRQ \ + SREG = sreg; +#endif + +template class CircularBuffer +{ + public: + /** Constructor + * @param buffer Preallocated buffer of at least size records. + * @param size Number of records available in the buffer. + */ + CircularBuffer(T* buffer, const uint8_t size ) + : m_size(size), m_buff(buffer) + { + clear(); + } + + /** Clear all entries in the circular buffer. */ + void clear(void) + { + m_front = 0; + m_fill = 0; + } + + /** Test if the circular buffer is empty */ + inline bool empty(void) const + { + return !m_fill; + } + + /** Return the number of records stored in the buffer */ + inline uint8_t available(void) const + { + return m_fill; + } + + /** Test if the circular buffer is full */ + inline bool full(void) const + { + return m_fill == m_size; + } + + /** Aquire record on front of the buffer, for writing. + * After filling the record, it has to be pushed to actually + * add it to the buffer. + * @return Pointer to record, or NULL when buffer is full. + */ + T* getFront(void) const + { + DISABLE_IRQ; + T* f = NULL; + if (!full()) + f = get(m_front); + RESTORE_IRQ; + return f; + } + + /** Push record to front of the buffer + * @param record Record to push. If record was aquired previously (using getFront) its + * data will not be copied as it is already present in the buffer. + * @return True, when record was pushed successfully. + */ + bool pushFront(T* record) + { + bool ok = false; + DISABLE_IRQ; + if (!full()) + { + T* f = get(m_front); + if (f != record) + *f = *record; + m_front = (m_front+1) % m_size; + m_fill++; + ok = true; + } + RESTORE_IRQ; + return ok; + } + + /** Aquire record on back of the buffer, for reading. + * After reading the record, it has to be pop'ed to actually + * remove it from the buffer. + * @return Pointer to record, or NULL when buffer is empty. + */ + T* getBack(void) const + { + T* b = NULL; + DISABLE_IRQ; + if (!empty()) + b = get(back()); + RESTORE_IRQ; + return b; + } + + /** Remove record from back of the buffer. + * @return True, when record was pop'ed successfully. + */ + bool popBack(void) + { + bool ok = false; + DISABLE_IRQ; + if (!empty()) + { + m_fill--; + ok = true; + } + RESTORE_IRQ; + return ok; + } + + protected: + inline T * get(const uint8_t idx) const + { + return &(m_buff[idx]); + } + inline uint8_t back(void) const + { + return (m_front - m_fill + m_size) % m_size; + } + + const uint8_t m_size; // Total number of records that can be stored in the buffer. + T* const m_buff; // Ptr to buffer holding all records. + volatile uint8_t m_front; // Index of front element (not pushed yet). + volatile uint8_t m_fill; // Amount of records currently pushed. +}; + +#endif // CircularBuffer_h diff --git a/tools/esp8266/README.md b/tools/esp8266/README.md new file mode 100644 index 00000000..f8690dec --- /dev/null +++ b/tools/esp8266/README.md @@ -0,0 +1,45 @@ +## OVERVIEW + +This code was tested on a ESP8266 - ESP-07 module. Many parts of the code are based on 'Hubi's code, which can be found here: + +The NRF24L01+ radio module is connected to the standard SPI pins. Additional there are 3 pins, which can be set individual: + +- IRQ - Pin 4 +- CE - Pin 5 +- CS - Pin 15 + + +## Compile + +This code can be compiled using Arduino. The settings were: + +- Board: Generic ESP8266 Module +- Flash-Size: 1MB (FS: none, OTA: 502kB) + + +## Flash ESP with firmware + +1. flash the ESP with the compiled firmware using the UART pins or any preinstalled firmware with OTA capabilities +2. repower the ESP +3. the ESP will start as access point (AP) if there is no network config stored in its eeprom +4. connect to the AP, you will be forwarded to the setup page +5. configure your WiFi settings, save, repower +6. check your router for the IP address of the module + + +## Usage + +Connect the ESP to power and to your serial console. The webinterface is currently only used for OTA and config. +The serial console will print all information which is send and received. + + +## Known Issues + +- only command 0x81 is received + + +## USED LIBRARIES + +- `Time` +- `RF24` + diff --git a/tools/esp8266/ahoy-esp.ino b/tools/esp8266/ahoy-esp.ino new file mode 100644 index 00000000..2dcc84c3 --- /dev/null +++ b/tools/esp8266/ahoy-esp.ino @@ -0,0 +1,25 @@ +#include "app.h" + +app myApp; + +//----------------------------------------------------------------------------- +void setup() { + pinMode(RF24_IRQ_PIN, INPUT_PULLUP); + attachInterrupt(digitalPinToInterrupt(RF24_IRQ_PIN), handleIntr, FALLING); + + // AP name, password, timeout + myApp.setup("ESP AHOY", "esp_8266", 15); +} + + +//----------------------------------------------------------------------------- +void loop() { + myApp.loop(); +} + + +//----------------------------------------------------------------------------- +ICACHE_RAM_ATTR void handleIntr(void) { + myApp.handleIntr(); +} + diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp new file mode 100644 index 00000000..6e0d45fa --- /dev/null +++ b/tools/esp8266/app.cpp @@ -0,0 +1,265 @@ +#include "app.h" + +#include "html/h/index_html.h" +extern String setup_html; + +//----------------------------------------------------------------------------- +app::app() : Main() { + uint8_t wrAddr[6]; + mRadio = new RF24(RF24_CE_PIN, RF24_CS_PIN); + + mRadio->begin(); + mRadio->setAutoAck(false); + mRadio->setRetries(0, 0); + + mHoymiles = new hoymiles(); + mEep->read(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); + mHoymiles->serial2RadioId(); + + mBufCtrl = new CircularBuffer(mBuffer, PACKET_BUFFER_SIZE); + + mSendCnt = 0; + mSendTicker = new Ticker(); +} + + +//----------------------------------------------------------------------------- +app::~app(void) { + +} + + +//----------------------------------------------------------------------------- +void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { + Main::setup(ssid, pwd, timeout); + + mWeb->on("/", std::bind(&app::showIndex, this)); + mWeb->on("/setup", std::bind(&app::showSetup, this)); + mWeb->on("/save ", std::bind(&app::showSave, this)); + + initRadio(); + + mSendTicker->attach_ms(1000, std::bind(&app::sendTicker, this)); +} + + +//----------------------------------------------------------------------------- +void app::loop(void) { + Main::loop(); + + if(!mBufCtrl->empty()) { + uint8_t len, rptCnt; + NRF24_packet_t *p = mBufCtrl->getBack(); + + //mHoymiles->dumpBuf("RAW", p->packet, PACKET_BUFFER_SIZE); + + if(mHoymiles->checkCrc(p->packet, &len, &rptCnt)) { + // process buffer only on first occurrence + if((0 != len) && (0 == rptCnt)) { + mHoymiles->dumpBuf("Payload", p->packet, len); + // @TODO: do analysis here + } + } + else { + if(p->packetsLost != 0) { + Serial.println("Lost packets: " + String(p->packetsLost)); + } + } + mBufCtrl->popBack(); + } +} + + +//----------------------------------------------------------------------------- +void app::handleIntr(void) { + uint8_t lostCnt = 0, pipe, len; + NRF24_packet_t *p; + + DISABLE_IRQ; + + while(mRadio->available(&pipe)) { + if(!mBufCtrl->full()) { + p = mBufCtrl->getFront(); + memset(p->packet, 0xcc, MAX_RF_PAYLOAD_SIZE); + p->timestamp = micros(); // Micros does not increase in interrupt, but it can be used. + p->packetsLost = lostCnt; + len = mRadio->getPayloadSize(); + if(len > MAX_RF_PAYLOAD_SIZE) + len = MAX_RF_PAYLOAD_SIZE; + + mRadio->read(p->packet, len); + mBufCtrl->pushFront(p); + lostCnt = 0; + } + else { + bool tx_ok, tx_fail, rx_ready; + if(lostCnt < 255) + lostCnt++; + mRadio->whatHappened(tx_ok, tx_fail, rx_ready); // reset interrupt status + mRadio->flush_rx(); // drop the packet + } + } + + RESTORE_IRQ; +} + + +//----------------------------------------------------------------------------- +void app::initRadio(void) { + mRadio->setChannel(DEFAULT_RECV_CHANNEL); + mRadio->setDataRate(RF24_250KBPS); + mRadio->disableCRC(); + mRadio->setAutoAck(false); + mRadio->setPayloadSize(MAX_RF_PAYLOAD_SIZE); + mRadio->setAddressWidth(5); + mRadio->openReadingPipe(1, DTU_RADIO_ID); + + // enable only receiving interrupts + mRadio->maskIRQ(true, true, false); + + // Use lo PA level, as a higher level will disturb CH340 serial usb adapter + mRadio->setPALevel(RF24_PA_MAX); + mRadio->startListening(); + + Serial.println("Radio Config:"); + mRadio->printPrettyDetails(); +} + + +//----------------------------------------------------------------------------- +void app::sendPacket(uint8_t buf[], uint8_t len) { + DISABLE_IRQ; + + mRadio->stopListening(); + +#ifdef CHANNEL_HOP + mRadio->setChannel(mHoymiles->getNxtChannel()); +#else + mRadio->setChannel(mHoymiles->getDefaultChannel()); +#endif + + mRadio->openWritingPipe(mHoymiles->mRadioId); + mRadio->setCRCLength(RF24_CRC_16); + mRadio->enableDynamicPayloads(); + mRadio->setAutoAck(true); + mRadio->setRetries(3, 15); + + mRadio->write(buf, len); + + // Try to avoid zero payload acks (has no effect) + mRadio->openWritingPipe(DUMMY_RADIO_ID); + + mRadio->setAutoAck(false); + mRadio->setRetries(0, 0); + mRadio->disableDynamicPayloads(); + mRadio->setCRCLength(RF24_CRC_DISABLED); + + mRadio->setChannel(DEFAULT_RECV_CHANNEL); + mRadio->startListening(); + + RESTORE_IRQ; +} + + +//----------------------------------------------------------------------------- +void app::sendTicker(void) { + uint8_t size = 0; + if((mSendCnt % 6) == 0) + size = mHoymiles->getTimePacket(mSendBuf, mTimestamp); + else if((mSendCnt % 6) == 5) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x81); + else if((mSendCnt % 6) == 4) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x80); + else if((mSendCnt % 6) == 3) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x83); + else if((mSendCnt % 6) == 2) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x82); + else if((mSendCnt % 6) == 1) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x84); + + Serial.println("sent packet: #" + String(mSendCnt)); + dumpBuf(mSendBuf, size); + sendPacket(mSendBuf, size); + + mSendCnt++; +} + + +//----------------------------------------------------------------------------- +void app::showIndex(void) { + String html = index_html; + html.replace("{DEVICE}", mDeviceName); + html.replace("{VERSION}", mVersion); + mWeb->send(200, "text/html", html); +} + + +//----------------------------------------------------------------------------- +void app::showSetup(void) { + // overrides same method in main.cpp + + String html = setup_html; + html.replace("{SSID}", mStationSsid); + // PWD will be left at the default value (for protection) + // -> the PWD will only be changed if it does not match the placeholder "{PWD}" + + char addr[20] = {0}; + sprintf(addr, "%02X:%02X:%02X:%02X:%02X:%02X", mHoymiles->mAddrBytes[0], mHoymiles->mAddrBytes[1], mHoymiles->mAddrBytes[2], mHoymiles->mAddrBytes[3], mHoymiles->mAddrBytes[4], mHoymiles->mAddrBytes[5]); + html.replace("{HOY_ADDR}", String(addr)); + + html.replace("{DEVICE}", String(mDeviceName)); + html.replace("{VERSION}", String(mVersion)); + + mWeb->send(200, "text/html", html); +} + + +//----------------------------------------------------------------------------- +void app::showSave(void) { + saveValues(true); +} + + +//----------------------------------------------------------------------------- +void app::saveValues(bool webSend = true) { + Main::saveValues(false); // general configuration + + if(mWeb->args() > 0) { + char *p; + char addr[20] = {0}; + uint8_t i = 0; + + memset(mHoymiles->mAddrBytes, 0, 6); + mWeb->arg("hoy_addr").toCharArray(addr, 20); + + p = strtok(addr, ":"); + while(NULL != p) { + mHoymiles->mAddrBytes[i++] = strtol(p, NULL, 16); + p = strtok(NULL, ":"); + } + + mEep->write(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); + + if((mWeb->arg("reboot") == "on")) + showReboot(); + else { + mWeb->send(200, "text/html", "Setup saved" + "

saved

"); + } + } + else { + mWeb->send(200, "text/html", "Error" + "

Error while saving

"); + } +} + + +//----------------------------------------------------------------------------- +void app::dumpBuf(uint8_t buf[], uint8_t len) { + for(uint8_t i = 0; i < len; i ++) { + if((i % 8 == 0) && (i != 0)) + Serial.println(); + Serial.print(String(buf[i], HEX) + " "); + } + Serial.println(); +} diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h new file mode 100644 index 00000000..147693b8 --- /dev/null +++ b/tools/esp8266/app.h @@ -0,0 +1,50 @@ +#ifndef __APP_H__ +#define __APP_H__ + +#include +#include + +#include "defines.h" +#include "main.h" + +#include "CircularBuffer.h" +#include "hoymiles.h" + + +class app : public Main { + public: + app(); + ~app(); + + void setup(const char *ssid, const char *pwd, uint32_t timeout); + void loop(void); + void handleIntr(void); + + private: + void initRadio(void); + void sendPacket(uint8_t data[], uint8_t length); + + void sendTicker(void); + + void showIndex(void); + void showSetup(void); + void showSave(void); + + void saveValues(bool webSend); + void dumpBuf(uint8_t buf[], uint8_t len); + + uint8_t mState; + bool mKeyPressed; + + RF24 *mRadio; + hoymiles *mHoymiles; + CircularBuffer *mBufCtrl; + NRF24_packet_t mBuffer[PACKET_BUFFER_SIZE]; + + + Ticker *mSendTicker; + uint32_t mSendCnt; + uint8_t mSendBuf[MAX_RF_PAYLOAD_SIZE]; +}; + +#endif /*__APP_H__*/ diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h new file mode 100644 index 00000000..34614e8f --- /dev/null +++ b/tools/esp8266/defines.h @@ -0,0 +1,37 @@ +#ifndef __DEFINES_H__ +#define __DEFINES_H__ + + +//------------------------------------- +// PINOUT +//------------------------------------- +#define RF24_IRQ_PIN 4 +#define RF24_CE_PIN 5 +#define RF24_CS_PIN 15 + + +//------------------------------------- +// VERSION +//------------------------------------- +#define VERSION_MAJOR 0 +#define VERSION_MINOR 1 +#define VERSION_PATCH 7 + + +//------------------------------------- +// EEPROM +//------------------------------------- +#define SSID_LEN 32 +#define PWD_LEN 64 +#define DEVNAME_LEN 32 + +#define HOY_ADDR_LEN 6 + + +#define ADDR_SSID 0 // start address +#define ADDR_PWD ADDR_SSID + SSID_LEN +#define ADDR_DEVNAME ADDR_PWD + PWD_LEN + +#define ADDR_HOY_ADDR ADDR_DEVNAME + DEVNAME_LEN + +#endif /*__DEFINES_H__*/ diff --git a/tools/esp8266/eep.cpp b/tools/esp8266/eep.cpp new file mode 100644 index 00000000..97a3c600 --- /dev/null +++ b/tools/esp8266/eep.cpp @@ -0,0 +1,130 @@ +#include "eep.h" +#include + + +//----------------------------------------------------------------------------- +eep::eep() { + EEPROM.begin(500); +} + + +//----------------------------------------------------------------------------- +eep::~eep() { + EEPROM.end(); +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, char *str, uint8_t length) { + for(uint8_t i = 0; i < length; i ++) { + *(str++) = (char)EEPROM.read(addr++); + } +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, float *value) { + uint8_t *p = (uint8_t*)value; + for(uint8_t i = 0; i < 4; i ++) { + *(p++) = (uint8_t)EEPROM.read(addr++); + } +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, bool *value) { + uint8_t intVal = 0x00; + intVal = EEPROM.read(addr++); + *value = (intVal == 0x01); +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, uint8_t *value) { + *value = (EEPROM.read(addr++)); +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, uint8_t data[], uint8_t length) { + for(uint8_t i = 0; i < length; i ++) { + *(data++) = EEPROM.read(addr++); + } +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, uint16_t *value) { + *value = (EEPROM.read(addr++) << 8); + *value |= (EEPROM.read(addr++)); +} + + +//----------------------------------------------------------------------------- +void eep::read(uint32_t addr, uint32_t *value) { + *value = (EEPROM.read(addr++) << 24); + *value |= (EEPROM.read(addr++) << 16); + *value |= (EEPROM.read(addr++) << 8); + *value |= (EEPROM.read(addr++)); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, const char *str, uint8_t length) { + for(uint8_t i = 0; i < length; i ++) { + EEPROM.write(addr++, str[i]); + } + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, uint8_t data[], uint8_t length) { + for(uint8_t i = 0; i < length; i ++) { + EEPROM.write(addr++, data[i]); + } + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, float value) { + uint8_t *p = (uint8_t*)&value; + for(uint8_t i = 0; i < 4; i ++) { + EEPROM.write(addr++, p[i]); + } + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, bool value) { + uint8_t intVal = (value) ? 0x01 : 0x00; + EEPROM.write(addr++, intVal); + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, uint8_t value) { + EEPROM.write(addr++, value); + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, uint16_t value) { + EEPROM.write(addr++, (value >> 8) & 0xff); + EEPROM.write(addr++, (value ) & 0xff); + EEPROM.commit(); +} + + +//----------------------------------------------------------------------------- +void eep::write(uint32_t addr, uint32_t value) { + EEPROM.write(addr++, (value >> 24) & 0xff); + EEPROM.write(addr++, (value >> 16) & 0xff); + EEPROM.write(addr++, (value >> 8) & 0xff); + EEPROM.write(addr++, (value ) & 0xff); + EEPROM.commit(); +} diff --git a/tools/esp8266/eep.h b/tools/esp8266/eep.h new file mode 100644 index 00000000..36b03914 --- /dev/null +++ b/tools/esp8266/eep.h @@ -0,0 +1,30 @@ +#ifndef __EEP_H__ +#define __EEP_H__ + +#include "Arduino.h" + +class eep { + public: + eep(); + ~eep(); + + void read(uint32_t addr, char *str, uint8_t length); + void read(uint32_t addr, float *value); + void read(uint32_t addr, bool *value); + void read(uint32_t addr, uint8_t *value); + void read(uint32_t addr, uint8_t data[], uint8_t length); + void read(uint32_t addr, uint16_t *value); + void read(uint32_t addr, uint32_t *value); + void write(uint32_t addr, const char *str, uint8_t length); + void write(uint32_t addr, uint8_t data[], uint8_t length); + void write(uint32_t addr, float value); + void write(uint32_t addr, bool value); + void write(uint32_t addr, uint8_t value); + void write(uint32_t addr, uint16_t value); + void write(uint32_t addr, uint32_t value); + + private: + +}; + +#endif /*__EEP_H__*/ diff --git a/tools/esp8266/hoymiles.h b/tools/esp8266/hoymiles.h new file mode 100644 index 00000000..26724ba7 --- /dev/null +++ b/tools/esp8266/hoymiles.h @@ -0,0 +1,228 @@ +#ifndef __HOYMILES_H__ +#define __HOYMILES_H__ + +#include +#include + +#define CHANNEL_HOP // switch between channels or use static channel to send + +#define luint64_t long long unsigned int + +#define DEFAULT_RECV_CHANNEL 3 +#define MAX_RF_PAYLOAD_SIZE 32 +#define DTU_RADIO_ID ((uint64_t)0x1234567801ULL) +#define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) + +#define PACKET_BUFFER_SIZE 30 +#define CRC8_INIT 0x00 +#define CRC8_POLY 0x01 + +#define CRC16_MODBUS_POLYNOM 0xA001 +#define CRC16_NRF24_POLYNOM 0x1021 + + +//----------------------------------------------------------------------------- +// MACROS +#define CP_U32_LittleEndian(buf, v) ({ \ + uint8_t *b = buf; \ + b[0] = ((v >> 24) & 0xff); \ + b[1] = ((v >> 16) & 0xff); \ + b[2] = ((v >> 8) & 0xff); \ + b[3] = ((v ) & 0xff); \ +}) + +#define CP_U32_BigEndian(buf, v) ({ \ + uint8_t *b = buf; \ + b[3] = ((v >> 24) & 0xff); \ + b[2] = ((v >> 16) & 0xff); \ + b[1] = ((v >> 8) & 0xff); \ + b[0] = ((v ) & 0xff); \ +}) + +#define BIT_CNT(x) ((x)<<3) + + +//----------------------------------------------------------------------------- +union uint64Bytes { + uint64_t ull; + uint8_t bytes[8]; +}; + +typedef struct { + uint32_t timestamp; + uint8_t packetsLost; + uint8_t packet[MAX_RF_PAYLOAD_SIZE]; +} NRF24_packet_t; + + +//----------------------------------------------------------------------------- +class hoymiles { + public: + hoymiles() { + serial2RadioId(); + calcDtuIdCrc(); + + mChannels = new uint8_t(4); + mChannels[0] = 23; + mChannels[1] = 40; + mChannels[2] = 61; + mChannels[3] = 75; + mChanIdx = 1; + + mLastCrc = 0x0000; + mRptCnt = 0; + } + + ~hoymiles() {} + + uint8_t getDefaultChannel(void) { + return mChannels[1]; + } + + uint8_t getNxtChannel(void) { + if(++mChanIdx >= 4) + mChanIdx = 0; + return mChannels[mChanIdx]; + } + + void serial2RadioId(void) { + uint64Bytes id; + + id.ull = 0ULL; + id.bytes[4] = mAddrBytes[5]; + id.bytes[3] = mAddrBytes[4]; + id.bytes[2] = mAddrBytes[3]; + id.bytes[1] = mAddrBytes[2]; + id.bytes[0] = 0x01; + + mRadioId = id.ull; + } + + uint8_t getTimePacket(uint8_t buf[], uint32_t ts) { + memset(buf, 0, MAX_RF_PAYLOAD_SIZE); + + buf[0] = 0x15; + CP_U32_BigEndian(&buf[1], (mRadioId >> 8)); + CP_U32_BigEndian(&buf[5], (DTU_RADIO_ID >> 8)); + buf[9] = 0x00; + buf[10] = 0x0b; // cid + buf[11] = 0x00; + CP_U32_LittleEndian(&buf[12], ts); + buf[19] = 0x05; + + uint16_t crc = crc16(&buf[10], 14); + buf[24] = (crc >> 8) & 0xff; + buf[25] = (crc ) & 0xff; + buf[26] = crc8(buf, 26); + + return 27; + } + + uint8_t getCmdPacket(uint8_t buf[], uint8_t mid, uint8_t cmd) { + buf[0] = mid; + CP_U32_BigEndian(&buf[1], (mRadioId >> 8)); + CP_U32_BigEndian(&buf[5], (DTU_RADIO_ID >> 8)); + buf[9] = cmd; + buf[10] = crc8(buf, 10); + + return 11; + } + + bool checkCrc(uint8_t buf[], uint8_t *len, uint8_t *rptCnt) { + *len = (buf[0] >> 2); + for (int16_t i = MAX_RF_PAYLOAD_SIZE - 1; i >= 0; i--) { + buf[i] = ((buf[i] >> 7) | ((i > 0) ? (buf[i-1] << 1) : 0x00)); + } + uint16_t crc = crc16nrf24(buf, BIT_CNT(*len + 2), 7, mDtuIdCrc); + + bool valid = (crc == ((buf[*len+2] << 8) | (buf[*len+3]))); + + if(valid) { + if(mLastCrc == crc) + *rptCnt = (++mRptCnt); + else { + mRptCnt = 0; + *rptCnt = 0; + mLastCrc = crc; + } + } + + return valid; + } + + void dumpBuf(const char *info, uint8_t buf[], uint8_t len) { + Serial.print(String(info)); + for(uint8_t i = 0; i < len; i++) { + Serial.print(buf[i], HEX); + Serial.print(" "); + } + Serial.println(); + } + + uint8_t mAddrBytes[6]; + luint64_t mRadioId; + + private: + void calcDtuIdCrc(void) { + uint64_t addr = DTU_RADIO_ID; + uint8_t dtuAddr[5]; + for(int8_t i = 4; i >= 0; i--) { + dtuAddr[i] = addr; + addr >>= 8; + } + mDtuIdCrc = crc16nrf24(dtuAddr, BIT_CNT(5)); + } + + uint8_t crc8(uint8_t buf[], uint8_t len) { + uint8_t crc = CRC8_INIT; + for(uint8_t i = 0; i < len; i++) { + crc ^= buf[i]; + for(uint8_t b = 0; b < 8; b ++) { + crc = (crc << 1) ^ ((crc & 0x80) ? CRC8_POLY : 0x00); + } + } + return crc; + } + + uint16_t crc16(uint8_t buf[], uint8_t len) { + uint16_t crc = 0xffff; + uint8_t lsb; + + for(uint8_t i = 0; i < len; i++) { + crc = crc ^ buf[i]; + for(int8_t b = 7; b >= 0; b--) { + lsb = (crc & 0x0001); + if(lsb == 0x01) + crc--; + crc = crc >> 1; + if(lsb == 0x01) + crc = crc ^ CRC16_MODBUS_POLYNOM; + } + } + + return crc; + } + + uint16_t crc16nrf24(uint8_t buf[], uint16_t lenBits, uint16_t startBit = 0, uint16_t crcIn = 0xffff) { + uint16_t crc = crcIn; + uint8_t idx, val = buf[(startBit >> 3)]; + + for(uint16_t bit = startBit; bit < lenBits; bit ++) { + idx = bit & 0x07; + if(0 == idx) + val = buf[(bit >> 3)]; + crc ^= 0x8000 & (val << (8 + idx)); + crc = (crc & 0x8000) ? ((crc << 1) ^ CRC16_NRF24_POLYNOM) : (crc << 1); + } + + return crc; + } + + uint8_t *mChannels; + uint8_t mChanIdx; + uint16_t mDtuIdCrc; + uint16_t mLastCrc; + uint8_t mRptCnt; +}; + +#endif /*__HOYMILES_H__*/ diff --git a/tools/esp8266/html/conv.bat b/tools/esp8266/html/conv.bat new file mode 100644 index 00000000..46587400 --- /dev/null +++ b/tools/esp8266/html/conv.bat @@ -0,0 +1,4 @@ +..\tools\fileConv.exe index.html h\index_html.h index_html +..\tools\fileConv.exe setup.html h\setup_html.h setup_html +..\tools\fileConv.exe style.css h\style_css.h style_css +pause diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h new file mode 100644 index 00000000..81ea0775 --- /dev/null +++ b/tools/esp8266/html/h/index_html.h @@ -0,0 +1 @@ +String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Update

Setup
Reboot

Uptime:

Time:

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h new file mode 100644 index 00000000..24440e88 --- /dev/null +++ b/tools/esp8266/html/h/setup_html.h @@ -0,0 +1 @@ +String setup_html = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

SSID
PASSWORD

Device Host Name

DEVICE NAME

General

HOYMILES ADDRESS (eg. 11:22:33:44:55:66)

Home

Update Firmware

AHOY - {VERSION}

"; diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h new file mode 100644 index 00000000..be1e0761 --- /dev/null +++ b/tools/esp8266/html/h/style_css.h @@ -0,0 +1 @@ +String style_css = "h1 { margin: 0; padding: 20pt; font-size: 22pt; color: #fff; background-color: #006ec0; display: block; text-transform: uppercase; } html, body { font-family: Arial; margin: 0; padding: 0; } p { text-align: justify; font-size: 13pt; } .des { font-size: 14pt; color: #006ec0; padding-bottom: 0px !important; } .fw { width: 60px; display: block; float: left; } .color { width: 50px; height: 50px; border: 1px solid #ccc; } .range { width: 300px; } a:link, a:visited { text-decoration: none; font-size: 13pt; color: #006ec0; } a:hover, a:focus { color: #f00; } #content { padding: 15px 15px 60px 15px; } #footer { position: fixed; bottom: 0px; height: 45px; background-color: #006ec0; width: 100%; } #footer p { color: #fff; padding-left: 20px; padding-right: 20px; font-size: 10pt !important; } #footer a { color: #fff; } #footer a:hover { color: #f00; } div.content { background-color: #fff; padding-bottom: 65px; overflow: hidden; } span.warn { display: inline-block; padding-left: 20px; color: #ff9900; font-style: italic; } input { padding: 10px; font-size: 13pt; } input.button { background-color: #006ec0; color: #fff; border: 0px; float: right; text-transform: uppercase; } input.cb { margin-bottom: 20px; } label { font-size: 14pt; } .left { float: left; } .right { float: right; } .inputWrp { position: relative; } .inputWrp .inputText { height: 35px; width: 90%; margin-bottom: 20px; border: 1px solid #ccc; border-top: none; border-right: none; } .inputWrp .floating_label { position: absolute; pointer-events: none; top: 20px; left: 10px; transition: 0.2s ease all; } .inputWrp input:focus ~ .floating_label, .inputWrp input:not(:focus):valid ~ .floating_label { top: 0px; left: 20px; font-size: 10px; color: blue; opacity: 1; } "; diff --git a/tools/esp8266/html/index.html b/tools/esp8266/html/index.html new file mode 100644 index 00000000..479cc483 --- /dev/null +++ b/tools/esp8266/html/index.html @@ -0,0 +1,45 @@ + + + + Index - {DEVICE} + + + + + +

AHOY - {DEVICE}

+
+

+ Update
+
+ Setup
+ Reboot +

+

Uptime:

+

Time:

+
+ + + diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html new file mode 100644 index 00000000..393fce78 --- /dev/null +++ b/tools/esp8266/html/setup.html @@ -0,0 +1,51 @@ + + + + Setup - {DEVICE} + + + + +

Setup

+
+
+

+ Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information. +

+
+

WiFi

+
+ + SSID +
+
+ + PASSWORD +
+

Device Host Name

+
+ + DEVICE NAME +
+ +

General

+ +
+ + HOYMILES ADDRESS (eg. 11:22:33:44:55:66) +
+ + + + +
+
+
+ + + + diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css new file mode 100644 index 00000000..7d6daaa7 --- /dev/null +++ b/tools/esp8266/html/style.css @@ -0,0 +1,151 @@ +h1 { + margin: 0; + padding: 20pt; + font-size: 22pt; + color: #fff; + background-color: #006ec0; + display: block; + text-transform: uppercase; +} + +html, body { + font-family: Arial; + margin: 0; + padding: 0; +} + +p { + text-align: justify; + font-size: 13pt; +} + +.des { + font-size: 14pt; + color: #006ec0; + padding-bottom: 0px !important; +} + +.fw { + width: 60px; + display: block; + float: left; +} + +.color { + width: 50px; + height: 50px; + border: 1px solid #ccc; +} + +.range { + width: 300px; +} + +a:link, a:visited { + text-decoration: none; + font-size: 13pt; + color: #006ec0; +} + +a:hover, a:focus { + color: #f00; +} + +#content { + padding: 15px 15px 60px 15px; +} + +#footer { + position: fixed; + bottom: 0px; + height: 45px; + background-color: #006ec0; + width: 100%; +} + +#footer p { + color: #fff; + padding-left: 20px; + padding-right: 20px; + font-size: 10pt !important; +} + +#footer a { + color: #fff; +} + +#footer a:hover { + color: #f00; +} + +div.content { + background-color: #fff; + padding-bottom: 65px; + overflow: hidden; +} + +span.warn { + display: inline-block; + padding-left: 20px; + color: #ff9900; + font-style: italic; +} + +input { + padding: 10px; + font-size: 13pt; +} + +input.button { + background-color: #006ec0; + color: #fff; + border: 0px; + float: right; + text-transform: uppercase; +} + +input.cb { + margin-bottom: 20px; +} + +label { + font-size: 14pt; +} + +.left { + float: left; +} + +.right { + float: right; +} + +.inputWrp { + position: relative; +} + +.inputWrp .inputText { + height: 35px; + width: 90%; + margin-bottom: 20px; + border: 1px solid #ccc; + border-top: none; + border-right: none; +} + +.inputWrp .floating_label { + position: absolute; + pointer-events: none; + top: 20px; + left: 10px; + transition: 0.2s ease all; +} + +.inputWrp input:focus ~ .floating_label, +.inputWrp input:not(:focus):valid ~ .floating_label { + top: 0px; + left: 20px; + font-size: 10px; + color: blue; + opacity: 1; +} diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp new file mode 100644 index 00000000..5ecaaaca --- /dev/null +++ b/tools/esp8266/main.cpp @@ -0,0 +1,340 @@ +#include "main.h" +#include "version.h" + +#include "html/h/style_css.h" +#include "html/h/setup_html.h" + +Main::Main(void) { + mDns = new DNSServer(); + mWeb = new ESP8266WebServer(80); + mUpdater = new ESP8266HTTPUpdateServer(); + mUdp = new WiFiUDP(); + + mApActive = true; + + snprintf(mVersion, 12, "%d.%d.%d", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); + + memset(&mDeviceName, 0, DEVNAME_LEN); + + mEep = new eep(); + Serial.begin(115200); + + mUptimeSecs = 0; + mUptimeTicker = new Ticker(); + mUptimeTicker->attach(1, std::bind(&Main::uptimeTicker, this)); +} + + +//----------------------------------------------------------------------------- +void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { + bool startAp = mApActive; + + mWeb->on("/setup", std::bind(&Main::showSetup, this)); + mWeb->on("/save", std::bind(&Main::showSave, this)); + mWeb->on("/uptime", std::bind(&Main::showUptime, this)); + mWeb->on("/time", std::bind(&Main::showTime, this)); + mWeb->on("/style.css", std::bind(&Main::showCss, this)); + mWeb->on("/reboot", std::bind(&Main::showReboot, this)); + mWeb->onNotFound (std::bind(&Main::showNotFound, this)); + + startAp = getConfig(); + if(String(mDeviceName) != "") + WiFi.hostname(mDeviceName); + + if(false == startAp) + startAp = setupStation(timeout); + + if(true == startAp) { + if(strlen(pwd) < 8) + Serial.println("password must be at least 8 characters long"); + setupAp(ssid, pwd); + } + + mUpdater->setup(mWeb); + + mApActive = startAp; + + mTimestamp = getNtpTime(); + //Serial.println("[NTP]: " + getDateTimeStr(getNtpTime())); +} + + +//----------------------------------------------------------------------------- +void Main::loop(void) { + if(mApActive) + mDns->processNextRequest(); + mWeb->handleClient(); +} + + +//----------------------------------------------------------------------------- +bool Main::getConfig(void) { + bool mApActive = false; + + mEep->read(ADDR_SSID, mStationSsid, SSID_LEN); + mEep->read(ADDR_PWD, mStationPwd, PWD_LEN); + mEep->read(ADDR_DEVNAME, mDeviceName, DEVNAME_LEN); + + if(mStationSsid[0] == 0xff) { // empty memory + mApActive = true; + memset(mStationSsid, 0, SSID_LEN); + } + if(mStationPwd[0] == 0xff) + memset(mStationPwd, 0, PWD_LEN); + if(mDeviceName[0] == 0xff) + memset(mDeviceName, 0, DEVNAME_LEN); + + return mApActive; +} + + +//----------------------------------------------------------------------------- +void Main::setupAp(const char *ssid, const char *pwd) { + IPAddress apIp(192, 168, 1, 1); + + WiFi.mode(WIFI_AP); + WiFi.softAPConfig(apIp, apIp, IPAddress(255, 255, 255, 0)); + WiFi.softAP(ssid, pwd); + + mDns->start(mDnsPort, "*", apIp); + + mWeb->onNotFound([&]() { + showSetup(); + }); + mWeb->on("/", std::bind(&Main::showSetup, this)); + + mWeb->begin(); +} + + +//----------------------------------------------------------------------------- +bool Main::setupStation(uint32_t timeout) { + int32_t cnt = timeout * 10; + bool startAp = false; + + WiFi.mode(WIFI_STA); + WiFi.begin(mStationSsid, mStationPwd); + + delay(5000); + Serial.println("wait for network"); + while (WiFi.status() != WL_CONNECTED) { + delay(100); + if(cnt % 100 == 0) + Serial.println("."); + else + Serial.print("."); + + if(timeout > 0) { // limit == 0 -> no limit + if(--cnt <= 0) { + startAp = true; + WiFi.disconnect(); + delay(100); + break; + } + } + } + Serial.println("."); + + if(false == startAp) { + mWeb->begin(); + } + + delay(1000); + + return startAp; +} + + +//----------------------------------------------------------------------------- +void Main::showSetup(void) { + String html = setup_html; + html.replace("{SSID}", mStationSsid); + // PWD will be left at the default value (for protection) + // -> the PWD will only be changed if it does not match the default "{PWD}" + html.replace("{DEVICE}", String(mDeviceName)); + html.replace("{VERSION}", String(mVersion)); + + mWeb->send(200, "text/html", html); +} + + +//----------------------------------------------------------------------------- +void Main::showCss(void) { + mWeb->send(200, "text/css", style_css); +} + + +//----------------------------------------------------------------------------- +void Main::showSave(void) { + saveValues(true); +} + + +//----------------------------------------------------------------------------- +void Main::saveValues(bool webSend = true) { + if(mWeb->args() > 0) { + if(mWeb->arg("ssid") != "") { + memset(mStationSsid, 0, SSID_LEN); + mWeb->arg("ssid").toCharArray(mStationSsid, SSID_LEN); + mEep->write(ADDR_SSID, mStationSsid, SSID_LEN); + + if(mWeb->arg("pwd") != "{PWD}") { + memset(mStationPwd, 0, PWD_LEN); + mWeb->arg("pwd").toCharArray(mStationPwd, PWD_LEN); + mEep->write(ADDR_PWD, mStationPwd, PWD_LEN); + } + } + + memset(mDeviceName, 0, DEVNAME_LEN); + mWeb->arg("device").toCharArray(mDeviceName, DEVNAME_LEN); + mEep->write(ADDR_DEVNAME, mDeviceName, DEVNAME_LEN); + + + if(webSend) { + if(mWeb->arg("reboot") == "on") + showReboot(); + else + mWeb->send(200, "text/html", "Setup saved" + "

saved

"); + } + } +} + + +//----------------------------------------------------------------------------- +void Main::showUptime(void) { + char time[20] = {0}; + + int upTimeSc = uint32_t((mUptimeSecs) % 60); + int upTimeMn = uint32_t((mUptimeSecs / (60)) % 60); + int upTimeHr = uint32_t((mUptimeSecs / (60 * 60)) % 24); + int upTimeDy = uint32_t((mUptimeSecs / (60 * 60 * 24)) % 365); + + snprintf(time, 20, "%d Tage, %02d:%02d:%02d", upTimeDy, upTimeHr, upTimeMn, upTimeSc); + + mWeb->send(200, "text/plain", String(time)); +} + + +//----------------------------------------------------------------------------- +void Main::showTime(void) { + mWeb->send(200, "text/plain", getDateTimeStr(mTimestamp)); +} + + +//----------------------------------------------------------------------------- +void Main::showNotFound(void) { + String msg = "File Not Found\n\n"; + msg += "URI: "; + msg += mWeb->uri(); + msg += "\nMethod: "; + msg += ( mWeb->method() == HTTP_GET ) ? "GET" : "POST"; + msg += "\nArguments: "; + msg += mWeb->args(); + msg += "\n"; + + for(uint8_t i = 0; i < mWeb->args(); i++ ) { + msg += " " + mWeb->argName(i) + ": " + mWeb->arg(i) + "\n"; + } + + mWeb->send(404, "text/plain", msg); +} + + +//----------------------------------------------------------------------------- +void Main::showReboot(void) { + mWeb->send(200, "text/html", "Rebooting ...rebooting ... auto reload after 10s"); + delay(1000); + ESP.restart(); +} + + + +//----------------------------------------------------------------------------- +void Main::uptimeTicker(void) { + mUptimeSecs++; + mTimestamp++; +} + + +//----------------------------------------------------------------------------- +time_t Main::getNtpTime(void) { + time_t date = 0; + IPAddress timeServer; + uint8_t buf[NTP_PACKET_SIZE]; + uint8_t retry = 0; + + WiFi.hostByName (TIMESERVER_NAME, timeServer); + mUdp->begin(TIME_LOCAL_PORT); + + + sendNTPpacket(timeServer); + + while(retry++ < 5) { + int wait = 150; + while(--wait) { + if(NTP_PACKET_SIZE <= mUdp->parsePacket()) { + uint64_t secsSince1900; + mUdp->read(buf, NTP_PACKET_SIZE); + secsSince1900 = (buf[40] << 24); + secsSince1900 |= (buf[41] << 16); + secsSince1900 |= (buf[42] << 8); + secsSince1900 |= (buf[43] ); + + date = secsSince1900 - 2208988800UL; // UTC time + date += (TIMEZONE + offsetDayLightSaving(date)) * 3600; + break; + } + else + delay(10); + } + } + + return date; +} + + +//----------------------------------------------------------------------------- +void Main::sendNTPpacket(IPAddress& address) { + uint8_t buf[NTP_PACKET_SIZE] = {0}; + + buf[0] = B11100011; // LI, Version, Mode + buf[1] = 0; // Stratum + buf[2] = 6; // Max Interval between messages in seconds + buf[3] = 0xEC; // Clock Precision + // bytes 4 - 11 are for Root Delay and Dispersion and were set to 0 by memset + buf[12] = 49; // four-byte reference ID identifying + buf[13] = 0x4E; + buf[14] = 49; + buf[15] = 52; + + mUdp->beginPacket(address, 123); // NTP request, port 123 + mUdp->write(buf, NTP_PACKET_SIZE); + mUdp->endPacket(); +} + + +//----------------------------------------------------------------------------- +String Main::getDateTimeStr(time_t t) { + char str[20] = {0}; + sprintf(str, "%04d-%02d-%02d+%02d:%02d:%02d", year(t), month(t), day(t), hour(t), minute(t), second(t)); + return String(str); +} + + +//----------------------------------------------------------------------------- +// calculates the daylight saving time for middle Europe. Input: Unixtime in UTC +// from: https://forum.arduino.cc/index.php?topic=172044.msg1278536#msg1278536 +time_t Main::offsetDayLightSaving (uint32_t local_t) { + int m = month (local_t); + if(m < 3 || m > 10) return 0; // no DSL in Jan, Feb, Nov, Dez + if(m > 3 && m < 10) return 1; // DSL in Apr, May, Jun, Jul, Aug, Sep + int y = year (local_t); + int h = hour (local_t); + int hToday = (h + 24 * day(local_t)); + if((m == 3 && hToday >= (1 + TIMEZONE + 24 * (31 - (5 * y /4 + 4) % 7))) + || (m == 10 && hToday < (1 + TIMEZONE + 24 * (31 - (5 * y /4 + 1) % 7))) ) + return 1; + else + return 0; +} diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h new file mode 100644 index 00000000..1f1a91af --- /dev/null +++ b/tools/esp8266/main.h @@ -0,0 +1,79 @@ +#ifndef __MAIN_H__ +#define __MAIN_H__ + +#include "Arduino.h" + +#include +#include +#include +#include + +#include + +// NTP +#include +#include + +#include "eep.h" +#include "defines.h" + + +const byte mDnsPort = 53; + +/* TIMESERVER CONFIG */ +#define TIMESERVER_NAME "pool.ntp.org" +#define TIME_LOCAL_PORT 8888 +#define NTP_PACKET_SIZE 48 +#define TIMEZONE 1 // Central European time +1 + +class Main { + public: + Main(void); + virtual void setup(const char *ssid, const char *pwd, uint32_t timeout); + virtual void loop(); + String getDateTimeStr (time_t t); + + + protected: + void showReboot(void); + virtual void saveValues(bool webSend); + + char mStationSsid[SSID_LEN]; + char mStationPwd[PWD_LEN]; + bool mLinkLedActive; + bool mApActive; + ESP8266WebServer *mWeb; + char mVersion[9]; + char mDeviceName[DEVNAME_LEN]; + eep *mEep; + uint32_t mTimestamp; + + + private: + bool getConfig(void); + void setupAp(const char *ssid, const char *pwd); + bool setupStation(uint32_t timeout); + + void showNotFound(void); + virtual void showSetup(void); + virtual void showSave(void); + void showUptime(void); + void showTime(void); + void showCss(void); + void uptimeTicker(void); + + + time_t getNtpTime(void); + void sendNTPpacket(IPAddress& address); + time_t offsetDayLightSaving (uint32_t local_t); + + Ticker *mUptimeTicker; + uint32_t mUptimeSecs; + + DNSServer *mDns; + ESP8266HTTPUpdateServer *mUpdater; + + WiFiUDP *mUdp; // for time server +}; + +#endif /*__MAIN_H__*/ diff --git a/tools/esp8266/tools/fileConv.exe b/tools/esp8266/tools/fileConv.exe new file mode 100644 index 0000000000000000000000000000000000000000..6cd3e212ea1e5d0ccd0a9455a36b66d4d0fbab7d GIT binary patch literal 67584 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 frV+JK Date: Wed, 20 Apr 2022 08:58:23 +0200 Subject: [PATCH 04/58] * renamed .ino (must be identical to parent folder name) * build CRC over settings, only if the CRC matches settings are applied * send command 0x80 (set time was wrong) * improved crc16 routine * added statistics for received commands and send statistics (channels are not correct for now!) * receive of commands 0x01, 0x02, 0x03, 0x81 and 0x84 working --- tools/esp8266/app.cpp | 139 +++++++++++++------- tools/esp8266/app.h | 6 + tools/esp8266/crc.cpp | 43 ++++++ tools/esp8266/crc.h | 16 +++ tools/esp8266/defines.h | 12 +- tools/esp8266/{ahoy-esp.ino => esp8266.ino} | 0 tools/esp8266/hoymiles.h | 80 +++-------- tools/esp8266/html/h/index_html.h | 2 +- tools/esp8266/html/index.html | 2 + tools/esp8266/main.cpp | 45 ++++++- tools/esp8266/main.h | 4 +- 11 files changed, 226 insertions(+), 123 deletions(-) create mode 100644 tools/esp8266/crc.cpp create mode 100644 tools/esp8266/crc.h rename tools/esp8266/{ahoy-esp.ino => esp8266.ino} (100%) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 6e0d45fa..0b6db0a0 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -5,21 +5,16 @@ extern String setup_html; //----------------------------------------------------------------------------- app::app() : Main() { - uint8_t wrAddr[6]; - mRadio = new RF24(RF24_CE_PIN, RF24_CS_PIN); - - mRadio->begin(); - mRadio->setAutoAck(false); - mRadio->setRetries(0, 0); - mHoymiles = new hoymiles(); - mEep->read(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); - mHoymiles->serial2RadioId(); mBufCtrl = new CircularBuffer(mBuffer, PACKET_BUFFER_SIZE); mSendCnt = 0; mSendTicker = new Ticker(); + mFlagSend = false; + + memset(mCmds, 0, sizeof(uint32_t)); + memset(mChannelStat, 0, sizeof(uint32_t)); } @@ -33,13 +28,23 @@ app::~app(void) { void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { Main::setup(ssid, pwd, timeout); - mWeb->on("/", std::bind(&app::showIndex, this)); - mWeb->on("/setup", std::bind(&app::showSetup, this)); - mWeb->on("/save ", std::bind(&app::showSave, this)); + mWeb->on("/", std::bind(&app::showIndex, this)); + mWeb->on("/setup", std::bind(&app::showSetup, this)); + mWeb->on("/save", std::bind(&app::showSave, this)); + mWeb->on("/cmdstat", std::bind(&app::showCmdStatistics, this)); + + if(mSettingsValid) + mEep->read(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); + else + memset(mHoymiles->mAddrBytes, 0, 6); + mHoymiles->serial2RadioId(); initRadio(); - mSendTicker->attach_ms(1000, std::bind(&app::sendTicker, this)); + if(mSettingsValid) + mSendTicker->attach_ms(1000, std::bind(&app::sendTicker, this)); + else + Serial.println("Warn: your settings are not valid! check [IP]/setup"); } @@ -51,22 +56,53 @@ void app::loop(void) { uint8_t len, rptCnt; NRF24_packet_t *p = mBufCtrl->getBack(); - //mHoymiles->dumpBuf("RAW", p->packet, PACKET_BUFFER_SIZE); + //mHoymiles->dumpBuf("RAW ", p->packet, PACKET_BUFFER_SIZE); if(mHoymiles->checkCrc(p->packet, &len, &rptCnt)) { // process buffer only on first occurrence if((0 != len) && (0 == rptCnt)) { - mHoymiles->dumpBuf("Payload", p->packet, len); + Serial.println("CMD " + String(p->packet[11], HEX)); + mHoymiles->dumpBuf("Payload ", p->packet, len); // @TODO: do analysis here - } - } - else { - if(p->packetsLost != 0) { - Serial.println("Lost packets: " + String(p->packetsLost)); + if(p->packet[11] == 0x01) mCmds[0]++; + else if(p->packet[11] == 0x02) mCmds[1]++; + else if(p->packet[11] == 0x03) mCmds[2]++; + else if(p->packet[11] == 0x81) mCmds[3]++; + else if(p->packet[11] == 0x84) mCmds[4]++; + else mCmds[5]++; + + if(p->sendCh == 23) mChannelStat[0]++; + else if(p->sendCh == 40) mChannelStat[1]++; + else if(p->sendCh == 61) mChannelStat[2]++; + else mChannelStat[3]++; } } mBufCtrl->popBack(); } + + if(mFlagSend) { + mFlagSend = false; + + uint8_t size = 0; + if((mSendCnt % 6) == 0) + size = mHoymiles->getTimePacket(mSendBuf, mTimestamp); + else if((mSendCnt % 6) == 1) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x81); + else if((mSendCnt % 6) == 2) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x80); + else if((mSendCnt % 6) == 3) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x83); + else if((mSendCnt % 6) == 4) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x82); + else if((mSendCnt % 6) == 5) + size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x84); + + //Serial.println("sent packet: #" + String(mSendCnt)); + //dumpBuf(mSendBuf, size); + sendPacket(mSendBuf, size); + + mSendCnt++; + } } @@ -81,8 +117,7 @@ void app::handleIntr(void) { if(!mBufCtrl->full()) { p = mBufCtrl->getFront(); memset(p->packet, 0xcc, MAX_RF_PAYLOAD_SIZE); - p->timestamp = micros(); // Micros does not increase in interrupt, but it can be used. - p->packetsLost = lostCnt; + p->sendCh = mSendChannel; len = mRadio->getPayloadSize(); if(len > MAX_RF_PAYLOAD_SIZE) len = MAX_RF_PAYLOAD_SIZE; @@ -106,6 +141,12 @@ void app::handleIntr(void) { //----------------------------------------------------------------------------- void app::initRadio(void) { + mRadio = new RF24(RF24_CE_PIN, RF24_CS_PIN); + + mRadio->begin(); + mRadio->setAutoAck(false); + mRadio->setRetries(0, 0); + mRadio->setChannel(DEFAULT_RECV_CHANNEL); mRadio->setDataRate(RF24_250KBPS); mRadio->disableCRC(); @@ -123,20 +164,26 @@ void app::initRadio(void) { Serial.println("Radio Config:"); mRadio->printPrettyDetails(); + + mSendChannel = mHoymiles->getDefaultChannel(); } //----------------------------------------------------------------------------- void app::sendPacket(uint8_t buf[], uint8_t len) { DISABLE_IRQ; - mRadio->stopListening(); #ifdef CHANNEL_HOP - mRadio->setChannel(mHoymiles->getNxtChannel()); + if(mSendCnt % 6 == 0) + mSendChannel = mHoymiles->getNxtChannel(); + else + mSendChannel = mHoymiles->getLastChannel(); #else - mRadio->setChannel(mHoymiles->getDefaultChannel()); + mSendChannel = mHoymiles->getDefaultChannel(); #endif + mRadio->setChannel(mSendChannel); + //Serial.println("CH: " + String(mSendChannel)); mRadio->openWritingPipe(mHoymiles->mRadioId); mRadio->setCRCLength(RF24_CRC_16); @@ -147,7 +194,7 @@ void app::sendPacket(uint8_t buf[], uint8_t len) { mRadio->write(buf, len); // Try to avoid zero payload acks (has no effect) - mRadio->openWritingPipe(DUMMY_RADIO_ID); + mRadio->openWritingPipe(DUMMY_RADIO_ID); // TODO: why dummy radio id? mRadio->setAutoAck(false); mRadio->setRetries(0, 0); @@ -163,25 +210,7 @@ void app::sendPacket(uint8_t buf[], uint8_t len) { //----------------------------------------------------------------------------- void app::sendTicker(void) { - uint8_t size = 0; - if((mSendCnt % 6) == 0) - size = mHoymiles->getTimePacket(mSendBuf, mTimestamp); - else if((mSendCnt % 6) == 5) - size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x81); - else if((mSendCnt % 6) == 4) - size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x80); - else if((mSendCnt % 6) == 3) - size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x83); - else if((mSendCnt % 6) == 2) - size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x82); - else if((mSendCnt % 6) == 1) - size = mHoymiles->getCmdPacket(mSendBuf, 0x15, 0x84); - - Serial.println("sent packet: #" + String(mSendCnt)); - dumpBuf(mSendBuf, size); - sendPacket(mSendBuf, size); - - mSendCnt++; + mFlagSend = true; } @@ -220,6 +249,25 @@ void app::showSave(void) { } +//----------------------------------------------------------------------------- +void app::showCmdStatistics(void) { + String content = "CMDs:\n"; + content += String("0x01: ") + String(mCmds[0]) + String("\n"); + content += String("0x02: ") + String(mCmds[1]) + String("\n"); + content += String("0x03: ") + String(mCmds[2]) + String("\n"); + content += String("0x81: ") + String(mCmds[3]) + String("\n"); + content += String("0x84: ") + String(mCmds[4]) + String("\n"); + content += String("other: ") + String(mCmds[5]) + String("\n"); + + content += "\nCHANNELs:\n"; + content += String("23: ") + String(mChannelStat[0]) + String("\n"); + content += String("40: ") + String(mChannelStat[1]) + String("\n"); + content += String("61: ") + String(mChannelStat[2]) + String("\n"); + content += String("75: ") + String(mChannelStat[3]) + String("\n"); + mWeb->send(200, "text/plain", content); +} + + //----------------------------------------------------------------------------- void app::saveValues(bool webSend = true) { Main::saveValues(false); // general configuration @@ -240,6 +288,7 @@ void app::saveValues(bool webSend = true) { mEep->write(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); + updateCrc(); if((mWeb->arg("reboot") == "on")) showReboot(); else { diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index 147693b8..01883643 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -29,6 +29,7 @@ class app : public Main { void showIndex(void); void showSetup(void); void showSave(void); + void showCmdStatistics(void); void saveValues(bool webSend); void dumpBuf(uint8_t buf[], uint8_t len); @@ -45,6 +46,11 @@ class app : public Main { Ticker *mSendTicker; uint32_t mSendCnt; uint8_t mSendBuf[MAX_RF_PAYLOAD_SIZE]; + bool mFlagSend; + uint8_t mSendChannel; + + uint32_t mCmds[6]; + uint32_t mChannelStat[4]; }; #endif /*__APP_H__*/ diff --git a/tools/esp8266/crc.cpp b/tools/esp8266/crc.cpp new file mode 100644 index 00000000..be2d8a57 --- /dev/null +++ b/tools/esp8266/crc.cpp @@ -0,0 +1,43 @@ +#include "crc.h" + +uint8_t crc8(uint8_t buf[], uint8_t len) { + uint8_t crc = CRC8_INIT; + for(uint8_t i = 0; i < len; i++) { + crc ^= buf[i]; + for(uint8_t b = 0; b < 8; b ++) { + crc = (crc << 1) ^ ((crc & 0x80) ? CRC8_POLY : 0x00); + } + } + return crc; +} + +uint16_t crc16(uint8_t buf[], uint8_t len) { + uint16_t crc = 0xffff; + uint8_t shift = 0; + + for(uint8_t i = 0; i < len; i ++) { + crc = crc ^ buf[i]; + for(uint8_t bit = 0; bit < 8; bit ++) { + shift = (crc & 0x0001); + crc = crc >> 1; + if(shift != 0) + crc = crc ^ 0xA001; + } + } + return crc; +} + +uint16_t crc16nrf24(uint8_t buf[], uint16_t lenBits, uint16_t startBit, uint16_t crcIn) { + uint16_t crc = crcIn; + uint8_t idx, val = buf[(startBit >> 3)]; + + for(uint16_t bit = startBit; bit < lenBits; bit ++) { + idx = bit & 0x07; + if(0 == idx) + val = buf[(bit >> 3)]; + crc ^= 0x8000 & (val << (8 + idx)); + crc = (crc & 0x8000) ? ((crc << 1) ^ CRC16_NRF24_POLYNOM) : (crc << 1); + } + + return crc; +} diff --git a/tools/esp8266/crc.h b/tools/esp8266/crc.h new file mode 100644 index 00000000..90baa548 --- /dev/null +++ b/tools/esp8266/crc.h @@ -0,0 +1,16 @@ +#ifndef __CRC_H__ +#define __CRC_H__ + +#include + +#define CRC8_INIT 0x00 +#define CRC8_POLY 0x01 + +#define CRC16_MODBUS_POLYNOM 0xA001 +#define CRC16_NRF24_POLYNOM 0x1021 + +uint8_t crc8(uint8_t buf[], uint8_t len); +uint16_t crc16(uint8_t buf[], uint8_t len); +uint16_t crc16nrf24(uint8_t buf[], uint16_t lenBits, uint16_t startBit = 0, uint16_t crcIn = 0xffff); + +#endif /*__CRC_H__*/ diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 34614e8f..4939da5b 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -15,7 +15,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 1 -#define VERSION_PATCH 7 +#define VERSION_PATCH 9 //------------------------------------- @@ -24,14 +24,18 @@ #define SSID_LEN 32 #define PWD_LEN 64 #define DEVNAME_LEN 32 +#define CRC_LEN 2 #define HOY_ADDR_LEN 6 - -#define ADDR_SSID 0 // start address +#define ADDR_START 0 +#define ADDR_SSID ADDR_START #define ADDR_PWD ADDR_SSID + SSID_LEN #define ADDR_DEVNAME ADDR_PWD + PWD_LEN - #define ADDR_HOY_ADDR ADDR_DEVNAME + DEVNAME_LEN +#define ADDR_NEXT ADDR_HOY_ADDR + HOY_ADDR_LEN + +#define ADDR_SETTINGS_CRC 200 + #endif /*__DEFINES_H__*/ diff --git a/tools/esp8266/ahoy-esp.ino b/tools/esp8266/esp8266.ino similarity index 100% rename from tools/esp8266/ahoy-esp.ino rename to tools/esp8266/esp8266.ino diff --git a/tools/esp8266/hoymiles.h b/tools/esp8266/hoymiles.h index 26724ba7..66b80c3c 100644 --- a/tools/esp8266/hoymiles.h +++ b/tools/esp8266/hoymiles.h @@ -3,6 +3,7 @@ #include #include +#include "crc.h" #define CHANNEL_HOP // switch between channels or use static channel to send @@ -14,11 +15,6 @@ #define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) #define PACKET_BUFFER_SIZE 30 -#define CRC8_INIT 0x00 -#define CRC8_POLY 0x01 - -#define CRC16_MODBUS_POLYNOM 0xA001 -#define CRC16_NRF24_POLYNOM 0x1021 //----------------------------------------------------------------------------- @@ -49,9 +45,8 @@ union uint64Bytes { }; typedef struct { - uint32_t timestamp; - uint8_t packetsLost; - uint8_t packet[MAX_RF_PAYLOAD_SIZE]; + uint8_t sendCh; + uint8_t packet[MAX_RF_PAYLOAD_SIZE]; } NRF24_packet_t; @@ -62,7 +57,6 @@ class hoymiles { serial2RadioId(); calcDtuIdCrc(); - mChannels = new uint8_t(4); mChannels[0] = 23; mChannels[1] = 40; mChannels[2] = 61; @@ -76,7 +70,10 @@ class hoymiles { ~hoymiles() {} uint8_t getDefaultChannel(void) { - return mChannels[1]; + return mChannels[2]; + } + uint8_t getLastChannel(void) { + return mChannels[mChanIdx]; } uint8_t getNxtChannel(void) { @@ -99,12 +96,7 @@ class hoymiles { } uint8_t getTimePacket(uint8_t buf[], uint32_t ts) { - memset(buf, 0, MAX_RF_PAYLOAD_SIZE); - - buf[0] = 0x15; - CP_U32_BigEndian(&buf[1], (mRadioId >> 8)); - CP_U32_BigEndian(&buf[5], (DTU_RADIO_ID >> 8)); - buf[9] = 0x00; + getCmdPacket(buf, 0x15, 0x80, false); buf[10] = 0x0b; // cid buf[11] = 0x00; CP_U32_LittleEndian(&buf[12], ts); @@ -118,12 +110,14 @@ class hoymiles { return 27; } - uint8_t getCmdPacket(uint8_t buf[], uint8_t mid, uint8_t cmd) { - buf[0] = mid; + uint8_t getCmdPacket(uint8_t buf[], uint8_t mid, uint8_t cmd, bool calcCrc = true) { + memset(buf, 0, MAX_RF_PAYLOAD_SIZE); + buf[0] = mid; // message id CP_U32_BigEndian(&buf[1], (mRadioId >> 8)); CP_U32_BigEndian(&buf[5], (DTU_RADIO_ID >> 8)); - buf[9] = cmd; - buf[10] = crc8(buf, 10); + buf[9] = cmd; + if(calcCrc) + buf[10] = crc8(buf, 10); return 11; } @@ -173,52 +167,8 @@ class hoymiles { mDtuIdCrc = crc16nrf24(dtuAddr, BIT_CNT(5)); } - uint8_t crc8(uint8_t buf[], uint8_t len) { - uint8_t crc = CRC8_INIT; - for(uint8_t i = 0; i < len; i++) { - crc ^= buf[i]; - for(uint8_t b = 0; b < 8; b ++) { - crc = (crc << 1) ^ ((crc & 0x80) ? CRC8_POLY : 0x00); - } - } - return crc; - } - - uint16_t crc16(uint8_t buf[], uint8_t len) { - uint16_t crc = 0xffff; - uint8_t lsb; - - for(uint8_t i = 0; i < len; i++) { - crc = crc ^ buf[i]; - for(int8_t b = 7; b >= 0; b--) { - lsb = (crc & 0x0001); - if(lsb == 0x01) - crc--; - crc = crc >> 1; - if(lsb == 0x01) - crc = crc ^ CRC16_MODBUS_POLYNOM; - } - } - - return crc; - } - - uint16_t crc16nrf24(uint8_t buf[], uint16_t lenBits, uint16_t startBit = 0, uint16_t crcIn = 0xffff) { - uint16_t crc = crcIn; - uint8_t idx, val = buf[(startBit >> 3)]; - - for(uint16_t bit = startBit; bit < lenBits; bit ++) { - idx = bit & 0x07; - if(0 == idx) - val = buf[(bit >> 3)]; - crc ^= 0x8000 & (val << (8 + idx)); - crc = (crc & 0x8000) ? ((crc << 1) ^ CRC16_NRF24_POLYNOM) : (crc << 1); - } - - return crc; - } - uint8_t *mChannels; + uint8_t mChannels[4]; uint8_t mChanIdx; uint16_t mDtuIdCrc; uint16_t mLastCrc; diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h index 81ea0775..8c2921e0 100644 --- a/tools/esp8266/html/h/index_html.h +++ b/tools/esp8266/html/h/index_html.h @@ -1 +1 @@ -String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Update

Setup
Reboot

Uptime:

Time:

© 2022

AHOY :: {VERSION}

"; +String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Update

Setup
Reboot

Uptime:

Time:

Statistics:

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/index.html b/tools/esp8266/html/index.html index 479cc483..2cd0b1b6 100644 --- a/tools/esp8266/html/index.html +++ b/tools/esp8266/html/index.html @@ -7,6 +7,7 @@

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h index 8c2921e0..8a4b2c10 100644 --- a/tools/esp8266/html/h/index_html.h +++ b/tools/esp8266/html/h/index_html.h @@ -1 +1 @@ -String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Update

Setup
Reboot

Uptime:

Time:

Statistics:

© 2022

AHOY :: {VERSION}

"; +String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

Statistics:

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index be1e0761..d885938b 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1 +1 @@ -String style_css = "h1 { margin: 0; padding: 20pt; font-size: 22pt; color: #fff; background-color: #006ec0; display: block; text-transform: uppercase; } html, body { font-family: Arial; margin: 0; padding: 0; } p { text-align: justify; font-size: 13pt; } .des { font-size: 14pt; color: #006ec0; padding-bottom: 0px !important; } .fw { width: 60px; display: block; float: left; } .color { width: 50px; height: 50px; border: 1px solid #ccc; } .range { width: 300px; } a:link, a:visited { text-decoration: none; font-size: 13pt; color: #006ec0; } a:hover, a:focus { color: #f00; } #content { padding: 15px 15px 60px 15px; } #footer { position: fixed; bottom: 0px; height: 45px; background-color: #006ec0; width: 100%; } #footer p { color: #fff; padding-left: 20px; padding-right: 20px; font-size: 10pt !important; } #footer a { color: #fff; } #footer a:hover { color: #f00; } div.content { background-color: #fff; padding-bottom: 65px; overflow: hidden; } span.warn { display: inline-block; padding-left: 20px; color: #ff9900; font-style: italic; } input { padding: 10px; font-size: 13pt; } input.button { background-color: #006ec0; color: #fff; border: 0px; float: right; text-transform: uppercase; } input.cb { margin-bottom: 20px; } label { font-size: 14pt; } .left { float: left; } .right { float: right; } .inputWrp { position: relative; } .inputWrp .inputText { height: 35px; width: 90%; margin-bottom: 20px; border: 1px solid #ccc; border-top: none; border-right: none; } .inputWrp .floating_label { position: absolute; pointer-events: none; top: 20px; left: 10px; transition: 0.2s ease all; } .inputWrp input:focus ~ .floating_label, .inputWrp input:not(:focus):valid ~ .floating_label { top: 0px; left: 20px; font-size: 10px; color: blue; opacity: 1; } "; +String style_css = "h1 { margin: 0; padding: 20pt; font-size: 22pt; color: #fff; background-color: #006ec0; display: block; text-transform: uppercase; } html, body { font-family: Arial; margin: 0; padding: 0; } p { text-align: justify; font-size: 13pt; } .des { font-size: 14pt; color: #006ec0; padding-bottom: 0px !important; } .fw { width: 60px; display: block; float: left; } .color { width: 50px; height: 50px; border: 1px solid #ccc; } .range { width: 300px; } a:link, a:visited { text-decoration: none; font-size: 13pt; color: #006ec0; } a:hover, a:focus { color: #f00; } #content { padding: 15px 15px 60px 15px; } #footer { position: fixed; bottom: 0px; height: 45px; background-color: #006ec0; width: 100%; } #footer p { color: #fff; padding-left: 20px; padding-right: 20px; font-size: 10pt !important; } #footer a { color: #fff; } #footer a:hover { color: #f00; } div.content { background-color: #fff; padding-bottom: 65px; overflow: hidden; } span.warn { display: inline-block; padding-left: 20px; color: #ff9900; font-style: italic; } input { padding: 10px; font-size: 13pt; } input.button { background-color: #006ec0; color: #fff; border: 0px; float: right; text-transform: uppercase; } input.cb { margin-bottom: 20px; } label { font-size: 14pt; } .left { float: left; } .right { float: right; } .inputWrp { position: relative; } .inputWrp .inputText { height: 35px; width: 90%; margin-bottom: 20px; border: 1px solid #ccc; border-top: none; border-right: none; } .inputWrp .floating_label { position: absolute; pointer-events: none; top: 20px; left: 10px; transition: 0.2s ease all; } .inputWrp input:focus ~ .floating_label, .inputWrp input:not(:focus):valid ~ .floating_label { top: 0px; left: 20px; font-size: 10px; color: blue; opacity: 1; } div.module { display: block; width: 250px; height: 410px; background-color: #006ec0; display: inline-block; position: relative; margin-right: 20px; margin-bottom: 20px; } div.module .value, div.module .info, div.module .header { color: #fff; display: block; width: 100%; text-align: center; } div.module .unit { font-size: 19px; margin-left: 10px; } div.module .value { margin-top: 20px; font-size: 30px; } div.module .info { margin-top: 3px; font-size: 10px; } div.module .header { background-color: #003c80; padding: 10px 0 10px 0; } "; diff --git a/tools/esp8266/html/hoymiles.html b/tools/esp8266/html/hoymiles.html new file mode 100644 index 00000000..e7985edd --- /dev/null +++ b/tools/esp8266/html/hoymiles.html @@ -0,0 +1,42 @@ + + + + Index - {DEVICE} + + + + + + +

AHOY - {DEVICE}

+
+

Home

+
+

Every 10 seconds the values are updated

+
+ + + diff --git a/tools/esp8266/html/index.html b/tools/esp8266/html/index.html index 2cd0b1b6..b3efc003 100644 --- a/tools/esp8266/html/index.html +++ b/tools/esp8266/html/index.html @@ -30,6 +30,7 @@

AHOY - {DEVICE}

+ Hoymiles
Update

Setup
diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 7d6daaa7..cfa6dad0 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -134,18 +134,55 @@ label { } .inputWrp .floating_label { - position: absolute; - pointer-events: none; - top: 20px; - left: 10px; - transition: 0.2s ease all; + position: absolute; + pointer-events: none; + top: 20px; + left: 10px; + transition: 0.2s ease all; } .inputWrp input:focus ~ .floating_label, .inputWrp input:not(:focus):valid ~ .floating_label { - top: 0px; - left: 20px; - font-size: 10px; - color: blue; - opacity: 1; + top: 0px; + left: 20px; + font-size: 10px; + color: blue; + opacity: 1; +} + +div.module { + display: block; + width: 250px; + height: 410px; + background-color: #006ec0; + display: inline-block; + position: relative; + margin-right: 20px; + margin-bottom: 20px; +} +div.module .value, div.module .info, div.module .header { + color: #fff; + display: block; + width: 100%; + text-align: center; +} + +div.module .unit { + font-size: 19px; + margin-left: 10px; +} + +div.module .value { + margin-top: 20px; + font-size: 30px; +} + +div.module .info { + margin-top: 3px; + font-size: 10px; +} + +div.module .header { + background-color: #003c80; + padding: 10px 0 10px 0; } From a7337218649d045c5d5a3a57394aa9738795e836 Mon Sep 17 00:00:00 2001 From: Martin Grill Date: Wed, 20 Apr 2022 21:18:26 +0200 Subject: [PATCH 06/58] added some diagrams from https://www.mikrocontroller.net/topic/525778 forum. Also a rudimentary Getting-Started guide for ESP8266 --- README.md | 5 +++-- doc/AhoyMiles.fzz | Bin 0 -> 11970 bytes doc/AhoyMiles_bb.png | Bin 0 -> 62930 bytes doc/AhoyMiles_schem.png | Bin 0 -> 32981 bytes doc/getting-started-ESP8266.md | 28 ++++++++++++++++++++++++++++ 5 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 doc/AhoyMiles.fzz create mode 100644 doc/AhoyMiles_bb.png create mode 100644 doc/AhoyMiles_schem.png create mode 100644 doc/getting-started-ESP8266.md diff --git a/README.md b/README.md index 22b7698c..fda91fe4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ Various tools, examples, and documentation for communicating with Hoymiles micro In particular: -* `doc\hoymiles-format-description.txt` is a detailed description of the communications format and the history of this project -* The `tools` folder contains various software tools for RaspberryPi and Arduino +* `doc/hoymiles-format-description.txt` is a detailed description of the communications format and the history of this project +* `doc/getting-started-ESP8266.md` shows the hardware setup for an ESP8266-based system +* The `tools` folder contains various software tools for RaspberryPi, Arduino and ESP8266/ESP32 Contributors are always welcome! diff --git a/doc/AhoyMiles.fzz b/doc/AhoyMiles.fzz new file mode 100644 index 0000000000000000000000000000000000000000..c072d0839a8648ada88bc8de963b829dba29d9ca GIT binary patch literal 11970 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⁣v$u@ypplK>BcD>4R$4vwCT*} zS0;6#JnUo`EKQtEzxoD3>p*$6O|{evn-g}CVTk(~b|;@Vzx5NSs=K?h8y{ePGwV{B zNbR_y>N3TL;8@1Fba)iyR>(;Ha^x&YTeqd?v;GC<(F?{UYYo1hy3pmAUw}IbU zcS`$lorCX>9p<3Gt+#OAp3oyA+hEW>6@m4W2h=AS?9d$9z=@DsyG$ydYCu6 zK~FsOMK#{ZqN~oBGw08F5ztzLGM~WHY}MiKaxXME*aWw40j=Q^P>uw#v-8yhDWcB5 z;(>hBX0c;T-R#-3OWas2mT?{@onqu*A)eXT=&tEN36VnzaB78aa9>~F#a{oU=P7R+ zP=Zk=9KFV(pgj4dd(fC5AZ`+uSjS_Ne^=`ephO`%n}>?x)(Q|}C}ysZnOf$upP|jP zu(__;Znp`xNP}t}_IoN5X>+-)ZNQwB)>+!yD`rlfGUe_=LqyYKfA1P<61+}yxQR8X zH@;j&TjjQS;)7$zV)xt%x?mxd|ia$|T%O@5~~Gwyqne(5S2CQbk3p zt;=y#sij2YMFgmc>3z;?A=-vD!Dqn2O!3yh(q z3m3LToZOCESEF>n-l$o@4bP!SvT-!rG|jmAi5<879x0bkr;*uJXDGrF3_hOO_odX=G#Oo_O+iwb=@|XcmI}viCR8GmjLU zii>LiVB;ezL}nqeAH^aB*PbD%gS*0)$W5kNfH?}D8|YN_3cZ*Mp6tki5^isA$8F)$ zyrno5tBRlh8A1+B)rq!%bBS2V+_>xUxu-kIv zz|`wRK1!0A+QmXD6w)n=#GHo{$zRFrNB#^}F3bS&)_hzB0x)KLY^+Xoy{}O26|J;1 UczEtpv?gY{)_hHdk@JcF1^gn)@c;k- literal 0 HcmV?d00001 diff --git a/doc/getting-started-ESP8266.md b/doc/getting-started-ESP8266.md new file mode 100644 index 00000000..ad373047 --- /dev/null +++ b/doc/getting-started-ESP8266.md @@ -0,0 +1,28 @@ +# Getting Started with an ESP8266 + +``` +Wire Connections + + +-----------+ +-----------+ + | nRF24L01+ |--colour--| ESP8266 | + | | | | + | GND |---black--| GND | + | VCC |----red---| +3.3V | + | CE |---grey---| D4 | + | CSN |--purple--| D8 | + | SCK |---blue---| D5 | + | MOSI |---green--| D7 | + | MISO |---brown--| D6 | + | IRQ |--yellow--| D3 | + +-----------+ +-----------+ +``` + +![plot](./AhoyMiles_bb.png) + +See + +* AhoyMiles_bb.png +* AhoyMiles_schem.png +* AhoyMiles.fzz + +by "isnoAhoy" From 32fdd213e924158d1e2940affbc20e2734cb41b2 Mon Sep 17 00:00:00 2001 From: stefan123t Date: Fri, 22 Apr 2022 07:36:29 +0200 Subject: [PATCH 07/58] Update getting-started-ESP8266.md Add basic INSTALL details --- doc/getting-started-ESP8266.md | 47 +++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/doc/getting-started-ESP8266.md b/doc/getting-started-ESP8266.md index ad373047..d3e064b6 100644 --- a/doc/getting-started-ESP8266.md +++ b/doc/getting-started-ESP8266.md @@ -1,28 +1,45 @@ # Getting Started with an ESP8266 -``` Wire Connections +```ditaa +-----------+ +-----------+ - | nRF24L01+ |--colour--| ESP8266 | + | ESP8266 |--colour--| nRF24L01+ | | | | | - | GND |---black--| GND | - | VCC |----red---| +3.3V | - | CE |---grey---| D4 | - | CSN |--purple--| D8 | - | SCK |---blue---| D5 | - | MOSI |---green--| D7 | - | MISO |---brown--| D6 | - | IRQ |--yellow--| D3 | + | GND |---black--|[GND] | + | +3.3V |----red---| VCC | + | D4 |---grey---| CE | + | D8 |--purple--| CSN | + | D5 |---blue---| SCK | + | D7 |---green--| MOSI | + | D6 |---brown--| MISO | + | D3 |--yellow--| IRQ | +-----------+ +-----------+ ``` ![plot](./AhoyMiles_bb.png) -See +Fritzing diagrams & schematics +* [AhoyMiles_bb.png](./AhoyMiles_bb.png) +* [AhoyMiles_schem.png](./AhoyMiles_schem.png) +* [AhoyMiles.fzz](./AhoyMiles.fzz) + +Libraries to be installed in Arduino IDE: +* RF24 +* TimeLib -* AhoyMiles_bb.png -* AhoyMiles_schem.png -* AhoyMiles.fzz +Verify & Compile +* Connect to WiFi Network `ESP AHOY` +* Use password `esp_8266` +* Connect to Network settings -by "isnoAhoy" +Setup +* WiFi + * Enter SSID `mynetwork` + * Enter Password `mypassword` +* Device Host Name + * Enter Device Name `esp-ahoy` +* General + * Hoymiles Address (e.g. 114173123456) `11:41:73:12:34:56` + * [x] Reboot device after successful save +Save From c00be7bb35f04da8a05fd2738925d952b13e9d60 Mon Sep 17 00:00:00 2001 From: lumapu Date: Fri, 22 Apr 2022 07:53:26 +0200 Subject: [PATCH 08/58] * added mqtt --- tools/esp8266/app.cpp | 160 ++++++++++++++++++++++----- tools/esp8266/app.h | 9 ++ tools/esp8266/defines.h | 34 ++++-- tools/esp8266/html/h/hoymiles_html.h | 2 +- tools/esp8266/html/h/index_html.h | 2 +- tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/hoymiles.html | 2 +- tools/esp8266/html/index.html | 2 + tools/esp8266/html/setup.html | 38 ++++++- tools/esp8266/mqtt.h | 90 +++++++++++++++ 10 files changed, 301 insertions(+), 40 deletions(-) create mode 100644 tools/esp8266/mqtt.h diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index b080df25..4db8eeee 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -7,13 +7,15 @@ extern String setup_html; //----------------------------------------------------------------------------- app::app() : Main() { mHoymiles = new hoymiles(); - mDecoder = new hm1200Decode(); + mDecoder = new hm1200Decode(); + mBufCtrl = new CircularBuffer(mBuffer, PACKET_BUFFER_SIZE); - mBufCtrl = new CircularBuffer(mBuffer, PACKET_BUFFER_SIZE); - - mSendCnt = 0; + mSendCnt = 0; mSendTicker = new Ticker(); - mFlagSend = false; + mFlagSend = false; + + mMqttTicker = NULL; + mMqttEvt = false; memset(mCmds, 0, sizeof(uint32_t)); memset(mChannelStat, 0, sizeof(uint32_t)); @@ -30,24 +32,56 @@ app::~app(void) { void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { Main::setup(ssid, pwd, timeout); - mWeb->on("/", std::bind(&app::showIndex, this)); - mWeb->on("/setup", std::bind(&app::showSetup, this)); - mWeb->on("/save", std::bind(&app::showSave, this)); - mWeb->on("/cmdstat", std::bind(&app::showCmdStatistics, this)); - mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); - mWeb->on("/livedata", std::bind(&app::showLiveData, this)); - - if(mSettingsValid) - mEep->read(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); - else + mWeb->on("/", std::bind(&app::showIndex, this)); + mWeb->on("/setup", std::bind(&app::showSetup, this)); + mWeb->on("/save", std::bind(&app::showSave, this)); + mWeb->on("/cmdstat", std::bind(&app::showCmdStatistics, this)); + mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); + mWeb->on("/livedata", std::bind(&app::showLiveData, this)); + mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); + + if(mSettingsValid) { + uint16_t interval; + + // hoymiles + mEep->read(ADDR_INV0_ADDR, mHoymiles->mAddrBytes, INV_ADDR_LEN); + mEep->read(ADDR_INV_INTERVAL, &interval); + + if(interval < 1000) + interval = 1000; + mSendTicker->attach_ms(interval, std::bind(&app::sendTicker, this)); + + + // mqtt + uint8_t mqttAddr[MQTT_ADDR_LEN]; + char mqttUser[MQTT_USER_LEN]; + char mqttPwd[MQTT_PWD_LEN]; + char mqttTopic[MQTT_TOPIC_LEN]; + mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); + mEep->read(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN); + mEep->read(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); + mEep->read(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); + mEep->read(ADDR_MQTT_INTERVAL, &interval); + + char addr[16] = {0}; + sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); + + if(interval < 1000) + interval = 1000; + mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd); + mMqttTicker = new Ticker(); + mMqttTicker->attach_ms(interval, std::bind(&app::mqttTicker, this)); + + mMqtt.sendMsg("version", mVersion); + } + else { memset(mHoymiles->mAddrBytes, 0, 6); + } mHoymiles->serial2RadioId(); initRadio(); - if(mSettingsValid) - mSendTicker->attach_ms(1000, std::bind(&app::sendTicker, this)); - else + if(!mSettingsValid) Serial.println("Warn: your settings are not valid! check [IP]/setup"); } @@ -65,8 +99,8 @@ void app::loop(void) { if(mHoymiles->checkCrc(p->packet, &len, &rptCnt)) { // process buffer only on first occurrence if((0 != len) && (0 == rptCnt)) { - Serial.println("CMD " + String(p->packet[11], HEX)); - mHoymiles->dumpBuf("Payload ", p->packet, len); + //Serial.println("CMD " + String(p->packet[11], HEX)); + //mHoymiles->dumpBuf("Payload ", p->packet, len); mDecoder->convert(&p->packet[11], len); @@ -109,6 +143,14 @@ void app::loop(void) { mSendCnt++; } + + + // mqtt + mMqtt.loop(); + if(mMqttEvt) { + mMqttEvt = false; + mMqtt.isConnected(true); + } } @@ -220,6 +262,12 @@ void app::sendTicker(void) { } +//----------------------------------------------------------------------------- +void app::mqttTicker(void) { + mMqttEvt = true; +} + + //----------------------------------------------------------------------------- void app::showIndex(void) { String html = index_html; @@ -233,6 +281,8 @@ void app::showIndex(void) { void app::showSetup(void) { // overrides same method in main.cpp + uint16_t interval; + String html = setup_html; html.replace("{SSID}", mStationSsid); // PWD will be left at the default value (for protection) @@ -240,11 +290,37 @@ void app::showSetup(void) { char addr[20] = {0}; sprintf(addr, "%02X:%02X:%02X:%02X:%02X:%02X", mHoymiles->mAddrBytes[0], mHoymiles->mAddrBytes[1], mHoymiles->mAddrBytes[2], mHoymiles->mAddrBytes[3], mHoymiles->mAddrBytes[4], mHoymiles->mAddrBytes[5]); - html.replace("{HOY_ADDR}", String(addr)); + html.replace("{INV0_ADDR}", String(addr)); html.replace("{DEVICE}", String(mDeviceName)); html.replace("{VERSION}", String(mVersion)); + if(mSettingsValid) { + mEep->read(ADDR_INV_INTERVAL, &interval); + html.replace("{INV_INTERVAL}", String(interval)); + + uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); + mEep->read(ADDR_MQTT_INTERVAL, &interval); + + char addr[16] = {0}; + sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); + html.replace("{MQTT_ADDR}", String(addr)); + html.replace("{MQTT_USER}", String(mMqtt.getUser())); + html.replace("{MQTT_PWD}", String(mMqtt.getPwd())); + html.replace("{MQTT_TOPIC}", String(mMqtt.getTopic())); + html.replace("{MQTT_INTERVAL}", String(interval)); + } + else { + html.replace("{INV_INTERVAL}", "1000"); + + html.replace("{MQTT_ADDR}", ""); + html.replace("{MQTT_USER}", ""); + html.replace("{MQTT_PWD}", ""); + html.replace("{MQTT_TOPIC}", "/inverter"); + html.replace("{MQTT_INTERVAL}", "10000"); + } + mWeb->send(200, "text/html", html); } @@ -311,6 +387,15 @@ void app::showLiveData(void) { } +//----------------------------------------------------------------------------- +void app::showMqtt(void) { + String txt = "connected"; + if(mMqtt.isConnected()) + txt = "not " + txt; + mWeb->send(200, "text/plain", txt); +} + + //----------------------------------------------------------------------------- void app::saveValues(bool webSend = true) { Main::saveValues(false); // general configuration @@ -319,17 +404,42 @@ void app::saveValues(bool webSend = true) { char *p; char addr[20] = {0}; uint8_t i = 0; + uint16_t interval; + // hoymiles memset(mHoymiles->mAddrBytes, 0, 6); - mWeb->arg("hoy_addr").toCharArray(addr, 20); - + mWeb->arg("inv0Addr").toCharArray(addr, 20); p = strtok(addr, ":"); while(NULL != p) { mHoymiles->mAddrBytes[i++] = strtol(p, NULL, 16); p = strtok(NULL, ":"); } - - mEep->write(ADDR_HOY_ADDR, mHoymiles->mAddrBytes, HOY_ADDR_LEN); + interval = mWeb->arg("invInterval").toInt(); + mEep->write(ADDR_INV0_ADDR, mHoymiles->mAddrBytes, INV_ADDR_LEN); + mEep->write(ADDR_INV_INTERVAL, interval); + + + // mqtt + uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + char mqttUser[MQTT_USER_LEN]; + char mqttPwd[MQTT_PWD_LEN]; + char mqttTopic[MQTT_TOPIC_LEN]; + mWeb->arg("mqttAddr").toCharArray(addr, 20); + i = 0; + p = strtok(addr, "."); + while(NULL != p) { + mqttAddr[i++] = atoi(p); + p = strtok(NULL, "."); + } + mWeb->arg("mqttUser").toCharArray(mqttUser, MQTT_USER_LEN); + mWeb->arg("mqttPwd").toCharArray(mqttPwd, MQTT_PWD_LEN); + mWeb->arg("mqttTopic").toCharArray(mqttTopic, MQTT_TOPIC_LEN); + interval = mWeb->arg("mqttInterval").toInt(); + mEep->write(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); + mEep->write(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN); + mEep->write(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); + mEep->write(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); + mEep->write(ADDR_MQTT_INTERVAL, interval); updateCrc(); if((mWeb->arg("reboot") == "on")) diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index 6c4d3157..627cdb1e 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -11,6 +11,8 @@ #include "hoymiles.h" #include "hm1200Decode.h" +#include "mqtt.h" + class app : public Main { public: @@ -26,6 +28,7 @@ class app : public Main { void sendPacket(uint8_t data[], uint8_t length); void sendTicker(void); + void mqttTicker(void); void showIndex(void); void showSetup(void); @@ -33,6 +36,7 @@ class app : public Main { void showCmdStatistics(void); void showHoymiles(void); void showLiveData(void); + void showMqtt(void); void saveValues(bool webSend); void dumpBuf(uint8_t buf[], uint8_t len); @@ -55,6 +59,11 @@ class app : public Main { uint32_t mCmds[6]; uint32_t mChannelStat[4]; + + // mqtt + mqtt mMqtt; + Ticker *mMqttTicker; + bool mMqttEvt; }; #endif /*__APP_H__*/ diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 9dda73d5..41b729ab 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -15,27 +15,47 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 1 -#define VERSION_PATCH 10 +#define VERSION_PATCH 11 //------------------------------------- // EEPROM //------------------------------------- #define SSID_LEN 32 -#define PWD_LEN 64 -#define DEVNAME_LEN 32 +#define PWD_LEN 32 +#define DEVNAME_LEN 16 #define CRC_LEN 2 -#define HOY_ADDR_LEN 6 +#define INV_ADDR_LEN 6 +#define INV_INTERVAL_LEN 2 // uint16_t + + +#define MQTT_ADDR_LEN 4 // IP +#define MQTT_USER_LEN 16 +#define MQTT_PWD_LEN 32 +#define MQTT_TOPIC_LEN 32 +#define MQTT_INTERVAL_LEN 2 // uint16_t + #define ADDR_START 0 #define ADDR_SSID ADDR_START #define ADDR_PWD ADDR_SSID + SSID_LEN #define ADDR_DEVNAME ADDR_PWD + PWD_LEN -#define ADDR_HOY_ADDR ADDR_DEVNAME + DEVNAME_LEN +#define ADDR_INV0_ADDR ADDR_DEVNAME + DEVNAME_LEN +#define ADDR_INV_INTERVAL ADDR_INV0_ADDR + INV_ADDR_LEN + +#define ADDR_MQTT_ADDR ADDR_INV_INTERVAL + INV_INTERVAL_LEN +#define ADDR_MQTT_USER ADDR_MQTT_ADDR + MQTT_ADDR_LEN +#define ADDR_MQTT_PWD ADDR_MQTT_USER + MQTT_USER_LEN +#define ADDR_MQTT_TOPIC ADDR_MQTT_PWD + MQTT_PWD_LEN +#define ADDR_MQTT_INTERVAL ADDR_MQTT_TOPIC + MQTT_TOPIC_LEN + +#define ADDR_NEXT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN -#define ADDR_NEXT ADDR_HOY_ADDR + HOY_ADDR_LEN +#define ADDR_SETTINGS_CRC 400 -#define ADDR_SETTINGS_CRC 200 +#if(ADDR_SETTINGS_CRC <= ADDR_NEXT) +#error address overlap! +#endif #endif /*__DEFINES_H__*/ diff --git a/tools/esp8266/html/h/hoymiles_html.h b/tools/esp8266/html/h/hoymiles_html.h index 8a9f1888..4bc89397 100644 --- a/tools/esp8266/html/h/hoymiles_html.h +++ b/tools/esp8266/html/h/hoymiles_html.h @@ -1 +1 @@ -String hoymiles_html = "Index - {DEVICE}

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; +String hoymiles_html = "Index - {DEVICE}

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h index 8a4b2c10..8b638b0c 100644 --- a/tools/esp8266/html/h/index_html.h +++ b/tools/esp8266/html/h/index_html.h @@ -1 +1 @@ -String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

Statistics:

© 2022

AHOY :: {VERSION}

"; +String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

MQTT:

Statistics:

© 2022

AHOY :: {VERSION}

"; diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 24440e88..f34e8a0f 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1 +1 @@ -String setup_html = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

SSID
PASSWORD

Device Host Name

DEVICE NAME

General

HOYMILES ADDRESS (eg. 11:22:33:44:55:66)

Home

Update Firmware

AHOY - {VERSION}

"; +String setup_html = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

SSID
PASSWORD

Device Host Name

DEVICE NAME

Inverter

INVERTER 0 ADDRESS (eg. 11:22:33:44:55:66)
INTERVAL (ms)

MQTT

BROKER (Server IP)
USERNAME (optional)
PASSWORD (optional)
TOPIC
INTERVAL (ms)

Home

Update Firmware

AHOY - {VERSION}

"; diff --git a/tools/esp8266/html/hoymiles.html b/tools/esp8266/html/hoymiles.html index e7985edd..4ac61f25 100644 --- a/tools/esp8266/html/hoymiles.html +++ b/tools/esp8266/html/hoymiles.html @@ -5,7 +5,7 @@

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; +#ifndef __HOYMILES_H__ +#define __HOYMILES_H__ +const char hoymiles_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; +#endif /*__HOYMILES_H__*/ diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h index 8b638b0c..53eeda89 100644 --- a/tools/esp8266/html/h/index_html.h +++ b/tools/esp8266/html/h/index_html.h @@ -1 +1,4 @@ -String index_html = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

MQTT:

Statistics:

© 2022

AHOY :: {VERSION}

"; +#ifndef __INDEX_H__ +#define __INDEX_H__ +const char index_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

MQTT:

Statistics:

© 2022

AHOY :: {VERSION}

"; +#endif /*__INDEX_H__*/ diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index b905b56b..f4e99a1a 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1 +1,4 @@ -String setup_html = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

Inverter

{INVERTERS}

General

Pinout

{PINOUT}

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +#ifndef __SETUP_H__ +#define __SETUP_H__ +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +#endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index 6cc7fc67..cf8ac694 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1 +1,4 @@ -String style_css = "h1 { margin: 0; padding: 20pt; font-size: 22pt; color: #fff; background-color: #006ec0; display: block; text-transform: uppercase; } html, body { font-family: Arial; margin: 0; padding: 0; } p { text-align: justify; font-size: 13pt; } .des { margin-top: 35px; font-size: 14pt; color: #006ec0; } .subdes { font-size: 13pt; color: #006ec0; margin-left: 7px; } .fw { width: 60px; display: block; float: left; } .color { width: 50px; height: 50px; border: 1px solid #ccc; } .range { width: 300px; } a:link, a:visited { text-decoration: none; font-size: 13pt; color: #006ec0; } a:hover, a:focus { color: #f00; } #content { padding: 15px 15px 60px 15px; } #footer { position: fixed; bottom: 0px; height: 45px; background-color: #006ec0; width: 100%; } #footer p { color: #fff; padding-left: 20px; padding-right: 20px; font-size: 10pt !important; } #footer a { color: #fff; } div.content { background-color: #fff; padding-bottom: 65px; overflow: hidden; } input, select { padding: 7px; font-size: 13pt; } input.text, select { width: 70%; box-sizing: border-box; margin-bottom: 10px; border: 1px solid #ccc; } input.btn { background-color: #006ec0; color: #fff; border: 0px; float: right; text-transform: uppercase; } input.cb { margin-bottom: 20px; } label { width: 20%; display: inline-block; font-size: 12pt; padding-right: 10px; margin-left: 10px; } .left { float: left; } .right { float: right; } div.ch { width: 250px; height: 410px; background-color: #006ec0; display: inline-block; margin-right: 20px; margin-bottom: 20px; } div.ch .value, div.ch .info, div.ch .head { color: #fff; display: block; width: 100%; text-align: center; } div.ch .unit { font-size: 19px; margin-left: 10px; } div.ch .value { margin-top: 20px; font-size: 30px; } div.ch .info { margin-top: 3px; font-size: 10px; } div.ch .head { background-color: #003c80; padding: 10px 0 10px 0; } "; +#ifndef __STYLE_H__ +#define __STYLE_H__ +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; +#endif /*__STYLE_H__*/ diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 2555188d..61b2075c 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -160,7 +160,7 @@ bool Main::setupStation(uint32_t timeout) { //----------------------------------------------------------------------------- void Main::showSetup(void) { - String html = setup_html; + String html = FPSTR(setup_html); html.replace("{SSID}", mStationSsid); // PWD will be left at the default value (for protection) // -> the PWD will only be changed if it does not match the default "{PWD}" @@ -173,7 +173,7 @@ void Main::showSetup(void) { //----------------------------------------------------------------------------- void Main::showCss(void) { - mWeb->send(200, "text/css", style_css); + mWeb->send(200, "text/css", FPSTR(style_css)); } diff --git a/tools/esp8266/tools/fileConv.exe b/tools/esp8266/tools/fileConv.exe deleted file mode 100644 index 6cd3e212ea1e5d0ccd0a9455a36b66d4d0fbab7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67584 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 frV+JK Date: Mon, 25 Apr 2022 19:48:39 +0200 Subject: [PATCH 17/58] * added HM400 defines, not tested yet * info from Marcus: https://www.mikrocontroller.net/topic/525778?goto=7046088#7046072 --- tools/esp8266/hmInverters.h | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 45c79167..60169790 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -20,9 +20,9 @@ const char* const fields[] = {"U_DC", "I_DC", "P_DC", "YieldDay", "YieldWeek", " enum {CH0 = 0, CH1, CH2, CH3, CH4}; enum {CMD01 = 0x01, CMD02, CMD03, CMD83 = 0x83, CMD84}; -enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200}; -const char* const invTypes[] = {"HM600", "HM1200"}; -#define NUM_INVERTER_TYPES 2 +enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400}; +const char* const invTypes[] = {"HM600", "HM1200", "HM400"}; +#define NUM_INVERTER_TYPES 3 typedef struct { uint8_t fieldId; // field id @@ -56,6 +56,23 @@ typedef struct { * (complete payload in buffer) * */ +//------------------------------------- +// HM400 HM350?, HM300? +//------------------------------------- +const byteAssign_t hm400assignment[] = { + { FLD_UDC, UNIT_V, CH1, CMD01, 14, 2, 10 }, + { FLD_IDC, UNIT_A, CH1, CMD01, 16, 2, 100 }, + { FLD_PDC, UNIT_W, CH1, CMD01, 18, 2, 10 }, + { FLD_YT, UNIT_KWH, CH1, CMD01, 20, 4, 1000 }, + { FLD_YD, UNIT_WH, CH1, CMD01, 24, 2, 1000 }, + { FLD_UAC, UNIT_V, CH0, CMD01, 26, 2, 10 }, + { FLD_F, UNIT_HZ, CH0, CMD82, 12, 2, 100 }, + { FLD_PAC, UNIT_W, CH0, CMD82, 14, 2, 10 }, + { FLD_IAC, UNIT_A, CH0, CMD82, 18, 2, 100 }, + { FLD_T, UNIT_C, CH0, CMD82, 22, 2, 10 } +}; + + //------------------------------------- // HM600, HM700 //------------------------------------- From f9878b8d8b5f2f2a951d7e8af0d8d42d660f1f38 Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 19:59:59 +0200 Subject: [PATCH 18/58] * fix missing declarations for HM400 --- tools/esp8266/hmSystem.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h index 0f79ca9f..0d40803f 100644 --- a/tools/esp8266/hmSystem.h +++ b/tools/esp8266/hmSystem.h @@ -145,6 +145,10 @@ class HmSystem { p->listLen = (uint8_t)(HM1200_LIST_LEN); p->assign = (byteAssign_t*)hm1200assignment; } + else if(INV_TYPE_HM400 == p->type) { + p->listLen = (uint8_t)(HM400_LIST_LEN); + p->assign = (byteAssign_t*)hm400assignment; + } else { p->listLen = 0; p->assign = NULL; From 4fea27dbf614a99ccb5112f6632f5252eb61fb03 Mon Sep 17 00:00:00 2001 From: Marcus Date: Mon, 25 Apr 2022 20:03:43 +0200 Subject: [PATCH 19/58] all known data values for HM-400 inverter one day of data log using 'hubis' code --- doc/HM-400 data.xlsx | Bin 0 -> 599206 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 doc/HM-400 data.xlsx diff --git a/doc/HM-400 data.xlsx b/doc/HM-400 data.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..d6295022436ab0c0ba1f8e9a3fc9b91954692dbc GIT binary patch literal 599206 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 O|LvZ`p?&+-VE!-BAoe%_ literal 0 HcmV?d00001 From 128b16b105b58771b55d214d25fff1286fd0eec8 Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 20:04:12 +0200 Subject: [PATCH 20/58] fix --- tools/esp8266/hmInverters.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 60169790..8de60d86 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -71,6 +71,7 @@ const byteAssign_t hm400assignment[] = { { FLD_IAC, UNIT_A, CH0, CMD82, 18, 2, 100 }, { FLD_T, UNIT_C, CH0, CMD82, 22, 2, 10 } }; +#define HM400_LIST_LEN (sizeof(hm400assignment) / sizeof(byteAssign_t)) //------------------------------------- From d5c1ac005bcd0cb0b03c5d407974507c64d312ca Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 20:40:59 +0200 Subject: [PATCH 21/58] * add cmd82 to list --- tools/esp8266/hmInverters.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 8de60d86..1da3f62c 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -18,7 +18,7 @@ const char* const fields[] = {"U_DC", "I_DC", "P_DC", "YieldDay", "YieldWeek", " // CH0 is default channel (freq, ac, temp) enum {CH0 = 0, CH1, CH2, CH3, CH4}; -enum {CMD01 = 0x01, CMD02, CMD03, CMD83 = 0x83, CMD84}; +enum {CMD01 = 0x01, CMD02, CMD03, CMD82 = 0x82, CMD83, CMD84}; enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400}; const char* const invTypes[] = {"HM600", "HM1200", "HM400"}; From a00ab4e48d450d3198ad8c2010e313a73a55b3d6 Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 21:40:35 +0200 Subject: [PATCH 22/58] * fix eep endless loop --- tools/esp8266/defines.h | 2 +- tools/esp8266/eep.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 765ba2b2..b91fe2d2 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 4 +#define VERSION_PATCH 5 //------------------------------------- diff --git a/tools/esp8266/eep.h b/tools/esp8266/eep.h index da1450b0..a49cae67 100644 --- a/tools/esp8266/eep.h +++ b/tools/esp8266/eep.h @@ -37,7 +37,7 @@ class eep { } void read(uint32_t addr, uint8_t data[], uint16_t length) { - for(uint8_t i = 0; i < length; i ++) { + for(uint16_t i = 0; i < length; i ++) { *(data++) = EEPROM.read(addr++); } } @@ -78,7 +78,7 @@ class eep { } void write(uint32_t addr, uint8_t data[], uint16_t length) { - for(uint8_t i = 0; i < length; i ++) { + for(uint16_t i = 0; i < length; i ++) { EEPROM.write(addr++, data[i]); } EEPROM.commit(); From df9f050313762d4cb2fa164d407eb827bc2f7e4a Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 22:44:12 +0200 Subject: [PATCH 23/58] * added erase application settings * HM1500 as selectable in setup * Added new commands to statistic (0x82, 0x83) --- tools/esp8266/app.cpp | 55 ++++++++++++++++++------------- tools/esp8266/app.h | 11 +++++-- tools/esp8266/defines.h | 2 +- tools/esp8266/hmInverters.h | 4 +-- tools/esp8266/hmRadio.h | 1 - tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/setup.html | 3 ++ tools/esp8266/html/style.css | 10 ++++++ tools/esp8266/main.cpp | 5 ++- tools/esp8266/main.h | 11 +++++++ 11 files changed, 71 insertions(+), 35 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 0c6c499e..4c81e95d 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -13,8 +13,8 @@ app::app() : Main() { mMqttTicker = NULL; mMqttEvt = false; - memset(mCmds, 0, sizeof(uint32_t)); - memset(mChannelStat, 0, sizeof(uint32_t)); + memset(mCmds, 0, sizeof(uint32_t)*DBG_CMD_LIST_LEN); + //memset(mChannelStat, 0, sizeof(uint32_t) * 4); mSys = new HmSystemType(); } @@ -30,13 +30,14 @@ app::~app(void) { void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { Main::setup(ssid, pwd, timeout); - mWeb->on("/", std::bind(&app::showIndex, this)); - mWeb->on("/setup", std::bind(&app::showSetup, this)); - mWeb->on("/save", std::bind(&app::showSave, this)); - mWeb->on("/cmdstat", std::bind(&app::showCmdStatistics, this)); - mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); - mWeb->on("/livedata", std::bind(&app::showLiveData, this)); - mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); + mWeb->on("/", std::bind(&app::showIndex, this)); + mWeb->on("/setup", std::bind(&app::showSetup, this)); + mWeb->on("/save", std::bind(&app::showSave, this)); + mWeb->on("/erase", std::bind(&app::showErase, this)); + mWeb->on("/cmdstat", std::bind(&app::showStatistics, this)); + mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); + mWeb->on("/livedata", std::bind(&app::showLiveData, this)); + mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); if(mSettingsValid) { uint16_t interval; @@ -125,13 +126,15 @@ void app::loop(void) { else if(*cmd == 0x02) mCmds[1]++; else if(*cmd == 0x03) mCmds[2]++; else if(*cmd == 0x81) mCmds[3]++; - else if(*cmd == 0x84) mCmds[4]++; - else mCmds[5]++; + else if(*cmd == 0x82) mCmds[4]++; + else if(*cmd == 0x83) mCmds[5]++; + else if(*cmd == 0x84) mCmds[6]++; + else mCmds[7]++; - if(p->sendCh == 23) mChannelStat[0]++; + /*if(p->sendCh == 23) mChannelStat[0]++; else if(p->sendCh == 40) mChannelStat[1]++; else if(p->sendCh == 61) mChannelStat[2]++; - else mChannelStat[3]++; + else mChannelStat[3]++;*/ } } mSys->BufCtrl.popBack(); @@ -319,20 +322,26 @@ void app::showSave(void) { //----------------------------------------------------------------------------- -void app::showCmdStatistics(void) { +void app::showErase() { + eraseSettings(); + showReboot(); +} + + +//----------------------------------------------------------------------------- +void app::showStatistics(void) { String content = "CMDs:\n"; - content += String("0x01: ") + String(mCmds[0]) + String("\n"); - content += String("0x02: ") + String(mCmds[1]) + String("\n"); - content += String("0x03: ") + String(mCmds[2]) + String("\n"); - content += String("0x81: ") + String(mCmds[3]) + String("\n"); - content += String("0x84: ") + String(mCmds[4]) + String("\n"); - content += String("other: ") + String(mCmds[5]) + String("\n"); - - content += "\nCHANNELs:\n"; + for(uint8_t i = 0; i < DBG_CMD_LIST_LEN; i ++) { + content += String("0x") + String(dbgCmds[i], HEX) + String(": ") + String(mCmds[i]) + String("\n"); + } + content += String("other: ") + String(mCmds[DBG_CMD_LIST_LEN]) + String("\n\n"); + + /*content += "\nCHANNELs:\n"; content += String("23: ") + String(mChannelStat[0]) + String("\n"); content += String("40: ") + String(mChannelStat[1]) + String("\n"); content += String("61: ") + String(mChannelStat[2]) + String("\n"); - content += String("75: ") + String(mChannelStat[3]) + String("\n"); + content += String("75: ") + String(mChannelStat[3]) + String("\n");*/ + mWeb->send(200, "text/plain", content); } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index c4cabcdd..e666bf20 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -22,6 +22,9 @@ const char* const wemosPins[] = {"D3 (GPIO0)", "TX (GPIO1)", "D4 (GPIO2)", "RX ( const char* const pinNames[] = {"CS", "CE", "IRQ"}; const char* const pinArgNames[] = {"pinCs", "pinCe", "pinIrq"}; +const uint8_t dbgCmds[] = {0x01, 0x02, 0x03, 0x81, 0x82, 0x83, 0x84}; +#define DBG_CMD_LIST_LEN 7 + class app : public Main { public: app(); @@ -42,7 +45,8 @@ class app : public Main { void showIndex(void); void showSetup(void); void showSave(void); - void showCmdStatistics(void); + void showErase(void); + void showStatistics(void); void showHoymiles(void); void showLiveData(void); void showMqtt(void); @@ -65,6 +69,7 @@ class app : public Main { return ret; } + uint8_t mState; bool mKeyPressed; @@ -73,8 +78,8 @@ class app : public Main { Ticker *mSendTicker; bool mFlagSend; - uint32_t mCmds[6]; - uint32_t mChannelStat[4]; + uint32_t mCmds[DBG_CMD_LIST_LEN+1]; + //uint32_t mChannelStat[4]; uint32_t mRecCnt; // mqtt diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index b91fe2d2..c94668cc 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 5 +#define VERSION_PATCH 6 //------------------------------------- diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 1da3f62c..df9cc147 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -21,7 +21,7 @@ enum {CH0 = 0, CH1, CH2, CH3, CH4}; enum {CMD01 = 0x01, CMD02, CMD03, CMD82 = 0x82, CMD83, CMD84}; enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400}; -const char* const invTypes[] = {"HM600", "HM1200", "HM400"}; +const char* const invTypes[] = {"HM600", "HM1200 / HM1500", "HM400"}; #define NUM_INVERTER_TYPES 3 typedef struct { @@ -97,7 +97,7 @@ const byteAssign_t hm600assignment[] = { //------------------------------------- -// HM1200, HM1500? +// HM1200, HM1500 //------------------------------------- const byteAssign_t hm1200assignment[] = { { FLD_UDC, UNIT_V, CH1, CMD01, 3, 2, 10 }, diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 70e710e0..ea0120fc 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -79,7 +79,6 @@ class HmRadio { // enable only receiving interrupts mNrf24.maskIRQ(true, true, false); - // Use lo PA level, as a higher level will disturb CH340 serial usb adapter mNrf24.setPALevel(RF24_PA_MAX); mNrf24.startListening(); diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index f4e99a1a..0fb05a10 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Home

Update Firmware

AHOY - {VERSION}

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index cf8ac694..dc3639c4 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index 0ab66fff..b78608f3 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -22,6 +22,9 @@ + + ERASE SETTINGS (not WiFi) +

Inverter

{INVERTERS}

General

diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 5eb5f7dc..21d5340f 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -57,6 +57,15 @@ a:hover, a:focus { color: #f00; } +a.erase { + background-color: #006ec0; + color: #fff; + padding: 7px; + display: inline-block; + margin-top: 30px; + float: right; +} + #content { padding: 15px 15px 60px 15px; } @@ -103,6 +112,7 @@ input.btn { color: #fff; border: 0px; float: right; + margin: 10px 0 30px; text-transform: uppercase; } diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 61b2075c..746c11e7 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -90,9 +90,8 @@ bool Main::getConfig(void) { memset(mStationPwd, 0, PWD_LEN); memset(mDeviceName, 0, DEVNAME_LEN); - // erase eeprom - uint8_t buf[ADDR_NEXT-ADDR_START_SETTINGS] = {0}; - mEep->write(ADDR_START_SETTINGS, buf, (ADDR_NEXT-ADDR_START_SETTINGS)); + // erase application settings except wifi settings + eraseSettings(); } return mApActive; diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h index 9014b6fb..6e096789 100644 --- a/tools/esp8266/main.h +++ b/tools/esp8266/main.h @@ -53,6 +53,17 @@ class Main { return (crcCheck == crcRd); } + void eraseSettings(void) { + uint8_t buf[64] = {0}; + uint16_t addr = ADDR_START_SETTINGS, end; + do { + end = addr += 64; + if(end > (ADDR_SETTINGS_CRC + 2)) + end = (ADDR_SETTINGS_CRC + 2 - addr); + mEep->write(ADDR_START_SETTINGS, buf, (ADDR_NEXT-ADDR_START_SETTINGS)); + } while(addr < ADDR_START_SETTINGS); + } + char mStationSsid[SSID_LEN]; char mStationPwd[PWD_LEN]; bool mWifiSettingsValid; From 04d31200cbcf1db02f30ac7fcbd4eb16cfdeda5a Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 23:28:59 +0200 Subject: [PATCH 24/58] * NRF24 amlifierer power level can be configured in web setup * fixed MQTT status (was inverted) * fixed interval uint from seconds to ms --- tools/esp8266/app.cpp | 22 ++++++++++++++++++++-- tools/esp8266/defines.h | 8 ++++++-- tools/esp8266/hmRadio.h | 12 ++++++++++-- tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/setup.html | 6 +++++- 5 files changed, 42 insertions(+), 8 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 4c81e95d..6d4056c2 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -68,6 +68,9 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_PINOUT+2, &mSys->Radio.pinIrq); + // nrf24 amplifier power + mEep->read(ADDR_RF24_AMP_PWR, &mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN]; char mqttUser[MQTT_USER_LEN]; @@ -93,7 +96,7 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mSys->setup(); - if(!mSettingsValid) + if(!mWifiSettingsValid) Serial.println("Warn: your settings are not valid! check [IP]/setup"); } @@ -285,6 +288,17 @@ void app::showSetup(void) { html.replace("{PINOUT}", String(pinout)); + // nrf24l01+ + String rf24; + for(uint8_t i = 0; i <= 3; i++) { + rf24 += ""; + } + html.replace("{RF24}", String(rf24)); + + if(mSettingsValid) { mEep->read(ADDR_INV_INTERVAL, &interval); html.replace("{INV_INTERVAL}", String(interval)); @@ -409,7 +423,7 @@ void app::showLiveData(void) { //----------------------------------------------------------------------------- void app::showMqtt(void) { String txt = "connected"; - if(mMqtt.isConnected()) + if(!mMqtt.isConnected()) txt = "not " + txt; mWeb->send(200, "text/plain", txt); } @@ -456,6 +470,10 @@ void app::saveValues(bool webSend = true) { } + // nrf24 amplifier power + mSys->Radio.AmplifierPower = mWeb->arg(String(pinArgNames[i])).toInt() & 0x03; + mEep->write(ADDR_RF24_AMP_PWR, mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; char mqttUser[MQTT_USER_LEN]; diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index c94668cc..74bb4f90 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 6 +#define VERSION_PATCH 7 //------------------------------------- @@ -50,6 +50,8 @@ typedef struct { #define PINOUT_LEN 3 // 3 pins: CS, CE, IRQ +#define RF24_AMP_PWR_LEN 1 + #define MQTT_ADDR_LEN 4 // IP #define MQTT_USER_LEN 16 #define MQTT_PWD_LEN 32 @@ -66,7 +68,9 @@ typedef struct { #define ADDR_PINOUT ADDR_START_SETTINGS -#define ADDR_INV_ADDR ADDR_PINOUT + PINOUT_LEN +#define ADDR_RF24_AMP_PWR ADDR_PINOUT + PINOUT_LEN + +#define ADDR_INV_ADDR ADDR_RF24_AMP_PWR + RF24_AMP_PWR_LEN #define ADDR_INV_NAME ADDR_INV_ADDR + INV_ADDR_LEN #define ADDR_INV_TYPE ADDR_INV_NAME + INV_NAME_LEN #define ADDR_INV_INTERVAL ADDR_INV_TYPE + INV_TYPE_LEN diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index ea0120fc..02989ec9 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -13,6 +13,10 @@ #define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) +const char* const rf24AmpPower[] = {"MIN", "LOW", "HIGH", "MAX"}; + + + //----------------------------------------------------------------------------- // MACROS //----------------------------------------------------------------------------- @@ -54,7 +58,8 @@ class HmRadio { pinCe = CE_PIN; pinIrq = IRQ_PIN; - mSendCnt = 0; + AmplifierPower = 1; + mSendCnt = 0; } ~HmRadio() {} @@ -79,7 +84,8 @@ class HmRadio { // enable only receiving interrupts mNrf24.maskIRQ(true, true, false); - mNrf24.setPALevel(RF24_PA_MAX); + Serial.println("RF24 Amp Pwr: RF24_PA_" + String(rf24AmpPower[AmplifierPower])); + mNrf24.setPALevel(AmplifierPower & 0x03); mNrf24.startListening(); Serial.println("Radio Config:"); @@ -180,6 +186,8 @@ class HmRadio { uint8_t pinCe; uint8_t pinIrq; + uint8_t AmplifierPower; + private: void sendPacket(uint64_t invId, uint8_t buf[], uint8_t len) { //Serial.println("sent packet: #" + String(mSendCnt)); diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 0fb05a10..83000eb7 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index b78608f3..93f91b6e 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -34,6 +34,10 @@

Pinout (Wemos)

{PINOUT} +

Radio (NRF24L01+)

+ + +

MQTT

@@ -43,7 +47,7 @@ - +

 

From 657cbec9314a5db2d902f7ee718af29a99bfe1ac Mon Sep 17 00:00:00 2001 From: lumapu Date: Mon, 25 Apr 2022 23:31:52 +0200 Subject: [PATCH 25/58] fix issue #10 --- tools/esp8266/hmSystem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h index 0d40803f..70afe6b7 100644 --- a/tools/esp8266/hmSystem.h +++ b/tools/esp8266/hmSystem.h @@ -138,7 +138,7 @@ class HmSystem { void getAssignment(inverter_t *p) { if(INV_TYPE_HM600 == p->type) { - p->listLen = (uint8_t)(HM1200_LIST_LEN); + p->listLen = (uint8_t)(HM600_LIST_LEN); p->assign = (byteAssign_t*)hm600assignment; } else if(INV_TYPE_HM1200 == p->type) { From 169bf8c7c8aa9d06e34e6bd54a1e5315a4097b09 Mon Sep 17 00:00:00 2001 From: lumapu Date: Tue, 26 Apr 2022 08:50:36 +0200 Subject: [PATCH 26/58] * try to avoid exceptions, added yield * try to fix DNS problems --- tools/esp8266/app.cpp | 5 ++++- tools/esp8266/defines.h | 2 +- tools/esp8266/main.cpp | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 6d4056c2..aace1c53 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -150,7 +150,8 @@ void app::loop(void) { inv = mSys->getInverterByPos(i); if(NULL != inv) { mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp); - delay(20); + yield(); + delay(100); } } } @@ -171,6 +172,7 @@ void app::loop(void) { snprintf(val, 10, "%.3f", mSys->getValue(iv, i)); mMqtt.sendMsg(topic, val); delay(20); + yield(); } } } @@ -187,6 +189,7 @@ void app::loop(void) { snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i)); Serial.println(String(topic) + ": " + String(val)); } + yield(); } } } diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 74bb4f90..d974e9eb 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 7 +#define VERSION_PATCH 8 //------------------------------------- diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 746c11e7..25b68c71 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -43,8 +43,6 @@ void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { mWeb->onNotFound (std::bind(&Main::showNotFound, this)); startAp = getConfig(); - if(String(mDeviceName) != "") - WiFi.hostname(mDeviceName); if(false == startAp) startAp = setupStation(timeout); @@ -126,6 +124,8 @@ bool Main::setupStation(uint32_t timeout) { WiFi.mode(WIFI_STA); WiFi.begin(mStationSsid, mStationPwd); + if(String(mDeviceName) != "") + WiFi.hostname(mDeviceName); delay(5000); Serial.println("wait for network"); From a9b7fd05999147f2853de43fc75cfccbc1fb709a Mon Sep 17 00:00:00 2001 From: lumapu Date: Tue, 26 Apr 2022 22:49:00 +0200 Subject: [PATCH 27/58] * added IP address to serial console on successful connect to station WiFi * fix: RF24 power setting configuration * added RF24 isChipConnected * added MQTT port configuration * fix offsets for HM400 and HM600 inverters * added warning if configuration was changed without reboot --- tools/esp8266/app.cpp | 41 +++++++++++++++++++++----- tools/esp8266/app.h | 4 +-- tools/esp8266/defines.h | 6 ++-- tools/esp8266/hmInverters.h | 48 +++++++++++++++---------------- tools/esp8266/hmRadio.h | 38 +++++++++++++++--------- tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/setup.html | 2 ++ tools/esp8266/mqtt.h | 4 +-- 8 files changed, 92 insertions(+), 53 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index aace1c53..63670a14 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -10,9 +10,12 @@ app::app() : Main() { mSendTicker = new Ticker(); mFlagSend = false; + mShowRebootRequest = false; + mMqttTicker = NULL; mMqttEvt = false; + memset(mCmds, 0, sizeof(uint32_t)*DBG_CMD_LIST_LEN); //memset(mChannelStat, 0, sizeof(uint32_t) * 4); @@ -52,7 +55,7 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_INV_TYPE + i, &invType); if(0ULL != invSerial) { mSys->addInverter(invName, invSerial, invType); - Serial.println("add inverter: " + String(invName) + ", SN: " + String(invSerial, HEX) + ", type: " + String(invType)); + DPRINTLN("add inverter: " + String(invName) + ", SN: " + String(invSerial, HEX) + ", type: " + String(invType)); } } @@ -73,6 +76,7 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN]; + uint16_t mqttPort; char mqttUser[MQTT_USER_LEN]; char mqttPwd[MQTT_PWD_LEN]; char mqttTopic[MQTT_TOPIC_LEN]; @@ -81,13 +85,14 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); mEep->read(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); mEep->read(ADDR_MQTT_INTERVAL, &interval); + mEep->read(ADDR_MQTT_PORT, &mqttPort); char addr[16] = {0}; sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); if(interval < 1000) interval = 1000; - mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd); + mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd, mqttPort); mMqttTicker = new Ticker(); mMqttTicker->attach_ms(interval, std::bind(&app::mqttTicker, this)); @@ -97,7 +102,15 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mSys->setup(); if(!mWifiSettingsValid) - Serial.println("Warn: your settings are not valid! check [IP]/setup"); + DPRINTLN("Warn: your settings are not valid! check [IP]/setup"); + else { + DPRINTLN("\n\n----------------------------------------"); + DPRINTLN("Welcome to AHOY!"); + DPRINT("\npoint your browser to http://"); + DPRINTLN(WiFi.localIP()); + DPRINTLN("to configure your device"); + DPRINTLN("----------------------------------------\n"); + } } @@ -114,7 +127,7 @@ void app::loop(void) { // process buffer only on first occurrence if((0 != len) && (0 == rptCnt)) { uint8_t *cmd = &p->packet[11]; - //Serial.println("CMD " + String(*cmd, HEX)); + //DPRINTLN("CMD " + String(*cmd, HEX)); //mSys->Radio.dumpBuf("Payload ", p->packet, len); inverter_t *iv = mSys->findInverter(&p->packet[3]); @@ -187,7 +200,7 @@ void app::loop(void) { if(0.0f != mSys->getValue(iv, i)) { snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i)); snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i)); - Serial.println(String(topic) + ": " + String(val)); + DPRINTLN(String(topic) + ": " + String(val)); } yield(); } @@ -307,12 +320,15 @@ void app::showSetup(void) { html.replace("{INV_INTERVAL}", String(interval)); uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + uint16_t mqttPort; mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); mEep->read(ADDR_MQTT_INTERVAL, &interval); + mEep->read(ADDR_MQTT_PORT, &mqttPort); char addr[16] = {0}; sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); html.replace("{MQTT_ADDR}", String(addr)); + html.replace("{MQTT_PORT}", String(mqttPort)); html.replace("{MQTT_USER}", String(mMqtt.getUser())); html.replace("{MQTT_PWD}", String(mMqtt.getPwd())); html.replace("{MQTT_TOPIC}", String(mMqtt.getTopic())); @@ -322,6 +338,7 @@ void app::showSetup(void) { html.replace("{INV_INTERVAL}", "1000"); html.replace("{MQTT_ADDR}", ""); + html.replace("{MQTT_PORT}", "1883"); html.replace("{MQTT_USER}", ""); html.replace("{MQTT_PWD}", ""); html.replace("{MQTT_TOPIC}", "/inverter"); @@ -359,6 +376,12 @@ void app::showStatistics(void) { content += String("61: ") + String(mChannelStat[2]) + String("\n"); content += String("75: ") + String(mChannelStat[3]) + String("\n");*/ + if(!mSys->Radio.isChipConnected()) + content += "WARNING! your NRF24 module can't be reached, check the wiring\n"; + + if(mShowRebootRequest) + content += "INFO: reboot your ESP to apply all your configuration changes!\n"; + mWeb->send(200, "text/plain", content); } @@ -474,11 +497,12 @@ void app::saveValues(bool webSend = true) { // nrf24 amplifier power - mSys->Radio.AmplifierPower = mWeb->arg(String(pinArgNames[i])).toInt() & 0x03; + mSys->Radio.AmplifierPower = mWeb->arg("rf24Power").toInt() & 0x03; mEep->write(ADDR_RF24_AMP_PWR, mSys->Radio.AmplifierPower); // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + uint16_t mqttPort; char mqttUser[MQTT_USER_LEN]; char mqttPwd[MQTT_PWD_LEN]; char mqttTopic[MQTT_TOPIC_LEN]; @@ -493,7 +517,9 @@ void app::saveValues(bool webSend = true) { mWeb->arg("mqttPwd").toCharArray(mqttPwd, MQTT_PWD_LEN); mWeb->arg("mqttTopic").toCharArray(mqttTopic, MQTT_TOPIC_LEN); interval = mWeb->arg("mqttInterval").toInt(); + mqttPort = mWeb->arg("mqttPort").toInt(); mEep->write(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); + mEep->write(ADDR_MQTT_PORT, mqttPort); mEep->write(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN); mEep->write(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); mEep->write(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); @@ -503,6 +529,7 @@ void app::saveValues(bool webSend = true) { if((mWeb->arg("reboot") == "on")) showReboot(); else { + mShowRebootRequest = true; mWeb->send(200, "text/html", "Setup saved" "

saved

"); } @@ -520,6 +547,6 @@ void app::updateCrc(void) { uint16_t crc; crc = buildEEpCrc(ADDR_START_SETTINGS, (ADDR_NEXT - ADDR_START_SETTINGS)); - //Serial.println("new CRC: " + String(crc, HEX)); + //DPRINTLN("new CRC: " + String(crc, HEX)); mEep->write(ADDR_SETTINGS_CRC, crc); } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index e666bf20..2fdc130d 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -69,9 +69,7 @@ class app : public Main { return ret; } - - uint8_t mState; - bool mKeyPressed; + bool mShowRebootRequest; HmSystemType *mSys; diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index d974e9eb..fa96dd02 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 8 +#define VERSION_PATCH 9 //------------------------------------- @@ -57,6 +57,7 @@ typedef struct { #define MQTT_PWD_LEN 32 #define MQTT_TOPIC_LEN 32 #define MQTT_INTERVAL_LEN 2 // uint16_t +#define MQTT_PORT_LEN 2 // uint16_t #define ADDR_START 0 @@ -81,7 +82,8 @@ typedef struct { #define ADDR_MQTT_TOPIC ADDR_MQTT_PWD + MQTT_PWD_LEN #define ADDR_MQTT_INTERVAL ADDR_MQTT_TOPIC + MQTT_TOPIC_LEN -#define ADDR_NEXT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN +#define ADDR_MQTT_PORT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN +#define ADDR_NEXT ADDR_MQTT_PORT + MQTT_PORT_LEN #define ADDR_SETTINGS_CRC 400 diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index df9cc147..0226a8cf 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -60,16 +60,16 @@ typedef struct { // HM400 HM350?, HM300? //------------------------------------- const byteAssign_t hm400assignment[] = { - { FLD_UDC, UNIT_V, CH1, CMD01, 14, 2, 10 }, - { FLD_IDC, UNIT_A, CH1, CMD01, 16, 2, 100 }, - { FLD_PDC, UNIT_W, CH1, CMD01, 18, 2, 10 }, - { FLD_YT, UNIT_KWH, CH1, CMD01, 20, 4, 1000 }, - { FLD_YD, UNIT_WH, CH1, CMD01, 24, 2, 1000 }, - { FLD_UAC, UNIT_V, CH0, CMD01, 26, 2, 10 }, - { FLD_F, UNIT_HZ, CH0, CMD82, 12, 2, 100 }, - { FLD_PAC, UNIT_W, CH0, CMD82, 14, 2, 10 }, - { FLD_IAC, UNIT_A, CH0, CMD82, 18, 2, 100 }, - { FLD_T, UNIT_C, CH0, CMD82, 22, 2, 10 } + { FLD_UDC, UNIT_V, CH1, CMD01, 3, 2, 10 }, + { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, + { FLD_PDC, UNIT_W, CH1, CMD01, 7, 2, 10 }, + { FLD_YT, UNIT_KWH, CH1, CMD01, 9, 4, 1000 }, + { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1000 }, + { FLD_UAC, UNIT_V, CH0, CMD01, 15, 2, 10 }, + { FLD_F, UNIT_HZ, CH0, CMD82, 1, 2, 100 }, + { FLD_PAC, UNIT_W, CH0, CMD82, 3, 2, 10 }, + { FLD_IAC, UNIT_A, CH0, CMD82, 7, 2, 100 }, + { FLD_T, UNIT_C, CH0, CMD82, 11, 2, 10 } }; #define HM400_LIST_LEN (sizeof(hm400assignment) / sizeof(byteAssign_t)) @@ -78,20 +78,20 @@ const byteAssign_t hm400assignment[] = { // HM600, HM700 //------------------------------------- const byteAssign_t hm600assignment[] = { - { FLD_UDC, UNIT_V, CH1, CMD01, 14, 2, 10 }, - { FLD_IDC, UNIT_A, CH1, CMD01, 16, 2, 100 }, - { FLD_PDC, UNIT_W, CH1, CMD01, 18, 2, 10 }, - { FLD_UDC, UNIT_V, CH2, CMD01, 20, 2, 10 }, - { FLD_IDC, UNIT_A, CH2, CMD01, 22, 2, 100 }, - { FLD_PDC, UNIT_W, CH2, CMD01, 24, 2, 10 }, - { FLD_YW, UNIT_WH, CH0, CMD02, 12, 2, 1 }, - { FLD_YT, UNIT_WH, CH0, CMD02, 14, 4, 1 }, - { FLD_YD, UNIT_WH, CH1, CMD02, 18, 2, 1 }, - { FLD_YD, UNIT_WH, CH2, CMD02, 20, 2, 1 }, - { FLD_UAC, UNIT_V, CH0, CMD02, 22, 2, 10 }, - { FLD_F, UNIT_HZ, CH0, CMD02, 24, 2, 100 }, - { FLD_IAC, UNIT_A, CH0, CMD02, 26, 2, 10 }, - { FLD_T, UNIT_C, CH0, CMD83, 18, 2, 10 } + { FLD_UDC, UNIT_V, CH1, CMD01, 3, 2, 10 }, + { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, + { FLD_PDC, UNIT_W, CH1, CMD01, 7, 2, 10 }, + { FLD_UDC, UNIT_V, CH2, CMD01, 9, 2, 10 }, + { FLD_IDC, UNIT_A, CH2, CMD01, 11, 2, 100 }, + { FLD_PDC, UNIT_W, CH2, CMD01, 13, 2, 10 }, + { FLD_YW, UNIT_WH, CH0, CMD02, 1, 2, 1 }, + { FLD_YT, UNIT_KWH, CH0, CMD02, 3, 4, 1000 }, + { FLD_YD, UNIT_WH, CH1, CMD02, 7, 2, 1 }, + { FLD_YD, UNIT_WH, CH2, CMD02, 9, 2, 1 }, + { FLD_UAC, UNIT_V, CH0, CMD02, 11, 2, 10 }, + { FLD_F, UNIT_HZ, CH0, CMD02, 13, 2, 100 }, + { FLD_IAC, UNIT_A, CH0, CMD02, 15, 2, 10 }, + { FLD_T, UNIT_C, CH0, CMD83, 7, 2, 10 } }; #define HM600_LIST_LEN (sizeof(hm600assignment) / sizeof(byteAssign_t)) diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 02989ec9..65a098a5 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -64,7 +64,7 @@ class HmRadio { ~HmRadio() {} void setup(BUFFER *ctrl) { - //Serial.println("HmRadio::setup, pins: " + String(pinCs) + ", " + String(pinCe) + ", " + String(pinIrq)); + //DPRINTLN("HmRadio::setup, pins: " + String(pinCs) + ", " + String(pinCe) + ", " + String(pinIrq)); pinMode(pinIrq, INPUT_PULLUP); mBufCtrl = ctrl; @@ -84,14 +84,18 @@ class HmRadio { // enable only receiving interrupts mNrf24.maskIRQ(true, true, false); - Serial.println("RF24 Amp Pwr: RF24_PA_" + String(rf24AmpPower[AmplifierPower])); + DPRINTLN("RF24 Amp Pwr: RF24_PA_" + String(rf24AmpPower[AmplifierPower])); mNrf24.setPALevel(AmplifierPower & 0x03); mNrf24.startListening(); - Serial.println("Radio Config:"); + DPRINTLN("Radio Config:"); mNrf24.printPrettyDetails(); mSendChannel = getDefaultChannel(); + + if(!mNrf24.isChipConnected()) { + DPRINTLN("WARNING! your NRF24 module can't be reached, check the wiring"); + } } void handleIntr(void) { @@ -182,6 +186,21 @@ class HmRadio { return valid; } + void dumpBuf(const char *info, uint8_t buf[], uint8_t len) { + DPRINT(String(info)); + for(uint8_t i = 0; i < len; i++) { + if(buf[i] < 10) + DPRINT("0"); + DHEX(buf[i]); + DPRINT(" "); + } + DPRINTLN(""); + } + + bool isChipConnected(void) { + return mNrf24.isChipConnected(); + } + uint8_t pinCs; uint8_t pinCe; uint8_t pinIrq; @@ -190,7 +209,7 @@ class HmRadio { private: void sendPacket(uint64_t invId, uint8_t buf[], uint8_t len) { - //Serial.println("sent packet: #" + String(mSendCnt)); + //DPRINTLN("sent packet: #" + String(mSendCnt)); //dumpBuf("SEN ", buf, len); DISABLE_IRQ; @@ -202,7 +221,7 @@ class HmRadio { mSendChannel = getDefaultChannel(); #endif mNrf24.setChannel(mSendChannel); - //Serial.println("CH: " + String(mSendChannel)); + //DPRINTLN("CH: " + String(mSendChannel)); mNrf24.openWritingPipe(invId); // TODO: deprecated mNrf24.setCRCLength(RF24_CRC_16); @@ -237,15 +256,6 @@ class HmRadio { mDtuIdCrc = crc16nrf24(tmp, BIT_CNT(5)); } - void dumpBuf(const char *info, uint8_t buf[], uint8_t len) { - Serial.print(String(info)); - for(uint8_t i = 0; i < len; i++) { - Serial.print(buf[i], HEX); - Serial.print(" "); - } - Serial.println(); - } - uint8_t mChanOut[4]; uint8_t mChanIdx; uint16_t mDtuIdCrc; diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 83000eb7..95f1236f 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index 93f91b6e..5103c412 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -41,6 +41,8 @@

MQTT

+ + diff --git a/tools/esp8266/mqtt.h b/tools/esp8266/mqtt.h index b3247d14..4f9bc4b7 100644 --- a/tools/esp8266/mqtt.h +++ b/tools/esp8266/mqtt.h @@ -20,9 +20,9 @@ class mqtt { delete mClient; } - void setup(const char *broker, const char *topic, const char *user, const char *pwd) { + void setup(const char *broker, const char *topic, const char *user, const char *pwd, uint16_t port) { mAddressSet = true; - mClient->setServer(broker, 1883); + mClient->setServer(broker, port); snprintf(mUser, MQTT_USER_LEN, "%s", user); snprintf(mPwd, MQTT_PWD_LEN, "%s", pwd); From c65607026c328ba019aa70b0be7088c276596ecf Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 27 Apr 2022 10:58:20 +0200 Subject: [PATCH 28/58] =?UTF-8?q?*=20Divisor=20HM-400=20angepasst=20(f?= =?UTF-8?q?=C3=BCr=20Wh)=20*=20Ausgabebuffer=20angepasst,=20war=20mit=2010?= =?UTF-8?q?=20Bytes=20zu=20wenig=20um=20z.B.=20YieldTotal=20auszugeben=20(?= =?UTF-8?q?Unit=20wurde=20abgeschnitten)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/esp8266/app.cpp | 2 +- tools/esp8266/hmInverters.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 63670a14..2addd94c 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -433,7 +433,7 @@ void app::showLiveData(void) { char topic[30], val[10]; for(uint8_t i = 0; i < iv->listLen; i++) { snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i)); - snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i)); + snprintf(val, 12, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i)); modHtml += String(topic) + ": " + String(val) + "\n"; } modHtml += ""; diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 0226a8cf..0b516410 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -64,7 +64,7 @@ const byteAssign_t hm400assignment[] = { { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, { FLD_PDC, UNIT_W, CH1, CMD01, 7, 2, 10 }, { FLD_YT, UNIT_KWH, CH1, CMD01, 9, 4, 1000 }, - { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1000 }, + { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1 }, { FLD_UAC, UNIT_V, CH0, CMD01, 15, 2, 10 }, { FLD_F, UNIT_HZ, CH0, CMD82, 1, 2, 100 }, { FLD_PAC, UNIT_W, CH0, CMD82, 3, 2, 10 }, From 11113da53ee495b807920cb78b2771d4085f82a4 Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 27 Apr 2022 11:04:28 +0200 Subject: [PATCH 29/58] fixed size --- tools/esp8266/app.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 2addd94c..178d9d78 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -430,7 +430,7 @@ void app::showLiveData(void) { #else // dump all data to web frontend modHtml = "
";
-            char topic[30], val[10];
+            char topic[30], val[12];
             for(uint8_t i = 0; i < iv->listLen; i++) {
                 snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i));
                 snprintf(val, 12, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i));

From 1f6fe84f081b89275821e82315170baf1e3b7bfc Mon Sep 17 00:00:00 2001
From: Marcus 
Date: Wed, 27 Apr 2022 17:34:21 +0200
Subject: [PATCH 30/58] checked in Hubis code (version from 2022-04-13)
 https://www.mikrocontroller.net/topic/525778?page=3#7033371

---
 tools/NRF24_SendRcv/CircularBuffer.h    | 158 +++++++
 tools/NRF24_SendRcv/Debug.h             |  23 +
 tools/NRF24_SendRcv/ModWebserver.h      | 129 +++++
 tools/NRF24_SendRcv/NRF24_SendRcv.ino   | 597 ++++++++++++++++++++++++
 tools/NRF24_SendRcv/NRF24_sniff_types.h |  55 +++
 tools/NRF24_SendRcv/Settings.h          |  82 ++++
 tools/NRF24_SendRcv/Sonne.h             |  55 +++
 tools/NRF24_SendRcv/hm_crc.cpp          | 142 ++++++
 tools/NRF24_SendRcv/hm_crc.h            |   8 +
 tools/NRF24_SendRcv/hm_packets.cpp      |  74 +++
 tools/NRF24_SendRcv/hm_packets.h        |  18 +
 tools/NRF24_SendRcv/wifi.h              | 345 ++++++++++++++
 12 files changed, 1686 insertions(+)
 create mode 100644 tools/NRF24_SendRcv/CircularBuffer.h
 create mode 100644 tools/NRF24_SendRcv/Debug.h
 create mode 100644 tools/NRF24_SendRcv/ModWebserver.h
 create mode 100644 tools/NRF24_SendRcv/NRF24_SendRcv.ino
 create mode 100644 tools/NRF24_SendRcv/NRF24_sniff_types.h
 create mode 100644 tools/NRF24_SendRcv/Settings.h
 create mode 100644 tools/NRF24_SendRcv/Sonne.h
 create mode 100644 tools/NRF24_SendRcv/hm_crc.cpp
 create mode 100644 tools/NRF24_SendRcv/hm_crc.h
 create mode 100644 tools/NRF24_SendRcv/hm_packets.cpp
 create mode 100644 tools/NRF24_SendRcv/hm_packets.h
 create mode 100644 tools/NRF24_SendRcv/wifi.h

diff --git a/tools/NRF24_SendRcv/CircularBuffer.h b/tools/NRF24_SendRcv/CircularBuffer.h
new file mode 100644
index 00000000..a7fafdb7
--- /dev/null
+++ b/tools/NRF24_SendRcv/CircularBuffer.h
@@ -0,0 +1,158 @@
+/*
+  CircularBuffer - An Arduino circular buffering library for arbitrary types.
+
+  Created by Ivo Pullens, Emmission, 2014 -- www.emmission.nl
+  
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef CircularBuffer_h
+#define CircularBuffer_h
+
+#ifdef ESP8266
+#define DISABLE_IRQ noInterrupts()
+#define RESTORE_IRQ interrupts()
+#else
+#define DISABLE_IRQ       \
+  uint8_t sreg = SREG;    \
+  cli();
+
+#define RESTORE_IRQ        \
+  SREG = sreg;
+#endif
+
+template  class CircularBuffer
+{
+  public:
+    /** Constructor
+     * @param buffer   Preallocated buffer of at least size records.
+     * @param size     Number of records available in the buffer.
+     */
+    CircularBuffer(T* buffer, const uint8_t size )
+      : m_size(size), m_buff(buffer)
+    {
+      clear();
+    }
+
+    /** Clear all entries in the circular buffer. */
+    void clear(void)
+    {
+      m_front = 0;
+      m_fill  = 0;
+    }
+
+    /** Test if the circular buffer is empty */
+    inline bool empty(void) const
+    {
+      return !m_fill;
+    }
+
+    /** Return the number of records stored in the buffer */
+    inline uint8_t available(void) const
+    {
+      return m_fill;
+    }
+
+    /** Test if the circular buffer is full */
+    inline bool full(void) const
+    {
+      return m_fill == m_size;
+    }
+    
+    /** Aquire record on front of the buffer, for writing.
+     * After filling the record, it has to be pushed to actually
+     * add it to the buffer.
+     * @return Pointer to record, or NULL when buffer is full.
+     */
+    T* getFront(void) const
+    {
+      DISABLE_IRQ;
+      T* f = NULL;
+      if (!full())
+        f = get(m_front);
+      RESTORE_IRQ;
+      return f;
+    }
+    
+    /** Push record to front of the buffer
+     * @param record   Record to push. If record was aquired previously (using getFront) its
+     *                 data will not be copied as it is already present in the buffer.
+     * @return True, when record was pushed successfully.
+     */
+    bool pushFront(T* record)
+    {
+      bool ok = false;
+      DISABLE_IRQ;
+      if (!full())
+      {
+        T* f = get(m_front);
+        if (f != record)
+          *f = *record;
+        m_front = (m_front+1) % m_size;
+        m_fill++;
+        ok = true;
+      }
+      RESTORE_IRQ;
+      return ok;
+    }
+
+    /** Aquire record on back of the buffer, for reading.
+     * After reading the record, it has to be pop'ed to actually
+     * remove it from the buffer.
+     * @return Pointer to record, or NULL when buffer is empty.
+     */
+    T* getBack(void) const
+    {
+      T* b = NULL;
+      DISABLE_IRQ;
+      if (!empty())
+        b = get(back());
+      RESTORE_IRQ;
+      return b;
+    }
+
+    /** Remove record from back of the buffer.
+     * @return True, when record was pop'ed successfully.
+     */
+    bool popBack(void)
+    {
+      bool ok = false;
+      DISABLE_IRQ;
+      if (!empty())
+      {
+        m_fill--;
+        ok = true;
+      }
+      RESTORE_IRQ;
+      return ok;
+    }
+    
+  protected:
+    inline T * get(const uint8_t idx) const
+    {
+      return &(m_buff[idx]);
+    }
+    inline uint8_t back(void) const
+    {
+      return (m_front - m_fill + m_size) % m_size;
+    }
+
+    const uint8_t      m_size;     // Total number of records that can be stored in the buffer.
+    T* const           m_buff;     // Ptr to buffer holding all records.
+    volatile uint8_t   m_front;    // Index of front element (not pushed yet).
+    volatile uint8_t   m_fill;     // Amount of records currently pushed.
+};
+
+#endif // CircularBuffer_h
diff --git a/tools/NRF24_SendRcv/Debug.h b/tools/NRF24_SendRcv/Debug.h
new file mode 100644
index 00000000..3b2807d6
--- /dev/null
+++ b/tools/NRF24_SendRcv/Debug.h
@@ -0,0 +1,23 @@
+#ifndef __DEBUG_H
+
+#define __DEBUG_H
+
+#ifdef DEBUG
+  #define DEBUG_OUT  Serial
+#else 
+//---
+// disable Serial DEBUG output
+  #define DEBUG_OUT DummySerial
+  static class {
+  public:
+      void begin(...) {}
+      void print(...) {}
+      void println(...) {}
+      void flush() {}
+      bool available() { return false;}
+      int  readBytes(...) { return 0;}
+      int  printf (...) {return 0;}
+  } DummySerial;
+#endif
+
+#endif 
diff --git a/tools/NRF24_SendRcv/ModWebserver.h b/tools/NRF24_SendRcv/ModWebserver.h
new file mode 100644
index 00000000..38bb77f5
--- /dev/null
+++ b/tools/NRF24_SendRcv/ModWebserver.h
@@ -0,0 +1,129 @@
+// #################  WebServer #################
+
+#ifndef __MODWEBSERVER_H
+#define __MODWEBSERVER_H
+#define MODWEBSERVER
+
+#include 
+#include "Debug.h"
+#include "Settings.h"
+
+ESP8266WebServer server (WEBSERVER_PORT);
+
+
+void returnOK () {
+  //--------------
+  server.send(200, F("text/plain"), "");
+}
+
+
+void returnFail(String msg) {
+  //-------------------------
+  server.send(500, F("text/plain"), msg + "\r\n");
+}
+
+void handleHelp () {
+//-----------------  
+  String out = "";
+  out += "

Hilfe

"; + out += "

"; + out += ""; + out += ""; + out += ""; + out += ""; + out += "
/zeigt alle Messwerte in einer Tabelle; refresh alle 10 Sekunden
/datazum Abruf der Messwerte in der Form Name=wert
:{port+1}/updateOTA
/rebootstartet neu
"; + server.send (200, "text/html", out); +} + + +void handleReboot () { + //------------------- + returnOK (); + ESP.reset(); +} + + +void handleRoot() { + //---------------- + String out = ""; + out += ""; + out += "

Hoymiles Micro-Inverter HM-600

"; + out += "

"; + out += ""; + for (byte i = 0; i < ANZAHL_VALUES; i++) { + out += ""; + out += ""; + } + out += "
KanalWert
" + String(getChannelName(i)) + "" + String(VALUES[i]) + "
"; + out += ""; + server.send (200, "text/html", out); + //DEBUG_OUT.println (out); +} + + +void handleData () { +//----------------- + String out = ""; + for (int i = 0; i < ANZAHL_VALUES; i++) { + out += String(getChannelName(i)) + '=' + String (VALUES[i]) + '\n'; + } + server.send(200, "text/plain", out); +} + + +void handleNotFound() { +//-------------------- + String message = "URI: "; + message += server.uri(); + message += "\nMethod: "; + message += (server.method() == HTTP_GET) ? "GET" : "POST"; + message += "\nArguments: "; + message += server.args(); + message += "\n"; + for (uint8_t i = 0; i < server.args(); i++) { + message += " NAME:" + server.argName(i) + "\n VALUE:" + server.arg(i) + "\n"; + } + server.send(404, "text/plain", message); +} + + +void setupWebServer (void) { + //------------------------- + server.on("/", handleRoot); + server.on("/reboot", handleReboot); + server.on("/data", handleData); + server.on("/help", handleHelp); + //server.onNotFound(handleNotFound); wegen Spiffs-Dateimanager + + server.begin(); + DEBUG_OUT.println ("[HTTP] installed"); +} + +void webserverHandle() { +//==================== + server.handleClient(); +} + + +// ################# OTA ################# + +#ifdef WITH_OTA +#include + +ESP8266WebServer httpUpdateServer (UPDATESERVER_PORT); +ESP8266HTTPUpdateServer httpUpdater; + +void setupUpdateByOTA () { + //------------------------ + httpUpdater.setup (&httpUpdateServer, UPDATESERVER_DIR, UPDATESERVER_USER, UPDATESERVER_PW); + httpUpdateServer.begin(); + DEBUG_OUT.println (F("[OTA] installed")); +} + +void checkUpdateByOTA() { +//--------------------- + httpUpdateServer.handleClient(); +} +#endif + +#endif diff --git a/tools/NRF24_SendRcv/NRF24_SendRcv.ino b/tools/NRF24_SendRcv/NRF24_SendRcv.ino new file mode 100644 index 00000000..9eed320d --- /dev/null +++ b/tools/NRF24_SendRcv/NRF24_SendRcv.ino @@ -0,0 +1,597 @@ +#include +#include +#include "CircularBuffer.h" +#include +#include +#include "hm_crc.h" +#include "hm_packets.h" + +#include "Settings.h" // Header für Einstellungen + +#include "Debug.h" + +#ifdef ESP8266 + #define DISABLE_EINT noInterrupts() + #define ENABLE_EINT interrupts() +#else // für AVR z.B. ProMini oder Nano + #define DISABLE_EINT EIMSK = 0x00 + #define ENABLE_EINT EIMSK = 0x01 +#endif + + +#define RF_MAX_ADDR_WIDTH (5) +#define MAX_RF_PAYLOAD_SIZE (32) + +#ifdef ESP8266 +#define PACKET_BUFFER_SIZE (30) +#else +#define PACKET_BUFFER_SIZE (20) +#endif + +// Startup defaults until user reconfigures it +#define DEFAULT_RECV_CHANNEL (3) // 3 = Default channel for Hoymiles +//#define DEFAULT_SEND_CHANNEL (75) // 40 = Default channel for Hoymiles, 61 +#define DEFAULT_RF_DATARATE (RF24_250KBPS) // Datarate + +#include "NRF24_sniff_types.h" + +static HM_Packets hmPackets; +static uint32_t tickMillis; + + +// Set up nRF24L01 radio on SPI bus plus CE/CS pins +// If more than one RF24 unit is used the another CS pin than 10 must be used +// This pin is used hard coded in SPI library +static RF24 radio1 (RF1_CE_PIN, RF1_CS_PIN); + +static NRF24_packet_t bufferData[PACKET_BUFFER_SIZE]; + +static CircularBuffer packetBuffer(bufferData, sizeof(bufferData) / sizeof(bufferData[0])); + +static Serial_header_t SerialHdr; + +#define CHECKCRC 1 +static uint16_t lastCRC; +static uint16_t crc; + +uint8_t channels[] = {/*3,*/ 23, 40, 61, 75}; //{1, 3, 6, 9, 11, 23, 40, 61, 75} +uint8_t channelIdx = 1; // fange mit 40 an +uint8_t DEFAULT_SEND_CHANNEL = channels[channelIdx]; // = 40 + +static unsigned long timeLastPacket = millis(); + +// Function forward declaration +static void SendPacket(uint64_t dest, uint8_t *buf, uint8_t len); +char * getChannelName (uint8_t i); + +static const int ANZAHL_VALUES = 16; +static float VALUES[ANZAHL_VALUES] = {}; +static const char *CHANNEL_NAMES[ANZAHL_VALUES] + = {"P1.Udc", "P1.Idc", "P1.Pdc", "P2.Udc", "P2.Idc", "P2.Pdc", + "E-Woche", "E-Total", "E1-Tag", "E2-Tag", "Uac", "Freq.ac", "Pac", "E-heute", "Ipv", "WR-Temp"}; +static const uint8_t DIVISOR[ANZAHL_VALUES] = {10,100,10,10,100,10,1,1,1,1,10,100,10,0,0,10}; + +static const char BLANK = ' '; + +static boolean istTag = true; + +char CHANNELNAME_BUFFER[15]; + +#ifdef ESP8266 + #include "wifi.h" + #include "ModWebserver.h" + #include "Sonne.h" +#endif + +char * getChannelName (uint8_t i) { +//------------------------------- + memset (CHANNELNAME_BUFFER, 0, sizeof(CHANNELNAME_BUFFER)); + strcpy (CHANNELNAME_BUFFER, CHANNEL_NAMES[i]); + //itoa (i, CHANNELNAME_BUFFER, 10); + return CHANNELNAME_BUFFER; +} + +inline static void dumpData(uint8_t *p, int len) { +//----------------------------------------------- + while (len--){ + if (*p < 16) + DEBUG_OUT.print(F("0")); + DEBUG_OUT.print(*p++, HEX); + } + DEBUG_OUT.print(BLANK); +} + + +float extractValue2 (uint8_t *p, int divisor) { +//------------------------------------------- + uint16_t b1 = *p++; + return ((float) (b1 << 8) + *p) / (float) divisor; +} + + +float extractValue4 (uint8_t *p, int divisor) { +//------------------------------------------- + uint32_t ret = *p++; + for (uint8_t i = 1; i <= 3; i++) + ret = (ret << 8) + *p++; + return (ret / divisor); +} + +void outChannel (uint8_t i) { +//------------------------- + DEBUG_OUT.print(getChannelName(i)); DEBUG_OUT.print(F("\t:")); DEBUG_OUT.print(VALUES[i]); DEBUG_OUT.println(BLANK); +} + + +void analyse01 (uint8_t *p) { // p zeigt auf 01 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + //DEBUG_OUT.print (F("analyse 01: ")); + p += 3; + // PV1.U PV1.I PV1.P PV2.U PV2.I PV2.P + // [0.1V] [0.01A] [.1W] [0.1V] [0.01A] [.1W] + for (int i = 0; i < 6; i++) { + VALUES[i] = extractValue2 (p,DIVISOR[i]); p += 2; + outChannel(i); + } +/* + DEBUG_OUT.print(F("PV1.U:")); DEBUG_OUT.print(extractValue2(p,10)); + p += 2; + DEBUG_OUT.print(F(" PV1.I:")); DEBUG_OUT.print(extractValue2(p,100)); + p += 2; + DEBUG_OUT.print(F(" PV1.Pac:")); DEBUG_OUT.print(extractValue2(p,10)); + p += 2; + DEBUG_OUT.print(F(" PV2.U:")); DEBUG_OUT.print(extractValue2(p,10)); + p += 2; + DEBUG_OUT.print(F(" PV2.I:")); DEBUG_OUT.print(extractValue2(p,100)); + p += 2; + DEBUG_OUT.print(F(" PV2.Pac:")); DEBUG_OUT.print(extractValue2(p,10)); +*/ + DEBUG_OUT.println(); +} + + +void analyse02 (uint8_t *p) { // p zeigt auf 02 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + //DEBUG_OUT.print (F("analyse 02: ")); + // +11 = Spannung, +13 = Frequenz, +15 = Leistung + //p += 11; + p++; + for (int i = 6; i < 13; i++) { + if (i == 7) { + VALUES[i] = extractValue4 (p,DIVISOR[i]); + p += 4; + } + else { + VALUES[i] = extractValue2 (p,DIVISOR[i]); + p += 2; + } + outChannel(i); + } + VALUES[13] = VALUES[8] + VALUES[9]; // E-heute = P1+P2 + if (VALUES[10] > 0) + VALUES[14] = VALUES[12] / VALUES[10]; // Ipv = Pac / Spannung +/* + DEBUG_OUT.print(F("P Woche:")); DEBUG_OUT.print(extractValue2(p,1)); + p += 2; + DEBUG_OUT.print(F(" P Total:")); DEBUG_OUT.print(extractValue4(p,1)); + p += 4; + DEBUG_OUT.print(F(" P1 Tag:")); DEBUG_OUT.print(extractValue2(p,1)); + p += 2; + DEBUG_OUT.print(F(" P2 Tag:")); DEBUG_OUT.print(extractValue2(p,1)); + p += 2; + + DEBUG_OUT.print(F(" Spannung:")); DEBUG_OUT.print(extractValue2(p,10)); + p += 2; + DEBUG_OUT.print(F(" Freq.:")); DEBUG_OUT.print(extractValue2(p,100)); + p += 2; + DEBUG_OUT.print(F(" Leist.:")); DEBUG_OUT.print(extractValue2(p,10)); +*/ + DEBUG_OUT.println(); +} + + +void analyse83 (uint8_t *p) { // p zeigt auf 83 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + //DEBUG_OUT.print (F("++++++analyse 83:")); + p += 7; + VALUES[15] = extractValue2 (p,DIVISOR[15]); + outChannel(15); + DEBUG_OUT.println(); +} + +void analyseWords (uint8_t *p) { // p zeigt auf 01 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + DEBUG_OUT.print (F("analyse words:")); + p++; + for (int i = 0; i <12;i++) { + DEBUG_OUT.print(extractValue2(p,1)); + DEBUG_OUT.print(BLANK); + p++; + } + DEBUG_OUT.println(); +} + +void analyseLongs (uint8_t *p) { // p zeigt auf 01 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + DEBUG_OUT.print (F("analyse words:")); + p++; + for (int i = 0; i <12;i++) { + DEBUG_OUT.print(extractValue4(p,1)); + DEBUG_OUT.print(BLANK); + p++; + } + DEBUG_OUT.println(); +} + + +#ifdef ESP8266 +IRAM_ATTR +#endif +void handleNrf1Irq() { +//------------------------- + static uint8_t lostPacketCount = 0; + uint8_t pipe; + + DISABLE_EINT; + + // Loop until RX buffer(s) contain no more packets. + while (radio1.available(&pipe)) { + if (!packetBuffer.full()) { + NRF24_packet_t *p = packetBuffer.getFront(); + p->timestamp = micros(); // Micros does not increase in interrupt, but it can be used. + p->packetsLost = lostPacketCount; + uint8_t packetLen = radio1.getPayloadSize(); + if (packetLen > MAX_RF_PAYLOAD_SIZE) + packetLen = MAX_RF_PAYLOAD_SIZE; + + radio1.read(p->packet, packetLen); + packetBuffer.pushFront(p); + lostPacketCount = 0; + } + else { + // Buffer full. Increase lost packet counter. + bool tx_ok, tx_fail, rx_ready; + if (lostPacketCount < 255) + lostPacketCount++; + // Call 'whatHappened' to reset interrupt status. + radio1.whatHappened(tx_ok, tx_fail, rx_ready); + // Flush buffer to drop the packet. + radio1.flush_rx(); + } + } + ENABLE_EINT; +} + + +static void activateConf(void) { +//----------------------------- + radio1.setChannel(DEFAULT_RECV_CHANNEL); + radio1.setDataRate(DEFAULT_RF_DATARATE); + radio1.disableCRC(); + radio1.setAutoAck(0x00); + radio1.setPayloadSize(MAX_RF_PAYLOAD_SIZE); + radio1.setAddressWidth(5); + radio1.openReadingPipe(1, DTU_RADIO_ID); + + // We want only RX irqs + radio1.maskIRQ(true, true, false); + + // Use lo PA level, as a higher level will disturb CH340 DEBUG_OUT usb adapter + radio1.setPALevel(RF24_PA_MAX); + radio1.startListening(); + + // Attach interrupt handler to NRF IRQ output. Overwrites any earlier handler. + attachInterrupt(digitalPinToInterrupt(RF1_IRQ_PIN), handleNrf1Irq, FALLING); // NRF24 Irq pin is active low. + + // Initialize SerialHdr header's address member to promiscuous address. + uint64_t addr = DTU_RADIO_ID; + for (int8_t i = sizeof(SerialHdr.address) - 1; i >= 0; --i) { + SerialHdr.address[i] = addr; + addr >>= 8; + } + +#ifndef ESP8266 + DEBUG_OUT.println(F("\nRadio Config:")); + radio1.printPrettyDetails(); + DEBUG_OUT.println(); +#endif + tickMillis = millis() + 200; +} + + +void setup(void) { +//-------------- + //Serial.begin(SER_BAUDRATE); + DEBUG_OUT.begin(SER_BAUDRATE); + DEBUG_OUT.flush(); + + DEBUG_OUT.println(F("-- Hoymiles DTU Simulation --")); + + radio1.begin(); + + // Disable shockburst for receiving and decode payload manually + radio1.setAutoAck(false); + radio1.setRetries(0, 0); + + // Configure nRF IRQ input + pinMode(RF1_IRQ_PIN, INPUT); + + activateConf(); + +#ifdef ESP8266 + setupWifi(); + setupClock(); + setupWebServer(); + setupUpdateByOTA(); + calcSunUpDown (getNow()); + istTag = isDayTime(); + DEBUG_OUT.print ("Es ist "); DEBUG_OUT.println (istTag?"Tag":"Nacht"); + hmPackets.SetUnixTimeStamp (getNow()); +#else + hmPackets.SetUnixTimeStamp(0x62456430); +#endif +} + + uint8_t sendBuf[MAX_RF_PAYLOAD_SIZE]; + +void isTime2Send () { +//----------------- + // Second timer + + if (millis() >= tickMillis) { + static uint8_t tel = 0; + tickMillis += 1000; //200; + //tickSec++; + hmPackets.UnixTimeStampTick(); +/* if (++tickSec >= 5) { // 5 + hmPackets.UnixTimeStampTick(); + tickSec = 0; + } */ + + int32_t size = 0; + uint64_t dest = WR1_RADIO_ID; + + if (tel > 5) + tel = 0; + + if (tel == 0) { + #ifdef ESP8266 + hmPackets.SetUnixTimeStamp (getNow()); + #endif + size = hmPackets.GetTimePacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8); + } + else if (tel == 1) + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x81); + else if (tel == 2) + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x80); + else if (tel == 3) { + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x83); + //tel = 0; + } + else if (tel == 4) + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x82); + else if (tel == 5) + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x84); + + SendPacket(dest, (uint8_t *)&sendBuf, size); + + tel++; + +/* for (uint8_t warte = 0; warte < 2; warte++) { + delay(1000); + hmPackets.UnixTimeStampTick(); + }*/ + } +} + + +void outputPacket(NRF24_packet_t *p, uint8_t payloadLen) { +//----------------------------------------------------- + + // Write timestamp, packets lost, address and payload length + //printf(" %09lu ", SerialHdr.timestamp); + dumpData((uint8_t *)&SerialHdr.packetsLost, sizeof(SerialHdr.packetsLost)); + dumpData((uint8_t *)&SerialHdr.address, sizeof(SerialHdr.address)); + + // Trailing bit?!? + dumpData(&p->packet[0], 2); + + // Payload length from PCF + dumpData(&payloadLen, sizeof(payloadLen)); + + // Packet control field - PID Packet identification + uint8_t val = (p->packet[1] >> 1) & 0x03; + DEBUG_OUT.print(val); + DEBUG_OUT.print(F(" ")); + + if (payloadLen > 9) { + dumpData(&p->packet[2], 1); + dumpData(&p->packet[3], 4); + dumpData(&p->packet[7], 4); + + uint16_t remain = payloadLen - 2 - 1 - 4 - 4 + 4; + + if (remain < 32) { + dumpData(&p->packet[11], remain); + printf_P(PSTR("%04X "), crc); + + if (((crc >> 8) != p->packet[payloadLen + 2]) || ((crc & 0xFF) != p->packet[payloadLen + 3])) + DEBUG_OUT.print(0); + else + DEBUG_OUT.print(1); + } + else { + DEBUG_OUT.print(F("Ill remain ")); + DEBUG_OUT.print(remain); + } + } + else { + dumpData(&p->packet[2], payloadLen + 2); + printf_P(PSTR("%04X "), crc); + } + DEBUG_OUT.println(); +} + + +void loop(void) { +//============= + while (!packetBuffer.empty()) { + timeLastPacket = millis(); + // One or more records present + NRF24_packet_t *p = packetBuffer.getBack(); + + // Shift payload data due to 9-bit packet control field + for (int16_t j = sizeof(p->packet) - 1; j >= 0; j--) { + if (j > 0) + p->packet[j] = (byte)(p->packet[j] >> 7) | (byte)(p->packet[j - 1] << 1); + else + p->packet[j] = (byte)(p->packet[j] >> 7); + } + + SerialHdr.timestamp = p->timestamp; + SerialHdr.packetsLost = p->packetsLost; + + // Check CRC + crc = 0xFFFF; + crc = crc16((uint8_t *)&SerialHdr.address, sizeof(SerialHdr.address), crc, 0, BYTES_TO_BITS(sizeof(SerialHdr.address))); + // Payload length + uint8_t payloadLen = ((p->packet[0] & 0x01) << 5) | (p->packet[1] >> 3); + // Add one byte and one bit for 9-bit packet control field + crc = crc16((uint8_t *)&p->packet[0], sizeof(p->packet), crc, 7, BYTES_TO_BITS(payloadLen + 1) + 1); + + if (CHECKCRC) { + // If CRC is invalid only show lost packets + if (((crc >> 8) != p->packet[payloadLen + 2]) || ((crc & 0xFF) != p->packet[payloadLen + 3])) { + if (p->packetsLost > 0) { + DEBUG_OUT.print(F(" Lost: ")); + DEBUG_OUT.println(p->packetsLost); + } + packetBuffer.popBack(); + continue; + } + + // Dump a decoded packet only once + if (lastCRC == crc) { + packetBuffer.popBack(); + continue; + } + lastCRC = crc; + } + + // Don't dump mysterious ack packages + if (payloadLen == 0) { + packetBuffer.popBack(); + continue; + } + + #ifdef DEBUG + outputPacket (p, payloadLen); + #endif + + uint8_t cmd = p->packet[11]; + if (cmd == 0x02) + analyse02 (&p->packet[11]); + else if (cmd == 0x01) + analyse01 (&p->packet[11]); + //if (p->packet[11] == 0x83 || p->packet[11] == 0x82) analyse83 (&p->packet[11], payloadLen); + else if (cmd == 0x03) { + analyseWords (&p->packet[11]); + analyseLongs (&p->packet[11]); + } + else if (cmd == 0x81) // ??? + ; + else if (cmd == 0x83) + analyse83 (&p->packet[11]); + else { + DEBUG_OUT.print (F("---- neues cmd=")); DEBUG_OUT.println(cmd, HEX); + analyseWords (&p->packet[11]); + analyseLongs (&p->packet[11]); + } + if (p->packetsLost > 0) { + DEBUG_OUT.print(F(" Lost: ")); + DEBUG_OUT.print(p->packetsLost); + } + DEBUG_OUT.println(); + + #ifndef ESP8266 + for (uint8_t i = 0; i < ANZAHL_VALUES; i++) { + //outChannel(i); + Serial.print(getChannelName(i)); Serial.print(':'); Serial.print(VALUES[i]); Serial.println(BLANK); // Schnittstelle bei Arduino + } + DEBUG_OUT.println(); + #endif + + // Remove record as we're done with it. + packetBuffer.popBack(); + } + + if (istTag) + isTime2Send(); + + #ifdef ESP8266 + checkWifi(); + webserverHandle(); + checkUpdateByOTA(); + if (hour() == 0 && minute() == 0) { + calcSunUpDown(getNow()); + } + if (minute() % 15 == 0 && second () == 0) { // alle 15 Minuten neu berechnen ob noch hell + istTag = isDayTime(); + DEBUG_OUT.print ("Es ist "); DEBUG_OUT.println (istTag?"Tag":"Nacht"); + } + #endif +/* + if (millis() > timeLastPacket + 60UL*SECOND) { // 60 Sekunden + channelIdx++; + if (channelIdx >= sizeof(channels)) channelIdx = 0; + DEFAULT_SEND_CHANNEL = channels[channelIdx]; + DEBUG_OUT.print (F("\nneuer DEFAULT_SEND_CHANNEL: ")); DEBUG_OUT.println(DEFAULT_SEND_CHANNEL); + timeLastPacket = millis(); + } +*/ +} + + +static void SendPacket(uint64_t dest, uint8_t *buf, uint8_t len) { +//-------------------------------------------------------------- + DISABLE_EINT; + radio1.stopListening(); + +#ifdef CHANNEL_HOP + static uint8_t hop = 0; + #if DEBUG_SEND + DEBUG_OUT.print(F("Send... CH")); + DEBUG_OUT.println(channels[hop]); + #endif + radio1.setChannel(channels[hop++]); + if (hop >= sizeof(channels) / sizeof(channels[0])) + hop = 0; +#else + radio1.setChannel(DEFAULT_SEND_CHANNEL); +#endif + + radio1.openWritingPipe(dest); + radio1.setCRCLength(RF24_CRC_16); + radio1.enableDynamicPayloads(); + radio1.setAutoAck(true); + radio1.setRetries(3, 15); + + radio1.write(buf, len); + + // Try to avoid zero payload acks (has no effect) + radio1.openWritingPipe(DUMMY_RADIO_ID); + + radio1.setAutoAck(false); + radio1.setRetries(0, 0); + radio1.disableDynamicPayloads(); + radio1.setCRCLength(RF24_CRC_DISABLED); + + radio1.setChannel(DEFAULT_RECV_CHANNEL); + radio1.startListening(); + ENABLE_EINT; +} diff --git a/tools/NRF24_SendRcv/NRF24_sniff_types.h b/tools/NRF24_SendRcv/NRF24_sniff_types.h new file mode 100644 index 00000000..7a032df5 --- /dev/null +++ b/tools/NRF24_SendRcv/NRF24_sniff_types.h @@ -0,0 +1,55 @@ +/* + This file is part of NRF24_Sniff. + + Created by Ivo Pullens, Emmission, 2014 -- www.emmission.nl + + NRF24_Sniff is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + NRF24_Sniff is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with NRF24_Sniff. If not, see . +*/ + +#ifndef NRF24_sniff_types_h +#define NRF24_sniff_types_h + +typedef struct _NRF24_packet_t +{ + uint32_t timestamp; + uint8_t packetsLost; + uint8_t packet[MAX_RF_PAYLOAD_SIZE]; +} NRF24_packet_t; + +typedef struct _Serial_header_t +{ + unsigned long timestamp; + uint8_t packetsLost; + uint8_t address[RF_MAX_ADDR_WIDTH]; // MSB first, always RF_MAX_ADDR_WIDTH bytes. +} Serial_header_t; + +typedef struct _Serial_config_t +{ + uint8_t channel; + uint8_t rate; // rf24_datarate_e: 0 = 1Mb/s, 1 = 2Mb/s, 2 = 250Kb/s + uint8_t addressLen; // Number of bytes used in address, range [2..5] + uint8_t addressPromiscLen; // Number of bytes used in promiscuous address, range [2..5]. E.g. addressLen=5, addressPromiscLen=4 => 1 byte unique identifier. + uint64_t address; // Base address, LSB first. + uint8_t crcLength; // Length of active CRC, range [0..2] + uint8_t maxPayloadSize; // Maximum size of payload for nRF (including nRF header), range[4?..32] +} Serial_config_t; + +#define MSG_TYPE_PACKET (0) +#define MSG_TYPE_CONFIG (1) + +#define SET_MSG_TYPE(var,type) (((var) & 0x3F) | ((type) << 6)) +#define GET_MSG_TYPE(var) ((var) >> 6) +#define GET_MSG_LEN(var) ((var) & 0x3F) + +#endif // NRF24_sniff_types_h diff --git a/tools/NRF24_SendRcv/Settings.h b/tools/NRF24_SendRcv/Settings.h new file mode 100644 index 00000000..27e2453d --- /dev/null +++ b/tools/NRF24_SendRcv/Settings.h @@ -0,0 +1,82 @@ +#ifndef __SETTINGS_H +#define __SETTINGS_H + +// Ausgabe von Debug Infos auf der seriellen Console +#define DEBUG +#define SER_BAUDRATE (115200) + +// Ausgabe was gesendet wird; 0 oder 1 +#define DEBUG_SEND 0 + +// soll zwichen den Sendekanälen 23, 40, 61, 75 ständig gewechselt werden +#define CHANNEL_HOP + +// mit OTA Support, also update der Firmware über WLan mittels IP/update +#define WITH_OTA + +// Hardware configuration +#ifdef ESP8266 +#define RF1_CE_PIN (D4) +#define RF1_CS_PIN (D8) +#define RF1_IRQ_PIN (D3) +#else +#define RF1_CE_PIN (9) +#define RF1_CS_PIN (10) +#define RF1_IRQ_PIN (2) +#endif + +union longlongasbytes { + uint64_t ull; + uint8_t bytes[8]; +}; + + +uint64_t Serial2RadioID (uint64_t sn) { +//---------------------------------- + longlongasbytes llsn; + longlongasbytes res; + llsn.ull = sn; + res.ull = 0; + res.bytes[4] = llsn.bytes[0]; + res.bytes[3] = llsn.bytes[1]; + res.bytes[2] = llsn.bytes[2]; + res.bytes[1] = llsn.bytes[3]; + res.bytes[0] = 0x01; + return res.ull; +} + +// WR und DTU +#define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) +#define SerialWR 0x114172607952ULL // <<<<<<<<<<<<<<<<<<<<<<< anpassen +uint64_t WR1_RADIO_ID = Serial2RadioID (SerialWR); // ((uint64_t)0x5279607201ULL); +#define DTU_RADIO_ID ((uint64_t)0x1234567801ULL) + + +// Webserver +#define WEBSERVER_PORT 80 + +// Time Server +//#define TIMESERVER_NAME "pool.ntp.org" +#define TIMESERVER_NAME "fritz.box" + +#ifdef WITH_OTA +// OTA Einstellungen +#define UPDATESERVER_PORT WEBSERVER_PORT+1 +#define UPDATESERVER_DIR "/update" // mittels IP:81/update kommt man dann auf die OTA-Seite +#define UPDATESERVER_USER "username_für_OTA" // <<<<<<<<<<<<<<<<<<<<<<< anpassen +#define UPDATESERVER_PW "passwort_für_OTA" // <<<<<<<<<<<<<<<<<<<<<<< anpassen +#endif + +// internes WLan +// PREFIXE dienen dazu, die eigenen WLans (wenn mehrere) vonfremden zu unterscheiden +// gehe hier davon aus, dass alle WLans das gleiche Passwort haben. Wenn nicht, dann mehre Passwörter hinterlegen +#define SSID_PREFIX1 "wlan1-Prefix" // <<<<<<<<<<<<<<<<<<<<<<< anpassen +#define SSID_PREFIX2 "wlan2-Prefix" // <<<<<<<<<<<<<<<<<<<<<<< anpassen +#define SSID_PASSWORD "wlan-passwort" // <<<<<<<<<<<<<<<<<<<<<<< anpassen + +// zur Berechnung von Sonnenauf- und -untergang +#define geoBreite 49.2866 +#define geoLaenge 7.3416 + + +#endif diff --git a/tools/NRF24_SendRcv/Sonne.h b/tools/NRF24_SendRcv/Sonne.h new file mode 100644 index 00000000..ce70a150 --- /dev/null +++ b/tools/NRF24_SendRcv/Sonne.h @@ -0,0 +1,55 @@ +#ifndef __SONNE_H +#define __SONNE_H + +#include "Settings.h" +#include "Debug.h" + + +long SunDown, SunUp; + +void calcSunUpDown (time_t date) { + //SunUpDown res = new SunUpDown(); + boolean isSummerTime = false; // TODO TimeZone.getDefault().inDaylightTime(new Date(date)); + + //- Bogenma� + double brad = geoBreite / 180.0 * PI; + // - H�he Sonne -50 Bogenmin. + double h0 = -50.0 / 60.0 / 180.0 * PI; + //- Deklination dek, Tag des Jahres d0 + int tage = 30 * month(date) - 30 + day(date); + double dek = 0.40954 * sin (0.0172 * (tage - 79.35)); + double zh1 = sin (h0) - sin (brad) * sin(dek); + double zh2 = cos(brad) * cos(dek); + double zd = 12*acos (zh1/zh2) / PI; + double zgl = -0.1752 * sin (0.03343 * tage + 0.5474) - 0.134 * sin (0.018234 * tage - 0.1939); + //-Sonnenuntergang + double tsu = 12 + zd - zgl; + double su = (tsu + (15.0 - geoLaenge) / 15.0); + int std = (int)su; + int minute = (int) ((su - std)*60); + if (isSummerTime) std++; + SunDown = (100*std + minute) * 100; + + //- Sonnenaufgang + double tsa = 12 - zd - zgl; + double sa = (tsa + (15.0 - geoLaenge) /15.0); + std = (int) sa; + minute = (int) ((sa - std)*60); + if (isSummerTime) std++; + SunUp = (100*std + minute) * 100; + DEBUG_OUT.print("Sonnenaufgang :"); DEBUG_OUT.println(SunUp); + DEBUG_OUT.print("Sonnenuntergang:"); DEBUG_OUT.println(SunDown); +} + +boolean isDayTime() { +//----------------- +// 900 = 15 Minuten, vor Sonnenaufgang und nach -untergang + const int offset=60*15; + time_t no = getNow(); + long jetztMinuteU = (100 * hour(no+offset) + minute(no+offset)) * 100; + long jetztMinuteO = (100 * hour(no-offset) + minute(no-offset)) * 100; + + return ((jetztMinuteU >= SunUp) &&(jetztMinuteO <= SunDown)); +} + +#endif diff --git a/tools/NRF24_SendRcv/hm_crc.cpp b/tools/NRF24_SendRcv/hm_crc.cpp new file mode 100644 index 00000000..74d41ce3 --- /dev/null +++ b/tools/NRF24_SendRcv/hm_crc.cpp @@ -0,0 +1,142 @@ + +#include +#include +#include "hm_crc.h" +//#define OUTPUT_DEBUG_INFO + +/* Table of CRC values for high-order byte */ +static const uint8_t auchCRCHi[] = { + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, + 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, + 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, + 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, + 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, + 0x40}; + +/* Table of CRC values for low-order byte */ +static const uint8_t auchCRCLo[] = { + 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, + 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, + 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, + 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, + 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, + 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, + 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, + 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, + 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, + 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, + 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, + 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, + 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, + 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, + 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, + 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, + 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, + 0x40}; + +uint16_t crc16_modbus(uint8_t *puchMsg, uint16_t usDataLen) +{ + uint8_t uchCRCHi = 0xFF; /* high byte of CRC initialized */ + uint8_t uchCRCLo = 0xFF; /* low byte of CRC initialized */ + uint16_t uIndex; /* will index into CRC lookup table */ + while (usDataLen--) /* pass through message buffer */ + { + uIndex = uchCRCLo ^ *puchMsg++; /* calculate the CRC */ + uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex]; + uchCRCHi = auchCRCLo[uIndex]; + } + return (uchCRCHi << 8 | uchCRCLo); +} + +// Hoymiles CRC8 calculation with poly 0x01, Initial value 0x00 and final XOR 0x00 +uint8_t crc8(uint8_t *buf, const uint16_t bufLen) +{ + uint32_t crc; + uint16_t i, bit; + + crc = 0x00; + for (i = 0; i < bufLen; i++) + { + crc ^= buf[i]; + for (bit = 0; bit < 8; bit++) + { + if ((crc & 0x80) != 0) + { + crc <<= 1; + crc ^= 0x01; + } + else + { + crc <<= 1; + } + } + } + + return (crc & 0xFF); +} + +// NRF24 CRC16 calculation with poly 0x1021 = (1) 0001 0000 0010 0001 = x^16+x^12+x^5+1 +uint16_t crc16(uint8_t *buf, const uint16_t bufLen, const uint16_t startCRC, const uint16_t startBit, const uint16_t len_bits) +{ + uint16_t crc = startCRC; + if ((len_bits > 0) && (len_bits <= BYTES_TO_BITS(bufLen))) + { + // The length of the data might not be a multiple of full bytes. + // Therefore we proceed over the data bit-by-bit (like the NRF24 does) to + // calculate the CRC. + uint16_t data; + uint8_t byte, shift; + uint16_t bitoffs = startBit; + + // Get a new byte for the next 8 bits. + byte = buf[bitoffs >> 3]; +#ifdef OUTPUT_DEBUG_INFO + printf("\nStart CRC %04X, %u bits:", startCRC, len_bits); + printf("\nbyte %02X:", byte); +#endif + while (bitoffs < len_bits + startBit) + { + shift = bitoffs & 7; + // Shift the active bit to the position of bit 15 + data = ((uint16_t)byte) << (8 + shift); +#ifdef OUTPUT_DEBUG_INFO + printf(" bit %u %u,", shift, data & 0x8000 ? 1 : 0); +#endif + // Assure all other bits are 0 + data &= 0x8000; + crc ^= data; + if (crc & 0x8000) + { + crc = (crc << 1) ^ 0x1021; // 0x1021 = (1) 0001 0000 0010 0001 = x^16+x^12+x^5+1 + } + else + { + crc = (crc << 1); + } + ++bitoffs; + if (0 == (bitoffs & 7)) + { + // Get a new byte for the next 8 bits. + byte = buf[bitoffs >> 3]; +#ifdef OUTPUT_DEBUG_INFO + printf("crc %04X:", crc); + if (bitoffs < len_bits + startBit) + printf("\nbyte %02X:", byte); +#endif + } + } + } + return crc; +} \ No newline at end of file diff --git a/tools/NRF24_SendRcv/hm_crc.h b/tools/NRF24_SendRcv/hm_crc.h new file mode 100644 index 00000000..7f3c32e3 --- /dev/null +++ b/tools/NRF24_SendRcv/hm_crc.h @@ -0,0 +1,8 @@ + + +#define BITS_TO_BYTES(x) (((x)+7)>>3) +#define BYTES_TO_BITS(x) ((x)<<3) + +extern uint16_t crc16_modbus(uint8_t *puchMsg, uint16_t usDataLen); +extern uint8_t crc8(uint8_t *buf, const uint16_t bufLen); +extern uint16_t crc16(uint8_t* buf, const uint16_t bufLen, const uint16_t startCRC, const uint16_t startBit, const uint16_t len_bits); \ No newline at end of file diff --git a/tools/NRF24_SendRcv/hm_packets.cpp b/tools/NRF24_SendRcv/hm_packets.cpp new file mode 100644 index 00000000..7b09df61 --- /dev/null +++ b/tools/NRF24_SendRcv/hm_packets.cpp @@ -0,0 +1,74 @@ +#include "Arduino.h" + +#include "hm_crc.h" +#include "hm_packets.h" + +void HM_Packets::SetUnixTimeStamp(uint32_t ts) +{ + unixTimeStamp = ts; +} + +void HM_Packets::UnixTimeStampTick() +{ + unixTimeStamp++; +} + +void HM_Packets::prepareBuffer(uint8_t *buf) +{ + // minimal buffer size of 32 bytes is assumed + memset(buf, 0x00, 32); +} + +void HM_Packets::copyToBuffer(uint8_t *buf, uint32_t val) +{ + buf[0]= (uint8_t)(val >> 24); + buf[1]= (uint8_t)(val >> 16); + buf[2]= (uint8_t)(val >> 8); + buf[3]= (uint8_t)(val & 0xFF); +} + +void HM_Packets::copyToBufferBE(uint8_t *buf, uint32_t val) +{ + memcpy(buf, &val, sizeof(uint32_t)); +} + + +int32_t HM_Packets::GetTimePacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr) +{ + prepareBuffer(buf); + + buf[0] = 0x15; + copyToBufferBE(&buf[1], wrAdr); + copyToBufferBE(&buf[5], dtuAdr); + buf[9] = 0x80; + + buf[10] = 0x0B; // cid + buf[11] = 0x00; + + copyToBuffer(&buf[12], unixTimeStamp); + + buf[19] = 0x05; + + // CRC16 + uint16_t crc16 = crc16_modbus(&buf[10], 14); + buf[24] = crc16 >> 8; + buf[25] = crc16 & 0xFF; + + // crc8 + buf[26] = crc8(&buf[0], 26); + + return 27; +} + +int32_t HM_Packets::GetCmdPacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr, uint8_t mid, uint8_t cmd) +{ + buf[0] = mid; + copyToBufferBE(&buf[1], wrAdr); + copyToBufferBE(&buf[5], dtuAdr); + buf[9] = cmd; + + // crc8 + buf[10] = crc8(&buf[0], 10); + + return 11; +} diff --git a/tools/NRF24_SendRcv/hm_packets.h b/tools/NRF24_SendRcv/hm_packets.h new file mode 100644 index 00000000..1c8aca45 --- /dev/null +++ b/tools/NRF24_SendRcv/hm_packets.h @@ -0,0 +1,18 @@ + + +class HM_Packets +{ +private: + uint32_t unixTimeStamp; + + void prepareBuffer(uint8_t *buf); + void copyToBuffer(uint8_t *buf, uint32_t val); + void copyToBufferBE(uint8_t *buf, uint32_t val); + +public: + void SetUnixTimeStamp(uint32_t ts); + void UnixTimeStampTick(); + + int32_t GetTimePacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr); + int32_t GetCmdPacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr, uint8_t mid, uint8_t cmd); +}; diff --git a/tools/NRF24_SendRcv/wifi.h b/tools/NRF24_SendRcv/wifi.h new file mode 100644 index 00000000..d98cc40f --- /dev/null +++ b/tools/NRF24_SendRcv/wifi.h @@ -0,0 +1,345 @@ +#ifndef __WIFI_H +#define __WIFI_H + +#include "Settings.h" +#include "Debug.h" +#include +#include // von url=https://www.technologytourist.com + +String SSID = ""; // bestes WLan + +// Prototypes +time_t getNow (); +boolean setupWifi (); +boolean checkWifi(); + + +String findWifi () { +//---------------- + String ssid; + int32_t rssi; + uint8_t encryptionType; + uint8_t* bssid; + int32_t channel; + bool hidden; + int scanResult; + + String best_ssid = ""; + int32_t best_rssi = -100; + + DEBUG_OUT.println(F("Starting WiFi scan...")); + + scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true); + + if (scanResult == 0) { + DEBUG_OUT.println(F("keine WLans")); + } else if (scanResult > 0) { + DEBUG_OUT.printf(PSTR("%d WLans gefunden:\n"), scanResult); + + // Print unsorted scan results + for (int8_t i = 0; i < scanResult; i++) { + WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden); + + DEBUG_OUT.printf(PSTR(" %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"), + i, + channel, + bssid[0], bssid[1], bssid[2], + bssid[3], bssid[4], bssid[5], + rssi, + (encryptionType == ENC_TYPE_NONE) ? ' ' : '*', + hidden ? 'H' : 'V', + ssid.c_str()); + delay(1); + boolean check; + #ifdef SSID_PREFIX1 + check = ssid.substring(0,strlen(SSID_PREFIX1)).equals(SSID_PREFIX1); + #else + check = true; + #endif + #ifdef SSID_PREFIX2 + check = check || ssid.substring(0,strlen(SSID_PREFIX2)).equals(SSID_PREFIX2); + #endif + if (check) { + if (rssi > best_rssi) { + best_rssi = rssi; + best_ssid = ssid; + } + } + } + } else { + DEBUG_OUT.printf(PSTR("WiFi scan error %d"), scanResult); + } + + if (! best_ssid.equals("")) { + SSID = best_ssid; + DEBUG_OUT.printf ("Bestes Wifi unter: %s\n", SSID.c_str()); + return SSID; + } + else + return ""; +} + +void IP2string (IPAddress IP, char * buf) { + sprintf (buf, "%d.%d.%d.%d", IP[0], IP[1], IP[2], IP[3]); +} + +void connectWifi() { +//------------------ +// if (SSID.equals("")) + String s = findWifi(); + + if (!SSID.equals("")) { + DEBUG_OUT.print("versuche zu verbinden mit "); DEBUG_OUT.println(SSID); + //while (WiFi.status() != WL_CONNECTED) { + WiFi.begin (SSID, SSID_PASSWORD); + int versuche = 20; + while (WiFi.status() != WL_CONNECTED && versuche > 0) { + delay(1000); + versuche--; + DEBUG_OUT.print(versuche); DEBUG_OUT.print(' '); + } + //} + if (WiFi.status() == WL_CONNECTED) { + char buffer[30]; + IP2string (WiFi.localIP(), buffer); + String out = "\n[WiFi]Verbunden; meine IP:" + String (buffer); + DEBUG_OUT.println (out); + } + else + DEBUG_OUT.print("\nkeine Verbindung mit SSID "); DEBUG_OUT.println(SSID); + } +} + + +boolean setupWifi () { +//------------------ + int count=5; + while (count-- && WiFi.status() != WL_CONNECTED) + connectWifi(); + return (WiFi.status() == WL_CONNECTED); +} + + +Pinger pinger; +IPAddress ROUTER = IPAddress(192,168,1,1); + +boolean checkWifi() { +//--------------- + boolean NotConnected = (WiFi.status() != WL_CONNECTED) || !pinger.Ping(ROUTER); + if (NotConnected) { + setupWifi(); + if (WiFi.status() == WL_CONNECTED) + getNow(); + } + return (WiFi.status() == WL_CONNECTED); +} + + + +// ################ Clock ################# + +#include +#include + +IPAddress timeServer; +unsigned int localPort = 8888; +const int NTP_PACKET_SIZE= 48; // NTP time stamp is in the first 48 bytes of the message +byte packetBuf[NTP_PACKET_SIZE]; // Buffer to hold incoming and outgoing packets +const int timeZone = 1; // Central European Time = +1 +long SYNCINTERVALL = 0; +WiFiUDP Udp; // A UDP instance to let us send and receive packets over UDP + +// prototypes +time_t getNtpTime (); +void sendNTPpacket (IPAddress &address); +time_t getNow (); +char* getDateTimeStr (time_t no = getNow()); +time_t offsetDayLightSaving (uint32_t local_t); +bool isDayofDaylightChange (time_t local_t); + + +void _setSyncInterval (long intervall) { +//---------------------------------------- + SYNCINTERVALL = intervall; + setSyncInterval (intervall); +} + +void setupClock() { +//----------------- + WiFi.hostByName (TIMESERVER_NAME,timeServer); // at this point the function works + + Udp.begin(localPort); + + getNtpTime(); + + setSyncProvider (getNtpTime); + while(timeStatus()== timeNotSet) + delay(1); // + + _setSyncInterval (SECS_PER_DAY / 2); // Set seconds between re-sync + + //lastClock = now(); + //Serial.print("[NTP] get time from NTP server "); + getNow(); + //char buf[20]; + DEBUG_OUT.print ("[NTP] get time from NTP server "); + DEBUG_OUT.print (timeServer); + //sprintf (buf, ": %02d:%02d:%02d", hour(no), minute(no), second(no)); + DEBUG_OUT.print (": got "); + DEBUG_OUT.println (getDateTimeStr()); +} + +//*-------- NTP code ----------*/ + + +time_t getNtpTime() { +//------------------- + sendNTPpacket(timeServer); // send an NTP packet to a time server + //uint32_t beginWait = millis(); + //while (millis() - beginWait < 1500) { + int versuch = 0; + while (versuch < 5) { + int wait = 150; // results in max 1500 ms waitTime + while (wait--) { + int size = Udp.parsePacket(); + if (size >= NTP_PACKET_SIZE) { + //Serial.println("Receive NTP Response"); + Udp.read(packetBuf, NTP_PACKET_SIZE); // read packet into the buffer + unsigned long secsSince1900; + // convert four bytes starting at location 40 to a long integer + secsSince1900 = (unsigned long)packetBuf[40] << 24; + secsSince1900 |= (unsigned long)packetBuf[41] << 16; + secsSince1900 |= (unsigned long)packetBuf[42] << 8; + secsSince1900 |= (unsigned long)packetBuf[43]; + // time_t now = secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR; + + time_t utc = secsSince1900 - 2208988800UL; + time_t now = utc + (timeZone +offsetDayLightSaving(utc)) * SECS_PER_HOUR; + + if (isDayofDaylightChange (utc) && hour(utc) <= 4) + _setSyncInterval (SECS_PER_HOUR); + else + _setSyncInterval (SECS_PER_DAY / 2); + + return now; + } + else + delay(10); + } + versuch++; + } + return 0; +} + +// send an NTP request to the time server at the given address +void sendNTPpacket(IPAddress& address) { +//------------------------------------ + memset(packetBuf, 0, NTP_PACKET_SIZE); // set all bytes in the buffer to 0 + // Initialize values needed to form NTP request + packetBuf[0] = B11100011; // LI, Version, Mode + packetBuf[1] = 0; // Stratum + packetBuf[2] = 6; // Max Interval between messages in seconds + packetBuf[3] = 0xEC; // Clock Precision + // bytes 4 - 11 are for Root Delay and Dispersion and were set to 0 by memset + packetBuf[12] = 49; // four-byte reference ID identifying + packetBuf[13] = 0x4E; + packetBuf[14] = 49; + packetBuf[15] = 52; + // send the packet requesting a timestamp: + Udp.beginPacket(address, 123); //NTP requests are to port 123 + Udp.write(packetBuf,NTP_PACKET_SIZE); + Udp.endPacket(); + +} + +int getTimeTrials = 0; + +bool isValidDateTime (time_t no) { + return (year(no) > 2020 && year(no) < 2038); +} + +bool isDayofDaylightChange (time_t local_t) { +//----------------------------------------- + int jahr = year (local_t); + int monat = month (local_t); + int tag = day (local_t); + bool ret = ( (monat ==3 && tag == (31 - (5 * jahr /4 + 4) % 7)) || + (monat==10 && tag == (31 - (5 * jahr /4 + 1) % 7))); + DEBUG_OUT.print ("isDayofDaylightChange="); DEBUG_OUT.println (ret); + return ret; +} + +// calculates the daylight saving time for middle Europe. Input: Unixtime in UTC (!) +// übernommen von Jurs, see : https://forum.arduino.cc/index.php?topic=172044.msg1278536#msg1278536 +time_t offsetDayLightSaving (uint32_t local_t) { +//-------------------------------------------- + int monat = month (local_t); + if (monat < 3 || monat > 10) return 0; // no DSL in Jan, Feb, Nov, Dez + if (monat > 3 && monat < 10) return 1; // DSL in Apr, May, Jun, Jul, Aug, Sep + int jahr = year (local_t); + int std = hour (local_t); + //int tag = day (local_t); + int stundenBisHeute = (std + 24 * day(local_t)); + if ( (monat == 3 && stundenBisHeute >= (1 + timeZone + 24 * (31 - (5 * jahr /4 + 4) % 7))) || + (monat == 10 && stundenBisHeute < (1 + timeZone + 24 * (31 - (5 * jahr /4 + 1) % 7))) ) + return 1; + else + return 0; + /* + int stundenBisWechsel = (1 + 24 * (31 - (5 * year(local_t) / 4 + 4) % 7)); + if (monat == 3 && stundenBisHeute >= stundenBisWechsel || monat == 10 && stundenBisHeute < stundenBisWechsel) + return 1; + else + return 0; + */ +} + + +time_t getNow () { +//--------------- + time_t jetzt = now(); + while (!isValidDateTime(jetzt) && getTimeTrials < 10) { // ungültig, max 10x probieren + if (getTimeTrials) { + //Serial.print (getTimeTrials); + //Serial.println(". Versuch für getNtpTime"); + } + jetzt = getNtpTime (); + if (isValidDateTime(jetzt)) { + setTime (jetzt); + getTimeTrials = 0; + } + else + getTimeTrials++; + } + //return jetzt + offsetDayLightSaving(jetzt)*SECS_PER_HOUR; + return jetzt; +} + + +char _timestr[24]; + +char* getNowStr (time_t no = getNow()) { +//------------------------------------ + sprintf (_timestr, "%02d:%02d:%02d", hour(no), minute(no), second(no)); + return _timestr; +} + +char* getTimeStr (time_t no = getNow()) { +//------------------------------------ + return getNowStr (no); +} + +char* getDateTimeStr (time_t no) { +//------------------------------ + sprintf (_timestr, "%04d-%02d-%02d+%02d:%02d:%02d", year(no), month(no), day(no), hour(no), minute(no), second(no)); + return _timestr; +} + +char* getDateStr (time_t no) { +//------------------------------ + sprintf (_timestr, "%04d-%02d-%02d", year(no), month(no), day(no)); + return _timestr; +} + + +#endif From a3e5fd93f27ae3383d6cbc23fd0d0e8d7b82b34b Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 27 Apr 2022 17:39:56 +0200 Subject: [PATCH 31/58] Revert "fixed size" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 11113da53ee495b807920cb78b2771d4085f82a4. brachte nicht die Lösung --- tools/esp8266/app.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 178d9d78..2addd94c 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -430,7 +430,7 @@ void app::showLiveData(void) { #else // dump all data to web frontend modHtml = "
";
-            char topic[30], val[12];
+            char topic[30], val[10];
             for(uint8_t i = 0; i < iv->listLen; i++) {
                 snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i));
                 snprintf(val, 12, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i));

From aa2c495d2fcd0e8159e24472d3590465a423ec91 Mon Sep 17 00:00:00 2001
From: Marcus 
Date: Wed, 27 Apr 2022 17:40:33 +0200
Subject: [PATCH 32/58] =?UTF-8?q?Revert=20"*=20Divisor=20HM-400=20angepass?=
 =?UTF-8?q?t=20(f=C3=BCr=20Wh)"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reverts commit c65607026c328ba019aa70b0be7088c276596ecf.
---
 tools/esp8266/app.cpp       | 2 +-
 tools/esp8266/hmInverters.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp
index 2addd94c..63670a14 100644
--- a/tools/esp8266/app.cpp
+++ b/tools/esp8266/app.cpp
@@ -433,7 +433,7 @@ void app::showLiveData(void) {
             char topic[30], val[10];
             for(uint8_t i = 0; i < iv->listLen; i++) {
                 snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i));
-                snprintf(val, 12, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i));
+                snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i));
                 modHtml += String(topic) + ": " + String(val) + "\n";
             }
             modHtml += "
"; diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 0b516410..0226a8cf 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -64,7 +64,7 @@ const byteAssign_t hm400assignment[] = { { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, { FLD_PDC, UNIT_W, CH1, CMD01, 7, 2, 10 }, { FLD_YT, UNIT_KWH, CH1, CMD01, 9, 4, 1000 }, - { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1 }, + { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1000 }, { FLD_UAC, UNIT_V, CH0, CMD01, 15, 2, 10 }, { FLD_F, UNIT_HZ, CH0, CMD82, 1, 2, 100 }, { FLD_PAC, UNIT_W, CH0, CMD82, 3, 2, 10 }, From 20cd77a6c273eb8f7f6b170d7d2641277fb71fbe Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 27 Apr 2022 17:41:59 +0200 Subject: [PATCH 33/58] =?UTF-8?q?Revert=20"*=20Divisor=20HM-400=20angepass?= =?UTF-8?q?t=20(f=C3=BCr=20Wh)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit c65607026c328ba019aa70b0be7088c276596ecf. fixed divisor to show Wh --- tools/esp8266/hmInverters.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h index 0226a8cf..0b516410 100644 --- a/tools/esp8266/hmInverters.h +++ b/tools/esp8266/hmInverters.h @@ -64,7 +64,7 @@ const byteAssign_t hm400assignment[] = { { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, { FLD_PDC, UNIT_W, CH1, CMD01, 7, 2, 10 }, { FLD_YT, UNIT_KWH, CH1, CMD01, 9, 4, 1000 }, - { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1000 }, + { FLD_YD, UNIT_WH, CH1, CMD01, 13, 2, 1 }, { FLD_UAC, UNIT_V, CH0, CMD01, 15, 2, 10 }, { FLD_F, UNIT_HZ, CH0, CMD82, 1, 2, 100 }, { FLD_PAC, UNIT_W, CH0, CMD82, 3, 2, 10 }, From f6b75aff903e69209139489e8e3a1fe0c37a24d3 Mon Sep 17 00:00:00 2001 From: lumapu Date: Wed, 27 Apr 2022 23:03:37 +0200 Subject: [PATCH 34/58] * preliminary state, compiles good not tested on hardware * converted struct inverter_t to class Inverter * started with calculation functions (idea from Hubi/mikrocontroller.net) --- tools/esp8266/app.cpp | 163 ++++++++++++++++++++---------- tools/esp8266/app.h | 16 +-- tools/esp8266/debug.h | 3 + tools/esp8266/defines.h | 12 ++- tools/esp8266/eep.h | 4 +- tools/esp8266/hmInverters.h | 112 -------------------- tools/esp8266/hmRadio.h | 49 ++++++--- tools/esp8266/hmSystem.h | 96 ++---------------- tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/setup.html | 11 +- tools/esp8266/html/style.css | 10 ++ tools/esp8266/main.cpp | 9 +- tools/esp8266/main.h | 11 ++ tools/esp8266/mqtt.h | 4 +- 15 files changed, 214 insertions(+), 290 deletions(-) delete mode 100644 tools/esp8266/hmInverters.h diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 0c6c499e..f62089d5 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -10,11 +10,14 @@ app::app() : Main() { mSendTicker = new Ticker(); mFlagSend = false; + mShowRebootRequest = false; + mMqttTicker = NULL; mMqttEvt = false; - memset(mCmds, 0, sizeof(uint32_t)); - memset(mChannelStat, 0, sizeof(uint32_t)); + + memset(mCmds, 0, sizeof(uint32_t)*DBG_CMD_LIST_LEN); + //memset(mChannelStat, 0, sizeof(uint32_t) * 4); mSys = new HmSystemType(); } @@ -30,13 +33,14 @@ app::~app(void) { void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { Main::setup(ssid, pwd, timeout); - mWeb->on("/", std::bind(&app::showIndex, this)); - mWeb->on("/setup", std::bind(&app::showSetup, this)); - mWeb->on("/save", std::bind(&app::showSave, this)); - mWeb->on("/cmdstat", std::bind(&app::showCmdStatistics, this)); - mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); - mWeb->on("/livedata", std::bind(&app::showLiveData, this)); - mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); + mWeb->on("/", std::bind(&app::showIndex, this)); + mWeb->on("/setup", std::bind(&app::showSetup, this)); + mWeb->on("/save", std::bind(&app::showSave, this)); + mWeb->on("/erase", std::bind(&app::showErase, this)); + mWeb->on("/cmdstat", std::bind(&app::showStatistics, this)); + mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); + mWeb->on("/livedata", std::bind(&app::showLiveData, this)); + mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); if(mSettingsValid) { uint16_t interval; @@ -51,7 +55,7 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_INV_TYPE + i, &invType); if(0ULL != invSerial) { mSys->addInverter(invName, invSerial, invType); - Serial.println("add inverter: " + String(invName) + ", SN: " + String(invSerial, HEX) + ", type: " + String(invType)); + DPRINTLN("add inverter: " + String(invName) + ", SN: " + String(invSerial, HEX) + ", type: " + String(invType)); } } @@ -67,8 +71,12 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_PINOUT+2, &mSys->Radio.pinIrq); + // nrf24 amplifier power + mEep->read(ADDR_RF24_AMP_PWR, &mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN]; + uint16_t mqttPort; char mqttUser[MQTT_USER_LEN]; char mqttPwd[MQTT_PWD_LEN]; char mqttTopic[MQTT_TOPIC_LEN]; @@ -77,13 +85,14 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mEep->read(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); mEep->read(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); mEep->read(ADDR_MQTT_INTERVAL, &interval); + mEep->read(ADDR_MQTT_PORT, &mqttPort); char addr[16] = {0}; sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); if(interval < 1000) interval = 1000; - mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd); + mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd, mqttPort); mMqttTicker = new Ticker(); mMqttTicker->attach_ms(interval, std::bind(&app::mqttTicker, this)); @@ -92,8 +101,16 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mSys->setup(); - if(!mSettingsValid) - Serial.println("Warn: your settings are not valid! check [IP]/setup"); + if(!mWifiSettingsValid) + DPRINTLN("Warn: your settings are not valid! check [IP]/setup"); + else { + DPRINTLN("\n\n----------------------------------------"); + DPRINTLN("Welcome to AHOY!"); + DPRINT("\npoint your browser to http://"); + DPRINTLN(WiFi.localIP()); + DPRINTLN("to configure your device"); + DPRINTLN("----------------------------------------\n"); + } } @@ -110,14 +127,14 @@ void app::loop(void) { // process buffer only on first occurrence if((0 != len) && (0 == rptCnt)) { uint8_t *cmd = &p->packet[11]; - //Serial.println("CMD " + String(*cmd, HEX)); + //DPRINTLN("CMD " + String(*cmd, HEX)); //mSys->Radio.dumpBuf("Payload ", p->packet, len); - inverter_t *iv = mSys->findInverter(&p->packet[3]); + Inverter<> *iv = mSys->findInverter(&p->packet[3]); if(NULL != iv) { for(uint8_t i = 0; i < iv->listLen; i++) { if(iv->assign[i].cmdId == *cmd) - mSys->addValue(iv, i, &p->packet[11]); + iv->addValue(i, &p->packet[11]); } } @@ -125,13 +142,15 @@ void app::loop(void) { else if(*cmd == 0x02) mCmds[1]++; else if(*cmd == 0x03) mCmds[2]++; else if(*cmd == 0x81) mCmds[3]++; - else if(*cmd == 0x84) mCmds[4]++; - else mCmds[5]++; + else if(*cmd == 0x82) mCmds[4]++; + else if(*cmd == 0x83) mCmds[5]++; + else if(*cmd == 0x84) mCmds[6]++; + else mCmds[7]++; - if(p->sendCh == 23) mChannelStat[0]++; + /*if(p->sendCh == 23) mChannelStat[0]++; else if(p->sendCh == 40) mChannelStat[1]++; else if(p->sendCh == 61) mChannelStat[2]++; - else mChannelStat[3]++; + else mChannelStat[3]++;*/ } } mSys->BufCtrl.popBack(); @@ -139,12 +158,13 @@ void app::loop(void) { if(mFlagSend) { mFlagSend = false; - inverter_t *inv; + Inverter<> *inv; for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) { inv = mSys->getInverterByPos(i); if(NULL != inv) { mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp); - delay(20); + yield(); + delay(100); } } } @@ -157,14 +177,15 @@ void app::loop(void) { mMqtt.isConnected(true); char topic[30], val[10]; for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { - inverter_t *iv = mSys->getInverterByPos(id); + Inverter<> *iv = mSys->getInverterByPos(id); if(NULL != iv) { for(uint8_t i = 0; i < iv->listLen; i++) { - if(0.0f != mSys->getValue(iv, i)) { + if(0.0f != iv->getValue(i)) { snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, fields[iv->assign[i].fieldId]); - snprintf(val, 10, "%.3f", mSys->getValue(iv, i)); + snprintf(val, 10, "%.3f", iv->getValue(i)); mMqtt.sendMsg(topic, val); delay(20); + yield(); } } } @@ -173,14 +194,15 @@ void app::loop(void) { // Serial debug //char topic[30], val[10]; for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { - inverter_t *iv = mSys->getInverterByPos(id); + Inverter<> *iv = mSys->getInverterByPos(id); if(NULL != iv) { for(uint8_t i = 0; i < iv->listLen; i++) { - if(0.0f != mSys->getValue(iv, i)) { - snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i)); - snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i)); - Serial.println(String(topic) + ": " + String(val)); + if(0.0f != iv->getValue(i)) { + snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, iv->getFieldName(i)); + snprintf(val, 10, "%.3f %s", iv->getValue(i), iv->getUnit(i)); + DPRINTLN(String(topic) + ": " + String(val)); } + yield(); } } } @@ -282,17 +304,31 @@ void app::showSetup(void) { html.replace("{PINOUT}", String(pinout)); + // nrf24l01+ + String rf24; + for(uint8_t i = 0; i <= 3; i++) { + rf24 += ""; + } + html.replace("{RF24}", String(rf24)); + + if(mSettingsValid) { mEep->read(ADDR_INV_INTERVAL, &interval); html.replace("{INV_INTERVAL}", String(interval)); uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + uint16_t mqttPort; mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); mEep->read(ADDR_MQTT_INTERVAL, &interval); + mEep->read(ADDR_MQTT_PORT, &mqttPort); char addr[16] = {0}; sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); html.replace("{MQTT_ADDR}", String(addr)); + html.replace("{MQTT_PORT}", String(mqttPort)); html.replace("{MQTT_USER}", String(mMqtt.getUser())); html.replace("{MQTT_PWD}", String(mMqtt.getPwd())); html.replace("{MQTT_TOPIC}", String(mMqtt.getTopic())); @@ -302,6 +338,7 @@ void app::showSetup(void) { html.replace("{INV_INTERVAL}", "1000"); html.replace("{MQTT_ADDR}", ""); + html.replace("{MQTT_PORT}", "1883"); html.replace("{MQTT_USER}", ""); html.replace("{MQTT_PWD}", ""); html.replace("{MQTT_TOPIC}", "/inverter"); @@ -319,20 +356,32 @@ void app::showSave(void) { //----------------------------------------------------------------------------- -void app::showCmdStatistics(void) { +void app::showErase() { + eraseSettings(); + showReboot(); +} + + +//----------------------------------------------------------------------------- +void app::showStatistics(void) { String content = "CMDs:\n"; - content += String("0x01: ") + String(mCmds[0]) + String("\n"); - content += String("0x02: ") + String(mCmds[1]) + String("\n"); - content += String("0x03: ") + String(mCmds[2]) + String("\n"); - content += String("0x81: ") + String(mCmds[3]) + String("\n"); - content += String("0x84: ") + String(mCmds[4]) + String("\n"); - content += String("other: ") + String(mCmds[5]) + String("\n"); - - content += "\nCHANNELs:\n"; + for(uint8_t i = 0; i < DBG_CMD_LIST_LEN; i ++) { + content += String("0x") + String(dbgCmds[i], HEX) + String(": ") + String(mCmds[i]) + String("\n"); + } + content += String("other: ") + String(mCmds[DBG_CMD_LIST_LEN]) + String("\n\n"); + + /*content += "\nCHANNELs:\n"; content += String("23: ") + String(mChannelStat[0]) + String("\n"); content += String("40: ") + String(mChannelStat[1]) + String("\n"); content += String("61: ") + String(mChannelStat[2]) + String("\n"); - content += String("75: ") + String(mChannelStat[3]) + String("\n"); + content += String("75: ") + String(mChannelStat[3]) + String("\n");*/ + + if(!mSys->Radio.isChipConnected()) + content += "WARNING! your NRF24 module can't be reached, check the wiring\n"; + + if(mShowRebootRequest) + content += "INFO: reboot your ESP to apply all your configuration changes!\n"; + mWeb->send(200, "text/plain", content); } @@ -350,7 +399,7 @@ void app::showHoymiles(void) { void app::showLiveData(void) { String modHtml; for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { - inverter_t *iv = mSys->getInverterByPos(id); + Inverter<> *iv = mSys->getInverterByPos(id); if(NULL != iv) { #ifdef LIVEDATA_VISUALIZED uint8_t modNum, pos; @@ -364,16 +413,16 @@ void app::showLiveData(void) { modHtml += "
CHANNEL " + String(ch) + ""; for(uint8_t j = 0; j < 5; j++) { switch(j) { - default: pos = (mSys->getPosByChField(iv, ch, FLD_UDC)); break; - case 1: pos = (mSys->getPosByChField(iv, ch, FLD_IDC)); break; - case 2: pos = (mSys->getPosByChField(iv, ch, FLD_PDC)); break; - case 3: pos = (mSys->getPosByChField(iv, ch, FLD_YD)); break; - case 4: pos = (mSys->getPosByChField(iv, ch, FLD_YT)); break; + default: pos = (iv->getPosByChFld(ch, FLD_UDC)); break; + case 1: pos = (iv->getPosByChFld(ch, FLD_IDC)); break; + case 2: pos = (iv->getPosByChFld(ch, FLD_PDC)); break; + case 3: pos = (iv->getPosByChFld(ch, FLD_YD)); break; + case 4: pos = (iv->getPosByChFld(ch, FLD_YT)); break; } if(0xff != pos) { - modHtml += "" + String(mSys->getValue(iv, pos)); - modHtml += "" + String(mSys->getUnit(iv, pos)) + ""; - modHtml += "" + String(mSys->getFieldName(iv, pos)) + ""; + modHtml += "" + String(iv->getValue(pos)); + modHtml += "" + String(iv->getUnit(pos)) + ""; + modHtml += "" + String(iv->getFieldName(pos)) + ""; } } modHtml += "
"; @@ -383,8 +432,8 @@ void app::showLiveData(void) { modHtml = "
";
             char topic[30], val[10];
             for(uint8_t i = 0; i < iv->listLen; i++) {
-                snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, mSys->getFieldName(iv, i));
-                snprintf(val, 10, "%.3f %s", mSys->getValue(iv, i), mSys->getUnit(iv, i));
+                snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, iv->getFieldName(i));
+                snprintf(val, 10, "%.3f %s", iv->getValue(i), iv->getUnit(i));
                 modHtml += String(topic) + ": " + String(val) + "\n";
             }
             modHtml += "
"; @@ -400,7 +449,7 @@ void app::showLiveData(void) { //----------------------------------------------------------------------------- void app::showMqtt(void) { String txt = "connected"; - if(mMqtt.isConnected()) + if(!mMqtt.isConnected()) txt = "not " + txt; mWeb->send(200, "text/plain", txt); } @@ -447,8 +496,13 @@ void app::saveValues(bool webSend = true) { } + // nrf24 amplifier power + mSys->Radio.AmplifierPower = mWeb->arg("rf24Power").toInt() & 0x03; + mEep->write(ADDR_RF24_AMP_PWR, mSys->Radio.AmplifierPower); + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; + uint16_t mqttPort; char mqttUser[MQTT_USER_LEN]; char mqttPwd[MQTT_PWD_LEN]; char mqttTopic[MQTT_TOPIC_LEN]; @@ -463,7 +517,9 @@ void app::saveValues(bool webSend = true) { mWeb->arg("mqttPwd").toCharArray(mqttPwd, MQTT_PWD_LEN); mWeb->arg("mqttTopic").toCharArray(mqttTopic, MQTT_TOPIC_LEN); interval = mWeb->arg("mqttInterval").toInt(); + mqttPort = mWeb->arg("mqttPort").toInt(); mEep->write(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); + mEep->write(ADDR_MQTT_PORT, mqttPort); mEep->write(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN); mEep->write(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN); mEep->write(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); @@ -473,6 +529,7 @@ void app::saveValues(bool webSend = true) { if((mWeb->arg("reboot") == "on")) showReboot(); else { + mShowRebootRequest = true; mWeb->send(200, "text/html", "Setup saved" "

saved

"); } @@ -490,6 +547,6 @@ void app::updateCrc(void) { uint16_t crc; crc = buildEEpCrc(ADDR_START_SETTINGS, (ADDR_NEXT - ADDR_START_SETTINGS)); - //Serial.println("new CRC: " + String(crc, HEX)); + //DPRINTLN("new CRC: " + String(crc, HEX)); mEep->write(ADDR_SETTINGS_CRC, crc); } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index c4cabcdd..75ae6cd5 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -13,7 +13,8 @@ typedef CircularBuffer BufferType; typedef HmRadio RadioType; -typedef HmSystem HmSystemType; +typedef Inverter InverterType; +typedef HmSystem HmSystemType; const char* const wemosPins[] = {"D3 (GPIO0)", "TX (GPIO1)", "D4 (GPIO2)", "RX (GPIO3)", "D2 (GPIO4)", "D1 (GPIO5)", "GPIO6", "GPIO7", "GPIO8", @@ -22,6 +23,9 @@ const char* const wemosPins[] = {"D3 (GPIO0)", "TX (GPIO1)", "D4 (GPIO2)", "RX ( const char* const pinNames[] = {"CS", "CE", "IRQ"}; const char* const pinArgNames[] = {"pinCs", "pinCe", "pinIrq"}; +const uint8_t dbgCmds[] = {0x01, 0x02, 0x03, 0x81, 0x82, 0x83, 0x84}; +#define DBG_CMD_LIST_LEN 7 + class app : public Main { public: app(); @@ -42,7 +46,8 @@ class app : public Main { void showIndex(void); void showSetup(void); void showSave(void); - void showCmdStatistics(void); + void showErase(void); + void showStatistics(void); void showHoymiles(void); void showLiveData(void); void showMqtt(void); @@ -65,16 +70,15 @@ class app : public Main { return ret; } - uint8_t mState; - bool mKeyPressed; + bool mShowRebootRequest; HmSystemType *mSys; Ticker *mSendTicker; bool mFlagSend; - uint32_t mCmds[6]; - uint32_t mChannelStat[4]; + uint32_t mCmds[DBG_CMD_LIST_LEN+1]; + //uint32_t mChannelStat[4]; uint32_t mRecCnt; // mqtt diff --git a/tools/esp8266/debug.h b/tools/esp8266/debug.h index 11e8e071..26bf1d89 100644 --- a/tools/esp8266/debug.h +++ b/tools/esp8266/debug.h @@ -1,8 +1,11 @@ #ifndef __DEBUG_H__ #define __DEBUG_H__ +#include "Arduino.h" + #ifdef NDEBUG #define DPRINT(str) + #define DPRINTLN(str) #else #ifndef DSERIAL diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 765ba2b2..74a51a0b 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 4 +#define VERSION_PATCH 10 //------------------------------------- @@ -50,11 +50,14 @@ typedef struct { #define PINOUT_LEN 3 // 3 pins: CS, CE, IRQ +#define RF24_AMP_PWR_LEN 1 + #define MQTT_ADDR_LEN 4 // IP #define MQTT_USER_LEN 16 #define MQTT_PWD_LEN 32 #define MQTT_TOPIC_LEN 32 #define MQTT_INTERVAL_LEN 2 // uint16_t +#define MQTT_PORT_LEN 2 // uint16_t #define ADDR_START 0 @@ -66,7 +69,9 @@ typedef struct { #define ADDR_PINOUT ADDR_START_SETTINGS -#define ADDR_INV_ADDR ADDR_PINOUT + PINOUT_LEN +#define ADDR_RF24_AMP_PWR ADDR_PINOUT + PINOUT_LEN + +#define ADDR_INV_ADDR ADDR_RF24_AMP_PWR + RF24_AMP_PWR_LEN #define ADDR_INV_NAME ADDR_INV_ADDR + INV_ADDR_LEN #define ADDR_INV_TYPE ADDR_INV_NAME + INV_NAME_LEN #define ADDR_INV_INTERVAL ADDR_INV_TYPE + INV_TYPE_LEN @@ -77,7 +82,8 @@ typedef struct { #define ADDR_MQTT_TOPIC ADDR_MQTT_PWD + MQTT_PWD_LEN #define ADDR_MQTT_INTERVAL ADDR_MQTT_TOPIC + MQTT_TOPIC_LEN -#define ADDR_NEXT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN +#define ADDR_MQTT_PORT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN +#define ADDR_NEXT ADDR_MQTT_PORT + MQTT_PORT_LEN #define ADDR_SETTINGS_CRC 400 diff --git a/tools/esp8266/eep.h b/tools/esp8266/eep.h index da1450b0..a49cae67 100644 --- a/tools/esp8266/eep.h +++ b/tools/esp8266/eep.h @@ -37,7 +37,7 @@ class eep { } void read(uint32_t addr, uint8_t data[], uint16_t length) { - for(uint8_t i = 0; i < length; i ++) { + for(uint16_t i = 0; i < length; i ++) { *(data++) = EEPROM.read(addr++); } } @@ -78,7 +78,7 @@ class eep { } void write(uint32_t addr, uint8_t data[], uint16_t length) { - for(uint8_t i = 0; i < length; i ++) { + for(uint16_t i = 0; i < length; i ++) { EEPROM.write(addr++, data[i]); } EEPROM.commit(); diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h deleted file mode 100644 index 45c79167..00000000 --- a/tools/esp8266/hmInverters.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef __HM_INVERTERS_H__ -#define __HM_INVERTERS_H__ - -#include "debug.h" -#include - -// units -enum {UNIT_V = 0, UNIT_A, UNIT_W, UNIT_WH, UNIT_KWH, UNIT_HZ, UNIT_C, UNIT_PCT}; -const char* const units[] = {"V", "A", "W", "Wh", "kWh", "Hz", "°C", "%"}; - -// field types -enum {FLD_UDC = 0, FLD_IDC, FLD_PDC, FLD_YD, FLD_YW, FLD_YT, - FLD_UAC, FLD_IAC, FLD_PAC, FLD_F, FLD_T, FLD_PCT}; -const char* const fields[] = {"U_DC", "I_DC", "P_DC", "YieldDay", "YieldWeek", "YieldTotal", - "U_AC", "I_AC", "P_AC", "Freq", "Temp", "Pct"}; - - - -// CH0 is default channel (freq, ac, temp) -enum {CH0 = 0, CH1, CH2, CH3, CH4}; -enum {CMD01 = 0x01, CMD02, CMD03, CMD83 = 0x83, CMD84}; - -enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200}; -const char* const invTypes[] = {"HM600", "HM1200"}; -#define NUM_INVERTER_TYPES 2 - -typedef struct { - uint8_t fieldId; // field id - uint8_t unitId; // uint id - uint8_t ch; // channel 0 - 3 - uint8_t cmdId; // received command id - uint8_t start; // pos of first byte in buffer - uint8_t num; // number of bytes in buffer - uint16_t div; // divisor -} byteAssign_t; - - -union serial_u { - uint64_t u64; - uint8_t b[8]; -}; - -typedef struct { - uint8_t id; // unique id - char name[MAX_NAME_LENGTH]; // human readable name, eg. "HM-600.1" - uint8_t type; // integer which refers to inverter type - byteAssign_t* assign; // type of inverter - uint8_t listLen; // length of assignments - serial_u serial; // serial number as on barcode - serial_u radioId; // id converted to modbus -} inverter_t; - - -/** - * indices are built for the buffer starting with cmd-id in first byte - * (complete payload in buffer) - * */ - -//------------------------------------- -// HM600, HM700 -//------------------------------------- -const byteAssign_t hm600assignment[] = { - { FLD_UDC, UNIT_V, CH1, CMD01, 14, 2, 10 }, - { FLD_IDC, UNIT_A, CH1, CMD01, 16, 2, 100 }, - { FLD_PDC, UNIT_W, CH1, CMD01, 18, 2, 10 }, - { FLD_UDC, UNIT_V, CH2, CMD01, 20, 2, 10 }, - { FLD_IDC, UNIT_A, CH2, CMD01, 22, 2, 100 }, - { FLD_PDC, UNIT_W, CH2, CMD01, 24, 2, 10 }, - { FLD_YW, UNIT_WH, CH0, CMD02, 12, 2, 1 }, - { FLD_YT, UNIT_WH, CH0, CMD02, 14, 4, 1 }, - { FLD_YD, UNIT_WH, CH1, CMD02, 18, 2, 1 }, - { FLD_YD, UNIT_WH, CH2, CMD02, 20, 2, 1 }, - { FLD_UAC, UNIT_V, CH0, CMD02, 22, 2, 10 }, - { FLD_F, UNIT_HZ, CH0, CMD02, 24, 2, 100 }, - { FLD_IAC, UNIT_A, CH0, CMD02, 26, 2, 10 }, - { FLD_T, UNIT_C, CH0, CMD83, 18, 2, 10 } -}; -#define HM600_LIST_LEN (sizeof(hm600assignment) / sizeof(byteAssign_t)) - - -//------------------------------------- -// HM1200, HM1500? -//------------------------------------- -const byteAssign_t hm1200assignment[] = { - { FLD_UDC, UNIT_V, CH1, CMD01, 3, 2, 10 }, - { FLD_IDC, UNIT_A, CH1, CMD01, 5, 2, 100 }, - { FLD_PDC, UNIT_W, CH1, CMD01, 9, 2, 10 }, - { FLD_YD, UNIT_WH, CH1, CMD02, 5, 2, 1 }, - { FLD_YT, UNIT_KWH, CH1, CMD01, 13, 4, 1000 }, - { FLD_UDC, UNIT_V, CH2, CMD02, 9, 2, 10 }, - { FLD_IDC, UNIT_A, CH2, CMD01, 7, 2, 100 }, - { FLD_PDC, UNIT_W, CH2, CMD01, 11, 2, 10 }, - { FLD_YD, UNIT_WH, CH2, CMD02, 7, 2, 1 }, - { FLD_YT, UNIT_KWH, CH2, CMD02, 1, 4, 1000 }, - { FLD_IDC, UNIT_A, CH3, CMD02, 11, 2, 100 }, - { FLD_PDC, UNIT_W, CH3, CMD02, 15, 2, 10 }, - { FLD_YD, UNIT_WH, CH3, CMD03, 11, 2, 1 }, - { FLD_YT, UNIT_KWH, CH3, CMD03, 3, 4, 1000 }, - { FLD_IDC, UNIT_A, CH4, CMD02, 13, 2, 100 }, - { FLD_PDC, UNIT_W, CH4, CMD03, 1, 2, 10 }, - { FLD_YD, UNIT_WH, CH4, CMD03, 13, 2, 1 }, - { FLD_YT, UNIT_KWH, CH4, CMD03, 7, 4, 1000 }, - { FLD_UAC, UNIT_V, CH0, CMD03, 15, 2, 10 }, - { FLD_IAC, UNIT_A, CH0, CMD84, 7, 2, 100 }, - { FLD_PAC, UNIT_W, CH0, CMD84, 3, 2, 10 }, - { FLD_F, UNIT_HZ, CH0, CMD84, 1, 2, 100 }, - { FLD_PCT, UNIT_PCT, CH0, CMD84, 9, 2, 10 }, - { FLD_T, UNIT_C, CH0, CMD84, 11, 2, 10 } -}; -#define HM1200_LIST_LEN (sizeof(hm1200assignment) / sizeof(byteAssign_t)) - -#endif /*__HM_INVERTERS_H__*/ diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 70e710e0..65a098a5 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -13,6 +13,10 @@ #define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) +const char* const rf24AmpPower[] = {"MIN", "LOW", "HIGH", "MAX"}; + + + //----------------------------------------------------------------------------- // MACROS //----------------------------------------------------------------------------- @@ -54,12 +58,13 @@ class HmRadio { pinCe = CE_PIN; pinIrq = IRQ_PIN; - mSendCnt = 0; + AmplifierPower = 1; + mSendCnt = 0; } ~HmRadio() {} void setup(BUFFER *ctrl) { - //Serial.println("HmRadio::setup, pins: " + String(pinCs) + ", " + String(pinCe) + ", " + String(pinIrq)); + //DPRINTLN("HmRadio::setup, pins: " + String(pinCs) + ", " + String(pinCe) + ", " + String(pinIrq)); pinMode(pinIrq, INPUT_PULLUP); mBufCtrl = ctrl; @@ -79,14 +84,18 @@ class HmRadio { // enable only receiving interrupts mNrf24.maskIRQ(true, true, false); - // Use lo PA level, as a higher level will disturb CH340 serial usb adapter - mNrf24.setPALevel(RF24_PA_MAX); + DPRINTLN("RF24 Amp Pwr: RF24_PA_" + String(rf24AmpPower[AmplifierPower])); + mNrf24.setPALevel(AmplifierPower & 0x03); mNrf24.startListening(); - Serial.println("Radio Config:"); + DPRINTLN("Radio Config:"); mNrf24.printPrettyDetails(); mSendChannel = getDefaultChannel(); + + if(!mNrf24.isChipConnected()) { + DPRINTLN("WARNING! your NRF24 module can't be reached, check the wiring"); + } } void handleIntr(void) { @@ -177,13 +186,30 @@ class HmRadio { return valid; } + void dumpBuf(const char *info, uint8_t buf[], uint8_t len) { + DPRINT(String(info)); + for(uint8_t i = 0; i < len; i++) { + if(buf[i] < 10) + DPRINT("0"); + DHEX(buf[i]); + DPRINT(" "); + } + DPRINTLN(""); + } + + bool isChipConnected(void) { + return mNrf24.isChipConnected(); + } + uint8_t pinCs; uint8_t pinCe; uint8_t pinIrq; + uint8_t AmplifierPower; + private: void sendPacket(uint64_t invId, uint8_t buf[], uint8_t len) { - //Serial.println("sent packet: #" + String(mSendCnt)); + //DPRINTLN("sent packet: #" + String(mSendCnt)); //dumpBuf("SEN ", buf, len); DISABLE_IRQ; @@ -195,7 +221,7 @@ class HmRadio { mSendChannel = getDefaultChannel(); #endif mNrf24.setChannel(mSendChannel); - //Serial.println("CH: " + String(mSendChannel)); + //DPRINTLN("CH: " + String(mSendChannel)); mNrf24.openWritingPipe(invId); // TODO: deprecated mNrf24.setCRCLength(RF24_CRC_16); @@ -230,15 +256,6 @@ class HmRadio { mDtuIdCrc = crc16nrf24(tmp, BIT_CNT(5)); } - void dumpBuf(const char *info, uint8_t buf[], uint8_t len) { - Serial.print(String(info)); - for(uint8_t i = 0; i < len; i++) { - Serial.print(buf[i], HEX); - Serial.print(" "); - } - Serial.println(); - } - uint8_t mChanOut[4]; uint8_t mChanIdx; uint16_t mDtuIdCrc; diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h index 0f79ca9f..62a76cc3 100644 --- a/tools/esp8266/hmSystem.h +++ b/tools/esp8266/hmSystem.h @@ -1,12 +1,12 @@ #ifndef __HM_SYSTEM_H__ #define __HM_SYSTEM_H__ -#include "hmInverters.h" +#include "hmInverter.h" #include "hmRadio.h" -template +template > class HmSystem { public: typedef RADIO RadioType; @@ -25,34 +25,30 @@ class HmSystem { Radio.setup(&BufCtrl); } - inverter_t *addInverter(const char *name, uint64_t serial, uint8_t type) { + INVERTERTYPE *addInverter(const char *name, uint64_t serial, uint8_t type) { if(MAX_INVERTER <= mNumInv) { DPRINT("max number of inverters reached!"); return NULL; } - inverter_t *p = &mInverter[mNumInv]; + INVERTERTYPE *p = &mInverter[mNumInv]; p->id = mNumInv; p->serial.u64 = serial; p->type = type; uint8_t len = strlen(name); strncpy(p->name, name, (len > MAX_NAME_LENGTH) ? MAX_NAME_LENGTH : len); - getAssignment(p); - toRadioId(p); if(NULL == p->assign) { DPRINT("no assignment for type found!"); return NULL; } else { - mRecord[p->id] = new RECORDTYPE[p->listLen]; - memset(mRecord[p->id], 0, sizeof(RECORDTYPE) * p->listLen); mNumInv ++; return p; } } - inverter_t *findInverter(uint8_t buf[]) { - inverter_t *p; + INVERTERTYPE *findInverter(uint8_t buf[]) { + INVERTERTYPE *p; for(uint8_t i = 0; i < mNumInv; i++) { p = &mInverter[i]; if((p->serial.b[3] == buf[0]) @@ -64,96 +60,20 @@ class HmSystem { return NULL; } - inverter_t *getInverterByPos(uint8_t pos) { + INVERTERTYPE *getInverterByPos(uint8_t pos) { if(mInverter[pos].serial.u64 != 0ULL) return &mInverter[pos]; else return NULL; } - const char *getFieldName(inverter_t *p, uint8_t pos) { - return fields[p->assign[pos].fieldId]; - } - - const char *getUnit(inverter_t *p, uint8_t pos) { - return units[p->assign[pos].unitId]; - } - - uint64_t getSerial(inverter_t *p) { - return p->serial.u64; - } - - void updateSerial(inverter_t *p, uint64_t serial) { - p->serial.u64 = serial; - } - - uint8_t getChannel(inverter_t *p, uint8_t pos) { - return p->assign[pos].ch; - } - - uint8_t getCmdId(inverter_t *p, uint8_t pos) { - return p->assign[pos].cmdId; - } - - void addValue(inverter_t *p, uint8_t pos, uint8_t buf[]) { - uint8_t ptr = p->assign[pos].start; - uint8_t end = ptr + p->assign[pos].num; - uint16_t div = p->assign[pos].div; - - uint32_t val = 0; - do { - val <<= 8; - val |= buf[ptr]; - } while(++ptr != end); - - mRecord[p->id][pos] = (RECORDTYPE)(val) / (RECORDTYPE)(div); - } - - RECORDTYPE getValue(inverter_t *p, uint8_t pos) { - return mRecord[p->id][pos]; - } - - uint8_t getPosByChField(inverter_t *p, uint8_t channel, uint8_t fieldId) { - uint8_t pos = 0; - for(; pos < p->listLen; pos++) { - if((p->assign[pos].ch == channel) && (p->assign[pos].fieldId == fieldId)) - break; - } - return (pos >= p->listLen) ? 0xff : pos; - } - uint8_t getNumInverters(void) { return mNumInv; } private: - void toRadioId(inverter_t *p) { - p->radioId.u64 = 0ULL; - p->radioId.b[4] = p->serial.b[0]; - p->radioId.b[3] = p->serial.b[1]; - p->radioId.b[2] = p->serial.b[2]; - p->radioId.b[1] = p->serial.b[3]; - p->radioId.b[0] = 0x01; - } - - void getAssignment(inverter_t *p) { - if(INV_TYPE_HM600 == p->type) { - p->listLen = (uint8_t)(HM1200_LIST_LEN); - p->assign = (byteAssign_t*)hm600assignment; - } - else if(INV_TYPE_HM1200 == p->type) { - p->listLen = (uint8_t)(HM1200_LIST_LEN); - p->assign = (byteAssign_t*)hm1200assignment; - } - else { - p->listLen = 0; - p->assign = NULL; - } - } - - inverter_t mInverter[MAX_INVERTER]; + INVERTERTYPE mInverter[MAX_INVERTER]; uint8_t mNumInv; - RECORDTYPE *mRecord[MAX_INVERTER]; }; #endif /*__HM_SYSTEM_H__*/ diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index f4e99a1a..95f1236f 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index cf8ac694..dc3639c4 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index 0ab66fff..5103c412 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -22,6 +22,9 @@ + + ERASE SETTINGS (not WiFi) +

Inverter

{INVERTERS}

General

@@ -31,16 +34,22 @@

Pinout (Wemos)

{PINOUT} +

Radio (NRF24L01+)

+ + +

MQTT

+ + - +

 

diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 5eb5f7dc..21d5340f 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -57,6 +57,15 @@ a:hover, a:focus { color: #f00; } +a.erase { + background-color: #006ec0; + color: #fff; + padding: 7px; + display: inline-block; + margin-top: 30px; + float: right; +} + #content { padding: 15px 15px 60px 15px; } @@ -103,6 +112,7 @@ input.btn { color: #fff; border: 0px; float: right; + margin: 10px 0 30px; text-transform: uppercase; } diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 61b2075c..25b68c71 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -43,8 +43,6 @@ void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { mWeb->onNotFound (std::bind(&Main::showNotFound, this)); startAp = getConfig(); - if(String(mDeviceName) != "") - WiFi.hostname(mDeviceName); if(false == startAp) startAp = setupStation(timeout); @@ -90,9 +88,8 @@ bool Main::getConfig(void) { memset(mStationPwd, 0, PWD_LEN); memset(mDeviceName, 0, DEVNAME_LEN); - // erase eeprom - uint8_t buf[ADDR_NEXT-ADDR_START_SETTINGS] = {0}; - mEep->write(ADDR_START_SETTINGS, buf, (ADDR_NEXT-ADDR_START_SETTINGS)); + // erase application settings except wifi settings + eraseSettings(); } return mApActive; @@ -127,6 +124,8 @@ bool Main::setupStation(uint32_t timeout) { WiFi.mode(WIFI_STA); WiFi.begin(mStationSsid, mStationPwd); + if(String(mDeviceName) != "") + WiFi.hostname(mDeviceName); delay(5000); Serial.println("wait for network"); diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h index 9014b6fb..6e096789 100644 --- a/tools/esp8266/main.h +++ b/tools/esp8266/main.h @@ -53,6 +53,17 @@ class Main { return (crcCheck == crcRd); } + void eraseSettings(void) { + uint8_t buf[64] = {0}; + uint16_t addr = ADDR_START_SETTINGS, end; + do { + end = addr += 64; + if(end > (ADDR_SETTINGS_CRC + 2)) + end = (ADDR_SETTINGS_CRC + 2 - addr); + mEep->write(ADDR_START_SETTINGS, buf, (ADDR_NEXT-ADDR_START_SETTINGS)); + } while(addr < ADDR_START_SETTINGS); + } + char mStationSsid[SSID_LEN]; char mStationPwd[PWD_LEN]; bool mWifiSettingsValid; diff --git a/tools/esp8266/mqtt.h b/tools/esp8266/mqtt.h index b3247d14..4f9bc4b7 100644 --- a/tools/esp8266/mqtt.h +++ b/tools/esp8266/mqtt.h @@ -20,9 +20,9 @@ class mqtt { delete mClient; } - void setup(const char *broker, const char *topic, const char *user, const char *pwd) { + void setup(const char *broker, const char *topic, const char *user, const char *pwd, uint16_t port) { mAddressSet = true; - mClient->setServer(broker, 1883); + mClient->setServer(broker, port); snprintf(mUser, MQTT_USER_LEN, "%s", user); snprintf(mPwd, MQTT_PWD_LEN, "%s", pwd); From 5c635031686c345cfb44e5d956b36ff68cc6970f Mon Sep 17 00:00:00 2001 From: lumapu Date: Wed, 27 Apr 2022 23:10:22 +0200 Subject: [PATCH 35/58] * fixed #13, Inverter Type changed after reboot * fixed #11, WiFi password length limit increased to 63, check 802.11i spec: > A pass-phrase is a sequence of between 8 and 63 ASCII-encoded characters. The limit of 63 comes from the desire to distinguish between a pass-phrase and a PSK displayed as 64 hexadecimal characters. --- tools/esp8266/app.cpp | 2 +- tools/esp8266/defines.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 63670a14..56ef1786 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -482,7 +482,7 @@ void app::saveValues(bool webSend = true) { // type mWeb->arg("inv" + String(i) + "Type").toCharArray(buf, 20); uint8_t type = atoi(buf); - mEep->write(ADDR_INV_TYPE + (i * MAX_NAME_LENGTH), type); + mEep->write(ADDR_INV_TYPE + i, type); } interval = mWeb->arg("invInterval").toInt(); diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index fa96dd02..80de9e02 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 9 +#define VERSION_PATCH 10 //------------------------------------- @@ -39,7 +39,7 @@ typedef struct { // EEPROM //------------------------------------- #define SSID_LEN 32 -#define PWD_LEN 32 +#define PWD_LEN 63 #define DEVNAME_LEN 16 #define CRC_LEN 2 // uint16_t From c0140f9fc16fcd4b1dd3d89d43723985e0717d8e Mon Sep 17 00:00:00 2001 From: Marcus Date: Thu, 28 Apr 2022 13:25:04 +0200 Subject: [PATCH 36/58] Neue Version von Hubi vom 28.04.2022 - siehe: https://www.mikrocontroller.net/topic/525778?page=4#7048605 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ersetzt NRF24_SendRcv Kommentare dazu: - Projekt jetzt umgenannt in HoyDtuSim (Hoymiles DTU Simulation) -Läuft auf Arduino (bei mir auf Pro Mini) und ESP (Wemos D1 mini), je nachdem wie man kompiliert - Channel hopping für senden und Empfangen (poor man's ...) ist eingebaut und bringt konstante Antworten; obige Erkenntnisse über Kanäle abwärts sind noch nicht eingebaut - da manchmal ein Abbruch der RF-Verbindung vorkam (auch schon oben erwähnt) wird jetzt nach ca 50 Sekunden ohne Empfang das RF-Modul neu initialisiert und es geht problemlos weiter - Definitionen für HM-600 und HM-1200 sind implementiert, andere können anhand der beiden Beispiele sicher leicht impl. werden - Anpassungen sind in der Settings.h zu machen --- tools/HoyDtuSim/CircularBuffer.h | 158 ++++++++ tools/HoyDtuSim/Debug.h | 23 ++ tools/HoyDtuSim/HM1200.h | 38 ++ tools/HoyDtuSim/HM600.h | 37 ++ tools/HoyDtuSim/HoyDtuSim.ino | 605 +++++++++++++++++++++++++++++++ tools/HoyDtuSim/Inverters.h | 283 +++++++++++++++ tools/HoyDtuSim/ModWebserver.h | 151 ++++++++ tools/HoyDtuSim/Settings.h | 69 ++++ tools/HoyDtuSim/Sonne.h | 55 +++ tools/HoyDtuSim/hm_crc.h | 102 ++++++ tools/HoyDtuSim/hm_packets.h | 93 +++++ tools/HoyDtuSim/wifi.h | 345 ++++++++++++++++++ 12 files changed, 1959 insertions(+) create mode 100644 tools/HoyDtuSim/CircularBuffer.h create mode 100644 tools/HoyDtuSim/Debug.h create mode 100644 tools/HoyDtuSim/HM1200.h create mode 100644 tools/HoyDtuSim/HM600.h create mode 100644 tools/HoyDtuSim/HoyDtuSim.ino create mode 100644 tools/HoyDtuSim/Inverters.h create mode 100644 tools/HoyDtuSim/ModWebserver.h create mode 100644 tools/HoyDtuSim/Settings.h create mode 100644 tools/HoyDtuSim/Sonne.h create mode 100644 tools/HoyDtuSim/hm_crc.h create mode 100644 tools/HoyDtuSim/hm_packets.h create mode 100644 tools/HoyDtuSim/wifi.h diff --git a/tools/HoyDtuSim/CircularBuffer.h b/tools/HoyDtuSim/CircularBuffer.h new file mode 100644 index 00000000..a7fafdb7 --- /dev/null +++ b/tools/HoyDtuSim/CircularBuffer.h @@ -0,0 +1,158 @@ +/* + CircularBuffer - An Arduino circular buffering library for arbitrary types. + + Created by Ivo Pullens, Emmission, 2014 -- www.emmission.nl + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#ifndef CircularBuffer_h +#define CircularBuffer_h + +#ifdef ESP8266 +#define DISABLE_IRQ noInterrupts() +#define RESTORE_IRQ interrupts() +#else +#define DISABLE_IRQ \ + uint8_t sreg = SREG; \ + cli(); + +#define RESTORE_IRQ \ + SREG = sreg; +#endif + +template class CircularBuffer +{ + public: + /** Constructor + * @param buffer Preallocated buffer of at least size records. + * @param size Number of records available in the buffer. + */ + CircularBuffer(T* buffer, const uint8_t size ) + : m_size(size), m_buff(buffer) + { + clear(); + } + + /** Clear all entries in the circular buffer. */ + void clear(void) + { + m_front = 0; + m_fill = 0; + } + + /** Test if the circular buffer is empty */ + inline bool empty(void) const + { + return !m_fill; + } + + /** Return the number of records stored in the buffer */ + inline uint8_t available(void) const + { + return m_fill; + } + + /** Test if the circular buffer is full */ + inline bool full(void) const + { + return m_fill == m_size; + } + + /** Aquire record on front of the buffer, for writing. + * After filling the record, it has to be pushed to actually + * add it to the buffer. + * @return Pointer to record, or NULL when buffer is full. + */ + T* getFront(void) const + { + DISABLE_IRQ; + T* f = NULL; + if (!full()) + f = get(m_front); + RESTORE_IRQ; + return f; + } + + /** Push record to front of the buffer + * @param record Record to push. If record was aquired previously (using getFront) its + * data will not be copied as it is already present in the buffer. + * @return True, when record was pushed successfully. + */ + bool pushFront(T* record) + { + bool ok = false; + DISABLE_IRQ; + if (!full()) + { + T* f = get(m_front); + if (f != record) + *f = *record; + m_front = (m_front+1) % m_size; + m_fill++; + ok = true; + } + RESTORE_IRQ; + return ok; + } + + /** Aquire record on back of the buffer, for reading. + * After reading the record, it has to be pop'ed to actually + * remove it from the buffer. + * @return Pointer to record, or NULL when buffer is empty. + */ + T* getBack(void) const + { + T* b = NULL; + DISABLE_IRQ; + if (!empty()) + b = get(back()); + RESTORE_IRQ; + return b; + } + + /** Remove record from back of the buffer. + * @return True, when record was pop'ed successfully. + */ + bool popBack(void) + { + bool ok = false; + DISABLE_IRQ; + if (!empty()) + { + m_fill--; + ok = true; + } + RESTORE_IRQ; + return ok; + } + + protected: + inline T * get(const uint8_t idx) const + { + return &(m_buff[idx]); + } + inline uint8_t back(void) const + { + return (m_front - m_fill + m_size) % m_size; + } + + const uint8_t m_size; // Total number of records that can be stored in the buffer. + T* const m_buff; // Ptr to buffer holding all records. + volatile uint8_t m_front; // Index of front element (not pushed yet). + volatile uint8_t m_fill; // Amount of records currently pushed. +}; + +#endif // CircularBuffer_h diff --git a/tools/HoyDtuSim/Debug.h b/tools/HoyDtuSim/Debug.h new file mode 100644 index 00000000..3b2807d6 --- /dev/null +++ b/tools/HoyDtuSim/Debug.h @@ -0,0 +1,23 @@ +#ifndef __DEBUG_H + +#define __DEBUG_H + +#ifdef DEBUG + #define DEBUG_OUT Serial +#else +//--- +// disable Serial DEBUG output + #define DEBUG_OUT DummySerial + static class { + public: + void begin(...) {} + void print(...) {} + void println(...) {} + void flush() {} + bool available() { return false;} + int readBytes(...) { return 0;} + int printf (...) {return 0;} + } DummySerial; +#endif + +#endif diff --git a/tools/HoyDtuSim/HM1200.h b/tools/HoyDtuSim/HM1200.h new file mode 100644 index 00000000..c8c27d87 --- /dev/null +++ b/tools/HoyDtuSim/HM1200.h @@ -0,0 +1,38 @@ +#ifndef __HM1200_H +#define __HM1200_H + +#define HM1200 + +const measureDef_t hm1200_measureDef[] = { + { IDX_UDC, UNIT_V, CH1, CMD01, 14, BYTES2, DIV10 }, + { IDX_IDC, UNIT_A, CH1, CMD01, 16, BYTES2, DIV100 }, + { IDX_PDC, UNIT_W, CH1, CMD01, 20, BYTES2, DIV10 }, + { IDX_E_TAG, UNIT_WH, CH1, CMD02, 16, BYTES2, DIV1 }, + { IDX_E_TOTAL, UNIT_KWH, CH1, CMD01, 24, BYTES4, DIV1000 }, + { IDX_UDC, UNIT_V, CH2, CMD02, 20, BYTES2, DIV10 }, + { IDX_IDC, UNIT_A, CH2, CMD01, 18, BYTES2, DIV100 }, + { IDX_PDC, UNIT_W, CH2, CMD01, 22, BYTES2, DIV10 }, + { IDX_E_TAG, UNIT_WH, CH2, CMD02, 18, BYTES2, DIV1 }, + { IDX_E_TOTAL, UNIT_KWH, CH2, CMD02, 12, BYTES4, DIV1000 }, + { IDX_IDC, UNIT_A, CH3, CMD02, 22, BYTES2, DIV100 }, + { IDX_PDC, UNIT_W, CH3, CMD02, 26, BYTES2, DIV10 }, + { IDX_E_TAG, UNIT_WH, CH3, CMD03, 22, BYTES2, DIV1 }, + { IDX_E_TOTAL, UNIT_KWH, CH3, CMD03, 14, BYTES4, DIV1000 }, + { IDX_IDC, UNIT_A, CH4, CMD02, 24, BYTES2, DIV100 }, + { IDX_PDC, UNIT_W, CH4, CMD03, 12, BYTES2, DIV10 }, + { IDX_E_TAG, UNIT_WH, CH4, CMD03, 24, BYTES2, DIV1 }, + { IDX_E_TOTAL, UNIT_KWH, CH4, CMD03, 18, BYTES4, DIV1000 }, + { IDX_UAC, UNIT_V, CH0, CMD03, 26, BYTES2, DIV10 }, + { IDX_IPV, UNIT_A, CH0, CMD84, 18, BYTES2, DIV100 }, + { IDX_PAC, UNIT_W, CH0, CMD84, 14, BYTES2, DIV10 }, + { IDX_FREQ, UNIT_HZ, CH0, CMD84, 12, BYTES2, DIV100 }, + { IDX_PERCNT, UNIT_PCT, CH0, CMD84, 20, BYTES2, DIV10 }, + { IDX_WR_TEMP, UNIT_C, CH0, CMD84, 22, BYTES2, DIV10 } +}; + +measureCalc_t hm1200_measureCalc[] = {}; + +#define HM1200_MEASURE_LIST_LEN sizeof(hm1200_measureDef)/sizeof(measureDef_t) +#define HM1200_CALCED_LIST_LEN 0 + +#endif diff --git a/tools/HoyDtuSim/HM600.h b/tools/HoyDtuSim/HM600.h new file mode 100644 index 00000000..9ba5c1a8 --- /dev/null +++ b/tools/HoyDtuSim/HM600.h @@ -0,0 +1,37 @@ +#ifndef __HM600_H +#define __HM600_H + +#define HM600 +#define HM700 + + +float calcEheute (float *measure) { return measure[8] + measure[9]; } +float calcIpv (float *measure) { return (measure[10] != 0 ? measure[12]/measure[10] : 0); } + +const measureDef_t hm600_measureDef[] = { + { IDX_UDC, CH1, UNIT_V, CMD01, 14, BYTES2, DIV10}, + { IDX_IDC, CH1, UNIT_A, CMD01, 16, BYTES2, DIV100}, + { IDX_PDC, CH1, UNIT_W, CMD01, 18, BYTES2, DIV10}, + { IDX_UDC, CH2, UNIT_V, CMD01, 20, BYTES2, DIV10}, + { IDX_IDC, CH2, UNIT_A, CMD01, 22, BYTES2, DIV100}, + { IDX_PDC, CH2, UNIT_W, CMD01, 24, BYTES2, DIV10}, + { IDX_E_WOCHE,CH0, UNIT_WH, CMD02, 12, BYTES2, DIV1}, + { IDX_E_TOTAL,CH0, UNIT_WH, CMD02, 14, BYTES4, DIV1}, + { IDX_E_TAG, CH1, UNIT_WH, CMD02, 18, BYTES2, DIV1}, + { IDX_E_TAG, CH2, UNIT_WH, CMD02, 20, BYTES2, DIV1}, + { IDX_UAC, CH0, UNIT_V, CMD02, 22, BYTES2, DIV10}, + { IDX_FREQ, CH0, UNIT_HZ, CMD02, 24, BYTES2, DIV100}, + { IDX_PAC, CH0, UNIT_W, CMD02, 26, BYTES2, DIV10}, + { IDX_WR_TEMP,CH0, UNIT_C, CMD83, 18, BYTES2, DIV10} +}; + + +measureCalc_t hm600_measureCalc[] = { + { IDX_E_HEUTE, UNIT_WH, DIV1, &calcEheute}, + { IDX_IPV, UNIT_A, DIV100, &calcIpv} +}; + +#define HM600_MEASURE_LIST_LEN sizeof(hm600_measureDef)/sizeof(measureDef_t) +#define HM600_CALCED_LIST_LEN sizeof(hm600_measureCalc)/sizeof(measureCalc_t) + +#endif diff --git a/tools/HoyDtuSim/HoyDtuSim.ino b/tools/HoyDtuSim/HoyDtuSim.ino new file mode 100644 index 00000000..87423e49 --- /dev/null +++ b/tools/HoyDtuSim/HoyDtuSim.ino @@ -0,0 +1,605 @@ +#include +#include +#include "CircularBuffer.h" +#include +#include "printf.h" +#include +#include "hm_crc.h" +#include "hm_packets.h" + +#include "Settings.h" // Header für Einstellungen +#include "Debug.h" +#include "Inverters.h" + +const char VERSION[] PROGMEM = "0.1.6"; + + +#ifdef ESP8266 + #define DISABLE_EINT noInterrupts() + #define ENABLE_EINT interrupts() +#else // für AVR z.B. ProMini oder Nano + #define DISABLE_EINT EIMSK = 0x00 + #define ENABLE_EINT EIMSK = 0x01 +#endif + + +#ifdef ESP8266 +#define PACKET_BUFFER_SIZE (30) +#else +#define PACKET_BUFFER_SIZE (20) +#endif + +// Startup defaults until user reconfigures it +//#define DEFAULT_RECV_CHANNEL (3) // 3 = Default channel for Hoymiles +//#define DEFAULT_SEND_CHANNEL (75) // 40 = Default channel for Hoymiles, 61 + +static HM_Packets hmPackets; +static uint32_t tickMillis; + +// Set up nRF24L01 radio on SPI bus plus CE/CS pins +// If more than one RF24 unit is used the another CS pin than 10 must be used +// This pin is used hard coded in SPI library +static RF24 Radio (RF1_CE_PIN, RF1_CS_PIN); + +static NRF24_packet_t bufferData[PACKET_BUFFER_SIZE]; + +static CircularBuffer packetBuffer(bufferData, sizeof(bufferData) / sizeof(bufferData[0])); + +static Serial_header_t SerialHdr; + +#define CHECKCRC 1 +static uint16_t lastCRC; +static uint16_t crc; + +uint8_t channels[] = {3, 23, 40, 61, 75}; //{1, 3, 6, 9, 11, 23, 40, 61, 75} +uint8_t channelIdx = 2; // fange mit 40 an +uint8_t DEFAULT_SEND_CHANNEL = channels[channelIdx]; // = 40 + +#if USE_POOR_MAN_CHANNEL_HOPPING_RCV +uint8_t rcvChannelIdx = 0; +uint8_t rcvChannels[] = {3, 23, 40, 61, 75}; //{1, 3, 6, 9, 11, 23, 40, 61, 75} +uint8_t DEFAULT_RECV_CHANNEL = rcvChannels[rcvChannelIdx]; //3; +uint8_t intvl = 4; // Zeit für poor man hopping +int hophop; +#else +uint8_t DEFAULT_RECV_CHANNEL = 3; +#endif + +boolean valueChanged = false; + +static unsigned long timeLastPacket = millis(); +static unsigned long timeLastIstTagCheck = millis(); +static unsigned long timeLastRcvChannelSwitch = millis(); + +// Function forward declaration +static void SendPacket(uint64_t dest, uint8_t *buf, uint8_t len); + + +static const char BLANK = ' '; + +static boolean istTag = true; + +char CHANNELNAME_BUFFER[15]; + +#ifdef ESP8266 + #include "wifi.h" + #include "ModWebserver.h" + #include "Sonne.h" +#endif + + +inline static void dumpData(uint8_t *p, int len) { +//----------------------------------------------- + while (len > 0){ + if (*p < 16) + DEBUG_OUT.print(F("0")); + DEBUG_OUT.print(*p++, HEX); + len--; + } + DEBUG_OUT.print(BLANK); +} + + +float extractValue2 (uint8_t *p, int divisor) { +//------------------------------------------- + uint16_t b1 = *p++; + return ((float) (b1 << 8) + *p) / (float) divisor; +} + + +float extractValue4 (uint8_t *p, int divisor) { +//------------------------------------------- + uint32_t ret = *p++; + for (uint8_t i = 1; i <= 3; i++) + ret = (ret << 8) + *p++; + return (ret / divisor); +} + +void outChannel (uint8_t wr, uint8_t i) { +//------------------------------------ + DEBUG_OUT.print(getMeasureName(wr, i)); + DEBUG_OUT.print(F("\t:")); + DEBUG_OUT.print(getMeasureValue(wr,i)); + DEBUG_OUT.println(BLANK); +} + + +void analyseWords (uint8_t *p) { // p zeigt auf 01 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + DEBUG_OUT.print (F("analyse words:")); + p++; + for (int i = 0; i <12;i++) { + DEBUG_OUT.print(extractValue2(p,1)); + DEBUG_OUT.print(BLANK); + p++; + } + DEBUG_OUT.println(); +} + +void analyseLongs (uint8_t *p) { // p zeigt auf 01 hinter 2. WR-Adr +//---------------------------------- + //uint16_t val; + DEBUG_OUT.print (F("analyse longs:")); + p++; + for (int i = 0; i <12;i++) { + DEBUG_OUT.print(extractValue4(p,1)); + DEBUG_OUT.print(BLANK); + p++; + } + DEBUG_OUT.println(); +} + + +void analyse (NRF24_packet_t *p) { +//------------------------------ + uint8_t wrIdx = findInverter (&p->packet[3]); + //DEBUG_OUT.print ("wrIdx="); DEBUG_OUT.println (wrIdx); + if (wrIdx == 0xFF) return; + uint8_t cmd = p->packet[11]; + float val = 0; + if (cmd == 0x01 || cmd == 0x02 || cmd == 0x83) { + const measureDef_t *defs = inverters[wrIdx].measureDef; + + for (uint8_t i = 0; i < inverters[wrIdx].anzMeasures; i++) { + if (defs[i].teleId == cmd) { + uint8_t pos = defs[i].pos; + if (defs[i].bytes == 2) + val = extractValue2 (&p->packet[pos], getDivisor(wrIdx, i) ); + else if (defs[i].bytes == 4) + val = extractValue4 (&p->packet[pos], getDivisor(wrIdx, i) ); + valueChanged = valueChanged ||(val != inverters[wrIdx].values[i]); + inverters[wrIdx].values[i] = val; + } + } + // calculated funstions + for (uint8_t i = 0; i < inverters[wrIdx].anzMeasureCalculated; i++) { + val = inverters[wrIdx].measureCalculated[i].f (inverters[wrIdx].values); + int idx = inverters[wrIdx].anzMeasures + i; + valueChanged = valueChanged ||(val != inverters[wrIdx].values[idx]); + inverters[wrIdx].values[idx] = val; + } + } + else if (cmd == 0x81) { + ; + } + else { + DEBUG_OUT.print (F("---- neues cmd=")); DEBUG_OUT.println(cmd, HEX); + analyseWords (&p->packet[11]); + analyseLongs (&p->packet[11]); + DEBUG_OUT.println(); + } + if (p->packetsLost > 0) { + DEBUG_OUT.print(F(" Lost: ")); + DEBUG_OUT.println(p->packetsLost); + } +} + +#ifdef ESP8266 +IRAM_ATTR +#endif +void handleNrf1Irq() { +//------------------------- + static uint8_t lostPacketCount = 0; + uint8_t pipe; + + DISABLE_EINT; + + // Loop until RX buffer(s) contain no more packets. + while (Radio.available(&pipe)) { + if (!packetBuffer.full()) { + NRF24_packet_t *p = packetBuffer.getFront(); + p->timestamp = micros(); // Micros does not increase in interrupt, but it can be used. + p->packetsLost = lostPacketCount; + p->rcvChannel = DEFAULT_RECV_CHANNEL; + uint8_t packetLen = Radio.getPayloadSize(); + if (packetLen > MAX_RF_PAYLOAD_SIZE) + packetLen = MAX_RF_PAYLOAD_SIZE; + + Radio.read(p->packet, packetLen); + packetBuffer.pushFront(p); + lostPacketCount = 0; + } + else { + // Buffer full. Increase lost packet counter. + bool tx_ok, tx_fail, rx_ready; + if (lostPacketCount < 255) + lostPacketCount++; + // Call 'whatHappened' to reset interrupt status. + Radio.whatHappened(tx_ok, tx_fail, rx_ready); + // Flush buffer to drop the packet. + Radio.flush_rx(); + } + } + ENABLE_EINT; +} + + +static void activateConf(void) { +//----------------------------- + Radio.begin(); + // Disable shockburst for receiving and decode payload manually + Radio.setAutoAck(false); + Radio.setRetries(0, 0); + Radio.setChannel(DEFAULT_RECV_CHANNEL); + Radio.setDataRate(DEFAULT_RF_DATARATE); + Radio.disableCRC(); + Radio.setAutoAck(0x00); + Radio.setPayloadSize(MAX_RF_PAYLOAD_SIZE); + Radio.setAddressWidth(5); + Radio.openReadingPipe(1, DTU_RADIO_ID); + + // We want only RX irqs + Radio.maskIRQ(true, true, false); + + // Use lo PA level, as a higher level will disturb CH340 DEBUG_OUT usb adapter + Radio.setPALevel(RF24_PA_MAX); + Radio.startListening(); + + // Attach interrupt handler to NRF IRQ output. Overwrites any earlier handler. + attachInterrupt(digitalPinToInterrupt(RF1_IRQ_PIN), handleNrf1Irq, FALLING); // NRF24 Irq pin is active low. + + // Initialize SerialHdr header's address member to promiscuous address. + uint64_t addr = DTU_RADIO_ID; + for (int8_t i = sizeof(SerialHdr.address) - 1; i >= 0; --i) { + SerialHdr.address[i] = addr; + addr >>= 8; + } + + //Radio.printDetails(); + //DEBUG_OUT.println(); + tickMillis = millis() + 200; +} + +#define resetRF24() activateConf() + + +void setup(void) { +//-------------- + #ifndef DEBUG + #ifndef ESP8266 + Serial.begin(SER_BAUDRATE); + #endif + #endif + printf_begin(); + DEBUG_OUT.begin(SER_BAUDRATE); + DEBUG_OUT.flush(); + + DEBUG_OUT.println(F("-- Hoymiles DTU Simulation --")); + + // Configure nRF IRQ input + pinMode(RF1_IRQ_PIN, INPUT); + + activateConf(); + +#ifdef ESP8266 + setupWifi(); + setupClock(); + setupWebServer(); + setupUpdateByOTA(); + calcSunUpDown (getNow()); + istTag = isDayTime(); + DEBUG_OUT.print (F("Es ist ")); DEBUG_OUT.println (istTag?F("Tag"):F("Nacht")); + hmPackets.SetUnixTimeStamp (getNow()); +#else + hmPackets.SetUnixTimeStamp(0x62456430); +#endif + + setupInverts(); +} + + uint8_t sendBuf[MAX_RF_PAYLOAD_SIZE]; + +void isTime2Send () { +//----------------- + // Second timer + static const uint8_t warteZeit = 1; + static uint8_t tickSec = 0; + if (millis() >= tickMillis) { + static uint8_t tel = 0; + tickMillis += warteZeit*1000; //200; + tickSec++; + + if (++tickSec >= 1) { // 5 + for (uint8_t c=0; c < warteZeit; c++) hmPackets.UnixTimeStampTick(); + tickSec = 0; + } + + int32_t size = 0; + uint64_t dest = 0; + for (uint8_t wr = 0; wr < anzInv; wr++) { + dest = inverters[wr].RadioId; + + if (tel > 1) + tel = 0; + + if (tel == 0) { + #ifdef ESP8266 + hmPackets.SetUnixTimeStamp (getNow()); + #endif + size = hmPackets.GetTimePacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8); + //DEBUG_OUT.print ("Timepacket mit cid="); DEBUG_OUT.println(sendBuf[10], HEX); + } + else if (tel <= 1) + size = hmPackets.GetCmdPacket((uint8_t *)&sendBuf, dest >> 8, DTU_RADIO_ID >> 8, 0x15, 0x80 + tel - 1); + + SendPacket (dest, (uint8_t *)&sendBuf, size); + } // for wr + + tel++; + +/* for (uint8_t warte = 0; warte < 2; warte++) { + delay(1000); + hmPackets.UnixTimeStampTick(); + }*/ + } +} + + +void outputPacket(NRF24_packet_t *p, uint8_t payloadLen) { +//----------------------------------------------------- + + // Write timestamp, packets lost, address and payload length + //printf(" %09lu ", SerialHdr.timestamp); + char _buf[20]; + sprintf_P(_buf, PSTR("rcv CH:%d "), p->rcvChannel); + DEBUG_OUT.print (_buf); + dumpData((uint8_t *)&SerialHdr.packetsLost, sizeof(SerialHdr.packetsLost)); + dumpData((uint8_t *)&SerialHdr.address, sizeof(SerialHdr.address)); + + // Trailing bit?!? + dumpData(&p->packet[0], 2); + + // Payload length from PCF + dumpData(&payloadLen, sizeof(payloadLen)); + + // Packet control field - PID Packet identification + uint8_t val = (p->packet[1] >> 1) & 0x03; + DEBUG_OUT.print(val); + DEBUG_OUT.print(F(" ")); + + if (payloadLen > 9) { + dumpData(&p->packet[2], 1); + dumpData(&p->packet[3], 4); + dumpData(&p->packet[7], 4); + + uint16_t remain = payloadLen - 2 - 1 - 4 - 4 + 4; + + if (remain < 32) { + dumpData(&p->packet[11], remain); + printf_P(PSTR("%04X "), crc); + + if (((crc >> 8) != p->packet[payloadLen + 2]) || ((crc & 0xFF) != p->packet[payloadLen + 3])) + DEBUG_OUT.print(0); + else + DEBUG_OUT.print(1); + } + else { + DEBUG_OUT.print(F("Ill remain ")); + DEBUG_OUT.print(remain); + } + } + else { + dumpData(&p->packet[2], payloadLen + 2); + printf_P(PSTR("%04X "), crc); + } + DEBUG_OUT.println(); + DEBUG_OUT.flush(); +} + +void writeArduinoInterface() { +//-------------------------- + if (valueChanged) { + for (uint8_t wr = 0; wr < anzInv; wr++) { + if (anzInv > 1) { + Serial.print(wr); Serial.print('.'); + } + for (uint8_t i = 0; i < inverters[wr].anzTotalMeasures; i++) { + Serial.print(getMeasureName(wr,i)); // Schnittstelle bei Arduino + Serial.print('='); + Serial.print(getMeasureValue(wr,i), getDigits(wr,i)); // Schnittstelle bei Arduino + Serial.print (BLANK); + Serial.println (getUnit(wr, i)); + } // for i + + } // for wr + Serial.println(F("-----------------------")); + valueChanged = false; + } +} + +boolean doCheckCrc (NRF24_packet_t *p, uint8_t payloadLen) { +//-------------------------------------------------------- + crc = 0xFFFF; + crc = crc16((uint8_t *)&SerialHdr.address, sizeof(SerialHdr.address), crc, 0, BYTES_TO_BITS(sizeof(SerialHdr.address))); + // Payload length + // Add one byte and one bit for 9-bit packet control field + crc = crc16((uint8_t *)&p->packet[0], sizeof(p->packet), crc, 7, BYTES_TO_BITS(payloadLen + 1) + 1); + + if (CHECKCRC) { + // If CRC is invalid only show lost packets + if (((crc >> 8) != p->packet[payloadLen + 2]) || ((crc & 0xFF) != p->packet[payloadLen + 3])) { + if (p->packetsLost > 0) { + DEBUG_OUT.print(F(" Lost: ")); + DEBUG_OUT.println(p->packetsLost); + } + packetBuffer.popBack(); + return false; + } + + // Dump a decoded packet only once + if (lastCRC == crc) { + packetBuffer.popBack(); + return false; + } + lastCRC = crc; + } + + // Don't dump mysterious ack packages + if (payloadLen == 0) { + packetBuffer.popBack(); + return false; + } + return true; +} + +void poorManChannelHopping() { +//-------------------------- + if (hophop <= 0) return; + if (millis() >= timeLastRcvChannelSwitch + intvl) { + rcvChannelIdx++; + if (rcvChannelIdx >= sizeof(rcvChannels)) + rcvChannelIdx = 0; + DEFAULT_RECV_CHANNEL = rcvChannels[rcvChannelIdx]; + DISABLE_EINT; + Radio.stopListening(); + Radio.setChannel (DEFAULT_RECV_CHANNEL); + Radio.startListening(); + ENABLE_EINT; + timeLastRcvChannelSwitch = millis(); + hophop--; + } + +} +void loop(void) { +//============= + // poor man channel hopping on receive +#if USE_POOR_MAN_CHANNEL_HOPPING_RCV + poorManChannelHopping(); +#endif + + if (millis() > timeLastPacket + 50000UL) { + DEBUG_OUT.println (F("Reset RF24")); + resetRF24(); + timeLastPacket = millis(); + } + + while (!packetBuffer.empty()) { + timeLastPacket = millis(); + // One or more records present + NRF24_packet_t *p = packetBuffer.getBack(); + + // Shift payload data due to 9-bit packet control field + for (int16_t j = sizeof(p->packet) - 1; j >= 0; j--) { + if (j > 0) + p->packet[j] = (byte)(p->packet[j] >> 7) | (byte)(p->packet[j - 1] << 1); + else + p->packet[j] = (byte)(p->packet[j] >> 7); + } + + SerialHdr.timestamp = p->timestamp; + SerialHdr.packetsLost = p->packetsLost; + + uint8_t payloadLen = ((p->packet[0] & 0x01) << 5) | (p->packet[1] >> 3); + // Check CRC + if (! doCheckCrc(p, payloadLen) ) + continue; + + #ifdef DEBUG + uint8_t cmd = p->packet[11]; + //if (cmd != 0x01 && cmd != 0x02 && cmd != 0x83 && cmd != 0x81) + outputPacket (p, payloadLen); + #endif + + analyse (p); + + #ifndef ESP8266 + writeArduinoInterface(); + #endif + + // Remove record as we're done with it. + packetBuffer.popBack(); + } + + if (istTag) + isTime2Send(); + + #ifdef ESP8266 + checkWifi(); + webserverHandle(); + checkUpdateByOTA(); + if (hour() == 0 && minute() == 0) { + calcSunUpDown(getNow()); + delay (60*1000); + } + + if (millis() > timeLastIstTagCheck + 15UL * 60UL * 1000UL) { // alle 15 Minuten neu berechnen ob noch hell + istTag = isDayTime(); + DEBUG_OUT.print (F("Es ist ")); DEBUG_OUT.println (istTag?F("Tag"):F("Nacht")); + timeLastIstTagCheck = millis(); + } + #endif +/* + if (millis() > timeLastPacket + 60UL*SECOND) { // 60 Sekunden + channelIdx++; + if (channelIdx >= sizeof(channels)) channelIdx = 0; + DEFAULT_SEND_CHANNEL = channels[channelIdx]; + DEBUG_OUT.print (F("\nneuer DEFAULT_SEND_CHANNEL: ")); DEBUG_OUT.println(DEFAULT_SEND_CHANNEL); + timeLastPacket = millis(); + } +*/ +} + + +static void SendPacket(uint64_t dest, uint8_t *buf, uint8_t len) { +//-------------------------------------------------------------- + //DEBUG_OUT.print (F("Sende: ")); DEBUG_OUT.println (buf[9], HEX); + //dumpData (buf, len); DEBUG_OUT.println(); + DISABLE_EINT; + Radio.stopListening(); + +#ifdef CHANNEL_HOP + static uint8_t hop = 0; + #if DEBUG_SEND + DEBUG_OUT.print(F("Send... CH")); + DEBUG_OUT.println(channels[hop]); + #endif + Radio.setChannel(channels[hop++]); + if (hop >= sizeof(channels) / sizeof(channels[0])) + hop = 0; +#else + Radio.setChannel(DEFAULT_SEND_CHANNEL); +#endif + + Radio.openWritingPipe(dest); + Radio.setCRCLength(RF24_CRC_16); + Radio.enableDynamicPayloads(); + Radio.setAutoAck(true); + Radio.setRetries(3, 15); + + bool res = Radio.write(buf, len); + // Try to avoid zero payload acks (has no effect) + Radio.openWritingPipe(DUMMY_RADIO_ID); + + Radio.setAutoAck(false); + Radio.setRetries(0, 0); + Radio.disableDynamicPayloads(); + Radio.setCRCLength(RF24_CRC_DISABLED); + + Radio.setChannel(DEFAULT_RECV_CHANNEL); + Radio.startListening(); + ENABLE_EINT; +#if USE_POOR_MAN_CHANNEL_HOPPING_RCV + hophop = 5 * sizeof(rcvChannels); +#endif +} diff --git a/tools/HoyDtuSim/Inverters.h b/tools/HoyDtuSim/Inverters.h new file mode 100644 index 00000000..af929af2 --- /dev/null +++ b/tools/HoyDtuSim/Inverters.h @@ -0,0 +1,283 @@ +#ifndef __INVERTERS_H +#define __INVERTERS_H + +// Ausgabe von Debug Infos auf der seriellen Console + +#include "Settings.h" +#include "Debug.h" + + +typedef struct _NRF24_packet_t { + uint32_t timestamp; + uint8_t packetsLost; + uint8_t rcvChannel; + uint8_t packet[MAX_RF_PAYLOAD_SIZE]; +} NRF24_packet_t; + + +typedef struct _Serial_header_t { + unsigned long timestamp; + uint8_t packetsLost; + uint8_t address[RF_MAX_ADDR_WIDTH]; // MSB first, always RF_MAX_ADDR_WIDTH bytes. +} Serial_header_t; + + +// structs für Inverter und Kanalwerte + +// Liste der Einheiten +enum UNITS {UNIT_V = 0, UNIT_HZ, UNIT_A, UNIT_W, UNIT_WH, UNIT_C, UNIT_KWH, UNIT_MA, UNIT_PCT}; +const char* const units[] = {"V", "Hz", "A", "W", "Wh", "°C", "KWh", "mA", "%"}; + +// CH0 is default channel (freq, ac, temp) +enum CHANNELS {CH0 = 0, CH1, CH2, CH3, CH4}; +enum CMDS {CMD01 = 0x01, CMD02, CMD03, CMD83 = 0x83, CMD84}; +enum DIVS {DIV1 = 0, DIV10, DIV100, DIV1000}; + +#define BYTES2 2 +#define BYTES4 4 + +const char UDC[] PROGMEM = "Udc"; +const char IDC[] PROGMEM = "Idc"; +const char PDC[] PROGMEM = "Pdc"; +const char E_WOCHE[] PROGMEM = "E-Woche"; +const char E_TOTAL[] PROGMEM = "E-Total"; +const char E_TAG[] PROGMEM = "E-Tag"; +const char UAC[] PROGMEM = "Uac"; +const char FREQ[] PROGMEM = "Freq.ac"; +const char PAC[] PROGMEM = "Pac"; +const char E_HEUTE[] PROGMEM = "E-heute"; +const char IPV[] PROGMEM = "Ipv"; +const char WR_TEMP[] PROGMEM = "WR-Temp"; +const char PERCNT[] PROGMEM = "Pct"; + +#define IDX_UDC 0 +#define IDX_IDC 1 +#define IDX_PDC 2 +#define IDX_E_WOCHE 3 +#define IDX_E_TOTAL 4 +#define IDX_E_TAG 5 +#define IDX_UAC 6 +#define IDX_FREQ 7 +#define IDX_PAC 8 +#define IDX_E_HEUTE 9 +#define IDX_IPV 10 +#define IDX_WR_TEMP 11 +#define IDX_PERCNT 12 + +const char* const NAMES[] + = {UDC, IDC, PDC, E_WOCHE, E_TOTAL, E_TAG, UAC, FREQ, PAC, E_HEUTE, IPV, WR_TEMP, PERCNT}; + +typedef float (*calcValueFunc)(float *); + +struct measureDef_t { + uint8_t nameIdx; //const char* name; // Zeiger auf den Messwertnamen + uint8_t channel; // 0..4, + uint8_t unitIdx; // Index in die Liste der Einheiten 'units' + uint8_t teleId; // Telegramm ID, das was hinter der 2. WR Nummer im Telegramm, 02, 03, 83 + uint8_t pos; // ab dieser POsition beginnt der Wert (Big Endian) + uint8_t bytes; // Anzahl der Bytes + uint8_t digits; +}; + +struct measureCalc_t { + uint8_t nameIdx; //const char* name; // Zeiger auf den Messwertnamen + uint8_t unitIdx; // Index in die Liste der Einheiten 'units' + uint8_t digits; + calcValueFunc f; // die Funktion zur Berechnung von Werten, zb Summe von Werten +}; + + +struct inverter_t { + uint8_t ID; // Inverter-ID = Index + char name[20]; // Name des Inverters zb HM-600.1 + uint64_t serialNo; // dier Seriennummer wie im Barcode auf dem WR, also 1141..... + uint64_t RadioId; // die gespiegelte (letzte 4 "Bytes") der Seriennummer + const measureDef_t *measureDef; // aus Include HMxxx.h : Liste mit Definitionen der Messwerte, wie Telgramm, offset, länge, ... + uint8_t anzMeasures; // Länge der Liste + measureCalc_t *measureCalculated; // Liste mit Defintion für berechnete Werte + uint8_t anzMeasureCalculated; // Länge der Liste + uint8_t anzTotalMeasures; // Gesamtanzahl Messwerte + float values[MAX_MEASURE_PER_INV]; // DIE Messewerte +}; + + +char _buffer[20]; + +uint8_t anzInv = 0; +inverter_t inverters[MAX_ANZ_INV]; + +union longlongasbytes { + uint64_t ull; + uint32_t ul[2]; + uint8_t bytes[8]; +}; + +char *uint64toa (uint64_t s) { +//-------------------------------- +//0x1141 72607952ULL + sprintf(_buffer, "%lX%08lX", (unsigned long)(s>>32), (unsigned long)(s&0xFFFFFFFFULL)); + return _buffer; +} + + +uint64_t Serial2RadioID (uint64_t sn) { +//---------------------------------- + longlongasbytes llsn; + longlongasbytes res; + llsn.ull = sn; + res.ull = 0; + res.bytes[4] = llsn.bytes[0]; + res.bytes[3] = llsn.bytes[1]; + res.bytes[2] = llsn.bytes[2]; + res.bytes[1] = llsn.bytes[3]; + res.bytes[0] = 0x01; + return res.ull; +} + + +void addInverter (uint8_t _ID, const char * _name, uint64_t _serial, + const measureDef_t * liste, int anzMeasure, + measureCalc_t * calcs, int anzMeasureCalculated) { +//------------------------------------------------------------------------------------- + if (anzInv >= MAX_ANZ_INV) { + DEBUG_OUT.println(F("ANZ_INV zu klein!")); + return; + } + inverter_t *p = &(inverters[anzInv]); + p->ID = _ID; + strcpy (p->name, _name); + p->serialNo = _serial; + p->RadioId = Serial2RadioID(_serial); + p->measureDef = liste; + p->anzMeasures = anzMeasure; + p->anzMeasureCalculated = anzMeasureCalculated; + p->measureCalculated = calcs; + p->anzTotalMeasures = anzMeasure + anzMeasureCalculated; + memset (p->values, 0, sizeof(p->values)); + + DEBUG_OUT.print (F("WR : ")); DEBUG_OUT.println(anzInv); + DEBUG_OUT.print (F("Type : ")); DEBUG_OUT.println(_name); + DEBUG_OUT.print (F("Serial : ")); DEBUG_OUT.println(uint64toa(_serial)); + DEBUG_OUT.print (F("Radio-ID : ")); DEBUG_OUT.println(uint64toa(p->RadioId)); + + anzInv++; +} + + +static uint8_t toggle = 0; // nur für Test, ob's auch für mehere WR funzt +uint8_t findInverter (uint8_t *fourbytes) { +//--------------------------------------- + for (uint8_t i = 0; i < anzInv; i++) { + longlongasbytes llb; + llb.ull = inverters[i].serialNo; + if (llb.bytes[3] == fourbytes[0] && + llb.bytes[2] == fourbytes[1] && + llb.bytes[1] == fourbytes[2] && + llb.bytes[0] == fourbytes[3] ) + { + return i; + //if (toggle) toggle = 0; else toggle = 1; return toggle; // Test ob mehr WR auch geht + } + } + return 0xFF; // nicht gefunden +} + + +char * error = {"error"}; + +char *getMeasureName (uint8_t wr, uint8_t i){ +//------------------------------------------ + inverter_t *p = &(inverters[wr]); + if (i >= p->anzTotalMeasures) return error; + uint8_t idx, channel = 0; + if (i < p->anzMeasures) { + idx = p->measureDef[i].nameIdx; + channel = p->measureDef[i].channel; + } + else { + idx = p->measureCalculated[i - p->anzMeasures].nameIdx; + } + char tmp[20]; + strcpy_P (_buffer, NAMES[idx]); + if (channel) { + sprintf_P (tmp, PSTR(".CH%d"), channel); + strcat(_buffer,tmp); + } + return _buffer; +} + +const char *getUnit (uint8_t wr, uint8_t i) { +//------------------------------------------ + inverter_t *p = &(inverters[wr]); + if (i >= p->anzTotalMeasures) return error; + uint8_t idx; + if (i < p->anzMeasures) + idx = p->measureDef[i].unitIdx; + else + idx = p->measureCalculated[i-p->anzMeasures].unitIdx; + + //strcpy (_buffer, units[i]); + //return _buffer; + return units[idx]; +} + + +float getMeasureValue (uint8_t wr, uint8_t i) { +//------------------------------------------ + if (i >= inverters[wr].anzTotalMeasures) return 0.0; + return inverters[wr].values[i]; +} + + +int getDivisor (uint8_t wr, uint8_t i) { +//------------------------------------ + inverter_t *p = &(inverters[wr]); + if (i >= p->anzTotalMeasures) return 1; + if (i < p->anzMeasures) { + uint8_t digits = p->measureDef[i].digits; + if (digits == DIV1) return 1; + if (digits == DIV10) return 10; + if (digits == DIV100) return 100; + if (digits == DIV1000) return 1000; + return 1; + } + else + return p->measureCalculated[i].digits; +} + + +uint8_t getDigits (uint8_t wr, uint8_t i) { +//--------------------------------------- + inverter_t *p = &(inverters[wr]); + if (i >= p->anzTotalMeasures) return 0; + if (i < p->anzMeasures) + return p->measureDef[i].digits; + else + return p->measureCalculated[i-p->anzMeasures].digits; +} + +// +++++++++++++++++++++++++++++++++++ Inverter ++++++++++++++++++++++++++++++++++++++++++++++ + +#include "HM600.h" // für HM-600 und HM-700 + +#include "HM1200.h" + +// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + +void setupInverts() { +//----------------- + + addInverter (0,"HM-600", 0x114172607952ULL, + hm600_measureDef, HM600_MEASURE_LIST_LEN, // Tabelle der Messwerte + hm600_measureCalc, HM600_CALCED_LIST_LEN); // Tabelle berechnete Werte + +/* + addInverter (1,"HM-1200", 0x114172607952ULL, + hm1200_measureDef, HM1200_MEASURE_LIST_LEN, // Tabelle der Messwerte + hm1200_measureCalc, HM1200_CALCED_LIST_LEN); // Tabelle berechnete Werte +*/ +} + + +#endif diff --git a/tools/HoyDtuSim/ModWebserver.h b/tools/HoyDtuSim/ModWebserver.h new file mode 100644 index 00000000..13c88df2 --- /dev/null +++ b/tools/HoyDtuSim/ModWebserver.h @@ -0,0 +1,151 @@ +// ################# WebServer ################# + +#ifndef __MODWEBSERVER_H +#define __MODWEBSERVER_H +#define MODWEBSERVER + +#include +#include "Debug.h" +#include "Settings.h" + +ESP8266WebServer server (WEBSERVER_PORT); + + +void returnOK () { + //-------------- + server.send(200, F("text/plain"), ""); +} + + +void returnFail(String msg) { + //------------------------- + server.send(500, F("text/plain"), msg + "\r\n"); +} + +void handleHelp () { +//----------------- + String out = ""; + out += "

Hilfe

"; + out += "

"; + out += ""; + out += ""; + out += ""; + out += ""; + out += "
/zeigt alle Messwerte in einer Tabelle; refresh alle 10 Sekunden
/datazum Abruf der Messwerte in der Form Name=wert
:{port+1}/updateOTA
/rebootstartet neu
"; + server.send (200, "text/html", out); +} + + +void handleReboot () { + //------------------- + returnOK (); + ESP.reset(); +} + + +void handleRoot() { + //---------------- + String out = ""; + out += ""; + out += "

Hoymiles Micro-Inverters

"; + char floatString[20]; + char line[100]; + for (uint8_t wr = 0; wr < anzInv; wr++) { + out += "

" + String(inverters[wr].name) + "

"; + out += "

S/N " + String (getSerialNoTxt(wr)) + "

"; + out += "

"; + out += ""; + for (uint8_t i = 0; i < inverters[wr].anzTotalMeasures; i++) { + dtostrf (getMeasureValue(wr, i),1, getDigits(wr,i), floatString); + sprintf(line, "", getMeasureName(wr, i), floatString, getUnit(wr, i)); + //DEBUG_OUT.println(line); + out += String(line); +/* out += ""; + out += ""; + out += ""; */ + } + out += "
KanalWertEinheit
%s%s%s
" + getMeasureName(i) + "" + String(getMeasureValue(i)) + "
" + String(getUnit(i)) + "
"; + } + int pos = out.indexOf("°"); + do { + if (pos>1) { + out = out.substring (0, pos) + "°" + out.substring(pos+2); + } + pos = out.indexOf("°"); + } while (pos>1); + + out += ""; + server.send (200, "text/html", out); + //DEBUG_OUT.println (out); +} + + +void handleData () { +//----------------- + String out = ""; + for (uint8_t wr = 0; wr < anzInv; wr++) { + for (int i = 0; i < inverters[wr].anzTotalMeasures; i++) { + out += (anzInv <= 1 ? "" : String (wr) + ".") + String(getMeasureName(wr,i)) + '=' + + String (getMeasureValue(wr,i)) /*+ ' ' + String(getUnit(wr,i))*/ + '\n'; + } + } + server.send(200, "text/plain", out); +} + + +void handleNotFound() { +//-------------------- + String message = "URI: "; + message += server.uri(); + message += "\nMethod: "; + message += (server.method() == HTTP_GET) ? "GET" : "POST"; + message += "\nArguments: "; + message += server.args(); + message += "\n"; + for (uint8_t i = 0; i < server.args(); i++) { + message += " NAME:" + server.argName(i) + "\n VALUE:" + server.arg(i) + "\n"; + } + server.send(404, "text/plain", message); +} + + +void setupWebServer (void) { + //------------------------- + server.begin(); + server.on("/", handleRoot); + server.on("/reboot", handleReboot); + server.on("/data", handleData); + server.on("/help", handleHelp); + //server.onNotFound(handleNotFound); wegen Spiffs-Dateimanager + + DEBUG_OUT.println ("[HTTP] installed"); +} + +void webserverHandle() { +//==================== + server.handleClient(); +} + + +// ################# OTA ################# + +#ifdef WITH_OTA +#include + +ESP8266WebServer httpUpdateServer (UPDATESERVER_PORT); +ESP8266HTTPUpdateServer httpUpdater; + +void setupUpdateByOTA () { + //------------------------ + httpUpdater.setup (&httpUpdateServer, UPDATESERVER_DIR, UPDATESERVER_USER, UPDATESERVER_PW); + httpUpdateServer.begin(); + DEBUG_OUT.println ("[OTA] installed"); +} + +void checkUpdateByOTA() { +//--------------------- + httpUpdateServer.handleClient(); +} +#endif + +#endif diff --git a/tools/HoyDtuSim/Settings.h b/tools/HoyDtuSim/Settings.h new file mode 100644 index 00000000..3e263fd5 --- /dev/null +++ b/tools/HoyDtuSim/Settings.h @@ -0,0 +1,69 @@ +#ifndef __SETTINGS_H +#define __SETTINGS_H + +// Ausgabe von Debug Infos auf der seriellen Console +#define DEBUG +#define SER_BAUDRATE (115200) + +#include "Debug.h" + +// Ausgabe was gesendet wird; 0 oder 1 +#define DEBUG_SEND 0 + +// soll zwichen den Sendekanälen 23, 40, 61, 75 ständig gewechselt werden +#define CHANNEL_HOP + +// mit OTA Support, also update der Firmware über WLan mittels IP/update +#define WITH_OTA + +// Hardware configuration +#ifdef ESP8266 +#define RF1_CE_PIN (D4) +#define RF1_CS_PIN (D8) +#define RF1_IRQ_PIN (D3) +#else +#define RF1_CE_PIN (9) +#define RF1_CS_PIN (10) +#define RF1_IRQ_PIN (2) +#endif + +// WR und DTU +#define RF_MAX_ADDR_WIDTH (5) +#define MAX_RF_PAYLOAD_SIZE (32) +#define DEFAULT_RF_DATARATE (RF24_250KBPS) // Datarate + +#define USE_POOR_MAN_CHANNEL_HOPPING_RCV 1 // 0 = not use + +#define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) +#define DTU_RADIO_ID ((uint64_t)0x1234567801ULL) +#define MAX_ANZ_INV 2 // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#define MAX_MEASURE_PER_INV 25 // hier statisch, könnte auch dynamisch erzeugt werden, aber Overhead für dyn. Speicher? + +// Webserver +#define WEBSERVER_PORT 80 + +// Time Server +//#define TIMESERVER_NAME "pool.ntp.org" +#define TIMESERVER_NAME "fritz.box" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen + +#ifdef WITH_OTA +// OTA Einstellungen +#define UPDATESERVER_PORT WEBSERVER_PORT+1 +#define UPDATESERVER_DIR "/update" +#define UPDATESERVER_USER "?????" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#define UPDATESERVER_PW "?????" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#endif + +// internes WLan +// PREFIXE dienen dazu, die eigenen WLans (wenn mehrere) von fremden zu unterscheiden +// gehe hier davon aus, dass alle WLans das gleiche Passwort haben. Wenn nicht, dann mehre Passwörter hinterlegen +#define SSID_PREFIX1 "pre1" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#define SSID_PREFIX2 "pre2" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#define SSID_PASSWORD "?????????????????" // <<<<<<<<<<<<<<<<<<<<<<<< anpassen + +// zur Berechnung von Sonnenauf- und -untergang +#define geoBreite 49.2866 // <<<<<<<<<<<<<<<<<<<<<<<< anpassen +#define geoLaenge 7.3416 // <<<<<<<<<<<<<<<<<<<<<<<< anpassen + + +#endif diff --git a/tools/HoyDtuSim/Sonne.h b/tools/HoyDtuSim/Sonne.h new file mode 100644 index 00000000..e80a8356 --- /dev/null +++ b/tools/HoyDtuSim/Sonne.h @@ -0,0 +1,55 @@ +#ifndef __SONNE_H +#define __SONNE_H + +#include "Settings.h" +#include "Debug.h" + + +long SunDown, SunUp; + +void calcSunUpDown (time_t date) { + //SunUpDown res = new SunUpDown(); + boolean isSummerTime = false; // TODO TimeZone.getDefault().inDaylightTime(new Date(date)); + + //- Bogenmass + double brad = geoBreite / 180.0 * PI; + // - Höhe Sonne -50 Bogenmin. + double h0 = -50.0 / 60.0 / 180.0 * PI; + //- Deklination dek, Tag des Jahres d0 + int tage = 30 * month(date) - 30 + day(date); + double dek = 0.40954 * sin (0.0172 * (tage - 79.35)); + double zh1 = sin (h0) - sin (brad) * sin(dek); + double zh2 = cos(brad) * cos(dek); + double zd = 12*acos (zh1/zh2) / PI; + double zgl = -0.1752 * sin (0.03343 * tage + 0.5474) - 0.134 * sin (0.018234 * tage - 0.1939); + //-Sonnenuntergang + double tsu = 12 + zd - zgl; + double su = (tsu + (15.0 - geoLaenge) / 15.0); + int std = (int)su; + int minute = (int) ((su - std)*60); + if (isSummerTime) std++; + SunDown = (100*std + minute) * 100; + + //- Sonnenaufgang + double tsa = 12 - zd - zgl; + double sa = (tsa + (15.0 - geoLaenge) /15.0); + std = (int) sa; + minute = (int) ((sa - std)*60); + if (isSummerTime) std++; + SunUp = (100*std + minute) * 100; + DEBUG_OUT.print(F("Sonnenaufgang :")); DEBUG_OUT.println(SunUp); + DEBUG_OUT.print(F("Sonnenuntergang:")); DEBUG_OUT.println(SunDown); +} + +boolean isDayTime() { +//----------------- +// 900 = 15 Minuten, vor Sonnenaufgang und nach -untergang + const int offset=60*15; + time_t no = getNow(); + long jetztMinuteU = (100 * hour(no+offset) + minute(no+offset)) * 100; + long jetztMinuteO = (100 * hour(no-offset) + minute(no-offset)) * 100; + + return ((jetztMinuteU >= SunUp) &&(jetztMinuteO <= SunDown)); +} + +#endif diff --git a/tools/HoyDtuSim/hm_crc.h b/tools/HoyDtuSim/hm_crc.h new file mode 100644 index 00000000..8a029619 --- /dev/null +++ b/tools/HoyDtuSim/hm_crc.h @@ -0,0 +1,102 @@ +#ifndef __HM_CRC_H +#define __HM_CRC_H + +#define BITS_TO_BYTES(x) (((x)+7)>>3) +#define BYTES_TO_BITS(x) ((x)<<3) + +extern uint16_t crc16_modbus(uint8_t *puchMsg, uint16_t usDataLen); +extern uint8_t crc8(uint8_t *buf, const uint16_t bufLen); +extern uint16_t crc16(uint8_t* buf, const uint16_t bufLen, const uint16_t startCRC, const uint16_t startBit, const uint16_t len_bits); + +//#define OUTPUT_DEBUG_INFO + +#define CRC8_INIT 0x00 +#define CRC8_POLY 0x01 + +#define CRC16_MODBUS_POLYNOM 0xA001 + +uint8_t crc8(uint8_t buf[], uint16_t len) { + uint8_t crc = CRC8_INIT; + for(uint8_t i = 0; i < len; i++) { + crc ^= buf[i]; + for(uint8_t b = 0; b < 8; b ++) { + crc = (crc << 1) ^ ((crc & 0x80) ? CRC8_POLY : 0x00); + } + } + return crc; +} + +uint16_t crc16_modbus(uint8_t buf[], uint16_t len) { + uint16_t crc = 0xffff; + uint8_t lsb; + + for(uint8_t i = 0; i < len; i++) { + crc = crc ^ buf[i]; + for(int8_t b = 7; b >= 0; b--) { + lsb = (crc & 0x0001); + if(lsb == 0x01) + crc--; + crc = crc >> 1; + if(lsb == 0x01) + crc = crc ^ CRC16_MODBUS_POLYNOM; + } + } + + return crc; +} + +// NRF24 CRC16 calculation with poly 0x1021 = (1) 0001 0000 0010 0001 = x^16+x^12+x^5+1 +uint16_t crc16(uint8_t *buf, const uint16_t bufLen, const uint16_t startCRC, const uint16_t startBit, const uint16_t len_bits) +{ + uint16_t crc = startCRC; + if ((len_bits > 0) && (len_bits <= BYTES_TO_BITS(bufLen))) + { + // The length of the data might not be a multiple of full bytes. + // Therefore we proceed over the data bit-by-bit (like the NRF24 does) to + // calculate the CRC. + uint16_t data; + uint8_t byte, shift; + uint16_t bitoffs = startBit; + + // Get a new byte for the next 8 bits. + byte = buf[bitoffs >> 3]; +#ifdef OUTPUT_DEBUG_INFO + printf_P(PSTR("\nStart CRC %04X, %u bits:"), startCRC, len_bits); + printf_P(PSTR("\nbyte %02X:"), byte); +#endif + while (bitoffs < len_bits + startBit) + { + shift = bitoffs & 7; + // Shift the active bit to the position of bit 15 + data = ((uint16_t)byte) << (8 + shift); +#ifdef OUTPUT_DEBUG_INFO + printf_P(PSTR(" bit %u %u,"), shift, data & 0x8000 ? 1 : 0); +#endif + // Assure all other bits are 0 + data &= 0x8000; + crc ^= data; + if (crc & 0x8000) + { + crc = (crc << 1) ^ 0x1021; // 0x1021 = (1) 0001 0000 0010 0001 = x^16+x^12+x^5+1 + } + else + { + crc = (crc << 1); + } + ++bitoffs; + if (0 == (bitoffs & 7)) + { + // Get a new byte for the next 8 bits. + byte = buf[bitoffs >> 3]; +#ifdef OUTPUT_DEBUG_INFO + printf_P(PSTR("crc %04X:"), crc); + if (bitoffs < len_bits + startBit) + printf_P(PSTR("\nbyte %02X:"), byte); +#endif + } + } + } + return crc; +} + +#endif diff --git a/tools/HoyDtuSim/hm_packets.h b/tools/HoyDtuSim/hm_packets.h new file mode 100644 index 00000000..c6959cd9 --- /dev/null +++ b/tools/HoyDtuSim/hm_packets.h @@ -0,0 +1,93 @@ +#ifndef __HM_PACKETS_H +#define __HM_PACKETS_H + +#include "hm_crc.h" + +class HM_Packets +{ +private: + uint32_t unixTimeStamp; + + void prepareBuffer(uint8_t *buf); + void copyToBuffer(uint8_t *buf, uint32_t val); + void copyToBufferBE(uint8_t *buf, uint32_t val); + +public: + void SetUnixTimeStamp(uint32_t ts); + void UnixTimeStampTick(); + + int32_t GetTimePacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr); + int32_t GetCmdPacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr, uint8_t mid, uint8_t cmd); +}; + +void HM_Packets::SetUnixTimeStamp(uint32_t ts) +{ + unixTimeStamp = ts; +} + +void HM_Packets::UnixTimeStampTick() +{ + unixTimeStamp++; +} + +void HM_Packets::prepareBuffer(uint8_t *buf) +{ + // minimal buffer size of 32 bytes is assumed + memset(buf, 0x00, 32); +} + +void HM_Packets::copyToBuffer(uint8_t *buf, uint32_t val) +{ + buf[0]= (uint8_t)(val >> 24); + buf[1]= (uint8_t)(val >> 16); + buf[2]= (uint8_t)(val >> 8); + buf[3]= (uint8_t)(val & 0xFF); +} + +void HM_Packets::copyToBufferBE(uint8_t *buf, uint32_t val) +{ + memcpy(buf, &val, sizeof(uint32_t)); +} + +static uint8_t cid = 0; + +int32_t HM_Packets::GetTimePacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr) +{ + prepareBuffer(buf); + + buf[0] = 0x15; + copyToBufferBE(&buf[1], wrAdr); + copyToBufferBE(&buf[5], dtuAdr); + buf[9] = 0x80; + buf[10] = 0x0B; //0x0B; 0x03 0x11 + buf[11] = 0x00; + + copyToBuffer(&buf[12], unixTimeStamp); + + buf[19] = 0x05; + + // CRC16 + uint16_t crc16 = crc16_modbus(&buf[10], 14); + buf[24] = crc16 >> 8; + buf[25] = crc16 & 0xFF; + + // crc8 + buf[26] = crc8(&buf[0], 26); + + return 27; +} + +int32_t HM_Packets::GetCmdPacket(uint8_t *buf, uint32_t wrAdr, uint32_t dtuAdr, uint8_t mid, uint8_t cmd) +{ + buf[0] = mid; + copyToBufferBE(&buf[1], wrAdr); + copyToBufferBE(&buf[5], dtuAdr); + buf[9] = cmd; + + // crc8 + buf[10] = crc8(&buf[0], 10); + + return 11; +} + +#endif diff --git a/tools/HoyDtuSim/wifi.h b/tools/HoyDtuSim/wifi.h new file mode 100644 index 00000000..d98cc40f --- /dev/null +++ b/tools/HoyDtuSim/wifi.h @@ -0,0 +1,345 @@ +#ifndef __WIFI_H +#define __WIFI_H + +#include "Settings.h" +#include "Debug.h" +#include +#include // von url=https://www.technologytourist.com + +String SSID = ""; // bestes WLan + +// Prototypes +time_t getNow (); +boolean setupWifi (); +boolean checkWifi(); + + +String findWifi () { +//---------------- + String ssid; + int32_t rssi; + uint8_t encryptionType; + uint8_t* bssid; + int32_t channel; + bool hidden; + int scanResult; + + String best_ssid = ""; + int32_t best_rssi = -100; + + DEBUG_OUT.println(F("Starting WiFi scan...")); + + scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true); + + if (scanResult == 0) { + DEBUG_OUT.println(F("keine WLans")); + } else if (scanResult > 0) { + DEBUG_OUT.printf(PSTR("%d WLans gefunden:\n"), scanResult); + + // Print unsorted scan results + for (int8_t i = 0; i < scanResult; i++) { + WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden); + + DEBUG_OUT.printf(PSTR(" %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"), + i, + channel, + bssid[0], bssid[1], bssid[2], + bssid[3], bssid[4], bssid[5], + rssi, + (encryptionType == ENC_TYPE_NONE) ? ' ' : '*', + hidden ? 'H' : 'V', + ssid.c_str()); + delay(1); + boolean check; + #ifdef SSID_PREFIX1 + check = ssid.substring(0,strlen(SSID_PREFIX1)).equals(SSID_PREFIX1); + #else + check = true; + #endif + #ifdef SSID_PREFIX2 + check = check || ssid.substring(0,strlen(SSID_PREFIX2)).equals(SSID_PREFIX2); + #endif + if (check) { + if (rssi > best_rssi) { + best_rssi = rssi; + best_ssid = ssid; + } + } + } + } else { + DEBUG_OUT.printf(PSTR("WiFi scan error %d"), scanResult); + } + + if (! best_ssid.equals("")) { + SSID = best_ssid; + DEBUG_OUT.printf ("Bestes Wifi unter: %s\n", SSID.c_str()); + return SSID; + } + else + return ""; +} + +void IP2string (IPAddress IP, char * buf) { + sprintf (buf, "%d.%d.%d.%d", IP[0], IP[1], IP[2], IP[3]); +} + +void connectWifi() { +//------------------ +// if (SSID.equals("")) + String s = findWifi(); + + if (!SSID.equals("")) { + DEBUG_OUT.print("versuche zu verbinden mit "); DEBUG_OUT.println(SSID); + //while (WiFi.status() != WL_CONNECTED) { + WiFi.begin (SSID, SSID_PASSWORD); + int versuche = 20; + while (WiFi.status() != WL_CONNECTED && versuche > 0) { + delay(1000); + versuche--; + DEBUG_OUT.print(versuche); DEBUG_OUT.print(' '); + } + //} + if (WiFi.status() == WL_CONNECTED) { + char buffer[30]; + IP2string (WiFi.localIP(), buffer); + String out = "\n[WiFi]Verbunden; meine IP:" + String (buffer); + DEBUG_OUT.println (out); + } + else + DEBUG_OUT.print("\nkeine Verbindung mit SSID "); DEBUG_OUT.println(SSID); + } +} + + +boolean setupWifi () { +//------------------ + int count=5; + while (count-- && WiFi.status() != WL_CONNECTED) + connectWifi(); + return (WiFi.status() == WL_CONNECTED); +} + + +Pinger pinger; +IPAddress ROUTER = IPAddress(192,168,1,1); + +boolean checkWifi() { +//--------------- + boolean NotConnected = (WiFi.status() != WL_CONNECTED) || !pinger.Ping(ROUTER); + if (NotConnected) { + setupWifi(); + if (WiFi.status() == WL_CONNECTED) + getNow(); + } + return (WiFi.status() == WL_CONNECTED); +} + + + +// ################ Clock ################# + +#include +#include + +IPAddress timeServer; +unsigned int localPort = 8888; +const int NTP_PACKET_SIZE= 48; // NTP time stamp is in the first 48 bytes of the message +byte packetBuf[NTP_PACKET_SIZE]; // Buffer to hold incoming and outgoing packets +const int timeZone = 1; // Central European Time = +1 +long SYNCINTERVALL = 0; +WiFiUDP Udp; // A UDP instance to let us send and receive packets over UDP + +// prototypes +time_t getNtpTime (); +void sendNTPpacket (IPAddress &address); +time_t getNow (); +char* getDateTimeStr (time_t no = getNow()); +time_t offsetDayLightSaving (uint32_t local_t); +bool isDayofDaylightChange (time_t local_t); + + +void _setSyncInterval (long intervall) { +//---------------------------------------- + SYNCINTERVALL = intervall; + setSyncInterval (intervall); +} + +void setupClock() { +//----------------- + WiFi.hostByName (TIMESERVER_NAME,timeServer); // at this point the function works + + Udp.begin(localPort); + + getNtpTime(); + + setSyncProvider (getNtpTime); + while(timeStatus()== timeNotSet) + delay(1); // + + _setSyncInterval (SECS_PER_DAY / 2); // Set seconds between re-sync + + //lastClock = now(); + //Serial.print("[NTP] get time from NTP server "); + getNow(); + //char buf[20]; + DEBUG_OUT.print ("[NTP] get time from NTP server "); + DEBUG_OUT.print (timeServer); + //sprintf (buf, ": %02d:%02d:%02d", hour(no), minute(no), second(no)); + DEBUG_OUT.print (": got "); + DEBUG_OUT.println (getDateTimeStr()); +} + +//*-------- NTP code ----------*/ + + +time_t getNtpTime() { +//------------------- + sendNTPpacket(timeServer); // send an NTP packet to a time server + //uint32_t beginWait = millis(); + //while (millis() - beginWait < 1500) { + int versuch = 0; + while (versuch < 5) { + int wait = 150; // results in max 1500 ms waitTime + while (wait--) { + int size = Udp.parsePacket(); + if (size >= NTP_PACKET_SIZE) { + //Serial.println("Receive NTP Response"); + Udp.read(packetBuf, NTP_PACKET_SIZE); // read packet into the buffer + unsigned long secsSince1900; + // convert four bytes starting at location 40 to a long integer + secsSince1900 = (unsigned long)packetBuf[40] << 24; + secsSince1900 |= (unsigned long)packetBuf[41] << 16; + secsSince1900 |= (unsigned long)packetBuf[42] << 8; + secsSince1900 |= (unsigned long)packetBuf[43]; + // time_t now = secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR; + + time_t utc = secsSince1900 - 2208988800UL; + time_t now = utc + (timeZone +offsetDayLightSaving(utc)) * SECS_PER_HOUR; + + if (isDayofDaylightChange (utc) && hour(utc) <= 4) + _setSyncInterval (SECS_PER_HOUR); + else + _setSyncInterval (SECS_PER_DAY / 2); + + return now; + } + else + delay(10); + } + versuch++; + } + return 0; +} + +// send an NTP request to the time server at the given address +void sendNTPpacket(IPAddress& address) { +//------------------------------------ + memset(packetBuf, 0, NTP_PACKET_SIZE); // set all bytes in the buffer to 0 + // Initialize values needed to form NTP request + packetBuf[0] = B11100011; // LI, Version, Mode + packetBuf[1] = 0; // Stratum + packetBuf[2] = 6; // Max Interval between messages in seconds + packetBuf[3] = 0xEC; // Clock Precision + // bytes 4 - 11 are for Root Delay and Dispersion and were set to 0 by memset + packetBuf[12] = 49; // four-byte reference ID identifying + packetBuf[13] = 0x4E; + packetBuf[14] = 49; + packetBuf[15] = 52; + // send the packet requesting a timestamp: + Udp.beginPacket(address, 123); //NTP requests are to port 123 + Udp.write(packetBuf,NTP_PACKET_SIZE); + Udp.endPacket(); + +} + +int getTimeTrials = 0; + +bool isValidDateTime (time_t no) { + return (year(no) > 2020 && year(no) < 2038); +} + +bool isDayofDaylightChange (time_t local_t) { +//----------------------------------------- + int jahr = year (local_t); + int monat = month (local_t); + int tag = day (local_t); + bool ret = ( (monat ==3 && tag == (31 - (5 * jahr /4 + 4) % 7)) || + (monat==10 && tag == (31 - (5 * jahr /4 + 1) % 7))); + DEBUG_OUT.print ("isDayofDaylightChange="); DEBUG_OUT.println (ret); + return ret; +} + +// calculates the daylight saving time for middle Europe. Input: Unixtime in UTC (!) +// übernommen von Jurs, see : https://forum.arduino.cc/index.php?topic=172044.msg1278536#msg1278536 +time_t offsetDayLightSaving (uint32_t local_t) { +//-------------------------------------------- + int monat = month (local_t); + if (monat < 3 || monat > 10) return 0; // no DSL in Jan, Feb, Nov, Dez + if (monat > 3 && monat < 10) return 1; // DSL in Apr, May, Jun, Jul, Aug, Sep + int jahr = year (local_t); + int std = hour (local_t); + //int tag = day (local_t); + int stundenBisHeute = (std + 24 * day(local_t)); + if ( (monat == 3 && stundenBisHeute >= (1 + timeZone + 24 * (31 - (5 * jahr /4 + 4) % 7))) || + (monat == 10 && stundenBisHeute < (1 + timeZone + 24 * (31 - (5 * jahr /4 + 1) % 7))) ) + return 1; + else + return 0; + /* + int stundenBisWechsel = (1 + 24 * (31 - (5 * year(local_t) / 4 + 4) % 7)); + if (monat == 3 && stundenBisHeute >= stundenBisWechsel || monat == 10 && stundenBisHeute < stundenBisWechsel) + return 1; + else + return 0; + */ +} + + +time_t getNow () { +//--------------- + time_t jetzt = now(); + while (!isValidDateTime(jetzt) && getTimeTrials < 10) { // ungültig, max 10x probieren + if (getTimeTrials) { + //Serial.print (getTimeTrials); + //Serial.println(". Versuch für getNtpTime"); + } + jetzt = getNtpTime (); + if (isValidDateTime(jetzt)) { + setTime (jetzt); + getTimeTrials = 0; + } + else + getTimeTrials++; + } + //return jetzt + offsetDayLightSaving(jetzt)*SECS_PER_HOUR; + return jetzt; +} + + +char _timestr[24]; + +char* getNowStr (time_t no = getNow()) { +//------------------------------------ + sprintf (_timestr, "%02d:%02d:%02d", hour(no), minute(no), second(no)); + return _timestr; +} + +char* getTimeStr (time_t no = getNow()) { +//------------------------------------ + return getNowStr (no); +} + +char* getDateTimeStr (time_t no) { +//------------------------------ + sprintf (_timestr, "%04d-%02d-%02d+%02d:%02d:%02d", year(no), month(no), day(no), hour(no), minute(no), second(no)); + return _timestr; +} + +char* getDateStr (time_t no) { +//------------------------------ + sprintf (_timestr, "%04d-%02d-%02d", year(no), month(no), day(no)); + return _timestr; +} + + +#endif From 964eb261c1d32c46dee9bceeec74ea11850b5dcd Mon Sep 17 00:00:00 2001 From: Marcus Date: Thu, 28 Apr 2022 16:16:54 +0200 Subject: [PATCH 37/58] some updates --- doc/HM-400 data.xlsx | Bin 599206 -> 728171 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/HM-400 data.xlsx b/doc/HM-400 data.xlsx index d6295022436ab0c0ba1f8e9a3fc9b91954692dbc..2c1bf5e5772a66eee39213107e579fc48da9abb4 100755 GIT binary patch literal 728171 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

#j1aIh@I}G+ljwKP&@N+1Hl=-G&43 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¬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

ZwwX|03W+MTOgvtC`2 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 JsQ(^y{|oPFV$%Qs literal 599206 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 O|LvZ`p?&+-VE!-BAoe%_ From b3bdf2811ec36edd0fbba435d313d3b12b968a40 Mon Sep 17 00:00:00 2001 From: lumapu Date: Thu, 28 Apr 2022 19:40:51 +0200 Subject: [PATCH 38/58] * fix: random crashes #15 -> don't use delay() on ESP while Wifi connection is established!? --- tools/esp8266/app.cpp | 4 ++-- tools/esp8266/defines.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 56ef1786..d8f63611 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -164,7 +164,7 @@ void app::loop(void) { if(NULL != inv) { mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp); yield(); - delay(100); + //delay(100); } } } @@ -184,7 +184,7 @@ void app::loop(void) { snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, fields[iv->assign[i].fieldId]); snprintf(val, 10, "%.3f", mSys->getValue(iv, i)); mMqtt.sendMsg(topic, val); - delay(20); + //delay(20); yield(); } } diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 80de9e02..1aa22cee 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 2 -#define VERSION_PATCH 10 +#define VERSION_PATCH 11 //------------------------------------- From 3055da9c3f3f465dedb873644ae9d0cbd7a49bca Mon Sep 17 00:00:00 2001 From: grindylow Date: Thu, 28 Apr 2022 21:44:31 +0200 Subject: [PATCH 39/58] Update README with links to individual projects. --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fda91fe4..501c02aa 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,11 @@ In particular: * `doc/hoymiles-format-description.txt` is a detailed description of the communications format and the history of this project * `doc/getting-started-ESP8266.md` shows the hardware setup for an ESP8266-based system -* The `tools` folder contains various software tools for RaspberryPi, Arduino and ESP8266/ESP32 +* The `tools` folder contains various software tools for RaspberryPi, Arduino and ESP8266/ESP32: + * A [version for ESP8266](esp8266) that includes a web interface + * A [version for Arduino Nano](tools/nano/NRF24_SendRcv) + * An [alternative Version of the above](tools/NRF24_SendRcv) + * A [different implementation](tools/HoyDtuSim) + * An [implementation for Raspberry Pi](tools/rpi) that polls an inverter and archives results as log files/stdout as well as posting them to an MQTT broker. Contributors are always welcome! From 989c090fadc5222b8b8a6a56698b82b2afcc6762 Mon Sep 17 00:00:00 2001 From: lumapu Date: Thu, 28 Apr 2022 22:45:44 +0200 Subject: [PATCH 40/58] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 501c02aa..6c781bbf 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ In particular: * `doc/hoymiles-format-description.txt` is a detailed description of the communications format and the history of this project * `doc/getting-started-ESP8266.md` shows the hardware setup for an ESP8266-based system * The `tools` folder contains various software tools for RaspberryPi, Arduino and ESP8266/ESP32: - * A [version for ESP8266](esp8266) that includes a web interface + * A [version for ESP8266](tools/esp8266) that includes a web interface * A [version for Arduino Nano](tools/nano/NRF24_SendRcv) * An [alternative Version of the above](tools/NRF24_SendRcv) * A [different implementation](tools/HoyDtuSim) From edcf69aa017fa7f152fcc0d6dcd3d82d0cf54d8c Mon Sep 17 00:00:00 2001 From: Andreas Erhard Date: Fri, 29 Apr 2022 08:41:22 +0200 Subject: [PATCH 41/58] * added display name to inverter view --- tools/esp8266/app.cpp | 4 ++++ tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/style.css | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index d8f63611..3f0ccd6a 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -409,6 +409,8 @@ void app::showLiveData(void) { case INV_TYPE_HM1200: modNum = 4; break; } + modHtml += "

"; #else // dump all data to web frontend modHtml = "
";
diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h
index dc3639c4..491afc1e 100644
--- a/tools/esp8266/html/h/style_css.h
+++ b/tools/esp8266/html/h/style_css.h
@@ -1,4 +1,4 @@
 #ifndef __STYLE_H__
 #define __STYLE_H__
-const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}";
+const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-group {display:inline-block;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}";
 #endif /*__STYLE_H__*/
diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css
index 21d5340f..88c1b57c 100644
--- a/tools/esp8266/html/style.css
+++ b/tools/esp8266/html/style.css
@@ -136,6 +136,10 @@ label {
     float: right;
 }
 
+div.ch-group {
+    display: inline-block;
+}
+
 div.ch {
     width: 250px;
     height: 410px;

From 6a31bcddb12cc917202ca41521f9335f5862b78b Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Fri, 29 Apr 2022 20:33:15 +0200
Subject: [PATCH 42/58] * added HM800 defines * updated README.md

---
 tools/esp8266/README.md     | 14 ++++++++++++--
 tools/esp8266/defines.h     |  2 +-
 tools/esp8266/hmInverters.h | 30 +++++++++++++++++++++++++++---
 tools/esp8266/hmSystem.h    | 14 +++++++++-----
 4 files changed, 49 insertions(+), 11 deletions(-)

diff --git a/tools/esp8266/README.md b/tools/esp8266/README.md
index 66660bcd..cdb120cd 100644
--- a/tools/esp8266/README.md
+++ b/tools/esp8266/README.md
@@ -13,6 +13,13 @@ This code can be compiled using Arduino. The settings were:
 - Board: Generic ESP8266 Module
 - Flash-Size: 1MB (FS: none, OTA: 502kB)
 
+### Optional Configuration before compilation
+
+- number of supported inverters (set to 3 by default) `defines.h`
+- enable channel hopping `hmRadio.h`
+- DTU radio id `hmRadio.h`
+- unformated list in webbrowser `/livedata` `defines.h`, `LIVEDATA_VISUALIZED`
+
 
 ## Flash ESP with firmware
 
@@ -21,12 +28,12 @@ This code can be compiled using Arduino. The settings were:
 3. the ESP will start as access point (AP) if there is no network config stored in its eeprom
 4. connect to the AP, you will be forwarded to the setup page
 5. configure your WiFi settings, save, repower
-6. check your router for the IP address of the module
+6. check your router or serial console for the IP address of the module. You can try ping the configured device name as well.
 
 
 ## Usage
 
-Connect the ESP to power and to your serial console. The webinterface has the following abilities:
+Connect the ESP to power and to your serial console (optional). The webinterface has the following abilities:
 
 - OTA Update (over the air update)
 - Configuration (Wifi, inverter(s), Pinout, MQTT)
@@ -40,11 +47,14 @@ The serial console will print the converted values which were read out of the in
 
 For now the following inverters should work out of the box:
 
+- HM400
 - HM600
+- HM800
 - HM1200
 
 ## USED LIBRARIES
 
 - `Time`
 - `RF24`
+- `PubSubClient`
 
diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h
index 1aa22cee..f5c57530 100644
--- a/tools/esp8266/defines.h
+++ b/tools/esp8266/defines.h
@@ -25,7 +25,7 @@
 //-------------------------------------
 #define VERSION_MAJOR       0
 #define VERSION_MINOR       2
-#define VERSION_PATCH       11
+#define VERSION_PATCH       12
 
 
 //-------------------------------------
diff --git a/tools/esp8266/hmInverters.h b/tools/esp8266/hmInverters.h
index 0b516410..aa64a64b 100644
--- a/tools/esp8266/hmInverters.h
+++ b/tools/esp8266/hmInverters.h
@@ -20,9 +20,9 @@ const char* const fields[] = {"U_DC", "I_DC", "P_DC", "YieldDay", "YieldWeek", "
 enum {CH0 = 0, CH1, CH2, CH3, CH4};
 enum {CMD01 = 0x01, CMD02, CMD03, CMD82 = 0x82, CMD83, CMD84};
 
-enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400};
-const char* const invTypes[] = {"HM600", "HM1200 / HM1500", "HM400"};
-#define NUM_INVERTER_TYPES   3
+enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400, INV_TYPE_HM800};
+const char* const invTypes[] = {"HM600", "HM1200 / HM1500", "HM400", "HM800"};
+#define NUM_INVERTER_TYPES   4
 
 typedef struct {
     uint8_t    fieldId; // field id
@@ -96,6 +96,30 @@ const byteAssign_t hm600assignment[] = {
 #define HM600_LIST_LEN     (sizeof(hm600assignment) / sizeof(byteAssign_t))
 
 
+//-------------------------------------
+// HM800
+//-------------------------------------
+const byteAssign_t hm800assignment[] = {
+
+    { FLD_UDC, UNIT_V,   CH1, CMD01,  3, 2, 10   },
+    { FLD_IDC, UNIT_A,   CH1, CMD01,  5, 2, 100  },
+    { FLD_PDC, UNIT_W,   CH1, CMD01,  7, 2, 10   },
+    { FLD_UDC, UNIT_V,   CH2, CMD01,  9, 2, 10   },
+    { FLD_IDC, UNIT_A,   CH2, CMD01, 11, 2, 100  },
+    { FLD_PDC, UNIT_W,   CH2, CMD01, 13, 2, 10   },
+    { FLD_YW,  UNIT_WH,  CH0, CMD02,  1, 2, 1    },
+    { FLD_YT,  UNIT_KWH, CH0, CMD02,  3, 4, 1000 },
+    { FLD_YD,  UNIT_WH,  CH1, CMD02,  7, 2, 1    },
+    { FLD_YD,  UNIT_WH,  CH2, CMD02,  9, 2, 1    },
+    { FLD_UAC, UNIT_V,   CH0, CMD02, 11, 2, 10   },
+    { FLD_F,   UNIT_HZ,  CH0, CMD02, 13, 2, 100  },
+    { FLD_PAC, UNIT_W,   CH0, CMD02, 15, 2, 10   },
+    { FLD_IAC, UNIT_A,   CH0, CMD83,  3, 2, 100  },
+    { FLD_T,   UNIT_C,   CH0, CMD83,  7, 2, 10   }
+};
+#define HM800_LIST_LEN     (sizeof(hm800assignment) / sizeof(byteAssign_t))
+
+
 //-------------------------------------
 // HM1200, HM1500
 //-------------------------------------
diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h
index 70afe6b7..64af10b6 100644
--- a/tools/esp8266/hmSystem.h
+++ b/tools/esp8266/hmSystem.h
@@ -137,18 +137,22 @@ class HmSystem {
         }
 
         void getAssignment(inverter_t *p) {
-            if(INV_TYPE_HM600 == p->type) {
+            if(INV_TYPE_HM400 == p->type) {
+                p->listLen = (uint8_t)(HM400_LIST_LEN);
+                p->assign  = (byteAssign_t*)hm400assignment;
+            }
+            else if(INV_TYPE_HM600 == p->type) {
                 p->listLen = (uint8_t)(HM600_LIST_LEN);
                 p->assign  = (byteAssign_t*)hm600assignment;
             }
+            else if(INV_TYPE_HM800 == p->type) {
+                p->listLen = (uint8_t)(HM800_LIST_LEN);
+                p->assign  = (byteAssign_t*)hm800assignment;
+            }
             else if(INV_TYPE_HM1200 == p->type) {
                 p->listLen = (uint8_t)(HM1200_LIST_LEN);
                 p->assign  = (byteAssign_t*)hm1200assignment;
             }
-            else if(INV_TYPE_HM400 == p->type) {
-                p->listLen = (uint8_t)(HM400_LIST_LEN);
-                p->assign  = (byteAssign_t*)hm400assignment;
-            }
             else {
                 p->listLen = 0;
                 p->assign  = NULL;

From 93d16be6196f7d1f7622950cce9cf3ca9c827bb1 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Fri, 29 Apr 2022 23:49:55 +0200
Subject: [PATCH 43/58] Update getting-started-ESP8266.md

---
 doc/getting-started-ESP8266.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/getting-started-ESP8266.md b/doc/getting-started-ESP8266.md
index d3e064b6..d8ee683c 100644
--- a/doc/getting-started-ESP8266.md
+++ b/doc/getting-started-ESP8266.md
@@ -40,6 +40,8 @@ Setup
 * Device Host Name
   * Enter Device Name `esp-ahoy` 
 * General
-  * Hoymiles Address (e.g. 114173123456) `11:41:73:12:34:56`
+  * Hoymiles Address (e.g. 114173123456)
+  * Choose inverter type
+  * Set individual inverter name
   * [x] Reboot device after successful save
 Save

From 32e58c98c034cba9a04c1f29cc54121542da51b5 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sat, 30 Apr 2022 00:53:51 +0200
Subject: [PATCH 44/58] * compile ok, added 4 calculation functions for test

---
 tools/esp8266/hmDefines.h  | 24 +++++++---
 tools/esp8266/hmInverter.h | 92 ++++++++++++++++++++++++++++++--------
 2 files changed, 92 insertions(+), 24 deletions(-)

diff --git a/tools/esp8266/hmDefines.h b/tools/esp8266/hmDefines.h
index ac53b876..169a8d09 100644
--- a/tools/esp8266/hmDefines.h
+++ b/tools/esp8266/hmDefines.h
@@ -4,10 +4,18 @@
 #include "debug.h"
 #include 
 
+
+union serial_u {
+    uint64_t u64;
+    uint8_t  b[8];
+};
+
+
 // units
 enum {UNIT_V = 0, UNIT_A, UNIT_W,  UNIT_WH, UNIT_KWH, UNIT_HZ, UNIT_C, UNIT_PCT};
 const char* const units[] = {"V", "A", "W", "Wh", "kWh", "Hz", "°C", "%"};
 
+
 // field types
 enum {FLD_UDC = 0, FLD_IDC, FLD_PDC, FLD_YD, FLD_YW, FLD_YT,
         FLD_UAC, FLD_IAC, FLD_PAC, FLD_F, FLD_T, FLD_PCT};
@@ -15,10 +23,8 @@ const char* const fields[] = {"U_DC", "I_DC", "P_DC", "YieldDay", "YieldWeek", "
         "U_AC", "I_AC", "P_AC", "Freq", "Temp", "Pct"};
 
 
-union serial_u {
-    uint64_t u64;
-    uint8_t  b[8];
-};
+// indices to calculation functions, defined in hmInverter.h
+enum {CALC_YT_CH0 = 0, CALC_YD_CH0, CALC_UDC_CH};
 
 
 // CH0 is default channel (freq, ac, temp)
@@ -30,6 +36,7 @@ enum {INV_TYPE_HM600 = 0, INV_TYPE_HM1200, INV_TYPE_HM400, INV_TYPE_HM800};
 const char* const invTypes[] = {"HM600", "HM1200 / HM1500", "HM400", "HM800"};
 #define NUM_INVERTER_TYPES   4
 
+
 typedef struct {
     uint8_t    fieldId; // field id
     uint8_t    unitId;  // uint id
@@ -119,7 +126,7 @@ const byteAssign_t hm1200assignment[] = {
     { FLD_PDC, UNIT_W,   CH1, CMD01,  9, 2, 10   },
     { FLD_YD,  UNIT_WH,  CH1, CMD02,  5, 2, 1    },
     { FLD_YT,  UNIT_KWH, CH1, CMD01, 13, 4, 1000 },
-    { FLD_UDC, UNIT_V,   CH2, CMD02,  9, 2, 10   },
+    { FLD_UDC, UNIT_V,   CH3, CMD02,  9, 2, 10   },
     { FLD_IDC, UNIT_A,   CH2, CMD01,  7, 2, 100  },
     { FLD_PDC, UNIT_W,   CH2, CMD01, 11, 2, 10   },
     { FLD_YD,  UNIT_WH,  CH2, CMD02,  7, 2, 1    },
@@ -137,10 +144,15 @@ const byteAssign_t hm1200assignment[] = {
     { FLD_PAC, UNIT_W,   CH0, CMD84,  3, 2, 10   },
     { FLD_F,   UNIT_HZ,  CH0, CMD84,  1, 2, 100  },
     { FLD_PCT, UNIT_PCT, CH0, CMD84,  9, 2, 10   },
-    { FLD_T,   UNIT_C,   CH0, CMD84, 11, 2, 10   }
+    { FLD_T,   UNIT_C,   CH0, CMD84, 11, 2, 10   },
+    { FLD_YT,  UNIT_KWH, CH0, CMDFF, CALC_YT_CH0,   0, 1000 },
+    { FLD_YD,  UNIT_KWH, CH0, CMDFF, CALC_YD_CH0,   0, 1    },
+    { FLD_UDC, UNIT_KWH, CH2, CMDFF, CALC_UDC_CH, CH1, 1000 },
+    { FLD_UDC, UNIT_KWH, CH4, CMDFF, CALC_UDC_CH, CH3, 1000 }
 };
 #define HM1200_LIST_LEN     (sizeof(hm1200assignment) / sizeof(byteAssign_t))
 
 
 
+
 #endif /*__HM_DEFINES_H__*/
diff --git a/tools/esp8266/hmInverter.h b/tools/esp8266/hmInverter.h
index 999545bf..06a307e6 100644
--- a/tools/esp8266/hmInverter.h
+++ b/tools/esp8266/hmInverter.h
@@ -3,7 +3,45 @@
 
 #include "hmDefines.h"
 
+/**
+ * For values which are of interest and not transmitted by the inverter can be
+ * calculated automatically.
+ * A list of functions can be linked to the assignment and will be executed
+ * automatically. Their result does not differ from original read values.
+ * The special command 0xff (CMDFF) must be used.
+ */
+
+// forward declaration of class
 template 
+class Inverter;
+
+
+// prototypes
+template
+static T calcYieldTotalCh0(Inverter<> *iv, uint8_t arg0);
+
+template
+static T calcYieldDayCh0(Inverter<> *iv, uint8_t arg0);
+
+template
+using func_t = T (Inverter<> *, uint8_t);
+
+template
+struct calcFunc_t {
+    uint8_t funcId; // unique id
+    func_t*  func;   // function pointer
+} ;
+
+
+// list of all available functions, mapped in hmDefines.h
+template
+const calcFunc_t calcFunctions[] = {
+    { CALC_YT_CH0, &calcYieldTotalCh0 },
+    { CALC_YD_CH0, &calcYieldDayCh0   }
+};
+
+
+template 
 class Inverter {
     public:
         uint8_t       id;       // unique id
@@ -91,7 +129,7 @@ class Inverter {
                 assign   = (byteAssign_t*)hm600assignment;
                 channels = 2;
             }
-            else if(INV_TYPE_HM800 == p->type) {
+            else if(INV_TYPE_HM800 == type) {
                 listLen  = (uint8_t)(HM800_LIST_LEN);
                 assign   = (byteAssign_t*)hm800assignment;
                 channels = 2;
@@ -107,6 +145,14 @@ class Inverter {
                 assign   = NULL;
             }
         }
+
+        void doCalculations(void) {
+            for(uint8_t i = 0; i < listLen; i++) {
+                if(CMDFF == assign[i].cmdId) {
+                    calcFunctions[assign[i].start].func(this, assign[i].num);
+                }
+            }
+        }
 };
 
 
@@ -116,33 +162,43 @@ class Inverter {
  * The special command 0xff (CMDFF) must be used.
  */
 
-typedef float (*func_t)(Inverter<> *);
-typedef struct {
-    uint8_t funcId; // unique id
-    func_t  func;   // function pointer
-} calcFunc_t;
-
-static float calcYieldTotalCh0(Inverter<> *iv) {
+template
+static T calcYieldTotalCh0(Inverter<> *iv, uint8_t arg0) {
     if(NULL != iv) {
-        float yield[iv->channels];
+        T yield = 0;
         for(uint8_t i = 1; i <= iv->channels; i++) {
             uint8_t pos = iv->getPosByChFld(i, FLD_YT);
-            //yield[i-1] = iv->getValue(iv)
+            yield += iv->getValue(pos);
         }
+        return yield;
     }
-    return 1.0;
+    return 0.0;
 }
 
-static float calcYieldDayCh0(Inverter<> *iv) {
-    return 1.0;
+template
+static T calcYieldDayCh0(Inverter<> *iv, uint8_t arg0) {
+    if(NULL != iv) {
+        T yield = 0;
+        for(uint8_t i = 1; i <= iv->channels; i++) {
+            uint8_t pos = iv->getPosByChFld(i, FLD_YD);
+            yield += iv->getValue(pos);
+        }
+        return yield;
+    }
+    return 0.0;
 }
 
-enum {CALC_YT_CH0 = 0, CALC_YD_CH0};
+template
+static T calcUdcCh(Inverter<> *iv, uint8_t arg0) {
+    // arg0 = channel of source
+    for(uint8_t i = 0; i < iv->listLen; i++) {
+        if((FLD_UDC == iv->assign[i].fieldId) && (arg0 == iv->assign[i].ch)) {
+            return iv->getValue(i);
+        }
+    }
 
-const calcFunc_t calcFunctions[] = {
-    { CALC_YT_CH0, &calcYieldTotalCh0 },
-    { CALC_YD_CH0, &calcYieldDayCh0   }
-};
+    return 0.0;
+}
 
 
 #endif /*__HM_INVERTER_H__*/

From af4960f1c4816b74ec301a61c0076f4649dae680 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sat, 30 Apr 2022 02:02:41 +0200
Subject: [PATCH 45/58] * fixed issues (found during unit test)

---
 tools/esp8266/debug.h      |  2 --
 tools/esp8266/hmDefines.h  |  8 ++++----
 tools/esp8266/hmInverter.h | 35 ++++++++++++++++++++++-------------
 tools/esp8266/hmSystem.h   |  5 ++++-
 4 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/tools/esp8266/debug.h b/tools/esp8266/debug.h
index 26bf1d89..2699b943 100644
--- a/tools/esp8266/debug.h
+++ b/tools/esp8266/debug.h
@@ -1,8 +1,6 @@
 #ifndef __DEBUG_H__
 #define __DEBUG_H__
 
-#include "Arduino.h"
-
 #ifdef NDEBUG
   #define DPRINT(str)
   #define DPRINTLN(str)
diff --git a/tools/esp8266/hmDefines.h b/tools/esp8266/hmDefines.h
index 169a8d09..e66d6fce 100644
--- a/tools/esp8266/hmDefines.h
+++ b/tools/esp8266/hmDefines.h
@@ -145,10 +145,10 @@ const byteAssign_t hm1200assignment[] = {
     { FLD_F,   UNIT_HZ,  CH0, CMD84,  1, 2, 100  },
     { FLD_PCT, UNIT_PCT, CH0, CMD84,  9, 2, 10   },
     { FLD_T,   UNIT_C,   CH0, CMD84, 11, 2, 10   },
-    { FLD_YT,  UNIT_KWH, CH0, CMDFF, CALC_YT_CH0,   0, 1000 },
-    { FLD_YD,  UNIT_KWH, CH0, CMDFF, CALC_YD_CH0,   0, 1    },
-    { FLD_UDC, UNIT_KWH, CH2, CMDFF, CALC_UDC_CH, CH1, 1000 },
-    { FLD_UDC, UNIT_KWH, CH4, CMDFF, CALC_UDC_CH, CH3, 1000 }
+    { FLD_YT,  UNIT_KWH, CH0, CMDFF, CALC_YT_CH0,   0, 0 },
+    { FLD_YD,  UNIT_KWH, CH0, CMDFF, CALC_YD_CH0,   0, 0 },
+    { FLD_UDC, UNIT_V,   CH2, CMDFF, CALC_UDC_CH, CH1, 0 },
+    { FLD_UDC, UNIT_V,   CH4, CMDFF, CALC_UDC_CH, CH3, 0 }
 };
 #define HM1200_LIST_LEN     (sizeof(hm1200assignment) / sizeof(byteAssign_t))
 
diff --git a/tools/esp8266/hmInverter.h b/tools/esp8266/hmInverter.h
index 06a307e6..f5e823e8 100644
--- a/tools/esp8266/hmInverter.h
+++ b/tools/esp8266/hmInverter.h
@@ -23,6 +23,9 @@ static T calcYieldTotalCh0(Inverter<> *iv, uint8_t arg0);
 template
 static T calcYieldDayCh0(Inverter<> *iv, uint8_t arg0);
 
+template
+static T calcUdcCh(Inverter<> *iv, uint8_t arg0);
+
 template
 using func_t = T (Inverter<> *, uint8_t);
 
@@ -37,7 +40,8 @@ struct calcFunc_t {
 template
 const calcFunc_t calcFunctions[] = {
     { CALC_YT_CH0, &calcYieldTotalCh0 },
-    { CALC_YD_CH0, &calcYieldDayCh0   }
+    { CALC_YD_CH0, &calcYieldDayCh0   },
+    { CALC_UDC_CH, &calcUdcCh         }
 };
 
 
@@ -55,16 +59,21 @@ class Inverter {
         RECORDTYPE    *record;  // pointer for values
 
         Inverter() {
-            getAssignment();
-            toRadioId();
-            record = new RECORDTYPE[listLen];
-            memset(record, 0, sizeof(RECORDTYPE) * listLen);
+
         }
 
         ~Inverter() {
             // TODO: cleanup
         }
 
+        void init(void) {
+            getAssignment();
+            toRadioId();
+            record = new RECORDTYPE[listLen];
+            memset(name, 0, MAX_NAME_LENGTH);
+            memset(record, 0, sizeof(RECORDTYPE) * listLen);
+        }
+
         uint8_t getPosByChFld(uint8_t channel, uint8_t fieldId) {
             uint8_t pos = 0;
             for(; pos < listLen; pos++) {
@@ -108,6 +117,14 @@ class Inverter {
             return record[pos];
         }
 
+        void doCalculations(void) {
+            for(uint8_t i = 0; i < listLen; i++) {
+                if(CMDFF == assign[i].cmdId) {
+                    record[i] = calcFunctions[assign[i].start].func(this, assign[i].num);
+                }
+            }
+        }
+
     private:
         void toRadioId(void) {
             radioId.u64  = 0ULL;
@@ -145,14 +162,6 @@ class Inverter {
                 assign   = NULL;
             }
         }
-
-        void doCalculations(void) {
-            for(uint8_t i = 0; i < listLen; i++) {
-                if(CMDFF == assign[i].cmdId) {
-                    calcFunctions[assign[i].start].func(this, assign[i].num);
-                }
-            }
-        }
 };
 
 
diff --git a/tools/esp8266/hmSystem.h b/tools/esp8266/hmSystem.h
index 62a76cc3..c418fb08 100644
--- a/tools/esp8266/hmSystem.h
+++ b/tools/esp8266/hmSystem.h
@@ -2,7 +2,9 @@
 #define __HM_SYSTEM_H__
 
 #include "hmInverter.h"
+#ifndef NO_RADIO
 #include "hmRadio.h"
+#endif
 
 
 
@@ -34,7 +36,8 @@ class HmSystem {
             p->id         = mNumInv;
             p->serial.u64 = serial;
             p->type       = type;
-            uint8_t len   = strlen(name);
+            p->init();
+            uint8_t len   = (uint8_t)strlen(name);
             strncpy(p->name, name, (len > MAX_NAME_LENGTH) ? MAX_NAME_LENGTH : len);
 
             if(NULL == p->assign) {

From 71c83ac1fb78a23787d947fea0e323f2ecc9a254 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sat, 30 Apr 2022 02:13:38 +0200
Subject: [PATCH 46/58] * version 0.3.0 * added unit test

---
 tools/esp8266/defines.h                       |   4 +-
 .../esp8266/test/hmClassTest/hmClassTest.sln  |  31 ++++
 .../hmClassTest/hmClassTest.vcxproj           | 147 ++++++++++++++++++
 .../hmClassTest/hmClassTest.vcxproj.filters   |  22 +++
 .../hmClassTest/hmClassTest.vcxproj.user      |   4 +
 tools/esp8266/test/hmClassTest/src/main.cpp   | 105 +++++++++++++
 6 files changed, 311 insertions(+), 2 deletions(-)
 create mode 100644 tools/esp8266/test/hmClassTest/hmClassTest.sln
 create mode 100644 tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj
 create mode 100644 tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.filters
 create mode 100644 tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.user
 create mode 100644 tools/esp8266/test/hmClassTest/src/main.cpp

diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h
index f5c57530..980447e9 100644
--- a/tools/esp8266/defines.h
+++ b/tools/esp8266/defines.h
@@ -24,8 +24,8 @@
 // VERSION
 //-------------------------------------
 #define VERSION_MAJOR       0
-#define VERSION_MINOR       2
-#define VERSION_PATCH       12
+#define VERSION_MINOR       3
+#define VERSION_PATCH       0
 
 
 //-------------------------------------
diff --git a/tools/esp8266/test/hmClassTest/hmClassTest.sln b/tools/esp8266/test/hmClassTest/hmClassTest.sln
new file mode 100644
index 00000000..a303a142
--- /dev/null
+++ b/tools/esp8266/test/hmClassTest/hmClassTest.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32002.261
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hmClassTest", "hmClassTest\hmClassTest.vcxproj", "{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Debug|x64.ActiveCfg = Debug|x64
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Debug|x64.Build.0 = Debug|x64
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Debug|x86.ActiveCfg = Debug|Win32
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Debug|x86.Build.0 = Debug|Win32
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Release|x64.ActiveCfg = Release|x64
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Release|x64.Build.0 = Release|x64
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Release|x86.ActiveCfg = Release|Win32
+		{4D899C12-DE0E-4CDB-B48C-FDFEC331F219}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {7C291F74-09F6-4C84-99E1-6E7294062385}
+	EndGlobalSection
+EndGlobal
diff --git a/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj
new file mode 100644
index 00000000..bbf9cbd2
--- /dev/null
+++ b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj
@@ -0,0 +1,147 @@
+
+
+  
+    
+      Debug
+      Win32
+    
+    
+      Release
+      Win32
+    
+    
+      Debug
+      x64
+    
+    
+      Release
+      x64
+    
+  
+  
+    
+  
+  
+    16.0
+    Win32Proj
+    {4d899c12-de0e-4cdb-b48c-fdfec331f219}
+    hmClassTest
+    10.0
+  
+  
+  
+    Application
+    true
+    v142
+    Unicode
+  
+  
+    Application
+    false
+    v142
+    true
+    Unicode
+  
+  
+    Application
+    true
+    v142
+    Unicode
+  
+  
+    Application
+    false
+    v142
+    true
+    Unicode
+  
+  
+  
+  
+  
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+    
+  
+  
+  
+    true
+  
+  
+    false
+  
+  
+    true
+  
+  
+    false
+  
+  
+    
+      Level3
+      true
+      WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+    
+      Level3
+      true
+      _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+    
+  
+  
+    
+      Level3
+      true
+      true
+      true
+      NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+      true
+    
+    
+      Console
+      true
+      true
+      true
+    
+  
+  
+  
+  
+
\ No newline at end of file
diff --git a/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.filters b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.filters
new file mode 100644
index 00000000..fee0814f
--- /dev/null
+++ b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.filters
@@ -0,0 +1,22 @@
+
+
+  
+    
+      {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+      cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
+    
+    
+      {93995380-89BD-4b04-88EB-625FBE52EBFB}
+      h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
+    
+    
+      {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+      rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+    
+  
+  
+    
+      Quelldateien
+    
+  
+
\ No newline at end of file
diff --git a/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.user b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.user
new file mode 100644
index 00000000..88a55094
--- /dev/null
+++ b/tools/esp8266/test/hmClassTest/hmClassTest/hmClassTest.vcxproj.user
@@ -0,0 +1,4 @@
+
+
+  
+
\ No newline at end of file
diff --git a/tools/esp8266/test/hmClassTest/src/main.cpp b/tools/esp8266/test/hmClassTest/src/main.cpp
new file mode 100644
index 00000000..3b30364d
--- /dev/null
+++ b/tools/esp8266/test/hmClassTest/src/main.cpp
@@ -0,0 +1,105 @@
+#ifdef _MSC_VER
+#define _CRT_SECURE_NO_WARNINGS
+#endif
+
+#include 
+#include 
+#include 
+#include 
+
+
+//-----------------------------------------------------------------------------
+#define MAX_NUM_INVERTERS       3
+#define MAX_NAME_LENGTH         16
+#define NDEBUG
+#define NO_RADIO
+
+#include "../../../hmDefines.h"
+#include "../../../hmInverter.h"
+#include "../../../hmSystem.h"
+
+
+
+//-----------------------------------------------------------------------------
+typedef int RadioType;
+typedef int BufferType;
+typedef Inverter InverterType;
+typedef HmSystem HmSystemType;
+
+
+//-----------------------------------------------------------------------------
+void valToBuf(InverterType *iv, uint8_t fld, uint8_t ch, float val, uint8_t bufPos);
+
+
+//-----------------------------------------------------------------------------
+int main(int argc, char* argv[]) {
+    HmSystemType sys;
+    InverterType *iv0, *iv1;
+    uint8_t buf[30] = { 0xcc };
+
+    iv0 = sys.addInverter("HM1200", 0x1122334455ULL, INV_TYPE_HM1200);
+    iv1 = sys.addInverter("HM600",  0x1234567891ULL, INV_TYPE_HM600);
+
+    valToBuf(iv0, FLD_UDC, CH1, 29.5,  3);
+    valToBuf(iv0, FLD_UDC, CH3, 30.6,  9);
+    valToBuf(iv0, FLD_YD,  CH1, 1234,  5);
+    valToBuf(iv0, FLD_YD,  CH2, 1199,  7);
+    valToBuf(iv0, FLD_YD,  CH3,  899, 11);
+    valToBuf(iv0, FLD_YD,  CH4,  932, 13);
+    valToBuf(iv0, FLD_YT,  CH1, 40.123, 13);
+    valToBuf(iv0, FLD_YT,  CH2, 57.231,  1);
+    valToBuf(iv0, FLD_YT,  CH3, 59.372,  3);
+    valToBuf(iv0, FLD_YT,  CH4, 43.966,  7);
+
+    iv0->doCalculations();
+    for(uint8_t i = 0; i < iv0->listLen; i ++) {
+        float val = iv0->getValue(i);
+        if(0.0 != val) {
+            printf("%10s [CH%d] = %.3f %s\n", iv0->getFieldName(i), iv0->getChannel(i), val, iv0->getUnit(i));
+        }
+    }
+
+    return 0;
+}
+
+
+//-----------------------------------------------------------------------------
+void valToBuf(InverterType *iv, uint8_t fld, uint8_t ch, float val, uint8_t bufPos) {
+    uint8_t buf[30] = { 0xcc };
+    uint8_t len;
+    uint16_t factor;
+
+    switch(fld) {
+        default:     len = 2; break;
+        case FLD_YT: len = 4; break;
+    }
+
+    switch(fld) {
+        case FLD_YD:  factor = 1;    break;
+        case FLD_UDC:
+        case FLD_PDC:
+        case FLD_UAC:
+        case FLD_PAC:
+        case FLD_PCT:
+        case FLD_T:   factor = 10;   break;
+        case FLD_IDC:
+        case FLD_IAC:
+        case FLD_F:   factor = 100;  break;
+        default:      factor = 1000; break;
+    }
+
+    uint8_t *p = &buf[bufPos];
+
+    uint32_t intval = (uint32_t)(val * factor);
+    if(2 == len) {
+        p[0] = (intval >> 8) & 0xff;
+        p[1] = (intval     ) & 0xff;
+    }
+    else {
+        p[0] = (intval >> 24) & 0xff;
+        p[1] = (intval >> 16) & 0xff;
+        p[2] = (intval >>  8) & 0xff;
+        p[3] = (intval      ) & 0xff;
+    }
+    iv->addValue(iv->getPosByChFld(ch, fld), buf);
+}

From 41b4f72b52021d370ad15ba0602a2929462d1183 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sat, 30 Apr 2022 09:44:20 +0200
Subject: [PATCH 47/58] fix: doCalculations was not called

---
 .gitignore              | 5 +++++
 tools/esp8266/app.cpp   | 1 +
 tools/esp8266/defines.h | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index ce5b7ea6..fab5a578 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,8 @@ compile_commands.json
 CTestTestfile.cmake
 _deps
 build
+/**/Debug
+/**/v16/*
+*.db
+*.suo
+*.ipch
diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp
index f92e5432..866ae25f 100644
--- a/tools/esp8266/app.cpp
+++ b/tools/esp8266/app.cpp
@@ -136,6 +136,7 @@ void app::loop(void) {
                         if(iv->assign[i].cmdId == *cmd)
                             iv->addValue(i, &p->packet[11]);
                     }
+                    iv->doCalculations();
                 }
 
                 if(*cmd == 0x01)      mCmds[0]++;
diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h
index 980447e9..afa11e5e 100644
--- a/tools/esp8266/defines.h
+++ b/tools/esp8266/defines.h
@@ -25,7 +25,7 @@
 //-------------------------------------
 #define VERSION_MAJOR       0
 #define VERSION_MINOR       3
-#define VERSION_PATCH       0
+#define VERSION_PATCH       1
 
 
 //-------------------------------------

From 6f56e740e6a9be6b3f60308439dcfec9c3a7b996 Mon Sep 17 00:00:00 2001
From: Martin Grill 
Date: Sat, 30 Apr 2022 18:28:56 +0200
Subject: [PATCH 48/58] Added list of known serial numbers vs inverter type -
 compiled by isnoAhoy

---
 doc/Hoymiles-SerialNumbers.xlsx | Bin 0 -> 18003 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 doc/Hoymiles-SerialNumbers.xlsx

diff --git a/doc/Hoymiles-SerialNumbers.xlsx b/doc/Hoymiles-SerialNumbers.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..f0c808c864c7c884c1eb18dee7697beddb484341
GIT binary patch
literal 18003
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%0D=#>mwWTQ2
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

literal 0
HcmV?d00001


From 774be8fecf7271b3e2c0f543fa7602e955f753c3 Mon Sep 17 00:00:00 2001
From: Thomas Basler 
Date: Sat, 30 Apr 2022 22:58:33 +0200
Subject: [PATCH 49/58] Fixed assignment for HM-600

Based on several logs and tries we updated the AC
side of the HM-600 inverter.
---
 tools/esp8266/hmDefines.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tools/esp8266/hmDefines.h b/tools/esp8266/hmDefines.h
index e66d6fce..0f2af157 100644
--- a/tools/esp8266/hmDefines.h
+++ b/tools/esp8266/hmDefines.h
@@ -87,7 +87,8 @@ const byteAssign_t hm600assignment[] = {
     { FLD_YD,  UNIT_WH,  CH2, CMD02,  9, 2, 1    },
     { FLD_UAC, UNIT_V,   CH0, CMD02, 11, 2, 10   },
     { FLD_F,   UNIT_HZ,  CH0, CMD02, 13, 2, 100  },
-    { FLD_IAC, UNIT_A,   CH0, CMD02, 15, 2, 10   },
+    { FLD_PAC, UNIT_W,   CH0, CMD02, 15, 2, 10   },
+    { FLD_IAC, UNIT_A,   CH0, CMD83,  3, 2, 100  },
     { FLD_T,   UNIT_C,   CH0, CMD83,  7, 2, 10   }
 };
 #define HM600_LIST_LEN     (sizeof(hm600assignment) / sizeof(byteAssign_t))

From 89624f7f02a5d27c911a71597874b3900f5749a3 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sun, 1 May 2022 13:26:25 +0200
Subject: [PATCH 50/58] compile of merge, binary published on
 https://www.mikrocontroller.net/topic/525778?goto=7051413#7051413

---
 tools/esp8266/defines.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h
index afa11e5e..75313155 100644
--- a/tools/esp8266/defines.h
+++ b/tools/esp8266/defines.h
@@ -25,7 +25,7 @@
 //-------------------------------------
 #define VERSION_MAJOR       0
 #define VERSION_MINOR       3
-#define VERSION_PATCH       1
+#define VERSION_PATCH       2
 
 
 //-------------------------------------

From 2abd3887264218b520175b0a0dbc3d89fd6832a3 Mon Sep 17 00:00:00 2001
From: lumapu 
Date: Sun, 1 May 2022 20:48:10 +0200
Subject: [PATCH 51/58] * converted to "poor-man-ticker" using millis() for
 uptime, send and mqtt * added inverter overview * added send count to
 statistics

---
 tools/esp8266/app.cpp            | 66 +++++++++++++++-----------------
 tools/esp8266/app.h              | 11 ++----
 tools/esp8266/defines.h          |  2 +-
 tools/esp8266/hmRadio.h          |  2 +-
 tools/esp8266/html/h/style_css.h |  2 +-
 tools/esp8266/html/style.css     | 32 +++++++++++++---
 tools/esp8266/main.cpp           | 20 ++++------
 tools/esp8266/main.h             | 20 ++++++++--
 8 files changed, 89 insertions(+), 66 deletions(-)

diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp
index 866ae25f..eaa3678a 100644
--- a/tools/esp8266/app.cpp
+++ b/tools/esp8266/app.cpp
@@ -7,14 +7,13 @@
 
 //-----------------------------------------------------------------------------
 app::app() : Main() {
-    mSendTicker = new Ticker();
-    mFlagSend   = false;
+    mSendTicker   = 0xffffffff;
+    mSendInterval = 0;
+    mMqttTicker   = 0xffffffff;
+    mMqttInterval = 0;
 
     mShowRebootRequest = false;
 
-    mMqttTicker = NULL;
-    mMqttEvt    = false;
-
 
     memset(mCmds, 0, sizeof(uint32_t)*DBG_CMD_LIST_LEN);
     //memset(mChannelStat, 0, sizeof(uint32_t) * 4);
@@ -43,7 +42,6 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) {
     mWeb->on("/mqttstate", std::bind(&app::showMqtt,       this));
 
     if(mSettingsValid) {
-        uint16_t interval;
         uint64_t invSerial;
         char invName[MAX_NAME_LENGTH + 1] = {0};
         uint8_t invType;
@@ -59,10 +57,10 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) {
             }
         }
 
-        mEep->read(ADDR_INV_INTERVAL, &interval);
-        if(interval < 1000)
-            interval = 1000;
-        mSendTicker->attach_ms(interval, std::bind(&app::sendTicker, this));
+        mEep->read(ADDR_INV_INTERVAL, &mSendInterval);
+        if(mSendInterval < 1000)
+            mSendInterval = 1000;
+        mSendTicker = 0;
 
 
         // pinout
@@ -84,17 +82,16 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) {
         mEep->read(ADDR_MQTT_USER,     mqttUser,  MQTT_USER_LEN);
         mEep->read(ADDR_MQTT_PWD,      mqttPwd,   MQTT_PWD_LEN);
         mEep->read(ADDR_MQTT_TOPIC,    mqttTopic, MQTT_TOPIC_LEN);
-        mEep->read(ADDR_MQTT_INTERVAL, &interval);
+        mEep->read(ADDR_MQTT_INTERVAL, &mMqttInterval);
         mEep->read(ADDR_MQTT_PORT,     &mqttPort);
 
         char addr[16] = {0};
         sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]);
 
-        if(interval < 1000)
-            interval = 1000;
+        if(mMqttInterval < 1000)
+            mMqttInterval = 1000;
         mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd, mqttPort);
-        mMqttTicker = new Ticker();
-        mMqttTicker->attach_ms(interval, std::bind(&app::mqttTicker, this));
+        mMqttTicker = 0;
 
         mMqtt.sendMsg("version", mVersion);
     }
@@ -157,15 +154,13 @@ void app::loop(void) {
         mSys->BufCtrl.popBack();
     }
 
-    if(mFlagSend) {
-        mFlagSend = false;
+    if(checkTicker(&mSendTicker, &mSendInterval)) {
         Inverter<> *inv;
         for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) {
             inv = mSys->getInverterByPos(i);
             if(NULL != inv) {
                 mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp);
                 yield();
-                //delay(100);
             }
         }
     }
@@ -173,8 +168,7 @@ void app::loop(void) {
 
     // mqtt
     mMqtt.loop();
-    if(mMqttEvt) {
-        mMqttEvt = false;
+    if(checkTicker(&mMqttTicker, &mMqttInterval)) {
         mMqtt.isConnected(true);
         char topic[30], val[10];
         for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
@@ -185,7 +179,6 @@ void app::loop(void) {
                         snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, fields[iv->assign[i].fieldId]);
                         snprintf(val, 10, "%.3f", iv->getValue(i));
                         mMqtt.sendMsg(topic, val);
-                        //delay(20);
                         yield();
                     }
                 }
@@ -193,7 +186,6 @@ void app::loop(void) {
         }
 
         // Serial debug
-        //char topic[30], val[10];
         for(uint8_t id = 0; id < mSys->getNumInverters(); id++) {
             Inverter<> *iv = mSys->getInverterByPos(id);
             if(NULL != iv) {
@@ -217,18 +209,6 @@ void app::handleIntr(void) {
 }
 
 
-//-----------------------------------------------------------------------------
-void app::sendTicker(void) {
-    mFlagSend = true;
-}
-
-
-//-----------------------------------------------------------------------------
-void app::mqttTicker(void) {
-    mMqttEvt = true;
-}
-
-
 //-----------------------------------------------------------------------------
 void app::showIndex(void) {
     String html = FPSTR(index_html);
@@ -371,6 +351,8 @@ void app::showStatistics(void) {
     }
     content += String("other: ") + String(mCmds[DBG_CMD_LIST_LEN]) + String("\n\n");
 
+    content += "Send Cnt: " + String(mSys->Radio.mSendCnt) + String("\n\n");
+
     /*content += "\nCHANNELs:\n";
     content += String("23: ") + String(mChannelStat[0]) + String("\n");
     content += String("40: ") + String(mChannelStat[1]) + String("\n");
@@ -410,7 +392,21 @@ void app::showLiveData(void) {
                 case INV_TYPE_HM1200: modNum = 4; break;
             }
 
-            modHtml += "

" + String(iv->name) + "

"; + modHtml += "
"; + modHtml += "
" + String(iv->name) + ""; + uint8_t list[8] = {FLD_UAC, FLD_IAC, FLD_PAC, FLD_F, FLD_PCT, FLD_T, FLD_YT, FLD_YD}; + + for(uint8_t fld = 0; fld < 8; fld++) { + pos = (iv->getPosByChFld(CH0, list[fld])); + if(0xff != pos) { + modHtml += "
"; + modHtml += "" + String(iv->getValue(pos)); + modHtml += "" + String(iv->getUnit(pos)) + ""; + modHtml += "" + String(iv->getFieldName(pos)) + ""; + modHtml += "
"; + } + } + modHtml += "
"; for(uint8_t ch = 1; ch <= modNum; ch ++) { modHtml += "
CHANNEL " + String(ch) + ""; diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index 75ae6cd5..65225306 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -40,9 +40,6 @@ class app : public Main { } private: - void sendTicker(void); - void mqttTicker(void); - void showIndex(void); void showSetup(void); void showSave(void); @@ -74,8 +71,8 @@ class app : public Main { HmSystemType *mSys; - Ticker *mSendTicker; - bool mFlagSend; + uint32_t mSendTicker; + uint16_t mSendInterval; uint32_t mCmds[DBG_CMD_LIST_LEN+1]; //uint32_t mChannelStat[4]; @@ -83,8 +80,8 @@ class app : public Main { // mqtt mqtt mMqtt; - Ticker *mMqttTicker; - bool mMqttEvt; + uint32_t mMqttTicker; + uint16_t mMqttInterval; }; #endif /*__APP_H__*/ diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 75313155..0dc7a83f 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -25,7 +25,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 3 -#define VERSION_PATCH 2 +#define VERSION_PATCH 3 //------------------------------------- diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 65a098a5..10075ada 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -206,6 +206,7 @@ class HmRadio { uint8_t pinIrq; uint8_t AmplifierPower; + uint32_t mSendCnt; private: void sendPacket(uint64_t invId, uint8_t buf[], uint8_t len) { @@ -265,7 +266,6 @@ class HmRadio { RF24 mNrf24; uint8_t mSendChannel; BUFFER *mBufCtrl; - uint32_t mSendCnt; uint8_t mSendBuf[MAX_RF_PAYLOAD_SIZE]; }; diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index 491afc1e..128b9ca5 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-group {display:inline-block;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head {color:#fff;display:block;width:100%;text-align:center;}div.ch .unit {font-size:19px;margin-left:10px;}div.ch .value {margin-top:20px;font-size:30px;}div.ch .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 88c1b57c..c92fa950 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -136,8 +136,12 @@ label { float: right; } -div.ch-group { +div.ch-iv { + width: 100%; + background-color: #32b004; display: inline-block; + margin-bottom: 20px; + padding-bottom: 20px; } div.ch { @@ -148,24 +152,29 @@ div.ch { margin-right: 20px; margin-bottom: 20px; } -div.ch .value, div.ch .info, div.ch .head { +div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head { color: #fff; display: block; width: 100%; text-align: center; } -div.ch .unit { +.subgrp { + float: left; + width: 250px; +} + +div.ch .unit, div.ch-iv .unit { font-size: 19px; margin-left: 10px; } -div.ch .value { +div.ch .value, div.ch-iv .value { margin-top: 20px; font-size: 30px; } -div.ch .info { +div.ch .info, div.ch-iv .info { margin-top: 3px; font-size: 10px; } @@ -174,3 +183,16 @@ div.ch .head { background-color: #003c80; padding: 10px 0 10px 0; } + +div.ch-iv .head { + background-color: #1c6800; + padding: 10px 0 10px 0; +} + +div.iv { + max-width: 1060px; +} + +div.ch:last-child { + margin-right: 0px !important; +} diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 25b68c71..83fbef80 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -23,10 +23,9 @@ Main::Main(void) { mEep = new eep(); Serial.begin(115200); - mUptimeSecs = 0; - mUptimeTicker = new Ticker(); - mUptimeTicker->attach(1, std::bind(&Main::uptimeTicker, this)); - + mUptimeSecs = 0; + mUptimeTicker = 0xffffffff; + mUptimeInterval = 1000; } @@ -67,6 +66,11 @@ void Main::loop(void) { if(mApActive) mDns->processNextRequest(); mWeb->handleClient(); + + if(checkTicker(&mUptimeTicker, &mUptimeInterval)) { + mUptimeSecs++; + mTimestamp++; + } } @@ -271,14 +275,6 @@ void Main::showReboot(void) { } - -//----------------------------------------------------------------------------- -void Main::uptimeTicker(void) { - mUptimeSecs++; - mTimestamp++; -} - - //----------------------------------------------------------------------------- time_t Main::getNtpTime(void) { time_t date = 0; diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h index 6e096789..fede73a0 100644 --- a/tools/esp8266/main.h +++ b/tools/esp8266/main.h @@ -6,7 +6,6 @@ #include #include #include -#include #include @@ -64,6 +63,20 @@ class Main { } while(addr < ADDR_START_SETTINGS); } + inline bool checkTicker(uint32_t *ticker, uint16_t *interval) { + uint32_t mil = millis(); + if(mil >= *ticker) { + *ticker = mil + *interval; + return true; + } + else if(mil < (*ticker - *interval)) { + *ticker = mil + *interval; + return true; + } + + return false; + } + char mStationSsid[SSID_LEN]; char mStationPwd[PWD_LEN]; bool mWifiSettingsValid; @@ -87,14 +100,13 @@ class Main { void showUptime(void); void showTime(void); void showCss(void); - void uptimeTicker(void); - time_t getNtpTime(void); void sendNTPpacket(IPAddress& address); time_t offsetDayLightSaving (uint32_t local_t); - Ticker *mUptimeTicker; + uint32_t mUptimeTicker; + uint16_t mUptimeInterval; uint32_t mUptimeSecs; DNSServer *mDns; From 59b6addccfaadd35c477ef4ae0c532bf8a1e305a Mon Sep 17 00:00:00 2001 From: docBmuc <104650389+docBmuc@users.noreply.github.com> Date: Mon, 2 May 2022 19:06:10 +0200 Subject: [PATCH 52/58] Fix in live view, larger boxes in CSS, SPI-Speed define Fixed missing HM800 in liveView Larger boxes in CSS Introduced SPI speed define for reduced speed (1MHz) for increased stability --- tools/esp8266/app.cpp | 3 ++- tools/esp8266/hmRadio.h | 3 ++- tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/style.css | 6 ++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index eaa3678a..4621abcd 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -388,7 +388,8 @@ void app::showLiveData(void) { uint8_t modNum, pos; switch(iv->type) { default: modNum = 1; break; - case INV_TYPE_HM600: modNum = 2; break; + case INV_TYPE_HM600: + case INV_TYPE_HM800: modNum = 2; break; case INV_TYPE_HM1200: modNum = 4; break; } diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index 10075ada..ff2e11b6 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -8,6 +8,7 @@ //#define CHANNEL_HOP // switch between channels or use static channel to send #define DEFAULT_RECV_CHANNEL 3 +#define SPI_SPEED 1000000 #define DTU_RADIO_ID ((uint64_t)0x1234567801ULL) #define DUMMY_RADIO_ID ((uint64_t)0xDEADBEEF01ULL) @@ -45,7 +46,7 @@ const char* const rf24AmpPower[] = {"MIN", "LOW", "HIGH", "MAX"}; template class HmRadio { public: - HmRadio() : mNrf24(CE_PIN, CS_PIN) { + HmRadio() : mNrf24(CE_PIN, CS_PIN, SPI_SPEED) { mChanOut[0] = 23; mChanOut[1] = 40; mChanOut[2] = 61; diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index 128b9ca5..cf0488e4 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:hidden;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;}div.ch {width:250px;height:410px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:auto;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;overflow:auto;}div.ch {width:250px;height:550px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;overflow:auto;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index c92fa950..c5e36c7a 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -92,7 +92,7 @@ a.erase { div.content { background-color: #fff; padding-bottom: 65px; - overflow: hidden; + overflow: auto; } input, select { @@ -142,15 +142,17 @@ div.ch-iv { display: inline-block; margin-bottom: 20px; padding-bottom: 20px; + overflow: auto; } div.ch { width: 250px; - height: 410px; + height: 550px; background-color: #006ec0; display: inline-block; margin-right: 20px; margin-bottom: 20px; + overflow: auto; } div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head { color: #fff; From 539d4f73c1c7a7f49b2f45270315cc90a52c7503 Mon Sep 17 00:00:00 2001 From: lumapu Date: Tue, 3 May 2022 21:03:03 +0200 Subject: [PATCH 53/58] * added config.h for general configuration * added option to compile WiFi SSID + PWD to firmware * added option to configure WiFi access point name and password * added feature to retry connect to station WiFi (configurable timeouts) * updated index.html * added option for factory reset * added info about project on index.html * moved "update" and "home" to footer * fixed #23 HM1200 yield day unit * fixed DNS name of ESP after setup (some commits before) --- tools/esp8266/app.cpp | 24 ++++---- tools/esp8266/app.h | 1 - tools/esp8266/config.h | 42 ++++++++++++++ tools/esp8266/defines.h | 15 +---- tools/esp8266/esp8266.ino | 4 +- tools/esp8266/hmDefines.h | 2 +- tools/esp8266/html/h/hoymiles_html.h | 2 +- tools/esp8266/html/h/index_html.h | 2 +- tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/hoymiles.html | 2 +- tools/esp8266/html/index.html | 15 +++-- tools/esp8266/html/setup.html | 2 + tools/esp8266/html/style.css | 36 +++++------- tools/esp8266/main.cpp | 82 +++++++++++++++++++++++----- tools/esp8266/main.h | 17 +++--- 16 files changed, 166 insertions(+), 84 deletions(-) create mode 100644 tools/esp8266/config.h diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 4621abcd..53b7a93f 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -39,7 +39,6 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mWeb->on("/cmdstat", std::bind(&app::showStatistics, this)); mWeb->on("/hoymiles", std::bind(&app::showHoymiles, this)); mWeb->on("/livedata", std::bind(&app::showLiveData, this)); - mWeb->on("/mqttstate", std::bind(&app::showMqtt, this)); if(mSettingsValid) { uint64_t invSerial; @@ -154,7 +153,7 @@ void app::loop(void) { mSys->BufCtrl.popBack(); } - if(checkTicker(&mSendTicker, &mSendInterval)) { + if(checkTicker(&mSendTicker, mSendInterval)) { Inverter<> *inv; for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) { inv = mSys->getInverterByPos(i); @@ -168,7 +167,7 @@ void app::loop(void) { // mqtt mMqtt.loop(); - if(checkTicker(&mMqttTicker, &mMqttInterval)) { + if(checkTicker(&mMqttTicker, mMqttInterval)) { mMqtt.isConnected(true); char topic[30], val[10]; for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { @@ -360,11 +359,19 @@ void app::showStatistics(void) { content += String("75: ") + String(mChannelStat[3]) + String("\n");*/ if(!mSys->Radio.isChipConnected()) - content += "WARNING! your NRF24 module can't be reached, check the wiring\n"; + content += "WARNING! your NRF24 module can't be reached, check the wiring and pinout (setup)\n"; if(mShowRebootRequest) content += "INFO: reboot your ESP to apply all your configuration changes!\n"; + if(!mSettingsValid) + content += "INFO: your settings are invalid, please switch to setup to correct this.\n"; + + content += "MQTT: "; + if(!mMqtt.isConnected()) + content += "not "; + content += "connected\n"; + mWeb->send(200, "text/plain", content); } @@ -448,15 +455,6 @@ void app::showLiveData(void) { } -//----------------------------------------------------------------------------- -void app::showMqtt(void) { - String txt = "connected"; - if(!mMqtt.isConnected()) - txt = "not " + txt; - mWeb->send(200, "text/plain", txt); -} - - //----------------------------------------------------------------------------- void app::saveValues(bool webSend = true) { Main::saveValues(false); // general configuration diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index 65225306..64207d3d 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -47,7 +47,6 @@ class app : public Main { void showStatistics(void); void showHoymiles(void); void showLiveData(void); - void showMqtt(void); void saveValues(bool webSend); void updateCrc(void); diff --git a/tools/esp8266/config.h b/tools/esp8266/config.h new file mode 100644 index 00000000..0e4cdc43 --- /dev/null +++ b/tools/esp8266/config.h @@ -0,0 +1,42 @@ +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + +// fallback WiFi info +#define FB_WIFI_SSID "YOUR_WIFI_SSID" +#define FB_WIFI_PWD "YOUR_WIFI_PWD" + + +// access point info +#define WIFI_AP_SSID "AHOY DTU" +#define WIFI_AP_PWD "esp_8266" + + +//------------------------------------- +// CONFIGURATION - COMPILE TIME +//------------------------------------- +// time in seconds how long the station info (ssid + pwd) will be tried +#define WIFI_TRY_CONNECT_TIME 15 + +// time during the ESP will act as access point on connection failure (to +// station) in seconds +#define WIFI_AP_ACTIVE_TIME 3*60 + +// default device name +#define DEF_DEVICE_NAME "ESP-DTU" + +// number of packets hold in buffer +#define PACKET_BUFFER_SIZE 30 + +// number of configurable inverters +#define MAX_NUM_INVERTERS 3 + +// maximum human readable inverter name length +#define MAX_NAME_LENGTH 16 + +// maximum buffer length of packet received / sent to RF24 module +#define MAX_RF_PAYLOAD_SIZE 64 + +// changes the style of "/setup" page, visualized = nicer +#define LIVEDATA_VISUALIZED + +#endif /*__CONFIG_H__*/ diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 0dc7a83f..98ba2539 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -1,31 +1,22 @@ #ifndef __DEFINES_H__ #define __DEFINES_H__ +#include "config.h" //------------------------------------- -// PINOUT +// PINOUT (Default, can be changed in setup) //------------------------------------- #define RF24_CS_PIN 15 #define RF24_CE_PIN 2 #define RF24_IRQ_PIN 0 -//------------------------------------- -// CONFIGURATION - COMPILE TIME -//------------------------------------- -#define PACKET_BUFFER_SIZE 30 -#define MAX_NUM_INVERTERS 3 -#define MAX_NAME_LENGTH 16 -#define MAX_RF_PAYLOAD_SIZE 64 -#define LIVEDATA_VISUALIZED // show live data pv-module wise or as dump - - //------------------------------------- // VERSION //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 3 -#define VERSION_PATCH 3 +#define VERSION_PATCH 4 //------------------------------------- diff --git a/tools/esp8266/esp8266.ino b/tools/esp8266/esp8266.ino index 5f22245e..c418d8a1 100644 --- a/tools/esp8266/esp8266.ino +++ b/tools/esp8266/esp8266.ino @@ -8,13 +8,13 @@ #include #include "app.h" +#include "config.h" app myApp; //----------------------------------------------------------------------------- void setup() { - // AP name, password, timeout - myApp.setup("ESP AHOY", "esp_8266", 15); + myApp.setup(WIFI_AP_SSID, WIFI_AP_PWD, WIFI_TRY_CONNECT_TIME); // TODO: move to HmRadio attachInterrupt(digitalPinToInterrupt(myApp.getIrqPin()), handleIntr, FALLING); diff --git a/tools/esp8266/hmDefines.h b/tools/esp8266/hmDefines.h index 0f2af157..1c27ced3 100644 --- a/tools/esp8266/hmDefines.h +++ b/tools/esp8266/hmDefines.h @@ -146,8 +146,8 @@ const byteAssign_t hm1200assignment[] = { { FLD_F, UNIT_HZ, CH0, CMD84, 1, 2, 100 }, { FLD_PCT, UNIT_PCT, CH0, CMD84, 9, 2, 10 }, { FLD_T, UNIT_C, CH0, CMD84, 11, 2, 10 }, + { FLD_YD, UNIT_WH, CH0, CMDFF, CALC_YD_CH0, 0, 0 }, { FLD_YT, UNIT_KWH, CH0, CMDFF, CALC_YT_CH0, 0, 0 }, - { FLD_YD, UNIT_KWH, CH0, CMDFF, CALC_YD_CH0, 0, 0 }, { FLD_UDC, UNIT_V, CH2, CMDFF, CALC_UDC_CH, CH1, 0 }, { FLD_UDC, UNIT_V, CH4, CMDFF, CALC_UDC_CH, CH3, 0 } }; diff --git a/tools/esp8266/html/h/hoymiles_html.h b/tools/esp8266/html/h/hoymiles_html.h index 594e4b25..8401ebac 100644 --- a/tools/esp8266/html/h/hoymiles_html.h +++ b/tools/esp8266/html/h/hoymiles_html.h @@ -1,4 +1,4 @@ #ifndef __HOYMILES_H__ #define __HOYMILES_H__ -const char hoymiles_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Home

Every 10 seconds the values are updated

© 2022

AHOY :: {VERSION}

"; +const char hoymiles_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Every 10 seconds the values are updated

© 2022

Home

AHOY :: {VERSION}

"; #endif /*__HOYMILES_H__*/ diff --git a/tools/esp8266/html/h/index_html.h b/tools/esp8266/html/h/index_html.h index 53eeda89..67dc9144 100644 --- a/tools/esp8266/html/h/index_html.h +++ b/tools/esp8266/html/h/index_html.h @@ -1,4 +1,4 @@ #ifndef __INDEX_H__ #define __INDEX_H__ -const char index_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Hoymiles
Update

Setup
Reboot

Uptime:

Time:

MQTT:

Statistics:

© 2022

AHOY :: {VERSION}

"; +const char index_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Visualization

Setup

Uptime:

Time:

Statistics:

This project was started from this (Mikrocontroller.net)discussion.
New updates can be found on Github: https://github.com/grindylow/ahoy

Please report issues using the feature provided by Github.

© 2022

Update Firmware

AHOY :: {VERSION}

Reboot

"; #endif /*__INDEX_H__*/ diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 95f1236f..1b01ff97 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

Home

Update Firmware

AHOY - {VERSION}

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index cf0488e4..7c4d61d6 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:14pt;color:#006ec0;}.subdes {font-size:13pt;color:#006ec0;margin-left:7px;}.fw {width:60px;display:block;float:left;}.color {width:50px;height:50px;border:1px solid #ccc;}.range {width:300px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;}#footer p {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}#footer a {color:#fff;}div.content {background-color:#fff;padding-bottom:65px;overflow:auto;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;overflow:auto;}div.ch {width:250px;height:550px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;overflow:auto;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:13pt;color:#006ec0;}.subdes {font-size:12pt;color:#006ec0;margin-left:7px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;border-top:5px solid #fff;}#footer p, #footer a {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}div.content {background-color:#fff;padding-bottom:65px;overflow:auto;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;overflow:auto;}div.ch {width:250px;min-height:420px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;overflow:auto;padding-bottom:20px;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}#note {margin:50px 10px 10px 10px;padding-top:10px;width:100%;border-top:1px solid #bbb;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/hoymiles.html b/tools/esp8266/html/hoymiles.html index 4ac61f25..3f4a6256 100644 --- a/tools/esp8266/html/hoymiles.html +++ b/tools/esp8266/html/hoymiles.html @@ -30,12 +30,12 @@

AHOY - {DEVICE}

-

Home

Every 10 seconds the values are updated

diff --git a/tools/esp8266/html/index.html b/tools/esp8266/html/index.html index 3eee3360..ce2f177b 100644 --- a/tools/esp8266/html/index.html +++ b/tools/esp8266/html/index.html @@ -7,7 +7,6 @@

AHOY - {DEVICE}

Visualization

Setup

Uptime:

Time:

Statistics:

This project was started from this (Mikrocontroller.net)discussion.
New updates can be found on Github: https://github.com/grindylow/ahoy

Please report issues using the feature provided by Github.

© 2022

Update Firmware

AHOY :: {VERSION}

Reboot

"; +const char index_html[] PROGMEM = "Index - {DEVICE}

AHOY - {DEVICE}

Visualization

Setup

Uptime:

Time:

Statistics:

This project was started from this discussion. (Mikrocontroller.net)
New updates can be found on Github: https://github.com/grindylow/ahoy

Please report issues using the feature provided by Github.

© 2022

Update Firmware

AHOY :: {VERSION}

Reboot

"; #endif /*__INDEX_H__*/ diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 1b01ff97..49ef4896 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/index.html b/tools/esp8266/html/index.html index ce2f177b..541caeb1 100644 --- a/tools/esp8266/html/index.html +++ b/tools/esp8266/html/index.html @@ -39,7 +39,7 @@

Statistics:

- This project was started from this (Mikrocontroller.net) discussion.
+ This project was started from this discussion. (Mikrocontroller.net)
New updates can be found on Github: https://github.com/grindylow/ahoy

Please report issues using the feature provided by Github. diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index fa0af415..baa84dab 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -12,7 +12,7 @@

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

-
+

WiFi

@@ -61,11 +61,11 @@
diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 24938704..6ef21964 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -18,6 +18,7 @@ Main::Main(void) { mLimit = 10; mNextTryTs = 0; + mApLastTick = 0; snprintf(mVersion, 12, "%d.%d.%d", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH); @@ -53,16 +54,16 @@ void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { if(true == startAp) { if(strlen(pwd) < 8) - Serial.println("password must be at least 8 characters long"); - setupAp(ssid, pwd); + DPRINTLN("ERROR: password must be at least 8 characters long"); + } + else { + mTimestamp = getNtpTime(); + DPRINTLN("[NTP]: " + getDateTimeStr(getNtpTime())); } mUpdater->setup(mWeb); - mApActive = startAp; - mTimestamp = getNtpTime(); - //Serial.println("[NTP]: " + getDateTimeStr(getNtpTime())); } @@ -71,10 +72,17 @@ void Main::loop(void) { if(mApActive) { mDns->processNextRequest(); if(checkTicker(&mNextTryTs, (WIFI_AP_ACTIVE_TIME * 1000))) { + mApLastTick = millis(); mApActive = setupStation(mLimit); if(mApActive) setupAp(WIFI_AP_SSID, WIFI_AP_PWD); } + else { + if(millis() - mApLastTick > 10000) { + mApLastTick = millis(); + DPRINTLN("AP will be closed in " + String((mNextTryTs - mApLastTick) / 1000) + " seconds"); + } + } } mWeb->handleClient(); @@ -118,7 +126,12 @@ bool Main::getConfig(void) { void Main::setupAp(const char *ssid, const char *pwd) { IPAddress apIp(192, 168, 1, 1); - Serial.println("\n---------\nAP MODE\nSSDI: "+ String(ssid) + "\nPWD: " + String(pwd) + "\n---------\n"); + DPRINTLN("\n---------\nAP MODE\nSSDI: " + + String(ssid) + "\nPWD: " + + String(pwd) + "\nActive for: " + + String(WIFI_AP_ACTIVE_TIME) + " seconds" + + "\n---------\n"); + DPRINTLN("DBG: " + String(mNextTryTs)); WiFi.mode(WIFI_AP); WiFi.softAPConfig(apIp, apIp, IPAddress(255, 255, 255, 0)); @@ -153,7 +166,7 @@ bool Main::setupStation(uint32_t timeout) { WiFi.hostname(mDeviceName); delay(2000); - Serial.println("wait for network"); + DPRINTLN("connect to network '" + String(mStationSsid) + "' ..."); while (WiFi.status() != WL_CONNECTED) { delay(100); if(cnt % 100 == 0) @@ -192,6 +205,10 @@ void Main::showSetup(void) { // -> the PWD will only be changed if it does not match the default "{PWD}" html.replace("{DEVICE}", String(mDeviceName)); html.replace("{VERSION}", String(mVersion)); + if(mApActive) + html.replace("{IP}", String("http://192.168.1.1")); + else + html.replace("{IP}", ("http://" + String(WiFi.localIP().toString()))); mWeb->send(200, "text/html", html); } @@ -233,7 +250,7 @@ void Main::saveValues(bool webSend = true) { if(webSend) { if(mWeb->arg("reboot") == "on") showReboot(); - else + else // TODO: add device name as redirect in AP-mode mWeb->send(200, "text/html", "Setup saved" "

saved

"); } diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h index 43962670..be98060a 100644 --- a/tools/esp8266/main.h +++ b/tools/esp8266/main.h @@ -16,6 +16,7 @@ #include "eep.h" #include "defines.h" #include "crc.h" +#include "debug.h" const byte mDnsPort = 53; @@ -57,11 +58,13 @@ class Main { uint16_t addr = (all) ? ADDR_START : ADDR_START_SETTINGS; uint16_t end; do { - end = addr += 64; + end = addr + 64; if(end > (ADDR_SETTINGS_CRC + 2)) - end = (ADDR_SETTINGS_CRC + 2 - addr); - mEep->write(ADDR_START_SETTINGS, buf, (ADDR_NEXT-ADDR_START_SETTINGS)); - } while(addr < ADDR_START_SETTINGS); + end = (ADDR_SETTINGS_CRC + 2); + DPRINTLN("erase: 0x" + String(addr, HEX) + " - 0x" + String(end, HEX)); + mEep->write(addr, buf, (end-addr)); + addr = end; + } while(addr < (ADDR_SETTINGS_CRC + 2)); } inline bool checkTicker(uint32_t *ticker, uint32_t interval) { @@ -90,6 +93,7 @@ class Main { uint32_t mTimestamp; uint32_t mLimit; uint32_t mNextTryTs; + uint32_t mApLastTick; private: bool getConfig(void); From 8f444cee2fa51391f41fa0759999ae1b9abd28e1 Mon Sep 17 00:00:00 2001 From: lumapu Date: Wed, 4 May 2022 19:28:54 +0200 Subject: [PATCH 55/58] * improved tickers, only one ticker is active * added feature to use the ESP as access point for all the time * added serial features to setup --- tools/esp8266/app.cpp | 165 +++++++++++++++++++----------- tools/esp8266/app.h | 13 ++- tools/esp8266/config.h | 2 + tools/esp8266/defines.h | 13 ++- tools/esp8266/esp8266.ino | 2 +- tools/esp8266/hmRadio.h | 1 - tools/esp8266/html/h/setup_html.h | 2 +- tools/esp8266/html/h/style_css.h | 2 +- tools/esp8266/html/setup.html | 18 +++- tools/esp8266/html/style.css | 4 +- tools/esp8266/main.cpp | 19 ++-- tools/esp8266/main.h | 2 +- 12 files changed, 155 insertions(+), 88 deletions(-) diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index b3fb0e2e..f541fe23 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -7,16 +7,20 @@ //----------------------------------------------------------------------------- app::app() : Main() { - mSendTicker = 0xffffffff; + mSendTicker = 0xffff; mSendInterval = 0; - mMqttTicker = 0xffffffff; + mMqttTicker = 0xffff; mMqttInterval = 0; - mSerialTicker = 0xffffffff; + mSerialTicker = 0xffff; mSerialInterval = 0; mMqttActive = false; + mTicker = 0; + mShowRebootRequest = false; + mSerialValues = true; + mSerialDebug = false; memset(mCmds, 0, sizeof(uint32_t)*DBG_CMD_LIST_LEN); //memset(mChannelStat, 0, sizeof(uint32_t) * 4); @@ -32,8 +36,8 @@ app::~app(void) { //----------------------------------------------------------------------------- -void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { - Main::setup(ssid, pwd, timeout); +void app::setup(uint32_t timeout) { + Main::setup(timeout); mWeb->on("/", std::bind(&app::showIndex, this)); mWeb->on("/setup", std::bind(&app::showSetup, this)); @@ -58,11 +62,9 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { DPRINTLN("add inverter: " + String(invName) + ", SN: " + String(invSerial, HEX) + ", type: " + String(invType)); } } - mEep->read(ADDR_INV_INTERVAL, &mSendInterval); - if(mSendInterval < 1000) - mSendInterval = 1000; - mSendTicker = 0; + if(mSendInterval < 1) + mSendInterval = 1; // pinout @@ -74,6 +76,17 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { // nrf24 amplifier power mEep->read(ADDR_RF24_AMP_PWR, &mSys->Radio.AmplifierPower); + // serial console + uint8_t tmp; + mEep->read(ADDR_SER_INTERVAL, &mSerialInterval); + mEep->read(ADDR_SER_ENABLE, &tmp); + mSerialValues = (tmp == 0x01); + mEep->read(ADDR_SER_DEBUG, &tmp); + mSerialDebug = (tmp == 0x01); + if(mSerialInterval < 1) + mSerialInterval = 1; + + // mqtt uint8_t mqttAddr[MQTT_ADDR_LEN]; uint16_t mqttPort; @@ -92,13 +105,12 @@ void app::setup(const char *ssid, const char *pwd, uint32_t timeout) { mMqttActive = (mqttAddr[0] > 0); - if(mMqttInterval < 1000) - mMqttInterval = 1000; + if(mMqttInterval < 1) + mMqttInterval = 1; mMqtt.setup(addr, mqttTopic, mqttUser, mqttPwd, mqttPort); mMqttTicker = 0; mSerialTicker = 0; - mSerialInterval = mMqttInterval; // TODO: add extra setting for this! mMqtt.sendMsg("version", mVersion); } @@ -125,7 +137,8 @@ void app::loop(void) { if(!mSys->BufCtrl.empty()) { uint8_t len, rptCnt; packet_t *p = mSys->BufCtrl.getBack(); - //mSys->Radio.dumpBuf("RAW ", p->packet, MAX_RF_PAYLOAD_SIZE); + if(mSerialDebug) + mSys->Radio.dumpBuf("RAW ", p->packet, MAX_RF_PAYLOAD_SIZE); if(mSys->Radio.checkCrc(p->packet, &len, &rptCnt)) { // process buffer only on first occurrence @@ -161,54 +174,58 @@ void app::loop(void) { mSys->BufCtrl.popBack(); } - if(checkTicker(&mSendTicker, mSendInterval)) { - Inverter<> *inv; - for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) { - inv = mSys->getInverterByPos(i); - if(NULL != inv) { - mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp); - yield(); + if(checkTicker(&mTicker, 1000)) { + if(++mSendTicker >= mSendInterval) { + mSendTicker = 0; + + Inverter<> *inv; + for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) { + inv = mSys->getInverterByPos(i); + if(NULL != inv) { + mSys->Radio.sendTimePacket(inv->radioId.u64, mTimestamp); + yield(); + } } } - } - - // mqtt - if(mMqttActive) { - mMqtt.loop(); - if(checkTicker(&mMqttTicker, mMqttInterval)) { - mMqtt.isConnected(true); - char topic[30], val[10]; - for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { - Inverter<> *iv = mSys->getInverterByPos(id); - if(NULL != iv) { - for(uint8_t i = 0; i < iv->listLen; i++) { - if(0.0f != iv->getValue(i)) { - snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, fields[iv->assign[i].fieldId]); - snprintf(val, 10, "%.3f", iv->getValue(i)); - mMqtt.sendMsg(topic, val); - yield(); + if(mMqttActive) { + mMqtt.loop(); + if(++mMqttTicker > mMqttInterval) { + mMqttInterval = 0; + mMqtt.isConnected(true); + char topic[30], val[10]; + for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { + Inverter<> *iv = mSys->getInverterByPos(id); + if(NULL != iv) { + for(uint8_t i = 0; i < iv->listLen; i++) { + if(0.0f != iv->getValue(i)) { + snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, fields[iv->assign[i].fieldId]); + snprintf(val, 10, "%.3f", iv->getValue(i)); + mMqtt.sendMsg(topic, val); + yield(); + } } } } } } - } - - // Serial debug - if(checkTicker(&mSerialTicker, mSerialInterval)) { - char topic[30], val[10]; - for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { - Inverter<> *iv = mSys->getInverterByPos(id); - if(NULL != iv) { - for(uint8_t i = 0; i < iv->listLen; i++) { - if(0.0f != iv->getValue(i)) { - snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, iv->getFieldName(i)); - snprintf(val, 10, "%.3f %s", iv->getValue(i), iv->getUnit(i)); - DPRINTLN(String(topic) + ": " + String(val)); + if(mSerialValues) { + if(++mSerialTicker > mSerialInterval) { + mSerialInterval = 0; + char topic[30], val[10]; + for(uint8_t id = 0; id < mSys->getNumInverters(); id++) { + Inverter<> *iv = mSys->getInverterByPos(id); + if(NULL != iv) { + for(uint8_t i = 0; i < iv->listLen; i++) { + if(0.0f != iv->getValue(i)) { + snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, iv->getFieldName(i)); + snprintf(val, 10, "%.3f %s", iv->getValue(i), iv->getUnit(i)); + DPRINTLN(String(topic) + ": " + String(val)); + } + yield(); + } } - yield(); } } } @@ -315,7 +332,15 @@ void app::showSetup(void) { if(mSettingsValid) { mEep->read(ADDR_INV_INTERVAL, &interval); - html.replace("{INV_INTERVAL}", String(interval)); + html.replace("{INV_INTVL}", String(interval)); + + uint8_t tmp; + mEep->read(ADDR_SER_INTERVAL, &interval); + mEep->read(ADDR_SER_ENABLE, &tmp); + html.replace("{SER_INTVL}", String(interval)); + html.replace("{SER_VAL_CB}", (tmp == 0x01) ? "checked" : ""); + mEep->read(ADDR_SER_DEBUG, &tmp); + html.replace("{SER_DBG_CB}", (tmp == 0x01) ? "checked" : ""); uint8_t mqttAddr[MQTT_ADDR_LEN] = {0}; uint16_t mqttPort; @@ -325,22 +350,28 @@ void app::showSetup(void) { char addr[16] = {0}; sprintf(addr, "%d.%d.%d.%d", mqttAddr[0], mqttAddr[1], mqttAddr[2], mqttAddr[3]); - html.replace("{MQTT_ADDR}", String(addr)); - html.replace("{MQTT_PORT}", String(mqttPort)); - html.replace("{MQTT_USER}", String(mMqtt.getUser())); - html.replace("{MQTT_PWD}", String(mMqtt.getPwd())); - html.replace("{MQTT_TOPIC}", String(mMqtt.getTopic())); - html.replace("{MQTT_INTERVAL}", String(interval)); + html.replace("{MQTT_ADDR}", String(addr)); + html.replace("{MQTT_PORT}", String(mqttPort)); + html.replace("{MQTT_USER}", String(mMqtt.getUser())); + html.replace("{MQTT_PWD}", String(mMqtt.getPwd())); + html.replace("{MQTT_TOPIC}", String(mMqtt.getTopic())); + html.replace("{MQTT_INTVL}", String(interval)); } else { - html.replace("{INV_INTERVAL}", "1000"); + html.replace("{INV_INTVL}", "5"); + + html.replace("{SER_VAL_CB}", "checked"); + html.replace("{SER_DBG_CB}", ""); + html.replace("{SER_INTVL}", "10"); html.replace("{MQTT_ADDR}", ""); html.replace("{MQTT_PORT}", "1883"); html.replace("{MQTT_USER}", ""); html.replace("{MQTT_PWD}", ""); html.replace("{MQTT_TOPIC}", "/inverter"); - html.replace("{MQTT_INTERVAL}", "10000"); + html.replace("{MQTT_INTVL}", "10"); + + html.replace("{SER_INTVL}", "10"); } mWeb->send(200, "text/html", html); @@ -534,7 +565,7 @@ void app::saveValues(bool webSend = true) { mWeb->arg("mqttUser").toCharArray(mqttUser, MQTT_USER_LEN); mWeb->arg("mqttPwd").toCharArray(mqttPwd, MQTT_PWD_LEN); mWeb->arg("mqttTopic").toCharArray(mqttTopic, MQTT_TOPIC_LEN); - interval = mWeb->arg("mqttInterval").toInt(); + interval = mWeb->arg("mqttIntvl").toInt(); mqttPort = mWeb->arg("mqttPort").toInt(); mEep->write(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN); mEep->write(ADDR_MQTT_PORT, mqttPort); @@ -543,12 +574,22 @@ void app::saveValues(bool webSend = true) { mEep->write(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN); mEep->write(ADDR_MQTT_INTERVAL, interval); + + // serial console + bool tmp; + interval = mWeb->arg("serIntvl").toInt(); + mEep->write(ADDR_SER_INTERVAL, interval); + tmp = (mWeb->arg("serEn") == "on"); + mEep->write(ADDR_SER_ENABLE, (uint8_t)((tmp) ? 0x01 : 0x00)); + tmp = (mWeb->arg("serDbg") == "on"); + mEep->write(ADDR_SER_DEBUG, (uint8_t)((tmp) ? 0x01 : 0x00)); + updateCrc(); if((mWeb->arg("reboot") == "on")) showReboot(); else { mShowRebootRequest = true; - mWeb->send(200, "text/html", "Setup saved" + mWeb->send(200, "text/html", "Setup saved" "

saved

"); } } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index df5074ab..f60405a1 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -31,7 +31,7 @@ class app : public Main { app(); ~app(); - void setup(const char *ssid, const char *pwd, uint32_t timeout); + void setup(uint32_t timeout); void loop(void); void handleIntr(void); @@ -70,19 +70,24 @@ class app : public Main { HmSystemType *mSys; - uint32_t mSendTicker; + uint16_t mSendTicker; uint16_t mSendInterval; uint32_t mCmds[DBG_CMD_LIST_LEN+1]; //uint32_t mChannelStat[4]; uint32_t mRecCnt; + // timer + uint32_t mTicker; + bool mSerialValues; + bool mSerialDebug; + // mqtt mqtt mMqtt; - uint32_t mMqttTicker; + uint16_t mMqttTicker; uint16_t mMqttInterval; bool mMqttActive; - uint32_t mSerialTicker; + uint16_t mSerialTicker; uint16_t mSerialInterval; }; diff --git a/tools/esp8266/config.h b/tools/esp8266/config.h index 0e4cdc43..009d475d 100644 --- a/tools/esp8266/config.h +++ b/tools/esp8266/config.h @@ -9,6 +9,8 @@ // access point info #define WIFI_AP_SSID "AHOY DTU" #define WIFI_AP_PWD "esp_8266" +// stay in access point mode all the time +//#define AP_ONLY //------------------------------------- diff --git a/tools/esp8266/defines.h b/tools/esp8266/defines.h index 131e7742..192a1a9b 100644 --- a/tools/esp8266/defines.h +++ b/tools/esp8266/defines.h @@ -16,7 +16,7 @@ //------------------------------------- #define VERSION_MAJOR 0 #define VERSION_MINOR 3 -#define VERSION_PATCH 5 +#define VERSION_PATCH 6 //------------------------------------- @@ -50,6 +50,10 @@ typedef struct { #define MQTT_INTERVAL_LEN 2 // uint16_t #define MQTT_PORT_LEN 2 // uint16_t +#define SER_ENABLE_LEN 1 // uint8_t +#define SER_DEBUG_LEN 1 // uint8_t +#define SER_INTERVAL_LEN 2 // uint16_t + #define ADDR_START 0 #define ADDR_SSID ADDR_START @@ -72,9 +76,12 @@ typedef struct { #define ADDR_MQTT_PWD ADDR_MQTT_USER + MQTT_USER_LEN #define ADDR_MQTT_TOPIC ADDR_MQTT_PWD + MQTT_PWD_LEN #define ADDR_MQTT_INTERVAL ADDR_MQTT_TOPIC + MQTT_TOPIC_LEN - #define ADDR_MQTT_PORT ADDR_MQTT_INTERVAL + MQTT_INTERVAL_LEN -#define ADDR_NEXT ADDR_MQTT_PORT + MQTT_PORT_LEN + +#define ADDR_SER_ENABLE ADDR_MQTT_PORT + MQTT_PORT_LEN +#define ADDR_SER_DEBUG ADDR_SER_ENABLE + SER_ENABLE_LEN +#define ADDR_SER_INTERVAL ADDR_SER_DEBUG + SER_DEBUG_LEN +#define ADDR_NEXT ADDR_SER_INTERVAL + SER_INTERVAL_LEN #define ADDR_SETTINGS_CRC 400 diff --git a/tools/esp8266/esp8266.ino b/tools/esp8266/esp8266.ino index c418d8a1..4d5ca3b0 100644 --- a/tools/esp8266/esp8266.ino +++ b/tools/esp8266/esp8266.ino @@ -14,7 +14,7 @@ app myApp; //----------------------------------------------------------------------------- void setup() { - myApp.setup(WIFI_AP_SSID, WIFI_AP_PWD, WIFI_TRY_CONNECT_TIME); + myApp.setup(WIFI_TRY_CONNECT_TIME); // TODO: move to HmRadio attachInterrupt(digitalPinToInterrupt(myApp.getIrqPin()), handleIntr, FALLING); diff --git a/tools/esp8266/hmRadio.h b/tools/esp8266/hmRadio.h index ff2e11b6..6e84dfb7 100644 --- a/tools/esp8266/hmRadio.h +++ b/tools/esp8266/hmRadio.h @@ -71,7 +71,6 @@ class HmRadio { mBufCtrl = ctrl; mNrf24.begin(pinCe, pinCs); - mNrf24.setAutoAck(false); mNrf24.setRetries(0, 0); mNrf24.setChannel(DEFAULT_RECV_CHANNEL); diff --git a/tools/esp8266/html/h/setup_html.h b/tools/esp8266/html/h/setup_html.h index 49ef4896..07bac0d4 100644 --- a/tools/esp8266/html/h/setup_html.h +++ b/tools/esp8266/html/h/setup_html.h @@ -1,4 +1,4 @@ #ifndef __SETUP_H__ #define __SETUP_H__ -const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

 

"; +const char setup_html[] PROGMEM = "Setup - {DEVICE}

Setup

Enter the credentials to your prefered WiFi station. After rebooting the device tries to connect with this information.

WiFi

Device Host Name

ERASE SETTINGS (not WiFi)

Inverter

{INVERTERS}

General

Pinout (Wemos)

{PINOUT}

Radio (NRF24L01+)

MQTT

Serial Console



 

"; #endif /*__SETUP_H__*/ diff --git a/tools/esp8266/html/h/style_css.h b/tools/esp8266/html/h/style_css.h index 7c4d61d6..1c79cef5 100644 --- a/tools/esp8266/html/h/style_css.h +++ b/tools/esp8266/html/h/style_css.h @@ -1,4 +1,4 @@ #ifndef __STYLE_H__ #define __STYLE_H__ -const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:13pt;color:#006ec0;}.subdes {font-size:12pt;color:#006ec0;margin-left:7px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;border-top:5px solid #fff;}#footer p, #footer a {color:#fff;padding-left:20px;padding-right:20px;font-size:10pt !important;}div.content {background-color:#fff;padding-bottom:65px;overflow:auto;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;overflow:auto;}div.ch {width:250px;min-height:420px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;overflow:auto;padding-bottom:20px;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}#note {margin:50px 10px 10px 10px;padding-top:10px;width:100%;border-top:1px solid #bbb;}"; +const char style_css[] PROGMEM = "h1 {margin:0;padding:20pt;font-size:22pt;color:#fff;background-color:#006ec0;display:block;text-transform:uppercase;}html, body {font-family:Arial;margin:0;padding:0;}p {text-align:justify;font-size:13pt;}.des {margin-top:35px;font-size:13pt;color:#006ec0;}.subdes {font-size:12pt;color:#006ec0;margin-left:7px;}a:link, a:visited {text-decoration:none;font-size:13pt;color:#006ec0;}a:hover, a:focus {color:#f00;}a.erase {background-color:#006ec0;color:#fff;padding:7px;display:inline-block;margin-top:30px;float:right;}#content {padding:15px 15px 60px 15px;}#footer {position:fixed;bottom:0px;height:45px;background-color:#006ec0;width:100%;border-top:5px solid #fff;}#footer p, #footer a {color:#fff;padding:0 7px 0 7px;font-size:10pt !important;}div.content {background-color:#fff;padding-bottom:65px;overflow:auto;}input, select {padding:7px;font-size:13pt;}input.text, select {width:70%;box-sizing:border-box;margin-bottom:10px;border:1px solid #ccc;}input.btn {background-color:#006ec0;color:#fff;border:0px;float:right;margin:10px 0 30px;text-transform:uppercase;}input.cb {margin-bottom:20px;}label {width:20%;display:inline-block;font-size:12pt;padding-right:10px;margin-left:10px;}.left {float:left;}.right {float:right;}div.ch-iv {width:100%;background-color:#32b004;display:inline-block;margin-bottom:20px;padding-bottom:20px;overflow:auto;}div.ch {width:250px;min-height:420px;background-color:#006ec0;display:inline-block;margin-right:20px;margin-bottom:20px;overflow:auto;padding-bottom:20px;}div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head {color:#fff;display:block;width:100%;text-align:center;}.subgrp {float:left;width:250px;}div.ch .unit, div.ch-iv .unit {font-size:19px;margin-left:10px;}div.ch .value, div.ch-iv .value {margin-top:20px;font-size:30px;}div.ch .info, div.ch-iv .info {margin-top:3px;font-size:10px;}div.ch .head {background-color:#003c80;padding:10px 0 10px 0;}div.ch-iv .head {background-color:#1c6800;padding:10px 0 10px 0;}div.iv {max-width:1060px;}div.ch:last-child {margin-right:0px !important;}#note {margin:50px 10px 10px 10px;padding-top:10px;width:100%;border-top:1px solid #bbb;}"; #endif /*__STYLE_H__*/ diff --git a/tools/esp8266/html/setup.html b/tools/esp8266/html/setup.html index baa84dab..0d61eb6f 100644 --- a/tools/esp8266/html/setup.html +++ b/tools/esp8266/html/setup.html @@ -28,8 +28,8 @@

Inverter

{INVERTERS}

General

- - + +

Pinout (Wemos)

{PINOUT} @@ -49,12 +49,20 @@ - - + + + +

Serial Console

+ +
+ +
+ +

 

- +
diff --git a/tools/esp8266/html/style.css b/tools/esp8266/html/style.css index 34a63751..89d8db7f 100644 --- a/tools/esp8266/html/style.css +++ b/tools/esp8266/html/style.css @@ -66,8 +66,7 @@ a.erase { #footer p, #footer a { color: #fff; - padding-left: 20px; - padding-right: 20px; + padding: 0 7px 0 7px; font-size: 10pt !important; } @@ -137,6 +136,7 @@ div.ch { overflow: auto; padding-bottom: 20px; } + div.ch .value, div.ch .info, div.ch .head, div.ch-iv .value, div.ch-iv .info, div.ch-iv .head { color: #fff; display: block; diff --git a/tools/esp8266/main.cpp b/tools/esp8266/main.cpp index 6ef21964..99147846 100644 --- a/tools/esp8266/main.cpp +++ b/tools/esp8266/main.cpp @@ -34,7 +34,7 @@ Main::Main(void) { //----------------------------------------------------------------------------- -void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { +void Main::setup(uint32_t timeout) { bool startAp = mApActive; mLimit = timeout; @@ -49,14 +49,14 @@ void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { startAp = getConfig(); +#ifndef AP_ONLY if(false == startAp) startAp = setupStation(timeout); +#else + setupAp(WIFI_AP_SSID, WIFI_AP_PWD); +#endif - if(true == startAp) { - if(strlen(pwd) < 8) - DPRINTLN("ERROR: password must be at least 8 characters long"); - } - else { + if(!startAp) { mTimestamp = getNtpTime(); DPRINTLN("[NTP]: " + getDateTimeStr(getNtpTime())); } @@ -71,11 +71,15 @@ void Main::setup(const char *ssid, const char *pwd, uint32_t timeout) { void Main::loop(void) { if(mApActive) { mDns->processNextRequest(); +#ifndef AP_ONLY if(checkTicker(&mNextTryTs, (WIFI_AP_ACTIVE_TIME * 1000))) { mApLastTick = millis(); mApActive = setupStation(mLimit); - if(mApActive) + if(mApActive) { + if(strlen(WIFI_AP_PWD) < 8) + DPRINTLN("ERROR: password must be at least 8 characters long"); setupAp(WIFI_AP_SSID, WIFI_AP_PWD); + } } else { if(millis() - mApLastTick > 10000) { @@ -83,6 +87,7 @@ void Main::loop(void) { DPRINTLN("AP will be closed in " + String((mNextTryTs - mApLastTick) / 1000) + " seconds"); } } +#endif } mWeb->handleClient(); diff --git a/tools/esp8266/main.h b/tools/esp8266/main.h index be98060a..835a94dd 100644 --- a/tools/esp8266/main.h +++ b/tools/esp8266/main.h @@ -30,7 +30,7 @@ const byte mDnsPort = 53; class Main { public: Main(void); - virtual void setup(const char *ssid, const char *pwd, uint32_t timeout); + virtual void setup(uint32_t timeout); virtual void loop(); String getDateTimeStr (time_t t); From 0ee867993ca4466c85d8cd090c7acc0630eff148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Jonas=20S=C3=A4mann?= Date: Fri, 6 May 2022 19:54:04 +0200 Subject: [PATCH 56/58] MQTT payload injection and default unknown decoder Adds the ability to directly inject payloads to be sent to the inverter. Fixes application crash at missing decoder by adding default decoding. All unknown payloads are now printed as long- and short-lists for faster protocol analysis --- tools/rpi/README.md | 30 +++++++++++ tools/rpi/ahoy.py | 61 +++++++++++++++++++--- tools/rpi/ahoy.yml.example | 1 + tools/rpi/hoymiles/__init__.py | 8 ++- tools/rpi/hoymiles/decoders/__init__.py | 68 ++++++++++++++++++++----- 5 files changed, 146 insertions(+), 22 deletions(-) diff --git a/tools/rpi/README.md b/tools/rpi/README.md index f18f5d0f..e4c3bd40 100644 --- a/tools/rpi/README.md +++ b/tools/rpi/README.md @@ -44,6 +44,34 @@ Whenever it sees a reply, it will decoded and logged to the given log file. +Inject payloads via MQTT +------------------------ + +To enable mqtt payload injection, this must be configured per inverter +```yaml +... + inverters: +... + - serial: 1147112345 + mqtt: + send_raw_enabled: true +... +``` + +This can be used to inject debug payloads +The message must be in hexlified format + +Use of variables: + * tttttttt expands to current time like we know from our `80 0b` command + +Example injects exactly the same as we normally use to poll data + + $ mosquitto_pub -h broker -t inverter_topic/command -m 800b00tttttttt0000000500000000 + +This allows for even faster hacking during runtime + + + Analysing the Logs ------------------ @@ -68,6 +96,8 @@ Configuration Local settings are read from ahoy.yml An example is provided as ahoy.yml.example + + Todo ---- diff --git a/tools/rpi/ahoy.py b/tools/rpi/ahoy.py index 19aabdb2..19812808 100644 --- a/tools/rpi/ahoy.py +++ b/tools/rpi/ahoy.py @@ -2,6 +2,8 @@ # -*- coding: utf-8 -*- import sys +import struct +import re import time from datetime import datetime import argparse @@ -28,6 +30,7 @@ hmradio = hoymiles.HoymilesNRF(device=radio) mqtt_client = None command_queue = {} +mqtt_command_topic_subs = [] hoymiles.HOYMILES_TRANSACTION_LOGGING=True hoymiles.HOYMILES_DEBUG_LOGGING=True @@ -125,13 +128,46 @@ def mqtt_send_status(broker, inverter_ser, data, topic=None): broker.publish(f'{topic}/frequency', data['frequency']) broker.publish(f'{topic}/temperature', data['temperature']) -def mqtt_on_command(): +def mqtt_on_command(client, userdata, message): """ Handle commands to topic hoymiles/{inverter_ser}/command - frame it and put onto command_queue + frame a payload and put onto command_queue + + Inverters must have mqtt.send_raw_enabled: true configured + + This can be used to inject debug payloads + The message must be in hexlified format + + Use of variables: + tttttttt gets expanded to a current int(time) + + Example injects exactly the same as we normally use to poll data: + mosquitto -h broker -t inverter_topic/command -m 800b00tttttttt0000000500000000 + + This allows for even faster hacking during runtime """ - raise NotImplementedError('Receiving mqtt commands is yet to be implemented') + try: + inverter_ser = next( + item[0] for item in mqtt_command_topic_subs if item[1] == message.topic) + except StopIteration: + print('Unexpedtedly received mqtt message for {message.topic}') + + if inverter_ser: + p_message = message.payload.decode('utf-8').lower() + + # Expand tttttttt to current time for use in hexlified payload + expand_time = ''.join(f'{b:02x}' for b in struct.pack('>L', int(time.time()))) + p_message = p_message.replace('tttttttt', expand_time) + + if (len(p_message) < 2048 \ + and len(p_message) % 2 == 0 \ + and re.match(r'^[a-f0-9]+$', p_message)): + payload = bytes.fromhex(p_message) + # commands must start with \x80 + if payload[0] == 0x80: + command_queue[str(inverter_ser)].append( + hoymiles.frame_payload(payload[1:])) if __name__ == '__main__': ahoy_config = dict(cfg.get('ahoy', {})) @@ -142,21 +178,32 @@ if __name__ == '__main__': mqtt_client.username_pw_set(mqtt_config.get('user', None), mqtt_config.get('password', None)) mqtt_client.connect(mqtt_config.get('host', '127.0.0.1'), mqtt_config.get('port', 1883)) mqtt_client.loop_start() + mqtt_client.on_message = mqtt_on_command if not radio.begin(): raise RuntimeError('Can\'t open radio') - #command_queue.append(hoymiles.compose_02_payload()) - #command_queue.append(hoymiles.compose_11_payload()) - inverters = [inverter.get('serial') for inverter in ahoy_config.get('inverters', [])] - for inverter_ser in inverters: + for inverter in ahoy_config.get('inverters', []): + inverter_ser = inverter.get('serial') command_queue[str(inverter_ser)] = [] + # + # Enables and subscribe inverter to mqtt /command-Topic + # + if inverter.get('mqtt', {}).get('send_raw_enabled', False): + topic_item = ( + str(inverter_ser), + inverter.get('mqtt', {}).get('topic', f'hoymiles/{inverter_ser}') + '/command' + ) + mqtt_client.subscribe(topic_item[1]) + mqtt_command_topic_subs.append(topic_item) + loop_interval = ahoy_config.get('interval', 1) try: while True: main_loop() + if loop_interval: time.sleep(time.time() % loop_interval) diff --git a/tools/rpi/ahoy.yml.example b/tools/rpi/ahoy.yml.example index bcab9693..4e2cb586 100644 --- a/tools/rpi/ahoy.yml.example +++ b/tools/rpi/ahoy.yml.example @@ -17,4 +17,5 @@ ahoy: - name: 'balkon' serial: 114172220003 mqtt: + send_raw_enabled: false # allow inject debug data via mqtt topic: 'hoymiles/114172221234' # defaults to 'hoymiles/{serial}' diff --git a/tools/rpi/hoymiles/__init__.py b/tools/rpi/hoymiles/__init__.py index d1b0ae13..4c0a7c4a 100644 --- a/tools/rpi/hoymiles/__init__.py +++ b/tools/rpi/hoymiles/__init__.py @@ -104,8 +104,12 @@ class ResponseDecoder(ResponseDecoderFactory): model = self.inverter_model command = self.request_command - model_decoder = __import__(f'hoymiles.decoders') - device = getattr(model_decoder, f'{model}_Decode{command.upper()}') + model_decoders = __import__(f'hoymiles.decoders') + if hasattr(model_decoders, f'{model}_Decode{command.upper()}'): + device = getattr(model_decoders, f'{model}_Decode{command.upper()}') + else: + if HOYMILES_DEBUG_LOGGING: + device = getattr(model_decoders, f'DEBUG_DecodeAny') return device(self.response) diff --git a/tools/rpi/hoymiles/decoders/__init__.py b/tools/rpi/hoymiles/decoders/__init__.py index 3cef0946..0353d07d 100644 --- a/tools/rpi/hoymiles/decoders/__init__.py +++ b/tools/rpi/hoymiles/decoders/__init__.py @@ -57,33 +57,75 @@ class UnknownResponse: @property def hex_ascii(self): return ' '.join([f'{b:02x}' for b in self.response]) + @property def dump_longs(self): - n = len(self.response)/4 - vals = struct.unpack(f'>{int(n)}L', self.response) + res = self.response + n = len(res)/4 + + vals = None + if n % 4 == 0: + vals = struct.unpack(f'>{int(n)}L', res) + + return vals + + @property + def dump_longs_pad1(self): + res = self.response[1:] + n = len(res)/4 + + vals = None + if n % 4 == 0: + vals = struct.unpack(f'>{int(n)}L', res) + return vals @property def dump_shorts(self): n = len(self.response)/2 - vals = struct.unpack(f'>{int(n)}H', self.response) + + vals = None + if n % 2 == 0: + vals = struct.unpack(f'>{int(n)}H', self.response) return vals -class HM600_Decode02(UnknownResponse): - def __init__(self, response): - self.response = response + @property + def dump_shorts_pad1(self): + res = self.response[1:] + n = len(res)/2 -class HM600_Decode11(UnknownResponse): - def __init__(self, response): - self.response = response + vals = None + if n % 2 == 0: + vals = struct.unpack(f'>{int(n)}H', res) + return vals -class HM600_Decode12(UnknownResponse): +class DEBUG_DecodeAny(UnknownResponse): def __init__(self, response): self.response = response -class HM600_Decode0A(UnknownResponse): - def __init__(self, response): - self.response = response + longs = self.dump_longs + if not longs: + print(' type long : unable to decode (len or not mod 4)') + else: + print(' type long : ' + str(longs)) + + longs = self.dump_longs_pad1 + if not longs: + print(' type long pad1 : unable to decode (len or not mod 4)') + else: + print(' type long pad1 : ' + str(longs)) + + shorts = self.dump_shorts + if not shorts: + print(' type short : unable to decode (len or not mod 2)') + else: + print(' type short : ' + str(shorts)) + + shorts = self.dump_shorts_pad1 + if not shorts: + print(' type short pad1: unable to decode (len or not mod 2)') + else: + print(' type short pad1: ' + str(shorts)) class HM600_Decode0B(StatusResponse): def __init__(self, response): From ef67cbe26e8b032e3d2b820bb8b558cfbd45e7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Jonas=20S=C3=A4mann?= Date: Fri, 6 May 2022 19:59:01 +0200 Subject: [PATCH 57/58] Add python requirement PyYAML --- tools/rpi/requirements.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/rpi/requirements.txt b/tools/rpi/requirements.txt index a26b1266..71eea3aa 100644 --- a/tools/rpi/requirements.txt +++ b/tools/rpi/requirements.txt @@ -1,2 +1,3 @@ -paho-mqtt -crcmod +paho-mqtt>=1.5 +crcmod>=1.7 +PyYAML>=5.0 From 976991df464d346b6ad5cba3a7b7a91071648cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Jonas=20S=C3=A4mann?= Date: Fri, 6 May 2022 20:04:20 +0200 Subject: [PATCH 58/58] Remove debug script test.py --- tools/rpi/test.py | 84 ----------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 tools/rpi/test.py diff --git a/tools/rpi/test.py b/tools/rpi/test.py deleted file mode 100644 index 5de9a099..00000000 --- a/tools/rpi/test.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import sys -import codecs -import re -import time -from datetime import datetime -import hoymiles - -logdata = """ -2022-05-01 12:29:02.139673 Transmit 368223: channel=40 len=27 ack=False | 15 72 22 01 43 78 56 34 12 80 0b 00 62 6e 60 ee 00 00 00 05 00 00 00 00 7e 58 25 -2022-05-01 12:29:02.184796 Received 27 bytes on channel 3 after tx 6912328ns: 95 72 22 01 43 72 22 01 43 01 00 01 01 4e 00 9d 02 0a 01 50 00 9d 02 10 00 00 91 -2022-05-01 12:29:02.184796 Decoder src=72220143, dst=72220143, cmd=1, u1=33.4V, i1=1.57A, p1=52.2W, u2=33.6V, i2=1.57A, p2=52.8W, uk1=1, uk2=0 -2022-05-01 12:29:02.226251 Received 27 bytes on channel 75 after tx 48355619ns: 95 72 22 01 43 72 22 01 43 02 88 1f 00 00 7f 08 00 94 00 97 08 e2 13 89 03 eb ec -2022-05-01 12:29:02.226251 Decoder src=72220143, dst=72220143, cmd=2, ac_u1=227.4V, ac_f=50.01Hz, ac_p1=100.3W, uk1=34847, uk2=0, uk3=32520, uk4=148, uk5=151 -2022-05-01 12:29:02.273766 Received 23 bytes on channel 75 after tx 95876606ns: 95 72 22 01 43 72 22 01 43 83 00 01 00 2c 03 e8 00 d8 00 06 0c 35 37 -2022-05-01 12:29:02.273766 Decoder src=72220143, dst=72220143, cmd=131, ac_i1=0.44A, t=21.60C, uk1=1, uk3=1000, uk5=6, uk6=3125 -""" - -def payload_from_log(line): - values = re.match(r'(?P\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d+) Received.*: (?P[0-9a-z ]+)$', line) - if values: - payload=values.group('data') - return hoymiles.InverterPacketFragment( - time_rx=datetime.strptime(values.group('datetime'), '%Y-%m-%d %H:%M:%S.%f'), - payload=bytes.fromhex(payload) - ) - -with open('example-logs/example.log', 'r') as fh: - for line in fh: - kind = re.match(r'\d{4}-\d{2}-\d{2} \d\d:\d\d:\d\d.\d+ (?PTransmit|Received)', line) - if kind: - if kind.group('type') == 'Transmit': - u, data = line.split('|') - rx_buffer = hoymiles.InverterTransaction( - request=bytes.fromhex(data)) - - elif kind.group('type') == 'Received': - try: - payload = payload_from_log(line) - print(payload) - except BufferError as err: - print(f'Debug: {err}') - payload = None - pass - if payload: - rx_buffer.frame_append(payload) - try: - #packet = rx_buffer.get_payload(72220143) - packet = rx_buffer.get_payload() - except BufferError as err: - print(f'Debug: {err}') - packet = None - pass - - if packet: - plen = len(packet) - dt = rx_buffer.time_rx.strftime("%Y-%m-%d %H:%M:%S.%f") - iv = hoymiles.hm600_0b_response_decode(packet) - - print(f'{dt} Decoded: {plen}', end='') - print(f' string1=', end='') - print(f' {iv.dc_voltage_0}VDC', end='') - print(f' {iv.dc_current_0}A', end='') - print(f' {iv.dc_power_0}W', end='') - print(f' {iv.dc_energy_total_0}Wh', end='') - print(f' {iv.dc_energy_daily_0}Wh/day', end='') - print(f' string2=', end='') - print(f' {iv.dc_voltage_1}VDC', end='') - print(f' {iv.dc_current_1}A', end='') - print(f' {iv.dc_power_1}W', end='') - print(f' {iv.dc_energy_total_1}Wh', end='') - print(f' {iv.dc_energy_daily_1}Wh/day', end='') - print(f' phase1=', end='') - print(f' {iv.ac_voltage_0}VAC', end='') - print(f' {iv.ac_current_0}A', end='') - print(f' {iv.ac_power_0}W', end='') - print(f' inverter=', end='') - print(f' {iv.ac_frequency}Hz', end='') - print(f' {iv.temperature}°C', end='') - print() - - print('', end='', flush=True)