Autor Thema: Anfrage Erweiterung der Verzeichnisstruktur  (Gelesen 6326 mal)

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2546
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #75 am: 10 Juni 2020, 22:32:56 »
Hi,

Meine Meinung, die muss nicht korrekt sein muss es in ein Package httpmod.
Da wir noch nicht wissen was es da so alles gibt könnte man z.B. mit einem attr.pm starten:

./lib/FHEM/httpmod/attr.pm

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1251
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #76 am: 10 Juni 2020, 22:54:56 »
Ich bin gerade sehr involviert darin, meinen ganzen Code umzustellen (MyUtils, aber auch die Module) - ich bin auch schon darüber gestolpert, dass ich nun Funktionen habe, die ich generell im FHEM-Namespace sehen würde und nicht im Modul-Namespace.

Ich würde so eine Funktion unter FHEM::Attributes::Utils (also lib/FHEM/Attributes/Utils.pm einsortieren, wenn es eine generelle Funktion sein soll. Ansonsten vielleicht in FHEM::WWW::HTTPMOD? HTTPMOD kann ohne FHEM ja nicht existieren, oder?
« Letzte Änderung: 10 Juni 2020, 22:56:32 von Christoph Morrison »

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25985
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #77 am: 10 Juni 2020, 23:02:47 »
FHEM::Attributes::Utils
Finde ich Recht passend.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2546
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #78 am: 11 Juni 2020, 00:28:19 »
Hi,

ich habe eine kleine Hilfsbibliothek für das verwalten von interen Timer erstellt.
Würde das Package wie folgt verorten: FHEM::Timer::Helper;

https://github.com/fhem/lib_timer/tree/master/lib/FHEM/Timer


Vielleicht gibt es ja auch noch Zukünftig weitere Packages unterhalb von Timer.

Würde das ganze dann auch gerne ins SVN committen, damit es zur Verfügung steht.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25985
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #79 am: 11 Juni 2020, 06:29:07 »
Hi,

ich habe eine kleine Hilfsbibliothek für das verwalten von interen Timer erstellt.
Würde das Package wie folgt verorten: FHEM::Timer::Helper;

https://github.com/fhem/lib_timer/tree/master/lib/FHEM/Timer


Vielleicht gibt es ja auch noch Zukünftig weitere Packages unterhalb von Timer.

Würde das ganze dann auch gerne ins SVN committen, damit es zur Verfügung steht.

Grüße Sidey

Wie wäre es mit

FHEM::Automation::Timer::Helper
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2546
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #80 am: 11 Juni 2020, 10:38:42 »
Wie wäre es mit

FHEM::Automation::Timer::Helper

Ginge natürlich auch, aber was bedeutet die Kategorie Automation. Was gibt es denn noch auf dieser Ebene und sind Timer immer eine Unterkategorie von Automation ?

Für mich im Moment noch wenig greifbar.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1251
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #81 am: 11 Juni 2020, 10:38:43 »
Für was auch immer ihr euch entscheidet, ich hätte zwei Kandidaten, von denen ich glaube, dass sie reserviert sein sollten:

FHEM::MyUtils für den Code, den Benutzer aktuell in ihrer 99_MyUtils.pm haben
FHEM::Core für den Kern von FHEM, der aktuell in erster Linie in der fhem.pl schlummert.

Ich habe meine Sachen wie folgt einsortiert (WiP, deshalb mag sich das noch ändern):

FHEM::MyUtils, wie oben geschrieben liegt da nun der Code, der früher in 99_MyUtils lag.
FHEM::Test::Mock - Gemockte FHEM-Funktionen für meine Unit-Tests
FHEM::Weather::Buienradar, FHEM-spezifischer Teil von Buienradar
FHEM::WWW::Serienjunkies::Latest, FHEM-spezifischer Teil meines Testmoduls
FHEM::App::* - Kommandozeilen-Skripte wie der Modul-Generator, log2db, Generator für Control-Files, etc.
FHEM::Misc::FertilityCalendar - Fruchtbarkeitskalender für FHEM
etc. pp.

Aktuell überlege ich noch, was ich mit den Nicht-FHEM-spezifischen-Teilen mache. Hab mir jetzt mal einen PAUSE-Account beantragt und ggf. schiebe ich den dann direkt ins CPAN. Wir müssen dann die Nutzer dann halt dahin gehend erziehen, dass sie cpanm ausführen können bzw. legen ihnen einen Installer nahe, der notwendige Module installiert (so wie der von Loredo). Wenn wir diese Hürde mal genommen haben, könnte die Funktionalität von FHEM deutlich umfangreicher werden, denn es gibt im CPAN wirklich hunderte interessanter Module, die letztlich nur einen Wrapper für FHEM brauchen, z.B. Sendungsverfolgungen, die ganzen Google-Services, Wikidata, etc. etc.

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1251
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #82 am: 11 Juni 2020, 10:41:01 »
Beim Schreiben meines Postings eben habe ich noch mal über die Frage von Stefan nachgedacht und ich glaube, ich würde es eher unter FHEM::Core::Attributes::Utils einsortieren, aus den eben beschriebenen Gründen (Attribute sind ein Kernfeature von FHEM).

Die Timer-Lib von Sidey würde ich unter FHEM::Core::Timer::Helper einsortieren, denn - gleiche Argumentation - Timer sind Kernfeature von FHEM.

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25985
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #83 am: 11 Juni 2020, 10:44:10 »
Stimme Dir zu, ist wirklich besser da aufgehoben.

@Stefan
Automation ist in meinen Augen sowas wie notify, DOIF oder auch für mich relevant AutoShuttersControl
https://git.cooltux.net/FHEM/mod-AutoShuttersControl
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2546
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #84 am: 11 Juni 2020, 10:44:35 »

FHEM::Test::Mock - Gemockte FHEM-Funktionen für meine Unit-Tests

Ich habe die bislang immer in meine Testscript hinterlegt.
Das in ein Package packen ist sicher gut, gehört das aber in den FHEM oder in einen Test Namespace ?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1251
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #85 am: 11 Juni 2020, 10:54:12 »
Ich habe die bislang immer in meine Testscript hinterlegt.
Das in ein Package packen ist sicher gut, gehört das aber in den FHEM oder in einen Test Namespace ?

Es gehört halt in einen Test-Namespace der exklusiv zu FHEM gehört (zumindest so lange z.B. ReadingsVal($#!%) noch in fhem.pl und nicht in FHEM::Core::Readings liegt ;-) )

Test::Mock ist außerdem ein CPAN-Modul und ggf. kollidiert hier etwas.

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1251
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #86 am: 11 Juni 2020, 11:00:09 »
( Ich habe übrigens im Github mal eine Doku angefangen, die dann später inschallah auch ins Wiki soll): Namespaces

Ihr seid natürlich eingeladen zu forken und PR'en)
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline Sidey

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2546
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #87 am: 11 Juni 2020, 15:31:53 »
Es gehört halt in einen Test-Namespace der exklusiv zu FHEM gehört (zumindest so lange z.B. ReadingsVal($#!%) noch in fhem.pl und nicht in FHEM::Core::Readings liegt ;-) )

Ich war eher am Überlegen ob es nicht eher Test::FHEM::Mock anstelle FHEM::Test::Mock.

Wenn ich dann etwas außerhalb Fhem teste wäre das auch in Test::irgendwas::...


Gruß Sidey

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa

Offline KernSani

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3389
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #88 am: 11 Juni 2020, 17:41:35 »
Hallo zusammen,
nachdem ich gerade eine kleine myUtils Routine schreiben wollte, dachte ich mir ich probiere das mal in der neuen Struktur. Funktioniert auch wunderbar, allerdings habe ich ein kleines Problem (wahrscheinlich stelle ich mich einfach dumm an):
* Beim erstmaligen "reload 99_myUtils" wird brav meine FHEM::myUtils::meineSub geladen
* nach einer kleinen Änderung von meineSub und erneutem "reload 99_myUtils" zieht die Änderung leider nicht
* Ein reload lib/FHEM/... geht nicht, weil reload slashes verbietet.
Wie bekomme ich jetzt meine geänderte sub ge-reloaded?
Danke,
Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 22968
Antw:Anfrage Erweiterung der Verzeichnisstruktur
« Antwort #89 am: 11 Juni 2020, 17:56:11 »
Reload laedt nur "FHEM-Module" aus dem FHEM Verzeichnis.
Wenn diese wiederum andere Dateien laden, dann muss das reload dieser Dateien mit "eigenen" Mitteln passieren, z.Bsp. mit
{ do "lib/FHEM/myUtils/meineSub.pm" }

Das gilt auch fuer HttpUtils.pm, wenn man es erneut reinladen will, insofern gibt es keine Sonderbehandlung.

 

decade-submarginal