Hauptmenü

FHEM App - Manage your Home

Begonnen von Gisbert, 12 März 2021, 15:05:20

Vorheriges Thema - Nächstes Thema

jemu75

Zitat von: tomspatz am 29 März 2021, 16:09:29
in seperaten Dateien, aber selbst wenn ich den ganzen fhemapp Ordner LÖSCHE, inkl. meinen tepl. und dann 3.3.4 OHNE meine templ. wieder hineinkopiere, bleibt "es" leer

Schicke mir bitte mal deine Templates und deine config.json (gern als zip)

tomspatz

ahhhh du bist nicht mehr ganz aktuell  ;)

SIEHE ein post drüber

jemu75

#257
Zitat von: tomspatz am 29 März 2021, 17:07:32
Ja auch verschiedene Geräte, Auch das grüne Verbindungssymbol fehlt.

HA HA HA selber gefunden

VORHER musste ich die config.json NICHT bearbeiten ! Jetzt ab scheinbar 3.3.3 MUSS wieder die IP zum fhem drinstehen.

Das war doch schon mal geändert.

Wenn du die App direkt in fhem installierst, dann kannst du connection in der config.json komplett weglassen. Connection ist nur noch nötig, wenn man die App auf einem separaten Webserver laufen lässt.

Aber super, dass die App wieder läuft.

jemu75

Zitat von: tomspatz am 29 März 2021, 19:17:40
ahhhh du bist nicht mehr ganz aktuell  ;)

SIEHE ein post drüber

Bei mir war noch Winterzeit...  ;D ;D

tomspatz

ZitatWenn du die App direkt in fhem installierst, dann kannst du connection in der config.json komplett weglassen. Connection ist nur noch nötig, wenn man die App auf einem separaten Webserver laufen lässt.

Ja das hatte ich ja schon die ganze Zeit. Der fhemapp Ordner liegt unter /opt/fhem/www/

Das hat ja auch schon die ganzen Tage funktioniert nachdem du das umgebaut hast:
ZitatGenau das war der Bug, den ich in v3.2.1 behoben habe. D.h. wenn man die App direkt in Fhem installiert, dann kann man in der config.json den Punkt connection komplett weglassen.
jetzt funzt es wieder NUR mit eingetragenem Pfad bzw IP.


tomspatz

ZitatBugfix
Anzeige von Devices bei denen room bzw. group in appOptions definiert ist, werden wieder angezeigt.
Hinweis: Wenn in appOptions die Parameter room bzw. group angegeben sind, werden die FHEM Attribute room bzw. group ignoriert.

Das funktionier m.E. nicht sauber.
Habe zwei devices mal probiert.
attr DimmerWohnzimmer appOptions { "template": "dimmer_fibaro_FGD212", "room": "Wohnzimmer", "group": "Licht" }
attr DimmerSchlafzimmer appOptions { "template": "dimmer_fibaro_FGD212", "room": "Schlafzimmer", "group": "Licht" }

Unter Bereiche ist Schlafzimmer NUR noch mit dem device verfügbar, von meinem Verständniss so gewollt.

Unter Bereiche Wohnzimmer sind noch ALLE anderen devices verfügbar das eigentliche fehlt.

Unter Gruppen Licht sind die beiden NICHT da ALLE anderen noch vorhanden.

Ich denke das "Verstecken" tut so dann auch nicht wirklich.



jemu75

Zitat von: tomspatz am 29 März 2021, 19:34:50
Das funktionier m.E. nicht sauber.
Habe zwei devices mal probiert.
attr DimmerWohnzimmer appOptions { "template": "dimmer_fibaro_FGD212", "room": "Wohnzimmer", "group": "Licht" }
attr DimmerSchlafzimmer appOptions { "template": "dimmer_fibaro_FGD212", "room": "Schlafzimmer", "group": "Licht" }

Unter Bereiche ist Schlafzimmer NUR noch mit dem device verfügbar, von meinem Verständniss so gewollt.

Unter Bereiche Wohnzimmer sind noch ALLE anderen devices verfügbar das eigentliche fehlt.

Unter Gruppen Licht sind die beiden NICHT da ALLE anderen noch vorhanden.

Ich denke das "Verstecken" tut so dann auch nicht wirklich.

Mach mal bitte ein list appOptions!= appOptions in deiner FHEM Kommandozeile und schicke mal das Ergebnis.

tomspatz

ZitatMach mal bitte ein list appOptions!= appOptions in deiner FHEM Kommandozeile und schicke mal das Ergebnis.

Bitteschön
Balkon_47                { "template": "light" }
Balkon_47.02             { "template": "switch" }
BalkontuerWohnzimmer_69     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
DimmerSchlafzimmer       { "template": "dimmer_fibaro_FGD212", "room": "Schlafzimmer", "group": "Licht" }
DimmerWohnzimmer         { "template": "dimmer_fibaro_FGD212", "room": "Wohnzimmer", "group": "Licht" }
FensterBad               { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterBuero             { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterKueche            { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterSchlafzimmerLinks     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterSchlafzimmerRechts     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FunkDose1                { "template": "switch" }
FunkDose2                { "template": "switch" }
HeizungReglerKueche      { "template": "thermostat_dummy", "connected": { "receiver": "ThermostatKueche_75", "valve": "ThermostatKueche_75" } }
KuecheArbeitsflaecheLinks_55     { "template": "light" }
KuecheArbeitsflaecheRechts_56     { "template": "light" }
KuecheArbeitsflaecheRechts_56.02     { "template": "light" }
KuecheFensterLinks_49     { "template": "switch" }
LichtBad                 { "template": "light" }
LichtBad_30.02           { "template": "light" }
LichtBuero1A             { "template": "light" }
LichtBuero1B             { "template": "switch" }
LichtBueroGabi           { "template": "light" }
LichtFlur                { "template": "light" }
LichtFlurSpiegel         { "template": "light" }
LichtKammer              { "template": "light" }
LichtKueche              { "template": "light" }
LichtSchlafzimmerSchrank1A     { "template": "light" }
LichtSchlafzimmerSchrank1B     { "template": "light" }
LichtWC                  { "template": "light" }
LichtWerkstatt           { "template": "light" }
LichtWohnzimmerFenster_68     { "template": "light" }
LichtWohnzimmerSchrank1A     { "template": "light" }
LichtWohnzimmerSchrank1B     { "template": "switch" }
LichtWohnzimmerSchrank2A     { "template": "light" }
LichtWohnzimmerSchrank2B     { "template": "light" }
RolloBad                 { "template": "shutter_rademacher" }
RolloBalkontuerWZ        { "template": "shutter_rademacher" }
RolloBuero               { "template": "shutter_rademacher" }
RolloKueche              { "template": "shutter_rademacher" }
RolloSZ                  { "template": "shutter_rademacher" }
RolloWZ                  { "template": "shutter_rademacher" }
Suedring111              {
  "panel": {
    "status": ["state:home::100:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}
SunAutomaticSteuerung     { "template": "switch", "setup":
     { "info": {"left1": ["state:on::mdi-weather-sunny","state:off::mdi-weather-sunny-off"]
    }
}
}
TemperaturAnzeigeWC      { "template": "thermometer", "setup":
{ "main":[{
      "text": ["temperatur::%n.1°C"],
      "text2": ["humidity::%n%"]
    }],
"info": {"left1": ["temperatur:0::mdi-thermometer","temperatur:::mdi-snowflake"],
    "right1": ["battery:ok::mdi-battery","battery:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
TemperaturAnzeigeWerkstatt     { "template": "thermometer", "setup":
{ "main":[{
      "text": ["temperatur::%n.1°C"],
      "text2": ["humidity::%n%"]
    }],
"info": {"left1": ["temperatur:0::mdi-thermometer","temperatur:::mdi-snowflake"],
    "right1": ["battery:ok::mdi-battery","battery:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
TemperaturFuehlerBad     { "template": "thermometer" }
TemperaturFuehlerBuero     { "template": "thermometer" }
TemperaturFuehlerKueche     { "template": "thermometer" }
TemperaturFuehlerSchlafzimmer     { "template": "thermometer" }
TemperaturFuehlerWohnzimmer_69.02     { "template": "thermometer" }
Waeschetrockner          { "template": "switch" }
WerkstattZentralDummy     { "template": "switch", "setup":
     { "info": {"left1": ["state:on::mdi-power","state:off::mdi-power-off"]
    }
}
}
WerkstattZentral_54.02     { "template": "light" }
panel_1                  { "template": "panel", "dashboard": "true", "connected": { "Gabi": "rr_Gabi", "<bez2>": "rr_Tom", "<bez3>": "Suedring111" } }
panel_2                  { "template": "panel", "dashboard": "true", "connected": { "Gabi": "rr_Gabi", "<bez2>": "rr_Tom", "<bez3>": "Suedring111" } }
rr_Gabi                  {
  "panel": {
    "status": ["state:home:anwesend:100:success", "state:absent:abwesend:50:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}
rr_Tom                   {
  "panel": {
    "status": ["state:home:anwesend:100:success", "state:absent:abwesend:50:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}

jemu75

Zitat von: tomspatz am 29 März 2021, 19:59:05
Bitteschön
Balkon_47                { "template": "light" }
Balkon_47.02             { "template": "switch" }
BalkontuerWohnzimmer_69     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
DimmerSchlafzimmer       { "template": "dimmer_fibaro_FGD212", "room": "Schlafzimmer", "group": "Licht" }
DimmerWohnzimmer         { "template": "dimmer_fibaro_FGD212", "room": "Wohnzimmer", "group": "Licht" }
FensterBad               { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterBuero             { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterKueche            { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterSchlafzimmerLinks     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FensterSchlafzimmerRechts     { "template": "contact", "setup":
{
"info": {"left1": ["state:closed::mdi-door","state:open::mdi-door-open"],
    "right1": ["batteryState:ok::mdi-battery","batteryState:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
FunkDose1                { "template": "switch" }
FunkDose2                { "template": "switch" }
HeizungReglerKueche      { "template": "thermostat_dummy", "connected": { "receiver": "ThermostatKueche_75", "valve": "ThermostatKueche_75" } }
KuecheArbeitsflaecheLinks_55     { "template": "light" }
KuecheArbeitsflaecheRechts_56     { "template": "light" }
KuecheArbeitsflaecheRechts_56.02     { "template": "light" }
KuecheFensterLinks_49     { "template": "switch" }
LichtBad                 { "template": "light" }
LichtBad_30.02           { "template": "light" }
LichtBuero1A             { "template": "light" }
LichtBuero1B             { "template": "switch" }
LichtBueroGabi           { "template": "light" }
LichtFlur                { "template": "light" }
LichtFlurSpiegel         { "template": "light" }
LichtKammer              { "template": "light" }
LichtKueche              { "template": "light" }
LichtSchlafzimmerSchrank1A     { "template": "light" }
LichtSchlafzimmerSchrank1B     { "template": "light" }
LichtWC                  { "template": "light" }
LichtWerkstatt           { "template": "light" }
LichtWohnzimmerFenster_68     { "template": "light" }
LichtWohnzimmerSchrank1A     { "template": "light" }
LichtWohnzimmerSchrank1B     { "template": "switch" }
LichtWohnzimmerSchrank2A     { "template": "light" }
LichtWohnzimmerSchrank2B     { "template": "light" }
RolloBad                 { "template": "shutter_rademacher" }
RolloBalkontuerWZ        { "template": "shutter_rademacher" }
RolloBuero               { "template": "shutter_rademacher" }
RolloKueche              { "template": "shutter_rademacher" }
RolloSZ                  { "template": "shutter_rademacher" }
RolloWZ                  { "template": "shutter_rademacher" }
Suedring111              {
  "panel": {
    "status": ["state:home::100:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}
SunAutomaticSteuerung     { "template": "switch", "setup":
     { "info": {"left1": ["state:on::mdi-weather-sunny","state:off::mdi-weather-sunny-off"]
    }
}
}
TemperaturAnzeigeWC      { "template": "thermometer", "setup":
{ "main":[{
      "text": ["temperatur::%n.1°C"],
      "text2": ["humidity::%n%"]
    }],
"info": {"left1": ["temperatur:0::mdi-thermometer","temperatur:::mdi-snowflake"],
    "right1": ["battery:ok::mdi-battery","battery:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
TemperaturAnzeigeWerkstatt     { "template": "thermometer", "setup":
{ "main":[{
      "text": ["temperatur::%n.1°C"],
      "text2": ["humidity::%n%"]
    }],
"info": {"left1": ["temperatur:0::mdi-thermometer","temperatur:::mdi-snowflake"],
    "right1": ["battery:ok::mdi-battery","battery:::mdi-battery-10"],
    "right2": ["Activity:alive::mdi-wifi","Activity:::mdi-wifi-off"]}
}
}
TemperaturFuehlerBad     { "template": "thermometer" }
TemperaturFuehlerBuero     { "template": "thermometer" }
TemperaturFuehlerKueche     { "template": "thermometer" }
TemperaturFuehlerSchlafzimmer     { "template": "thermometer" }
TemperaturFuehlerWohnzimmer_69.02     { "template": "thermometer" }
Waeschetrockner          { "template": "switch" }
WerkstattZentralDummy     { "template": "switch", "setup":
     { "info": {"left1": ["state:on::mdi-power","state:off::mdi-power-off"]
    }
}
}
WerkstattZentral_54.02     { "template": "light" }
panel_1                  { "template": "panel", "dashboard": "true", "connected": { "Gabi": "rr_Gabi", "<bez2>": "rr_Tom", "<bez3>": "Suedring111" } }
panel_2                  { "template": "panel", "dashboard": "true", "connected": { "Gabi": "rr_Gabi", "<bez2>": "rr_Tom", "<bez3>": "Suedring111" } }
rr_Gabi                  {
  "panel": {
    "status": ["state:home:anwesend:100:success", "state:absent:abwesend:50:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}
rr_Tom                   {
  "panel": {
    "status": ["state:home:anwesend:100:success", "state:absent:abwesend:50:success"],
    "btn": ["state:home:account-check", "state:absent:account-clock", "state:gone:account-off"]
  }
}


Danke Dir. Soweit ich das sehe, hast Du für einige Devices room und group in appOptions definiert und für andere nicht.   Ich empfehle dir, room und group konsequent für alle devices in appOptions zu definieren, wenn du aus bestimmten Gründen die FHEM Attribute room und group nicht nutzen möchtest. Eine "Mischen" der beiden Ansätze wird nicht funktionieren. Ich halte das auch für keine gute Idee bzgl. der Fehlersuche, wenn du Räume bzw. Gruppen mal so und mal so pflegst. Also entweder alles über appOptions oder alles über FHEM Attribute. Dann läuft es auch bei Dir.  :)

Benni

Zitat von: jemu75 am 29 März 2021, 21:00:00
Ich empfehle dir, room und group konsequent für alle devices in appOptions zu definieren, wenn du aus bestimmten Gründen die FHEM Attribute room und group nicht nutzen möchtest. Eine "Mischen" der beiden Ansätze wird nicht funktionieren. Ich halte das auch für keine gute Idee bzgl. der Fehlersuche, wenn du Räume bzw. Gruppen mal so und mal so pflegst. Also entweder alles über appOptions oder alles über FHEM Attribute. Dann läuft es auch bei Dir.  :)

Hallo Jens,

da möchte ich mal mit meinen heutigen Beobachtungen anknüpfen.
Ich bin grundsätzlich von dem Ansatz, den fhemapp verfolgt, nämlich möglichst auf da, was in FHEM schon das ist aufzusetzen, sehr angetan. Dennoch habe ich mich dazu entschlossen, room und group (konsequent) unabhängig von FHEM zu definieren, schon alleine deswegen, weil ich zum einen meine Räume hierarchisch aufgebaut habe und zudem viele devices in mehreren Räumen habe, was ich in fhemapp nicht unbedingt genau so möchte. So weit, so gut und funktioniert auch!

Heute habe ich dann mal damit angefangen, mir ein Panel zu definieren, was grundsätzlich auch soweit geklappt hat. Die 3 Panelitems auf meinem Panel sind 3 Structures aus FHEM, bei denen lediglich die "panel"-Option in den appOptions festgelegt ist. Dennoch werden nun anscheinend die FHEM-Attribute room und group der dieser Structures ausgewertet und in fhemapp unter Bereiche und Gruppen bereitgestellt, allerdings wird darin dann nichts angezeigt, da die Structures kein Template definiert haben. Das möchte ich auch gar nicht, ich möchte die lediglich über das Panel darstellen.

Eventuell sollte man die Auswertung der room und group Attribute aus FHEM auf fhemapp-Seite auf devices beschränken, bei denen auch ein template definiert ist. So wie es aussieht, werden devices mit Template "panel" bereits ausgefiltert. ;)

Bei der Pane-Definition sind mir dann noch 2 Dinge aufgefallen, bzw. 2 Fragen gekommen:

1.) Wozu dient bei der Panel-Definition (also am Panel-Dummy-Device) unter "connected" die Bezeichnung (<bezX>)? Sie wird anscheinend nirgends angezeigt.
2.) Wieso wird für das Panel ein zusätzliches Device benötigt? Man könnte doch die Panels, zu dem ein PanelItem gehört, direkt in der "panel"-Option im jeweiligen PanelItem angeben und das Panel daraus zusammenstellen. Also irgendwie in der Art:

{
  "panel": {
    "panels": ["mainPanel","otherPanel"]
    "status": ["reading:wert:text:level:color"],
    "btn": ["reading:wert:icon"],
    "click": ["reading:wert:cmd"],
    "link": "string",
  }
}


gb#

Jamo

#265
Hallo Jens,
kann man das evtl noch so machen (oder wie kann man das machen), das ein device nicht in einer Gruppe oder einem Raum auftaucht?
Beispiel: sysmon, da würde es mir reichen, wenn der nur im 'system' auftauchen würde (also "system": "true").

Gibts sowas wie "room": "none", oder "group": "none" (oder "room": "noroom", oder "group": "nogroup"), oder vielleicht "room": "hidden", und"group": "hidden"?

"room": "", "group": "" -> da nimmt er die attribute aus FHEM.
"room": " ", "group": " " -> da gibts einfach einen 'leeren' raum oder group.

Das ist vielleicht auch das was tomspatz meint?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

jemu75

#266
Zitat von: Jamo am 29 März 2021, 21:30:55
Hallo Jens,
kann man das evtl noch so machen (oder wie kann man das machen), das ein device nicht in einer Gruppe oder einem Raum auftaucht?
Beispiel: sysmon, da würde es mir reichen, wenn der nur im 'system' auftauchen würde (also "system": "true").

Gibts sowas wie "room": "none", oder "group": "none" (oder "room": "noroom", oder "group": "nogroup"), (oder "room": "hidden", oder "group": "hidden")?

Das ist vielleicht auch das was tomspatz meint?

Wenn man in dem gewünschten Device weder das FHEM Attribut room bzw. group setzt, noch die Zuordnung über appOptions vornimmt, dann taucht das Device nicht in den Menüpunkten "Gruppen" bzw. "Bereichen" auf.
So habe ich das z.B. mit sysmon und hmlan gemacht.

Jamo

#267
ZitatWenn man in dem gewünschten Device weder das FHEM Attribut room bzw. group setzt, noch die Zuordnung über appOptions vornimmt, dann taucht das Device nicht in den Menüpunkten "Gruppen" bzw. "Bereichen" auf.
So habe ich das z.B. mit sysmon und hmlan gemacht.
Ja gut, dann müsste ich das FHEM attribut löschen, damit mache ich mir aber meine mühevoll zusammengebastelte FHEM WEB Oberfläche für die Verwaltung ein bischen unbrauchbar.
Ich denke mal nach. Danke!

PS: Dann gibts ab jetzt bei mir einen Raum 'Z' und eine Gruppe 'Z' für ein Sammelbecken, was ich nicht in einem room oder group angucken will :-)
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

KernSani

Hallo Jens,
Ich habe das Ding jetzt auch mal angesehen. Sehr hübsch das Ganze. Auch dass viele FHEM Attribute übernommen werden und das Ganze über die FHEM Oberfläche konfigurierbar ist gefällt mir sehr gut. Was mich aber grundsätzlich bei diesen ganzen TabletUIs und sonstigen alternativen Frontends stört, ist die Tatsache, dass ich - im Prinzip - auch hier wieder mein mit den FHEMWEB-Bordmitteln gebautes UI nachbauen müsste. Gäbe es eine (einfache) Möglichkeit einfach alles aus einer FHEMWEB-Instanz zu übernehmen, dabei Gruppierungen (als Panels), Reihenfolgen (columns-Attribut), hiddenrooms, hiddengroups usw... zu berücksichtigen? Als Template könnte ja erstmal der genericDeviceType dienen. Damit wären 90% meiner Arbeit schon erledigt und ich müsste nur noch für den Feinschliff sorgen... Ich fürchte, das ist nur ein schöner Traum von mir, oder?
Grüße,
Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

jemu75

Zitat von: Benni am 29 März 2021, 21:30:06
Hallo Jens,

da möchte ich mal mit meinen heutigen Beobachtungen anknüpfen.
Ich bin grundsätzlich von dem Ansatz, den fhemapp verfolgt, nämlich möglichst auf da, was in FHEM schon das ist aufzusetzen, sehr angetan. Dennoch habe ich mich dazu entschlossen, room und group (konsequent) unabhängig von FHEM zu definieren, schon alleine deswegen, weil ich zum einen meine Räume hierarchisch aufgebaut habe und zudem viele devices in mehreren Räumen habe, was ich in fhemapp nicht unbedingt genau so möchte. So weit, so gut und funktioniert auch!

Heute habe ich dann mal damit angefangen, mir ein Panel zu definieren, was grundsätzlich auch soweit geklappt hat. Die 3 Panelitems auf meinem Panel sind 3 Structures aus FHEM, bei denen lediglich die "panel"-Option in den appOptions festgelegt ist. Dennoch werden nun anscheinend die FHEM-Attribute room und group der dieser Structures ausgewertet und in fhemapp unter Bereiche und Gruppen bereitgestellt, allerdings wird darin dann nichts angezeigt, da die Structures kein Template definiert haben. Das möchte ich auch gar nicht, ich möchte die lediglich über das Panel darstellen.

Eventuell sollte man die Auswertung der room und group Attribute aus FHEM auf fhemapp-Seite auf devices beschränken, bei denen auch ein template definiert ist. So wie es aussieht, werden devices mit Template "panel" bereits ausgefiltert. ;)

Bei der Pane-Definition sind mir dann noch 2 Dinge aufgefallen, bzw. 2 Fragen gekommen:

1.) Wozu dient bei der Panel-Definition (also am Panel-Dummy-Device) unter "connected" die Bezeichnung (<bezX>)? Sie wird anscheinend nirgends angezeigt.
2.) Wieso wird für das Panel ein zusätzliches Device benötigt? Man könnte doch die Panels, zu dem ein PanelItem gehört, direkt in der "panel"-Option im jeweiligen PanelItem angeben und das Panel daraus zusammenstellen. Also irgendwie in der Art:

{
  "panel": {
    "panels": ["mainPanel","otherPanel"]
    "status": ["reading:wert:text:level:color"],
    "btn": ["reading:wert:icon"],
    "click": ["reading:wert:cmd"],
    "link": "string",
  }
}


gb#

Hallo Benni,

danke Dir für deine Anregungen. Wenn in "appOptions" der Parameter "template" nicht gesetzt ist, dann sollte room bzw. group auch irgnoriert werden. Ich prüfe mal, ob das so ist und korrigiere falls es nicht so sein sollte.

Zu den zwei Fragen:
zu 1) Ich hole zum Parameter "connected" mal kurz aus. Hauptsächlich kommt "connected" bei Templates zum Einsatz, bei denen Daten aus mehreren FHEM-Devices angezeigt werden. (z.B. Thermostate in Verbindung mit Ventilen) Damit man in solchen Templates das richtige Reading ansprechen kann, muss jedes "connected-Device" einen eindeutigen Namen bekommen. Im Falle der Panels mache ich mir "connected" zu Nutze, um die PanelItems ins Panel zu bringen. Da die PanelItems als "Liste" verarbeitet werden, spielt die Bezeichnung hier tatsächlich keine Rolle. Du kannst die also mit "1": ..., "2": ... "3": ... oder irgendwas anderem bezeichnen.
zu 2) genau den Ansatz habe ich in einem führen Entwicklungsstand auch schon mal verfolgt, da es mir einfach erschien in appOptions einen Parameter "panel" zu schaffen und dann alle mit gleichem Name in einem Panel zusammen zu fassen. Ich habe das jedoch verworfen, da man im Panel selbst auch einiges definieren kann/muss (z.B. Raum, Gruppe, Home, Sortierung, Elemente im Infobereich) Damit hat das "Panel" ein eigene Daseinsberechtigung bekommen. Den umgekehrten Ansatz hatte ich übrigens auch mal versucht und im Panel alle PanelI-tems inkl. Definition wie sich jedes PanelItem verhalten soll. Ging grundsätzlich auch. Allerdings waren das monströse Definitionen ;)

Beste Grüße
jens.