diff --git a/de_DE/dev/Icone_de_plugin.md b/de_DE/dev/Icone_de_plugin.md index 6048e6a31c..5bb3461b2d 100644 --- a/de_DE/dev/Icone_de_plugin.md +++ b/de_DE/dev/Icone_de_plugin.md @@ -1,22 +1,22 @@ -**** +**Dokumentation zu Plugins-Symbolen** -. +Um auf dem Jeedom Market veröffentlicht zu werden, muss jedes Plugin über ein Symbol verfügen. -. +Dieses Symbol wird den Benutzern, auf dem Markt und auf der Jeedom-Benutzeroberfläche angezeigt. -. +Sie müssen eine Datei im PNG-Format mit 309 x 348 Pixeln erstellen. -: +Der Dateiname ist wie folgt aufgebaut: ` _icon.png` +Es muss im Ordner „/plugin-info/“ gespeichert werden +Diese Datei ist erforderlich. -. +Wir danken Ihnen im Voraus, dass Sie nicht denselben Farbcode wie die Symbole der offiziellen Jeedom-Plugins verwenden. -. +Seit 2020 wird empfohlen, den Namen nicht mehr unter dem Bild anzugeben (achten Sie darauf, dass die Größen des Modells weiterhin gleich bleiben) !) - !) - -: +Vielen Dank, dass Sie dieses Modell verwenden (abgerundete Kanten, Größe, farbiger Hintergrund, Transparenz rundherum usw.): ![modele-icone](images/plugin-Jeedom-px.jpg) ![modele-icon](images/template_icon.png) diff --git a/de_DE/dev/cmd_value.md b/de_DE/dev/cmd_value.md index ee93268263..90dc5d11c4 100644 --- a/de_DE/dev/cmd_value.md +++ b/de_DE/dev/cmd_value.md @@ -1,194 +1,194 @@ -# +# Bestellwert -. . +Diese Dokumentation fasst Empfehlungen für Befehlswerte (Aktion oder Info) je nach Typ zusammen. Es ist nicht verpflichtend, sie zu befolgen, aber für eine bessere Integration in Jeedom wird dies dringend empfohlen. -## +## Licht -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|-------------| -||

()



****| -||Luminosité

()
| -||
| -||)| -||)| -||| -||| -||)| -||
| -||| -||| +|Info/Lichtstatus|Oder Helligkeit
0-100 Oder 0-99 oder 0-255
(abhängig vom maximalen Aktions-/Licht-Schieberegler)
oder Binär
0 = Aus
anders als 0 = Ein
**Obligatorisch**| +|Info/Lichthelligkeit|Luminosité
0-100 Oder 0-99 oder 0-255
(abhängig vom maximalen Aktions-/Licht-Schieberegler)
Immer mit Lichtstatus auf Binärbefehl verwenden| +|Aktions-/Licht-Schieberegler|Helligkeitsdimmer
Min. und Max. obligatorisch| +|Aktions-/Licht-Ein-Taste|Das Licht einschalten (Change of State)| +|Aktions-/Licht-Aus-Taste|Das Licht ausschalten (Zustandsänderung)| +|Info/Lichtfarbe|#RRGGBB-Format| +|Aktion/Lichtfarbe|Ändern der Farbe, Format #RRGGBB| +|Info/Lichttemperaturfarbe|Mired-Format (<=500) oder Kelvin-Format (>500))| +|Aktion/Lichttemperaturfarbe|Ändern der Farbtemperatur
Min. und Max. obligatorisch| +|Aktion/Licht umschalten|Zustandsumkehr, wenn binär| +|Aktions-/Lichtmodus|Voreingestellte/Lichtszenen, können mehrere sein| ## Prise -| | | +|Allgemeiner Typ | Werte / Handeln | |----------------|------------| -|
Etat|
| -|
|| -|
|| +|Info/Steckdose
Etat|0 = Aus
1 = Ein| +|Aktion/Ergriffen
Ein-Taste|Schalten Sie die Steckdose ein| +|Aktion/Ergriffen
Aus-Taste|Schalten Sie die Steckdose aus| ## Interrupteurs -| | | +|Allgemeiner Typ | Werte / Handeln | |----------------|------------| -|
Etat|
| -|
|| -|
|| +|Info/Schalter
Etat|0 = Aus
1 = Ein| +|Aktion/Schalter
Ein-Taste|Schalten Sie den Schalter ein| +|Aktion/Schalter
Aus-Taste|Schalten Sie den Schalter aus| ## Ventilateur -| | | +|Allgemeiner Typ | Werte / Handeln | |----------------|------------| -|
Etat|

| -|
|Allumer| -|
|Eteindre| -|
Vitesse
Rotation|| +|Info/Fan
Etat|0 = Aus
1 = Ein
oder Dimmen bei Geschwindigkeit| +|Aktion/Fan
Ein-Taste|Allumer| +|Aktion/Fan
Aus-Taste|Eteindre| +|Aktion/Fan
Vitesse
Rotation|Min. Max. Obligatorisch| ## Volet -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|| :


:


: !| -||
| -||
| -||| -||
:
| +|Info-/Statusbereich|Wenn binär :
0 = Geschlossen
1 = Offen
Wenn digital :
Min. des Button-Schiebereglers (sonst Min. des Zustands, sonst 0) = Geschlossen
Maximalwert des Button-Schiebereglers (sonst Maximalwert des Status, ansonsten 100) = Offen
Wenn keine Silder-Taste vorhanden ist : Obligatorische Mindest- und Höchstwerte im Bundesstaat !| +|Aktions-/Schildtaste nach oben|Den Verschluss öffnen
Start der Öffnung oder Festlegen des maximalen Schiebereglerwerts oder -zustands oder 100| +|Aktion/Auslöser gedrückt|Schließen des Verschlusses
Start des Abschlusses oder Festlegen des minimalen Schiebereglerwerts oder -zustands oder 0| +|Aktions-/Auslöser-Stopp-Taste|Stoppen der Verschlussbewegung| +|Aktions-/Bedienfeldschaltflächen-Schieberegler|Gibt den Öffnungsanteil des Verschlusses an
Falls vorhanden:
Obligatorische Mindest- und Höchstwerte| - : +optional : -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||)| -||
| -||)| -||
| +|Statusbereich „Info/horizontale Neigung“|Winkel 0->90° (über Schieberegler))| +|Aktion/Auslöser-Schieberegler, horizontale Neigung|Winkel 0->90°
veränderbar über Min-Max des Schiebereglers| +|Info-/Vertikalneigungsstatusbereich|Winkel 0->90° (über Schieberegler))| +|Vertikale Neigung des Aktions-/Auslöserschiebers|Winkel 0->90°
veränderbar über Min-Max des Schiebereglers| ## Valves -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|
Etat|
| -|
|Allumer| -|
|Eteindre| +|Info/Tippen
Etat|0 = Aus
1 = Ein| +|Aktion/Tippen
Ein-Taste|Allumer| +|Aktion/Tippen
Aus-Taste|Eteindre| -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|
Etat|
| -|
|Allumer| -|
|Eteindre| +|Info/Bewässerung
Etat|0 = Aus
1 = Ein| +|Aktion/Bewässerung
Ein-Taste|Allumer| +|Aktion/Bewässerung
Aus-Taste|Eteindre| -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|

Etat|
| -|

|Allumer| -|

|Eteindre| +|Info/Ventil
Generisch
Etat|0 = Aus
1 = Ein| +|Aktion/Ventil
Generisch
Ein-Taste|Allumer| +|Aktion/Ventil
Generisch
Aus-Taste|Eteindre| - ? ? ? +einen Dimmer hinzufügen ? und digital zur Aktion hinzufügen ? es existiert ? ## Serrures -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||)
)| -||| -||Verrouillage| +|Info/Sperrstatus|0 = Nicht sicher (nicht gesperrt))
1 = Sicher (gesperrt)| +|Aktions-/Sperr-Öffnen-Taste|Entsperren| +|Schaltfläche „Aktion/Schließen sperren“|Verrouillage| ## Mouvement -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||
| +|Info/Anwesenheit|0 = Keine Bewegung
1 = Bewegung| -## +## Öffnung -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|

()|)
)| +|Info/Tür
Info/Fenster
(gleiche Behandlung)|0 = Kontakt (geschlossen)
1 = Kein Kontakt (Offen)| -## +## Meerjungfrauen -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||
| +|Info/Sirenenstatus|0 = Klingelt nicht
1 = Ringe| ## Alarme -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||
()| -||
()| -|| **** | -||| -||| -||| +|Info-/Alarmstatus|1 = Ausgelöst
(Priorität auf aktivierten und Modi)| +|Info-/Statusalarm aktiviert|0 = Unscharf
(Priorität auf Modi)| +|Info-/Alarmmodus|Etikett wird angezeigt **genau** der Name eines Aktions-/Alarmmodusbefehls| +|Aktion/scharfer Alarm|Schalten Sie den Alarm ein| +|Aktion/Alarm ausgelöst|Deaktivieren Sie den Alarm| +|Aktions-/Alarmmodus|Der Alarmmodus kann mehrfach sein| ## Thermostats -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|)|
| -|)|''
''
''

| -||'
'
**** | -||| -||| -||| -||| -||| -||
| -||| -||| +|Info/Thermostatstatus (BINÄR))|0 = Aus
1 = Ein| +|Info/Thermostatstatus (MENSCH)|'„aus“ oder „gestoppt“ oder „verhaftet“'
'Hitze“ oder „Heizung“'
'„kühl“ oder „Klimaanlage“'

Bevorzugen Sie Englisch| +|Info/Thermostatmodus|'„Off“ oder „Arret“ = AUS
'„Keine“ oder „Thermostat“ = Sollwertmodus
Etikett wird angezeigt **genau** der Name eines Aktions-/Thermostatmodusbefehls| +|Aktion/Thermostatmodus|Thermostatmodus, kann mehrere sein| +|Info/Thermostat Außentemperatur|Grad Celsius| +|Info/Thermostat Raumtemperatur|Grad Celsius| +|Info/Thermostat-Sollwert|Wert zwischen Min und Max des Aktions-/Thermostat-Sollwerts| +|Aktion/Thermostat-Sollwert|Obligatorisches Min. und Max| +|Info/Thermostatsperre|0 = Nicht gesperrt
1 = Gesperrt| +|Aktion/Thermostatsperre|Sperren Sie den Thermostat| +|Aktion/Thermostat entsperren|Entriegeln Sie den Thermostat| -## +## Tore oder Garagen -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -|

()|




( ?)| +|Info/Portal-Öffnungsstatus
Info/Garageneröffnungsstatus
(gleiche Behandlung)|0 = Geschlossen
252 = Abschluss wird ausgeführt
253 = Gestoppt
254 = Öffnung läuft
255 = Offen
(Basierend auf Z-Wave-Geräten, könnte auch binär oder beschriftet sein ?)| - : +mit entweder : -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||
)| +|Aktions-/Tor- oder Garagen-Umschalttaste|Der Schalter öffnet, wenn er geschlossen ist, und schließt, wenn er geöffnet ist
Öffnung bei Blockierung (zur Sicherheit))| - : +oder entweder : -| | | +|Allgemeiner Typ | Werte / Handeln | |---------------|----------------| -||Ouverture| -||Fermeture| +|Aktions-/Tor- oder Garagenöffnungstaste|Ouverture| +|Aktions-/Tor- oder Garagen-Schließtaster|Fermeture| ## Electricité -| | | +|Allgemeiner Typ | Einheit | |---------------|----------------| -||Watts| -||KWh| +|Info/Strom|Watts| +|Info/Stromverbrauch|KWh| ## Divers -| | | -|---------------|----------------| -||
| -|)|| -|)|| -||
| -||| -||| -|)| ?| -||-| -||| -||

| -||
| -||
| -|
|
| -||
| -||
| -||bar| -|)|dB| - -## - -| | | -|---------------|----------------| -||
| -||
| -||
| +|Allgemeiner Typ | Werte / Einheit | +|---------------|----------------| +|Info/Anwesenheitsbelegung|0 = Niemand
1 = Jemand| +|Info/Luftqualität (AQI-Index)|AQI-Index| +|Info/Luftqualität (Anpassbarer Index)|ppb oder µg/m3| +|Info/CO-Melder|0 = normales CO
1 = abnormales CO| +|Info/Helligkeit|0 → 100000 Lux| +|Info/Luftfeuchtigkeit|%| +|Info/CO2 (ppm)|PPM oder binär ?| +|Info/Temperatur|-50 → 300°C| +|Info/Batterie|%| +|Info/Akkuladung|0 = NEIN
1 = JA
Nicht vorhanden = Nicht wiederaufladbar| +|Info/Batterie schwach|0 = NEIN
1 = JA| +|Info/Raucherkennung|0 = Kein Rauch
1 = Rauch erkannt| +|Info/Überschwemmung
Info/Wasserleck|0 = Kein Leck erkannt
1 = Leck erkannt| +|Info/Sabotage|0 = Keine Sabotage
1 = Sabotage| +|Info/Schock|0 = Kein Schock
1 = Schock| +|Info/Druck|bar| +|Info/Ton (dB)|dB| + +## Gerätestatus + +|Allgemeiner Typ | Werte / Handeln | +|---------------|----------------| +|Info/Aktivstatus|0 = inaktiv
1 = aktiv| +|Online-Info/Konnektivität|0 = offline
1 = online| +|Defekte Informationen/Status|0 = nein
1 = ja| diff --git a/de_DE/dev/core4.0.md b/de_DE/dev/core4.0.md index f96d6c32e3..2b3bd39f61 100644 --- a/de_DE/dev/core4.0.md +++ b/de_DE/dev/core4.0.md @@ -1,130 +1,130 @@ -## .0 | +## Kern v4.0 | Plugin-Entwickler ### Deprecated -- [](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes). +- Font-awesome 4 ist nicht mehr in Core integriert und wird durch Font-Awesome 5 ersetzt [Migration](https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes). -### +### V4-Kompatibilität auf dem Markt -. +Die Version 3, die im November 2020 veröffentlicht wird, verfügt über ein Migrationsmodul, mit dem Sie von V3 auf V4 wechseln können. -.. +Während der Migrationsphase von v3 auf v4 sind Plugins ohne v4-Kompatibilität in ihren Informationen enthalten.json benachrichtigt den Endbenutzer vor dem Update. -.. +Wenn Ihr Plugin v4-kompatibel ist, geben Sie es in den Informationen an.json von Ihrem Plugin. - ****: `"compatibility" : +Beispiel **info.json**: `"compatibility" : [„miniplus“, „smart“, „rpi“, „docker“, „diy“, „v4“],` -: +Sie können anhand eines Szenarios/Codeblocks testen, ob Ihre Plugins über die eingegebene Kompatibilität verfügen:
scénario / bloc Code - + ~~~ php {% raw %} - ) + //Autor der zu prüfenden Plugins (Groß- und Kleinschreibung beachten)) $author = 'Jeedom SAS'; $plugins = repo_market::byFilter(['author' => $author]); $pluginsArray = utils::o2a($plugins); $countPlugins = 0; $countIncompatibles = 0; - ) { - ) { + foreach ($pluginsArray als $plugin) { + if ($plugin['author'] == $author) { $countPlugins++; - '] != '1') { + if ($plugin['hardwareCompatibility']['v4'] != '1') { $countIncompatibles++; $scenario->setLog('Plugin ' . $plugin['name'] . ' does not have v4 compatibility tag.'); } } } - ) { - ) { + if ($countPlugins > 0) { + if ($countInkompatibles > 0) { $scenario->setLog($author . ' : ' . $countIncompatibles . ' potentially incompatible Jeedom V4 plugin on ' . $countPlugins . ' checked'); - } { + } anders { $scenario->setLog('All ' . $countPlugins . ' plugin developed by ' . $author . ' are Jeedom V4 compatible. Congratulations!'); } - } { + } anders { $scenario->setLog('No plugin found for ' . $author); } {% endraw %} - + ~~~
-### - -- [](https://github.com/jeedom/plugin-template/blob/master/desktop/php/template.php)). -- : -- : -- : - - ) - - ) -- : - - ! - - : - - : - - : `success` +### Anpassung der Plugins für Core v4 + +- Bereinigen Sie den Inline-Stil so weit wie möglich (siehe [Plugin-Vorlage](https://github.com/jeedom/plugin-template/blob/master/desktop/php/template.php)). +- Span-Befehlsanzeige : Klasse „Zustand“ +- Steuertaste : eine Sammelaktion +- Auf Eingabegruppen: + - Klasse „roundedLeft“ für das erste Element (eine Eingabe, eine Schaltfläche usw.)) + - Klasse „roundedRight“ für das letzte Element (eine Eingabe, eine Schaltfläche usw.)) +- Auf dem eqLogicThumbnailContainer div: + - Entfernen Sie alle Stile! + - Fügen Sie den übergeordneten Divs eine Farbklasse hinzu: + - Logofarben: „logoPrimary“ und „logoSecondary“ + - Grün : `success` - bleu: `info` - orange: `warning` - - : `danger` -- : ) : -- : - - : - - : - - : -- . : ::::all() + - Rot : `danger` +- Seien Sie vorsichtig bei Plugins mit Vorlagen: Das Aktualisierungssymbol hat sich geändert (Font-awesome 5) : +- Achten Sie auf die Klassen der Schaltflächen, Eingaben usw: + - btn : 32px hoch + - btn-sm / input-sm : 28px hoch + - btn-xs : 22px hoch +- Desktop/php/pluginid-Datei.php : Objekt ersetzen::all() von jeeObject::all() -- . +- Testen Sie die Plugins zu den drei 2019-Themes Light / Dark / Legacy. -- . +- PNG-Bilder bei Bedarf mit Alpha, um unschöne weiße Quadrate im dunklen Design zu vermeiden. -). . +Letztendlich müssen die Plugin-Seiten mit den Seiten der Kernobjekte/Szenarien/Interaktionen (Größen, Farben, Layouts usw.) übereinstimmen). Kein Stileffekt, aber Konsistenz. -> : +> Aufgefallen : > -> ! . +> Die Seitenleiste hat v4 nicht überlebt ! Als Ersatz steht auf den Reitern für Szenarien, Objekte, Interaktionen, Plugins ein Kontextmenü zur Verfügung. -> : +> Aktualisierungen : > -> Une fois le github du plugin updaté, aller sur le market, mes créations, et faire un ‘Test' sur la branche. . +> Une fois le github du plugin updaté, aller sur le market, mes créations, et faire un ‘Test' sur la branche. Dadurch wird vermieden, dass man warten muss, bis der Roboter vorbeikommt, und das Update ist sofort verfügbar. -> : +> Erinnerung : > -> . +> Auf Plugin-Seiten angezeigte Bilder sollten nicht aus dem Netz geladen werden, sondern sich in den lokalen Dateien des Plugins befinden. -> : +> Aufmerksamkeit : > -> Sur les pages de scénario, plugins etc, le bouton ‘Supprimer' est passé à droite ! . +> Sur les pages de scénario, plugins etc, le bouton ‘Supprimer' est passé à droite ! Es ist das gefährlichste und daher am weitesten entfernte. -### +### Dateireiniger -. +V4 und neue v3 verfügen über eine automatische Bereinigung von Dateien, die bei Ihrem automatischen Plugin-Update nicht vorhanden sind. -. +Der Kern löscht automatisch Dateien, die älter als 7 Tage sind und kein Update erhalten haben. -- . -- . -- . -- . +- Abhängig von Ihrem Plugin-Update werden Dateien gelöscht, die älter als 7 Tage sind. +- Es betrifft nur Ordner > „3rdparty“, „3rparty“, „desktop“, „mobile“, „core“, „docs“, „install“, „script“, „vendor“, „plugin_info“. +- „Ressource(n)“ und „Daten“ sind nicht betroffen, wir laden Sie jedoch ein, „Daten“ für alle benutzerdefinierten Zwecke zu verwenden. +- Dateien, deren Name mit „custom“ beginnt, sind ebenfalls nicht betroffen. -.). - [](https://github.com/jeedom/plugin-template/blob/master/plugin_info/pre_install.php) +Wenn Sie vor der Reinigung eine Änderung vornehmen möchten, können Sie „pre_install“ verwenden.php` (inplugin_info). +Sehen [Plugin-Vorlage](https://github.com/jeedom/plugin-template/blob/master/plugin_info/pre_install.php) -### +### GitHub-Linkmarkt -. +Änderung des Github-Namens für den Zugriff auf Ihre privaten Repositories. -. +Sie müssen jetzt jeedom-market anstelle von zoic verwenden. -### +### Dokumentation -. +Auch die Dokumentationsseite hat ihr Erscheinungsbild geändert. -. +Jetzt führen Links direkt zu Ihrer Dokumentation. -### +### Übersetzung -. . \ No newline at end of file +Wir entwickeln derzeit ein neues Übersetzungstool. Wir testen es derzeit intern und werden uns in Kürze bei Ihnen melden, um Ihnen die Integration Ihrer Plugins anzubieten. \ No newline at end of file diff --git a/de_DE/dev/core4.1.md b/de_DE/dev/core4.1.md index e6c56cc368..c652bcbe55 100644 --- a/de_DE/dev/core4.1.md +++ b/de_DE/dev/core4.1.md @@ -1,20 +1,20 @@ -## .1 | +## Kern v4.1 | Plugin-Entwickler ### Obsolete -- . +- Die Funktionen „network->getInterfaceIp()“, „network->getInterfaceMac()“ und „network->getInterfaces()“ wurden durch „network->getInterfacesInfo()“ ersetzt. ### Changements -- . -- . -- ::.. -.. +- Die Funktion „scenario->getHumanName()“ der PHP-Szenarioklasse gibt nicht mehr „[Objekt][Gruppe][Name]“, sondern „[Gruppe][Objekt][Name]“ zurück. +- Die Funktion „scenario->byString()“ muss nun mit der Struktur „[group][object][name]“ aufgerufen werden. +- Die Ajax-Funktion::init()` akzeptiert seit v4 und seit v4 ein „action“-Array als Parameter.1 prüft, ob die im Querystring (bei einer GET-Anfrage) empfangene Aktion in dieser Tabelle aufgeführt ist. Ist dies nicht der Fall, wird die Anfrage blockiert. +Seien Sie vorsichtig, in V3 war das optionale Argument ein boolescher Wert; Daher ist es möglich, v4-kompatiblen Code zu erstellen.0 und höher, jedoch nicht mit v3. ````php - : ' - : - : - * + /* Funktion, die das Senden des „Content-Type“-Headers ermöglicht: application/json' + In V3 : Geben Sie das Argument „true“ an, um das Jeedom-Zugriffstoken zu steuern + In V4 : Autorisieren Sie die Ausführung einer Aktionsmethode in GET, indem Sie den/die Namen der Aktion(en) in einem Array als Argument angeben + */ ajax::init(); ```` @@ -24,20 +24,20 @@ En v4.1 l'affichage de la sélection de l'objet parent d'un équipement a été revu et unifié. La liste est indentée en fonction du parent, et ordonnée comme dans le menu **Accueil → Dashboard**, tel que définit dans **Outils → Objets**, Vue d'ensemble. -Pour avoir la même logique dans les plugins, fichier plugindesktopphpplugin. : +Pour avoir la même logique dans les plugins, fichier plugin/desktop/php/plugin.php : ````php + ```` -> . +> Diese Modifikation ist Core v4-kompatibel.0 und v3.x diff --git a/de_DE/dev/core4.2.md b/de_DE/dev/core4.2.md index 7ba8831c7b..3bad83bfd5 100644 --- a/de_DE/dev/core4.2.md +++ b/de_DE/dev/core4.2.md @@ -1,170 +1,170 @@ -## .2 | +## Kern v4.2 | Plugin-Entwickler ### Obsolete -- ). -- : . +- Methode „initCheckBox()“ (utils.js). +- Klassenmethode „cmd“ : `setEventOnly()`. ### Deprecated -. **** . +Diese Änderungen werden in Version 4 weiterhin unterstützt.2 und wird in übergehen **Veraltet** in einer zukünftigen Version. -- :: : `eqLogic::byTypeAndSearchConfiguration()`. -- . : . +- Die `eqLogic-Methode::byTypeAndSearhConfiguration()` wurde korrekt umbenannt : `eqLogic::byTypeAndSearchConfiguration()`. +- Die js-Methode „jeedom.eqLogic.buildSelectCmd` wurde korrekt umbenannt : `jeedom.eqLogic.buildSelectCmd`. -*..* +*Diese beiden Methoden wurden auch in v4 integriert.1, um ihre Einführung zu beschleunigen.* -- ). -- : ').. . . +- Entfernen der JWERTY-Bibliothek für VanillaJS (Verwaltung von Tastaturkürzeln)). +- Verwendung von „showAlert“-Änderungen : `$('#div_alert').showAlert({` wird zu `$.fn.showAlert({`. Keine Änderung für den Anruf von einem Modal. Wird auf Core vor 4.2 nicht unterstützt. -- : ) -- : ) +- PHP-Methode „displayExeption“ : „displayException“ (utils.inc) +- PHP-Methode „convertDayEnToFr“ : „convertDayFromEn“ (utils.inc) -### +### Optionale Modifikationen -#### +#### Fliesen-Hintergrundgrafik -.. +V4.2 ermöglicht es Ihnen, auf einer eqLogic einen Info-Befehl zu definieren, dessen Verlauf am unteren Rand der Kachel angezeigt wird. -: +Dazu muss Ihr Plugin dies in der Datei „plugins/myplugin/core/class/myplugin.class.php“ zulassen: -php - { - +„php +Die Klasse myplugin erweitert eqLogic { + public static $_widgetPossibility = array('custom' => true); +„ +Wenn Ihr Plugin über eine bestimmte Vorlage für seine Ausstattung verfügt, muss die Desktop-Version mit ` aktualisiert werden#divGraphInfo#` zur Anzeige : -#divGraphInfo# : - -html +„html {% raw %} -
+
#cmd# -
-
+
+
#divGraphInfo# +
{% endraw %} +„ +#### Verwaiste Befehle -#### +In v4.2, auf der Seite **Analyse → Ausrüstung**, Auf der Registerkarte „Verwaiste Befehle“ gibt die eqLogic-Funktion „deadCmdGeneric()“ jetzt einen Link zum betreffenden Szenario oder Gerät zurück. -. ****, . - -: +Als Referenz die neue Core-Funktion:
- eqLogic deadCmdGeneric() + eqLogic deadCmdGeneric() - + ~~~ php {% raw %} - ) { - $return = array() - ::) { - $eqLogic_json = json_encode(utils::o2a($eqLogic)) - #([0-9]*)# - ) { - )) { - (!cmd::))) { + öffentliche statische Funktion deadCmdGeneric($_plugin_id) { + $return = array(); + foreach (eqLogic::byType($_plugin_id) als $eqLogic) { + $eqLogic_json = json_encode(utils::o2a($eqLogic)); + preg_match_all("/#([0-9]*)#/", $eqLogic_json, $matches); + foreach ($matches[1] als $cmd_id) { + if (is_numeric($cmd_id)) { + Wenn (!cmd::byId(str_replace('#', '', $cmd_id))) { $return[] = array( - '?>', - '), + 'Detail' => '?v=d&m='.$eqLogic->getEqType_name().'&p='.$eqLogic->getEqType_name().'&id='.$eqLogic->getId().'">'.$eqLogic->getHumanName ().'>', + 'help' => __('Action', __FILE__), 'who' => '#' . $cmd_id . '#' - ) + ); } } } } - + return $return; } {% endraw %} - - - . + ~~~ -
+ Sie können daher den gleichen Rückgabetyp in Ihre Plugins integrieren, die Funktion „deadCmd()“. -#### +
-. ** ** ** ** **. +#### Unterstützung für Tabellendarstellung in einem Plugin -. +Seit Version 4.2 des Cores wird auf den Seiten eine tabellarische Darstellung angeboten *Objekte* *Szenarien* *Interaktionen* *Widgets* Und *Plugins*. -. ** . +Diese Funktion basiert vollständig auf CSS und erfordert keine Änderung der DOM-Elemente, abgesehen vom Hinzufügen der Schaltfläche rechts neben der Suche, um zwischen Tabellen- und Normalmodus zu wechseln. -. : +Bei den meisten Plugins kann der Core diese Funktionalität verwalten. Es wurde jedoch nicht standardmäßig integriert, da mehrere Plugins nicht verwendet werden *Anzeigekarte* Standard, und der Core kann dann je nach Plugin die Anzeige nicht verwalten. - - : . - - : . - - : .. +Dies muss daher für jedes Plugin getestet und integriert werden. Mehrere mögliche Fälle : -. .. + - Sie integrieren den Button nicht : Ihr Plugin bietet diesen Modus nicht an. + - Sie integrieren die Schaltfläche und die Anzeige ist gut verwaltet : Nichts mehr zu tun. + - Sie integrieren die Schaltfläche, aber die Anzeige wird nicht gut verwaltet : Lassen Sie sich von Core 4 CSS inspirieren.2, um Ihr eigenes CSS zu erstellen. +In allen Fällen ist die Schaltfläche zum Umschalten des Tabellenmodus in die CSS-Klasse „versteckt“ integriert und daher ausgeblendet. Es wird daher auf Kernen vor 4 nicht sichtbar sein.2 diese Option nicht haben. -##### : -. : +##### Fügen Sie die Schaltfläche rechts neben dem Suchfeld hinzu : +Fügen Sie einfach diese Schaltfläche rechts neben dem Suchfeld auf Ihrer Seite „myplugin/desktop/php/myplugin“ hinzu.php` : +` `
- Par exemple : + Par exemple : - + ~~~ html {% raw %} - {{Mes Equipemnts}} -
- + {{Mes Equipemnts}} +
+
- - - {% endraw %} - - -
+ ~~~ -. ! +
-##### : +Testen Sie die Anzeige auf einem Core v4.2. Wenn alles gut ist, ist es vorbei ! - ** : +##### Bei nicht standardmäßiger Anzeige von eqlogics : +Einstellung *data-coreSupport* auf 0 : +` ` -- ". . : +- Verwalten Sie Ihre eigene CSS-Klasse außer „.displayAsTable“". Platzieren Sie die CSS-Datei in „myplugin/desktop/css/myplugin.css` und importieren Sie es dann wie folgt vom Desktop/PHP : - + `include_file('desktop', 'myplugin', 'css', 'myplugin');` -- : +- Behandeln Sie das Schaltflächenereignis :
- d'event js + Beispiel d'event js - + ~~~js {% raw %} $('#bt_pluginDisplayAsTable').off('click').on('click', function () { $('#bt_pluginDisplayAsTable[data-coreSupport="1"]').off('click').on('click', function () { - ).") { + if ($(dies).data('state') == "0") { $(this).data('state', '1').addClass('active') - ) + setCookie('jeedom_displayAsTable', 'true', 2) $('.eqLogicDisplayCard').addClass('displayAsTable') $('.eqLogicDisplayCard .hiddenAsCard').removeClass('hidden') $('.eqLogicThumbnailContainer').first().addClass('containerAsTable') - } { + } anders { $(this).data('state', '0').removeClass('active') - ) + setCookie('jeedom_displayAsTable', 'false', 2) $('.eqLogicDisplayCard').removeClass('displayAsTable') $('.eqLogicDisplayCard .hiddenAsCard').addClass('hidden') $('.eqLogicThumbnailContainer').first().removeClass('containerAsTable') @@ -172,40 +172,40 @@ html }) }) {% endraw %} - + ~~~ -
+
-##### . : +##### Als Referenz: das Plugin js.Vorlage :
- plugin. js + plugin.Vorlage js - + ~~~js {% raw %} - : - ').length) { - $('#bt_pluginDisplayAsTable').removeClass('hidden') Not shown on previous core versions - ' || .) { + //displayAsTable, wenn das Plugin es unterstützt: + if ($('#bt_pluginDisplayAsTable').length) { + $('#bt_pluginDisplayAsTable').removeClass('hidden') //Not shown on previous core versions + if (getCookie('jeedom_displayAsTable') == 'true' || jeedom.theme.theme_displayAsTable == 1) { $('#bt_pluginDisplayAsTable').data('state', '1').addClass('active') - "]').length) { + if ($('#bt_pluginDisplayAsTable[data-coreSupport="1"]').length) { $('.eqLogicDisplayCard').addClass('displayAsTable') $('.eqLogicDisplayCard .hiddenAsCard').removeClass('hidden') $('.eqLogicThumbnailContainer').first().addClass('containerAsTable') } } - : + //Kernereignis: $('#bt_pluginDisplayAsTable[data-coreSupport="1"]').off('click').on('click', function () { - ).") { + if ($(dies).data('state') == "0") { $(this).data('state', '1').addClass('active') - ) + setCookie('jeedom_displayAsTable', 'true', 2) $('.eqLogicDisplayCard').addClass('displayAsTable') $('.eqLogicDisplayCard .hiddenAsCard').removeClass('hidden') $('.eqLogicThumbnailContainer').first().addClass('containerAsTable') - } { + } anders { $(this).data('state', '0').removeClass('active') - ) + setCookie('jeedom_displayAsTable', 'false', 2) $('.eqLogicDisplayCard').removeClass('displayAsTable') $('.eqLogicDisplayCard .hiddenAsCard').addClass('hidden') $('.eqLogicThumbnailContainer').first().removeClass('containerAsTable') @@ -213,190 +213,190 @@ html }) } {% endraw %} - + ~~~ -
+
- : +Sie können sich auch von Core CSS inspirieren lassen : -- .* * +- Datei „desktop/css/desktop.main“.css`section`/* __________________displayAsTable */` -##### +##### Andere Elemente in der Tabellenansicht anzeigen - ** . +Wenn Sie einen Artikel in der *Anzeigekarte* rechts erscheint, fügen Sie die CSS-Klasse „displayTableRight“ hinzu. Wenn Sie dort mehrere Elemente platzieren müssen, platzieren Sie sie alle in einem einzigen „ ... “ -. +Im Tabellenmodus wird jedes Element in einer Zeile angezeigt. Auf der rechten Seite ist Platz zum Hinzufügen von Informationen, siehe Schaltflächen. - ** . +Sie können also auf jedem haben *Anzeigekarte* Elemente, die im Normalmodus nicht angezeigt werden, und rechts im Tabellenmodus.
- Par exemple : + Par exemple : - + ~~~ php {% raw %}
getIsEnable()) ? '' : 'disableCard' - $div .= '
' - $div .= '' - $div .= '
' - $div .= '' . $eqLogic->getHumanName(true, true) . '' - $div .= '