FHEM – Python3 – Dateien einbinden, bearbeiten und starten
Da ich mich in Python wohler fühle, auch wenn ich mich in Perl auskenne und dies nutzen kann, möchte ich gerne gewisse Scripte in Python auslagern.
Ein weiterer Vorteil des ganzen ist, FHEM wird durch ein Python-Script nicht blockiert, somit kann man Blocking Scripte relativ gut auslagern.
Leider gab es nach meinem Urlaub das Problem, dass ich über Edit files die .py Files nicht mehr sehen konnte.
07.09.2020 – Tyro
Der Beitrag wurde deswegen überarbeitet.
- Wir gehen hier von einem aufgesetzten FHEM System aus.
- FHEM Version 6.0 oder höher
!!! Die Nutzung von Befehlen und Codes sind auf eigene Gefahr, ich übernehme keine Haftung für entstehende Schäden oder sonstigem !!!
Da die Methode mit dem anzeigen unter Edit files leider Probleme bereitet, hier eine andere Möglichkeit .py über FHEM im Browser zu bearbeiten.
Wir gehen zu Edit files und klicken auf myUtilsTemplate.pm, hier müssen wir bei Save as einen Dateinamen eingeben: 99_Py_Ein_belieber_Name_Utils.py.
Wobei Ein_belieber_Name durch eine Bezeichnung ersetzte wird, z.B. BackUp: 99_Py_BackUp_Utils.py
Zum Schluss müssen wir in FHEM ein Dummy anlegen, welcher einen Link enthält, der uns den Editor mit der File öffnet.
Wobei wir hier die Wahl haben, ob ein Dummy pro File oder ein Dummy mit allen Files genutzt werden soll. (Ich nutze letzteres)
In der letzten Zeile, welche uns die klickbaren Links hinzufügt, müssen wir die Links an den zuvor vergebenen Namen der .py File hinterlegen.
Hier im Beispiel auf BackUp bezogen.
File: 99_Py_BackUp_Utils.py
define Py.Edit.Files dummy
attr Py.Edit.Files alias Python Files
attr Py.Edit.Files group Python
attr Py.Edit.Files stateFormat <a target="_blank" href="/fhem?cmd=style%20edit%2099_Py_BackUp_Utils.py">BackUp</a>
Um mehrer Links einem Dummy zu hinterlegen, müssen wir das attr stateFormat so nutzen.
attr Py.Edit.Files stateFormat <a target="_blank" href="/fhem?cmd=style%20edit%2099_Py_BackUp_Utils.py">BackUp</a></br>\
<a target="_blank" href="/fhem?cmd=style%20edit%2099_Py_WeitereFile_Utils.py">WeitereFile</a>
Nun möchten wir diese Python-Files aber auch ausführen.
> In meinem Fall ist es Python3.
Mit folgendem Befehl können wir aus FHEM heraus das Script starten:
"python3 /opt/fhem/FHEM/99_Py_Ein_belieber_Name_Utils.py"
Viel Spaß und Erfolg!
Beste Grüße
Tyro