Attribute-Array an Modul übergeben

Begonnen von Guest, 19 April 2011, 08:38:56

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

ich habe gerade begonnen, auf der Basis von 91_DbLog.pm einen
Datenbanklogger für volkszaehler.org zu schreiben; das funktioniert
exemplarisch für einen Kanal auch schon ganz gut. Nun mein Problem: an
irgendeiner Stelle müssen die Kanalnamen von FHEM auf IDs/UUIDs von
Volkszaehler.org umgesetzt werden. Dazu habe ich folgende Möglichkeiten
gesehen:

- in der SQL-Datenbank - hat aber den Nachteil, dass man es von FHEM aus
nicht editieren kann, und viele unnötige SQL-Abfragen machen muss (außer
man Cached die Ergebnisse)

- in der db.conf-Datei - hat auch den Nachteil, dass man es von FHEM
nicht ändern kann.

- direkt in der fhem.cfg, ich habe das mal exemplarisch so gemacht:

define vzdblog VolkszaehlerDbLog /etc/fhem/db.conf KS300:temperature:.*
attr   vzdblog map KS300:temperature:.* 7
attr   vzdblog map KS300:humidity:.* 11
attr   vzdblog map KS300:rain:.* 12
attr   vzdblog map KS300:israining:.* 13
attr   vzdblog map KS300:wind:.* 15

Damit habe ich aber nur ein attribute "map", das immer überschrieben
wird. Da ich ca. 35 solcher Map-Zeilen bräuchte, ist es nicht sinnvoll,
die alle in einer Zeile zu übergeben. Ich bekomme in der AttrFn zwar
alle Aufrufe mit, habe aber das Problem, sie in der Funktion so zu
speichern, dass ich in der NotifyFn noch dran komme.

Kann mir da mal jemand einen Tipp geben, wie ich da am besten weitermache?

Sobald ich das mit mehrern Kanälen am laufen habe, poste ich hier mal
ein paar Screenshots.

Grüße,
Thomas

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Hallo Thomas,

im Modul 95_PachLog.pm musste ich auch eine Art Mapping umsetzten.
Z.B. das READING "temperature" nach "Celsius,C,derivedSI,Temperature".
Schau dir mal die Funktion "sub PachLog_ReadingToUnit($$)" ev. hilft
hier das ja weiter...


Schöne Grüße

Axel

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

> - in der db.conf-Datei - hat auch den Nachteil, dass man es von FHEM
> nicht ändern kann.

Nicht direkt, aber fuer die Kommandozeile koennte man ein Befehl dafuer
bauen (siehe z.Bsp 99_XmlList.pm/98_structure.pm).
Und FHEMWEB koennte man leicht erweitern, dass auch weitere Dateien in der
"Edit Files" Liste auftauchen.


> Damit habe ich aber nur ein attribute "map", das immer überschrieben
> wird.

Man koennte den Spiess umdrehen, und das "map" Attribut jedem der betroffenen
Geraete zuordnen. Dann muesste VolkszaehlerDbLog eine Schleife ueber alle
Geraete machen...

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On 04/19/2011 01:02 PM, Rudolf Koenig wrote:
>> - in der db.conf-Datei - hat auch den Nachteil, dass man es von FHEM
>> nicht ändern kann.
>
> Nicht direkt, aber fuer die Kommandozeile koennte man ein Befehl dafuer
> bauen (siehe z.Bsp 99_XmlList.pm/98_structure.pm).
> Und FHEMWEB koennte man leicht erweitern, dass auch weitere Dateien in der
> "Edit Files" Liste auftauchen.

Die separate db.conf-Datei war ja ursprünglich gedacht, das Passwort der
Datenbank geheimzuhalten. Ich könnte natürlich einfach eine zusätzliche,
editierbare Map-Datei machen.

>> Damit habe ich aber nur ein attribute "map", das immer überschrieben
>> wird.
> Man koennte den Spiess umdrehen, und das "map" Attribut jedem der betroffenen
> Geraete zuordnen. Dann muesste VolkszaehlerDbLog eine Schleife ueber alle
> Geraete machen...

Erst wollte ich sagen: genial einfache Lösung! Aber dann müsste ich ja
den Code aller Geräte ändern und ein neues Attribut hinzufügen, das
fände ich aus Gründen der Wartbarkeit ziemlich unschön.

Trotzdem danke für die Tipps.

Thomas

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

> Erst wollte ich sagen: genial einfache Lösung! Aber dann müsste ich ja
> den Code aller Geräte ändern und ein neues Attribut hinzufügen, das
> fände ich aus Gründen der Wartbarkeit ziemlich unschön.

Ist nicht noetig, es gibt "attr global userattr". Oder man macht es aufwendig
wie 98_structure.pm.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On 04/19/2011 02:27 PM, Rudolf Koenig wrote:
>> Erst wollte ich sagen: genial einfache Lösung! Aber dann müsste ich ja
>> den Code aller Geräte ändern und ein neues Attribut hinzufügen, das
>> fände ich aus Gründen der Wartbarkeit ziemlich unschön.
>
> Ist nicht noetig, es gibt "attr global userattr". Oder man macht es aufwendig
> wie 98_structure.pm.

Hörte sich sehr gut an, bis ich es ausprobiert habe. Beim KS300 brauche
ich für jeden Kanal (Wind, Temperatur, Feuchte, Regen...) ein mapping,
da wird es mit "attr global userattr" auch schon wieder unschön. Beim
FHT80 ist es genauso.

Ich muss da wohl nochmal in mich kehren und mir etwas anderes überlegen.

Thomas

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.