Skip to content

Commit

Permalink
#484 fix: device_id isn't set correctly for ENER314 pairing
Browse files Browse the repository at this point in the history
  • Loading branch information
TWilkin committed Feb 15, 2024
1 parent 9fbe830 commit 01cbfb9
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import asyncio

from typing import Any, Dict, List

from energenie_controller.config import EnergenieConfig
from energenie_controller.energenie import EnergenieInterface
from powerpi_common.device import Device, DeviceStatus
from powerpi_common.logger import Logger
from powerpi_common.mqtt import MQTTClient

from energenie_controller.config import EnergenieConfig
from energenie_controller.energenie import EnergenieInterface


class EnergeniePairingDevice(Device):
#pylint: disable=too-many-arguments
# pylint: disable=too-many-arguments
def __init__(
self,
config: EnergenieConfig,
Expand Down Expand Up @@ -38,7 +38,12 @@ async def pair(self):
home_id = self.find_free_home_id()

if home_id is not None:
self.__energenie.set_ids(home_id, 0)
device_id = 0 # for ENER314-RT this is "all"
if not self.__config.is_ener314_rt:
# ENER314 only supports device_id 1-4
device_id = 1

self.__energenie.set_ids(home_id, device_id)

# publish the message now as we have no idea when it'll pair
topic = f'device/{self.name}/join'
Expand Down
15 changes: 12 additions & 3 deletions controllers/energenie/energenie_controller/energenie/ener314.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from typing import Optional

from gpiozero import Energenie

from .energenie import EnergenieInterface
Expand All @@ -7,10 +9,17 @@ class EnergenieInterfaceImpl(EnergenieInterface):
def __init__(self):
EnergenieInterface.__init__(self)

self.__device = Energenie(self._device_id, initial_value=None)
self.__device: Optional[Energenie] = None

@property
def _device(self):
if self.__device is None:
self.__device = Energenie(self._device_id, initial_value=None)

return self.__device

def _turn_on(self):
self.__device.on()
self._device.on()

def _turn_off(self):
self.__device.off()
self._device.off()

0 comments on commit 01cbfb9

Please sign in to comment.