Oberon Geschrieben March 8, 2023 at 15:02 Share Geschrieben March 8, 2023 at 15:02 (bearbeitet) Hi there, complete electronics and coding newbie here. Thanks for your patience. I'm using an ESP32 brick controlling a Dual Relay bricklet. I can connect, auth and send set_monoflop and set_value commands and get the relay to trigger with my python script. But when I send idr.get_value() or whatever variant of that (put the function in a variable and print it, etc..), I get this : Traceback (most recent call last): File "C:\Users\U\PycharmProjects\Tinkerforge_test\Pump_control.py", line 70, in <module> idr.get_value() File "C:\Users\U\PycharmProjects\Tinkerforge_test\venv\lib\site-packages\tinkerforge\bricklet_industrial_dual_relay.py", line 123, in get_value self.check_validity() File "C:\Users\U\PycharmProjects\Tinkerforge_test\venv\lib\site-packages\tinkerforge\ip_connection.py", line 506, in check_validity device_identifier = self.ipcon.send_request(self, 255, (), '', 33, '8s 8s c 3B 3B H')[5] # <device>.get_identity File "C:\Users\U\PycharmProjects\Tinkerforge_test\venv\lib\site-packages\tinkerforge\ip_connection.py", line 1314, in send_request raise Error(Error.TIMEOUT, msg, suppress_context=True) tinkerforge.ip_connection.Error: Did not receive response for function 255 in time (-1) Any pointers on what I'm doing wrong to get the relay state ? Thanks in advance bearbeitet March 9, 2023 at 10:25 von Oberon Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
photron Geschrieben March 8, 2023 at 16:48 Share Geschrieben March 8, 2023 at 16:48 The Bricklet doesn't respond to a request in time. The first thing to check in that case is that you use the correct UID to address the Bricklet. But because other functions work, I think you are using the correct UID already. Do you have a load connected to the relay? If yes, does the problem go away when you disconnect the load from the relay? Can you show your complete Pump_control.py? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Oberon Geschrieben March 9, 2023 at 06:19 Autor Share Geschrieben March 9, 2023 at 06:19 (bearbeitet) Thanks for the answer, I believe the UID is the correct one as it's the one also visible in bricky. EDIT forgot to add : I have no load connected to the relay, didn't get to that point yet. Attached you'll find the .py file, I didn't edit anything except the auth secret. Basically only the lines 57-70 are from me, the rest has been put together from the enumeration/auth/IDR example file. When commenting out lines 57-58 the rest works (tested with lower time values) Pump_control_tinkerunity.py bearbeitet March 9, 2023 at 06:48 von Oberon Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Oberon Geschrieben March 9, 2023 at 06:53 Autor Share Geschrieben March 9, 2023 at 06:53 I've just tested the temp/humidity sensor, including having only that bricklet connected. Modified the script based on the simple code example and it gives the same error at the humidity = h.get_humidity() line also mentioning a timeout on function 255. That sensor and same ESP board works using brickv, same for the relays and other bricklets I have. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
photron Geschrieben March 9, 2023 at 09:06 Share Geschrieben March 9, 2023 at 09:06 The way you structured the code you call idr.get_value() a little bit to early. You call idr.get_value() directly after the ipcon.connect() call. At that moment the authentication probably has not completed yet and the ESP32 Brick rejects all requests. I modifed your example to wait for a few milliseconds before the idr.get_value() call for the authentication to complete. Please test the modification, it should fix the problem. Pump_control_tinkerunity_v2.py 1 Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Oberon Geschrieben March 9, 2023 at 10:25 Autor Share Geschrieben March 9, 2023 at 10:25 Splendid, problem solved ! I think I'll make that line in the cb_connected and the check before starting the rest of the code a part of my template ;) Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.