changeset 1174:a88d5c76d2ff

submaster don't abort subs that have dangling links in them Ignore-this: b6e1dd023112d07e0d8c89e9265f86c4
author drewp@bigasterisk.com
date Sun, 15 Jun 2014 06:19:33 +0000
parents 423941a4b489
children e435649569f3
files light9/Submaster.py
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/light9/Submaster.py	Sun Jun 15 06:18:06 2014 +0000
+++ b/light9/Submaster.py	Sun Jun 15 06:19:33 2014 +0000
@@ -168,16 +168,20 @@
             log.debug(" lightLevel %s %s", self.uri, lev)
             chan = self.graph.value(lev, L9['channel'])
 
+            val = self.graph.value(lev, L9['level'])
+            if val is None:
+                # broken lightLevel link- may be from someone deleting channels
+                log.warn("sub %r has lightLevel %r with channel %r "
+                         "and level %r" % (self.uri, lev, chan, val))
+                continue
+            log.debug("   new val %r", val)
+            if val == 0:
+                continue
             name = self.graph.label(chan)
             if not name:
                 log.error("sub %r has channel %r with no name- "
                           "leaving out that channel" % (self.name, chan))
                 continue
-            val = self.graph.value(lev, L9['level'])
-            if val is None:
-                raise ValueError("sub %r has lightLevel %r with channel %r "
-                                 "and level %r" % (self.uri, lev, chan, val))
-            log.debug("   new val %r", val)
             try:
                 self.levels[name] = float(val)
             except: