98_cloneDummy.pm [war: Erweiterungsvorschlag für 98_dummy.pm]

Begonnen von Joachim, 21 März 2014, 08:07:34

Vorheriges Thema - Nächstes Thema

Joachim

????
@ rudi,
was meinst Du?
Ich stehe mit SVN und der Übermittlung noch auf Kriegsfuss, abe ich hatte gesten abend das </b> schon hinzugefügt,

@ betateilchen,
es ist mir nicht gelungen,  einen Kommenttar hizuzufügen.
Das habe ich noch nicht verstanden.
Ich nutze TortoiseSVN.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

rudolfkoenig

Meine Frage war eher fuer die subversion Experten gedacht.

Im Tortoise gibt es beim Einchecken ein leeres Feld (Message:, unter den Knopf "Recent Messages") bereit, wo man Text eingeben kann. Das muss man komplett ausfuellen, bevor man auf den OK Knopf drueckt.

Joachim

Danke Rudi,
da hatte ich mich nicht getraut, was reinzuschreiben, da ich immer nach comment oder Kommentar gesucht habe.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

betateilchen

Zitat von: Joachim am 29 März 2014, 08:10:27
es ist mir nicht gelungen,  einen Kommenttar hizuzufügen.
Das habe ich noch nicht verstanden.
Ich nutze TortoiseSVN.

Wenn Du in TortoiseSVN auf "Übertragen" gehst, öffnet sich doch ein Fenster mit einem Eingabefeld. Dort gibst Du einfach den Kommentar ein, bevor Du auf OK klickst.
Bei Bedarf kann ich am Montag einen Screenshot machen, wenn ich im Büro bin. Hier zu Hause nutze ich Tortoise nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Joachim

Moin betateilchen,

der Tipp von Rudi hat, glaube ich, geholfen, habe vorhin nocheinmal eine leicht veränderte Version eingecheckt, und es hat scheinbar funktioniert.

Danke für Dein Angebot.

Gruß Jaochim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

inesa394

Danke für dieses praktische modul hat mir sehr geholfen meine 1wire Sensoren zu "clonen" :)

Joachim

Dafür nicht.
Ich bitte um Rückmeldungen, wenn es Problene gibt.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

betateilchen

Mit der neu eingeführten Möglichkeit, dass auch "state" einen event erzeugt, sollte man vielleicht nochmal darüber nachdenken, wie man das hier nutzbar machen kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Joachim

Moin Betateilchen,
habe ich heute auch schon gelesen, bin aber jetzt erst von der Arbeit zurück, und kann erst jetzt damit herumexperimentieren.
Wenn ich das richtig verstanden habe, erzeugt "STATE" einen Event, und der müsste jetzt schon mit dem optionalen reading Parameter abgreifbar sein.
Werde mir das mal ansehen.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

betateilchen

Zitat von: Joachim am 06 April 2014, 18:42:52
Wenn ich das richtig verstanden habe, erzeugt "STATE" einen Event,

nein, state sollte einen Event erzeugen, nicht STATE.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

gandy

Hi,

ich hätte da noch einen Erweiterungsvorschlag für 98_cloneDummy.pm

Durch die ständig wechselnden Empfangsbedingungen betreibe ich neben meiner Haupt-fhem-Installation noch zwei kleinere fhem-Installationen auf RPis mit JeeLink USB-Stick. Zusammen ergeben die beiden 100% Empfangsabdeckung, wobei einige wenige Devices mal von einem, mal vom anderen empfangen werden, manche auch von beiden gleichzeitig.

Damit die Daten an zentraler Stelle wieder zusammengeführt werden können, heißen die Devices in beiden Instanzen gleich und erzeugen mithin identische Events, die per FHEM2FHEM dann in der Haupt-fhem-Installation und letztlich bei den cloneDummy Instanzen landen.

Soweit funktioniert das auch ganz gut, nur dass eben bei doppeltem Empfang auch jeweils zwei Events publiziert und ausgewertet werden. Für manche Readings läßt sich das gut mit event-on-change unterdrücken, bei Readings mit event-on-update werden aber weiterhin doppelte Events erzeugt, die in der Folge zu unnötigem Overhead in der Verarbeitung (notify, FileLOG, etc) führen.

Mein Vorschlag ist deshalb, cloneDummy dahingehend zu erweitern:

  • Neues Attribut 'suppress-duplicates' -> Maximale Anzahl von Dupletten, die unterdrückt werden sollen (entspräche im Beispiel der Zahl von FHEM2FHEM Instanzen, die identische Readings liefern können)
  • Neues Attribut 'duplicate-timeframe' -> Zeit in sec, innerhalb derer doppelte Readings unerwünscht sind (entspräche im Beispiel der typischen Zeit zwischen zwei vom Sensor ausgehenden Readings)
  • Unterdücken eines Readings unter der Voraussetzung, dass

    • es zuvor ein nicht unterdrücktes Reading gleichen Namens und Wertes gab, dessen Zeitstempel nicht um mehr als 'duplicate-timeframe' abweicht, und
    • nicht bereits 'suppress-duplicates' solche Readings unterdrückt wurden

Wie seht Ihr diesen Vorschlag? Gibt es evtl elegante Möglichkeiten, das Gleiche mit fhem-Bordmitteln zu erreichen?

Bei Zustimmung würde ich mich gern an der Umsetzung versuchen und hier einen Vorschlag posten.

Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

justme1968

es gibt in fhem einen zentralen mechanismus um doppelte nachrichten die durch rf wiederholungen z.b. bei fs20 entstehen zu unterdrücken.

vielleicht lässt sich hier direkt etwas wiederverwenden.

wenn du in fhem.pl und den modulen mal nach duplicate suchst findest du es.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

gandy

Danke für den Tipp, das sieht in der Tat auf den ersten Blick schon ganz gut aus.

Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

Joachim

Moin gandy,
Da ich das so z.Z. nicht testen kann, habe ich auch nichts gegen einen Patch.
Wenn ich Dich richtig verstanden habe, wird teilweise eine Nachricht von mehreren Empfängern empfangen, dann müsste der Zeitstempel ja sehr dicht beieinanderliegen, also sollte es reichen, Nachrichten in einem kurzen Zeitfenster, die doppelt sind zu filtern. Die Idee von andre klingt gut. Wenn das nicht auf die Performance schlägt, könnte man es fest einbauen, ansonsten per Attribut.
Werde mir auch mal Gedanken machen.

Gruß Joachim
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

gandy

#104
Hi Joachim,

stimmt, die Zeitstempel liegen recht dicht beieinander und der Tipp von Andre war Gold wert (Danke, Andre!), im Grunde ist die Sache mit einer Zeile zu erledigen. Im Anhang mein Vorschlag als komplettes Modul, hier die Ausgabe des Logs für verschiedene Instanzen des Moduls:


2014.05.05 21:34:11.977 2: cloneDummy: publish unique <EC3kMM> <PowerMeterMM> <consumption: 10.661>
2014.05.05 21:34:11.992 2: cloneDummy: drop duplicate <EC3kMM> <PowerMeterMM> <consumption: 10.661> ***
2014.05.05 21:34:11.995 2: cloneDummy: publish unique <EC3kMM> <PowerMeterMM> <power: 52.7>
2014.05.05 21:34:12.011 2: cloneDummy: publish unique <EC3kMM> <PowerMeterMM> <powerMax: 90.9>
2014.05.05 21:34:12.015 2: cloneDummy: publish unique <EC3kMM> <PowerMeterMM> <52.7>
2014.05.05 21:34:12.398 2: cloneDummy: publish unique <EC3kTM> <PowerMeterTM> <consumption: 43.393>
2014.05.05 21:34:12.413 2: cloneDummy: drop duplicate <EC3kTM> <PowerMeterTM> <consumption: 43.393> ***
2014.05.05 21:34:12.415 2: cloneDummy: publish unique <EC3kTM> <PowerMeterTM> <power: 167.9>
2014.05.05 21:34:12.421 2: cloneDummy: publish unique <EC3kTM> <PowerMeterTM> <powerMax: 271>
2014.05.05 21:34:12.423 2: cloneDummy: publish unique <EC3kTM> <PowerMeterTM> <167.9>
2014.05.05 21:34:12.741 2: cloneDummy: publish unique <EC3kKS> <PowerMeterKS> <consumption: 31.297>
2014.05.05 21:34:12.745 2: cloneDummy: publish unique <EC3kKS> <PowerMeterKS> <power: 70.7>
2014.05.05 21:34:12.749 2: cloneDummy: publish unique <EC3kKS> <PowerMeterKS> <powerMax: 597.3>
2014.05.05 21:34:12.757 2: cloneDummy: publish unique <EC3kKS> <PowerMeterKS> <70.7>
2014.05.05 21:34:14.304 2: cloneDummy: publish unique <EC3kGS> <PowerMeterGS> <consumption: 47.43>
2014.05.05 21:34:14.306 2: cloneDummy: publish unique <EC3kGS> <PowerMeterGS> <power: 0>
2014.05.05 21:34:14.309 2: cloneDummy: publish unique <EC3kGS> <PowerMeterGS> <powerMax: 2164.9>
2014.05.05 21:34:14.397 2: cloneDummy: publish unique <EC3k02> <PowerMeter02> <consumption: 1.554>
2014.05.05 21:34:14.410 2: cloneDummy: drop duplicate <EC3k02> <PowerMeter02> <consumption: 1.554> ***
2014.05.05 21:34:14.412 2: cloneDummy: publish unique <EC3k02> <PowerMeter02> <power: 0>
2014.05.05 21:34:14.416 2: cloneDummy: publish unique <EC3k02> <PowerMeter02> <powerMax: 91.7>
2014.05.05 21:34:14.596 2: cloneDummy: publish unique <EC3k01> <PowerMeter01> <consumption: 16.311>
2014.05.05 21:34:14.609 2: cloneDummy: drop duplicate <EC3k01> <PowerMeter01> <consumption: 16.311> ***
2014.05.05 21:34:14.611 2: cloneDummy: publish unique <EC3k01> <PowerMeter01> <power: 5.2>
2014.05.05 21:34:14.617 2: cloneDummy: publish unique <EC3k01> <PowerMeter01> <powerMax: 30.3>
2014.05.05 21:34:14.620 2: cloneDummy: publish unique <EC3k01> <PowerMeter01> <5.2>
2014.05.05 21:34:14.749 2: cloneDummy: publish unique <EC3kWK> <PowerMeterWK> <consumption: 15.241>
2014.05.05 21:34:14.752 2: cloneDummy: publish unique <EC3kWK> <PowerMeterWK> <power: 0>
2014.05.05 21:34:14.755 2: cloneDummy: publish unique <EC3kWK> <PowerMeterWK> <powerMax: 1564.7>
2014.05.05 21:34:16.147 2: cloneDummy: publish unique <EC3kWM> <PowerMeterWM> <consumption: 22.885>
2014.05.05 21:34:16.149 2: cloneDummy: publish unique <EC3kWM> <PowerMeterWM> <power: 0>
2014.05.05 21:34:16.150 2: cloneDummy: publish unique <EC3kWM> <PowerMeterWM> <powerMax: 2090>


Wie weit die Duplikate zeitlich auseinander liegen dürfen, um als solche erkannt zu werden, wird über das global attribut dupTimeout (in sec., default 0,5) gesteuert. Das Modul läuft gerade im Dauertest, die ersten paar Stunden habe ich aber noch keine Probleme feststellen können.

Grüße,
Andy.

Edit: Anhang gemäß Nachricht #117 entfernt
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1