Import von Code Snippets: Unterschied zwischen den Versionen

Aus FHEMWiki
K (KernSani verschob die Seite DOIF/Import von Code Snippets nach Import von Code Snippets: Hatt nichts mit DOIF zu tun)
K (Haupt-Kategorie FHEM entfernt; ist bereits über Kategoriebaum abgedeckt.)
 
(17 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Sorgfältig vorbereitete Code Snippets, mit exportdevice erzeugter Code oder mit '''Raw definition''' ausgegebene Gerätedefinitionen können im FHEMWEB-Frontend über '''Raw definition''' importiert werden.
Sorgfältig vorbereitete Code Snippets, mit [[List#Erweiterte_Optionen|den raw-Optionen von list]] oder mit '''Raw definition''' ausgegebene Gerätedefinitionen können im FHEMWEB-Frontend über '''Raw definition''' importiert werden.
{{Hinweis|Wie das [[Konfiguration#Befehl-Eingabefeld|Befehl-Eingabefeld]] unterstützt auch das Dialogfeld zur RAW-Definition Syntax highlighting und die geänderten bzw. importierten Anweisungen werden bei der Ausführung einer Syntaxprüfung unterzogen. So lassen sich eventuelle Fehler häufig schnell erkennen.}}


==Wo finde ich Raw definition?==
{{Randnotiz|RNTyp=r|RNText=Der Weg über den RAW-Import macht insbesondere das direkte Editieren der '''fhem.cfg''' überflüssig. Neben dem bereits genannten Syntax-Check hat der Weg über den RAW-Import v.a. auch den Vorteil, dass die Änderungen direkt ''on the fly'' ausgeführt werden, was insbesondere auch das Testen der Änderungen vor dem Speichern in die [[Konfiguration]] im laufenden System ermöglicht.}}
Zur '''Raw definition''' kommt man über die Geräteansicht (DeviceOverview) eines beliebigen Gerätes. Der Link '''Raw definition''' steht in der letzten Zeile der Seite.
==Wie finde ich Raw definition?==
Es gibt zwei Wege, Dialogfelder zur Eingabe von RAW-Code aufzurufen, wobei der erste Weg {{Link2Forum|Topic=82351|LinkText=f18}} als [[FHEMWEB]]-Style voraussetzt<ref>{{Link2Forum|Topic=96921|Message=927192|LinkText=Stand Apr 2019}}</ref>.
 
=== Button ===
Um schnell zu einem Eingabefeld für '''Raw definition''' zu gelangen, klicken Sie einfach auf das '''''+''''' neben dem Kommandofeld. Es öffnet sich ein leeres Dialogfeld, in den man RAW-Code direkt eingeben bzw. am Stück eingeben kann. 
<gallery>
datei:RAW-Button.png|Ausschnitt mit dem Button
datei:RAW-Editor-via-Button.png|Geöffnetes Dialogfeld
</gallery>
 
===Über die Geräte-Detailansicht===
Zur '''Raw definition''' kommt man auch über die Gerätedetailansicht eines beliebigen Gerätes. Der Link '''Raw definition''' steht in der letzten Zeile der Seite.
[[Datei:Raw_definition.png|600px]]
[[Datei:Raw_definition.png|600px]]
Diesen Weg sollten Sie wählen, wenn Sie Code für andere bereit stellen wollen.
In dem erscheinenden Dialogfeld erscheint auf diesem Weg die RAW-Definition des Geräts, von dem aus Sie den RAW-Editor aufgerufen haben. Diese Anweisungen können Sie entweder ändern oder auch ganz löschen und durch eigene Anweisungen - auch zu ganz anderen Geräten - überschreiben.
==Erstellen eines Importgerätes==
==Erstellen eines Importgerätes==
Zur Übung kann man dieses Importgerät importieren.
Zur Übung kann man dieses Importgerät importieren.
Zeile 14: Zeile 30:


==Direktzugriff über das FHEM-Menü==
==Direktzugriff über das FHEM-Menü==
Der angelegten Import-Dummy kann direkt aufgerufen werden, wenn man einen Meüeintrag anlegt.
Der angelegte Import-Dummy kann direkt aufgerufen werden, wenn man einen Meüeintrag anlegt.
Im entsprechenden FHEMWEB-Gerät das Attribut '''menuEntries''' erzeugen mit
Im entsprechenden FHEMWEB-Gerät das Attribut '''menuEntries''' erzeugen mit
<pre>attr WEB menuEntries CodeImport,/fhem?detail=Import#</pre>
<pre>attr WEB menuEntries CodeImport,/fhem?detail=Import#</pre>
oder ergänzen mit
oder ergänzen mit
<pre>CodeImport,/fhem?detail=Import#</pre>
<pre>CodeImport,/fhem?detail=Import#</pre>
==Vorgehensweise beim Import==
==Vorgehensweise beim Import==
Als erstes die Geräteansicht eines beliebigen Gerätes aufrufen, dann den Link '''Raw definition''' anklicken.<br>
Als erstes die Geräteansicht eines beliebigen Gerätes aufrufen, dann den Link '''Raw definition''' anklicken.<br>
Jetzt den angezeigten Inhalt des sich öffnenden Eingabefeldes mit der oben stehenden Definition überschreiben und danach den erschienenen Button '''Execute commands''' drücken.<br> Wenn die Meldung "Wrote configuration to fhem.cfg" erscheint, war der Import erfolgreich, andernfalls gibt es eine Fehlermeldung und der Import wird an dieser Stelle abgebrochen.<br>Das Gerät müsste jetzt im Raum Entwicklung zu finden sein.<br>
Jetzt den angezeigten Inhalt des sich öffnenden Eingabefeldes mit der oben stehenden Definition überschreiben und danach den erschienenen Button '''Execute commands''' drücken.<br> Wenn die Meldung "Executed everything, no errors found." erscheint, war der Import erfolgreich, andernfalls gibt es eine Fehlermeldung und der Import wird an dieser Stelle abgebrochen.<br>Das Gerät müsste jetzt im Raum Entwicklung zu finden sein.<br>
Jetzt noch auf "Save config" klicken, oder ein "save" in der Eingabezeile ausführen damit das neue importierte Device in die fhem.cfg übernommen wird.<br>
Zukünftig kann dieses Gerät zum Importieren genutzt werden, damit sinkt die Wahrscheinlichkeit eine bestehende Definition zu beeinträchtigen.
Zukünftig kann dieses Gerät zum Importieren genutzt werden, damit sinkt die Wahrscheinlichkeit eine bestehende Definition zu beeinträchtigen.
<br><br>
<br><br>
Zum Erstellen eigener Definitionen ist der DEF-Editor das empfohlene Werkzeug.
Zum Erstellen eigener Definitionen ist der [[DEF-Editor]] das empfohlene Werkzeug.
 
==Sonstiges==
 
=== Geräte zwischen Installationen verschieben ===
Möchte man eigene Geräte zwischen unterschiedlichen Installationen verschieben, z.B. aus einem Test- in das Produktivsystem, kann man sich mit den erweiterten Optionen von [[List|list]] die Informationen aus dem Ausgangssystem so anzeigen lassen, dass diese direkt samt derzeitiger Zustände ins Zielsystem übernommen werden können. 
 
=== attrTemplate ===
[[MQTT2_DEVICE#attrTemplate|attrTemplate]] ist für Geräte-Typen, die dies unterstützen, eine weitere Option, Geräte schnell mit einer typischen Konfiguration einzurichten.  


==Links==
==Links==
* [[Konfiguration]]
* [[MQTT2_DEVICE#attrTemplate|attrTemplate]]
* [[DOIF]]
* [[DOIF]]
* [[DOIF/Ein- und Ausgabe in FHEMWEB und Tablet-UI am Beispiel einer Schaltuhr]]
* [[DOIF/Ein- und Ausgabe in FHEMWEB und Tablet-UI am Beispiel einer Schaltuhr]]
* [[Notify|notify]]
* [[List|list]]
<references />


[[Kategorie:HOWTOS]]
[[Kategorie:HOWTOS]]
[[Kategorie:FHEM-Verwendung]]

Aktuelle Version vom 4. Dezember 2019, 12:23 Uhr

Sorgfältig vorbereitete Code Snippets, mit den raw-Optionen von list oder mit Raw definition ausgegebene Gerätedefinitionen können im FHEMWEB-Frontend über Raw definition importiert werden.

Info blue.png
Wie das Befehl-Eingabefeld unterstützt auch das Dialogfeld zur RAW-Definition Syntax highlighting und die geänderten bzw. importierten Anweisungen werden bei der Ausführung einer Syntaxprüfung unterzogen. So lassen sich eventuelle Fehler häufig schnell erkennen.


X mark.svgDer Weg über den RAW-Import macht insbesondere das direkte Editieren der fhem.cfg überflüssig. Neben dem bereits genannten Syntax-Check hat der Weg über den RAW-Import v.a. auch den Vorteil, dass die Änderungen direkt on the fly ausgeführt werden, was insbesondere auch das Testen der Änderungen vor dem Speichern in die Konfiguration im laufenden System ermöglicht.

Wie finde ich Raw definition?

Es gibt zwei Wege, Dialogfelder zur Eingabe von RAW-Code aufzurufen, wobei der erste Weg f18 als FHEMWEB-Style voraussetzt[1].

Button

Um schnell zu einem Eingabefeld für Raw definition zu gelangen, klicken Sie einfach auf das + neben dem Kommandofeld. Es öffnet sich ein leeres Dialogfeld, in den man RAW-Code direkt eingeben bzw. am Stück eingeben kann.

Über die Geräte-Detailansicht

Zur Raw definition kommt man auch über die Gerätedetailansicht eines beliebigen Gerätes. Der Link Raw definition steht in der letzten Zeile der Seite. Raw definition.png

Diesen Weg sollten Sie wählen, wenn Sie Code für andere bereit stellen wollen.

In dem erscheinenden Dialogfeld erscheint auf diesem Weg die RAW-Definition des Geräts, von dem aus Sie den RAW-Editor aufgerufen haben. Diese Anweisungen können Sie entweder ändern oder auch ganz löschen und durch eigene Anweisungen - auch zu ganz anderen Geräten - überschreiben.

Erstellen eines Importgerätes

Zur Übung kann man dieses Importgerät importieren.

define Import dummy
attr Import group Entwicklung
attr Import room Entwicklung
save

Direktzugriff über das FHEM-Menü

Der angelegte Import-Dummy kann direkt aufgerufen werden, wenn man einen Meüeintrag anlegt. Im entsprechenden FHEMWEB-Gerät das Attribut menuEntries erzeugen mit

attr WEB menuEntries CodeImport,/fhem?detail=Import#

oder ergänzen mit

CodeImport,/fhem?detail=Import#

Vorgehensweise beim Import

Als erstes die Geräteansicht eines beliebigen Gerätes aufrufen, dann den Link Raw definition anklicken.
Jetzt den angezeigten Inhalt des sich öffnenden Eingabefeldes mit der oben stehenden Definition überschreiben und danach den erschienenen Button Execute commands drücken.
Wenn die Meldung "Executed everything, no errors found." erscheint, war der Import erfolgreich, andernfalls gibt es eine Fehlermeldung und der Import wird an dieser Stelle abgebrochen.
Das Gerät müsste jetzt im Raum Entwicklung zu finden sein.
Jetzt noch auf "Save config" klicken, oder ein "save" in der Eingabezeile ausführen damit das neue importierte Device in die fhem.cfg übernommen wird.
Zukünftig kann dieses Gerät zum Importieren genutzt werden, damit sinkt die Wahrscheinlichkeit eine bestehende Definition zu beeinträchtigen.

Zum Erstellen eigener Definitionen ist der DEF-Editor das empfohlene Werkzeug.

Sonstiges

Geräte zwischen Installationen verschieben

Möchte man eigene Geräte zwischen unterschiedlichen Installationen verschieben, z.B. aus einem Test- in das Produktivsystem, kann man sich mit den erweiterten Optionen von list die Informationen aus dem Ausgangssystem so anzeigen lassen, dass diese direkt samt derzeitiger Zustände ins Zielsystem übernommen werden können.

attrTemplate

attrTemplate ist für Geräte-Typen, die dies unterstützen, eine weitere Option, Geräte schnell mit einer typischen Konfiguration einzurichten.

Links