Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Development for new release #220

Merged
merged 46 commits into from
Sep 4, 2022
Merged
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
8f389f8
Delete checkserial() in the input field
DanielR92 Aug 20, 2022
ba45d13
Update Readme start
DanielR92 Aug 20, 2022
9fbfd93
Update first draft
DanielR92 Aug 20, 2022
83a2c98
updated the ESP8266 readme
DanielR92 Aug 21, 2022
45ae413
Merge pull request #187 from DanielR92/patch-5
aschiffler Aug 21, 2022
dddb765
Merge pull request #188 from DanielR92/patch-6
aschiffler Aug 21, 2022
c62996c
Merge pull request #189 from DanielR92/patch-7
aschiffler Aug 21, 2022
079ba89
MQTT reconnect delay, fixed ESP32 build
tastendruecker123 Aug 22, 2022
cbebfea
Merge pull request #194 from tastendruecker123/dev2
lumapu Aug 22, 2022
f76fbea
added last alarm msg request
aschiffler Aug 23, 2022
0af251b
added esp32 to release work flow
aschiffler Aug 23, 2022
146a1d5
improvment mqtt after add values
aschiffler Aug 24, 2022
41e67e1
Added a Hint for update from a low version to new
DanielR92 Aug 24, 2022
5c33690
Update Scheduler / Task manager + MQTT
DanielR92 Aug 24, 2022
87b45d5
Merge pull request #199 from DanielR92/patch-8
aschiffler Aug 24, 2022
8bf539a
Merge pull request #200 from DanielR92/patch-10
aschiffler Aug 24, 2022
3212aeb
code review: added check if mqtt is enabled before sending out values
lumapu Aug 25, 2022
3a51f35
improved generation of power limit control html select element
lumapu Aug 25, 2022
fec8758
* fix empty inverters save on a brandnew ESP
lumapu Aug 26, 2022
ae968d6
* added option for no powerlimit (setup)
lumapu Aug 26, 2022
a208e54
add github actions for dev builds
aschiffler Aug 29, 2022
411e780
Update compile_development.yml
aschiffler Aug 29, 2022
4613593
fix development workflow actions
aschiffler Aug 29, 2022
9eaf9ba
Merge branch 'development02' of https://github.com/grindylow/ahoy int…
aschiffler Aug 29, 2022
d58b1c4
OpenScad parametric Case for Dollatek NRF24L01
cubinet-code Aug 30, 2022
7fc57ff
- Improve config system allowing a user customizable config_override.…
cubinet-code Aug 30, 2022
dc38d46
Merge branch 'development02' into config_override
aschiffler Aug 30, 2022
a24abc7
Merge pull request #211 from cubinet-code/config_override
aschiffler Aug 30, 2022
5cac5a7
Clarify photo file names
cubinet-code Aug 30, 2022
4796555
Merge branch 'main' into development02
lumapu Aug 30, 2022
2bfb646
* fix #195: used trim() to remove leading and trailing spaces, added …
lumapu Aug 30, 2022
b67cd03
fix #209
lumapu Aug 30, 2022
11fdb4c
fix action (directory was missing - needs to be created automatically…
lumapu Aug 30, 2022
10d6fcc
badge test
lumapu Aug 30, 2022
0464501
Update README.md
thfcm Aug 31, 2022
ebe532d
Merge branch 'development02' into patch-2
aschiffler Aug 31, 2022
e413241
Merge pull request #218 from thfcm/patch-2
aschiffler Aug 31, 2022
6c8c94d
change dir for cases
aschiffler Aug 31, 2022
9869722
Merge branch 'dollatek_case' into development02
aschiffler Aug 31, 2022
616ca16
Update User_Manual.md
aschiffler Aug 31, 2022
7c5650e
Merge branch 'main' into development02
lumapu Aug 31, 2022
0355572
corrected most of the review comments, except "maxlength"
lumapu Sep 1, 2022
365da35
Update README.md
thfcm Sep 3, 2022
904c2fa
Update README.md
thfcm Sep 4, 2022
36e5b71
Merge pull request #232 from thfcm/patch-4
lumapu Sep 4, 2022
8b6185b
Update Changes for release 0.5.16
aschiffler Sep 4, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/workflows/compile_development.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Ahoy Dev-Build for ESP8266/ESP32

on:
push:
branches: development*
paths-ignore:
- '**.md' # Do no build on *.md changes
jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
with:
ref: development02
- uses: benjlevesque/[email protected]
id: short-sha
with:
length: 7
- name: cache-pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: cache-platformio
uses: actions/cache@v3
with:
path: ~/.platformio
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
- name: setup-python
uses: actions/setup-python@v3
- name: install-platformio
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: update-html
working-directory: tools/esp8266/html
run: python convert.py
- name: Run PlatformIO
run: pio run -d tools/esp8266 --environment esp8266-release --environment esp32-wroom32-release
- name: rename-binary-files
id: rename-binary-files
working-directory: tools/esp8266/scripts
run: python getVersion.py
- name: set-version
uses: cschleiden/replace-tokens@v1
with:
files: tools/esp8266/User_Manual.md
env:
VERSION: ${{ steps.rename-binary-files.outputs.name }}
- name: create-artifact
run: zip --junk-paths ${{ steps.rename-binary-files.outputs.name }}.zip tools/esp8266/.pio/build/out/* tools/esp8266/User_Manual.md
- uses: actions/upload-artifact@v3
with:
name: ${{ steps.rename-binary-files.outputs.name }}_dev_build
path: ./${{ steps.rename-binary-files.outputs.name }}.zip
4 changes: 2 additions & 2 deletions .github/workflows/compile_esp8266.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
working-directory: tools/esp8266/html
run: python convert.py
- name: Run PlatformIO
run: pio run -d tools/esp8266 --environment esp8266-release
run: pio run -d tools/esp8266 --environment esp8266-release --environment esp32-wroom32-release
- name: rename-binary-files
id: rename-binary-files
working-directory: tools/esp8266/scripts
Expand Down Expand Up @@ -72,4 +72,4 @@ jobs:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ./${{ steps.rename-binary-files.outputs.name }}.zip
asset_name: ${{ steps.rename-binary-files.outputs.name }}.zip
asset_content_type: application/zip
asset_content_type: application/zip
33 changes: 22 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,28 @@
![actions/workflows/compile_esp8266.yml](../../actions/workflows/compile_esp8266.yml/badge.svg) ![actions/workflows/compile_development.yml](../../actions/workflows/compile_development.yml/badge.svg)

![Logo](https://github.com/grindylow/ahoy/blob/main/doc/logo1_small.png?raw=true)

# ahoy
Various tools, examples, and documentation for communicating with Hoymiles microinverters.
Ahoi is a project to bypass the original Hoymiles cloud solution.
In order to use this project, it is important what the area of ​​​​application looks like.
With each version it is necessary to have an NRF24L01+.

Click on the link below you are interested in.
There you will find further explanations on how to proceed. (*Note: It is still under construction!*)

##### Most updated section
- [ESP8266](tools/esp8266/) that includes an web interface

##### will be updated as needed
- [Arduino Nano](tools/nano/NRF24_SendRcv/)
- [Raspberry Pi](tools/rpi/)
- [others](tools/nano/NRF24_SendRcv/)

If errors occur or you have suggestions for ideas, please feel free to contact us [here](https://github.com/grindylow/ahoy/issues).

In particular:
## Contact
We run a Discord Server that can be used to get in touch with the Developers and Users.

* `doc/hoymiles-format-description.txt` is a [detailed description of the communications format](doc/hoymiles-format-description.md) and the history of this project
* `doc/getting-started-ESP8266.md` shows the [hardware setup for an ESP8266-based system](doc/getting-started-ESP8266.md)
* The `tools` folder contains various software tools for RaspberryPi, Arduino and ESP8266/ESP32:
* A [version for ESP8266](tools/esp8266/) that includes an web interface ![](../../actions/workflows/compile_esp8266.yml/badge.svg)
* 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.
https://discord.gg/WzhxEY62mB

Contributors are always welcome!
**Contributors are always welcome!**
283 changes: 283 additions & 0 deletions tools/cases/DollaTek_NRF24L01_Case/case.scad
Original file line number Diff line number Diff line change
@@ -0,0 +1,283 @@
$fn=100;




translate([-w/2-10,0,d+bpt+tpt])
rotate(a=180, v=[0,1,0])
box_top();
translate([w/2+10,0,0])
box_bottom();


//*************************************************//
//PARAMETERS
//*************************************************//
//BOX
//--------------------------------------------------
//inner box width + tolerances
w=90;
//inner box length + tolerances
h=30;
//inner box depth
d=35;
//wall tickness
wt=3;
//bottom plate tickness
bpt=3;
//top plate tickness
tpt=3;
//top cutout depth
cd=5;
//top cutout tickness
cwt=1.5;
//--------------------------------------------------
//BOARD MOUNTING HOLES
//--------------------------------------------------
//position
cx=0;
cy=0;
//holes size (radius)
chs_i=1.5;
chs_o=4;
//distancer height
dsth=3;
//holes distance h
chd_h=90;
//holes distance v
chd_v=90;
//--------------------------------------------------
//TOP PART MOUNTING HOLES
//--------------------------------------------------
//position
cx1=0;
cy1=0;
//holes size (radius)
chs_i1=1.6;
chs_o1=3;
//holes distance h
chd_h1=h-2*chs_i1-2;
//holes distance v
chd_v1=w-2*chs_i1-2;
//*************************************************//
//*************************************************//
//MODULES
//*************************************************//

//top box part
module box_top()
{
difference()
{
union()
{
difference()
{
translate([ 0, 0, d+bpt-cd-0.2])
rounded_cube( w+2*wt, h+2*wt, tpt+cd+0.2, 6);

translate([ 0, 0, d+bpt-cd-1])
rounded_cube( w+2*cwt+0.3, h+2*cwt+0.3, cd+1, 4);
}
/*************************/

//add here...

/*************************/
}
//TOP PART HOLES
//tph_t_cut();
/*************************/

//subtract here...

/*************************/
}
}
//bottom box
module box_bottom()
{
difference()
{
union()
{
difference()
{
rounded_cube( w+2*wt, h+2*wt, d+bpt, 6);

translate([ 0, 0, -cd])
difference()
{
translate([ 0, 0, d+bpt])
rounded_cube( w+2*wt+1, h+2*wt+1, cd+1, 4);

translate([ 0, 0, d+bpt-1])
rounded_cube( w+2*cwt, h+2*cwt, cd+3, 4);
}
translate([ 0, 0, bpt])
rounded_cube( w, h, d+bpt, 4);
}
//BOARD DISTANCER
//board_distancer();
//TOP PLATE DISTANCER
//top_distancer();
/*************************/



/*************************/
}

//BOARD HOLES
//bh_cut();
//TOP PART HOLES
//tph_b_cut();
/*************************/

//subtract here...

translate([25, 0, 14])
rotate([0,90,0])
cylinder(r=3.5,h=40);

translate([-48, 0, 7])
cube( [10, 10, 5], true);

/*************************/

}
}

/****************************************************/
module board_distancer()
{
translate([cx,cy,0])
{
translate([+chd_h/2,chd_v/2,0])
cylinder(r=chs_o,h=bpt+dsth);
translate([-chd_h/2,chd_v/2,0])
cylinder(r=chs_o,h=bpt+dsth);
translate([+chd_h/2,-chd_v/2,0])
cylinder(r=chs_o,h=bpt+dsth);
translate([-chd_h/2,-chd_v/2,0])
cylinder(r=chs_o,h=bpt+dsth);
}
}
module top_distancer()
{
translate([cx1,cy1,0])
{
translate([-chd_v1/2, chd_h1/2, 0])
cylinder(r=chs_o1,h=d+bpt);
translate([-chd_v1/2, -chd_h1/2, 0])
cylinder(r=chs_o1,h=d+bpt);
translate([chd_v1/2, chd_h1/2, 0])
cylinder(r=chs_o1,h=d+bpt);
translate([chd_v1/2, -chd_h1/2, 0])
cylinder(r=chs_o1,h=d+bpt);
}
}
module bh_cut()
{
translate([cx,cy,0])
{
translate([-chd_h/2,-chd_v/2,-1])
cylinder(r=chs_i,h=bpt+dsth+2);
translate([+chd_h/2,-chd_v/2,-1])
cylinder(r=chs_i,h=bpt+dsth+2);
translate([-chd_h/2,chd_v/2,-1])
cylinder(r=chs_i,h=bpt+dsth+2);
translate([+chd_h/2,chd_v/2,-1])
cylinder(r=chs_i,h=bpt+dsth+2);

translate([-chd_h/2,-chd_v/2,1.3])
fhex(5.5,3);
translate([+chd_h/2,-chd_v/2,1.3])
fhex(5.5,3);
translate([-chd_h/2,chd_v/2,1.3])
fhex(5.5,3);
translate([+chd_h/2,chd_v/2,1.3])
fhex(5.5,3);
}
}

module tph_t_cut()
{
translate([cx1,cy1,0])
{
translate([-chd_v1/2, chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+tpt+3);
translate([chd_v1/2, chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+tpt+3);

translate([-chd_v1/2, -chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+tpt+3);
translate([chd_v1/2, -chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+tpt+3);

translate([-chd_v1/2, chd_h1/2, d+bpt+tpt-1.3])
fhex(5.5,3);

translate([chd_v1/2, chd_h1/2, d+bpt+tpt-1.3])
fhex(5.5,3);

translate([-chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3])
fhex(5.5,3);

translate([chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3])
fhex(5.5,3);

}
}
module tph_b_cut()
{
translate([cx1,cy1,0])
{
translate([-chd_v1/2, chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+3);
translate([chd_v1/2, chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+3);

translate([-chd_v1/2, -chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+3);
translate([chd_v1/2, -chd_h1/2, -2])
cylinder(r=chs_i1,h=d+bpt+3);

translate([-chd_v1/2, chd_h1/2, -1])
cylinder(r=3,h=4);

translate([chd_v1/2, chd_h1/2, -1])
cylinder(r=3,h=4);

translate([-chd_v1/2, -chd_h1/2, -1])
cylinder(r=3,h=4);

translate([chd_v1/2, -chd_h1/2, -1])
cylinder(r=3,h=4);

}
}


module rounded_cube( x, y, z, r)
{
translate([-x/2+r,-y/2+r,0])
linear_extrude(height=z)
minkowski()
{
square([x-2*r,y-2*r],true);
translate([x/2-r,y/2-r,0])
circle(r);

}
}

module fhex(wid,height)
{
hull()
{
cube([wid/1.7,wid,height],center = true);
rotate([0,0,120])cube([wid/1.7,wid,height],center = true);
rotate([0,0,240])cube([wid/1.7,wid,height],center = true);
}
}
Binary file added tools/cases/DollaTek_NRF24L01_Case/case.stl
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading