Skip to content

Commit

Permalink
mini1gen3
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Jul 16, 2024
1 parent 327c3e4 commit cb9a50c
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
- ShellyPlus2PM
- ShellyPlusI4
- ShellyPlusPlugS
- ShellyMini1Gen3
- ShellyRGBW2
- ShellyUNI
- ShellyVintage
Expand All @@ -34,7 +35,7 @@ jobs:
with:
fetch-depth: 0
- name: Build docker image # remove if newer mos docker image is available
if: ${{ contains( matrix.model , 'Plus') }}
if: ${{ contains( matrix.model , 'Plus') || contains( matrix.model , 'G3') }}
run: docker build -t mgos/esp32-build:4.4.1-r7 -f .github/workflows/Dockerfile-esp32-build .
- name: Install mos build tool
run: |
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ ShellyPlusI4: PLATFORM=esp32
ShellyPlusI4: build-ShellyPlusI4
@true

ShellyMini1Gen3: PLATFORM=esp32c3
ShellyMini1Gen3: build-ShellyMini1Gen3
@true

ShellyRGBW2: build-ShellyRGBW2
@true

Expand Down
38 changes: 38 additions & 0 deletions mos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,44 @@ conds:
- ["bl0937.power_coeff", "f", 0, {title: "BL0937 counts -> watts conversion coefficient"}]
- ["bl0937.power_coeff", 1.64358469] # (16 + 1010 + 1935) / (9.55 + 617 + 1175)

- when: build_vars.MODEL == "ShellyMini1Gen3"
apply:
name: Mini1G3
libs:
- location: https://github.com/mongoose-os-libs/mongoose
build_vars:
MGOS_ROOT_FS_TYPE: LFS
MGOS_ROOT_FS_SIZE: 458752
ESP_IDF_EXTRA_PARTITION: "scratch,data,0x80,0x3f0000,48K"
ESP_IDF_EXTRA_PARTITION_2: "shelly,data,0x88,0x3fc000,16K,encrypted"
#MGOS_ROOT_FS_SIZE: 10458752
#ESP_IDF_EXTRA_PARTITION: "scratch,data,0x80,0x720000,832K"
#ESP_IDF_EXTRA_PARTITION_2: "shelly,data,0x88,0x7F0000,64K,encrypted"
ESP_IDF_SDKCONFIG_OPTS: >
${build_vars.ESP_IDF_SDKCONFIG_OPTS}
CONFIG_FREERTOS_UNICORE=y
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
cdefs:
LED_GPIO: 0
LED_ON: 0
BTN_GPIO: 1
BTN_DOWN: 0
PRODUCT_HW_REV: "0.1.6"
STOCK_FW_MODEL: Mini1G3
MAX_NUM_HAP_SESSIONS: 16
config_schema:
- ["device.id", "ShellyMini1G3-??????"]
- ["shelly.name", "ShellyMini1G3-??????"]
- ["wifi.ap.ssid", "ShellyMini1G3-??????"]
- ["sw1", "sw", {title: "SW1 settings"}]
- ["sw1.name", "Shelly SW"]
- ["in1", "in", {title: "Input 1 settings"}]
- ["in1.ssw.name", "Shelly SSW1"]
- ["in1.sensor.name", "Shelly S1"]
- ["gdo1", "gdo", {title: "GDO1 settings"}]
- ["gdo1.name", "Garage Door"]
- ["gdo1.open_sensor_mode", 2]

- when: build_vars.MODEL == "ShellyPlus1"
apply:
name: Plus1
Expand Down
56 changes: 56 additions & 0 deletions src/ShellyMini1Gen3/shelly_init.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Copyright (c) Shelly-HomeKit Contributors
* All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

#include "shelly_hap_garage_door_opener.hpp"
#include "shelly_hap_input.hpp"
#include "shelly_input_pin.hpp"
#include "shelly_main.hpp"
#include "shelly_sys_led_btn.hpp"
#include "shelly_temp_sensor_ntc.hpp"

namespace shelly {

void CreatePeripherals(std::vector<std::unique_ptr<Input>> *inputs,
std::vector<std::unique_ptr<Output>> *outputs,
std::vector<std::unique_ptr<PowerMeter>> *pms UNUSED_ARG,
std::unique_ptr<TempSensor> *sys_temp) {
outputs->emplace_back(new OutputPin(1, 7, 1));
auto *in = new InputPin(1, 10, 1, MGOS_GPIO_PULL_NONE, true);
in->AddHandler(std::bind(&HandleInputResetSequence, in, LED_GPIO, _1, _2));
in->Init();
inputs->emplace_back(in);
sys_temp->reset(new TempSensorSDNT1608X103F3950(3, 3.3f, 10000.0f));

InitSysLED(LED_GPIO, LED_ON);
InitSysBtn(BTN_GPIO, BTN_DOWN);
}

void CreateComponents(std::vector<std::unique_ptr<Component>> *comps,
std::vector<std::unique_ptr<mgos::hap::Accessory>> *accs,
HAPAccessoryServerRef *svr) {
bool gdo_mode = mgos_sys_config_get_shelly_mode() == (int) Mode::kGarageDoor;
if (gdo_mode) {
hap::CreateHAPGDO(1, FindInput(1), FindInput(2), FindOutput(1),
FindOutput(1), mgos_sys_config_get_gdo1(), comps, accs,
svr, true);
} else {
CreateHAPSwitch(1, mgos_sys_config_get_sw1(), mgos_sys_config_get_in1(),
comps, accs, svr, true);
}
}

} // namespace shelly

0 comments on commit cb9a50c

Please sign in to comment.