Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Plugin Tiers][Sujet Principal] upnp

Pour échanger sur les plugins classés en catégorie "Protocoles domotiques"
DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

[Plugin Tiers][Sujet Principal] upnp

Message par DavZero » 21 nov. 2016, 23:36

Bonjour,

je viens de publier un nouveau plugin qui permet de contrôler les périphériques UPnP :
Capture.JPG
Capture.JPG (151.65 Kio) Consulté 6957 fois
On voit sur l'image ci dessous différent type de périphériques :
- 2 ContentDirectory (media serveur) ==> affichage customisé
- 2 AVTransport (media player) ==> affichage customisé
- 1 RenderingControl (gestion volume notament) ==> affichage non customisé
Pour l'utiliser, il suffit de lancer le démon qui va automatiquement détecté vos périphériques UPnP et créer pour chaque service un équipement dans Jeedom.
Deux paramètres sont toutefois disponible :
- Le port du service créer par le démon (au cas ou le port par défaut serait déjà utilisé)
- Le timeout des commandes (visible uniquement en mode expert)

La doc contient divers information utile et notamment le moyen d'utiliser les commandes dans un scénario

J'ai personnellement pu tester différents media serveur (Freebox, Syno) et différent player (TV LG, freeplayer) mais le plugin est concu pour fonctionner avec n'importe quel type de périphérique UPnP et permettre d'exposer toutes les commandes / informations misent a disposition par ces périphériques.

J'ai pour l'instant customiser l'affichage des service ContentDirectory (media serveur) et AVTransport (media player). Si besoin de customisation pour d'autre service, n’hésiter pas a me le remonter et je verrais ce que je peux faire.

Les évolutions a venir :
- Je prévois a court terme de customiser le widget du service RenderingControl (volume + / - , Mute).
- Je suis encore en reflexion quand au découpage des equipements. Est qu'il faut faire un equipement par service ou un equipement par device. Pour le moment j'ai choisi la solution 1 afin de limiter le nombre de commande par equipement mais je ne m'interdit pas de changer a l'avenir.
- A voir suivant les retours d'usage, il y aura surement des demandes de customisation de widget pour des appareils que je n'ai pas
Dernière édition par DavZero le 22 nov. 2016, 20:26, édité 1 fois.

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 21 nov. 2016, 23:37

Change Log :
- Première diffusion en stable
09/12/2016 :
- Support WEMO
15/12/2016 :
- Possibilité de créer des commandes "préconfigurer"
08/01/2017 (beta actuellement):
- Gestion de l'inclusion

Materiel testé et validé :
- TV LG ==> OK
- Freeplayer ==> OK
- Freebox server ==> OK
- OpenHome ==> OK
- WEMO ==> OK
- Sonoé ==> En cours
- Awox StriimSound ==> En cours ==> Ok
- ... je ne maintient plus cette liste car trop de périphérique différent y'a du Samsung, logitech, sonos, ...
Dernière édition par DavZero le 08 janv. 2017, 18:06, édité 10 fois.

Avatar de l’utilisateur
slobberbone
Actif
Messages : 2692
Inscription : 25 juin 2014, 12:34
Localisation : Caen

Re: [Sujet Officiel] plugin upnp

Message par slobberbone » 21 nov. 2016, 23:46

Très beau boulot bravo !
Présentation, Rénovation, JeedomBox : https://www.jeedom.fr/forum/viewtopic.php?f=50&t=11339
Mes plugins/widgets : viewtopic.php?f=50&t=11339#p214011

Deennoo
Timide
Messages : 450
Inscription : 05 nov. 2015, 13:51

Re: [Sujet Officiel] plugin upnp

Message par Deennoo » 22 nov. 2016, 00:05

Ouais c'est nickel, bravo

AlienQueen
Timide
Messages : 142
Inscription : 26 avr. 2016, 15:28

Re: [Sujet Officiel] plugin upnp

Message par AlienQueen » 22 nov. 2016, 01:12

Hello,

Ca a l'air pas mal, mais je n'arrive pas à lancer le démon. Ca doit venir d'erreurs lors de l'installation des dépendances, voici les logs :


Début de l'installation
Version actuelle : v5.12.0
Ok, version suffisante
/var/www/html/plugins/upnp/node
`-- ip@1.1.4
npm WARN enoent ENOENT: no such file or directory, open '/var/www/html/plugins/upnp/node/package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.
/var/www/html/plugins/upnp/node
+-- ip@1.1.4
`-- xml2js@0.4.17
+-- sax@1.2.1
`-- xmlbuilder@4.2.1
`-- lodash@4.17.2
npm WARN enoent ENOENT: no such file or directory, open '/var/www/html/plugins/upnp/node/package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.
/var/www/html/plugins/upnp/node
+-- ip@1.1.4
+-- request@2.79.0
| +-- aws-sign2@0.6.0
| +-- aws4@1.5.0
| +-- caseless@0.11.0
| +-- combined-stream@1.0.5
| | `-- delayed-stream@1.0.0
| +-- extend@3.0.0
| +-- forever-agent@0.6.1
| +-- form-data@2.1.2
| | `-- asynckit@0.4.0
| +-- har-validator@2.0.6
| | +-- chalk@1.1.3
| | | +-- ansi-styles@2.2.1
| | | +-- escape-string-regexp@1.0.5
| | | +-- has-ansi@2.0.0
| | | | `-- ansi-regex@2.0.0
| | | +-- strip-ansi@3.0.1
| | | `-- supports-color@2.0.0
| | +-- commander@2.9.0
| | | `-- graceful-readlink@1.0.1
| | +-- is-my-json-valid@2.15.0
| | | +-- generate-function@2.0.0
| | | +-- generate-object-property@1.2.0
| | | | `-- is-property@1.0.2
| | | +-- jsonpointer@4.0.0
| | | `-- xtend@4.0.1
| | `-- pinkie-promise@2.0.1
| | `-- pinkie@2.0.4
| +-- hawk@3.1.3
| | +-- boom@2.10.1
| | +-- cryptiles@2.0.5
| | +-- hoek@2.16.3
| | `-- sntp@1.0.9
| +-- http-signature@1.1.1
| | +-- assert-plus@0.2.0
| | +-- jsprim@1.3.1
| | | +-- extsprintf@1.0.2
| | | +-- json-schema@0.2.3
| | | `-- verror@1.3.6
| | `-- sshpk@1.10.1
| | +-- asn1@0.2.3
| | +-- assert-plus@1.0.0
| | +-- bcrypt-pbkdf@1.0.0
| | +-- dashdash@1.14.0
| | | `-- assert-plus@1.0.0
| | +-- ecc-jsbn@0.1.1
| | +-- getpass@0.1.6
| | | `-- assert-plus@1.0.0
| | +-- jodid25519@1.0.2
| | +-- jsbn@0.1.0
| | `-- tweetnacl@0.14.3
| +-- is-typedarray@1.0.0
| +-- isstream@0.1.2
| +-- json-stringify-safe@5.0.1
| +-- mime-types@2.1.13
| | `-- mime-db@1.25.0
| +-- oauth-sign@0.8.2
| +-- qs@6.3.0
| +-- stringstream@0.0.5
| +-- tough-cookie@2.3.2
| | `-- punycode@1.4.1
| +-- tunnel-agent@0.4.3
| `-- uuid@3.0.0
`-- xml2js@0.4.17
npm WARN enoent ENOENT: no such file or directory, open '/var/www/html/plugins/upnp/node/package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.
/var/www/html/plugins/upnp/node
+-- ip@1.1.4
+-- portfinder@1.0.10
| +-- async@1.5.2
| +-- debug@2.3.3
| | `-- ms@0.7.2
| `-- mkdirp@0.5.1
| `-- minimist@0.0.8
+-- request@2.79.0
`-- xml2js@0.4.17
npm WARN enoent ENOENT: no such file or directory, open '/var/www/html/plugins/upnp/node/package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.
/var/www/html/plugins/upnp/node
+-- html-entities@1.2.0
+-- ip@1.1.4
+-- portfinder@1.0.10
+-- request@2.79.0
`-- xml2js@0.4.17
npm WARN enoent ENOENT: no such file or directory, open '/var/www/html/plugins/upnp/node/package.json'
npm WARN node No description
npm WARN node No repository field.
npm WARN node No README data
npm WARN node No license field.
Fin de l'installation



D'après Jeedom, les dépendances sont correctement installées (l'icône est verte).

Ce qui est bizarre, c'est que quand j'essaye de démarrer le démon, son icône se met en vert quelques secondes puis repasse au rouge. Voivi les logs du démon :



22-11-2016 01:10:48 | Info | Démon version 1.0.0
22-11-2016 01:10:48 | Debug | urlJeedom = http://192.168.1.10:80/core/api/jeeApi. ... BDawi84kuV
22-11-2016 01:10:48 | Debug | serverPort = 5002
22-11-2016 01:10:48 | Info | logLevel = debug
22-11-2016 01:10:48 | Info | timeout = 10
22-11-2016 01:10:48 | Info | Création du serveur sur le port 5002
22-11-2016 01:10:48 | Info | Création du controlPoint
22-11-2016 01:10:48 | Info | Start searching request for All
22-11-2016 01:10:48 | Debug | Add Device http://192.168.1.10:32469/DeviceDescription.xml to ceation queued
22-11-2016 01:10:48 | Debug | Device http://192.168.1.10:32469/DeviceDescription.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.10:32469/DeviceDescription.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.10:32469/DeviceDescription.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.10:32469/DeviceDescription.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.10:32469/DeviceDescription.xml already queued for creation
22-11-2016 01:10:48 | Debug | Add Device http://192.168.1.1:49152/wps_device.xml to ceation queued
22-11-2016 01:10:48 | Debug | Add Device http://192.168.1.1:49153/wps_device.xml to ceation queued
22-11-2016 01:10:48 | Debug | Add Device http://192.168.1.1:60001/6287a37c/gatedesc.xml to ceation queued
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-upnp-org:device:MediaServer:1 uuid:cad86c66-8a11-494e-2257-76b8a761ada1
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:60001/6287a37c/gatedesc.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49152/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-wifialliance-org:device:WFADevice:1 uuid:40373e39-3f39-fb4c-f939-3b4807373e39
22-11-2016 01:10:48 | Debug | Device already exist uuid:40373e39-3f39-fb4c-f939-3b4807373e39 adresse : http://192.168.1.1:49152/wps_device.xml
22-11-2016 01:10:48 | Debug | Device http://192.168.1.1:49153/wps_device.xml already queued for creation
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-upnp-org:device:InternetGatewayDevice:2 uuid:6287a37c-2ad9-3e34-b4e8-8c02f1ce0275
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-upnp-org:device:WANDevice:2 uuid:c1d6eaef-bd8c-34dc-ac96-3ab833d3a1ba
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-upnp-org:device:WANConnectionDevice:2 uuid:8062bd10-95a0-3781-9c86-12cea8d0ca5f
22-11-2016 01:10:48 | Info | Creation du device urn:schemas-wifialliance-org:device:WFADevice:1 uuid:40373e39-3f39-fb4c-f939-3b4807373e39
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:48 | Debug | Device already exist uuid:cad86c66-8a11-494e-2257-76b8a761ada1 adresse : http://192.168.1.10:32469/DeviceDescription.xml
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1"],"serviceId":["urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar"],"SCPDURL":["/X_MS_MediaReceiverRegistrar/cad86c66-8a11-494e-2257-76b8a761ada1/scpd.xml"],"controlURL":["/X_MS_MediaReceiverRegistrar/cad86c66-8a11-494e-2257-76b8a761ada1/control.xml"],"eventSubURL":["/X_MS_MediaReceiverRegistrar/cad86c66-8a11-494e-2257-76b8a761ada1/event.xml"]}
22-11-2016 01:10:50 | Debug | Traitement du message : {"url":"http://192.168.1.10:80/core/api/jeeApi. ... ame":"Plex Media Server: lv426","location":"http://192.168.1.10:32469","icon":"http://192.168.1.10:32469/proxy/6fec3ecdd1387a570a24/120x120.png","description":"http://192.168.1.10:32469/DeviceDescription.xml","additionalData":{"manufacturer":"Plex, Inc.","manufacturerURL":"http://www.plexapp.com/","modelDescription":"Plex Media Server","modelName":"Plex Media Server","modelNumber":"1.2.7.2987","modelURL":"http://www.plexapp.com/","dlna:X_DLNADO ... ryCount":0}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-upnp-org:service:ContentDirectory:1"],"serviceId":["urn:upnp-org:serviceId:ContentDirectory"],"SCPDURL":["/ContentDirectory/cad86c66-8a11-494e-2257-76b8a761ada1/scpd.xml"],"controlURL":["/ContentDirectory/cad86c66-8a11-494e-2257-76b8a761ada1/control.xml"],"eventSubURL":["/ContentDirectory/cad86c66-8a11-494e-2257-76b8a761ada1/event.xml"]}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-upnp-org:service:ConnectionManager:1"],"serviceId":["urn:upnp-org:serviceId:ConnectionManager"],"SCPDURL":["/ConnectionManager/cad86c66-8a11-494e-2257-76b8a761ada1/scpd.xml"],"controlURL":["/ConnectionManager/cad86c66-8a11-494e-2257-76b8a761ada1/control.xml"],"eventSubURL":["/ConnectionManager/cad86c66-8a11-494e-2257-76b8a761ada1/event.xml"]}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-wifialliance-org:service:WFAWLANConfig:1"],"serviceId":["urn:wifialliance-org:serviceId:WFAWLANConfig1"],"SCPDURL":["wps_scpd.xml"],"controlURL":["wps_control"],"eventSubURL":["wps_event"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_DeviceID"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_Result"],"dataType":["int"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_RegistrationReqMsg"],"dataType":["bin.base64"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_RegistrationRespMsg"],"dataType":["bin.base64"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["AuthorizationGrantedUpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["AuthorizationDeniedUpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["ValidationSucceededUpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["ValidationRevokedUpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["IsAuthorized"],"argumentList":[{"argument":[{"name":["DeviceID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_DeviceID"]},{"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["DeviceID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_DeviceID"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["RegisterDevice"],"argumentList":[{"argument":[{"name":["RegistrationReqMsg"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_RegistrationReqMsg"]},{"name":["RegistrationRespMsg"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_RegistrationRespMsg"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["RegistrationReqMsg"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_RegistrationReqMsg"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["RegistrationRespMsg"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_RegistrationRespMsg"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["IsValidated"],"argumentList":[{"argument":[{"name":["DeviceID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_DeviceID"]},{"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["DeviceID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_DeviceID"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_BrowseFlag"],"dataType":["string"],"allowedValueList":[{"allowedValue":["BrowseMetadata","BrowseDirectChildren"]}]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["ContainerUpdateIDs"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"yes"},"name":["SystemUpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_Count"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_SortCriteria"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["SortCapabilities"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_Index"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_ObjectID"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_UpdateID"],"dataType":["ui4"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_Result"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["SearchCapabilities"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de la variable : {"$":{"sendEvents":"no"},"name":["A_ARG_TYPE_Filter"],"dataType":["string"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["Browse"],"argumentList":[{"argument":[{"name":["ObjectID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_ObjectID"]},{"name":["BrowseFlag"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_BrowseFlag"]},{"name":["Filter"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Filter"]},{"name":["StartingIndex"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Index"]},{"name":["RequestedCount"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Count"]},{"name":["SortCriteria"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_SortCriteria"]},{"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]},{"name":["NumberReturned"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Count"]},{"name":["TotalMatches"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Count"]},{"name":["UpdateID"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_UpdateID"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["ObjectID"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_ObjectID"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["BrowseFlag"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_BrowseFlag"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["Filter"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Filter"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["StartingIndex"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Index"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["RequestedCount"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_Count"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["SortCriteria"],"direction":["in"],"relatedStateVariable":["A_ARG_TYPE_SortCriteria"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["Result"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Result"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["NumberReturned"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Count"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["TotalMatches"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_Count"]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["UpdateID"],"direction":["out"],"relatedStateVariable":["A_ARG_TYPE_UpdateID"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["GetSortCapabilities"],"argumentList":[{"argument":[{"name":["SortCaps"],"direction":["out"],"relatedStateVariable":["SortCapabilities"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["SortCaps"],"direction":["out"],"relatedStateVariable":["SortCapabilities"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["GetSystemUpdateID"],"argumentList":[{"argument":[{"name":["Id"],"direction":["out"],"relatedStateVariable":["SystemUpdateID"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["Id"],"direction":["out"],"relatedStateVariable":["SystemUpdateID"]}
22-11-2016 01:10:50 | Debug | Création de l'action : {"name":["GetSearchCapabilities"],"argumentList":[{"argument":[{"name":["SearchCaps"],"direction":["out"],"relatedStateVariable":["SearchCapabilities"]}]}]}
22-11-2016 01:10:50 | Debug | Création de l'argument : {"name":["SearchCaps"],"direction":["out"],"relatedStateVariable":["SearchCapabilities"]}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-upnp-org:service:WANIPConnection:2"],"serviceId":["urn:upnp-org:serviceId:WANIPConn1"],"controlURL":["/6287a37c/upnp/control/WANIPConn1"],"eventSubURL":["/6287a37c/upnp/control/WANIPConn1"],"SCPDURL":["/6287a37c/gateconnSCPD_IP.xml"]}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-upnp-org:service:WANIPv6FirewallControl:1"],"serviceId":["urn:upnp-org:serviceId:WANIPv6FwCtrl1"],"controlURL":["/6287a37c/upnp/control/WANIPv6FwCtrl1"],"eventSubURL":["/6287a37c/upnp/control/WANIPv6FwCtrl1"],"SCPDURL":["/6287a37c/wanipv6fwctrlSCPD.xml"]}
22-11-2016 01:10:50 | Info | Création du service : {"serviceType":["urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"],"serviceId":["urn:upnp-org:serviceId:WANCommonIFC1"],"controlURL":["/6287a37c/upnp/control/WANCommonIFC1"],"eventSubURL":["/6287a37c/upnp/control/WANCommonIFC1"],"SCPDURL":["/6287a37c/gateicfgSCPD.xml"]}
An uncaughtException was found, the program will end : TypeError: Cannot read property '0' of undefined
22-11-2016 01:10:50 | Error | An uncaughtException was found, the program will end : TypeError: Cannot read property '0' of undefined
/var/www/html/plugins/upnp/node/upnpDaemon.js:322
throw err;
^
TypeError: Cannot read property '0' of undefined
at Timeout._onTimeout (/var/www/html/plugins/upnp/node/lib/upnp_device.js:59:25)
at tryOnTimeout (timers.js:224:11)
at Timer.listOnTimeout (timers.js:198:5)



J'ai mis un timeout de 45 secondes, mais rien n'y fait.

Je suis sous Debian Jessie, avec un serveur Plex qui fait serveur DLNA (trouvé) et une Livebox (trouvée aussi).

Merci d'avance !

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 22 nov. 2016, 12:56

Salut,

Déjà merci pour vos commentaires, ca fait plaisir.

Pour @AlienQueen :
pas de problème avec les dépendances tous est Ok de ce coté.
pas de souci non plus avec le timeout, (l'exception parle de timeout mais ce n'est pas la même chose)

Le problème vient du décodage du xml spécifique à un service (pour récupérer les actions et variables associées), par contre je ne sais pas dire avec certitude lequel, je pense que c'est celui présent ici :
, peux tu copier coller cette adresse dans un navigateur et m'envoyer le xml qui va s'afficher (il faut que ton server plex soit allumer).
De mon coté, ce soir, je fais faire une modification de la gestion de cette erreur afin de remonté le service en erreur pour pouvoir analyser.

Si tu as pu m'envoyer le xml en parallèle, j'essayerais regarder en même temps ce qui coince, si c'est bien dans ce xml que le problème apparait.

A+

AlienQueen
Timide
Messages : 142
Inscription : 26 avr. 2016, 15:28

Re: [Sujet Officiel] plugin upnp

Message par AlienQueen » 22 nov. 2016, 13:25

Y'a qu'à demander !

scpd.xml :


<?xml version="1.0" encoding="UTF-8"?>
<scpd xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>GetCurrentConnectionInfo</name>
<argumentList>
<argument>
<name>ConnectionID</name>
<direction>in</direction>
<relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable>
</argument>
<argument>
<name>RcsID</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_RcsID</relatedStateVariable>
</argument>
<argument>
<name>AVTransportID</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_AVTransportID</relatedStateVariable>
</argument>
<argument>
<name>ProtocolInfo</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_ProtocolInfo</relatedStateVariable>
</argument>
<argument>
<name>PeerConnectionManager</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_ConnectionManager</relatedStateVariable>
</argument>
<argument>
<name>PeerConnectionID</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_ConnectionID</relatedStateVariable>
</argument>
<argument>
<name>Direction</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_Direction</relatedStateVariable>
</argument>
<argument>
<name>Status</name>
<direction>out</direction>
<relatedStateVariable>A_ARG_TYPE_ConnectionStatus</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetProtocolInfo</name>
<argumentList>
<argument>
<name>Source</name>
<direction>out</direction>
<relatedStateVariable>SourceProtocolInfo</relatedStateVariable>
</argument>
<argument>
<name>Sink</name>
<direction>out</direction>
<relatedStateVariable>SinkProtocolInfo</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetCurrentConnectionIDs</name>
<argumentList>
<argument>
<name>ConnectionIDs</name>
<direction>out</direction>
<relatedStateVariable>CurrentConnectionIDs</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_ProtocolInfo</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_ConnectionStatus</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>OK</allowedValue>
<allowedValue>ContentFormatMismatch</allowedValue>
<allowedValue>InsufficientBandwidth</allowedValue>
<allowedValue>UnreliableChannel</allowedValue>
<allowedValue>Unknown</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_AVTransportID</name>
<dataType>i4</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_RcsID</name>
<dataType>i4</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_ConnectionID</name>
<dataType>i4</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_ConnectionManager</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="yes">
<name>SourceProtocolInfo</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="yes">
<name>SinkProtocolInfo</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>A_ARG_TYPE_Direction</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>Input</allowedValue>
<allowedValue>Output</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>CurrentConnectionIDs</name>
<dataType>string</dataType>
</stateVariable>
</serviceStateTable>
</scpd>


Merci beaucoup !

AlienQueen
Timide
Messages : 142
Inscription : 26 avr. 2016, 15:28

Re: [Sujet Officiel] plugin upnp

Message par AlienQueen » 22 nov. 2016, 13:26

Oups, désolé pour l'indentation qui n'a pas été prise...

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 22 nov. 2016, 20:26

Re,

@AlienQueen, pas de souci pour le xml, surtout que ... il ne m'a pas servi ^^. Le problème n'était pas ou je l'avais imaginer ce midi, je n'avais pas géré le cas ou un device UPnP n'expose pas de service (je trouve ça étrange sur le principe mais visiblement ça existe).
Donc j'ai modifier le décodage du xml pour géré ce cas et le logguer en debug au lieu de généré une exception.

La nouvelle version est dispo sur le market en release.

N'hésiter pas a revenir vers moi si vous rencontrez de nouveau un bug ou si par exemple vous souhaitez une interface custo pour tel ou tel service ou pour tous autre évolution du plugin.
Et si le plugin vous plait (ou pas d’ailleurs mais dans ce cas je veux bien un petit message pour expliquer ce qui ne va pas) n'hésiter pas a mettre une note sur le market.

A+

Avatar de l’utilisateur
Patrick
Helper
Messages : 1029
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: [Sujet Officiel] plugin upnp

Message par Patrick » 01 déc. 2016, 00:25

Salut DavZero,
Je suis en train de tester ton plugin (qui à l'air très intéressant)...
Pour info, lors de son activation et de la phase découverte des périphériques UPNP, j'ai plein de messages dans le centre de messages :

Code : Tout sélectionner

2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;571-Metatext&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;569-Fade&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;569-Volume&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;569-Mute&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;569-Balance&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-TransportState&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-ProtocolInfo&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-TracksMax&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-Shuffle&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-IdArray&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-Id&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;572-Repeat&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;568-Attributes&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;568-Standby&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;568-SourceXml&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;568-SourceIndex&apos; for key &apos;unique&apos;	
	2016-12-01 00:05:12	jeeEvent	[MySQL] Error code : 23000 (1062). Duplicate entry &apos;568-SourceCount&apos; for key &apos;unique&apos;
;)
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 01 déc. 2016, 08:11

Salut @Patrick, tu pourrais m'envoyer le log UPnP et celui du démon stp. Si tu supprime les message du message centre et que tu stop et relance le démon, est ce que les messages reviennent?


Edit :
Finalement, pas besoin de tes logs, j'ai vu que tu utilisais OpenHome (que je ne connaissait pas), et je l'ai installé chez moi.
Je reproduit le même comportement, je vais donc pouvoir analyser ce qui se passe et corriger.

Je te tiens au courant.

Nota : les autres périphériques doivent normalement être correctement créer et bien fonctionner. (en tous cas chez moi ca n'empeche pas le fonctionnement des autres).

A+

Avatar de l’utilisateur
Patrick
Helper
Messages : 1029
Inscription : 29 août 2014, 15:21
Localisation : Savoie

Re: [Sujet Officiel] plugin upnp

Message par Patrick » 01 déc. 2016, 09:52

Tout à fait, les autres périphériques sont ok..
En fait j'ai BubbleUpnp installé sur toutes les tablettes et smarphones (Android).
Et sur les tablettes j'ai aussi installé BubbleUpnp Server (OpenHome) ;)
ßêta-Testeur / Développeur plugin / Modérateur du Forum EnOcean

En domotique ou en informatique, il n'y a pas de problème, mais seulement des solutions à trouver...
Pour contribuer au développement des plugins et tutos : Paypal

jeje
Timide
Messages : 39
Inscription : 30 août 2015, 13:36

Re: [Sujet Officiel] plugin upnp

Message par jeje » 02 déc. 2016, 12:48

Bonjour,

J'ai une erreur technique sur mon dashboard quand j'active un périphérique Awox StriimSound.

Les erreurs que j'ai pu localiser semblent être :

Code : Tout sélectionner

[:error] [pid 20775] [client 192.168.0.9:34144] PHP Notice:  Undefined property: stdClass::$fromDevice in /var/www/html/plugins/upnp/core/class/upnp.class.php on line 154
et

Code : Tout sélectionner

[:error] [pid 9130] [client 192.168.0.25:61934] PHP Fatal error:  Call to a member function getId() on boolean in /var/www/html/plugins/upnp/core/class/upnp.class.php on line 394, referer: http://192.168.0.9/index.php?v=d&p=dashboard&object_id=7
Une idée du soucis ?

Merci d'avance.

driftking40
Timide
Messages : 59
Inscription : 18 sept. 2016, 08:50

Re: [Sujet Officiel] plugin upnp

Message par driftking40 » 02 déc. 2016, 13:28

bonjour,
je voulais savoir si je peux utiliser ce plugins avec Sonoé de chez Ieast qui supporte l'upnp ? car quand je lance le démon il passe en NOK.
et je voulais savoir ce qu'il fallait mettre dans la configuration dans le "porte clé" ?
merci

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 02 déc. 2016, 13:34

Salut @jeje je regarde ça se soir et je te tiens au courant.
@driftking40 peux tu m'envoyer le log du démon en début si possible. A priori pas de souci tant que le périphérique respect a peu prêt les standard UPnP.

Edit : J'avais zappé la question, le port clé ... il sert a rien, c'est un relicat d'un aute de mes plugin que j'ai utilisé comme base. (plugwise)

A+

Envoyé de mon A0001 en utilisant Tapatalk
Dernière édition par DavZero le 02 déc. 2016, 21:39, édité 1 fois.

driftking40
Timide
Messages : 59
Inscription : 18 sept. 2016, 08:50

Re: [Sujet Officiel] plugin upnp

Message par driftking40 » 02 déc. 2016, 17:16

voici les logs du démon (enfin je pense car je ne connais pas trop comment on fait)

An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
02-12-2016 16:12:56 | Error | An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
/usr/share/nginx/www/jeedom/plugins/upnp/node/upnpDaemon.js:322
throw err;
^
TypeError: Cannot read property 'forEach' of undefined
at UpnpBaseService.processSCPD (/usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_service.js:87:30)
at /usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_service.js:44:16
at Parser.<anonymous> (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/xml2js/lib/xml2js.js:489:18)
at emitOne (events.js:90:13)
at Parser.emit (events.js:182:7)
at Object.onclosetag (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/xml2js/lib/xml2js.js:447:26)
at emit (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:640:35)
at emitNode (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:645:5)
at closeTag (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:905:7)
at Object.write (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:1449:13)
An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
02-12-2016 16:13:49 | Error | An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
/usr/share/nginx/www/jeedom/plugins/upnp/node/upnpDaemon.js:322
throw err;
^
TypeError: Cannot read property 'forEach' of undefined
at UpnpBaseService.processSCPD (/usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_service.js:87:30)
at /usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_service.js:44:16
at Parser.<anonymous> (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/xml2js/lib/xml2js.js:489:18)
at emitOne (events.js:90:13)
at Parser.emit (events.js:182:7)
at Object.onclosetag (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/xml2js/lib/xml2js.js:447:26)
at emit (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:640:35)
at emitNode (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:645:5)
at closeTag (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:905:7)
at Object.write (/usr/share/nginx/www/jeedom/plugins/upnp/node/node_modules/sax/lib/sax.js:1449:13)

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 02 déc. 2016, 20:27

Salut,

@Patrick, je termine ce WE la prise en compte de OpenHome, du moins une première version car je n'aime pas trop ce que j'ai fait pour l'instant (j'avais un truc super générique et pour une parti de OpenHome, j'ai du customiser certains point du demon ce qui ne me plait pas trop). Pour info, de ce que j'ai compris de l'UPnP pour le moment (je ne prétend pas expert) leur implémentation est très ... bof. C'est le pbm de l'UPnP, certains s'écarte gentillement du standard. A titre d'exemple, le nommage de leur variable dans la définition du service et dans le contenu de l'evenement LastChange est différent. Autant dire que si on ne fait pas une gestion spécifique de leur service, les variable ne sont pas mise a jour ....

@jeje,
- pour la première erreur, c'est déjà corriger dans la beta et ce n'est pas grave (ca change l'information source de l'information mais ca n'a pas d'incidence sur le fonctionnement)
- pour la deuxième erreur, le problème arrive lors du calcul de la représentation d'un equipement "AVTransport" qui sert donc pour gérer la lecture de média. Peux tu m'envoyer le xml correspondant à la description SCPD de ce service, car a priori il manque l'information RelativeTimePosition?
==> pour ca tu va sur la page de configuration de l’équipement, la tu va trouver un champ nommé description qui va contenir une URL local, tu copie colle cette url dans ton navigateur et ca va afficher un xml. La c'est presque fini. Dans ce xml, trouve le texte AVTransport et juste en dessous tu va trouver l'adresse du fichier SCPD, exemple chez moi :
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<SCPDURL>/AVTransport1.xml</SCPDURL>
<controlURL>/upnp/control/AVTransport1</controlURL>
<eventSubURL>/upnp/event/AVTransport1</eventSubURL>
</service>
Tu prends ensuite le début de l'URL précédente et tu concatène avec le SCPDURL.
Par exemple pour l'adresse du départ est http://192.168.0.23:37904/MediaRenderer1.xml, ca donne http://192.168.0.23:37904/AVTransport1.xml
Enfin tu colle cette dernière adresse dans ton navigateur et tu m'envoi le xml qui s'affiche (soit par mail / message sur le forum, soit en PJ d'un message dans ce sujet. Ne colle pas directement le contenu dans ta réponse car sinon ça devient illisible)

Nota : en attendant que je résolve ce problème, tu peux décoché l'"Affichage spécifique au service" dans la configuration de l’équipement. Ça te permettra de l'utiliser mais moins "userfriendly" que l'interface customiser.

@driftking40, je vois ou est l'erreur et je vais mettre un controle pour ne pas que le démon plante. Le problème qui est remonté ici est que le service en cours d'analyse n'a pas d'action, uniquement des infos. Tu sais de quel périphérique il s'agit?
En tous cas, je corrige rapidement et je te dit quand c'est dispo (ce soir ou demain de toutes façon)

A+

driftking40
Timide
Messages : 59
Inscription : 18 sept. 2016, 08:50

Re: [Sujet Officiel] plugin upnp

Message par driftking40 » 02 déc. 2016, 20:38

re bonjour,
c'est Sonoé iEast SoundStream, c'est un peu comme les sonos.
http://www.sonoe.fr/.
merci
A+

DavZero
Actif
Messages : 521
Inscription : 19 déc. 2015, 14:31

Re: [Sujet Officiel] plugin upnp

Message par DavZero » 03 déc. 2016, 17:02

Salut,

comme promis @Patrick, @jeje, @driftking40, voici une nouvelle version du plugin qui devrait résoudre vos différents problème.

J'ai ajouter un bouton "Supprimer tous" sur la page de configuration des équipements qui supprime tous les equipements, je vous recommande de supprimer tous vos équipements avant de relancer le démon après la MAJ (ce n'est pas obligatoire mais ça assurera le coup, surtout pour Patrick car j'ai changer pas mal de chose pour OpenHome)

@jeje, les deux erreurs que tu avais ne seront plus présentes mais tu aura surement toujours un pbm avec la progressBar de lecture pour le service AVTransport qui te posait problème. Sans le xml "service Description" (cf page de configuration de l'equipement, je ne peut rien faire.

@driftking40, tu ne devrais plus avoir de souci, a voir comment sont gérés les service UPnP de Sonoé.

@Patrick, j'ai pris en charge le service AVTransport de OpenHome mais il reste encore du boulot car OpenHome fournit plein de service dont certains semble interessant et mériterait une interface custo (gestion playlist et radio notamment). Pour info, j'ai tester le service PlayList avec l'interface déjà présente et ça fonctionne.

Tenez moi au courant.
A+

driftking40
Timide
Messages : 59
Inscription : 18 sept. 2016, 08:50

Re: [Sujet Officiel] plugin upnp

Message par driftking40 » 03 déc. 2016, 17:41

salut davZero,
j'ai fais la mise a jour, et j'ai toujours le demon en NOK, j'ai supprimé et reinstalle le plugin et c pareil, voici le log du demon :

An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
03-12-2016 16:37:01 | Error | An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
/usr/share/nginx/www/jeedom/plugins/upnp/node/upnpDaemon.js:408
throw err;
^

TypeError: Cannot read property 'forEach' of undefined
at Timeout._onTimeout (/usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_device.js:86:34)
at tryOnTimeout (timers.js:224:11)
at Timer.listOnTimeout (timers.js:198:5)
An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
03-12-2016 16:37:27 | Error | An uncaughtException was found, the program will end : TypeError: Cannot read property 'forEach' of undefined
/usr/share/nginx/www/jeedom/plugins/upnp/node/upnpDaemon.js:408
throw err;
^

TypeError: Cannot read property 'forEach' of undefined
at Timeout._onTimeout (/usr/share/nginx/www/jeedom/plugins/upnp/node/lib/upnp_device.js:86:34)
at tryOnTimeout (timers.js:224:11)
at Timer.listOnTimeout (timers.js:198:5)


merci de ton aide

Répondre

Revenir vers « [Catégorie] Protocoles domotiques »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités