Skript-Plugin

Plugin zum Ausführen von Skripten (Shell, PHP, Ruby…) und http-Anforderungen zum Abrufen von Informationen in XML oder JSON.

Plugin Konfiguration

Die Konfiguration ist sehr einfach. Nach dem Herunterladen des Plugins müssen Sie es nur noch aktivieren und fertig.

configuration

Die einzige Möglichkeit besteht darin, dass jeedom die Skripte standardmäßig ablegt. Es wird empfohlen, sie nicht zu berühren.

Gerätekonfiguration

Auf die Konfiguration der Skriptausrüstung kann über das Plugin / Programmiermenü zugegriffen werden

So sieht die Script-Plugin-Seite aus (hier bereits mit Ausrüstung) :

liste des équipements

Hier ist die Liste Ihrer Skripte. Sobald Sie auf ein Gerät klicken, erhalten Sie :

équipement

Hier finden Sie die gesamte Konfiguration Ihrer Geräte :

commandes Hier finden Sie die Liste der Bestellungen :

Wichtig

Sonderzeichen sollten im Skriptpfad oder in seinen Parametern so weit wie möglich vermieden werden. Die erlaubten Zeichen sind : Zahlen, Buchstaben (Groß- oder Kleinschreibung)

Wichtig

Sie können im Anfragefeld (für http, json, xml) json eingeben, Sie müssen ihm nur json voranstellen::, Beispiel json::{"clef":"valeur"}

exemple

Wird verwendet, um eine URL aufzurufen oder die Rückgabe einer URL abzurufen.

Die HTML-Auswahl

Skript HTML

Ermöglicht das Übergeben einer Webseite (HTML-Datei), um einen obigen Wert abzurufen. Die Syntax ist dieselbe wie für jquery.

Das Optionsfeld enthält ein Feld “HTML-Datei-URL”” : Dieses Feld enthält daher den Link zu dem Computer, auf dem sich die betreffende HTML-Datei befindet.

Die XML-Auswahl

Skript XML

Ermöglicht es Ihnen, XML wiederherzustellen und gezielt nach einem Wert darin zu suchen.

Das Optionsfeld enthält das Feld “URL der XML-Datei”” : Dieses Feld enthält daher den Link zu dem Computer, auf dem sich die betreffende XML-Datei befindet.

Wichtig

Es können nur Werte abgerufen werden, Attribute können nicht abgerufen werden.

Die JSON-Wahl

Skript JSON

Ermöglicht die Wiederherstellung von json und die gezielte Suche nach einem Wert darin.

Das Optionsfeld enthält ein Feld “JSON-Datei-URL”” : Dieses Feld enthält daher den Link zu dem Computer, auf dem sich die betreffende JSON-Datei befindet.

Exemples

Http : Eine Vera steuern

Das Beispiel basiert auf einer Vera und besteht aus dem Antreiben einer dimmbaren Glühbirne. Ich werde nicht näher darauf eingehen, wie eine Vera per http-Anfrage gesteuert werden kann. Das TLD-Forum ist voller Antworten. Außerdem entspricht das Beispiel meiner Materialart und muss an Ihre angepasst werden.

Spitze

Eine Methode für diejenigen, die nach dem Schreiben von http-Anfragen suchen. Überprüfen Sie zuerst die Syntax in Ihrem Browser und wechseln Sie dann zur Konfiguration unter Jeedom. Wenn ein Aktionsskript nicht funktioniert, können Sie durch Umschalten auf das Skript “Info / Andere” den zurückgegebenen Fehler sehen.

Lassen Sie uns gehen :

Erklärungen :

''url http://<IP_VERA>:3480/data_request?id=lu_action&output_format=json&DeviceNum=12&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget=100 ‘’

Spitze

Die “100” am Ende der Anforderung entspricht dem Prozentsatz der zuzuweisenden Leistung. Wenn Sie also “0” am Ende der Anforderung setzen, entspricht dies dem Ausschalten der Glühlampe.

Mit der Schaltfläche “Test” können Sie Ihre Bestellung testen !

Sie können daher Bestellungen in derselben Ausrüstung multiplizieren, indem Sie beispielsweise eine Bestellung mit 60% für schwaches Licht aufgeben und eine dritte Bestellung mit 30% für Nachtfahrten erstellen, die in einem Szenario kombiniert werden sollen usw

Es ist auch möglich, einen Schieberegler-Befehl zu erstellen, indem Sie das Tag #slider# in der Abfrage :

''url http://<IP_VERA>:3480/data_request?id=lu_action&output_format=json&DeviceNum=12&serviceId=urn:upnp-org:serviceId:Dimming1&action=SetLoadLevelTarget&newLoadlevelTarget=#slider# ‘’

Spitze

Wenn Ihr Befehl vom Typ Nachricht ist, können Sie die Tags ` verwenden#message# und #title#, dasselbe für einen Farbtypbefehl mit dem Tag #color#, oder Slider-Typ mit #slider# oder Liste mit #select#`

Http : Benachrichtigung an XBMC senden

Ziel : Senden Sie eine Benachrichtigung an XBMC, wenn Sie eine Vordertür öffnen.

''url http://IP_DE_XBMC:8080/jsonrpc?request={ %22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ShowNotification%22,%22params%22:{ %22title%22:%22Mouvement% 20Détecté%22,%22message%22:%22Porte% 20Entrée%22},%22id%22:1} ‘’

Es liegt an Ihnen, dies beispielsweise in einem Szenario zu testen !

XBMC-API hier (Nur die mit “erforderlich” gekennzeichneten Felder sind obligatorisch)

Ziel : Senden Sie eine Benachrichtigung an XBMC, wenn die Temperatur einen bestimmten Schwellenwert unterschreitet

Nehmen Sie das obige Beispiel :

Testen Sie ein Szenario #[EXTERIEUR][EXTERIEUR][TEMPERATURE]# < 5 par exemple

Aktion : Starten Sie das Skript über eine virtuelle Ausrüstung, die mit Ihrem Skript verknüpft ist !

SCRIPT

Das Schönste, aber nicht das Einfachste zu erklären.

Voraussetzungen : wissen, wie man ein Skript in PHP, Python, Perl oder Ruby entwickelt.

Wichtig

Die Erweiterung Ihres Skripts muss unbedingt dem Typ entsprechen. In der Tat basiert Jeedom auf der Erweiterung des Skripts für den Start der ausführbaren Datei

Wenn Ihr Dateiname nicht enthält :

  • .php .py .pl .rb

Das Skript-Plugin startet eine Shell, die es basierend auf der Direktive der 1. Zeile (shebang) ausführt ). Beispiel :

''bash #!/ bin / csh -f #!/ bin / ksh #!/ usr / bin / env python3 #!/ usr / bin / env php #!/ usr / bin / env Knoten Usw. ... ‘’

Das Skript zur Überwachung der Himbeertemperatur dient als Beispiel für die Verwendung des Skripttyps : Script

Nach dem Herunterladen des Skripts können Sie über die Schaltfläche “Durchsuchen” die Datei temp_rasp.php auswählen.

Aus Neugier können Sie den Inhalt der Datei anzeigen, indem Sie auf die Schaltfläche “Bearbeiten” klicken. Sie sollten den folgenden Code erhalten :

Dies ist ein PHP-Skript, das außerhalb von Jeedom wiederverwendet werden kann !

''php <?php $temp = shell_exec("cat /sys/class/thermal/thermal_zone0/temp"); $temp = $temp / 1000; $temp = round($temp,1); echo $temp; ?> ‘’

Notiz : konkret ist es die PHP “Echo” -Funktion, die Jeedom den Wert gibt

Die Parameter

Holen Sie sich Jeedom’s Informationen, um sie in einem Skript zu verwenden. Die Wiederherstellung hängt von der Art des verwendeten Skripts ab :

Empfehlung zum Testen der Parameter im PHP-Skript :

''php if (isset($argv)) { foreach ($argv als $arg) { $argList = explode('=', $arg); if (isset($argList[0]) && isset($argList[1])) { $_GET[$argList[0]] = $argList[1]; } } } ‘’

XEinzel-ML

Hier ist das Format des Standard-XML :

`` ‘‘xml

1 toto

`` ‘’

Wenn Sie den Wert von led0 in der Abfrage haben möchten, geben Sie led0 ein. Si vous voulez la valeur de la led1 qui est le fils de leds vous mettez leds > led1.

Notez que l’élément racine <root> n’est pas à préciser dans le champ Petition.

XKomplexes ML

`` ‘‘xml

1 toto tata

`` ‘’

Die Syntax lautet :

leds > 1 > led1, was Tata als Antwort gibt, wobei 1 die Zeilennummer des Arrays ist !

XKomplexer ML

`` ‘‘xml

Tresa - Ponte Tresa, Rocchetta 01.05.2017 18:50 268.56 268.51 0.051 268.52 268.56 268.50 Inn - Tarasp 01.05.2017 18:50 4.85 7.98 -3.130 6.15 7.98 4.85 Doubs - Combe des Sarrasins 01.05.2017 18:00 500.65 500.65 0.000 500.65 500.65 500.64

`` ‘’

Informationen aus dem Feld Wert des 1. Blocks abrufen:

MesPar>0>Wert>0 was also “268.56 “

Um das nächste Element in der Wert “Struktur” zurückzugeben, müssen Sie nur die Bestellnummer in der Struktur angeben. Was für das Element <Wert Typ="delta24"> 0.051</Wert> den folgenden Code :

MesPar>1>Wert>2

Um zum nächsten “MyPar” -Block zu gelangen, müssen Sie daher den Index entsprechend ändern : die 1 mal 2 zum Beispiel.

Achtung : Wenn sich die Reihenfolge in der XML-Datei ändert, funktioniert die Anforderung nicht mehr. Die Anforderung muss entsprechend der zurückgegebenen Bestellung angepasst werden.

JSON

Wie beim XML-Typ ist es möglich, Informationen aus einer JSON-Rückgabe zu lesen.

Zur Erklärung werde ich mich auf JSON-Informationen mit der Sickbeard-Anwendung (boo… cpasbien) stützen, aber hier nur auf die Haupttechnik, nicht auf das Tool!

Der Zugriff auf diese Datei ist über die folgende URL möglich :

http://<IP_DELAMACHINEQUIEBERGESICKBEARD>:8083/api/XXXX/?cmd=history&limit=3

Notiz : XXXX ist die für jeden SICKBEARD spezifische API-Schlüsselnummer.

Bevor Sie mit der Konfiguration des JSON-Skript-Plugins beginnen, müssen Sie zunächst die wiederherzustellenden Informationen korrekt identifizieren., denn hier werden wir einen Begriff des Arrays in die Rückgaben integrieren.

Überprüfen Sie die Anzeige von Informationen in Ihrem Browser (Test in Chrome).

Beispiel für die Rückgabe :

''json { "data": [ { "date": "10.09.2014 01:37", "episode": 4, "provider": "RNT", "quality": "SD-TV", "resource": "XXX", "Ressourcenpfad": "XXXX", "season": 2, "Name anzeigen": "Totovaalaplage S2E4", "status": "Downloaded", "tvdbid": XXXXX }, { "date": "10.09.2014 01:36", "episode": 3, "provider": "RNT", "quality": "SD-TV", "resource": "XXXX", "Ressourcenpfad": "XXX", "season": 2, "Name anzeigen": "Totovaalaplage S2E3", "status": "Downloaded", "tvdbid": XXXXX }, { "date": "10.09.2014 01:21", "episode": 1, "provider": "Cpasbien", "quality": "SD-TV", "resource": "XXXX", "Ressourcenpfad": "XXXX", "season": 1, HIER --> "show_name": "Totovaplusauski aber Totovaalaplage S1E1", "status": "Snatched", "tvdbid": XXXX } ], "message": "", "result": "success" } ‘’

In der Hypothese, in der wir den show_name des 3. Elements in php (HIER markiert) zurückgeben möchten, müssten wir dies tun : data> 2> show_name, der Rückgabearray-Index, der bei Null beginnt.

In diesem Beispiel gibt die Schaltfläche “Test” “Totovaplusauski aber Totovaalaplage S1E1” zurück”.

Präzisierungen :

Beachten Sie die Syntax des Abfragebefehls vom Typ element0> Array-Index> element1

Nachteile :

HTML

Hier werden wir versuchen, die letzte FML abzurufen.

Zuerst müssen Sie die URL konfigurieren :

http://www.viedemerde.fr

Dann müssen Sie den “Pfad” der letzten FML finden. Gehen Sie dazu zur Website, klicken Sie mit der rechten Maustaste auf den gewünschten Artikel und überprüfen Sie den Artikel, den Sie erhalten :

Beispiel HTML 1

Dies ist der komplexeste Teil und erfordert eine kleine Analyse. Hier befindet sich mein Text in einem “a” -Tag, das sich in einem Element vom Typ p befindet, das ein Post-Artikel der Klasse div ist”. Also muss ich das erste div-Element der Klasse “post” und “article” auswählen, dann das erste Element p und ich bekomme alles in den darin enthaltenen “a” -Tags. Also habe ich : “div.post.article:erste p:zuerst a”.

Also bekommen wir :

Beispiel HTML VDM

Für ein Update in Echtzeit ist es möglich, ein Update zu erstellen.

Spitze

Bei der Installation eines Update-Cron aktiviert Jeedom automatisch das Kontrollkästchen Ereignis. Dies ist völlig normal.

Hier können Sie sich dann ein Szenario vorstellen, das Ihnen per SMS die letzte FML sendet.

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.