Werkzeuge → Szenarien
Raccourcis clavier/.souris</.small>
Die Szenarien sind ein echtes Gehirn der Hausautomation und ermöglichen es, auf eine Art und Weise mit der realen Welt zu interagieren intelligent.
Dort finden Sie die Liste der Szenarien Ihres Jeedom sowie Funktionen, um diese am besten zu verwalten :
Sie finden in diesem Teil Liste der Szenarien dass du erstellt hast. Sie werden nach ihren klassifiziert Band, möglicherweise für jeden von ihnen definiert. Jedes Szenario wird mit seinem angezeigt Name und seine übergeordnetes Objekt. DER ausgegraute Szenarien sind diejenigen, die deaktiviert sind.
Beratung
Sie können ein Szenario öffnen, indem Sie dies tun :
- Klicken Sie auf eine davon.
- Strg Clic oder Clic Center, um es in einem neuen Browser-Tab zu öffnen.
Sie haben eine Suchmaschine, um die Anzeige von Szenarien zu filtern. Die Escape-Taste bricht die Suche ab. Rechts neben dem Suchfeld befinden sich drei Schaltflächen, die an mehreren Stellen in Jeedom gefunden wurden :
Sobald Sie ein Szenario konfiguriert haben, haben Sie ein Kontextmenü mit der rechten Maustaste auf die Registerkarten des Szenarios. Sie können auch ein Strg-Klick- oder Klick-Center verwenden, um ein anderes Szenario direkt in einer neuen Browser-Registerkarte zu öffnen.
Nach dem Klicken auf Hinzufügen, Sie müssen den Namen Ihres Szenarios auswählen. Sie werden dann zur Seite mit den allgemeinen Parametern weitergeleitet. Davor gibt es oben auf der Seite einige nützliche Funktionen zum Verwalten dieses Szenarios :
Tipps
Zwei Tools sind für Sie auch beim Einrichten von Szenarien von unschätzbarem Wert : > - Die Variablen, sichtbar in Werkzeuge → Variablen > - Der Ausdruckstester, auf den über zugegriffen werden kann Werkzeuge → Ausdruckstester
A Strg Klicken Sie auf die Schaltfläche Ausführen Mit dieser Option können Sie das Szenarioprotokoll direkt speichern, ausführen und anzeigen (wenn die Protokollebene nicht Keine ist).
In der Registerkarte General, Wir finden die Hauptparameter des Szenarios :
WICHTIG
Der Mehrfachstart funktioniert pro Sekunde, dh wenn Sie zwei Starts in derselben Sekunde haben, ohne das Kontrollkästchen aktiviert zu haben, gibt es immer noch zwei Starts des Szenarios (obwohl dies nicht der Fall sein sollte)). Ebenso können bei mehreren Starts in derselben Sekunde einige Starts die Tags verlieren. Fazit Es ist ABSOLUT notwendig, mehrere Starts in derselben Sekunde zu vermeiden.
Beratung
Bedingungen können jetzt im ausgelösten Modus eingegeben werden. Zum Beispiel :
#[Garage][Open Garage][Ouverture]# == 1
Aufmerksamkeit : Sie können maximal 28 Trigger / Programmierungen für ein Szenario haben.
Tippmodus programmiert
Der geplante Modus verwendet die Syntax Cron. Sie können beispielsweise alle 20 Minuten ein Szenario mit „ ausführen*/20 * * * *
, oder um 5 Uhr morgens, um eine Vielzahl von Dingen für den Tag zu erledigen
0 5 * * *
. DER ? Rechts neben einem Programm können Sie es einstellen, ohne Spezialist für Cron-Syntax zu sein. Es ist auch möglich, eine Startzeit in der Form „Gi“ (Stunde ohne anfängliche Null und Minute) einzugeben, beispielsweise für „09h15“ => „915“ oder für „23h40“ => „2340“). Diese Zeit kann beispielsweise das Ergebnis einer Berechnung (mittels eines Befehls oder eines Tags) sein :
#sunset# + 10für einen Start 10 Minuten nach Sonnenuntergang. Beachten Sie, dass Sie für einen Start 1h30 nach Sonnenuntergang „“ eingeben müssen#sunset# + 130
. Beachten Sie, dass jeedom Ihnen bei Verwendung einer anderen Syntax als einem Cron nicht die Daten der vorherigen oder nächsten Starts anzeigen kann.
Hier erstellen Sie Ihr Szenario. Nach dem Erstellen des Szenarios ist sein Inhalt leer, sodass er … nichts tut. Du musst mit anfangen Block hinzufügen, mit dem Knopf rechts. Sobald ein Block erstellt wurde, können Sie einen weiteren hinzufügen Block oder ein Aktion.
Um die Blöcke im Szenario einfacher zu gestalten und nicht ständig neu anordnen zu müssen, wird nach dem Feld, in dem sich der Mauszeiger befindet, ein Block hinzugefügt. Wenn Sie beispielsweise zehn Blöcke haben und auf die IF-Bedingung des ersten Blocks klicken, wird der hinzugefügte Block nach diesem Block auf derselben Ebene hinzugefügt. Wenn kein Feld aktiv ist, wird es am Ende des Szenarios hinzugefügt.
Beratung
Bei Bedingungen und Aktionen ist es besser, einfache Anführungszeichen (‘) anstelle von doppelten zu bevorzugen (“).
Beratung
Mit einer Strg-Umschalttaste Z oder einer Strg-Umschalttaste Y können Sie dies tun’Stornieren oder von wiederholen eine Modifikation (Hinzufügen einer Aktion, Blockieren)…).
Hier sind die verschiedenen Arten von Blöcken verfügbar :
Jeder Block hat seine Optionen, um besser damit umzugehen :
Für die Bedingungen versucht Jeedom, es möglich zu machen, sie so viel wie möglich in natürlicher Sprache zu schreiben und dabei flexibel zu bleiben.
Verwenden Sie [] NICHT in Bedingungstests, nur Klammern () sind möglich.
Rechts neben diesem Blocktyp stehen drei Schaltflächen zur Auswahl eines zu testenden Elements zur Verfügung :
Notiz
Bei Blöcken vom Typ If / Then / Andernfalls können kreisförmige Pfeile links neben dem Bedingungsfeld die Wiederholung von Aktionen aktivieren oder nicht, wenn die Auswertung der Bedingung das gleiche Ergebnis wie bei der vorherigen Auswertung ergibt. IF-Ausdruck != 0 entspricht IF-Ausdruck und IF-Ausdruck == 0 entspricht IF-nicht-Ausdruck
Beratung
Es gibt eine Liste von Tags, die den Zugriff auf Variablen aus dem einen oder anderen Szenario oder nach Uhrzeit, Datum, Zufallszahl usw. ermöglichen. Siehe unten die Kapitel zu Befehlen und Tags.
Sobald die Bedingung erfüllt ist, müssen Sie die Schaltfläche "Hinzufügen" auf der linken Seite verwenden, um eine neue hinzuzufügen Block oder ein Aktion im aktuellen Block.
Mit dem Code-Block können Sie PHP-Code ausführen. Es ist daher sehr mächtig, erfordert aber gute Kenntnisse der PHP-Sprache.
cmd::byString($string);
: Gibt das entsprechende Befehlsobjekt zurück.
$string
: Link zur gewünschten Bestellung : #[objet][Ausrüstung][commande]#
(Ex : #[Appartement][Alarme][Aktiv]#
)cmd::byId($id);
: Gibt das entsprechende Befehlsobjekt zurück.
$id
: Bestellnummer.$cmd->execCmd($options = null);
: Führen Sie den Befehl aus und geben Sie das Ergebnis zurück.
$options
: Optionen für die Ausführung des Befehls (können spezifisch für das Plugin sein). Grundlegende Optionen (Befehlssubtyp) :
message
: $option = array('title' => 'titre du Nachricht , 'message' => 'Mon message');
color
: $option = array('color' => 'couleur en hexadécimal');
slider
: $option = array('slider' => 'valeur voulue de 0 à 100');
log::add('filename','level','message');
filename
: Name der Protokolldatei.level
: [Debug], [Info], [Fehler], [Ereignis].message
: Nachricht zum Schreiben in die Protokolle.$scenario->getName();
: Gibt den Namen des aktuellen Szenarios zurück.$scenario->getGroup();
: Gibt die Szenariogruppe zurück.$scenario->getIsActive();
: Gibt den Status des Szenarios zurück.$scenario->setIsActive($active);
: Ermöglicht das Aktivieren oder Nicht-Aktivieren des Szenarios.
$active
: 1 aktiv, 0 nicht aktiv.$scenario->running();
: Wird verwendet, um herauszufinden, ob das Szenario ausgeführt wird oder nicht (true / false)).$scenario->save();
: Änderungen speichern.$scenario->setData($key, $value);
: Speichern Sie eine Daten (Variable).
$key
: Werteschlüssel (int oder string).$value
: Wert zu speichern (int
, string
, array
Oder object
).$scenario->getData($key);
: Daten abrufen (variabel).
$key => 1
: Werteschlüssel (int oder string).$scenario->removeData($key);
: Daten löschen.$scenario->setLog($message);
: Schreiben Sie eine Nachricht in das Skriptprotokoll.$scenario->persistLog();
: Erzwingen Sie das Schreiben des Protokolls (andernfalls wird es nur am Ende des Szenarios geschrieben). Seien Sie vorsichtig, dies kann das Szenario etwas verlangsamen.Beratung
Hinzufügen einer Suchfunktion im Codeblock : Zur Recherche : Strg + F dann Enter, Nächstes Ergebnis : Strg + G, Vorheriges Ergebnis : Strg + Umschalt + G
Szenarien : Kleine Codes mit Freunden
Der Kommentarblock verhält sich anders, wenn er ausgeblendet ist. Die Schaltflächen auf der linken Seite sowie der Titel des Blocks verschwinden und werden beim Schweben wieder angezeigt. Ebenso wird die erste Zeile des Kommentars fett gedruckt. Dadurch kann dieser Block als rein visuelle Trennung innerhalb des Szenarios verwendet werden.
Zu Blöcken hinzugefügte Aktionen haben mehrere Optionen :
Beratung
Je nach gewähltem Befehl können unterschiedliche Zusatzfelder angezeigt werden.
Es gibt bestimmte Auslöser (außer denen, die durch Befehle bereitgestellt werden)) :
#start#
: Wird beim (erneuten) Start von Jeedom ausgelöst.#begin_backup#
: Ereignis, das zu Beginn einer Sicherung gesendet wurde.#end_backup#
: Ereignis, das am Ende einer Sicherung gesendet wird.#begin_update#
: Ereignis, das zu Beginn eines Updates gesendet wurde.#end_update#
: Ereignis, das am Ende eines Updates gesendet wird.#begin_restore#
: Ereignis zu Beginn einer Restaurierung gesendet.#end_restore#
: Ereignis gesendet am Ende einer Restaurierung.#user_connect#
: Benutzeranmeldung#variable(nom_variable)#
: Ändern des Wertes der Variablen name_name.#GenericType (GENERIC, #[Object]#)#
: Änderung eines Infobefehls vom Typ Generic GENERIC im Objektobjekt.#new_eqLogic#
: Ereignis, das beim Erstellen neuer Geräte gesendet wird. Sie haben in den Tags id (ID des erstellten Geräts), name (Name des erstellten Geräts) und eqType (Typ/Plugin des erstellten Geräts))Sie können ein Szenario auch über die beschriebene HTTP-API auslösen Hier.
Sie können eines der folgenden Symbole für Vergleiche unter Bedingungen verwenden :
==
: Gleich.>
: Streng größer als.>=
: Größer oder gleich.<
: Streng weniger als.<=
: Kleiner als oder gleich.!=
: Anders als, ist nicht gleich.matches
: Enthält. Ex : [Salle de bain][Hydrometrie][etat] matches "/.humide/."
.not(… matches …)
: Enthält nicht. Ex : not([Salle de bain][Hydrometrie][etat] matches "/.humide/.")
.Sie können jeden Vergleich mit den folgenden Operatoren kombinieren :
Unabhängig davon, ob Sie Vergleiche mit unterschiedlichen Geräten oder mit demselben Gerät kombinieren, ist es immer notwendig, das Gerät anzugeben.
[Salle de bain][Hydrometrie][température] >= 18 && [Salle de bain][Hydrometrie][température] <= 22
&&
: Und. Aufmerksamkeit, die Verwendung von : ET
/. et
/. AND
/. and
wird nicht empfohlen, in einigen Fällen funktioniert es möglicherweise, aber mit einigen PHP-Funktionen funktioniert es nicht.||
: Oder. Aufmerksamkeit, die Verwendung von : OU
/. ou
/. OR
/. or
wird nicht empfohlen, in einigen Fällen funktioniert es möglicherweise, aber mit einigen PHP-Funktionen funktioniert es nicht.xor
: oder exklusiv. Aufmerksamkeit, die Verwendung von : XOR
/. ^
wird nicht empfohlen, in einigen Fällen funktioniert es möglicherweise, aber mit einigen PHP-Funktionen funktioniert es nicht.Ein Tag wird während der Ausführung des Szenarios durch seinen Wert ersetzt. Sie können die folgenden Tags verwenden :
Beratung
Verwenden Sie die Funktion Date (), um die führenden Nullen anzuzeigen. Siehe Hier.
#seconde#
: Aktuelle Sekunde (ohne führende Nullen, z : 6 für 08:07:06).#hour#
: Aktuelle Zeit im 24h-Format (ohne führende Nullen). Ex : 8 für 08:07:06 oder 17 für 17:15.#hour12#
: Aktuelle Zeit im 12-Stunden-Format (ohne führende Nullen). Ex : 8 für 08:07:06.#minute#
: Aktuelle Minute (ohne führende Nullen). Ex : 7 für 08:07:06.#day#
: Aktueller Tag (ohne führende Nullen). Ex : 6 für 06/07/2017.#month#
: Aktueller Monat (ohne führende Nullen). Ex : 7 für 06/07/2017.#year#
: Laufendes Jahr.#time#
: Aktuelle Stunde und Minute. Ex : 1715 für 17.15 Uhr.#timestamp#
: Anzahl der Sekunden seit dem 1. Januar 1970.#date#
: Tag und Monat. Achtung, die erste Zahl ist der Monat. Ex : 1215 für den 15. Dezember.#week#
: Wochennummer.#sday#
: Name des Wochentags. Ex : SAMSTAG.#nday#
: Tagesnummer von 0 (Sonntag) bis 6 (Samstag)).#smonth#
: Name des Monats. Ex : Januar.#IP#
: Jeedom's interne IP.#hostname#
: Name der Jeedom-Maschine.#jeedomName#
: Name von Jeedom.#trigger#
: Vielleicht :
api
wenn der Start von der API ausgelöst wurde,TYPEcmd
Wenn der Start durch einen Befehl ausgelöst wurde, wird durch TYPE die Plugin-ID ersetzt (z. B. virtualCmd),schedule
wenn es durch Programmierung gestartet wurde,user
wenn es manuell gestartet wurde,start
für einen Start beim Start von Jeedom.#trigger_id#
: Wenn es sich um einen Befehl handelt, der das Szenario ausgelöst hat, hat dieses Tag den Wert der ID des Befehls, der es ausgelöst hat. Beispiel : #trigger_id# == 19
#trigger_name#
: Wenn es sich um einen Befehl handelt, der das Szenario ausgelöst hat, hat dieses Tag den Wert des Namens des Befehls (in der Form [Objekt][Ausrüstung][Befehl]). Beispiel : #trigger_name# == '[cuisine][lumiere][etat]'
#trigger_value#
: Wenn es sich um einen Befehl handelt, der das Szenario ausgelöst hat, hat dieses Tag den Wert des Befehls, der das Szenario ausgelöst hat. Tipp: Wenn Sie den aktuellen Wert des Befehls möchten, der das Szenario ausgelöst hat (und nicht seinen Wert zum Zeitpunkt der Auslösung), können Sie diesen verwenden : ##trigger_id##
(doppelt #)#latitude#
: Ermöglicht Ihnen, die in der Jeedom-Konfiguration eingegebenen Breitengradinformationen abzurufen#longitude#
: Ermöglicht Ihnen, die in der Jeedom-Konfiguration eingegebenen Längengradinformationen abzurufen#altitude#
: Ermöglicht Ihnen, die in der Jeedom-Konfiguration eingegebenen Höheninformationen abzurufen#sunrise#
: Ermöglicht das Abrufen der Sonnenaufgangszeit, sofern Breiten- und Längengrad in der Jeedom-Konfiguration eingegeben wurden#sunset#
: Ermöglicht das Abrufen der Sonnenuntergangszeit, vorausgesetzt, dass Breiten- und Längengrad in der Jeedom-Konfiguration eingegeben wurdenSie haben auch die folgenden zusätzlichen Tags, wenn Ihr Szenario durch eine Interaktion ausgelöst wurde :
WICHTIG
Wenn ein Szenario durch eine Interaktion ausgelöst wird, wird es notwendigerweise im schnellen Modus ausgeführt. Also im Interaktionsthread und nicht in einem separaten Thread.
Für das Gerät stehen verschiedene Funktionen zur Verfügung :
average(commande,période)
& averageBetween(commande,start,end)
: Geben Sie den Durchschnitt der Bestellung über den Zeitraum an=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
averageTemporal(commande,période)
& averageTemporalBetween(commande,start,end)
: Geben Sie den Durchschnitt der Werte der Bestellung gewichtet nach ihrer Existenzdauer über den Zeitraum (Periode=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
min(commande,période)
& minBetween(commande,start,end)
: Geben Sie die Mindestbestellmenge über den Zeitraum (Zeitraum) an=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
max(commande,période)
& maxBetween(commande,start,end)
: Geben Sie das Maximum der Bestellung über den Zeitraum (Zeitraum) an=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
duration(commande, valeur, période)
& durationbetween(commande,valeur,start,end)
: Geben Sie die Dauer in Minuten an, während der das Gerät über den Zeitraum (Zeitraum) den gewählten Wert hatte=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
statistics(commande,calcul,période)
& statisticsBetween(commande,calcul,start,end)
: Geben Sie das Ergebnis verschiedener statistischer Berechnungen (Summe, Anzahl, Standard, Varianz, Durchschnitt, Min, Max) über den Zeitraum (Zeitraum) an=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
tendance(commande,période,seuil)
: Gibt den Trend der Bestellung über den Zeitraum (Zeitraum) an=[Monat, Tag, Stunde, Minute] oder PHP-Expression).
stateDuration(commande)
: Gibt die Dauer in Sekunden seit der letzten Wertänderung an.
-1 : Es gibt keine Geschichte oder keinen Wert in der Geschichte.
-2 : Die Bestellung wird nicht protokolliert.
lastChangeStateDuration(commande,valeur)
: Gibt die Dauer in Sekunden seit der letzten Zustandsänderung auf den im Parameter übergebenen Wert an.
-1 : Es gibt keine Geschichte oder keinen Wert in der Geschichte.
-2 Die Bestellung wird nicht protokolliert
lastStateDuration(commande,valeur)
: Gibt die Dauer in Sekunden an, in der das Gerät zuletzt den gewählten Wert hatte.
-1 : Es gibt keine Geschichte oder keinen Wert in der Geschichte.
-2 : Die Bestellung wird nicht protokolliert.
age(commande)
: Gibt das Alter des Befehlswerts in Sekunden an (collecDate
)
-1 : Der Befehl existiert nicht oder ist nicht vom Typ info.
stateChanges(commande,[valeur], période)
& stateChangesBetween(commande, [valeur], start, end)
: Gibt die Anzahl der Zustandsänderungen (in Richtung eines bestimmten Wertes, falls angegeben, oder, falls nicht angegeben, im Vergleich zum aktuellen Wert) über den Zeitraum (Periode=[Monat, Tag, Stunde, Minute] oder PHP-Expression) oder zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
lastBetween(commande,start,end)
: Gibt den letzten für das Gerät aufgezeichneten Wert zwischen den 2 angeforderten Terminals (in der Form Y-m-d H:i:s
Oder PHP-Expression).
variable(mavariable,valeur par défaut)
: Ruft standardmäßig den Wert einer Variablen oder den gewünschten Wert ab.
GenericType (GENERIC, #[Object]#)
: Ruft die Summe der GENERIC Generic Type-Informationen im Object-Objekt ab.
scenario(scenario)
: Gibt den Status des Szenarios zurück.
1 : In Bearbeitung,
0 : Verhaftet,
-1 : Untauglich,
-2 : Das Szenario existiert nicht,
-3 : Zustand ist nicht konsistent.
Um den "menschlichen" Namen des Szenarios zu erhalten, können Sie die entsprechende Schaltfläche rechts neben der Szenariosuche verwenden.
lastScenarioExecution(scenario)
: Gibt die Dauer in Sekunden seit dem letzten Start des Szenarios an.
0 : Das Szenario existiert nicht
collectDate(cmd,[format])
: Gibt das Datum der letzten Datenerfassung für den als Parameter platzierten Befehl zurück. Der zweite optionale Parameter wird verwendet, um das Rückgabeformat anzugeben (Details Hier).
-1 : Der Befehl konnte nicht gefunden werden,
-2 : Der Befehl ist nicht vom Typ info.
valueDate(cmd,[format])
: Gibt das Datum des letzten bekannten Werts für den als Parameter platzierten Befehl zurück. Der zweite optionale Parameter wird verwendet, um das Rückgabeformat anzugeben (Details Hier).
-1 : Der Befehl konnte nicht gefunden werden,
-2 : Der Befehl ist nicht vom Typ info.
eqEnable(equipement)
: Gibt den Status des Geräts zurück.
-2 : Das Gerät kann nicht gefunden werden,
1 : Ausrüstung ist aktiv,
0 : Das Gerät ist inaktiv.
value(cmd)
: Gibt den Wert einer Bestellung zurück, wenn er nicht automatisch von Jeedom angegeben wird (Groß- und Kleinschreibung, wenn der Name der Bestellung in einer Variablen gespeichert wird)
tag(montag,[defaut])
: Wird verwendet, um den Wert eines Tags oder den Standardwert abzurufen, falls dieser nicht vorhanden ist.
name(type,commande)
: Wird verwendet, um den Namen der Bestellung, Ausrüstung oder des Objekts abzurufen. Art : cmd, eqLogic oder Objekt.
lastCommunication(equipment,[format])
: Gibt das Datum der letzten Informationsrückmeldung für das im Parameter angegebene Gerät zurück, der 2. optionale Parameter dient zur Angabe des Rückgabeformats (details Hier). Eine Rückgabe von -1 bedeutet, dass das Gerät nicht gefunden werden kann. Das Datum der letzten Auskunft errechnet sich aus der Auskunftsart Bestellung und deren Erhebungsdatum.
color_gradient(couleur_debut,couleur_fin,valuer_min,valeur_max,valeur)
: Gibt eine relativ zu einem Wert im Intervall color_start / color_end berechnete Farbe zurück. Der Wert muss zwischen min_value und max_value liegen.
Die Perioden und Intervalle dieser Funktionen können auch mit verwendet werden PHP-Ausdrücke wie zum Beispiel :
Now
: JETZT.Today
: 00:00 heute (ermöglicht zum Beispiel, Ergebnisse für den Tag zu erhalten, wenn zwischen Today
Und Now
).Last Monday
: letzten Montag um 00:00.5 days ago
: Vor 5 Tagen.Yesterday noon
: gestern mittag.Hier finden Sie praktische Beispiele zum Verständnis der von diesen verschiedenen Funktionen zurückgegebenen Werte :
Sockel mit Werten : | 000 (für 10 Minuten) 11 (für 1 Stunde) 000 (für 10 Minuten)) |
---|---|
average(prise,période) |
Gibt den Durchschnitt von 0 und 1 zurück (can |
durch Umfragen beeinflusst werden) | |
averageBetween(#[Salle de bain][Hydrometrie][Humidité]#,2015-01-01 00:00:00,2015-01-15 00:00:00) |
Gibt die durchschnittliche Bestellung zwischen dem 1. Januar 2015 und dem 15. Januar 2015 zurück |
min(prise,période) |
Gibt 0 zurück : Der Stecker wurde während des Zeitraums gelöscht |
minBetween(#[Salle de bain][Hydrometrie][Humidité]#,2015-01-01 00:00:00,2015-01-15 00:00:00) |
Gibt die Mindestbestellmenge zwischen dem 1. Januar 2015 und dem 15. Januar 2015 zurück |
max(prise,période) |
Rückgabe 1 : Der Stecker war in der Zeit gut beleuchtet |
maxBetween(#[Salle de bain][Hydrometrie][Humidité]#,2015-01-01 00:00:00,2015-01-15 00:00:00) |
Gibt das Maximum der Bestellung zwischen dem 1. Januar 2015 und dem 15. Januar 2015 zurück |
duration(prise,1,période) |
Gibt 60 zurück : Der Stecker war in diesem Zeitraum 60 Minuten lang eingeschaltet (bei 1) |
durationBetween(#[Salon][Prise][Etat]#,0,Last Monday,Now) |
Gibt die Dauer in Minuten zurück, in der die Steckdose seit dem letzten Montag ausgeschaltet war. |
statistics(prise,count,période) |
Rückgabe 8 : In diesem Zeitraum gab es 8 Eskalationen |
tendance(prise,période,0.1) |
Gibt -1 zurück : Abwärtstrend |
stateDuration(prise) |
Gibt 600 zurück : Der Stecker befindet sich seit 600 Sekunden (10 Minuten) in seinem aktuellen Zustand) |
lastChangeStateDuration(prise,0) |
Gibt 600 zurück : Die Steckdose ging vor 600 Sekunden (10 Minuten) zum letzten Mal aus (auf 0 ändern)) |
lastChangeStateDuration(prise,1) |
Gibt 4200 zurück : Die Steckdose wurde vor 4200 Sekunden (1h10) zum letzten Mal eingeschaltet (auf 1 umgeschaltet)) |
lastStateDuration(prise,0) |
Gibt 600 zurück : Die Steckdose war 600 Sekunden (10 Minuten) ausgeschaltet) |
lastStateDuration(prise,1) |
Gibt 3600 zurück : Die Steckdose wurde zuletzt für 3600 Sekunden (1 Stunde) eingeschaltet) |
stateChanges(prise,période) |
Rückgabe 3 : Der Socket hat während des Zeitraums dreimal den Status geändert (wenn der Befehl info vom binären Typ ist) |
stateChanges(prise,0,période) |
Rückgabe 2 : Die Steckdose ist während des Zeitraums zweimal erloschen (auf 0) |
stateChanges(prise,1,période) |
Rückgabe 1 : Der Stecker leuchtet während des Zeitraums einmal (auf 1 ändern) |
lastBetween(#[Salle de bain][Hydrometrie][Température]#,Yesterday,Today) |
Gibt die zuletzt gestern aufgezeichnete Temperatur zurück. |
variable(plop,10) |
Gibt den Wert der Variablen plop oder 10 zurück, wenn sie leer ist oder nicht existiert |
scenario(#[Salle de bain][Lumière][Auto]#) |
Gibt 1 in Bearbeitung zurück, 0, wenn gestoppt, und -1, wenn deaktiviert, -2, wenn das Szenario nicht existiert, und -3, wenn der Status nicht konsistent ist |
lastScenarioExecution(#[Salle de bain][Lumière][Auto]#) |
Gibt 300 zurück, wenn das Szenario vor 5 Minuten zum letzten Mal gestartet wurde |
collectDate(#[Salle de bain][Hydrometrie][Humidité]#) |
Rückgabe 2021-02-14 17:50:12 |
valueDate(#[Salle de bain][Hydrometrie][Humidité]#) |
Rückgabe 2021-02-14 17:45:12 |
eqEnable(#[Aucun][Basilique]#) |
Gibt -2 zurück, wenn das Gerät nicht gefunden wird, 1, wenn das Gerät aktiv ist, und 0, wenn es inaktiv ist |
tag(montag,toto) |
Gibt den Wert von “montag” zurück, falls vorhanden, andernfalls wird der Wert “toto” zurückgegeben” |
name(eqLogic,#[Salle de bain][Hydrometrie][Humidité]#) |
Gibt Hydrometrie zurück |
Eine generische Funktions-Toolbox kann auch zum Durchführen von Konvertierungen oder Berechnungen verwendet werden :
rand(1,10)
: Geben Sie eine Zufallszahl von 1 bis 10 an.randText(texte1;texte2;texte…..)
: Ermöglicht es Ihnen, einen der Texte zufällig zurückzugeben (trennen Sie die Texte durch einen; ). Die Anzahl der Texte ist unbegrenzt.randomColor(min,max)
: Gibt eine zufällige Farbe zwischen 2 Grenzen (0 => Rot, 50 => Grün, 100 => Blau).trigger(commande)
: Ermöglicht es Ihnen, den Auslöser für das Szenario herauszufinden oder festzustellen, ob der als Parameter übergebene Befehl das Szenario ausgelöst hat. => Veraltet, es ist besser, das Tag zu verwenden #trigger#triggerValue()
: Wird verwendet, um den Wert des Szenario-Triggers herauszufinden. => Veraltet, es ist besser, das Tag zu verwenden #triggerValue#round(valeur,[decimal])
: Runden oben, [Dezimal] Anzahl der Dezimalstellen nach dem Dezimalpunkt.odd(valeur)
: Lässt Sie wissen, ob eine Zahl ungerade ist oder nicht. Gibt 1 zurück, wenn sonst ungerade 0.median(commande1,commande2….commandeN)
: Gibt den Median der Werte zurück.avg(commande1,commande2….commandeN)
: Gibt den Durchschnitt der Werte zurück.time_op(time,value)
: Ermöglicht die pünktliche Ausführung von Operationen mit time = time (z : 1530) und Wert = Wert zum Addieren oder Subtrahieren in Minuten.time_between(time,start,end)
: Wird verwendet, um zu testen, ob eine Zeit zwischen zwei Werten mit liegt time=temps
(Ex : 1530), start=temps
, end=temps
. Start- und Endwerte können sich über Mitternacht erstrecken.time_diff(date1,date2[,format, round])
: Wird verwendet, um den Unterschied zwischen zwei Daten zu ermitteln (die Daten müssen das Format JJJJ / MM / TT HH haben:MM:SS). Standardmäßig gibt die Methode die Differenz in Tag (e) zurück). Sie können es in Sekunden (s), Minuten (m), Stunden (h) fragen). Beispiel in Sekunden time_diff(2019-02-02 14:55:00,2019-02-25 14:55:00,s)
. Die Differenz wird in absoluten Zahlen zurückgegeben, sofern Sie nichts anderes angeben f
(sf
, mf
, hf
, df
). Sie können auch verwenden dhms
wer wird nicht Beispiel zurückgeben 7j 2h 5min 46s
. Der optionale Parameter round rundet auf x Dezimalstellen (standardmäßig 2). Ex: time_diff(2020-02-21 20:55:28,2020-02-28 23:01:14,df, 4)
.formatTime(time)
: Formatiert die Rückgabe einer Kette #time#
.floor(time/.60)
: Konvertieren Sie Sekunden in Minuten oder Minuten in Stunden (floor(time/.3600)
für Sekunden bis Stunden).convertDuration(secondes)
: Konvertiert Sekunden in d / h / min / s.Und praktische Beispiele :
Funktionsbeispiel | Zurückgegebenes Ergebnis |
---|---|
randText(il fait #[salon][oeil][température]#;La température est de #[salon][oeil][température]#;Actuellement on a #[salon][oeil][température]#) |
Die Funktion gibt bei jeder Ausführung zufällig einen dieser Texte zurück. |
randomColor(40,60) |
Gibt eine zufällige Farbe nahe Grün zurück. |
round(#[Salle de bain][Hydrometrie][Humidité]# /. 10) |
Gibt 9 zurück, wenn der Feuchtigkeitsprozentsatz und 85 |
odd(3) |
Rückgabe 1 |
median(15,25,20) |
Rückgabe 20 |
avg(10,15,18) |
Rückgabe 14.3 |
time_op(#time#, -90) |
Wenn es 16:50 Uhr ist, kehren Sie zurück : 1 650-1 130 = 1520 |
formatTime(1650) |
Rückgabe 16:50 Uhr |
floor(130/.60) |
Gibt 2 zurück (Minuten bei 130 s oder Stunden bei 130 m) |
convertDuration(3600) |
Gibt 1h 0min 0s zurück |
convertDuration(duration(#[Chauffage][Module chaudière][Etat]#,1, first day of this month)*60) |
Gibt die Zündzeit in Tagen / Stunden / Minuten der Übergangszeit auf Zustand 1 des Moduls seit dem 1. Tag des Monats zurück |
sun(elevation)
: Gibt in ° die Höhe der Sonne an (Achtung, Sie müssen Ihre geografischen Koordinaten in der Konfiguration von jeedom eingegeben haben)sun(azimuth)
: Gibt in ° den Azimut der Sonne an (Achtung, Sie müssen Ihre geografischen Koordinaten in der Konfiguration von jeedom eingegeben haben)Zusätzlich zu den Befehlen für die Hausautomation haben Sie Zugriff auf die folgenden Aktionen :
Mit dieser Funktion können Sie ein Szenario in eine Vorlage umwandeln, um es beispielsweise auf ein anderes Jeedom anzuwenden.
Durch Klicken auf die Schaltfläche Vorlage Oben auf der Seite öffnen Sie das Vorlagenverwaltungsfenster.
Von dort haben Sie die Möglichkeit :
Durch Klicken auf eine Vorlage können Sie :
Unten haben Sie den Teil, um Ihre Vorlage auf das aktuelle Szenario anzuwenden.
Da die Befehle von einem Jeedom zum anderen oder von einer Installation zur anderen unterschiedlich sein können, bittet Jeedom Sie um die Entsprechung der Befehle zwischen den bei der Erstellung der Vorlage vorhandenen und den zu Hause vorhandenen. Sie müssen nur die Korrespondenz der Bestellungen ausfüllen, um sich zu bewerben.
WICHTIG
Das Hinzufügen der PHP-Funktion ist fortgeschrittenen Benutzern vorbehalten. Der kleinste Fehler kann für Ihr Jeedom fatal sein.
Gehen Sie zur Jeedom-Konfiguration, dann zu OS / DB und starten Sie den Datei-Editor.
Gehen Sie in den Datenordner und dann in PHP und klicken Sie auf die Datei user.function.class.php.
Es ist in diesem Klasse Damit Sie Ihre Funktionen hinzufügen können, finden Sie dort ein Beispiel für eine Grundfunktion.
WICHTIG
Wenn Sie Bedenken haben, können Sie jederzeit zur Originaldatei zurückkehren, indem Sie den Inhalt von kopieren
user.function.class.sample.php
Inuser.function.class.php