diff --git a/tools/rpi/hoymiles/__init__.py b/tools/rpi/hoymiles/__init__.py index dbe564cc..46a9275c 100644 --- a/tools/rpi/hoymiles/__init__.py +++ b/tools/rpi/hoymiles/__init__.py @@ -344,6 +344,9 @@ class HoymilesNRF: if not radio.begin(): raise RuntimeError('Can\'t open radio') + + if not radio.isChipConnected(): + logging.warning("could not connect to NRF24 radio") self.txpower = radio_config.get('txpower', 'max') @@ -411,7 +414,7 @@ class HoymilesNRF: self.radio.startListening() fragments = [] - + received_sth=False # Receive: Loop t_end = time.monotonic_ns()+timeout while time.monotonic_ns() < t_end: @@ -431,7 +434,7 @@ class HoymilesNRF: ch_rx=self.rx_channel, ch_tx=self.tx_channel, time_rx=datetime.now() ) - + received_sth=True yield fragment else: @@ -447,7 +450,11 @@ class HoymilesNRF: self.radio.setChannel(self.rx_channel) self.radio.startListening() - time.sleep(0.004) + time.sleep(0.005) + + if not received_sth: + raise TimeoutError + def next_rx_channel(self): """