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>