NEWS
Test Adapter Plex v1.1.x
-
Hallo, kann man den : plex.0._playing.android-xxxxxxxxxxxxxxxxxxxxxxxxxxx_Controls.playback.seekToPercent
auf 0 Dezimalstellen setzten?
Arbeitet aber Super!
-
@sigi234 sagte in Test Adapter Plex v1.0.x:
Hallo, kann man den : plex.0._playing.android-xxxxxxxxxxxxxxxxxxxxxxxxxxx_Controls.playback.seekToPercent
auf 0 Dezimalstellen setzten?
Arbeitet aber Super!
Vorab dazu: Erinner mich daran wenn ich latest gehen will. Ganze Prozent sind natürlich problemlos möglich hab, das auf 0,0 umgestellt damit ich sehe das es sich bewegt
Danke für deinen Testen. Die Controls werde ich mal überprüfen, hab gestern auch ein paar Dinge gefunden.
setRepeat/setShuffle sind states mit denen ich mich noch nicht befasst habe. Da gibts doch bei einem 3 mögliche Zustände oder?
Kann da setRepeatSwitch/setShuffleSwitch machen (bei dem mit den 3 Zuständen) damit ich nicht irgendwem die visu zerhaue. Role ist dannmedia.mode.shuffle
odermedia.mode.repeat
type:boolean
setRepeat hat 3 Zustände und ist so auch in der iobroker docu vorgesehen. 0,1,2 role:media.mode.repeat
setShuffle dürft dann falsch sein der sollte role:media.mode.shuffle
type:boolean
sein.https://github.com/ioBroker/ioBroker.type-detector/blob/master/DEVICES.md#media-mediaplayer
Sind die Fehlermeldungen oben behoben?
-
@ticaki sagte in Test Adapter Plex v1.0.x:
Sind die Fehlermeldungen oben behoben?
Ja
Also bei meinen Verstärker (Via Musiccast Adapter) sind beide ein Toggle Button
-
Hallo, wenn ich die App am Handy beende kommt immer das:
plex.0 2023-09-04 14:42:45.261 info Establishing insecure connection to Plex Media Server... plex.0 2023-09-04 14:42:45.241 info starting. Version 1.0.5 (non-npm: iobroker-community-adapters/ioBroker.plex#player_requests) in C:/ioBroker/_iob_Test/node_modules/iobroker.plex, node: v18.17.1, js-controller: 5.0.12 plex.0 2023-09-04 14:42:12.992 info terminating plex.0 2023-09-04 14:42:12.484 warn Terminated (UNCAUGHT_EXCEPTION): Without reason plex.0 2023-09-04 14:42:12.483 info terminating plex.0 2023-09-04 14:42:12.481 info Plex Adapter stopped und unloaded. plex.0 2023-09-04 14:42:12.477 error Cannot read properties of undefined (reading 'log') plex.0 2023-09-04 14:42:12.477 error TypeError: Cannot read properties of undefined (reading 'log') at _updater (C:\ioBroker\_iob_Test\node_modules\iobroker.plex\lib\players.js:265:22) at runNextTicks (node:internal/process/task_queues:60:5) at listOnTimeout (node:internal/timers:538:9) at process.processTimers (node:internal/timers:512:7) plex.0 2023-09-04 14:42:12.476 error unhandled promise rejection: Cannot read properties of undefined (reading 'log') plex.0 2023-09-04 14:42:12.475 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
-
@sigi234 sagte in Test Adapter Plex v1.0.x:
Hallo, wenn ich die App am Handy beende kommt immer das:
Der Fehler wird behoben, aber schön das alles so klappt wie vorgesehen... Der Fehler wäre sonst nicht aufgetreten
-
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