Hallo ich lese mir gerade das hier durch https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung ... meine Frage
was genau macht das CommandSetReading ? irgendwie finde ich dazu keine Infos (Ich kanns mir zwar vorstellen was es macht, aber was ist der vorteil von der version usw. usf)
danke für infos :D
Es macht dasselbe wie 'fhem "setreading <device> <reading> >value>"'. Im Prinzip gilt daher auch die cref zu diesem Befehl...
Vorteil ist der, dass du dir eben den Umweg über den fhem-Aufruf sparst. Ergibt sich aus der fhem.pl. Im Kontext eines Moduls würde ich aber eher readings.*update-Funktionen verwenden, das ist mWn direkter und man kann auch damit das Triggern verhindern.
danke schon mal
welche readings.*update meinst du?
Die DevelopmentModuleIntro kennst du?
Siehe die hier gelisteten Funktionen:
https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Readings
ah stimmt die kenne ich, nur bin ich mir nicht sicher was ich da als $hash übergeben muss?
Den Geräte-Hash, zu dem das zu aktualisierende Reading gehört.
(Wenn ich Funktionen verstehen will, die mir unbekannt sind (das sind viele!), schaue ich in der Regel in den Quelltext von irgendeinem Modul, das ich entweder nutze/Geräte für habe) oder sonstwie verwandt/bekannt ist, und/oder die fhem.pl. Überraschend oft wird es dann klarer...)
muss ehrlich sagen da habe ich leider etwas zuwenig Ahnung von perl, hätte mir da ja einiges angeschaut aber irgendwie wird da fast überall (was ich so gesehen habe) der $hash als parameter übergeben.
Kann ich diese Funktionen überhaupt verwenden um die readings von einem dummy device zu aktualisieren?
Welche Funktion jetzt? Command.* nimmt den Gerätenamen, meine ich, die readings.*-update-Funktionen brauchen den Gerätehash.
Dabei ist es üblich, den übergebenen Parameter in die Variable $hash zu packen.
"defs" ist dein Stichwort, um vom Gerätenamen (den hat auch ein Dummy) auf den Hash zu kommen, siehe z.B. https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/10_MYSENSORS_DEVICE.pm#L461. Das machen auch die Command.*-Funktionen on fhem.pl so, wenn ich das richtig im Kopf habe.
ah super danke, genau diese eine zeile habe ich gesucht :D