Wie man sich mit userattr ins Knie schießt

Begonnen von Dr. Boris Neubert, 28 September 2014, 13:46:42

Vorheriges Thema - Nächstes Thema

rudolfkoenig

ZitatAuch ist nicht offensichtlich, dass einzelne Devices weitere globale Attribute hinzufügen können.
Entweder habe ich diesen Satz nicht verstanden, oder ich habe was unbeabsichtigtes implementiert. Kannst Du es bitte anders formulieren?

Wenn du ein Doku-Patch schickst, dann baue ich das ein.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 03 Oktober 2014, 09:08:28
Entweder habe ich diesen Satz nicht verstanden, oder ich habe was unbeabsichtigtes implementiert. Kannst Du es bitte anders formulieren?

Ich meine damit, dass der Leser aus der Dokumentation nicht erkennen kann, dass die an allen Devices vorhandenen Attribute noch davon abhängen, ob er Geräte definiert hat, die über die standardmäßig vorgegebenen Attribute hinaus neue Attribute für alle Geräte definieren.

Die Implementierung ist in Ordnung.

Ich schreibe mal was dazu auf.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatKannst Du als Modulverantwortlicher das Modul 98_structure bei Gelegenheit so anpassen, dass es seine Attributorgie ab sofort auf sich selbst beschränkt?

Habe 98_structure.pm so umgebaut, dass die 3 Attribute nur bei betroffenen Geraeten hinzugefuegt werden.
Die globalen Attribute koennen _nach_ einem Neustart entfernt werden.
Habe es mit fhem.cfg.demo getestet, waere aber fuer ausfuehrlichere Tests dankbar.

In fhem.pl gibt es jetzt auch ein addToDevAttrList, ich meine 31_LightScene.pm koennte davon auch profitieren.

Dr. Boris Neubert

Zitat von: rudolfkoenig am 03 Oktober 2014, 09:08:28
Wenn du ein Doku-Patch schickst, dann baue ich das ein.

Anbei die Rahmen für die Commandref (volle Datei, kein Patch). Nachdem ich meinen inneren Schweinehund niedergekämpft habe, sogar mit deutscher Übersetzung.

M.E. können die Beschreibungen von IODev und eventMap bei FS20 gelöscht werden und stattdessen ein Verweis auf #IODev und #eventMap angebracht werden.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

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

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

rudolfkoenig


Dr. Boris Neubert

Zitat von: rudolfkoenig am 03 Oktober 2014, 12:57:10
In fhem.pl gibt es jetzt auch ein addToDevAttrList.

Ist beim Einbau etwas schief gegangen? Die globalen Attribute, die FHEMWEB einbringt, sind weg. Stattdessen ist eine 1 in der Attributeliste.

Nachstellbar z.B. mit dieser Konfiguration:

attr global statefile /path/to/fhem.save   
attr global verbose 5                 
attr global port 7072 global
attr global modpath /path/to/fhem
define MyLog FileLog /path/to/my.log .*

define ui FHEMWEB 8083 global
attr ui stylesheetPrefix dark
attr ui room UI

define W Weather  2122541 1800 de
define WLog FileLog /users/neubert/Development/Perl/fhem-data/W.log W:T:.*


und

attr WLog ?

Grüße
Boris


Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Danke fuer den Hinweis, habs gefixed, und etwas laenger getestet, jetzt scheint es zu funktionieren.
Damit moeglichst wenig Leute ihren Config zerschiessen, habe ich es fuer update zur Verfuegung gestellt.

Markus Bloch

Hallo zusammen,

aktuell kommt beim Start von FHEM bei mir immer:

Undefined subroutine &main::addToDevAttrList called at /usr/local/FHEM/share/fhem/FHEM/98_structure.pm line 78, <$fh> line 843.


Letzte Zeilen im Log:

2014.10.09 20:22:28.890 5: Cmd: >define Gesamtes_Wohnzimmer_Licht structure Wohnzimmer LED_Kueche Licht_Wohnzimmer Licht_Kueche LED_Serienregal LED_Filmeregal LED_TV_Board<
2014.10.09 20:22:28.891 5: Loading /usr/local/FHEM/share/fhem/FHEM/98_structure.pm


Dannach stürzt FHEM mit der oben genannten Meldung ab.

Heute update gemacht und nun startet FHEM nicht mehr.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

rudolfkoenig


Markus Bloch

Hmm, stimmt.

Das neue update Modul speichert fhem.pl nun in einem anderen Verzeichnis. Da muss ich wohl einen Symlink setzen.

Vielen Dank

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Dr. Boris Neubert

Zitat von: Markus Bloch am 09 Oktober 2014, 21:12:29
Das neue update Modul speichert fhem.pl nun in einem anderen Verzeichnis. Da muss ich wohl einen Symlink setzen.

:o  Was? Hast Du eine vom Standardlayout abweichende Situation der Dateien?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Markus Bloch

Ja, leider. Ich verwende die Synology-NAS-Pakete von Martin Fischer. Dieses erzeugt auf meiner DS413j  folgende Struktur:



/usr/local/FHEM/app/scripts/fhem.sh

/usr/local/FHEM/bin/fhem.pl    (alt)
/usr/local/FHEM/share/fhem/fhem.pl (neu)

/usr/local/FHEM/etc/fhem.cfg

/usr/local/FHEM/share/fhem/FHEM/00_CUL.pm
/usr/local/FHEM/share/fhem/FHEM/00_FBAHA.pm
/usr/local/FHEM/share/fhem/FHEM/00_FHZ.pm
/usr/local/FHEM/share/fhem/FHEM/00_MAXLAN.pm
/usr/local/FHEM/share/fhem/FHEM/00_OWX.pm
/usr/local/FHEM/share/fhem/FHEM/00_ZWDongle.pm
/usr/local/FHEM/share/fhem/FHEM/02_RSS.pm
/usr/local/FHEM/share/fhem/FHEM/10_CUL_HM.pm
.....

/usr/local/FHEM/share/fhem/www/ ....

/usr/local/FHEM/var/log/*.log



Das alte update Modul hat fhem.pl an der alten, ursprünglichen Stelle immer brav aktualisiert. Nun allerdings wird fhem.pl unter /usr/local/FHEM/share/fhem/fhem.pl abgelegt.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

Zitat von: Markus Bloch am 09 Oktober 2014, 22:05:26
Das alte update Modul hat fhem.pl an der alten, ursprünglichen Stelle immer brav aktualisiert. Nun allerdings wird fhem.pl unter /usr/local/FHEM/share/fhem/fhem.pl abgelegt.

Das neue update Modul verwendet den modpath für die Zielbestimmung:


  my $root = $attr{global}{modpath};
...
    return if(!upd_writeFile($root, $restoreDir, $fName, $remFile));


Zitat von: Markus Bloch am 09 Oktober 2014, 21:12:29
Da muss ich wohl einen Symlink setzen.

Ich denke, damit schaffst Du in diesem speziellen Fall, wo die fhem.pl komplett ausserhalb der fhem-Struktur liegt, die einfachste Lösung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig