NEWS
Test Adapter Plex v0.8.x
-
Aktuelle Test Version 0.8.x Veröffentlichungsdatum v0.8.0 29.10.2019 Veröffentlichungsdatum v0.8.1 02.11.2019 Github Link https://github.com/Zefau/ioBroker.plex Roadmap https://github.com/Zefau/ioBroker.plex/projects/1 Über Tester der aktuellen Version würde ich mich sehr freuen.
Plex Notifications
Die v0.8.x unterstützt nun zuverlässig Plex Notifications (siehe offizielle Ankündigung https://www.plex.tv/blog/plex-knows-notifications/). Das Feature muss im Plex Media Server aktiviert werden (siehe https://support.plex.tv/articles/push-notifications/).
Die Events werden in den Objekten unterevents
gespeichert. Das Adapter Web-Interface zeigt diese dann an:Die Texte für die Benachrichtigungen können in den Adapter-Einstellungen customized werden:
Garbage Collector
Alte States werden nun zuverlässig bereinigt, wenn beispielsweise nach einem Film eine Serie abgespielt wird. Die States unter
_playing
werden entsprechend bereinigt. -
Ich habe mir, nach Abschluß eines Plex Passes, den neuen Adapter von Zefau nach Anleitung installiert, was, dank der sehr guten Anleitung, auch problemlos funktioniert hat. Es scheint soweit auch alles zu funktionieren - es gibt keine Fehlermeldungen und der Adapter ist grün.
Meine Frage in die Runde: Was genau läßt sich mit dem Adapter denn nun anfangen? Hat jemand von Euch ein paar gute Ideen oder vielleicht auch schon ein paar praktisch erprobte Anwendungsfälle, die er hier mal posten kann (am besten direkt mit entsprechender Anleitung zum "Nachbasteln")?
Ein paar naheliegende Ideen hätte ich schon:
- Anzeige der gerade laufenden Wiedergabe(n) im VIS (am besten nicht nur Titel der Wiedergabe, sondern auch das abspielende Gerät)
- Abfrage (per Alexa), ob man das Album X von Interpret Y schon in seiner Musiksammlung hat oder welche Alben des Interpreten es in der Sammlung gibt (Nennung aller Alben per Alexa-Sprachausgabe)
- Starten oder Abschalten von Wiedergaben mit beliebigen (auch entfernten) Abspielgeräten im Netzwerk (etwa in der Art: "Alexa, schalte die Wiedergabe auf FireTV Wohnzimmer aus!")
- Plex Server (neu)starten oder stoppen (VIS, Alexa)
- Scan nach neuen/geänderten Inhalten in der Mediathek ausführen (VIS, Alexa)
[...]
Bei Zefau habe ich außerdem auch schon angefragt, inwieweit es möglich wäre, sich über Updates benachrichtigen zu lassen (per Alexa-Sprachausgabe) und vorhandene Updates für den Server dann auch vielleicht direkt per Sprachbefehl zu installieren. Leider würde Letzteres einen Amazon-Skill erfordern, was Zefeau selbst aber (derzeit zumindest) noch nicht kann. Vielleicht kann hier ja einer von Euch weiterhelfen...?
Auch wäre es für absolute Laien wie mich noch ganz praktisch, wenn Du vielleicht noch ein paar Standardanwendungsmöglichkeiten des Skill aufzeigen könntest. Soweit ich das verstanden habe, ist es ja z.B. möglich, daß man die laufenden Wiedergaben abruft. Oder daß man Plex nach geänderten Elementen der Mediathek suchen läßt? Sicherlich gibt es noch jede Menge anderer Möglichkeiten, den Skill sinnvoll einzusetzen...
Ich freue mich auf Eure Rückmeldungen!
-
Ich hatte den alten Plex connect Adapter bei mir installiert. Da hatte ich damals eingerichtet, das Telegram mit eine Nachricht schickt, wer was wodrauf abspielt. Seid dem es jetzt Plex Notifications mit der Plex App gibt, ist das eigentlich überflüssig. Man kann es hiermit natürlich noch schöner gestelten und das Bild vom Film usw. anzeigen lassen.
Ansonsten würde mir auch nur noch die Anzeige in der VIS einfallen. Da kann man sich ja dann frei austoben.
Zu Abfragen und Steuerung von Plex wird es glaube ich mit Alexa und ioBroker schwierig. Wäre mir neu, dass man mit Alexa irgendwelche individuellen Abfragen über ioBroker laufen lassen kann ob man schon Interpret XY in der Sammlung hat.
Es gibt ja einen Plex Skill für Alexa. Der ist aber glaube ich noch in der Beta oder so und funktioniert bei mir zumindest noch nicht so gut.Was ich sonst noch mache, ich habe immer einen Plex Player laufen. Wenn ich dann über die Plex App einen Film auf den Player an mache, geht automatisch der TV an und schaltet sich auf den richtigen Eingang, das licht wird runter wie im Kino langsam runter gedimmt und geht dann aus.
Je nachdem was man zu Hause noch hat, könnte man noch Rollos runter fahren oder z.B. Beamerleinwand runter fahren lassen. Halt alles so gemütlich machen, dass man den Film genießen kann. -
Wie sieht denn Dein Trigger (bzw. Dein ganzes Script) aus, der den Filmabend starten läßt? Das wäre nämlich in der Tat ein sehr sinnvoller Anwendungsfall!
Was den Plex Skill angeht: Die Beta ist abgeschlossen (war hier selbst als Übersetzer beteiligt), aber der Skill zickt in der Tat noch öfters herum, auch bei mir. Das liegt aber wohl an Alexa und den üblichen Problemen mit gemischtsprachigen Eingaben (typischer Anwendungsfall hierzulande: ein Deutscher spricht deutsche Kommandos mit meist englischsprachigen Interpreten und Titeln).
Inwieweit der Skill auch weiterführende Funktionen bietet oder bieten wird, ist mir gar nicht bekannt (abgesehen von Server suchen/festlegen u.ä.). Entsprechende Befehle habe ich persönlich nicht übersetzt - da hier aber noch einige andere Leute beteiligt waren, muß das nicht unbedingt etwas zu heißen haben. -
@P-A-L-A-D-I-N
Hier mal das Skript. Ist ein "all in one" Skript. Hatte ich mal angefangen und immer erweitert. Ist auch noch vom Plex connect Adapter. Bin gestern erst mit meinem ioBroker auf einer VM umgezogen und wollte das jetzt an den Plex Adapter hier anpassen. Aber dann siehst zumindest wie man das gestalten kann. Die Datenpunkte gibt es ja auch alle in diesen Adapter hier.
Wobei wenn ich mir das Skript jetzt so angucke, bleibe ich vielleicht doch auf Plex connect Adapter. Da war das mit den Abfragen des Players einfacher, weil man da einen Datenpunkt für alle Player hatte und die Player einfacher auswerten konnte. Jetzt gibt es für jeden Player seperate Datenpunkte.
Aber mal gucken, erstmal die wichtigen Dinge wieder einrichten. Danach gehts dann an solchen sachen hier bei.EDIT: Wobei ich gerade auch wieder sehe, dass der Adapter hier ja gleich "events" mit drin hat. Damit kann man sich dann ja ganz easy Benachrichtigungen und so schicken lassen.
-
@el_malto Ach Du meine Güte! Das ist aber mal hochgradig komplex! Kannst Du mir vielleicht den Code dazu schicken? Nachbasteln dürfte sonst mehrere Stunden dauern...
-
@el_malto sagte in Test Adapter Plex v0.8.x:
Da war das mit den Abfragen des Players einfacher, weil man da einen Datenpunkt für alle Player hatte und die Player einfacher auswerten konnte. Jetzt gibt es für jeden Player seperate Datenpunkte.
In deinem Skript fragst du einen speziellen Player (
el_malto
) ab. Das sollte mit dem Plex Adapter so auch funktionieren, denn der Player ist dediziert unter_playing
angelegt? Nur, dass bei dem Plex Adapter auch alle anderen Player angelegt sind (und beim plexconnect nur der Letzte). -
@P-A-L-A-D-I-N sagte in Test Adapter Plex v0.8.x:
@el_malto Ach Du meine Güte! Das ist aber mal hochgradig komplex! Kannst Du mir vielleicht den Code dazu schicken? Nachbasteln dürfte sonst mehrere Stunden dauern...
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="{%v15_)8k{5kG-?Qz}$i">Entpreller</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="dp,3f1iB]#uwVGWs|]rb">Movie</variable> <variable type="" id="a5KoB^(I+6}a0^)s-@M?">Serie</variable> <variable type="" id="Kldj7(2;;z-d{z.g[9+J">Song</variable> <variable type="undefined" id="timeout3">timeout3</variable> <variable type="undefined" id="timeout4">timeout4</variable> <variable type="undefined" id="timeout5">timeout5</variable> </variables> <block type="on" id="2-.V;oBuu~$=TzO-gqzV" x="113" y="-1463"> <field name="OID">enigma2.0.Alexa_Command.Standby</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="oFZR]6IIw{V|R]5oZ$tW"> <value name="IF0"> <block type="logic_compare" id="7|-Hsx}=EoONEF@_!-C="> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="Nx9g(Tq4MauvQx1qUYE_"> <field name="ATTR">val</field> <field name="OID">enigma2.0.Alexa_Command.Standby</field> </block> </value> <value name="B"> <block type="logic_boolean" id="*~?Y*Sw~s25:ug,GN`c_"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="request" id="=/rX{N``)yc.?s,koYw}"> <mutation with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text" id="x;qgw5IT,O1^$~r*xAU!"> <field name="TEXT">http://192.168.0.20:8585/?key=H</field> </shadow> </value> </block> </statement> </block> </statement> <next> <block type="variables_set" id="WW17Grx2N2U6O%(G8cbq"> <field name="VAR" id="{%v15_)8k{5kG-?Qz}$i" variabletype="">Entpreller</field> <value name="VALUE"> <block type="math_number" id="D1.[oyJGVm}C};.D_$ID"> <field name="NUM">0</field> </block> </value> <next> <block type="on" id=",.g;MwZItD:cQUAgjzv9"> <field name="OID">plexconnect.0.event.name</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="4x!zK+:Zq3![SBu,wr$u"> <value name="IF0"> <block type="logic_compare" id="u`D#:R[|=nCQbVe9PZ+J"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="j([6mc+HnL]hgE4-B2@-"> <field name="VAR" id="{%v15_)8k{5kG-?Qz}$i" variabletype="">Entpreller</field> </block> </value> <value name="B"> <block type="math_number" id="hm4*lE8/Yh:qPm!nR^@u"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=";v==yQ#,_5o36Vq!FF5%"> <field name="VAR" id="{%v15_)8k{5kG-?Qz}$i" variabletype="">Entpreller</field> <value name="VALUE"> <block type="math_number" id="sP.aII{k7$1ngyTKp?Q_"> <field name="NUM">1</field> </block> </value> <next> <block type="comment" id="IY419_D/WKg=/%rW-*+i"> <field name="COMMENT">Steuerung Plex</field> <next> <block type="timeouts_settimeout" id="uuMebUG|eZ6YWG}OHa_P"> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="%WlMB^%b?PSR)?^Q/eei"> <value name="IF0"> <block type="logic_operation" id="0sxHI2;gU!wxPLbQP!2j" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="cD`~66),sk$O;1OzYh2N" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=")YY).U:lR,BrQ#Xmdt8h" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="QxDBobk2p$!b-f17~Mdu"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4fqui}(FUPWvMs^jJ4H."> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="9Vlh?C$,pqM}9r-WDW+?"> <field name="TEXT">media.play</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="8H0ji[QbLGfj{HhL;hlL"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9@C1,#R3I0Nw9ZsjvwmF"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="VSbd5isKZC0wtZZm:BvC"> <field name="TEXT">media.resume</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="]ohQk?0^V))x;6;wdhN{"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="NSpyn9DA(w,!~q#LI`QL"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="B"> <block type="text" id="zJLf-Ii;ktcwFGe.2?c9"> <field name="TEXT">el_malto</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="IoE,tyt@f5+rH+p3gk/K" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="pox7L}25!*`4p.9|_/7t"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="!HJzbs`C)[O.Gn=.oHuM"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> <value name="B"> <block type="text" id="]:|j05DS)E^AKK9^?l=3"> <field name="TEXT">Server</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="E^oo9-)M:PFjp_;5x!gl"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="jG6qUH(4TDhm]}edGO(@"> <field name="ATTR">val</field> <field name="OID">enigma2.0.enigma2.CHANNEL</field> </block> </value> <value name="B"> <block type="text" id="+ASO%JCF^=*X4P.4l5T$"> <field name="TEXT">Plex Media Player</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="s|y]jY8u7]-M|`n=@IQw"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="Tk{g_:jpnbiLYKI[12^w"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="RKAril99yyNS9pZ~eo;z"> <field name="ATTR">val</field> <field name="OID">scene.0.TV</field> </block> </value> <value name="B"> <block type="logic_boolean" id="uZd7O(Sz[Y8AltwUn6A!"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="hrmhFcb)V[%{i2M0o;X*"> <mutation delay_input="false"></mutation> <field name="OID">scene.0.TV</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="^?D|ozmpLkr_H_A7z=1v"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id=":/2=E/z3}?AsQY.jD[z0"> <mutation delay_input="true"></mutation> <field name="OID">javascript.0.scriptEnabled.common.HDMI_2_SZ</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">9000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="_^sqRBl7JGlnE374ISHg"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="2VR}.^_u_Vz2,u1$4S~?"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.scriptEnabled.common.HDMI_2_SZ</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="DHDk7WJvnZ0~pgRK2cjn"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="6^WXQBlei?q$.6Vw||xE"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id=",E*GBpU-B_?1-9xJP*MZ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="P28?W_6b64y:Gt3t3`H3"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="ba.Pp9He5fyxeU1SF)DS"> <field name="ATTR">val</field> <field name="OID">zigbee.0.14b457fffe43566d.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/s5~M05K_80(#]B9`KFv"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="$U?E7saWE^!R$a+BUp@x"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="^,CpUBHt59=}c9VjVo:K"> <field name="ATTR">val</field> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> </block> </value> <value name="B"> <block type="math_number" id=":sxPB+nU`~r?;t.3/8IN"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="DsUoDt:ouh$|N$tFh3u="> <mutation delay_input="false"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.transition_time</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Yjv5T``mB_w.+ml#8P/N"> <field name="NUM">5</field> </block> </value> <next> <block type="control" id=":/r?/[r-0J}SZ%PMT*Ki"> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id=")`7paaJXKnVVv,mF+*ao"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="a!n@6My+x{(_Wo^ZZ/B+"> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">6000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="Bj^VP-x*nghG1U{ZpNG4"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="TyQR1*dhu84Vs9e5P=L;"> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.transition_time</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">7000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="yqSkv;(QE(~N42vtzFDL"> <field name="NUM">1</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="7!6A@xyB7zy1W3yV8=pK" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="HGi+y+_w-=magM!x^:i("> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="UWXPWv})KEKP-Vs%1Z^}"> <field name="ATTR">val</field> <field name="OID">zigbee.0.14b457fffe43566d.state</field> </block> </value> <value name="B"> <block type="logic_boolean" id="a68J~LJls.HAa5SJ1S^V"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="6^RB1gt2XXfaRaCB?E.w"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="a]$xr(8(SywZr/ZWI,3B"> <field name="ATTR">val</field> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> </block> </value> <value name="B"> <block type="math_number" id="[5UT0l@#vVF8.6|Xq;}G"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="V1ShsdPnT?t4.43*CM+h"> <mutation delay_input="false"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.transition_time</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="0P0FTup$-xVx7:xY8~n$"> <field name="NUM">2.5</field> </block> </value> <next> <block type="control" id="JQ97}Y;VryR[)w2}|9W8"> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="oo$1y@/`Mk?qu`E1dPXB"> <field name="NUM">1</field> </block> </value> <next> <block type="control" id="pp])2hnv*`^Di?oPf?x*"> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.brightness</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="K.t;gvo:~2cc#~%SB(,("> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="z_H|cm20R{sT3S](ODp."> <mutation delay_input="true"></mutation> <field name="OID">zigbee.0.14b457fffe43566d.transition_time</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">4500</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="3SKeufL9p[@_.M,3?vU@"> <field name="NUM">1</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="8Vc`+uKUyY42-Lm#f{,C"> <field name="COMMENT">Benachrichtigungen</field> <next> <block type="timeouts_settimeout" id="N}BFvc:|`h@i!h8BKKv|"> <field name="NAME">timeout</field> <field name="DELAY">5000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="ud{s?VQqhq}}kXAp0C0@"> <value name="IF0"> <block type="logic_compare" id="~DiOLxuPduRt%5mf4$*V"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="P4ueenHa(9R9kl@od+)6"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="B"> <block type="text" id="ryI{Ty%}NSSk4PYC/u/~"> <field name="TEXT">el_malto</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="6=+wNfG|S+J-cV?[`UHv"> <mutation elseif="4"></mutation> <value name="IF0"> <block type="logic_operation" id="P}rkkYM(cJrjihNtie=_" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="L]JxSTU77]lvj3~N!wEC" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="a~PpUp9=]ZZzWF_zMH~d"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="CE_-H6]GS+oLNwyz1=-x"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="Hg*FR1I/,P,o-(WUeFmd"> <field name="TEXT">media.play</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="mBMO9V.ui^3q@Q3^=yO;"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="1_ZoId`2A(3z|D/@=/qD"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="I*oIiH/ybf5^QeZR%=4|"> <field name="TEXT">media.resume</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="y1La56kLIb|2%5wfb/vE"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="e7A~8tlc~?m?D~6Lq4V,"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.librarySectionType</field> </block> </value> <value name="B"> <block type="text" id="+2ziaK?V2.q|I^*x~G/P"> <field name="TEXT">movie</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="exec" id="$@i026~2`(_`CTgFxz{_"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9UA@3:)o+n=0$R/0C=bd"> <field name="TEXT"></field> </shadow> <block type="text_join" id="2@VK9)pBp?@*#^dr`mg%"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="5(SEwD75vC=/bo%mz`5f"> <field name="TEXT">wget -q -N -O /opt/iobroker/plexmovie.jpg "</field> </block> </value> <value name="ADD1"> <block type="get_value" id="m.FWG=dM=n^Raq^Ji~fB"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.thumb</field> </block> </value> <value name="ADD2"> <block type="text" id="8cZNiYI%?z,~D`+6B{EE"> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="variables_set" id="H-_,,mw/01[AcB{vP6zN"> <field name="VAR" id="dp,3f1iB]#uwVGWs|]rb" variabletype="">Movie</field> <value name="VALUE"> <block type="text_join" id="{d]+ee,X,p1vxvs#K^wq"> <mutation items="5"></mutation> <value name="ADD0"> <block type="get_value" id="s=nMF7z0r^*wVkI3gwNC"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="ADD1"> <block type="text" id="u-R9*K4DBh8(Wt6!;:6A"> <field name="TEXT"> startet Film „</field> </block> </value> <value name="ADD2"> <block type="get_value" id=":]#U_P.f6|;B4HCgTY~t"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.title</field> </block> </value> <value name="ADD3"> <block type="text" id="LzTvC]+#jgTOjirKr6%C"> <field name="TEXT">“ auf </field> </block> </value> <value name="ADD4"> <block type="get_value" id="qPAcX?D~!Yzi!l6E-g0%"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id=")7|7+`BRpvV`S{.#33YG"> <field name="NAME">timeout3</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="^i^:fMt4]rUBuwyiptG{"> <mutation name="Bild Movie"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="DoCyw3I[DDnmCVK,jyd)" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="NHLL)v3wgxE@Mw^y[$:6" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="2Vr{Me+_8[Vz`%a#0(]2"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="cNrT[bRSO/2m|j%4]3(7"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="Fd#%:{)MAf^Ta6?Ql#T["> <field name="TEXT">media.play</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="]/s9cY#N6elfgYkPZ2rh"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="sKAI|(DppB=EQqzu.l2="> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="619EU.y}BGKH;bH~YyaD"> <field name="TEXT">media.resume</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="XvN%Rk]N{wW7,uT/xg`]"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="e{Mtm2R2`B/5L.fwCzit"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.librarySectionType</field> </block> </value> <value name="B"> <block type="text" id="P|QWK;a?WhXHI+MlwR?,"> <field name="TEXT">show</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="exec" id="ZN*@LZ2g#^Zboo65|j`+"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9UA@3:)o+n=0$R/0C=bd"> <field name="TEXT"></field> </shadow> <block type="text_join" id="=au;r2AXG^jvcxdug2y."> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="LD8hiG_dD9}596F2JbRV"> <field name="TEXT">wget -q -N -O /opt/iobroker/plexserie.jpg "</field> </block> </value> <value name="ADD1"> <block type="get_value" id="G;j(DYt416]L0%k]^h8%"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.thumb</field> </block> </value> <value name="ADD2"> <block type="text" id="vpCfYAVieUcF%!yb(BO:"> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="variables_set" id="+llLJR+FV-ZTkP5;qx;b"> <field name="VAR" id="a5KoB^(I+6}a0^)s-@M?" variabletype="">Serie</field> <value name="VALUE"> <block type="text_join" id=";YShR,o7oV_l26?8Lmt2"> <mutation items="7"></mutation> <value name="ADD0"> <block type="get_value" id="QV2?s`0*nH(7Y2~g[s1?"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="ADD1"> <block type="text" id="CO};T(MX~iMpbvzoE:-e"> <field name="TEXT"> startet Serie „</field> </block> </value> <value name="ADD2"> <block type="get_value" id=",{~NJ^:w|yXiC-}im$.?"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.grandparentTitle</field> </block> </value> <value name="ADD3"> <block type="text" id="N.Z[13D/AdUc;b93,%cT"> <field name="TEXT"> - </field> </block> </value> <value name="ADD4"> <block type="get_value" id="Ou,sIbRM:djoC=KDBHCt"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.title</field> </block> </value> <value name="ADD5"> <block type="text" id="W|$cg0Yc;R,[j1*6#`6%"> <field name="TEXT">“ auf </field> </block> </value> <value name="ADD6"> <block type="get_value" id="6Mq4p%7ytm`8OINjR]V*"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id="H#obEqdhz~9q!8mSpbj0"> <field name="NAME">timeout4</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="Ys^EjA4LOP-4}lu%ahCv"> <mutation name="Bild Serie"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_operation" id="RT}{cGTxG9BE,m/ejuki" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="JtS+O2!a?]atFKSSfjIn" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="~pXURu?CAqbqF_jW_8|$"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="{;E_P=|iL2jEY7`{ygM2"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="BUzqSR*iw{1V2r+|Z:KY"> <field name="TEXT">media.play</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="NSL9$$:vMD/}|#{*sQOW"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="#]=~@53H@H4j.c4p}`u,"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="*]V~1WJPsTKF|H`a~EmN"> <field name="TEXT">media.resume</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="x2jcaFm|s_}eLnh%V+]F"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="?$_|yhoutizxA]U#=Ax4"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.librarySectionType</field> </block> </value> <value name="B"> <block type="text" id="s+~]I4Ta/u-yL:w{GwS]"> <field name="TEXT">artist</field> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="exec" id="gAb@=R1rVy%Y#0(C~![x"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="9UA@3:)o+n=0$R/0C=bd"> <field name="TEXT"></field> </shadow> <block type="text_join" id=")6OAP:3b{`2r$m_LXxQW"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="!mL_zcW+.xb$LHB~lam)"> <field name="TEXT">wget -q -N -O /opt/iobroker/plexsong.jpg "</field> </block> </value> <value name="ADD1"> <block type="get_value" id="[DOsF4M19iSo(j.Y@~o|"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.thumb</field> </block> </value> <value name="ADD2"> <block type="text" id="cg@=FkUE4{1vdq:JFN?["> <field name="TEXT">"</field> </block> </value> </block> </value> <next> <block type="variables_set" id=",Pa@{`C@Syr]g.bfE*82"> <field name="VAR" id="Kldj7(2;;z-d{z.g[9+J" variabletype="">Song</field> <value name="VALUE"> <block type="text_join" id="mE@}!wKLEoqY}jHtz=2w"> <mutation items="7"></mutation> <value name="ADD0"> <block type="get_value" id="hXHKXXrYFX%ju:3rz)li"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="ADD1"> <block type="text" id="XLn716oY_@}6@e;=dY|."> <field name="TEXT"> startet Lied „</field> </block> </value> <value name="ADD2"> <block type="get_value" id="E;r%LhAY(2[LBddpgBB+"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.grandparentTitle</field> </block> </value> <value name="ADD3"> <block type="text" id="9OjNYd3OKaGlmt/=!-;%"> <field name="TEXT"> - </field> </block> </value> <value name="ADD4"> <block type="get_value" id="|KTa%?s=fb4h]xDnP_Ru"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.title</field> </block> </value> <value name="ADD5"> <block type="text" id="aRuse2W3o4f3_L3gJn_`"> <field name="TEXT">“ auf </field> </block> </value> <value name="ADD6"> <block type="get_value" id="xTW,yr4T8.6Jq6d{6EzW"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id="=7akVWN6Coyk%ciMW|8x"> <field name="NAME">timeout5</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="procedures_callcustomnoreturn" id="WddkPa$+FpJ=|zE(#/o?"> <mutation name="Bild Song"></mutation> </block> </statement> </block> </next> </block> </next> </block> </statement> <value name="IF3"> <block type="logic_compare" id="XO.4U7=i8b25eNKao4@X"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="]BD[8SqC8;_;/0Ij9zG="> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="HLvvZz3_y{nd,}jUEue)"> <field name="TEXT">media.stop</field> </block> </value> </block> </value> <statement name="DO3"> <block type="telegram" id="P+_.D+H%B}=P|O$%Fya`"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id=",;1QQq+DCRh7_M+m3H;$"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="E9Lge,,bI6.aW63p9e1Q"> <mutation items="5"></mutation> <value name="ADD0"> <block type="get_value" id=",xEm4V#.83w{1^O`iB+P"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="ADD1"> <block type="text" id="#,=/VHdxf[g]g!~yr*ju"> <field name="TEXT"> beendet Wiedergabe von „</field> </block> </value> <value name="ADD2"> <block type="get_value" id=",dCAI9LwYlp.)Z9-}c_J"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.title</field> </block> </value> <value name="ADD3"> <block type="text" id="LLR{{#Iwm2O##^HPTYx4"> <field name="TEXT">“ auf </field> </block> </value> <value name="ADD4"> <block type="get_value" id="i!xG*Sawnx,A3:BtwCyX"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> </block> </value> </block> </statement> <value name="IF4"> <block type="logic_compare" id="+9,SLpzQ1BP+.l3A(eK-"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="fD}0s6PwXv^#|zQ/8x6a"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.event.name</field> </block> </value> <value name="B"> <block type="text" id="FlwPyT@#vc-M5^+QH|#v"> <field name="TEXT">media.pause</field> </block> </value> </block> </value> <statement name="DO4"> <block type="telegram" id="DViat7eLq~k[F3QZ*8:5"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="2Xl.a_l=,HLjb3ekA;Of"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="*zig`U*g{J4~cH](h^]n"> <mutation items="5"></mutation> <value name="ADD0"> <block type="get_value" id="}PYN{h1;:=g:UZ60.q*5"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.account.title</field> </block> </value> <value name="ADD1"> <block type="text" id="Ps.otl$aiJroGBxTK_h1"> <field name="TEXT"> pausiert Wiedergabe von „</field> </block> </value> <value name="ADD2"> <block type="get_value" id="`DO@jIfMUsr+gTnYxmb5"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.metadata.title</field> </block> </value> <value name="ADD3"> <block type="text" id="96_7q;zO$]ixMMk*~!]]"> <field name="TEXT">“ auf </field> </block> </value> <value name="ADD4"> <block type="get_value" id="0[~3jttVw^3l1%lEiDKU"> <field name="ATTR">val</field> <field name="OID">plexconnect.0.player.title</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <next> <block type="variables_set" id="0@GOo,fZV_O1RlWig2.a"> <field name="VAR" id="{%v15_)8k{5kG-?Qz}$i" variabletype="">Entpreller</field> <value name="VALUE"> <block type="math_number" id="6s}CJ!tos|tHz!lvQN=}"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> <block type="procedures_defcustomnoreturn" id="yAIPS{XYV1O:}x(_a.R*" x="888" y="213"> <mutation statements="false"></mutation> <field name="NAME">Bild Movie</field> <field name="SCRIPT">c2VuZFRvKCJ0ZWxlZ3JhbSIsICJzZW5kIiwge3RleHQ6ICcvb3B0L2lvYnJva2VyL3BsZXhtb3ZpZS5qcGcnLCBjYXB0aW9uOiBbTW92aWVdLmpvaW4oJycpfSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="r1,z.*kL~)y42m%WX#l*" x="913" y="713"> <mutation statements="false"></mutation> <field name="NAME">Bild Serie</field> <field name="SCRIPT">c2VuZFRvKCJ0ZWxlZ3JhbSIsICJzZW5kIiwge3RleHQ6ICcvb3B0L2lvYnJva2VyL3BsZXhzZXJpZS5qcGcnLCBjYXB0aW9uOiBbU2VyaWVdLmpvaW4oJycpfSk7</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="procedures_defcustomnoreturn" id="S8-FQA9%gj}1*azP*S$A" x="938" y="1238"> <mutation statements="false"></mutation> <field name="NAME">Bild Song</field> <field name="SCRIPT">c2VuZFRvKCJ0ZWxlZ3JhbSIsICJzZW5kIiwge3RleHQ6ICcvb3B0L2lvYnJva2VyL3BsZXhzb25nLmpwZycsIGNhcHRpb246IFtTb25nXS5qb2luKCcnKX0pOw==</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> </xml>
-
@Zefau sagte in Test Adapter Plex v0.8.x:
@el_malto sagte in Test Adapter Plex v0.8.x:
Da war das mit den Abfragen des Players einfacher, weil man da einen Datenpunkt für alle Player hatte und die Player einfacher auswerten konnte. Jetzt gibt es für jeden Player seperate Datenpunkte.
In deinem Skript fragst du einen speziellen Player (
el_malto
) ab. Das sollte mit dem Plex Adapter so auch funktionieren, denn der Player ist dediziert unter_playing
angelegt? Nur, dass bei dem Plex Adapter auch alle anderen Player angelegt sind (und beim plexconnect nur der Letzte).Jo, hatte mich mit deinem Plex Adapter noch nicht richtig beschäftigt was der wann für Datenpunkte hat und so weil wie gesagt, gerade mit ioBroker umgezogen. Hab jetzt schon gesehen das der auch gute Datenpunkte und ja auch schon „fertige“ Benachrichtigungen mit %Platzhaltern% erstellen kann. Das erleichtert natürlich sehr viel.
-
hallo @Zefau hat sich etwas geändert durch das update - kann den player nicht mehr steuern - ging bis zum update - oder muss ich etwas neu einstellen
plex.0 2019-11-05 22:02:13.212 warn (4903) Error triggering undefined action -pause- on player undefined! Action not supported!
-
@el_malto Vielen Dank für das Script! Dann werde ich mal versuchen, mir da einen ersten Überblick zu verschaffen und das alles auf meine Bedürfnisse anzupassen... So wie es aussieht, ist das ja eine echte eierlegende Wollmilchsau!
Sofern sich durch den neuen Adapter Änderungen ergeben, die eine Anpassung des Scripts erfordern, wäre es super, wenn Du eine aktualisierte Version bereitstellen oder auf konkreten Änderungsbedarf an einzelnen Eintragungen hinweisen könntest! Ich denke mal, daß Dein riesiges Script für alle hier von Interesse sein dürfte und es das Zeug zur "Blaupause" hat. Vielleicht möchte @Zefau es ja auch direkt im ersten Beitrag mit aufnehmen? -
@P-A-L-A-D-I-N
Naja das Skript ist schon sehr an meine Bedürfnisse/Anwendungen angepasst.
Eine eierlegende Wollmilchsau ist es bestimmt nicht Es schaltet nur den TV ein oder auf den richtigen Eingang und dimmt das Licht runter bzw. schaltet es aus.Und sonst schickt es nur per Telegram wer was guckt. Das sieht nur so groß aus, weil es nach Movies, Serien und Musik unterteilt ist.
Wie gesagt, bin ich gerade erst mit ioBroker umgezogen und muss nach und nach die Skripte und sowas wieder anpassen. Das kann noch ein paar Wochen dauern, je nach Lust und Laune.
Du musst das Skript für dich anpassen bzw. ändern. Mit dem Plex Adapter hier, brauchst du eigentlich die ganzen Abfragen von den Movies, Serien und Musik nicht mehr, weil bei dem Adapter hier in den Adaptereinstellungen ja schon vorgefertigte Nachrichten sind. Musst du dir mal angucken... -
@Zefau
Das mit den %Platzhaltern% ist wirklich richtig geil. Da kann man super Nachrichten oder so mit machen.
Folgende Ideen oder Anregungen:-
In den Adaptereinstellungen unter "Benachrichtigung" mann man sich die Nachrichten ja in zwei Datenpunkte generieren lassen. "Nachricht" wird in den Datenpunkt "message" und "Untertitel" in den Datenpunkt "caption". Wäre es möglich noch eine dritte Benachrichtigung machen wo man die Nachricht in einen "freien Datenpunkt" schreiben kann? Also wo man sich aussuchen kann in welchen Datenpunkt das geschrieben wird? Dann könnte man in selbst erstellten Datenpunkten sich Bestimmte sachen reinschreiben lassen.
-
Gibt es eine Möglichkeit die %Platzhalter% auch in Blockly zu benutzen?
-
Wäre cool wenn unter "events" noch ein Datenpunkt für den "Account" und "Player" hinzugefügt wird. Also welcher account mit welchem Player gerade das event ausgelöst hat.
Wenn 1. geht, könnte man 2. und 3. ja selbst umsetzen. Mit 1. wäre man da sehr flexible. 1. und 3. wären super
-
-
@liv-in-sky ist ein Fehler, danke für den Hinweis. Sollte mit v0.8.3 nun passen.
-
@el_malto sagte in Test Adapter Plex v0.8.x:
- In den Adaptereinstellungen unter "Benachrichtigung" mann man sich die Nachrichten ja in zwei Datenpunkte generieren lassen. "Nachricht" wird in den Datenpunkt "message" und "Untertitel" in den Datenpunkt "caption". Wäre es möglich noch eine dritte Benachrichtigung machen wo man die Nachricht in einen "freien Datenpunkt" schreiben kann? Also wo man sich aussuchen kann in welchen Datenpunkt das geschrieben wird? Dann könnte man in selbst erstellten Datenpunkten sich Bestimmte sachen reinschreiben lassen.
- Gibt es eine Möglichkeit die %Platzhalter% auch in Blockly zu benutzen?
- Wäre cool wenn unter "events" noch ein Datenpunkt für den "Account" und "Player" hinzugefügt wird. Also welcher account mit welchem Player gerade das event ausgelöst hat.
Danke für die Ideen.
-
- habe ich mit
v0.8.3
hinzugefügt
- habe ich mit
-
- Was genau hast du denn vor? Der Adapter tauscht den Platzhalter mit dem Wert der Events aus. Was würdest du dir hier sonst noch wünschen? Ich spreche kein Blockly (nur Javascript), aber sollte funktionieren. Du musst
%
mit einem eigenen Platzhalter ersetzen, damit der Adapter den Wert nicht austauscht. Dann kannst du eine Logik umsetzen, die deinen Platzhalter mit einem Wert austauscht. Im Adapter siehst du, wie es aktuell funktioniert (du kannst die Funktion auch einfach in einem eigenen Javascript-Skript nutzen).
- Was genau hast du denn vor? Der Adapter tauscht den Platzhalter mit dem Wert der Events aus. Was würdest du dir hier sonst noch wünschen? Ich spreche kein Blockly (nur Javascript), aber sollte funktionieren. Du musst
-
- Warum ein eigener Datenpunkt ganz woanders? Welche Art von dritter Benachrichtigung? Was genau möchtest du hier umsetzen?
-
Hallo, bekomme immer das V 0.8.3 :
plex.0 2019-11-06 23:13:34.175 warn (17596) Due to performance reasons, the refresh rate can not be set to less than 10 seconds. Using 10 seconds now.
-
@Zefau danke dir - upgedatet - und jetzt geht es wieder
-
@Zefau sagte in Test Adapter Plex v0.8.x:
-
- habe ich mit
v0.8.3
hinzugefügt
- habe ich mit
Danke, dass ging ja schnell. Funktioniert super.
-
- Was genau hast du denn vor? Der Adapter tauscht den Platzhalter mit dem Wert der Events aus. Was würdest du dir hier sonst noch wünschen? Ich spreche kein Blockly (nur Javascript), aber sollte funktionieren. Du musst
%
mit einem eigenen Platzhalter ersetzen, damit der Adapter den Wert nicht austauscht. Dann kannst du eine Logik umsetzen, die deinen Platzhalter mit einem Wert austauscht. Im Adapter siehst du, wie es aktuell funktioniert (du kannst die Funktion auch einfach in einem eigenen Javascript-Skript nutzen).
- Was genau hast du denn vor? Der Adapter tauscht den Platzhalter mit dem Wert der Events aus. Was würdest du dir hier sonst noch wünschen? Ich spreche kein Blockly (nur Javascript), aber sollte funktionieren. Du musst
-
- Warum ein eigener Datenpunkt ganz woanders? Welche Art von dritter Benachrichtigung? Was genau möchtest du hier umsetzen?
Was ich da gestern für eine Idee hatte, kann ich dir jetzt gar nicht mehr genau sagen
Kann sein, dass es was mit 3. und den Account und Player auf sich hatte um die noch mal irgendwie abfragen zu können. Aber hat sich ja erledigt. Falls es mir noch mal einfällt melde ich mich. -
-
@P-A-L-A-D-I-N
Hier nochmal mein angepasstes Skript.
Blocky Export:
Generell steuere ich den Player "Server" mit der App auf meinem iPhone oder iPad. Wenn ich damit dann einen Film auf dem Player "Server" starte, überprüft das Skript unter den "Steuerung" Kommentar welcher Player gerade was abspielt. Wenn es der Player "Server" ist, wird der TV an bzw auf den richtigen Eingang geschaltet. Je nach Zustand wird alles richtig eingestellt. Genau das gleiche mit der Beleuchtung.
Da ich meinen TV über meinen Enigma Receiver mit HDMI CEC steuere, überprüft das erste "falls Objekt" wenn mein Receiver ausgeschaltet wird. Wenn das der Fall ist, wird zu meinem HTPC (192.168.0.20) wo der Plex Player "Server" drauf läuft über "GetAdmin" die "H" Taste gesendet. Diese beendet die Wiedergabe und geht auf dem "Home" Screen vom Player Pleyer. So kann ich dann einfach mit der Fernbedinung vom Receiver den Receiver und TV ausschalten und dann wird die Wiedergabe auf dem Player auch beendet.
Unter den "Benachrichtigung" Kommentar lasse ich mir die erstellten Benachrichtigungen und das Thumb vom Film oder Serie per Telegram schicken. Unter "Benachrichtigung" die Nachricht und unter "Untertitel" lasse ich mir den Pfad zum Thumb erstellen.
Benachrichtigungen im Adapter:
Und in Telegram sieht das dann so aus:
-
@el_malto Vielen Dank für das angepaßte Script und die Erläuterungen, die das Ganze für mich jetzt auch deutlich greifbarer machen!
Ich finde die Idee mit dem Trigger (Player X spielt etwas ab) richtig gut! Ich werde das bei mir zwar ziemlich stark abändern müssen (habe u.a. keinen Enigma-Receiver am Haupt-TV, dafür aber, zusätzlich zum TV, noch einen Receiver, der auf den richtigen Kanal eingestellt werden muß usw.), aber ich denke mal, daß ich das mithilfe Deiner Vorlage irgendwie schaffen sollte.
Muß mir auch mal Gedanken machen, wie ich es hin bekomme, daß ich hier zwei Szenarien automatisieren kann, ohne daß sie sich in die Quere kommen: Einmal das Abspielen mit dezentem Ton (z.B. Wiedergabe einer Plex-Aufnahme oder einer Serie) und dann noch ein richtiger Filmabend mit 5.1-Ton, wenn es mal etwas lauter werden darf. Wäre die Logik dahinter nur über den Inhalt steuerbar (Serie oder Film), wäre die Umsetzung vielleicht noch recht simpel. Aber da wir, wegen der Kinder, teilweise eben auch die Filme nur mit dezentem Ton anschauen, dürfte das etwas schwieriger werden - vielleicht noch mit zusätzlichen "intelligenten" Wenn-dann-Schleifen (Uhrzeit, Status der Kinderzimmerbeleuchtung u.ä.), die erfüllt sein müssen, damit das "große Kino" aufgefahren wird.