Hi zusammen,
mich würde mal interessieren wie ich am sinnvollsten meine Config aufbauen könnte, momentan include ich kleinere Konfigurationen so:
#
# fhem System configs
#
include ./FHEM/fhem_interfaces.cfg
include ./FHEM/fhem_dashboard.cfg
include ./FHEM/fhem_logging.cfg
include ./FHEM/fhem_devices.cfg
#
# fhem Connair configs
#
include ./FHEM/fhem_connair.cfg
#
# fhem AirPi configs
#
include ./FHEM/fhem_airpi.cfg
#
# fhem Other configs
#
include ./FHEM/fhem_weather.cfg
include ./FHEM/fhem_kodi.cfg
include ./FHEM/fhem_wol.cfg
include ./FHEM/fhem_avr.cfg
include ./FHEM/fhem_notifications.cfg
Meine Geräte definiere ich mit raumPositionGerät[_modul], also z.B. livingroomTvStandHtpc, livingroomTvStandHtpc_xbmc und Notifys dann mit livingroomTvStandHtpcOn_notify.
Bin mit meinen Definitionen aber nicht zufrieden und wollte mir ein paar andere Ideen holen und wollte mich daher mal von euch inspirieren lassen.
Ich verliere bei meiner Variante manchmal einfach den Überblick und zusätzlich ist es teilweise doch manchmal inkonsistent, grade wenn ich notify-Module erstellen will die z.B. keinem Gerät zugeordnet werden können, ich bin mir auch nicht sicher ob ich meine notify-Module nicht vielleicht in einer eigenen Konfig definieren sollte, weil meine fhem_connair.cfg wird immer größer und unübersichtlicher.
Wie managed ihr die Übersicht in eurer Config?
Hallo shawly,
das mit der Config ist so eine Glaubenssache, ich fasse meine nicht an, also habe ich auch keine include, sonst landen nachher Attribute oder Devices an einer Stelle wo sie stören und es kommt zu Fehlern, die man dann nicht so leicht finden. Ich lege alle Devices über autocreate, Kommandozeile oder Perl-Sub an.
Da ich viel mit Wildcards arbeite ist eine genaue Identifikation des Devices schon wichtig, viel lässt sich über TYPE und room abfangen, sodass mir der Name beinahe egal ist, trotzdem gibt es einige Regeln.
Beim EIB sind die Gruppenadressen entscheident. z.B. alles was mit EIB_1... ist, hat etwas mit Beleuchtung zu tun, EIB_14.. ist dann Bürobeleuchtung, EIB_15.. Hallenbeleuchtung.
Homematic benenne ich nicht um, da interessiert mich nur das model, channel und room, sodass ich weiß, was es ist.
notifys benutze ich für Aufgaben die viele Devices betreffen, dort werte ich dann nur das Event aus und die verarbeitung geschieht via Perl, meine Namen sind dann immer so Aufgebaut: ntfy_Funktionsbeschreibung bei einem Fenster z.b. ntfy_window In Perl geschieht dann die auswertung. z.B. ist ein Fenster geöffnet, wird die Klimaanlage im entsprechenden Raum ausgeschaltet, der Zustand der Klimaanlage wird in ein Reading geschrieben. Wird ein fenster geschlossen, sind alle Fenster in diesem Raum nun geschlossen? Wenn ja, wird die Klimaanlage wieder auf den alten Zustand gesetzt.
Dummys beginnen immer mit einem d_
Structures mit einem struct_
readingsGroup mit einem rg_ z.b. rg_Inhalt_Raum
Meine Empfehlung, geh über Wildcards, Stichwort FILTER in der Commandref. Damit kannst du eine Funktion sehr leicht auf andere ähnliche Funktionen übertragen.
Grüße
igami
Ich mache es in etwa so:
http://www.fischer-net.de/hausautomation/fhem/22-fhem-devicenamen.html
Vor DOIFs setze ich i.d.R. ein do_
Moin,
bei mir sieht es mit meinem Homematic-Gedöns so aus:
Zimmer_Zimmernummer_Gerät, also z.B. wz_105_rollo (wz=Wohnzimmer).
Bei mehreren gleichartigen Geräten kommt noch ne lfd. Nummer dahinter, also dann wz_105_rollo_1 usw.
Räume heißen bei mir dann 105_Wohnzimmer usw.
Dummies fangen immer mit du_ an, DOIFs mit di_ ... andere Sachen hab ich noch nicht eingebaut.
@igami
Zitatviel lässt sich über TYPE und room abfangen
Darf ich hier mal kurz nachhaken?
Ich habe im Erdgeschoss zur Süd-/Westseite z.B. folgende Rollos (blindActuator): ez_105_rollo_1, ez_105_rollo_2 und ez_rollo_3. Alle sind dem Raum 105_Esszimmer zugeordnet. Wie könnte ich denen dann über den Raum zusammen einen Schaltbefehl erteilen?
Gruß
Andreas
set room=105_Esszimmer:FILTER=subType=blindActuator open
siehe devspec in der commandref.
Danke marvin,
war mir einfach nach der Lektüre der commandref nicht ganz sicher, ob es nun FILTER=blindActuator oder FILTER=subType=blindActuator sein muss...
So, genug offtopic von mir...
Gruß
Andreas
Das steht dort aber sehr eindeutig.
Zu den Devicenamen: ich finde es wichtig, dass ich die Namen auch wieder erschließen kann. Ich habe etwa 500 Devices und will nicht immer den Namen heraus suchen müssen, wenn ich etwas neues probiere. Deshalb ist meine Namensstruktur so aufgebaut, dass ich den Devicenamen einfach logisch erchließen kann. Was jedoch für den einzelnen am besten ist, muss eigentlich jeder selbst herausfinden.
Eine Struktur, die die Etage, den Raum und die Art des Devices enthält, kann nicht schaden.
Neben den Räumen und Funktionen sind ja auch die Interfaces wichtig. Daher mache ich es auch ähnlich wie von den meisten hier beschrieben:
Typ_Location_Beschreibung
Wobei ich zwischen Raum und Location unterscheide. So habe ich einen Raum 'Maschinenraum' wo ich die nicht alltäglichen Dinge, Hilfsdummys etc. ablege.
Leider bin ich bislang bei der Namensvergabe auch nicht wirklich konsequent gewesen, was mir nochmal einen Abend Arbeit verschaffen wird.
Ich bin ein großer Freund der Verteilung auf viele Konfigs und nutze das Include gerne. Bislang (fast) ohne Probleme. Allerdings kann man die anderen Konfig-Dateien nicht von der GUI aus editieren - was ich aber sowieso nicht nutze. Wichtig ist nur, die Dateirechte anzupassen, damit die GUI die Änderungen in die Konfig schreiben kann.
Dafür kann ich aber, bevor ich an etwas rum schraube genau die Konfig sichern und muss nicht in einer endlos langen Datei die Dinge die ich mit meinem gefährlichen Halbwissen kaputt gemacht habe raus suchen.
Zudem baue ich auch noch Kommentare in die Konfig ein - auch das hilft ungemein.
Niels
ZitatAllerdings kann man die anderen Konfig-Dateien nicht von der GUI aus editieren
Also ich kann das, mit meinen separaten configs (includes)...
Gruß
Andreas
Das kann man. Es ist bloß nicht notwendig, da man alles im Frontend konfigurieren kann. Die Strukturierung macht FHEM über rooms und groups.
Zitat von: marvin78 am 17 Juli 2015, 10:44:57
Das kann man. Es ist bloß nicht notwendig, da man alles im Frontend konfigurieren kann. Die Strukturierung macht FHEM über rooms und groups.
Mir fehlt wieder das "Daumen hoch" Smily - Ich frage mich die ganze Zeit: Ist das ne Anfängerfrage? Jemand der bei "include" ist, ist als Anfänger durch ::)
BTW: Ich liebe solche Kommandos wie
set RolloAZ.*
auf oder
set Licht.* off
oder
list nty.*
Das war für mich ein Kriterium für die Namensgebung.
Gruß Otto
Das scheint eine Philosophie Frage zu sein. Mein FHEM Interface ist zwar schick, aber ich nutze es gut wie garnicht. Ich konfiguriere alles über Files und direkt in den cfgs.
Das war ein Grund für mich FHEM zu nutzen und ist wohl aus der Gewohnheit andere Geräte/Linux/Entwicklung etc. geschuldet. Allerdings nutze ich SmartVisu und muss da eh "von Hand" schreiben. Da ist meistens der Editor auf dem linken Bildschirm für dei FHEM Configs und auf dem rechten Monitor die IDE mit SmartVisu.
Grüße
Grav
Das nutzen von includes und das Editieren direkt in der Config ist nichts für Anfänger. Deshalb hat Otto123 hier recht. Entweder hat die Frage hier nichts zu suchen oder Empfehlungen benzüglich Editieren der Config und include haben hier nichts zu suchen.
Mhh, vielleicht ist es doch eine Anfängerfrage, denn ich habe wirklich nach kurzer Zeit mit den Includes begonnen. Und sicher nicht, weil ich der Linux- oder FHEM-Guro bin. Eher ist es doch anders herum, mich überfordern zu viele (unformatierte) Konfig-Zeilen untereinander einfach - ich bin ja auch nicht mehr der Jüngste 8)
Die Genialität einer durchdachten Namensgebung und der damit möglichen Nutzung von regulären Ausdrücken habe ich etwas später das erste Mal zu schätzen gelernt. Daher habe ich persönlich auch eine striktere Namensvergabe auf meiner endlosen Agenda recht weit oben. So ist IMHO der sinnvolle Aufbau der Namensgebung durchaus ein Anfängerthema, denn jedes Device, jedes Event und jedes Log mehr potenziert die Abhängigkeiten, die einem bei Namensänderungen vor die Füße fallen.
Ich überlege auf Basis dieser Diskussion z.B. gerade, ob die Geräteart wirklich der richtige Beginn des Namens ist. Das könnte zu komplex werden:
set .*_Licht_.* off
Würde das überhaupt gehen?
nachdenkliche Grüße
Niels
set .*_Licht_.* off
ZitatWürde das überhaupt gehen?
Warum soll das nicht klappen?
Es wird an JEDES Device off gesendet das irgendwo im Namen _Licht_ hat.
Beispiele:
01_Licht_aussen
OG_Zimmer_Licht_1
EG_Licht_aussen
Fehlermeldungen im Logfile gibt es dann von Geräten die zwar _Licht_ im Namen haben aber mit off nichts anfangen können ;)
Edith: Meine Geräte heissen
für AktorenOG_Zimmer_Licht_Decke
EG_Terrasse_Licht
EG_Garten_Hauptanschluss
für SensorenOG_Zimmer_Bewegungsmelder
EG_Terrasse_Bewegungsmelder
Keller_Heizraum_Tuer
Notify beginnen mit n_ , at mit at_
Wie das in der fhem.cfg aussieht ist mir egal ;D
Aber alles ist nur Geschmacksache.
Zitat von: Puschel74 am 17 Juli 2015, 19:27:55
Wie das in der fhem.cfg aussieht ist mir egal ;D
Daumen hoch - mir auch 8)
Das ist auch eine Sache, die man erst zu schätzen lernt, wenn man eine komplexe Konfiguration hat. Ich möchte mich jedenfalls nicht um die 10000 Zeilen umfassende Config kümmern. Das würde ich auch mit noch so vielen Kommentaren und includes nicht mehr funktionieren. Also bin ich froh, dass FHEM sich darum kümmert und es mir egal sein kann, wo was steht. Ich habe mittlerweile die Config schon seit 2 Jahren nicht mehr direkt editiert und bekomme auch jede noch so komplexe Aufgabe sehr leicht gelöst.
Ja, das wird wohl so sein. Vermutlich ist die Konfig eher ein Thema für Anfänger, weil viele Beschreibungen halt auf diese verweisen. Macht sich ja auch viel besser wie endlose Screenshots. Das erweckt aber immer den Eindruck, dass man an die Konfig ran muss.
Die Macht der Kommandozeile erkennt man ebenso erst später, wie die vielen Möglichkeiten der GUI. Man weiß beim Einstieg ja gar nicht, wo man überall klicken und konfigurieren kann 8)
Wenn ich es genau betrachte, mache ich auch eigentlich inzwischen auch nichts mehr in der direkt in der Konfig. Am Anfang sah das schon anders aus.
veränderliche Grüße
Niels
Es ist genau umgekehrt: Die Config ist NICHTS für Anfänger. Dass viele der Beschreibungen auf die Config ist ein Fehler. Nichts weiter.
Ich habe noch nie die cfg editiert - aber am Anfang bin ich oft verzweifelt, weil ich gar nicht erkannt habe, dass das Beispiel sich auf die cfg bezog und nicht auf die Kommandozeile, da gibt es wohl subtile Unterschiede...
Bezüglich der Diskussion ob das eine Anfängerfrage ist oder nicht:
Aus dem Angepinnten Thread
"In welcher Gruppe sollte ich meine Fragen stellen"Zitat von: rudolfkoenig am 31 Mai 2013, 14:16:15
Falls ein erfahrener Anwender auf die Frage eine Antwort wissen sollte, dann hier, in Anfängerfragen.
Falls einem hier nicht geholfen werden kann, oder absehbar ist, dass nur der FHEM-Modul-Entwickler die Frage beantworten kann, dann sollte man die Frage in der passenden Gruppe melden, da viele FHEM-Modul-Entwickler nur ausgewählte Gruppen des Forums regelmäßig lesen.
Da ich mich auf keine Module beziehe und es auch kein "Expertenfragen" Board gibt hier, ist mein Thread meiner Meinung nach im Board Anfängerfragen völlig legitim. Zumal es mir hier ja wirklich nur um die Benennung von Geräten etc. und um die Strukturierung der Config geht, was mehr oder weniger, schon eine Frage sein kann, die man sich als Anfänger stellt.
ZitatJemand der bei "include" ist, ist als Anfänger durch ::)
Schon als ich FHEM installiert hab, habe ich includes benutzt, das macht mich nicht zum Experten, ich benutze FHEM jetzt seit ner Woche was mich meiner Meinung nach zu einem Anfänger macht, da ich mich noch lang nicht damit auskenne. Jemand der gerade den Führerschein gemacht hat weiß ja auch wie man Auto fährt, gilt aber trotzdem als Fahranfänger. :)
Ich arbeite mich auch nicht nach und nach durch das Wiki, die Commandref oder den FHEM Guide (http://fhem.de/Heimautomatisierung-mit-fhem.pdf), ich such mir halt was ich brauche.
Und mir wärs lieber, wenn die Leute die die Config noch nie angefasst haben und alles über das Interface machen, das für sich behalten, weil der Thread explodiert quasi schon durch den ganzen Offtopic.
Ich schätze ich werde meine Config auch etwas umbauen und in die Richtung Typ_Beschreibung_Nummer gehen, das kann man recht konsistent durchziehen auch für Notifys und ReadingGroups die ja im Prinzip keine Location besitzen.
Lieber shawly,
selbst auf die Gefahr hin, dass du mir wieder vorhältst, ich solle meine Beiträge für mich behalten, so hätte ich doch eine ganz konkrete Frage: wie gehst du vor, um deine Devices umzubenennen? Ich war da anfangs etwas "unstrukturiert" und möchte nun auch einige Devices umbenennen - Problem: wie stelle ich sicher, dass ich nirgends etwas übersehe?
Zitat von: shawly am 18 Juli 2015, 14:48:32
Und mir wärs lieber, wenn die Leute die die Config noch nie angefasst haben und alles über das Interface machen, das für sich behalten,
Du hast nach Tipps für einen sinnvollen Konfigurationsaufbau gefragt. Da viele es für "sinnvoll" erachten, die Struktur FHEM zu überlassen und als Orientierung die Struktur im Frontend zu nehmen, haben sie es hier gepostet. Wenn du keine Antworten auf deine Frage willst, dann sag das doch gleich. Bei mir ist das nun vermerkt: shawly will nur Antworten, die ihm gefallen. Auch gut.
Zitat von: marvin78 am 18 Juli 2015, 13:16:05
Es ist genau umgekehrt: Die Config ist NICHTS für Anfänger. Dass viele der Beschreibungen auf die Config ist ein Fehler. Nichts weiter.
Auch auf die Gefahr hin, dass ich OT bleibe - genau das wollte ich ausdrücken - würde mir aber nicht anmaßen, dass als Fehler zu deklarieren. Aber - als ich mich vor längerem schon mal für FHEM interessierte, hat mich das ganze editiere in Konfigs abgeschreckt und ich habe mir eine Zipabox gekauft (was für ein Fehler!). Hier scheint es tatsächlich in der Darstellung nicht ganz optimal zu laufen - aber viel wichtiger ist ja auch, dass FHEM so läuft wie es läuft ;D
Ich dachte immer, die Experten haben gar keine Maus und kennen nur vi :P
Aber dieser Thread zeigt mir, dass es nahezu umgekehrt zu sein scheint ::) Von daher ist mir mit den Antworten sehr geholfen - ich werde zukünftig viel weniger Energie in die Konfig-Strukturen stecken.
überdachte Grüße
Niels
Zitat von: marvin78 am 18 Juli 2015, 15:59:48
Du hast nach Tipps für einen sinnvollen Konfigurationsaufbau gefragt. Da viele es für "sinnvoll" erachten, die Struktur FHEM zu überlassen und als Orientierung die Struktur im Frontend zu nehmen, haben sie es hier gepostet. Wenn du keine Antworten auf deine Frage willst, dann sag das doch gleich. Bei mir ist das nun vermerkt: shawly will nur Antworten, die ihm gefallen. Auch gut.
Ja war, klar, dass wieder einer beleidigt sein muss und natürlich wieder alles verdreht darstellt. :)
Zitat von: shawly aus dem ersten Postmich würde mal interessieren wie ich am sinnvollsten meine Config aufbauen könnte
Das war meine Frage, ich sprach in meinem ganzen Beitrag nur über die Config und wie man diese aufbauen könnte, die Frage also mit "ich mach das im Frontend ich fass die Config nie an" zu beantworten, obwohl es in meiner Frage darum geht, wie ich die Config aufbauen könnte, ist nun mal einfach Offtopic.
Das ist als wenn du in nen Telekom Shop gehst, den Verkäufer fragst, ob du nun das Iphone 6 oder das 6 Plus nehmen sollst und er dir dann sagt "also ich nutze ein Nokia Lumia 535".
@ujaudio Ja auch wenn ich nie behauptet habe, dass du
deine Beiträge für dich behalten sollst, beantworte ich dir deine Frage trotzdem.
Da meine Configs noch überschaubar sind und ich ein bestimmtes Schema eingehalten habe für die Benennung der Files, werde ich das ganz einfach mit Notepad++ per Search and Replace die Namen ersetzen und vereinzelt nochmal manuell nachpflegen.
Zu deinem Problem, wenn du damals noch etwas unstrukturiert warst musst wohl halt über die FHEM Commandline deine Devices etc. über rename umbenennen, wenn du das lieber manuell machst, kannst du dir ja die geänderten Zeilen in ner separaten Config bzw. Textdokument speichern, somit siehst du was du geändert hast, nicht wirklich elegant aber sollte hinhauen. Und wenn du doch mal was übersehen hast, dann knallts halt, musste halt das Loglevel höher stellen und den Fehler suchen und beheben. :)
Zitat von: shawly am 19 Juli 2015, 03:36:20
Das war meine Frage, ich sprach in meinem ganzen Beitrag nur über die Config und wie man diese aufbauen könnte, die Frage also mit "ich mach das im Frontend ich fass die Config nie an" zu beantworten, obwohl es in meiner Frage darum geht, wie ich die Config aufbauen könnte, ist nun mal einfach Offtopic.
Ist es nicht, denn es ist ein sehr gut gemeinter und sinnvoller Tipp, der direkt mit deiner Frage zu tun hat. Vermutlich hast du den Zusammenhang bloß nicht verstanden. Das wäre nicht so schlimm.
Zitat von: shawly am 19 Juli 2015, 03:36:20
Da meine Configs noch überschaubar sind und ich ein bestimmtes Schema eingehalten habe für die Benennung der Files, werde ich das ganz einfach mit Notepad++ per Search and Replace die Namen ersetzen und vereinzelt nochmal manuell nachpflegen.
Und genau das ist ein Anfängerfehler! Hier gibt es viele Seiteneffekte - Rename auf der Commandline ist da besser und ändert sogar viele Abhängigkeiten mit.
lernfähige Grüße
Niels
http://forum.fhem.de/index.php/topic,37184.msg295870.html