Autor Thema: Templates in FHEM  (Gelesen 1907 mal)

Offline KernSani

  • Sr. Member
  • ****
  • Beiträge: 956
Antw:Templates in FHEM
« Antwort #30 am: 18 März 2017, 00:22:39 »
Hallo Boris,

ich komme jetzt endlich mal dazu, das zu testen... Mein konkreter Anwendungsfall: Ich habe vor, meine Rollläden auf das ROLLO Modul umzustellen.

Meine Erkenntnisse/Wünsche:
1.) Es wäre schon, wenn das Anlegen eines template files aus FHEM heraus unterstützt werden würde, sowas wie:
template create myTemplate.tpl2.) Ich glaube betateilchen hatte es irgendwo erwähnt: configDB Nutzer müssen das File zunächst importieren (Doku ergänzen?). Mit Punkt 1 dürfte das auch erschlagen werden.
3.) Feste Dateiendung zum Editieren in "Edit Files" (mein template heisst jetzt .layout ;-)
4.) Defaultwerte wären klasse... sowas in der Art wie %meinWert:defaultWert% - wenn "meinWert" bei template use mitgegeben wird, wird dieser Wert genommen, ansonsten der defaultWert 
5.) nachdem ich nun mein Template erstellt hatte, wollte ich es testen, aber:
Error on reading tmpl_rollo.layout from database!

Das File existiert in der DB, ich kann es editieren... Nur der template Befehl findet es nicht...
Das Logfile sagt nicht viel:
2017.03.18 00:09:05 4: WEB_192.168.1.112_52487 POST /fhem&fw_id=1695&room=Unsorted&fwcsrf=csrf_189884894786425&cmd=template+show+tmpl_rollo.layout+; BUFLEN:0
2017.03.18 00:09:05 5: Cmd: >template show tmpl_rollo.layout<
2017.03.18 00:09:05 4: configDB reading file: tmpl_rollo.layout
2017.03.18 00:09:05 4: WEB: /fhem&fw_id=1695&room=Unsorted&fwcsrf=csrf_189884894786425&cmd=template+show+tmpl_rollo.layout+ / RL:1975 / text/html; charset=UTF-8 / Content-Encoding: gzip

Eine Idee, wie ich weiter vorgehen könnte?

Grüße,

Oli
 
Vom Arzt oder Apotheker empfohlen: https://fhem.de/commandref.html

Offline KernSani

  • Sr. Member
  • ****
  • Beiträge: 956
Antw:Templates in FHEM
« Antwort #31 am: 18 März 2017, 20:42:03 »
Hi Boris,

ich habe das template file aus der db gelöscht und nochmal neu importiert und jetzt funktioniert es... Keine Ahnung, was da schief stand. Ich dachte, das hätte ich gestern auch schon gemacht...

Grüße,

Oli
Vom Arzt oder Apotheker empfohlen: https://fhem.de/commandref.html

Offline KernSani

  • Sr. Member
  • ****
  • Beiträge: 956
Antw:Templates in FHEM
« Antwort #32 am: 19 März 2017, 01:06:57 »
Projekt ROLLO abgeschlossen. Template gefällt mir gut. Hab mal einen Wiki Artikel dazu begonnen....
Vom Arzt oder Apotheker empfohlen: https://fhem.de/commandref.html

Offline igami

  • Hero Member
  • *****
  • Beiträge: 1586
  • RTFM
Antw:Templates in FHEM
« Antwort #33 am: 20 März 2017, 06:15:38 »
Wenn ich das richtig verstehe ist template nur zum anlegen von devices da, spätere Änderungen sind nicht möglich, oder?
Beispiel:
ich nehme das template aus dem wiki
# my Template File ./FHEM/tmpl_example.layout
define %name% dummy
define di_%name% doif ([%name]) (set %device" on)
attr di_%name do always
und merke später, dass ich ja gerne auch ein icon für den dummy hätte
# my Template File ./FHEM/tmpl_example.layout
define %name% dummy
attr %name% icon Icon_Fisch
define di_%name% doif ([%name]) (set %device" on)
attr di_%name do always
Das wirkt sich dann ja nicht auf die bestehenden devices aus.

Wäre es nicht sinnvoller das als
template ./FHEM/tmpl_example.layout name=myDummy
in der config zu speichern, sodass es bei einem neustart auch aktualisiert wird?
Pi3 mit fhem.cfg + DbLog/logProxy
FHEM Module: LuftdatenInfo, monitoring, Nmap
FHEM Module ToDo: archetype, alexaWebApp, DaikinD3nIU, DaikinHTTPinterface, TBot_Dialog
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben.

Offline KernSani

  • Sr. Member
  • ****
  • Beiträge: 956
Antw:Templates in FHEM
« Antwort #34 am: 20 März 2017, 06:52:25 »
Wenn ich das richtig verstehe ist template nur zum anlegen von devices da, spätere Änderungen sind nicht möglich, oder?
Beispiel:
ich nehme das template aus dem wiki
# my Template File ./FHEM/tmpl_example.layout
define %name% dummy
define di_%name% doif ([%name]) (set %device" on)
attr di_%name do always
und merke später, dass ich ja gerne auch ein icon für den dummy hätte
# my Template File ./FHEM/tmpl_example.layout
define %name% dummy
attr %name% icon Icon_Fisch
define di_%name% doif ([%name]) (set %device" on)
attr di_%name do always
Das wirkt sich dann ja nicht auf die bestehenden devices aus.

Wäre es nicht sinnvoller das als
template ./FHEM/tmpl_example.layout name=myDummy
in der config zu speichern, sodass es bei einem neustart auch aktualisiert wird?
Im Gegensatz zu früheren Äußerungen bin ich mir nicht sicher, dass das zielführend wäre. Möglicherweise hsbe ich ja manuell bereits ein anderes Icon gesetzt o.ä.
Ich verpasse meinen mit Hilfe von template erstellten Devices ein user Attribut mit dem Templatenamen, so lassen sie sich schnell identifizieren und ggf. (kontrolliert) ändern
Vom Arzt oder Apotheker empfohlen: https://fhem.de/commandref.html

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3598
Antw:Templates in FHEM
« Antwort #35 am: 23 März 2017, 19:14:51 »

Wäre es nicht sinnvoller das als
template ./FHEM/tmpl_example.layout name=myDummy
in der config zu speichern, sodass es bei einem neustart auch aktualisiert wird?

So verwende ich es und so habe ich es mir gedacht, als ich es erfunden habe. Ich definiere einmal im Template eine Litanei von zig Zeilen und definiere dann alle gleichartigen Devices im Gleichtakt mit

template Heizung.template name=Wohnzimmer fhtcode=4711
template Heizung.template name=Kinderzimmer fhtcode=4712
template Heizung.template name=Schlafzeimmer fhtcode=4713
template Heizung.template name=Bad fhtcode=4714

Und so steht das dann auch in der fhem.conf.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 12900
  • Probleme sind auch keine Lösung.
Antw:Templates in FHEM
« Antwort #36 am: 23 März 2017, 19:41:11 »
Und so steht das dann auch in der fhem.conf.

Wenn Du damit die fhem.cfg meinst, verstösst das gegen bisher geltende Konventionen, die u.a. besagen, dass in den Konfigurationsdaten nur "define", "attr", "include" und Kommentare zulässig sind.

Seit Jahren kämpfen wir damit, den Anwendern beizubringen, dass keine Befehle wie "set" in die Konfiguration gehören, und jetzt kommst Du mit sowas um die Ecke...
« Letzte Änderung: 23 März 2017, 19:42:47 von betateilchen »
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline KernSani

  • Sr. Member
  • ****
  • Beiträge: 956
Antw:Templates in FHEM
« Antwort #37 am: 23 März 2017, 20:20:34 »
Ein configdb list wirft mir ganz normale defines für die via template erzeugten devices aus. Kenne aber die Funktionsweise von configdb nicht um jetzt sagen zu können, wie das tstsächlich abgelegt ist.
Vom Arzt oder Apotheker empfohlen: https://fhem.de/commandref.html

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3598
Antw:Templates in FHEM
« Antwort #38 am: 23 März 2017, 20:26:02 »
Wenn Du damit die fhem.cfg meinst, verstösst das gegen bisher geltende Konventionen, die u.a. besagen, dass in den Konfigurationsdaten nur "define", "attr", "include" und Kommentare zulässig sind.

Dann wird die Konvention jetzt um "template" erweitert. "template" ist nichts anderes als "include' mit Parametersubstitution.

Zitat
Seit Jahren kämpfen wir damit, den Anwendern beizubringen, dass keine Befehle wie "set" in die Konfiguration gehören, und jetzt kommst Du mit sowas um die Ecke...

Wie kommst Du bitte darauf, dass ich ein Template benutzen möchte, um einen set-Befehl in die fhem.conf zu schreiben, oder dieses einem Anwender empfehlen würde? Das käme mir nie in den Sinn. Ich sehe auch nicht, dass irgendeines der Beispiele in diesem Thema ein set im Template enthalten würde.

Also bitte!

Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16025
Antw:Templates in FHEM
« Antwort #39 am: 23 März 2017, 20:37:34 »
Zitat
Wenn Du damit die fhem.cfg meinst, verstösst das gegen bisher geltende Konventionen, die u.a. besagen, dass in den Konfigurationsdaten nur "define", "attr", "include" und Kommentare zulässig sind.

Das stimmt insoweit, dass nur diese Befehle wieder mit save gespeichert werden.

Die beschriebene Methode der nachtraeglichen Template-Aenderung ist fuer mehr als 99% der FHEM-Anwender nicht praktikabel: man darf dabei keine FHEM Definitionen oder Attribute live aendern, es muss alles ueber fhem.cfg erfolgen, save darf man nicht verwenden. Das man sowas Anfaengern nicht zeigt, ist selbstverstaendlich.

@KernSani: configdb und fhem.cfg sollte in diesem Fall keinen Unterschied machen, nur dass "configdb manuell editieren" nur was fuer hartgesottene ist.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 12900
  • Probleme sind auch keine Lösung.
Antw:Templates in FHEM
« Antwort #40 am: 23 März 2017, 21:20:20 »
@Boris: ich bin gegen diese Konventionserweiterung. configDB braucht und benutzt kein includes und wird somit auch Deinen template Befehl nicht unterstützen.

Dass Du irgendwo set Befehle empfiehlst, habe ich nirgends geschrieben, vielleicht solltest Du etwas sorgfältiger lesen. Aber Du beschreibst die Verwendung von template in der Konfiguration, was letztendlich auch nix anderes ist als ein bisher nicht zulässiger Befehl.

Warum erweiterst Du Deine 98_template.pm nicht um eine DefineFn? Nirgends steht, dass ein commanModul sowas nicht haben darf.

Würde es eine DefineFn geben, könnte man sowas machen:

define Wohnzimmer template Heizung.template fhtcode=0815
Und die DefineFn übernimmt den Rest. Damit wären die bisherigen Konventionen eingehalten und die Syntax für die Verwendung fände ich nebenbei gesagt auch noch logischer und besser zu merken.
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3598
Antw:Templates in FHEM
« Antwort #41 am: 23 März 2017, 21:43:41 »
Seit Jahren kämpfen wir damit, den Anwendern beizubringen, dass keine Befehle wie "set" in die Konfiguration gehören, und jetzt kommst Du mit sowas um die Ecke...

Mein Deutsch-Modul scheint defekt zu sein.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 12900
  • Probleme sind auch keine Lösung.
Antw:Templates in FHEM
« Antwort #42 am: 23 März 2017, 23:08:39 »
Ja, offensichtlich, denn es reißt Textteile aus ihrem umgebenden Kontext.

Aber das ist ja nicht das erste Mal, dass Du mir aus meinen Beiträgen falsche Unterstellungen präsentierst, weil Du in aus ihrem Kontext gerissenen Textbrocken falsche Inhalte hineininterpretierst. Warum Du das immer wieder tust - keine Ahnung. Aber wenn Dir das so großen Spaß macht - nur zu. Jedem Tierchen sein Pläsierchen.
Aus technischen Gründen befindet sich die Signatur auf der Rückseite dieses Beitrages.

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 3598
Antw:Templates in FHEM
« Antwort #43 am: 24 März 2017, 07:48:14 »
<offtopic>
Aber das ist ja nicht das erste Mal, dass Du mir aus meinen Beiträgen falsche Unterstellungen präsentierst, weil Du in aus ihrem Kontext gerissenen Textbrocken falsche Inhalte hineininterpretierst. Warum Du das immer wieder tust - keine Ahnung. Aber wenn Dir das so großen Spaß macht

Ich vermute, dass es an der großen Zahl von Du-Botschaften liegt, die ich empfange. Und jetzt reißen wir uns wieder am Riemen und kommen zurück
</offtopic>

zur Sache:

Wenn template in der Konfiguration bei Benutzern des save-Kommandos überleben soll, muss es eine Sonderbehandlung geben. template-Befehle müssen gespeichert werden und die aus Templates generierten Geräte nicht (siehe CommandInclude, $comments; und VOLATILE). Das hat den durchaus erwünschten Nebeneffekt, dass während des Programmlaufs erfolgte Änderungen an den via template definierten Geräten nicht persistent werden.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 16025
Antw:Templates in FHEM
« Antwort #44 am: 24 März 2017, 08:01:45 »
Zitat
Wenn template in der Konfiguration bei Benutzern des save-Kommandos überleben soll, muss es eine Sonderbehandlung geben.
Das ist mir zu viel Aufwand an zentralen Stellen mit unueberschaubaren Nebenwirkungen.

Die gleiche Funktionalitaet kann aber auch im template Modul implementiert werden: wenn template die erzeugten Instanzen merkt, dann koennte der Benutzer die im template Datei durchgefuehrten Aenderungen mit einem "template apply" Befehl aktivieren.

 

decade-submarginal