NEWS
Test Adapter Plex v1.1.x
-
https://github.com/iobroker-community-adapters/ioBroker.plex/tree/player_requests
Den Absturz gefixt.
setShuffle - boolean
setRepeat - number 0: aus - 1: aktueller Titel - 2: allesetRepeatAll:
Daten von Plex:
0 = false
1,2 = trueSenden an Plex
false = 0
true = 2Oder in Worten - wenn jemand einen repeat art anschaltet geht der State auf true, selber schaltet er aber nur einen Repeat auf all.
seekToPercent ist jetzt ganzzahlig.
-
-
Hab noch einen Adapterabsturz gefixt. Es ist absicht das der Adapter sich da aufhängt wenn ein Fehler passiert, damit ich ihn finde und beheben kann. Nachher kommt da ne Fehlerbehandlung drüber, damit er sich nicht bei jedem husten verschluckt
https://github.com/iobroker-community-adapters/ioBroker.plex/tree/player_requests
-
plex.0 2023-09-05 06:01:05.929 warn Error triggering playback action -stepForward- on player Android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f with ip:192.168.178.47.! See debug log for details. plex.0 2023-09-05 06:01:04.918 info Triggered action -stepForward- on player Android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f with ip:192.168.178.47. plex.0 2023-09-05 06:01:01.974 warn Error triggering playback action -stepBack- on player Android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f with ip:192.168.178.47.! See debug log for details. plex.0 2023-09-05 06:01:01.942 info Triggered action -stepBack- on player Android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f with ip:192.168.178.47.
Edit:
plex.0 2023-09-05 06:16:50.920 warn Object of state "plex.0._playing.android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f.Metadata.Mood" is missing the required property "common.type"
Edit2
Beim beenden der App am Handy
plex.0 2023-09-05 06:41:59.852 info Player Android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f is disconnected plex.0 2023-09-05 06:41:56.395 warn catch() 122: {"message":"socket hang up","name":"Error","stack":"Error: socket hang up\n at AxiosError.from (C:\\ioBroker\\_iob_Test\\node_modules\\iobroker.plex\\node_modules\\axios\\dist\\node\\axios.cjs:837:14)\n at RedirectableRequest.handleRequestError (C:\\ioBroker\\_iob_Test\\node_modules\\iobroker.plex\\node_modules\\axios\\dist\\node\\axios.cjs:3016:25)\n at RedirectableRequest.emit (node:events:526:35)\n at eventHandlers.<computed> (C:\\ioBroker\\_iob_Test\\node_modules\\follow-redirects\\index.js:14:24)\n at ClientRequest.emit (node:events:514:28)\n at Socket.socketOnEnd (node:_http_client:525:9)\n at Socket.emit (node:events:526:35)\n at endReadableNT (node:internal/streams/readable:1359:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"adapter":"http","transformRequest":[null],"transformResponse":[null],"timeout":700,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, */*","X-Plex-Token":"xxxxxxxxxxxxxx","X-Plex-Target-Client-Identifier":"xxxxxxxxxxxxxx","X-Plex-Client-Identifier":"xxxxxxxxxxxxxxxxxxx","X-Plex-Device-Name":"Android","User-Agent":"axios/1.5.0","Accept-Encoding":"gzip, compress, deflate, br"},"method":"get","url":"http://192.168.178.47:32500/player/timeline/poll?wait=0&commandID=2565"},"code":"ECONNRESET","status":null}
-
Von wann ist die Version?
Fehler
- könnte ich gestern abend behoben haben
- Beim Beenden der App sollte der Fehler kein Problem sein, werde die logmeldung für ECONNRESET auf debug setzten
Nr. 2 müsste durch tautulli kommen, kannst du mir dein Json dafür schicken dann teste ich das heute abend.
-
@ticaki sagte in Test Adapter Plex v1.0.x:
Von wann ist die Version?
Kurz vor verfassen des Beitrags
Nr. 2 müsste durch tautulli kommen, kannst du mir dein Json dafür schicken dann teste ich das heute abend.
{ "event": "media.{action}", "user": "undefined", "owner": "undefined", "Account": { "userId": "{user_id}", "id": "undefined", "thumb": "undefined", "title": "{username}" }, "Server": { "title": "{server_name}", "uuid": "{server_machine_id}" }, "Player": { "local": "{stream_local}", "localAddress": "{ip_address}", "publicAddress": "undefined", "title": "{player}", "uuid": "{machine_id}" }, "Metadata": { "librarySectionType": "{media_type}", "ratingKey": "{rating_key}", "parentRatingKey": "{parent_rating_key}", "grandparentRatingKey": "{grandparent_rating_key}", "key": "/library/metadata/{rating_key}", "guid": "com.plexapp.agents.imdb://{imdb_id}?lang=en", "librarySectionTitle": "{library_name}", "librarySectionID": "{section_id}", "librarySectionKey": "/library/sections/{section_id}", "studio": "{studio}", "type": "{media_type}", "title": "{title}", "grandparentTitle": "<show>{show_name}</show><artist>{artist_name}</artist>", "parentTitle": "<show>{show_name}</show><artist>{artist_name}</artist>", "titleSort": "undefined", "contentRating": "{content_rating}", "summary": "{summary}", "rating": "{rating}", "viewOffset": "undefined", "lastViewedAt": "{last_viewed_date}", "year": "{year}", "tagline": "{tagline}", "thumb": "<movie>{thumb}</movie><show>{grandparent_thumb}</show><season>{grandparent_thumb}</season><episode>{grandparent_thumb}</episode><artist>{grandparent_thumb}</artist><album>{grandparent_thumb}</album><track>{grandparent_thumb}</track>", "parentThumb": "{parent_thumb}", "grandparentThumb": "{grandparent_thumb}", "posterThumb": "{poster_thumb}", "art": "undefined", "duration": "{duration}", "originallyAvailableAt": "{release_date}", "addedAt": "{added_date}", "updatedAt": "{updated_date}", "chapterSource": "undefined", "primaryExtraKey": "undefined", "ratingImage": "imdb://image.rating", "Genre": "{genres}", "Director": "{directors}", "Writer": "{writers}", "Country": "undefined", "Producer": "undefined", "Collection": "{collections}", "Role": "{actors}", "Similar": "undefined", "tautulli": { "Player": "{player}", "LibraryTyp": "{library_name}", "Filmstudio": "{studio}", "Titel": "{title}", "Originaltitel": "{original_title}", "SerienName": "{show_name}", "FolgeName": "{episode_name}", "Status": "{action}", "Beschreibung": "{summary}", "Bewertung": "{audience_rating}", "Jahr": "{year}", "Genre": "{genres}", "Hintergrund": "{art}", "SerienBanner": "{banner}", "Cover": "<movie>{thumb}</movie><show>{grandparent_thumb}</show><season>{grandparent_thumb}</season><episode>{grandparent_thumb}</episode><artist>{grandparent_thumb}</artist><album>{grandparent_thumb}</album><track>{grandparent_thumb}</track>", "DauerMinuten": "{duration}", "DauerSekunden": "{duration_sec}", "VerbleibendMinuten": "{remaining_duration}", "VerbleibendSekunden": "{remaining_duration_sec}", "VerbleibendZeit": "{remaining_time}", "FortschrittMinuten": "{progress_duration}", "FortschrittSekunden": "{progress_duration_sec} sek", "FortschrittZeit": "{progress_time}", "FortschrittProzent": "{progress_percent}", "Veroeffentlichung": "{release_date}", "UploadDatum": "{added_date}", "AbspielDatum": "{last_viewed_date}", "Kategorie": "{genres}", "Regisseur": "{directors}", "Drehbuch": "{writers}", "Kollektion": "{collections}", "Darsteller": "{actors:[:30]}", "Folge": "{episode_num}", "Staffel": "{season_num}" }, "video": { "container": "{container}", "bitrate": "{bitrate}", "aspect_ratio": "{aspect_ratio}", "video_codec": "{video_codec}", "video_codec_level": "{video_codec_level}", "video_bitrate": "{video_bitrate}", "video_bit_depth": "{video_bit_depth}", "video_framerate": "{video_framerate}", "video_ref_frames": "{video_ref_frames}", "video_resolution": "{video_resolution}", "video_height": "{video_height}", "video_width": "{video_width}", "video_language": "{video_language}", "video_language_code": "{video_language_code}" }, "audio": { "audio_bitrate": "{audio_bitrate}", "audio_bitrate_mode": "{audio_bitrate_mode}", "audio_codec": "{audio_codec}", "audio_channels": "{audio_channels}", "audio_channel_layout": "{audio_channel_layout}", "audio_sample_rate": "{audio_sample_rate}", "audio_language": "{audio_language}", "audio_language_code": "{audio_language_code}" }, "subtitles": { "subtitle_codec": "{subtitle_codec}", "subtitle_container": "{subtitle_container}", "subtitle_format": "{subtitle_format}", "subtitle_forced": "{subtitle_forced}", "subtitle_location": "{subtitle_location}", "subtitle_language": "{subtitle_language}", "subtitle_language_code": "{subtitle_language_code}" }, "file": { "path": "{file}", "name": "{filename}", "size": "{file_size}" }, "transcoding": { "transcode_decision": "{transcode_decision}", "video_decision": "{video_decision}", "audio_decision": "{audio_decision}", "subtitle_decision": "{subtitle_decision}", "transcode_container": "{transcode_container}", "transcode_video_codec": "{transcode_video_codec}", "transcode_video_width": "{transcode_video_width}", "transcode_video_height": "{transcode_video_height}", "transcode_audio_codec": "{transcode_audio_codec}", "transcode_audio_channels": "{transcode_audio_channels}", "transcode_hw_requested": "{transcode_hw_requested}", "transcode_hw_decoding": "{transcode_hw_decoding}", "transcode_hw_decode": "{transcode_hw_decode}", "transcode_hw_decode_title": "{transcode_hw_decode_title}", "transcode_hw_encoding": "{transcode_hw_encoding}", "transcode_hw_encode": "{transcode_hw_encode}", "transcode_hw_encode_title": "{transcode_hw_encode_title}" }, "stream": { "user": { "streams": "{streams}", "user_streams": "{user_streams}", "name": "{user}", "user": "{username}", "email": "{user_email}" }, "player": { "device": "{device}", "platform": "{platform}", "product": "{product}", "player": "{player}", "ip_address": "{ip_address}" }, "quality_profile": "{quality_profile}", "optimized_version": "{optimized_version}", "optimized_version_profile": "{optimized_version_profile}", "synced_version": "{synced_version}", "live": "{live}", "stream_local": "{stream_local}", "stream_location": "{stream_location}", "stream_bandwidth": "{stream_bandwidth}", "stream_container": "{stream_container}", "stream_bitrate": "{stream_bitrate}", "stream_aspect_ratio": "{stream_aspect_ratio}", "stream_duration": "{stream_duration}", "stream_time": "{stream_time}", "remaining_duration": "{remaining_duration}", "remaining_time": "{remaining_time}", "progress_duration": "{progress_duration}", "progress_time": "{progress_time}", "progress_percent": "{progress_percent}", "stream_video": { "stream_video_codec": "{stream_video_codec}", "stream_video_codec_level": "{stream_video_codec_level}", "stream_video_bitrate": "{stream_video_bitrate}", "stream_video_bit_depth": "{stream_video_bit_depth}", "stream_video_framerate": "{stream_video_framerate}", "stream_video_ref_frames": "{stream_video_ref_frames}", "stream_video_resolution": "{stream_video_resolution}", "stream_video_height": "{stream_video_height}", "stream_video_width": "{stream_video_width}", "stream_video_language": "{stream_video_language}", "stream_video_language_code": "{stream_video_language_code}" }, "stream_audio": { "stream_audio_bitrate": "{stream_audio_bitrate}", "stream_audio_bitrate_mode": "{stream_audio_bitrate_mode}", "stream_audio_codec": "{stream_audio_codec}", "stream_audio_channels": "{stream_audio_channels}", "stream_audio_channel_layout": "{stream_audio_channel_layout}", "stream_audio_sample_rate": "{stream_audio_sample_rate}", "stream_audio_language": "{stream_audio_language}", "stream_audio_language_code": "{stream_audio_language_code}" }, "stream_subtitle": { "stream_subtitle_codec": "{stream_subtitle_codec}", "stream_subtitle_container": "{stream_subtitle_container}", "stream_subtitle_format": "{stream_subtitle_format}", "stream_subtitle_forced": "{stream_subtitle_forced}", "stream_subtitle_language": "{stream_subtitle_language}", "stream_subtitle_language_code": "{stream_subtitle_language_code}", "stream_subtitle_location": "{stream_subtitle_location}" } } } }
-
was steht in dem Datenpunkt
plex.0._playing.android-x.Metadata.Mood
Ich hab den nicht und der kommt auch scheinbar nicht durch tautulli. -
Error triggering playback action -stepBack- on player
Dazu muß ich noch mehr fragen stellen. Was normal ist:
Der Error ist kein Fehler, sondern kann ein Fehler sein
Wenn der Player (also dein Android Gerät)
- nicht an
- aktiv
- die App nicht gestartet ist
kommt es auf jeden Fall dazu. Indiz dafür ist, das es manchmal geht und manchmal nicht.
- die App/der Player solange inaktiv war, das der Plex Server die Verbindung beendet hat.(Da könnte es doch gehen... weiß es aber nicht genau)
- wenn du nicht kürzlich eine Wiedergabe(hier beliebiges Ereignis einfügen) hast
Da passiert einfach nichts
Da könnte man noch drüber sprechen, ob der Adapter vielleicht den letzten key nutzt um diesen zu starten.
Wenn das alles nicht zutrifft: Bitte das ganze mit Debug wiederholen und die url im Browser testen.
Bei mir geht es.
-
@ticaki sagte in Test Adapter Plex v1.0.x:
was steht in dem Datenpunkt
plex.0._playing.android-x.Metadata.Mood
Ich hab den nicht und der kommt auch scheinbar nicht durch tautulli.{ "common": { "name": "Mood Information", "write": false }, "type": "channel", "native": {}, "from": "system.adapter.plex.0", "user": "system.user.admin", "ts": 1693819603519, "_id": "plex.0._playing.android-1810d7e1-7f53-4d2e-8a9e-218e85d27f5f.Metadata.Mood", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
Ist unterhalb von dem Datenpunkt irgendwelche interessanten Infos oder wäre es ok wenn ich einfach alle Daten von diesem Punkt im Cleanup entferne - keine Ahnung woher er kommt, aber für den überall zu löschen muß ich das auch nicht wissen
Ich denke das ist eine Eigenschaft von Musik - Stimmung - ja würde passen, ich kopiere wohl doch mal meine Musik zu plex
-
@ticaki sagte in Test Adapter Plex v1.0.x:
Ist unterhalb von dem Datenpunkt irgendwelche interessanten Infos oder wäre es ok wenn ich einfach alle Daten von diesem Punkt im Cleanup entferne - keine Ahnung woher er kommt, aber für den überall zu löschen muß ich das auch nicht wissen
Ich denke das ist eine Eigenschaft von Musik - Stimmung - ja würde passen, ich kopiere wohl doch mal meine Musik zu plex
Keine Daten drinnen, werde mal alles löschen und den Adapter neu starten.
Edit:
Bis jetzt nicht mehr aufgetaucht
-
https://github.com/iobroker-community-adapters/ioBroker.plex/tree/player_requests
fix:
seekToPercent sollte nicht funktioniert habenadded:
playback.playLast
: starte den zuletzt auf dem Player wiedergebenen Titel (von diesem Server) an der letzten bekannten Position. Auswahl auf dem Player ist egal muß nur an sein.playback.playKey
: starte den angegebenen key auf dem Player an der angegebenen Position: Ist eine Zeichenkette mit # als Trenner:key#offset
key
sind die Datenpunkte die mit key bezeichnet sind.offset
ist viewOffset in ms(optional)
Beispiel:
/library/metadata/41123#10000 /playlists/34681/items /playlists/34681/items#1000
shuffle wird dabei zurückgesetzt und hab keinen Weg gefunden das nicht jedesmal das gleiche Lied anfängt.
-
Noch eine Miniupdate für die "Beta"
- Der Server hat doch tatsächlich 127.0.0.1 als Player ip übermittelt... fang ich jetzt ab.
mood
hab ich gefunden und definiert- Hab States deutlich reduziert, Arrays werden jetzt wieder wie vorher zusammengefasst
- Leere States vom Type String werden erst erstellt wenn einer Daten rein schreibt und damit meine ich mehr als
''
Noch ein Wort zu den neuen States:
im Ordner
_playing.gerät-id.Player.details
die Punkte dort sind ein dump der gleichen Internen States die verwendet werden um _Controls zu aktualisieren. Die Werte ergeben sich aus einem der 3 Unterordnern, der nicht den Status stopped hat.Folgende States werden "nie" bereinigt und enthalten immer einen Wert:
"Player.localAddress", "Player.port", "Player.protocolCapabilities", "Player.controllable", "Player.uuid", "Player.title", "Player.details.key", "Player.details.time"
Die Ordner unterhalb von Details:
music, video, photo
sind 1:1 das was vom Player kommt. -
@ticaki sagte in Test Adapter Plex v1.0.x:
Noch eine Miniupdate für die "Beta"
Funktioniert bei mir nicht Richtig.
-
@ticaki sagte in Test Adapter Plex v1.0.x:
fix:
seekToPercent sollte nicht funktioniert habenHatte Funktioniert, jetzt nicht mehr.
Ich installiere wieder via:
https://github.com/iobroker-community-adapters/ioBroker.plex/tree/player_requests
Edit:
Geht wieder
-
- Der seekToPercent funktioniert eigentlich nicht... Naja egal jetzt hab ichs so das er auch ohne Magie funktioniert. (update kommt wenn ich Punkt 2. weiß.
- Und neue States erscheinen nur wenn der Adapter manuell neugestartet wurde. Da hab ich ne Frage zu gestellt.
-
-
@sigi234 sagte in Test Adapter Plex v1.0.x:
@ticaki sagte in Test Adapter Plex v1.0.x:
Da hab ich ne Frage zu gestellt.
?
Ich und meine uneindeutigen Randbemerkungen... Ich hab dazu ne Frage in der Entwicklergruppe gestellt.
-
@ticaki sagte in Test Adapter Plex v1.0.x:
@sigi234 sagte in Test Adapter Plex v1.0.x:
@ticaki sagte in Test Adapter Plex v1.0.x:
Da hab ich ne Frage zu gestellt.
?
Ich und meine uneindeutigen Randbemerkungen... Ich hab dazu ne Frage in der Entwicklergruppe gestellt.
Ach so , dacht mir.
-
seekToPercent sollte jetzt gefixt sein
https://github.com/iobroker-community-adapters/ioBroker.plex/tree/player_requests
Soweit ich die Antwort richtig verstehe, beim installieren eines Adapter per benutzerdefiniertem Githublink, muß der anschließend von Hand neugestartet werden, sonst läuft er mit alten Daten aber neuem Code/ oder neuen code teilen, keine Ahnung. (hat noch keiner geschrieben dass es ein Bug ist )
EDIT: Ein Gedanke zu playKey - Wenn man dazu ein kleines Skript schreibt, "RandomStartPlaylist" und in diesem folgendes tut
- subscript playKey
- on ack false
2.1 gegebenenfalls checken ob der key playlist enthält
2.2. Da es bis zu 2 Sekunden dauert bis das Skript reagiert könnte man das Volumen auf 0 setzten und es nach 4. wieder auf den alten Wert erhöhen - subscript Player.details.duration und setzte shuffle auf true
- on any -> nimm duration setzte seekTo auf duration-1000
- unsubscript Player.details.duration
damit sollte es dann möglich sein eine Playliste mit Random zu starten. Im Adapter selbst weiß nicht ob das wirklich gut gehen würde. Als Script ist das einfach zu lösen