diff --git a/uzsu/__init__.py b/uzsu/__init__.py index e7a02c68d..230aff456 100755 --- a/uzsu/__init__.py +++ b/uzsu/__init__.py @@ -317,7 +317,6 @@ def lastvalue(self, by=None, item=None, write=False): lastvalue = None itempath = None by_test = f' Queried by {by}' if by else "" - self.logger.debug(f'Last value of item {itempath} is: {lastvalue}.{by_test}') last_item = None if write is True: try: @@ -326,7 +325,8 @@ def lastvalue(self, by=None, item=None, write=False): last_item = child except Exception as e: self.logger.warning(f"Item '{item}' has issues setting last value: {e}") - if last_item: + self.logger.debug(f'Last value of item {itempath} is: {lastvalue}.{by_test}, write {write} last_item {last_item}') + if last_item is not None: last_item(lastvalue, PLUGIN_TAG, by) return lastvalue @@ -337,10 +337,13 @@ def resume(self, activevalue=True, item=None): except: self.logger.warning(f'Item {item} does not exist!') return None - self.activate(True, item) - lastvalue = self.lastvalue(by='logic', item=item) - self._set(item=item, value=lastvalue, caller='logic') - self.logger.info(f'Resuming item {item}: Activated and value set to {lastvalue}. Active value: {activevalue}') + self.activate(activevalue, item) + if activevalue: + lastvalue = self.lastvalue(by='resume', item=item) + self._set(item=item, value=lastvalue, caller='logic') + self.logger.info(f'Resuming item {item}: Activated and value set to {lastvalue}.') + else: + lastvalue = None return lastvalue def activate(self, activevalue=None, item=None, caller='logic'): @@ -462,7 +465,7 @@ def planned(self, item=None, write=False): else: self.logger.info(f'Nothing planned for item "{item}": {self._planned.get(item)}.') self._webdata['items'][item.property.path].update({'planned': _planned_value}) - if next_item: + if next_item is not None: next_item(_planned_value, PLUGIN_TAG, 'planned') return None if _planned_value == {'value': '-', 'next': '-'} else self._planned[item] diff --git a/uzsu/plugin.yaml b/uzsu/plugin.yaml index ee5a9faec..d6b7c8356 100755 --- a/uzsu/plugin.yaml +++ b/uzsu/plugin.yaml @@ -202,8 +202,8 @@ plugin_functions: lastvalue: type: foo description: - de: 'Abfrage des zuletzt gesetzten Werts. Kann z.B. beim Aktivieren der UZSU genutzt werden, um sofort auf den gewünschten Wert zu schalten.' - en: 'Query the last value. Can be used to immediately set the correct value after activating an UZSU.' + de: 'Abfrage des zuletzt gesetzten/evaluierten Werts. Kann z.B. beim Aktivieren der UZSU genutzt werden, um sofort auf den gewünschten Wert zu schalten.' + en: 'Query the last calculated/set value. Can be used to immediately set the correct value after activating an UZSU.' parameters: by: type: str diff --git a/uzsu/user_doc.rst b/uzsu/user_doc.rst index 0155ffb91..cb732cb1b 100755 --- a/uzsu/user_doc.rst +++ b/uzsu/user_doc.rst @@ -170,7 +170,7 @@ Das Webinterface bietet folgende Informationen: - **Nächstes Update**: geplanter nächster Zeitpunkt der Schaltung -- **Letzter Wert**: zuletzt berechneter Wert (relevant bei Interpolation). Dies ist NICHT ident mit property.last_value! +- **Letzter Wert**: zuletzt berechneter Wert. Dies ist NICHT ident mit property.last_value! - **Interpolation**: Interpolationstyp und Intervall