Skip to content

Commit

Permalink
Fixes a bug where devices displaying an IOError state incorrectly r…
Browse files Browse the repository at this point in the history
…eport as being online. Updates wiki regarding IOErrors.
  • Loading branch information
DaveL17 committed Oct 4, 2023
1 parent 8428989 commit f6447e0
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
2 changes: 1 addition & 1 deletion GhostXML.indigoPlugin/Contents/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>PluginVersion</key>
<string>2022.3.2</string>
<string>2022.3.3</string>
<key>ServerApiVersion</key>
<string>3.2</string>
<key>IwsApiVersion</key>
Expand Down
12 changes: 11 additions & 1 deletion GhostXML.indigoPlugin/Contents/Server Plugin/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1294,10 +1294,20 @@ def refresh_data_for_dev(self, dev=None):
dev.updateStateOnServer('deviceIsOnline', value=False, uiValue='Error')
dev.updateStateImageOnServer(indigo.kStateImageSel.SensorTripped)
self.bad_calls += 1
elif dev.states.get("Response", "") == "No data to return.":
# 2023-10-04 DaveL17 - update to include XML parse error.
elif dev.states.get("Response", "") in ["No data to return.", "Parse error. Check XML source."]:
dev.updateStateOnServer('deviceIsOnline', value=False, uiValue='Error')
dev.updateStateImageOnServer(indigo.kStateImageSel.SensorTripped)
self.bad_calls += 1
# TODO: the following block can be deleted if the above block continues to run without errors.
# elif dev.states.get("Response", "") == "No data to return.":
# dev.updateStateOnServer('deviceIsOnline', value=False, uiValue='Error')
# dev.updateStateImageOnServer(indigo.kStateImageSel.SensorTripped)
# self.bad_calls += 1
# elif dev.states.get("Response", "") == "Parse error. Check XML source.":
# dev.updateStateOnServer('deviceIsOnline', value=False, uiValue='Error')
# dev.updateStateImageOnServer(indigo.kStateImageSel.SensorTripped)
# self.bad_calls += 1
else:
dev.updateStateOnServer('deviceIsOnline', value=True, uiValue="Updated")
self.logger.info(f"{dev.name} updated.")
Expand Down
3 changes: 3 additions & 0 deletions _changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
### v2022.3.3
- Fixes a bug where devices displaying an `IOError` state incorrectly report as being online.

### v2022.3.2
- Bumps version number.

Expand Down

0 comments on commit f6447e0

Please sign in to comment.