Erst einmal antworten
1) User-readings: Die Einlassung verstehe ich nicht. Klar funktionieren User-readings nur mit einem Trigger. Das ist, wenn nichts angegeben, jegliches Event welches durch die "eigene" entity ausgelöst wird. Dann kann man das noch einschränken - liegt in der Verantwortung des Users. Ich denke nicht , je etwas anderes behauptet zu haben. Das User-Reading wird vom kernal ausgefüllt und kann dann schon sparsam sein.
=> ein Orginal-Reading ist immer "besser" - WENN es zu Verfügung steht.
Ah, jetzt habe ich deinen Punkt: wenn das orginal-Reading kein Event auslöst wird auch das User-Reading nicht ausgeführt. Guter Punkt - scheint korrekt. Werde ich beachten!
Aber: ich habe Orginal-Readings welche SEHR heftig sind und welche ich nicht brauche. Möglich, dass es jemanden interessiert. Also wäre es cool, dies auf User-Ebene abschalten zu können. Es handelt sich um einen seltenen, aber ärgerlichen Fall. Nachdem es bi mir nur auf eine Entity mit einem Reading zutrifft kann man es aushalten....
=> EIGENTLICH... will ich einen Glättungs-algo welcher das übliche Rauschen der Messwerte filtert. WIE man das user-geeignet implementieren KÖNNTE (alles konjunktiv) habe ich noch nicht überlegt. Ich will das orginal schon sehen - allerdings will ich nur das geglättete loggen (falls ich es loggen will). Trigger kann ich auch auf das geglättete auslösen.
==> ich werden mir einmal Gedanken machen, wie ich es lösen könnte - INCL triggeroption! logisch.
Und dass ".*" (für den Rest) ...
super a) kann man das nachlesen? b) Dokumentation ist der code von event-on-change-readings? Nix "lesbares"? wäre schade, wenn hier Möglichkeiten bereit gestellt werden, welche nur im Code nachzuvollziehen sind. Und ohne Spec besteht die Gefahr, dass es beim nächsten Update nicht mehr geht, weil der Autor es anders "gemeint" hat und es kein "Feature" war.
@Martin: Wenn wir schon beim Thema Effizienz im Coden sind: in CUL_HM finden sich ziemlich viele doppelte Quotes. Why?
Hm... vielleicht habe ich nicht gut nachgelesen, bei meiner Perl-selbst-lern phase. "hallo" ist weniger effizient als 'hallo' ? ich hatte es in meiner Anfangsphase einmal versucht, auszumessen - ohne erkennbare performance-änderung. Ich nehmen es gerne auf und werde es korrigieren.
Ich habe so die Vermutung, dass alles die hier was geschrieben haben alles andere als normale User sind.
in dieser Ecke des Forums erwarte ich, dass a) selbstverständlich jeder etwas posten kann - aber b) es um substantielle inhaltliche Fragen von fhem geht, also die Fragen a programmer und super-user geht.
DB...fhem.cfg
ich betrachte aktuell nur das Logging in die datenbank statt in files. Die konfiguration habe ich immernoch in files und bleibe weiter dabei. Ich sehe hier keinen Vorteil.
Grund: Logs werden gerne "ausgewertet" (z.B. Grafiken) und hierbei muss "gesucht" werden. Das kann, macht man es richtig - eine Datenbank effizient. Hier ist auch viel mehr "alarm". Es wird ständig geschrieben und gelesen. Die Datenmengen sind ganz anders - und wenn man nicht irgendwann stoppt wird die Datenbank riesig, da endlos fortgeschrieben wird. Hier suche ich Ansätze, wie ich das beherrschen kann und nicht beherrscht werde. Ich bin gelegentlich Nerd - Am Sofa mit Tablet bin ich User. Und mein Ziel ist, es von hier erfassen zu können.
Ich bin seit 40 Jahren Windows user ...will nimmt man halt eine andere.
nun - linux finde ich gerade an dieser Stelle prima -allerdings ist das nachinstallieren von Module tatsächlich umständlich und nicht mein Metier.
FHEM allerdings sollte vom OS weitgehend unabhängig sein. Perl ist Perl. Die Funktionen und expressions sind ein-eindeutig. Case-sensitiv ist ... geschmackssache. Ich finden es konsequent.
Egal, Geschmackssache.
Was aus meiner Sicht besser gepflegt und auch in einfacherer Sprache gepflegt werden sollte ist das Wiki
Wiki ist exterm unterschiedlicher Level. Und in der Tat wird der Level oft nicht unterschieden. User/Installation/Background/example,...
Ich bin tatsächlich ein Freund der guten alten Doku (so hatte ich auch einst den Anhang zu CUL_HM im Einsteiger-Doc geschrieben.
=> ICH muss bei jedem Dokument, welches ich schreibe, wissen für wen es ist. Programmer, nerd,user, anwender. Sonst kann ich die Sprache nicht treffen.
1) eine Doku sollte alle Optionen enthalten, welche angeboten werden. Um das Modul und dessen Doku "verständich" zu halten stellt sich die ERSTE Frage für den Programmer: brauche ich wirklich alle optionen? Ist da notwendig oder sinnvoll? Welche Optionen sind "expert-level" und können von "user" ignoriert werden,.... das ist, was ich hier ansprechen will/wollte.
Es gibt ewig lange Threads ... user dokumentiert ist.
ich bin zu 120% bei dir: Grundlegende Erkenntnisse aus Threats MÜSSEN in die Doku Einzug halten. Es ist ... fraglich... ob ein ein Threat als Doku gelten soll. Hier werden dinge diskutiert, wieder verworfen, wieder eingeführt. Das will keiner lesen, ich will wissen, was hier und jetzt angesagt ist.
Ich habe mich in den letzten Tagen zB durch die readingsGroup gequält, kleineste Fehler im Code und nichts geht
Code-fehler sind code-fehler. Ich kenne deine Fehler nicht. Die Frage ist allerdings, welche Hilfestellung readings-group zum debuggen liefern könnte. Hier wäre ein tutorial für user sicher hilfreich. Mir fehlen auch SEHR häufig GUTE Beispiele für die Anwendung von Attributen und Modulen. Das muss ich dann experimentell ermitteln - schade
attr Tankstelle devStateIcon {ui_Table::ring(ReadingsVal("$name","Diesel",0),1.00,1.40,120,0,"Diesel",90,undef,2)."
was bedeuten die gnazen Zahlen da hinten ? man müsste ewig lesen um zu wissen was dies bedeutet, mit probieren kommt man da kaum weiter
ich sehe das "?" jetzt nicht in diesem Statement. Allerdings: Perl-code ist für Fortgeschrittene, genauso wie regexp. Das eignet man sich an der muss darauf verzichten. Aber auch das ist, was ich hier meine: der "simple-admin-User" sollte ohne Perl/SQL/regexp Lösungen finden können. der Advanced user beherrscht Perl - zumindest grundsätzlich und kann coolere Dinge einbauen. und der Nerd kann wie immer alles und coole/irre/fantastische/eigene Dinge implementieren.
ich würde mir so was wünschen wie dies hier
1.00 = Spritpreis, 1.40= maximaler Preis, 120 = Farbe
verstehe ich - ist sicher machbar. Ich kenne jetzt die Funktion nicht und gehe davon aus, dass es eine generische Funktion ist, nicht nur für Spritpreise. Die Funktion "ring" muss also sauber und einfach erklärt sein (ist sie das) - und zwar an einer Stelle, an der man danach sucht. So in der Art (aus der Hüfte, ich kenne sie nicht)
rng(value,param2,upperLevel,color,param5,param6,label,param8,param9)
value : value to be displayed - must be a number
param2: ???
upperLevel : upper level. If value is above this limit the color changes - oder so etwas
color: display color if below upperLevel
param5 :??
param6:??
label: label to be displayed
param8 :??
param9 :??
so etwas geht in die Richtung API-definition. natürlich wäre eine Beschreibung, was es grundsätzlich macht hilfreich. Das sollte für jeden Funktion vorliegen, welche eine User zu Verfügung gestellt wird. Sicher habe ich hier auch Leichen im Keller

also nicht böse sein.
wir äußern hier unsere Ansichten - konstruktiv. Wie könnte man hier böse sein. Auch meine Anmerkungen sind konstruktiv gemeint - und nie alternativlos.
das haben wir schon immer so gemacht, da war mir rausgerutscht : das heisst aber noch lange nicht das dies richtig war
eine der dümmsten Bemerkungen, welche nicht nur du zu hören bekommst. Auch gerne "früher waren wir noch schlechter" - zumindest inhaltlich.