Import von Code Snippets: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
K (Haupt-Kategorie FHEM entfernt; ist bereits über Kategoriebaum abgedeckt.)
 
(9 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Manchmal ist es (oder scheint es) erforderlich, eine neue Device mittels eines Editors direkt in '''fhem.cfg''' einzutragen. Das ist allerdings hoch gefährlich, es wird strikt davon abgeraten. Mit dem "grünen Kreuz" gibt es nun eine Möglichkeit, diesen direkten Eintrag über die Weboberfläche von FHEM auszuführen, gleichzeitig findet ein Syntax- und Fehlercheck statt:
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.
 
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.
{{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.}}  
{{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.}}  


{{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.}}
==Wie finde ich Raw definition?==
==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 ===
=== 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.   
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.   
Zeile 11: Zeile 12:
datei:RAW-Editor-via-Button.png|Geöffnetes Dialogfeld
datei:RAW-Editor-via-Button.png|Geöffnetes Dialogfeld
</gallery>
</gallery>
===Über die Geräte-Detailansicht===
===Über die Geräte-Detailansicht===
Zur '''Raw definition''' kommt man über die Gerätedetailansicht eines beliebigen Gerätes. Der Link '''Raw definition''' steht in der letzten Zeile der Seite.
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.
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 34: Zeile 38:
==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>
Zeile 54: Zeile 59:
* [[Notify|notify]]
* [[Notify|notify]]
* [[List|list]]
* [[List|list]]
<references />


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

Aktuelle Version vom 4. Dezember 2019, 13: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