FHEM Forum

FHEM => Automatisierung => Thema gestartet von: betateilchen am 20 Mai 2016, 14:55:02

Titel: [patch] 98_cloneDummy.pm - neues Attribut deleteBeforeUpdate
Beitrag von: betateilchen am 20 Mai 2016, 14:55:02
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>