[patch] 98_cloneDummy.pm - neues Attribut deleteBeforeUpdate

Begonnen von betateilchen, 20 Mai 2016, 14:55:02

Vorheriges Thema - Nächstes Thema

betateilchen

Um bei devices mit "dynamisch erzeugten" readings sicherzustellen, dass es keine Vermischung aus "alten" und "neuen" readings nach einem Update gibt, schlage ich ein neues Attribut vor, das dafür sorgt, dass alle im clone vorhandenen readings zuerst gelöscht werden, bevor neue readings geschrieben werden.


Index: 98_cloneDummy.pm
===================================================================
--- 98_cloneDummy.pm (revision 11482)
+++ 98_cloneDummy.pm (working copy)
@@ -33,6 +33,7 @@
   $hash->{DefFn}     = "cloneDummy_Define";
   $hash->{NotifyFn}  = "cloneDummy_Notify";
   $hash->{AttrList}  = "cloneIgnore "
+                       ."deleteBeforeUpdate:0,1 "
                        ."addStateEvent:0,1 "
                        .$readingFnAttributes;
}
@@ -73,6 +74,8 @@
     $hs = $hash->{NOTIFYSTATE};
   }

+  CommandDeleteReading(undef,"$hn .*") if(AttrVal($hn,'deleteBeforeUpdate',0));
+
   readingsSingleUpdate($hash,"state", "active",1);
   readingsBeginUpdate($hash);

@@ -159,6 +162,9 @@
     <br>- comma separated list of readingnames that will NOT be generated.<br>
         Usefull to prevent truncated readingnames coming from state events.</li>
     <br>
+    <li>deleteBeforeUpdate<br>
+        If set to 1, all readings will be deleted befor update.</li>
+    <br>
         <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
     </ul>
   <br>
@@ -226,6 +232,9 @@
         Eine durch Kommata getrennte Liste der readings, die cloneDummy nicht in eigene readings
         umwandelt</li>
     <br>
+    <li>deleteBeforeUpdate<br>
+        Ist dieses Attribut auf 1 gesetzt, werden alle readings zuerst gelöscht, bevor neue Readings geschrieben werden.</li>
+    <br>
     <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
     </ul>
   <br>
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!