-
-
Notifications
You must be signed in to change notification settings - Fork 226
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #220 from grindylow/development02
Merge Development for new release
- Loading branch information
Showing
36 changed files
with
1,128 additions
and
357 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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!** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 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.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Oops, something went wrong.