linkes Menü in Gruppen einteilen?

Begonnen von moelski, 28 Dezember 2016, 08:10:53

Vorheriges Thema - Nächstes Thema

moelski

Moin !

So langsam wird mein Menü auf der linken Seite dann doch etwas lang.
Besteht da evtl. die Möglichkeit das man die Einträge in Gruppe einsortiert - also in einer Art Tree Struktur?
Dann könnte man das was man gerade nicht benötigt einfach zusammenfalten.

Gibt es sowas, oder ist sowas ggf. mal geplant?

Grüße Dominik
Grüße Dominik

Benni

Zitat von: moelski am 28 Dezember 2016, 08:10:53
Gibt es sowas, oder ist sowas ggf. mal geplant?

Baumstruktur gibt es zwar nicht, aber FHEMWEB kennt das Attribut sortRooms

moelski

Moin !

Sortiert ist es bei mir schon ganz gut allein durch die Benamung.

Schade das es keine Baumstruktur gibt. Aber danke für die Info !
Grüße Dominik

rudolfkoenig

ZitatSchade das es keine Baumstruktur gibt.
Selbst ist der Mann (oder Frau? :) )
Mit einem kleinen eigenen JavaScript Programm sollte das doch machbar sein.
Bitte Ergebnis hier posten.

justme1968

es gibt irgendwo im forum einen patch von UlliM der eine art baum mit aufklappbaren ebenen implementiert.

ist aber älter und ich finde ihn gerade nicht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

moelski

Moin !

ZitatSelbst ist der Mann (oder Frau?  )
Mann  ;)

ZitatMit einem kleinen eigenen JavaScript Programm sollte das doch machbar sein.
Hmm wie würde man das angehen?

Im HTML Code des Menüs findet man diese Tabelle:
</table></td></tr>
<tr><td><table class="room roomBlock3">

Die müsste man dann vermutlich umbauen, oder?

Wo wird das Menü denn überhaupt gebaut auf FHEM Seite?
Grüße Dominik

rudolfkoenig

ZitatDie müsste man dann vermutlich umbauen, oder?
Ja. Ist aber mit jQuery kein Hexenwerk.

ZitatWo wird das Menü denn überhaupt gebaut auf FHEM Seite?
In FHEMWEB.pm. Stammt aus der Zeit, wo HTML fuer mich neu, und JavaScript Teufelszeug war :)
Waere Zeit alles umzubauen, wenn nicht so viele Leute ihre Sachen schon davon abhaengig gebaut haetten.

UliM

#7
Zitat von: justme1968 am 28 Dezember 2016, 10:18:34
es gibt irgendwo im forum einen patch von UlliM der eine art baum mit aufklappbaren ebenen implementiert.
ist aber älter und ich finde ihn gerade nicht.
Hi,
grad gesucht und in meinen archivierten Versionen gefunden. Ist in FHEMWEB/html realisiert.
Basiert auf einer älteren FHEMWEB-Version (April 2014) , müsste also ggf in eine aktuelle Version portiert werden.

Die Raumerweiterung basiert auf folgenden Attributen:
sortRooms Schreibweise -> je Ast der Hierarchie muss geschrieben sein <HiLvlRoom>:<LoLvlRoom1><,LoLvlRoom2...><blank> also wie <Hi:Lo,Lo,Lo Hi:Lo Hi:Lo,Lo,Lo

Siehe Zeilen 1043ff, Änderungen sind mit #mod markiert
Werd's gleich mal erneut testen.... irgendwas war noch nicht perfekt - ich glaub die Einzüge der LoLvl-items. Da müsste man wohl mit css arbeiten.

Mit jQuery geht's wahrscheinlich eleganter, hab mich aber noch nie damit auseinandergesetzt.

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

moelski

Hallo Uli,

vielen Dank das du deinen Code zur Verfügung gestellt hast.
Will gerne beim Testen helfen, aber das hätte ich nie (in Perl) hinbekommen  :D

Habe jetzt folgendes gemacht:
* original 01_FHEMWEB.pm in 01_FHEMWEB.pm.org umbenannt
* deine Datei in 01_FHEMWEB.pm umbenannt und fhem neu gestartet

Im Log kann ich soweit auch keine Fehler erkennen bis auf das hier:
2017.01.08 15:00:09.987 1: configfile: WEB: unknown attribute JavaScripts. Type 'attr WEB ?' for a detailed list.
WEB: unknown attribute editConfig. Type 'attr WEB ?' for a detailed list.

Aber das sollte man ignorieren können ....

Jetzt hätte ich erwartet das ein Device z.B. ein neues Attribut hat "sortRooms". Hats aber nicht.  ???
Mache ich was falsch?

Mir ist auch aufgefallen das z.B. bei dem Attribut rooms kein Fenster mehr zur Selektion auf geht.
Liegt vermutlich an dem alten Stand von 01_FHEMWEB.pm wo du die Änderungen eingepflegt hast, oder?

Wäre es evtl. sinnvoll erstmal deinen Stand mit dem aktuellen fhem Stand zu mergen?

Hast du es bei dir wieder zum laufen bekommen?
Grüße Dominik

UliM

Hi,
um einen Effekt zu sehen musst Du auf der FHEMWEB-Instanz das Attribut sortRooms pflegen.
Unter Angabe der gewünschten Anzeigehierarchie, siehe vorheriger post.

Hab grad versucht es in eine aktuelle FHEMWEB-Version einzubauen, bin im ersten Anlauf gescheitert.

Der Mechanismus ist grundsätzlich, dass das Attribut sortRooms zerpflückt wird - es gibt die anzuzeigende Reigenfolge der Räume an.

Als Beispiel seit zunächst die Sortierung so angegeben:
attr WEB sortRooms Wohnung Wohnzimmer Esszimmer System Media
Wenn ich das hierarchisch darstellen will mit Haupträumen Wohnung und System würde ich das ändern zu
attr WEB sortRooms Wohnung:Wohnzimmer,Esszimmer System:Media
Klappt's damit? (die Raumnamen müssen natürlich echte Raumnamen aus Diner Installation sein)
Bitte pfleg das Attribut "manuell" - die Pflege per Attribut-Popup müsste man ggf mit überarbeiten, das ist nicht im patch enthalten.

Bevor ich hier Arbeit reinstecke möchte ich ein ok von Rudi, dass er das übernehmen würde - werde es minimal-ivasiv versuchen.

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

Ich habe das eher als ein zusaetzliches .js vorgestellt: wenn man die Datei als JavaScripts Attribut angibt, dann wird das Menu umgebaut. Einen Parameter kreigt man beim JavaScripts auch geschenkt, und dafuer muss man nichts in FHEM umbauen. Gegen solche Loesungen habe ich nie was (Hmm: sag niemals nie?).

Auch wenn eine Baumdarstellung praktisch ist, ich finde es altbacken, und fuer default wuerde ich etwas nach dem Look&Feel von Mobil-Apps oder Webseiten mit ausklappbaren Menu realisieren. Ist aber noch nicht beschlossen, eher ein Gefuehl.

moelski

Hallo,

das klingt jetzt fast nach einem Henne Ei Problem  :D
Von Rudolf kommt irgendwann evtl. ein Update und die Erweiterung von Uli mag Rudolf nicht (wird also vermutlich nicht in der FHEM Repo landen).  :o

@Rudolf:
Hast du denn eine grobe Idee wann deine Lösung ggf. kommen könnte?

@Uli:
Kriegst du deine Lösung evtl. auf die JavaScript Variante umgebaut?

Grüße Dominik

rudolfkoenig

Ich bin nicht mal sicher, ob mein Umbau dein Problem loest, bzw. ich habe auch keinen konkreten Plan dafuer.
Ich habe kein Problem Patches einzubauen, die das bisherige Look&Feel nicht aendern, sondern nur mehr Klassen/Ids/etc hinzufuegen, damit ein Umbau seinerseits erfolgen kann.

moelski

Ok, also könnte also Uli einen Patch erstellen der auf der aktuellen FHEM Version basiert und er würde auch gemerged  :)

@Uli:
Falls du deine Lösung auf der neuen Version umsetzt würde ich das gerne für dich Testen  :)
Grüße Dominik

Pf@nne

Moin,

ich hätte auch Interesse an einer Tree-Struktur die Variante mit den "sortRooms" klingt doch nach einer recht brauchbaren Option.
Wird hier noch weiter geschraubt oder ist das Kind schon begraben?

Ich möchte diese Option nutzen um meine Devices innhalb eines Raumes zu trennen.
So könnten die Devices der täglichen Nutzung im "Frontroom" platz finden und die Devices mit Systemkarakter in den "Backroom" vebannt werden.
Auch die zugehörigen Plotts können in einem "Subroom" platz finden.

Dann findes sich auch die Frau in FHEM zurecht.....  8)

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

rico5588

Guten Morgen,

möchte mich auch gern in die Liste der Nutzer eintragen die dieses Feature gern nutzen möchten.
Hätte ein paar Ideen machbar Ja/Nein?
Z.Bsp. "einfach" ein Attribut roomparent in Fhem integrieren und man kann jeden Ordner sagen wo es hingehört.
Menü1
Menü2
Menü3 ---Menü4---Testdevice
attr Testdevice room Menü3
attr Testdevice roomparent Menü3


oder

im Attribut room mit "|" Untermenü erstellen
attr Testdevice room Menü3|Menü4

Programmieren könnte ich es nicht, möchte nur meiner stetig wachsende Fhem Umgebung eine Möglichkeit geben, übersichtlich zu bleiben.

Danke an alle.
Rico
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

erwe

Hi,
https://forum.fhem.de/index.php/topic,63000.0.html
Bei dem CSS wurde das Ein- und Ausklappen auf der linken Seite umgesetzt.

LG, erwe

PS: Die Aufteilung der Spalten rechts ist ebenfalls sehr gelungen.

mw77

HM, HMIP, Shelly, und anderes

Rheingold

Zitat von: mw77 am 31 Oktober 2017, 12:13:43
Hier gibt es auch noch ein schönes Beispiel.
https://blog.krannich.de/2017/02/neue-visualisierung-fuer-fhem/
Hast du das umgesetzt? Ich bekomme bei mir das Style zwar übernommen, aber sehe gar kein Menüeintrag außer dem "Tablet-UI"  :o
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

perseusarm

Lies mal die Kommentare unter https://blog.krannich.de/2017/02/neue-visualisierung-fuer-fhem/
Das Problem hatte schon mal jemand, da steht glaube ich auich die Lösung.
FHEM auf NUC, CUL866, HM-.*, Raspimatc, ...

Rheingold

Ah ja, sehr gut. Ein Eintrag in der dk.js muss geändert werden.

Wenn mir jetzt noch jemand verraten kann, ob/wie er einen Link zum Speichern, sowie weitere Menüeinträge dort händisch rein bekommt bin ich erst mal glücklich :) Scheint als wird das bestehende Attribut leider ignoriert :(
attr WEB menuEntries Update,cmd=update,UpdateCheck,cmd=update+check,Restart,cmd=shutdown+restart
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

mw77

Ich habe das über einen Weblink gelöst, stand hier irgendwo im Forum.
define Systembefehle weblink cmdList Restart:Restart:shutdown+restart Update:Update-Check:update+check Update:Update-Now:update Shutdown:Save-config:Save+config

Habe das ganze dann in den Raum System gepackt.
HM, HMIP, Shelly, und anderes

Roger

Hi,
der Sohn von meinem Cousin kann Javascript und hat was gebastelt/angepasst.
Der Lock&Feel von FHEM bleibt erhalten, aber man hat eine zusätzliche Menüebene für die Räume.

Die beiden Dateien nach ...\www\pgm2 kopieren.
Für 'FHEMWEB' zwei Attribute setzen:

attr <name> pgm2/tree.css
attr <name> pgm2/tree.js

Die room-Attribute der Geräte mit "--" als Trenner versehen (Ebene1--Ebene2) --> und man hat eine kleine Tree-Struktur.

Einschränkungen:
- nur eine Ebene
- geht nicht, wenn 'Dashboard' verwendet wird (durch den zusätzlichen Frame)
- kein Support  :(

mit bereitgestelltem Gruß
Roger
Zotac, BBB, RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly

dev0

Zitat von: Roger am 30 November 2017, 18:04:55

attr <name> pgm2/tree.css
attr <name> pgm2/tree.js

Das kann so nicht funktionieren.

sat-cracker

Ihr müsst die richtigen Atribute verwenden

attr WEB CssFiles  pgm2/tree.css
attr WEB JavaScripts pgm2/tree.js
Echtsystem:  intel NUC i7, fhem 5.9, 5x LGW, nanocul433, nanocul868, nanoculHM, sduino,
Testsystem auf Raspberry Pi 4

Tedious

Mal als unbedarfter Ansatz zum besprochenen "Henne-Ei-problem" bzw. HTML und JS... wieße sich ja auch so realisieren dass man das via global definiert. "Altes" Layout oder "neues".
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

dev0

Zitat von: Tedious am 01 Dezember 2017, 13:11:19
wieße sich ja auch so realisieren dass man das via global definiert. "Altes" Layout oder "neues".
global, alt, neu? Hä??

Tedious

Zitat von: rudolfkoenig am 08 Januar 2017, 16:24:38
Auch wenn eine Baumdarstellung praktisch ist, ich finde es altbacken, und fuer default wuerde ich etwas nach dem Look&Feel von Mobil-Apps oder Webseiten mit ausklappbaren Menu realisieren. Ist aber noch nicht beschlossen, eher ein Gefuehl.

Zitat von: dev0 am 01 Dezember 2017, 13:49:43
global, alt, neu? Hä??

Bezog sich auf ersteres und die teilweise stark an die Anforderungen gebundenen Layouts. Sprich - es spräche ja nichts dagegen das zu modernisieren, und sollte keine Probleme generieren wenn man beispielsweise via global definieren könnte "Ich will das "alte" FHEMWeb oder ein etwaiges "neues" NodeJS/HTML5/Whatever Frontend...
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

dev0

Ok. Verstanden, was Du ausdrücken wolltest/hast. Danke.

msfox

...super. Habe gerade das gleiche Problem und bin auch auf der Suche nach einer Lösung. Dann schließe ich mich mal dem Thread an.
...ich denke mal laut.

Mein aktueller Stand:
Ich habe Homematic-Module. Diese werde im Default mit room=HM485 belegt. Dann frage ich noch meine KWL eingebunden. Dieser habe ich als room=Pluggit gegeben. Dann habe ich noch die Fritzbox mit room=Fritzbox.
Ergebnis: Ich sehe links im Menü HM485,Pluggit und Fritzbox. Rufe ich nun "HM485" auf, so kann ich alle Lampen im Haus bedienen.
ABER: Ich habe das Attribut "room" zweckentfremdet, was mir nicht gefällt.

Wenn ich aber jedem Device als Attribute "room" gleich den Raum zuweise, wo es steht, wird A das Menü sehr lang und B wenn ich alle Lichter ausmachen will, muss ich jeden Menüpunkt aufrufen.
Über das Attribut "group" kann man diese Geräte ja gruppieren.
Für meine Zwecke würde es reichen, wenn links die Gruppen statt der Räume angezeigt würden.

justme1968

#30
warum zweckentfremdet? ein fhem room muss nicht einem logischen raum im haus entsprechen und ein device kann in mehreren rooms sein. eine wohnung mit 5 oder 10 zimmern und 1-3 stockwerken und 5 oder 8 geräte typen ergibt ein menü das 20 einträge lang ist. das sollte in keinem normalen browser fenster ein problem sein.

und was das alles aus angeht: leg dir zusätzlich zu den geräten in einem raum und in der geräte art ebene noch structure oder LightScene an die raum weise arbeiten und dann z.b. auf der stockwerks oder haus ebene sind. wenn du in einen raum gehst kannst du dort alles einzeln schalten, wenn du ins stockwerk gehst kannst du einzelne räume komplett schalten.

ansonsten: es heißt haus automation. d.h. das eigentliche ziel ist so viel wie möglich zu automatisieren. sich durch x ebenen zu klicken um dann y geräte von hand zu schalten sollte eigentlich nicht das ziel sein.

sieh das normale fhemweb eher als admin oberfläche. da ist es gut alles zu sehen. wenn es um die bedienung oder anzeige an der wand oder ähnliches geht ist floorplan oder tablet ui besser. oder sprache per alexa oder siri.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

msfox

Zitat von: justme1968 am 28 Dezember 2017, 22:19:53
warum zweckentfremdet? ein fhem room muss nicht einem logischen raum im haus entsprechen
Für mich dann zweckentfrendet. Ein room ist ein realer Raum im Haus - zumindest aus meiner Sichtweise. Ich habe halt bedenken, dass mir das irgendwo auf die Füße fällt, wenn ich das nicht so nutze.
Zitat von: justme1968 am 28 Dezember 2017, 22:19:53
sieh das normale fhemweb eher als admin oberfläche.
Tue ich, aber auch da will ich nicht 20 Räume im Menü haben. Ansonsten nutzen ich ja FLOORPLAN für die schöne Darstellung (Stichwort: LCARS).

justme1968

ZitatEin room ist ein realer Raum im Haus - zumindest aus meiner Sichtweise.
aber nicht aus fhem sichtweise. es ist nur eine zusätzliche ebene der gruppierung oberhalb der gruppen. da gibt es nichts das einem auf die füße fällt.

aber jeder so wie er es mag.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

msfox

Zitat von: justme1968 am 29 Dezember 2017, 19:25:56
aber nicht aus fhem sichtweise.
Danke...
OK, dann wird das linke Menü aber noch größer. Einige Ansätze dies hierarchisch darzustellen gibt es ja schon. Sind aber meist Modifikationen im Standard.

rudolfkoenig

Habe eine fhemweb.js / 01_FHEMWEB.pm Version eingecheckt, mit dem durch -- getrennte Raumnamen als Strukturierte betrachtet werden, und beim Seitenaufruf im zusammengefalteten Zustand dargestellt werden.

Es werden z.Zt. 3 Ebenen unterstuetzt, ich habe es mit Sonderzeichen, und mit den diversen Styles getestet.

Bin sicher, dass ich nicht alle Faelle abgedeckt habe (z.Bsp. smallscreen), aber man muss ja irgendwo anfangen.

igami

#35
Zitat von: rudolfkoenig am 31 Dezember 2017, 00:15:47
Habe eine fhemweb.js / 01_FHEMWEB.pm Version eingecheckt, mit dem durch -- getrennte Raumnamen als Strukturierte betrachtet werden, und beim Seitenaufruf im zusammengefalteten Zustand dargestellt werden.

Es werden z.Zt. 3 Ebenen unterstuetzt, ich habe es mit Sonderzeichen, und mit den diversen Styles getestet.

Bin sicher, dass ich nicht alle Faelle abgedeckt habe (z.Bsp. smallscreen), aber man muss ja irgendwo anfangen.

Wie funktioniert das im zusammenspiel mit sortRooms für die Unterebenen?

Edit1: Wie könnte das mit Unsorted funktionieren? Momentan habe ich bei mir einfach einen Dummy als Überschrift ohne einklappen (siehe Screenshot)

Edit2: Kann man das neue Verhalten auch abstellen? Mit meinem Dummy funktioniert das dann ja so nicht mehr, da ich -- benutze.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Markus Bloch

Währe nicht ein ">" oder "->" als Trennzeichen intuitiver?

System->Allgemein
System->Alarmstatus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

LuBeDa

Zitat von: rudolfkoenig am 31 Dezember 2017, 00:15:47
Habe eine fhemweb.js / 01_FHEMWEB.pm Version eingecheckt, mit dem durch -- getrennte Raumnamen als Strukturierte betrachtet werden, und beim Seitenaufruf im zusammengefalteten Zustand dargestellt werden.

Gibt es ein Beispiel dafür? Mir ist das "attr" und die Schreibweise nicht ganz klar.

Markus Bloch

Man ändert dazu das room-Attribute der entsprechenden Definitionen um die Verschachtelung zu erreichen.

Wenn Du bspw. bei einer Definition als room-Attribut den Wert "1. OG--Kinderzimmer" setzt, dann hast du ein Obermenü "1. OG" und dann darunter "Kinderzimmer" stehen. Evtl. nochmal ein [Shift]+Reload im
Browser machen, da evtl. noch das alte fhemweb.js gecachet ist.

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)

igami

Zitat von: Markus Bloch am 31 Dezember 2017, 10:05:24
Währe nicht ein ">" oder "->" als Trennzeichen intuitiver?

System->Allgemein
System->Alarmstatus

Finde ich auch.

In der Commandref ist das noch nicht beschrieben, oder? Zumindest habe ich bei FHEMWEB nichts dazu gefunden.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

rudolfkoenig

ZitatWie funktioniert das im zusammenspiel mit sortRooms für die Unterebenen?
Verstehe die Frage nicht. Die Erweiterung veraendert die Reihenfolge nicht. Wenn man es mit sortRooms "uebertreibt", und hierarchiehe verwendet, dann schaut es merkwuerdig aus.

ZitatEdit1: Wie könnte das mit Unsorted funktionieren? Momentan habe ich bei mir einfach einen Dummy als Überschrift ohne einklappen (siehe Screenshot)
Fuer Unsorted und Everything gibt es keine Sonderbehandlung, d.h. wenn es stoert, dann muss man sie versteckem.

ZitatEdit2: Kann man das neue Verhalten auch abstellen? Mit meinem Dummy funktioniert das dann ja so nicht mehr, da ich -- benutze.
Nein, bzw. kein -- im Raumnamen verwenden.

ZitatWähre nicht ein ">" oder "->" als Trennzeichen intuitiver?
Ich wollte mich an die bisherigen Vorschlaegen halten. Habe aber kein Problem es zu aendern, ist ja nicht wirklich verbreitet. Wenn noch jemand (also in Summe 3) sich dafuer ausspricht, dann wird es geaendert.

ZitatIn der Commandref ist das noch nicht beschrieben, oder?
Stimmt, ich wollte erst den Feedback abwarten.

rico5588

Mir gefällt es so recht gut. Es gibt keinen Änderungsbedarf.
Ein guten Rutsch euch allen.
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

igami

Zitat von: rudolfkoenig am 31 Dezember 2017, 12:52:54
Verstehe die Frage nicht. Die Erweiterung veraendert die Reihenfolge nicht. Wenn man es mit sortRooms "uebertreibt", und hierarchiehe verwendet, dann schaut es merkwuerdig aus.
Ich habe es bei mir so aufgeteilt

Wohnung
Wohnung--Status
Wohnung--Netzwerk
Wohnung--Zähler
Bewohner
Bewohner--Michael
Räume
Räume--Trockenraum
Räume--Waschkeller
Räume--Flur
Räume--Badezimmer
Räume--Küche
Räume--Schlafzimmer
Räume--Arbeitszimmer
Räume--Wohnzimmer
Räume--Balkon
Dienste
Dienste--Abfall
Dienste--Tankstelle
Dienste--Wetter
System
System--changelog
System--Log
System--Schnittstellen
System--helper
System--Unsorted

Meine Unterebenen sind dabei nicht immer alphabetisch sortiert, sondern oft logisch.
Mit sortRooms lässt sich das aber nicht mehr erreichen.

Zitat von: rudolfkoenig am 31 Dezember 2017, 12:52:54
Fuer Unsorted und Everything gibt es keine Sonderbehandlung, d.h. wenn es stoert, dann muss man sie versteckem.
Ich möchte sie ja sehen, aber eben in einer Unterebene

Zitat von: rudolfkoenig am 31 Dezember 2017, 12:52:54
Nein, bzw. kein -- im Raumnamen verwenden.
Schade.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

UweH

Moin,
nach der Installation der beiden neuen Dateien habe ich folgende Meldung.
Was kann ich tun?


Danke und Gruß
Uwe

msfox

Zitat von: UweH am 31 Dezember 2017, 14:15:08
nach der Installation der beiden neuen Dateien habe ich folgende Meldung.
Was kann ich tun?
Ähnlichen Fehler hatte ich auch gerade, als ich nur die zwei Dateien aus dem SVN genommen habe.
Ich habe dann ein gesamt-update via update-Befehl gemacht. Jetzt klappt es.
Ich vermute, dass du irgendeinen FHEM-Stand hast, wo nur die beiden Dateien nicht passen.

msfox

Verbesserungsvorschlag zur Hierarchie:
Ich habe jetzt "Obergeschoss--Arbeitszimmer" und "Obergeschoss--Kinderzimmer" als "room" eingetragen.
Schicke wäre jetzt, wenn ich im Menü auf "Obergeschoss" klicke, dass dann die Module aus Arbeitszimmer und Kinderzimmer aufgelistet werden.

rudolfkoenig

@igami: die aktuelle Aenderung (nennen wir es Raumstruktur) aendert an der Reihenfolge nichts, versteckt nur die Elemente, die nicht sichtbar sein sollten. Wenn etwas trotzdem nicht so funktioniert, dann bau mir bitte ein Beispiel, damit ich es nachstellen kann, und nicht raten muss.

@msfox: Am Beispiel von igami: sollte man den Inhalt von 9 rooms sehen, wenn man auf "Räume" klickt? Das finde ich nicht sinnvoll. Wer sowas haben will, der muss einen Meta-Raum zusammenbasteln.

UweH

Zitat von: msfox am 31 Dezember 2017, 14:32:37
Ähnlichen Fehler hatte ich auch gerade, als ich nur die zwei Dateien aus dem SVN genommen habe.
Ich habe dann ein gesamt-update via update-Befehl gemacht. Jetzt klappt es.
Ich vermute, dass du irgendeinen FHEM-Stand hast, wo nur die beiden Dateien nicht passen.
Ja, Danke, das war's. Nur die beiden Dateien reichen nicht, obwohl mein letztes Update vorgestern war.


Gruß
Uwe

msfox

Zitat von: rudolfkoenig am 31 Dezember 2017, 14:43:52
...der muss einen Meta-Raum zusammenbasteln.
Was ist ein Meta-Raum?

Wenn ich als room=Obergeschoss,Obergeschoss--Arbeitszimmer angebe, so sehe ich "Obergeschoss" links im Menü doppelt. Wenn man dies noch "mergen" könnte.

habl

#49
Hallo,

mekwürdiges verhalten bei einem meiner Tablets ein Lenovo B8080-F Android 4.4.2 mit Fully Kiosk.

Nur bei diesem Gerät funktioniert nach diesem Update kein Longpol in Fully mehr. Sofern ich die beiden alten js-Dateien wieder einspiele geht es wieder. Unter dem Chrom-Browser tritt der Fehler nicht auf.

Leider kann ich ja nicht unter Fully den Debug-Modus anwerfen um den Fehler zu analysieren.

Was kann ich noch versuchen?

Edit:
Habe es mit einem anderen Kiosk Browser probiert, gleicher Fehler. Liegt m.E. dann an Webview

VG
  habl

rudolfkoenig

In fhemweb.js, in der Funktion FW_treeMenu Codezeilen Blockweise auskommentieren, um zu sehen, welche Zeile der alte Browser problematisch findet. Leider braucht man etwas Programmierwissen, um die Zeilen sinnvoll auszukommentieren.

habl

es liegt an der Erweiterung des Headers

//    $("head").append(`
//      <style>
//        tr.menuTree { cursor:pointer; }
//        tr.menuTree.level1 > td > div { margin-left:10px; }
//        tr.menuTree.level2 > td > div { margin-left:20px; }
//        tr.menuTree.level3 > td > div { margin-left:30px; }
//        tr.menuTree.open { font-weight: bold; }
//        tr.menuTree > td > div > div {
//          display:inline-block; width:1em; height:1em; float:right;
//          background-size: contain;
//        }
//      </style>
//`);


damit  funktioniert Longpoll wieder.

rudolfkoenig

Ich vermute es liegt an ` (aka TemplateLiterals), was laut Internet erst seit 2015 gibt. Bisschen traurig, da es fuer sowas sehr praktisch ist, macht den Text lesbarer. Ich habe es jetzt auf altmodische Strings umgebaut: kannst du es bitte testen, ob es damit noch tut? Habe die Datei auch hier angehaengt.

habl

Fehler gefunden, wenn ich den Codeblock mit den hochkommas  ' (oder wie sie auch heissen mögen) schreibe, geht es

    $('head').append('<style>tr.menuTree { cursor:pointer; } tr.menuTree.level1 > td > div { margin-left:10px; } tr.menuTree.level2 > td > div { margin-left:20px; } tr.menuTree.level3 > td > div { margin-left:30px; } tr.menuTree.open { font-weight: bold; } tr.menuTree > td > div > div { display:inline-block; width:1em; height:1em; float:right; background-size: contain; } </style>');

bischen zu spät :-)

Elektrolurch

Hallo Rudi,

an dem Thema bin ich auch interessiert, besonders aber an eine Version für WEBphone (small devices).
Habe bisher über einen dummy und vielen setlists die Unterräume realisiert, dabei werden die verschiedenen´n readingsGroups, die ich dafür verwende, durch a bisserl perl-code jeweils auf disable 3 oder 0 gesetzt.
Nachteil:
Das Menü für die Unterräume ist jeweils Bestandteil der readingsGroup und steht somit unter dem Raummenü.
Schöner wäre es natürlich, das Raummenü und Unterraummenü nebeneinander oben auf der Seite stehen und das Ganze "nativ" in fhem realisiert wird.

Gutes Neues Jahr und weiterhin viel Spaß an fhem.

Elektrolurch
configDB und Windows befreite Zone!

BOFH

Ich hatte bis dato immer die Version vom Kranich laufen ... Finde das Feature als default in fhem super. Ob nun -- oder -> wäre mir persönlich egal.
Bei mir ist allerdings der Menüeintrag nicht in einem span.

  $(t).find("td > div > a > span").each(function(e){

Musste den "> span" entfernen. Ist das gewollt? Ich nutze das Default Style.


RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

rudolfkoenig

ZitatBei mir ist allerdings der Menüeintrag nicht in einem span.
Verwendest du die aktuelle Version von 01_FHEMWEB.pm (15753)?

BOFH

Nein - 15732.
Ist die, die er aktuell auscheckt....
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

krannich

@BOFH: Ich habe meine Version nun aktualisiert, damit sich FHEM und mein Style nicht in die Quere kommen. Dafür musst Du "__" anstatt "--" verwenden. Ich werde die Tage mal schauen, ob das native TreeMenu von FHEM analog meines Styles anpassen und animieren kann.

@RUDOLF: Danke für dieses Feature. Habe es lange vermisst.

_fhemuser_

Das mit den Untermenüs ist eine gute Idee, allerdings sind bei der aktuellen Umsetzung einige meiner Räume durcheinander geraten. Siehe hier:
https://forum.fhem.de/index.php/topic,82151.msg742026.html#msg742026
Daher wäre ich wie einige andere auch dafür anstatt der --- lieber etwas anderes wie zB -> zu verwenden

VG
_fhemuser_
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Stargrove1

#60
Gute Idee, bin allerdings erstmal darüber gestolpert da mein Menü bisher so aufgebaut war:

-----DG-----
Büro
Gästezimmer
-----OG-----
Schlafzimmer
Kinderzimmer
Büro
Badezimmer
-----EG------
.
.

wurde dadurch zu einem leeren Baum mit einer Liste von Räumen.

Ich vermute viele user verwenden "-" im Raum Namen um Bereiche zu trennen oder auch in Raumnamen, evtl. wäre "+" oder eine Kombination wie "+-" geeigneter? [EDIT] Was ich auch gut fände, wenn es wie eine Art Verzeichnis Struktur erstellt wird, hätte man "/" oder "\" nehmen können wie in Pfaden "OG/Buero" "OG/Schlafzimmer" "OG/Kinderzimmer"

Gibt es eine Möglichkeit zu entscheiden ob der tree beim laden ausgeklappt ist?

Wernieman

Von der Logig her ist "->" meiner Meinung nach logischer ... kann aber mit "--" auch leben ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rudolfkoenig

Habe den Trenner geaendert nach -> und dokumentiert (bzw. eher erwaehnt).
War natuerlich deutlich mehr Arbeit als am Anfang gedacht, weil > in HTML ein Sonderzeichen ist.
Habs getestet, waere aber ueberrascht, wenn ich alle Sonderfaelle erwischt haette.

ZitatGibt es eine Möglichkeit zu entscheiden ob der tree beim laden ausgeklappt ist?
In einem Raum ist das "eigene" Baum-Teil ausgeklappt.
Und wer mit weiteren Feature-Wuenschen ohne Patch kommt, der wird angefaucht.

ComputerZOO

Ähm, nun ja,
habe gerade nen Update gemacht, danach shutdown restart, die Räume umbenannt und im FHEMWEB die roomIcons auf -> geändert.
Ergebnis: Baumhierachie passt, aber die Raum-Icons werden nicht mehr angezeigt, kann es sein, dass es mit der Zuordnung nun Probleme gibt? System->Logfiles:system_backup@darkslategrey?

BOFH

#64
Zitat von: ComputerZOO am 06 Januar 2018, 11:17:52
Ähm, nun ja,
habe gerade nen Update gemacht, danach shutdown restart, die Räume umbenannt und im FHEMWEB die roomIcons auf -> geändert.
Ergebnis: Baumhierachie passt, aber die Raum-Icons werden nicht mehr angezeigt, kann es sein, dass es mit der Zuordnung nun Probleme gibt? System->Logfiles:system_backup@darkslategrey?

das hat rudolf ja schon erwähnt mit dem HTML "fehler"

Mach mal folgendes:
System-&gt;Logfiles:system_backup@darkslategrey

[Edit] - alternativ System.*Logfiles:system_backup@darkslategrey  [/edit]

Eventuell wäre der "--" doch leichter zu handeln
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

ComputerZOO


roedert

#66
Erstmal großes Lob - das mit dem Ausklappen-Menü ist eine feien Sache, da bei mir die Raumliste auch schon sehr lang und somit unübersichtlich wurde.

2 Anmerkungen/Ideen meinerseits aber noch dazu:
- im Style sollte die Breite des Raumauswahl-Fensters beim attr verbreitert werden, da die Raumnamen ja nun ein wenig länger werden
- wenn ich Objekt A im Raum Ebene1 und Objekt B im Raum Ebene1->Ebene2 habe, erscheint in der Raumliste 2 mal Ebene1 - einmal als Raum mit Objekt A und einmal als Aufklappmenü. Wäre prima wenn man das noch zusammenfasst, d.h. das nur Ebene1 als Aufklappmenü angezeigt wird, wenn man darauf klickt, wird Ebene1 aufgeklappt und gleichzeitig im Hauptfenster alle Objekte im Raum Ebene1 angezeigt werden

Edit:
...und einen Bug habe ich auch noch gefunden. Wenn Ebene 1 und eine weitere darunterlegende Ebene 2 aufgeklappt ist, und man klappt Ebene 1 wieder zu, erscheinen plötzlich die Unterelemente von Ebene 2 unter der Ebene 1
(getestet in Safari und Chrome)

ToM_ToM

#67
Hallo Zusammen,

ich finde das ziemlihc interessant. Wenn ich es richtig verstanden habe, muss das im FHEMWEB device unter roomIcons... oder?

aber

attr WEB roomIcons Wohnung-&gt;Arbeitszimmer:scene_office

bringt nicht den gewünschten Effekt.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

roedert

Nein, ganz normal übers room-Attribut eines jeden devices .... und bei mir tut es ein -> ... &gt; ist nicht nötig

ToM_ToM

ZitatNein, ganz normal übers room-Attribut eines jeden devices .... und bei mir tut es ein -> ... &gt; ist nicht nötig

Ah okay, danke für die schnelle Hilfe :)
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

didi-fritz

Hallo,

danke Rudi für das coole Menü!

kann ich irgendwie ein roomicon für die 1. Ebene vergeben?


VG
Didi

rudolfkoenig

Zitatkann ich irgendwie ein roomicon für die 1. Ebene vergeben?
Nein. Jedenfalls nicht ohne zusaetzlichen JS-Code

Zitat- im Style sollte die Breite des Raumauswahl-Fensters beim attr verbreitert werden, da die Raumnamen ja nun ein wenig länger werden
Damit fange ich nicht an. Evtl. ist f18 die Loesung.

ZitatWäre prima wenn man das noch zusammenfasst
Siehe mein Hinweis wg. anfauchen.

ZitatWenn Ebene 1 und eine weitere darunterlegende Ebene 2 aufgeklappt ist, und man klappt Ebene 1 wieder zu, erscheinen plötzlich die Unterelemente von Ebene 2 unter der Ebene 1
Das habe ich halbwegs gefixt, ist aber noch nicht perfekt. Vermutlich muss ich einiges umbauen.

Amenophis86

Zitat von: rudolfkoenig am 05 Januar 2018, 21:54:12
Habe den Trenner geaendert nach -> und dokumentiert (bzw. eher erwaehnt).

Habe eben gerade auf meiner Testinstallation mal ein Update gemacht und kann die Räume weiterhin nur mit -- strukturieren und nicht mit ->. Ist die Änderung schon eingecheckt worden? In der CommandRef habe ich auch -> gelesen, aber wie gesagt klappt bei mir nur mit --.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

roedert

Ist definitiv eingecheckt ... hast den Browser-Cache mal geleert?

Amenophis86

Ich schiebe es jetzt mal auf den Cache, weil es jetzt von alleine geht. Bin mir aber ziemlich sicher, dass ich ihn geleert hatte. Egal, geht nun.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Invers

ZitatZitat

    kann ich irgendwie ein roomicon für die 1. Ebene vergeben?

Nein. Jedenfalls nicht ohne zusaetzlichen JS-Code


Hat da schon jemand eine Lösung gefunden? Falss ja, wäre ich stark daran interessiert.
Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

DarkT

Zitat von: didi-fritz am 07 Januar 2018, 20:07:03
kann ich irgendwie ein roomicon für die 1. Ebene vergeben?

Zitat von: rudolfkoenig am 07 Januar 2018, 23:15:37
Nein. Jedenfalls nicht ohne zusaetzlichen JS-Code

Ist geplant das das möglich sein wird?

PSI69

Ich bin gestern durch Zufall darüber 'gestolpert' und habe gleich alle Raumzuordungen geändert - einfach nur Super! :)
Danke für das Feature!

Peter
FHEM 6 auf RPi 4 unter Buster mit inzwischen einem ganzen Zoo von Geräten...

roedert

Ist denn auch noch irgendwie geplant, dass man Devices auch in die "obere Gruppe" legen kann?
Wenn ich aktuell die Räume A->1 habe und A->2 werden unter A die Räume angezeigt, und im Hauptfenster dann die entsprechenden Devices.
Wenn ich einem Device jetzt den "Gruppenraum" A zuordne, wird dieser dann doppelt angezeigt - einmal als normaler Raum und einmal als aufklappbare Gruppe.

bismosa

Hallo!
Auch ich bin nach einem FHEM-Update zufällig drüber gestolpert. Geniales Feature! Schade, dass es so "unbekannt" ist  :)

Ich würde mir ja auch vorsichtig wünschen, dass man die obere Gruppe verwenden kann. Da ich noch nie mit JavaScript etc. zu tun hatte tue ich mich da aber etwas schwer. Ich habe es bisher so verstanden:
Da die Raum-Namen ja weiterhin Raum->Raum2 sind und auch so angesprochen werden, wird in der fhemweb.js
FW_treeMenu
Zeile 914
if(!ma[nxt]) {
          $(tr).before("<tr class='menuTree closed level"+i1+"' "+
              "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
              "<td><div><a href='#'>"+ta[i1]+"</a><div></div></div></td></tr>");
        }

Das extra Menü eingefügt.
Meine Idee dazu war, dass man einfach den übergeordneten Raum mit den Namen: "Raum->" anlegt. Dann könnte man an dies an dieser Stelle in etwa so machen:
if(!ma[nxt]) {
          if(ta[ta.length -1] == ""){
            $(tr).replaceWith("<tr class='menuTree closed level"+i1+"' "+
              "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
              "<td><div><a href='#'>"+ta[i1]+"</a><div></div></div></td></tr>");

          } else {
            $(tr).before("<tr class='menuTree closed level"+i1+"' "+
              "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
              "<td><div><a href='#'>"+ta[i1]+"</a><div></div></div></td></tr>");
  }
         
        }


Also wenn der Sub-Raum keinen Namen hat ist dies der Menüeintrag.
Soweit klappt es (Nur in der Anzeige). Ich habe nur keine Ahnung, woher ich den href-Link bekommen könnte. Da bin ich noch am suchen...nicht so einfach für einen Noob in JS...für die eine Zeile habe ich nen halben Tag gebraucht  :)

Vielleicht könnte sich das auch ein Profi eben mal anschauen? Oder ist die Idee müll?

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

bismosa

#80
Hallo,

ich glaube ich habs hinbekommen.  8)
Tschuldigung, wenn ich irgendwelche Regeln dabei verletzt haben sollte. Ich kenne mich einfach nur sehr wenig aus...
Hier ist ein Patch: (Vielleicht gefällt es ja schon so?) Erzeugt mit WinMerge.

--- //server/rootfs/opt/fhem/www/pgm2/fhemweb.js.original Mon Oct 15 18:38:47 2018
+++ //server/rootfs/opt/fhem/www/pgm2/fhemweb.js Tue Oct 16 17:49:34 2018
@@ -912,9 +912,21 @@
       for(var i1=0; i1<ta.length-1; i1++) {
         nxt += "->"+ta[i1];
         if(!ma[nxt]) {
-          $(tr).before("<tr class='menuTree closed level"+i1+"' "+
+          if(ta[ta.length -1] == ""){
+   if($(tr).hasClass("sel")){
+ $(tr).replaceWith("<tr class='menuTreeC closed sel level"+i1+"' "+
+ "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
+ "<td><div><a href='/fhem?room="+spanTxt+"'>"+ta[i1]+"</a><div></div></div></td></tr>");
+   } else {
+ $(tr).replaceWith("<tr class='menuTreeC closed level"+i1+"' "+
+ "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
+ "<td><div><a href='/fhem?room="+spanTxt+"'>"+ta[i1]+"</a><div></div></div></td></tr>"); 
+   }
+          } else {
+            $(tr).before("<tr class='menuTreeC closed level"+i1+"' "+
               "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
               "<td><div><a href='#'>"+ta[i1]+"</a><div></div></div></td></tr>");
+   }
         }
         ma[nxt] = true;
         lst = nxt;
@@ -928,27 +940,36 @@
   if(fnd) {
     $("head").append(
       "<style>"+
-        "tr.menuTree { cursor:pointer; }"+
+        "tr.menuTreeC { cursor:pointer; }"+
+        "tr.menuTree { cursor:default; }"+
         "tr.menuTree.level1 > td > div { margin-left:10px; }"+
+ "tr.menuTreeC.level1 > td > div { margin-left:10px; }"+
         "tr.menuTree.level2 > td > div { margin-left:20px; }"+
+ "tr.menuTreeC.level2 > td > div { margin-left:20px; }"+
         "tr.menuTree.level3 > td > div { margin-left:30px; }"+
+ "tr.menuTreeC.level3 > td > div { margin-left:30px; }"+
         "tr.menuTree.open { font-weight: bold; }"+
+ "tr.menuTreeC.open { font-weight: bold; }"+
         "tr.menuTree > td > div > div { "+
           "display:inline-block; width:1em; height:1em; float:right;"+
           "background-size: contain; background-repeat: no-repeat;"+
         "}"+
+ "tr.menuTreeC > td > div > div { "+
+          "display:inline-block; width:1em; height:1em; float:right;"+
+          "background-size: contain; background-repeat: no-repeat;"+
+        "}"+
       "</style>");
     var t = $("div#menu table.room");
     $(t).find("tr[data-mTree]").not(".level0").hide();
-    $(t).find("tr.menuTree").click(function(){treeClick(this)});
-    $(t).find("tr.menuTree > td > div > div")
+    $(t).find("tr.menuTreeC").click(function(){treeClick(this)});
+    $(t).find("tr.menuTreeC > td > div > div")
         .css("background-image", "url('"+FW_arrowRight+"')");
     var selRoom = $("div#content").attr("room");
     if(selRoom) {
       var ta = selRoom.split("->"), nxt="";
       for(var i1=0; i1<ta.length-1; i1++) {
         nxt += FW_escapeSelector("->"+ta[i1]);
-        treeClick($(t).find("tr.menuTree[data-nxt="+nxt+"]"));
+        treeClick($(t).find("tr.menuTreeC[data-nxt="+nxt+"]"));
       }
     }
   }
@@ -965,8 +986,12 @@
         .hide().addClass("closed");
       $(el).find("div>div").css("background-image", "url('"+FW_arrowRight+"')");
     }
-    $(el).toggleClass("closed");
-    $(el).toggleClass("open");
+ //Nur bei aufkappenden Menüs (sonst Festtschrift)
+ if ($(el).find("div>div").length > 0){
+ $(el).toggleClass("closed");
+ $(el).toggleClass("open");
+ }
+   
   };
}


Was ich jetzt eigentlich gemacht habe (hier ein paar Kommentare):

if(ta[ta.length -1] == ""){ //Wenn der Raum mit "->" endet (also das letzte Element im Array leer ist), ist dies der Eltern-Knoten
  if($(tr).hasClass("sel")){ //Wenn ausgewählt auch die class "sel" mit hinzufügen (Dann funktioniert auch die Markierung des Eltern-Knotens)
$(tr).replaceWith("<tr class='menuTreeC closed sel level"+i1+"' "+
"data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
"<td><div><a href='/fhem?room="+spanTxt+"'>"+ta[i1]+"</a><div></div></div></td></tr>"); //den href füge ich jetzt so hinzu...ist das ok?
  } else {
$(tr).replaceWith("<tr class='menuTreeC closed level"+i1+"' "+
"data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
"<td><div><a href='/fhem?room="+spanTxt+"'>"+ta[i1]+"</a><div></div></div></td></tr>");  //den href füge ich jetzt so hinzu...ist das ok?
  }
          } else {  //der bisherige Weg...funktioniert weiterhin!
            $(tr).before("<tr class='menuTreeC closed level"+i1+"' "+
              "data-mTree='"+lst+"' data-nxt='"+nxt+"'>"+
              "<td><div><a href='#'>"+ta[i1]+"</a><div></div></div></td></tr>");
  }


Hier habe ich die Styles hinzugefügt "menuTreeC". So kann ich den Cursor nur beim "Eltern-Knoten" als pointer setzen. Mich persönlich hatte es beim testen gestört, dass man auch neben einen Texteintrag klicken konnte ohne das was passierte.

$("head").append(
      "<style>"+
        "tr.menuTreeC { cursor:pointer; }"+
        "tr.menuTree { cursor:default; }"+
        "tr.menuTree.level1 > td > div { margin-left:10px; }"+
"tr.menuTreeC.level1 > td > div { margin-left:10px; }"+
        "tr.menuTree.level2 > td > div { margin-left:20px; }"+
"tr.menuTreeC.level2 > td > div { margin-left:20px; }"+
        "tr.menuTree.level3 > td > div { margin-left:30px; }"+
"tr.menuTreeC.level3 > td > div { margin-left:30px; }"+
        "tr.menuTree.open { font-weight: bold; }"+
"tr.menuTreeC.open { font-weight: bold; }"+
        "tr.menuTree > td > div > div { "+
          "display:inline-block; width:1em; height:1em; float:right;"+
          "background-size: contain; background-repeat: no-repeat;"+
        "}"+
"tr.menuTreeC > td > div > div { "+
          "display:inline-block; width:1em; height:1em; float:right;"+
          "background-size: contain; background-repeat: no-repeat;"+
        "}"+
      "</style>");


Und hier nur hinzufügen, wenn es ein Eltern-Knoten ist.

$(t).find("tr.menuTreeC").click(function(){treeClick(this)});
    $(t).find("tr.menuTreeC > td > div > div")
        .css("background-image", "url('"+FW_arrowRight+"')");
    var selRoom = $("div#content").attr("room");
    if(selRoom) {
      var ta = selRoom.split("->"), nxt="";
      for(var i1=0; i1<ta.length-1; i1++) {
        nxt += FW_escapeSelector("->"+ta[i1]);
        treeClick($(t).find("tr.menuTreeC[data-nxt="+nxt+"]"));
      }
    }


Fettschrift ebenfalls nur beim Eltern-Knoten.

//Nur bei aufkappenden Menüs (sonst Festtschrift)
if ($(el).find("div>div").length > 0){
$(el).toggleClass("closed");
$(el).toggleClass("open");
}


Wie es funktioniert:
Wie bisher...wenn man aber einen Raum "Hauptraum->" anlegt, wird dies der Eltern-Knoten der auch angeklickt werden kann.
Wenn man auf den Pfeil klickt, klappt man nur den Raum aus. Aufgerufen wird der Raum "nur" mit einem Klick auf die Beschriftung. (Wie bei allen anderen Räumen auch).
Also:

Ebene1->,
Ebene1->E1_Eintrag1
Ebene1->E1_Eintrag2
Ebene1->Ebene2->
Ebene1->Ebene2->E2_Eintrag1
Ebene1->Ebene2->E2_Eintrag2
Ebene1->Ebene2->Ebene3->
Ebene1->Ebene2->Ebene3->E3_Eintrag1
Ebene1->Ebene2->Ebene3->E3_Eintrag2

Dann sieht es so aus wie im Screenshot.

Was meint ihr?

Gruß
Bismosa

[edit]
Hier noch ein bisschen Text für die Commandref(commandref_frame_DE.html)

   Mit -&gt; werden R&auml;ume strukturiert, z.Bsp. OG-&gt;Schlafzimmer<br>
   Soll in dem &uuml;bergeordnetem Raum das Ger&auml;t hinzugef&uuml;gt werden, muss dies mit -&gt; enden. z.Bsp.<br>
   OG-><br>
   OG->Schlafzimmer<br>
   OG->Plots-><br>
   OG->Plots->Stromverbrauch<br>
   Resultierendes Men&uuml;:<br>
   OG<br>
   &nbsp;&nbsp;|-Schlafzimmer<br>
   &nbsp;&nbsp;|-Plots<br>
   &nbsp;&nbsp;&nbsp;&nbsp;|-Stromverbrauch<br>
   </li><br>

Vielleicht lässt sich das noch besser erklären?
Englisch:

   The -&gt; string is considered as a structure separator for rooms, e.g. "1st. floor-&gt;Master bedroom".
   Should the device be added to the structure node it must be end with -&gt;. e.g.
   1st. floor-><br>
   1st. floor->Master bedroom<br>
   1st. floor->Plots-><br>
   1st. floor->Plots->Power Consumption<br>
   Resulting menu:<br>
   1st. floor<br>
   &nbsp;&nbsp;|-Master bedroom<br>
   &nbsp;&nbsp;|-Plots<br>
   &nbsp;&nbsp;&nbsp;&nbsp;|-Power Consumption<br>
   </li><br>

Sorry...mein Englisch ist müll  ;)

[/edit]
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

choetzu

Hallo zusammen,

Sehr cool, dieses Feature. Wenn ich mich richtig durchgelesen habe dann kann man die Hierarchie mittels

Attr WEB sortRooms System System->Plots MQTT

realisieren. Bei mir geht es nicht. Es zeigt die 3 Räume System TEST un MQTT untereinander.

Fehlt noch ein Code?

Danke und lg c
Raspi3, EnOcean, Zwave, Homematic

Kai-Alfonso

#82
Zitat von: choetzu am 21 Oktober 2018, 22:48:39
Hallo zusammen,

Sehr cool, dieses Feature. Wenn ich mich richtig durchgelesen habe dann kann man die Hierarchie mittels

Attr WEB sortRooms System System->Plots MQTT

realisieren. Bei mir geht es nicht. Es zeigt die 3 Räume System TEST un MQTT untereinander.

Fehlt noch ein Code?

Danke und lg c

Ich meine, es gibt Probleme mit dem Leerzeichen. Versuche mal

Attr WEB sortRooms System System->Plots.MQTT

Sorry,  jetzt erst gelesen, deswegen der Edit

Ich meine, sortRooms sortiert die Reihenfolge der Räume nur. Du müsstest ein attr $DEVICENAME room System System->Plots.MQTT machen. (Punkt  = Leerzeichen)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

bismosa

Hallo,

ich wüsste nicht, ob dies mit sortRooms gehen würde. (Damit habe ich bisher noch nicht gearbeitet)

Es geht bisher auf jeden Fall über den Raum also:
Attr <Device> room System->Plots MQTT

Das was ich vorher geschrieben habe ist noch nicht weiter eingecheckt.

@rudolfkoenig
So wie ich es bisher gelesen habe bist Du start beschäftigt mit dem f18 (vielen Dank dafür!). Da habe ich jetzt auch gelesen, dass Du das Menü dorthin transferieren möchtest?
Ich möchte die Änderung nicht selbst einchecken. Dafür ist mir das eine zu grundsätzliche Funktion und sollte nur von einem Profi gemacht werden. Wäre aber schön, wenn Du Dich mal kurz dazu äußern könntest. Vielleicht ist das ja auch Schwachsinn, was ich da gemacht habe...dann brauche ich mir da keine weitere Gedanken zu machen...und stempel es einfach mal als Versuch ab :)

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

rudolfkoenig

ZitatDa habe ich jetzt auch gelesen, dass Du das Menü dorthin transferieren möchtest?
Das muss ein Missverstaendnis sein, kannst du mir die Stelle zeigen?

ZitatIch möchte die Änderung nicht selbst einchecken.
Das ist beruhigend, bei Erteilung der Schreibrechte auf dem Quellcode wird darauf hingewiesen, dass man nur die eigenen Dateien modifizieren darf, andere Modifikationen muessen als Patch dem Maintainer im Forum geschickt werden.

ZitatWäre aber schön, wenn Du Dich mal kurz dazu äußern könntest.
Ist auf meiner TODO Liste, ist aber wg. der Groesse der Aenderung, Aufwand fuer die Tests, und Relevanz weiter nach hinten gerutscht.

bismosa

Hallo!
Vielen Dank für die Rückmeldung!

f18.js Zeile 4
Zitat// TODO: hierMenu+Pin,SVGcolors,floorplan
Dann ist das ein Missverständnis. Kein Problem.

ZitatDas ist beruhigend, bei Erteilung der Schreibrechte auf dem Quellcode wird darauf hingewiesen, dass man nur die eigenen Dateien modifizieren darf, andere Modifikationen muessen als Patch dem Maintainer im Forum geschickt werden.
Das hatte ich auch nie vor! Sorry.

ZitatIst auf meiner TODO Liste
Danke für die Rückmeldung! Bitte kein Stress deswegen! Ich bin blutiger Anfänger und habe nur mal ein wenig getüftelt...
Ich wollte mir in dem Zusammenhang auch noch das Zusammenspiel mit den RoomIcons anschauen und ob man da nicht noch mehr "optimieren" kann. Eigentlich finde ich es nicht richtig, das der Html-Code ersetzt wird. Eher in die Richtung addClass etc....aber da bin ich noch nicht weiter gekommen...und wusste dann auch nicht, ob sich der Aufwand lohnt. :)

Vielen Dank!!!!

Gruß
Bismosa
1x nanoCUL 433MHz (SlowRF Intertechno) für Fenstersensoren
1x nanoCUL 868Mhz für MAX (9x HT 1xWT)
1x ZigBee CUL
Weiteres: Squeezebox server, Kindle Display, ESP8266, Löterfahrung, ...

Dirk070

Hallo zusammen,

auch ich bin erst jetzt über dieses coole Feature gestolpert, klasse!!

Eine Frage dazu, kann ich die Elemente auf der obersten Ebene sortieren?
Ich habe es mit sortRooms im WEB versucht, das klappt aber bei mir nicht....

Weder so
attr sortRooms Zentrale Status EG-> OG-> DG UG-> System->

noch so
attr sortRooms Zentrale Status EG OG DG UG System

Vielen Dank vorab und schöne Grüße
Dirk

Invers

aber so:
Wohnung->Wohnzimmer Wohnung->Schlafzimmer Wohnung->Küche
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Dirk070

Ah ok, also müssen alle Elemente inkl. der Unterelemente sortiert werden. Probiere ich aus, Danke Dir!!

xanker

Zitat von: Dirk070 am 08 August 2019, 12:33:52
Ah ok, also müssen alle Elemente inkl. der Unterelemente sortiert werden. Probiere ich aus, Danke Dir!!
Als Alternative mache ich mal Werbung für meinen Style: https://forum.fhem.de/index.php/topic,101749.0.html
Damit kann man alle Menü-Einträge (nicht nur Räume) per Drag'n'Drop' sortieren  :)
Maintainer vom flex Style.
Intel NUC mit fhem in Docker Container | Homematic | SIGNALduino 433MHz | HUE Bridge | Harmony HUB | lepresenced | alexa-fhem ...