Umstieg von 3 auf 4 - Connected und andere dinge

Begonnen von draddy, 17 Januar 2025, 10:45:26

Vorheriges Thema - Nächstes Thema

draddy

Hi,
schon was länger her, aber bis jetzt lief bei der 3er alles, als ich nun etwas ergänzen wollte, habe ich gesehen das unser Jens sehr fleißig war und es Version 4 gibt.

Da diese beim 1. überfliegen sehr viele vorteile bringt, die ich bei 3 vermisst habe, fange ich langsam mit 4 an, aber es gibt stolpersteine :D

bei 3 gab es die Connected Panels womit man mehrere devices in einem panel sehen und schalten konnte. Das soll mit 4 auch irgendwie gehen, da man ja mehrere device Keys machen kann und so mehrere Devices in ein Panel machen kann, nur, irgendwie erscheinen im Panel die anderen dann nicht?

ne andere sache, ehr kleinigkeit, bei 3 konnte man wenn man nen Slider gebaut hat,  diesen "benennen" sah z.b. so aus

    {
"leftBtn": "mdi-power-off",
"leftClick": ["state::off"],
"text": "DIM",
"slider": ["pct::pct %v:%n:0:100:1"],
"rightBtn": "mdi-power-on",
"rightClick": ["state::on"]
    }

damit stand vor dem Slider DIM - habe das gemacht um den Dimmer vom Colortemp Slider z.b. kenntlich zu machen.
Das gibts gar nicht mehr oder?

schon mal danke fürs öffnen der knoten in meinem Kopf :D
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Hallo Draddy,

schön, dass Du auf Version 4 umsteigen möchtest.

Ja, eine der wesentlichen Änderungen in Version 4, ist die Art, wie man mehrere FHEM Devices mit einem Panel verknüpft.
In den Templates kann man jetzt Devicekeys definieren. Das sind faktisch Variablen, denen man im Panel dann ein bestimmtes FHEM Device zuordnet. Wichtig ist, dass man in der Template- oder Panelkonfiguration, die Variable richtig verwendet.

Ich habe das verschiedene Beispiele in der Hilfe beschrieben.

Hast du schon ein Template oder ein Panel konfiguriert? Wenn ja, schicke gern mal die Konfiguration. So kann ich sicher am besten weiter helfen.

Das Thema mit dem Slider gehen wir als nächstes an.

Beste Grüße
Jens :)

draddy

Moin Jens,

also normales Panle habe ich am laufen, habe auch mein ShellyDuo mit "doppel Main" wieder hingebracht wo man umschalten kann zwischen DIM und CT Slider ... nur für die Multi dinger fehlt mir gerade noch irgendwo der Hint.

Das mit den DeviceKeys habe ich glaub inzwischen auch verstanden! Das war in 3 so nicht nötig, und da wo man ähnliche gebraucht hat hatten wir am ende irgendeine ersetzung, welche immer auf das Device gezeigt hat (in einigen wenigen Fällen haben wir ja spezifische fhem befehle gebraucht ...) seis drum ... hier mein kläglicher versuch eines Multipanels ... leider, wiegesagt, taucht nur die Jens_Light auf.

{
"name": "Jens",
"template": "switch",
"panel": {
"devices": [
"switch:Jens_Light",
"switch2:Jens_Displays"
],
"navigation": [
"Home"
]
},
"status": {},
"main": [
{
"level": {}
}
],
"info": {}
}


eine andere sache dir mir aufgefallen ist, Hast du die Formatierung extra umgestellt, oder ist das jetzt vom Framework so? Beispiel:
{
"level": {
"mid": "slider",
"left1": "btn",
"right2": "btn"
},
"mid": {
"slider": [
"dimmer-pct::set dimmer pct %v:%n(0):success:0:100"
],
"size": [
"8"
]
},
"left1": {
"btn": [
"::mdi-lightbulb-outline"
],
"click": [
"::set dimmer off"
]
},
"right2": {
"btn": [
"::mdi-lightbulb-on-outline"
],
"click": [
"::set dimmer on"
]
}
}

dieser recht aufgeblähnte Main Ausdruck, hat mir in der alten Formatierung alla
{
"level": {
"mid": "slider",
"left1": "btn",
"right2": "btn"
},
"mid": {
"slider": ["dimmer-pct::set dimmer pct %v:%n(0):success:0:100"],
"size": ["8"]
},
"left1": {
"btn": ["::mdi-lightbulb-outline"],
"click": ["::set dimmer off"]
},
"right2": {
"btn": ["::mdi-lightbulb-on-outline"],
"click": ["::set dimmer on"]
}
}
einfach deutlich besser gefallen  (von der lesbarkeit und so) klar, kann ich am ende machen wie ich will, aber gerade in punkto, dass ich ja eventuell doch das ein oder andere Template wieder frei gebe /  hier teile, versuche ich mich dann schon immer an den gegebenen Style zu halten.

so long
(der andere) Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Hallo Jens,

du hast in deinem Panel mit dem Name "Jens" auf das Template "switch" verwiesen. Damit ich prüfen kann, weshalb es noch nicht funktioniert, bräuchte ich bitte das Template mit dem Name "switch".

Bezüglich der JSON-Formatierung gibt es folgende Veränderung zwischen V3 und V4.
In V3 wurde der JSON-String direkt im FHEM-Attribute "appOptions" als reiner Text abgelegt. Eine Validierung der JSON-Definitionen gab es in V3 nicht.
In V4 wird die gesamte Konfiguration in ein separates JSON-File geschrieben und auch validiert. Zudem wurde mit V4 eine Oberfläche zur Bearbeitung aller Einstellungen bereitgestellt. Deshalb ist eine Bearbeitung der Konfiguration in JSON nicht unbedingt nötig. Die Umbrüche und Tabs werden nur in der JSON-Ansicht (und automatisch) erzeugt. Aktuell ist nicht geplant, "individuelle Formatierungen" der JSON-Definitionen in die Konfiguration zu schreiben, da diese durch Leerzeichen, Tabs und Zeilenumbrüche dann auch unnötig aufgebläht wird.

Beste Grüße
Jens :)

draddy

Moin,

bin tatsächlich ein guten Schritt weiter gekommen.

wenn ich das richtig verstehe, muss ich das Panel 1. expanden, 2. muss ich für jedes device einen Mainpart anlegen.

In summe sind diese Multipanels damit natürlich nicht mehr so schlank schnell dynamisch gemacht wie in der 3er - allerdings macht man das ja gsd nicht jedentag für all seine devices. also  egal xD


gibt es die Möglichkeit, einen Horizontalen Divider zu machen (Vertikal geht ja zwischen Left Mid Right)?

Hänge meine Multipanel vorlage mal an, ob das so im sinne des erfinders ist, bin für vorschläge offen :D


aber, bin irgendeinem Bug auf der Spur, vll. kannst du aber schon abhilfe schaffen und mein Wissen ergänzen:
Habe eine Vorlage gemacht die ich für den Shelly 2.5 im relay mode Nutze - also letztlich doppelter Lichtschalter. Im grunde nutzt relay 0 die vorlage, für relay 1 kopiere status und main in den raw vom Device - und ändere 0 zu 1 ... dabei hatte ich wohl den info part gelöscht und gespeichert ....
Ergebnis ist sehr ärgerlich: in den Einstellungen und Panels werden KEINE Panels mehr angezeigt. Die angelegten sind da, fuktionieren auch, aber ich kann nichts mehr bearbeiten.
Das einzige wie ich mir helfen konnte, war den config file zu öffnen, das besagte device raus schneiden und dann die  config neu einlesen zu lassen.

Hier fände ich eine art "ACHTUNG TU DAS NICHT" ganz schick. Was mir aber da echt aufgefallen ist. wenn es soo einfach ist die Config komplett zu zerlegen. wäre es nicht ein Überlegung ein Backup erstellen zu lassen wenn man auf SAVE drückt, und im FHEM Device für die APP die möglichkeit zu geben "Lade Backupconfig"?

OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Himbi777

Hi Draddy
Der horizontale Divider wird in der entsprechenden Ebene programmiert.

Für ein Backup legst du dir einfach eine zweite FHEMAPP-Instanz an. Du kopierst dann das Config.json der ersten Instanz nachts in deine zweite Instanz.
Backup-Befehl:
`sudo cp /opt/fhem/conf/fhem4_config.fhemapp.json /opt/fhem/conf/fhem4backup_config.fhemapp.json`;;

Restore-Befehl:
`sudo cp /opt/fhem/conf/fhem4backup_config.fhemapp.json /opt/fhem/conf/fhem4_config.fhemapp.json`;;

Ich hab es auch schon das ein- oder andere Mal benötigt.

Gruß Gerhard
Raspberry Pi4, OMV, FHEM, FHEM-App // Tasmota-Geräte, Zigbee2Tasmota, 433Mhz Funksender, WLED-Stripes, AI-on-the-edge Wasserzähler, Nuki-Türschlösser

draddy

hast du für den devider ein beispiel / code schnipsel an der hand?

backup - ja so hänlich mache ich das auch, aber, einmal nachts bringt mir halt gar nix - hab gestern wirklich paar mal die 30 minuten zerstört, bis ich gechecked habe wo vermutlich das problem liegt - sag ja, sollte eigentlich ähnlich FHEM selbst laufen, also bei speichern sollte ein backup angelegt werden das ist dann noch immer arg kritisch, weil man entgegen fhem bei fhemapp4 ja quasi alle paar sekunden speichert wenn man gerade am device was fummelt zum ausprobieren ...

das ärgerliche bei dem fehler gestern ist halt, man tut und macht, und sieht wirklich  erst wenn man aus dem device raus geht, das plötzlich keine panels mehr angezeigt werden in der edit ansicht -.-

weiß nicht was das Framework hergibt, vll wäre auch eine art "Save" und "Apply" möglich, das eine übernimmt die änderungen für die vorschau, das andere schreibt es endgültig in die config?  in Kombinatio mit dem autobackup beim endgültigen speichern, könnte das sehr viel frust vermeiden. oder bin ich da tatsächlich das einzige "opfer"? :D

lg
jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Himbi777

Zitat von: draddy am 19 Januar 2025, 15:58:11hast du für den devider ein beispiel / code schnipsel an der hand?

Wenn du nach Codeschnipsel fragst, bearbeitet du deine Panelsmit einem Editor.
Hier ein Bsp. Wo der horizontale Divider definiert wird:
{
            "level": {
                "left1": "btn",
                "mid": "info",
                "right2": "btn",
                "divider": [
                    "::true"
                ]
            },
            "left1": {
                "btn": [
                    "bht-desired-temp:14.5:mdi-minus:",
                    "::mdi-minus:true"
     ........         
               
Raspberry Pi4, OMV, FHEM, FHEM-App // Tasmota-Geräte, Zigbee2Tasmota, 433Mhz Funksender, WLED-Stripes, AI-on-the-edge Wasserzähler, Nuki-Türschlösser

draddy

#8
ahh bei lvl - ok das macht tatsächlich sinn wenn man es so sieht xD

danke

p.s.

gibts eine beschränkung das es beim ersten main im panel nicht funktioniert?

    "main": [
        {
            "level": {
                "left1": "info",
                "mid": "info",
                "right2": "btn",
                "divider": [
                    "::true"
                ]
            },
            "left1": {
                "status": [
                    "device1-state:off:0",
                    "device1-state:on:100"
                ]
            },
            "mid": {
                "text": [
                    "device1-a-alias::%s:text-left text-h6"
                ]
            },
            "right2": {
                "btn": [
                    "device1-state:on:mdi-power::success",
                    "device1-state:off:mdi-power-off:"
                ],
                "click": [
                    "device1-state:on:set device1 off",
                    "device1-state:off:set device1 on"
                ]
            }
        },
        {
            "level": {
                "left1": "info",
                "mid": "info",
                "right2": "btn",
                "show": [
                    "device2-state:on:true",
                    "device2-state:off:true",
                    "device2-state::false"
                ],
                "divider": [
                    "::true"
                ]
            },
das ist aus dem oben verlinken multipanel ... der devider unter dem 2. device wird gezeigt, der unter dem 1. nicht? hab schon den show part testhalber entfernt aber ändert auch nix ...

ERLEDIGT mein fehler! xD hab fürs erste den Mainpart im Panel bearbeitet weil der Status vorne sich nach dem pct  richten soll ... - also muss ich auch da im main den divider dazu packen noch
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

mal sone grundsatz frage ...

eigentlich sollten Templates ja vorlagen sein, jedoch für sowas wie besagte Multipanel, finde ich das ehr "schwierig" aber, ich kann auch kein Panel ohne Template erstellen, oder?

Macht das jetzt wirklich sinn, das ich fast die ganze vorlage nochmal ins Panel zu kopieren um änderungen an z.b. Buttons etc vor zu nehmen, oder, tue ich mir nicht am ende leichter einfach für jedes Multipanel eine eigene Vorlage zu machen, und über Panel nur noch die devices zu füttern?

letztlich nutze ich die auf der "Home" Seite zur übersicht und schnell schaltung von z.B. Lichtern und so.
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

marvin78

Panels können ohne Probleme auch ohne Vorlagen verwendet werden.

Hast du die Doku mal von vorne bis hinten durchgelesen?