Fronthem; Permisson für neues fronthemDevice

Begonnen von FHEm2005, 30 Dezember 2018, 13:11:43

Vorheriges Thema - Nächstes Thema

FHEm2005

Mich nervt, dass ich für ein neu angelegtes fronthemDevice die Permissions immer einzeln mit der Hand eingeben muss. Das ist eine wahnsinnige Klickerei. Ich habe schon überall nach einer Vereinfachung gesucht, aber nichts gefunden.

Gibt es eine Möglichkeit die Permissions von Device A nach Device B zu kopieren?

Gruß Eberhard

Ich meine eine Rechtevergabe außerhalb von whitelist.
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM


FHEm2005

Hallo Chris46,

ich hatte noch nachgetragen, dass ich eine Rechtevergabe außerhalb von Whitelist wollte - gerade wegen der Sicherheit. Trotzdem Danke für den Hinweis.  :) :)

Gruß Eberhard

Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

Chris46

Hallo Eberhard,

da habe ich in der Eile gestern nicht genau genug gelesen.
Hast du copy <device> schon mal getestet? Ich habe zwar wenig Hoffnung, dass das funktioniert, aber ein Versuch ist es wert.
https://wiki.fhem.de/wiki/Copy

Viele Grüße Chris

FHEm2005

Halo Chris,

das mit dem copy-Befehl habe ich getestet. Die Berechtigungen werden leider nicht gesetzt.

Inzwischen habe ich mich mal auf dem Fhem-Server "umgesehen" und bin fündig geworden. Im Verzeichnins /opt/fhem/www/fronthem/clients wird für jedes fronthem-Device ein eigenes Verzeichnis und eine darin enthaltene  fhclient.<device>.cfg Datei angelegt. Die einzelnen gads sind dort nach dem folgenden Muster aufgelistet:

      "Li_Wz_HUE2.sw" : {
         "write" : 1,
         "read" : 1
      },

Das dürrfte editierbar sein und eine Menge Klickerei ersparen.

Werden über das normale frontend fronthem-Devices gelöscht, bleibt das nicht mehr benötigte Verzeichnis mit der darin enthaltenen Datei bestehen.  :(

Schön wäre es, wenn die fhclient.NN.cfg-Dateien im Menue  edit Files aufgelistet und editierbar wären. Ich versuche mal die Rechte über diese Datei  mit copy und anschließendem Umbenennen zu vergeben.

Viele Grüße
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

herrmannj

Wenn du permissions übernehmen willst kannst du die Datei kopieren und Umbenennen.

FHEm2005

Hallo Jörg,

Danke für den Hinweis. Damit dürfte das Thema erledigt sein. :) :)

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

GammaTwin

Ich mache dies auch über kopieren.

Ich beende fhem, kopiere den gerade geänderten Device in alle anderen Devices und starte fhem neu. Dazu habe eine Script modifiziert und je ein Start- und ein Beenden-Script ergänzt.

Wenn das eingerichtet ist, musst Du später bei einem neuen Device folgendes tun:
- irgendeine Permission im neuen Device setzen (damit die entsprechende cfg angelegt wird)
- FHEM mit dem Script stoppen
- in der push.sh den neuen Pfad eintragen
- FHEM mit dem Script starten

Falls Du eine Permission änderst, z.B. im DeviceA:
- FHEM mit dem Script stoppen
- die DeviceA.cfg nach "<Pfad>/backup/fhclient.Config.cfg" kopieren
- FHEM mit dem Script starten


ein FHEM-Start-Stopp-Script:
#!/bin/sh
# by Matthias Bauer
# modified by Kai
# modified by gamma.twin
case "$1" in
start)
echo "Starting $0"
#Datein zurückspielen
<Pfad>/backup/push.sh
#starten
cd /opt/bin/fhem
/opt/bin/fhem/fhem.pl /opt/bin/fhem/fhem.cfg
### Nur nötig wenn die Prozesspriorität von FHEM erhöht werden muß ######
#sleep 5
#Prozess=`pidof fhem.pl`
#renice -10 $Prozess
####################################################
;;
stop)
echo "Stopping $0"
/opt/bin/fhem/fhem.pl 7072 shutdown
#Datein zum Bearbeiten bereitstellen
sleep 5
<Pfad>/backup/pull.sh
;;
status)
cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
if [ "$cnt" -eq "0" ] ; then
echo "$0 is not running"
else
echo "$0 is running"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0


Die pull.sh - kopiert die aktuelle cfg aus FHEM in ein Backup-Verzeichnis:
#!/bin/sh
# by gamma.twin

cp -br /opt/bin/fhem/www/fronthem/ <Pfad>/backup/


Die push.sh - Ersetzt die cfg im Backup-Verzeichnis und kopiert diese dann wieder nach FHEM.
#!/bin/sh
# by gamma.twin

#Berechtigung für Visu ändern
cp <Pfad>/backup/fhclient.Config.cfg <Pfad>/backup/fronthem/clients/DeviceA/fhclient.DeviceA.cfg
cp <Pfad>/backup/fhclient.Config.cfg <Pfad>/backup/fronthem/clients/DeviceB/fhclient.DeviceB.cfg
cp <Pfad>/backup/fhclient.Config.cfg <Pfad>/backup/fronthem/clients/DeviceC/fhclient.DeviceC.cfg
...

#Datein zurückspielen
cp -r <Pfad>/backup/fronthem/ /opt/bin/fhem/www/
/opt/bin/find /opt/bin/fhem/www/fronthem -type f -name '*~' -exec rm {} \;


Die Pfade musst Du natürlich anpassen.

FHEm2005

#8
Hallo GammaTwin,

das werde ich mir mal in Ruhe ansehen und durcharbeiten. Vielen Dank aber.

@ Joerg
Nachdem ich in der cfg-Datei die Permissions eines gad geändert habe, ist das fronthem etwas böse auf mich und zeigt mir den Permission-Teil in der Maske nicht mehr an. Die Rechte sind nicht verändert worden.

Was bisher nicht half: Restart über Fhem-Eingabeleiste und Reboot auf Linuxebene.

Jetzt steh' ich da ich armer Thor und bin so klug als wie zuvor.

Gruß Eberhard

Die Edith hat gesagt:  Wenn das attr whitelist mit false gesetzt wird, verschwindet der Bereich mit den Permissions. Da muss man erst einmal hinterkommen. Naja - alles wieder gut!  :D :D

Es gibt wohl kein Fettnapf, an dem ich ungeschoren vorbeikomme!   :'( :'(
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

herrmannj

Da würde ich auf einen Fehler in der json tippen.

Nicht speichern, fhem hart beenden, nochmal kopieren und dann fhem erneuts starten.

Backups machen!