Klf 200 - dexxo smart io

C’est pas la porte de garage qui fait bugger, mais lumières et inter

J’ai ajouter du code pour les « ON/OFF », mais je suis incapable de le tester de mon côté.
Du coup je vérifie juste que ca n’a pas d’impact sur les ouvrants avant de faire la release

Bonjour @lunarok
S’il y a des choses à tester, n’hesitez pas, je suis preneur !

Bonjour,
J’ai mis à jour le plugin klf 200, mais le scan ne trouve pas les porte garages.
Au ca ou ça peut aider, voici le log:

======== Running on http://localhost:9123 ========

Connecting to KLF 200.
Connected to: KLF 200: Software version: 0.2.0.0.71.0, hardware version: 6, protocol version: 3.14
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Number of received scenes does not match expected number
NodeTypeWithSubtype.LIGHT_ON_OFF not implemented
NodeTypeWithSubtype.LIGHT_ON_OFF not implemented
[2020-02-15 21:56:03][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 21:56:03][DEBUG] : Result {"result": "fail"}
[2020-02-15 21:57:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 21:57:02][DEBUG] : Result {"result": "fail"}
[2020-02-15 21:58:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 21:58:02][DEBUG] : Result {"result": "fail"}
[2020-02-15 21:59:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 21:59:02][DEBUG] : Result {"result": "fail"}
[2020-02-15 22:00:04][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 22:00:04][DEBUG] : Result {"result": "fail"}
[2020-02-15 22:01:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 22:01:02][DEBUG] : Result {"result": "fail"}
[2020-02-15 22:02:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 22:02:02][DEBUG] : Result {"result": "fail"}
[2020-02-15 22:02:29][DEBUG] : Send http://localhost:9123/devices
[2020-02-15 22:02:29][DEBUG] : Result {"result": "fail"}

A nouveau, pourquoi tu parles de ta porte de garage ? C’est pas ça dont il se plaint là

En fait le boitier pour commander les portes de garage apporte 3 nouveaux accessoires dans l’interface klf, et aucun n’est remonté dans jeedom et sont inutilisables.
« porte de garage » c’était un raccourci de l’ensemble :wink:

Dont des lampes ou interrupteurs de type relais ? Car là il y a du ON/OFF qui pose le soucis

Hello,
je ne saurais pas te dire. Il y a un led, mais je ne vois pas d’interrupteur.
Par contre, je me suis rendu compte que mes scenario des volets avec kfl ne marchent plus.
C’est lié à la dernière mis à jour du plugin ?

Voici le logs

Connecting to KLF 200.
Connected to: KLF 200: Software version: 0.2.0.0.71.0, hardware version: 6, protocol version: 3.14
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 136, in from_payload
self.target = Parameter(payload[87:89])
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 20, in __init__
self.raw = self.from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/parameter.py", line 61, in from_raw
raise PyVLXException("parameter::raw_exceed_limit", raw=raw)
pyvlx.exception.PyVLXException: <PyVLXException description="parameter::raw_exceed_limit" raw="b'\xd1\x00'"/>
Number of received scenes does not match expected number
NodeTypeWithSubtype.LIGHT_ON_OFF not implemented
[2020-02-18 06:46:01][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:46:01][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:47:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:47:02][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:48:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:48:02][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:49:01][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:49:01][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:50:04][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:50:04][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:51:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:51:02][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:52:01][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:52:01][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:52:44][DEBUG] : Action /set/1/100
[2020-02-18 06:52:44][DEBUG] : Send http://localhost:9123/set/1/100
[2020-02-18 06:52:44][DEBUG] : Result {"result": "fail", "reason": "device unknown"}
[2020-02-18 06:52:48][DEBUG] : Action /set/3/100
[2020-02-18 06:52:48][DEBUG] : Send http://localhost:9123/set/3/100
[2020-02-18 06:52:48][DEBUG] : Result {"result": "fail", "reason": "device unknown"}
[2020-02-18 06:52:51][DEBUG] : Send http://localhost:9123/position/3
[2020-02-18 06:52:51][DEBUG] : Result {"result": "fail", "reason": "device unknown"}
[2020-02-18 06:52:51][DEBUG] : Update storejardin2 at %
[2020-02-18 06:53:02][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:53:02][DEBUG] : Result {"result": "fail"}
[2020-02-18 06:54:03][DEBUG] : Send http://localhost:9123/devices
[2020-02-18 06:54:03][DEBUG] : Result {"result": "fail"}

Si tu peux tester la dernière version du market et me mettre le log du scan stp

Salut,
Je viens de mettre à jour le plugin mais il n’arrive toujours pas à remonter les porte de garage.
Pour info, entre temps, je suis passé à la version 4.0.43 avant de finaliser mon install.
Pour les logs:

  • dans klf200, c’est vert mais il y a des exceptions

  • dans http.error, c’est rouge et j’ai des messages en lien avec klf200

Sinon, j’ai testé cette lib MiSchroe / klf-200-api et il permet de reconnaitre et piloter mes portes de garage, ainsi que mes stores io homecontrol. Par contre c’est du nodejs, mais mieux implémenté que pyvlx je pense.

Merci pour tes investigations.

Log http.error

0 /var/www/html/plugins/klf200/core/ajax/klf200.ajax.php(28): klf200::scanDevices()
#1 {main}
  thrown in /var/www/html/plugins/klf200/core/class/klf200.class.php on line 161, referer: https://jeedom.mondomaine.org/index.php?v=d&m=klf200&p=klf200&id=klf200
[Sun Mar 15 23:13:27.343314 2020] [:error] [pid 2575] [client 192.168.0.25:49238] PHP Fatal error:  Uncaught Error: Using $this when not in object context in /var/www/html/plugins/klf200/core/class/klf200.class.php:161
Stack trace:
#0 /var/www/html/plugins/klf200/core/ajax/klf200.ajax.php(28): klf200::scanDevices()
#1 {main}
  thrown in /var/www/html/plugins/klf200/core/class/klf200.class.php on line 161, referer: https://jeedom.mondomaine.org/index.php?v=d&m=klf200&p=klf200&id=klf200
[Sun Mar 15 23:13:28.669938 2020] [:error] [pid 834] [client 192.168.0.25:49240] PHP Fatal error:  Uncaught Error: Using $this when not in object context in /var/www/html/plugins/klf200/core/class/klf200.class.php:161

Log klf200

Connecting to KLF 200.
Connected to: KLF 200: Software version: 0.2.0.0.71.0, hardware version: 6, protocol version: 3.14
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Exception in callback _SelectorSocketTransport._read_ready()
handle: <Handle _SelectorSocketTransport._read_ready()>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/events.py", line 126, in _run
self._callback(*self._args)
File "/usr/lib/python3.5/asyncio/selector_events.py", line 730, in _read_ready
self._protocol.data_received(data)
File "/usr/lib/python3.5/asyncio/sslproto.py", line 515, in data_received
self._app_protocol.data_received(chunk)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/connection.py", line 52, in data_received
frame = frame_from_raw(raw)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frame_creation.py", line 40, in frame_from_raw
frame.from_payload(payload)
File "/usr/local/lib/python3.5/dist-packages/pyvlx/frames/frame_get_all_nodes_information.py", line 127, in from_payload
self.node_type = NodeTypeWithSubtype(payload[69] * 256 + payload[70])
File "/usr/lib/python3.5/enum.py", line 241, in __call__
return cls.__new__(cls, value)
File "/usr/lib/python3.5/enum.py", line 476, in __new__
raise ValueError("%r is not a valid %s" % (value, cls.__name__))
ValueError: 378 is not a valid NodeTypeWithSubtype
Number of received scenes does not match expected number
NodeTypeWithSubtype.LIGHT_ON_OFF not implemented
NodeTypeWithSubtype.LIGHT_ON_OFF not implemented
[2020-03-15 23:13:25][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:13:25][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:13:26][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:13:26][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:13:27][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:13:27][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:13:28][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:13:28][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:13:28][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:13:28][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:14:02][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:14:02][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:14:02][ERROR] : Erreur sur la fonction cron du plugin : Using $this when not in object context
[2020-03-15 23:15:03][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:15:03][DEBUG] : Result {"devices": [{"type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"type": "RollerShutter", "id": 4, "name": "storepissou"}, {"type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:15:03][ERROR] : Erreur sur la fonction cron du plugin : Using $this when not in object context
[2020-03-15 23:16:02][DEBUG] : Send http://localhost:9123/devices
[2020-03-15 23:16:02][DEBUG] : Result {"devices": [{"position": 100, "type": "RollerShutter", "id": 0, "name": "storesalonfacade"}, {"position": 100, "type": "RollerShutter", "id": 1, "name": "storesalonjardin1"}, {"position": 0, "type": "RollerShutter", "id": 2, "name": "storecuisine"}, {"position": 100, "type": "RollerShutter", "id": 3, "name": "storesalonjardin2"}, {"position": 100, "type": "RollerShutter", "id": 4, "name": "storepissou"}, {"position": 100, "type": "RollerShutter", "id": 5, "name": "storenouchi"}, {"position": 100, "type": "RollerShutter", "id": 6, "name": "storeaina"}, {"type": "OnOffSwitch", "id": 8, "name": "interrupteurtouran"}, {"type": "OnOffSwitch", "id": 12, "name": "interrupteurpolo"}], "result": "ok"}
[2020-03-15 23:16:02][ERROR] : Erreur sur la fonction cron du plugin : Using $this when not in object context

Le http error he vais regarder c’est trois fois rien.
Les stores et interrupteurs, il te les a créer quand même oui ? Ils marchent les onoff ?
Et ta porte de garage apparaît pas dans la liste c’est bien ça ? On voit que des rollershutter et onoffswitch. Alors que pourtant le type garage door existe dans la lib pyvlx

Pour le nodejs, je l’avais testé, mais il apportait rien pour moi et moins transparent d’utilisant. La on va voir car si c’est pour un type qui marche mal alors qu’il est listé, ça vaut le coup de le remonter a pyvlx.

Faut que je mette un boutons forçant la mise a jour de pyvlx justement car il y a des nouveautés

hello

  • Oui il a crée les stores et interrupteurs après scan
  • Les stores marchent nickel. Les interrupteurs ne marchent pas (voir logs plus bas)
  • Les portes de garage n’apparaissent pas dans la liste.

Voici le log quand je fais « test » dans les commandes d’un interrupteur:

[2020-03-16 21:19:35][DEBUG] : Action /on/12
[2020-03-16 21:19:35][DEBUG] : Send http://localhost:9123/on/12
[2020-03-16 21:19:35][DEBUG] : Result {"reason": "node or position not provided", "result": "fail"}
[2020-03-16 21:19:48][DEBUG] : Send http://localhost:9123/status/12
[2020-03-16 21:19:48][DEBUG] : Result {"device": 12, "status": false, "result": "ok"}
[2020-03-16 21:19:48][DEBUG] : Update interrupteur polo at %
[2020-03-16 21:19:52][DEBUG] : Action /off/12
[2020-03-16 21:19:52][DEBUG] : Send http://localhost:9123/off/12
[2020-03-16 21:19:52][DEBUG] : Result {"reason": "node or position not provided", "result": "fail"}
[2020-03-16 21:19:55][DEBUG] : Action /on/12
[2020-03-16 21:19:55][DEBUG] : Send http://localhost:9123/on/12
[2020-03-16 21:19:55][DEBUG] : Result {"reason": "node or position not provided", "result": "fail"}

Bonjour @otokarl, est-ce que tu as réussi à faire fonctionner le moteur DEXXO SMART io depuis la Jeedom finalement? Je viens de me faire installer une porte de garage avec ce moteur et j’hésite entre l’achat d’une KLF 200 ou une Tahoma pour la domotiser avec ma Jeedom… Merci!

Bonjour @flymac
Ca fait un moment que j’ai pas touché à mon install et que je me suis pas connecté ici.
Non, je n’ai pas reussi à faire fonctionner avec le plugin KLF200. Le problème vient en fait
de la librairie « pyvlx » utilisé par le plugin de jeedom.
Tu as pris quoi finalement comme box?

Bonjour @lunarok
J 'ai fait une modif dans pyvlx qui a venait d’etre integré dans la dernière release 0.2.19.
J’ai installé cette version sur ma machine jeedom et ton plugin reconnait bien mes portes de garage maintenant.
Tu peux mettre cette version pour l’install du plugin ?
Merci

Le plugin peut déjà le faire, il suffit de cliquer sur installer les dépendances il prend la dernière version (et update si besoin)

Hello @lunarok
J’ai noté 2 choses pour integration du dexxo dans le plugin:

  • l’état de la lumière n’est pas remonté quand on fait refresh. En regardant dans le code, fichier klf200.class.php, méthode refresh, en changeant $this->newStatus($result[‹ intensity ›]); par $this->newIntensity($result[‹ intensity ›]); ça a reglé le problème.

  • ce serait mieux peut être de mettre en ‹ binary › la commande info « Statut binaire » dans light.json, et « Statut fermé Binaire » dans opening.json

Sinon en fait, on ne peut pas définir l’ouverture en pourcentage de la porte garage (avec pyvlx, j’ai essayé aussi avec d’autres libs).

Merci, c’est corriger sur le refresh et aussi refreshAll, pareil pour les types
Dispo demain en beta market et dans la prochaine stable

Cool, Merci !!!

Hello, désolé je n’ai pas vu ta notification! Pas de box finalement, j’ai pris un Fibaro et un câble pour me brancher sur le contact sec, marche nickel :slight_smile: