Skip to content

Commit

Permalink
Merge pull request #220 from grindylow/development02
Browse files Browse the repository at this point in the history
Merge Development for new release
  • Loading branch information
aschiffler authored Sep 4, 2022
2 parents 294984a + 8b6185b commit 7d17efa
Show file tree
Hide file tree
Showing 36 changed files with 1,128 additions and 357 deletions.
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

0 comments on commit 7d17efa

Please sign in to comment.