@ -1,10 +1,23 @@ 
				
			 
			
		
	
		
		
			
				
					 
					 
					## OVERVIEW 
					 
					 
					## OVERVIEW 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					This code is intended to run on a Wemos D1mini or similar. The code is based on 'Hubi's code, which can be found here: < https: / / www . mikrocontroller . net / topic / 525778 ? page = 3#7033371 >   
					 
					 
					This page describes how the module of a Wemos D1 mini and ESP8266 is wired to the radio module, flashed and how the further steps are to communicate with the WR HM series.  
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					The NRF24L01+ radio module is connected to the standard SPI pins. Additional there are 3 pins, which can be set individual: CS, CE and IRQ 
					 
					 
					#### Compatiblity 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					These pins can be changed from the /setup URL 
					 
					 
					For now the following inverters should work out of the box: 
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM350 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM400 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM600 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM700 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM800 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM1200 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					- HM1500 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					The NRF24L01+ radio module is connected to the standard SPI pins.  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					Additional there are 3 pins, which can be set individual: CS, CE and IRQ 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					These pins can be changed in the http://< ip-adress > /setup URL or with a click on the Setup link. 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					## ESP8266 electr. associate 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					< img  src = "https://github.com/grindylow/ahoy/blob/main/doc/ESP8266_nRF24L01%2B_bb.png"  width = "300" >  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					## Compile 
					 
					 
					## Compile 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
							 
						
					 
					@ -13,63 +26,60 @@ This code can be compiled using Visual Studio Code and **PlatformIO** Addon. The 
				
			 
			
		
	
		
		
			
				
					 
					 
					- Board: Generic ESP8266 Module 
					 
					 
					- Board: Generic ESP8266 Module 
				
			 
			
		
	
		
		
			
				
					 
					 
					- Flash-Size: 1MB (FS: none, OTA: 502kB) 
					 
					 
					- Flash-Size: 1MB (FS: none, OTA: 502kB) 
				
			 
			
		
	
		
		
			
				
					 
					 
					- Install libraries (not included in the Arduino IDE 1.8.19): 
					 
					 
					- Install libraries (not included in the Arduino IDE 1.8.19): 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					  - Time            Arduino Time library (TimeLib.h)  
					 
					 
					  - `Time`  1.6.1 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					  - RF24            Optimized high speed nRF24L01+ driver class documentation  
					 
					 
					  - `RF24`  1.4.5 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					  - PubSubClient    A client library for MQTT messaging. By Nick O'Leary  
					 
					 
					  - `PubSubClient`  2.8 
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					  - ArduinoJson     Arduino Json library  
					 
					 
					  - `ArduinoJson`  6.19.4 
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					### Optional Configuration before compilation 
					 
					 
					### Optional Configuration before compilation 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					- number of supported inverters (set to 3 by default) `defines .h`  
					 
					 
					- number of supported inverters (set to 3 by default) `config .h`  
				
			 
			
				
				
			
		
	
		
		
			
				
					
					 
					 
					- DTU radio id `hmRadio.h`  
					 
					 
					- DTU radio id `hmRadio.h`  (default = 1234567801  
				
			 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 
					 
					- unformated list in webbrowser `/livedata`  `config.h` , `LIVEDATA_VISUALIZED`  
					 
					 
					- unformated list in webbrowser `/livedata`  `config.h` , `LIVEDATA_VISUALIZED`  
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					## Flash ESP with firmware 
					 
					 
					## Flash ESP with firmware 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					#### nodemcu-pyflasher (easy way) 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					1. download the flash-tool [nodemcu-pyflasher ](https://github.com/marcelstoer/nodemcu-pyflasher ) 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					2. download latest release bin-file from [ahoy_ ](https://github.com/grindylow/ahoy/releases ) 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					3. connect the target device with your pc. 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					4. Set the correct serial port and select the correct *.bin file  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					5. click now on "Flash NodeMCU" 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					1. flash the ESP with the compiled firmware using the UART pins or any preinstalled firmware with OTA capabilities 
					 
					 
					1. flash the ESP with the compiled firmware using the UART pins or any preinstalled firmware with OTA capabilities 
				
			 
			
		
	
		
		
			
				
					 
					 
					2. repower the ESP 
					 
					 
					2. repower the ESP 
				
			 
			
		
	
		
		
			
				
					 
					 
					3. the ESP will start as access point (AP) if there is no network config stored in its eeprom 
					 
					 
					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 
					 
					 
					4. connect to the AP, you will be forwarded to the setup page 
				
			 
			
		
	
		
		
			
				
					 
					 
					5. configure your WiFi settings, save, repower 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					6. check your router or serial console for the IP address of the module. You can try ping the configured device name as well. 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					X. configure your WiFi settings, save, repower 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					Y. check your router or serial console for the IP address of the module. You can try ping the configured device name as well. 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					## pages 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| page | output | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| ---- | ------ | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /uptime | 0 Days, 01:37:34; now: 2022-08-21 11:13:53 | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /reboot | reboot dtu device | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /erase |    | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /factory |    | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /setup |    | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /save | open the setup site | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /cmdstat | show stat from the home site |  
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /visualization |     | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /livedata |     | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /json | json output from the livedata | 
				
			 
			
		
	
		
		
			
				
					 
					 
					 
					 
					 
					| /api |    | 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					## Usage 
					 
					 
					## Usage 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					Connect the ESP to power and to your serial console (optional). The webinterface has the following abilities: 
					 
					 
					The webinterface has the following abilities: 
				
			 
			
				
				
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
	
		
		
			
				
					 
					 
					- OTA Update (over the air update) 
					 
					 
					- OTA Update (over the air update) 
				
			 
			
		
	
		
		
			
				
					
					 
					 
					- Configuration (Wifi, inverter(s), Pinout, MQTT) 
					 
					 
					- Configuration (Wifi, inverter(s), NTP Server,  Pinout, MQTT, Amplifier Power Level, Debug ) 
				
			 
			
				
				
			
		
	
		
		
	
		
		
			
				
					 
					 
					- visual display of the connected inverters / modules 
					 
					 
					- visual display of the connected inverters / modules 
				
			 
			
		
	
		
		
			
				
					 
					 
					- some statistics about communication (debug) 
					 
					 
					- some statistics about communication (debug) 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					The serial console will print the converted values which were read out of the inverter(s) 
					 
					 
					The serial console will print the converted values which were read out of the inverter(s) 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					## Compatiblity 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					For now the following inverters should work out of the box: 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM350 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM400 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM600 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM700 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM800 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM1200 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- HM1500 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					## USED LIBRARIES 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `ESP8266WiFi`  1.0 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `DNSServer`  1.1.0 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `Ticker`  1.0 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `ESP8266HTTPUpdateServer`  1.0 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `Time`  1.6.1 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `RF24`  1.4.5 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `PubSubClient`  2.8 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					- `ArduinoJson`  6.19.4 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					 
				
			 
			
		
	
		
		
			
				
					 
					 
					 ## Todo's [See this post ](https://github.com/grindylow/ahoy/issues/142 ) 
					 
					 
					 ## Todo's [See this post ](https://github.com/grindylow/ahoy/issues/142 ) 
				
			 
			
		
	
		
		
			
				
					 
					 
					
 
					 
					 
					
 
				
			 
			
		
	
		
		
			
				
					 
					 
					- [ ]  Wechsel zu AsyncWebServer und ElegantOTA für Stabilität 
					 
					 
					- [ ]  Wechsel zu AsyncWebServer und ElegantOTA für Stabilität