Jump to content
View in the app

A better way to browse. Learn more.

Tinkerunity

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

rwblinn

Members
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von rwblinn

  1. Think it is 5 or 6 years old. It was based on the Tinkerforge documentation at that time. Script had been working ok until recently.
  2. Thanks for the guidance = working on the RPi 5 Bookworm.
  3. Hi, updated both brickv & brickd on a RPi5 running Bookworm. The brickd start error: brickd: error while loading shared libraries: libudev.so.1: ELF load command address/offset not page-aligned Updated using: echo ------------------ echo Brick Daemon echo ------------------ sudo apt-get -y install libusb-1.0-0 libudev0 pm-utils sudo wget https://download.tinkerforge.com/tools/brickd/linux/brickd_linux_latest_armhf.deb sudo dpkg -i brickd_linux_latest_armhf.deb echo Done echo ------------------ echo Brick Viewer echo ------------------ sudo apt-get install -y python3 python3-pyqt5 python3-pyqt5.qtopengl python3-serial python3-tz python3-tzlocal sudo wget https://download.tinkerforge.com/tools/brickv/linux/brickv_linux_latest.deb sudo dpkg -i brickv_linux_latest.deb echo Done
  4. OK. Thanks for clarity. Tested in a nutshell ESP32 Brick reinstalled the firmware (2.1.0) and connected RGB LED V2 Bricklet. Set up a mosquitto broker and the Tinkerforge MQTT bindings on a Raspberry Pi 5 (Bookworm). RPi: Started the mosquitto broker with mosquitto -v -c mosquitto.conf RPi: Started the Tinkerforge MQTT bindings with: sudo tinkerforge_mqtt --ipcon-host ESP32-BRICK-IP --broker-host RPI-BROKER-IP PC: Tested successfully setting the RGB-LED-V2-Bricklet color to red, with a command like: mosquitto_pub.exe -h RPI-BROKER-IP -t tinkerforge/request/rgb_led_v2_bricklet/UID/set_rgb_value -m "{\"r\":100,\"g\":0,\"b\":0}" Next want to test Home Assistant using the MQTT platform to set the color of the RGB LED V2 Bricklet connected to the ESP32 Brick.
  5. Hi, I have created new ESP32 Brick firmware using VS Code and PlatformIO. Added to esp32.ini (snippet): custom_backend_modules = ESP32 Brick Mqtt Mqtt Auto Discovery custom_frontend_modules = Device Name Mqtt custom_frontend_components = Proxy Network Group $ Open Mqtt custom_frontend_status_components = Device Name Mqtt and set default_envs = esp32 Successfully build and uploaded to the ESP32 Brick > firmware 2.1.0+68fe6da7 (created 10/26/2025 07:51:19 PM) In the ESP32 brick web interface enabled MQTT, set broker IP and removed topic prefix. After reboot, the log shows: 7,151 | mqtt | Connected to broker at mqtt://ip-address:1883. Tested to set the color of the rgbled, but nothing happens: mosquitto_pub -I esp32-Zji -t tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value -m '{"r":0,"g":127,"b":130}' Opened 2 terminals: 1. Running moqsquitto broker. Log entry: 1761511274: New client connected from 127.0.0.1:50612 as esp32-Zji41609 (p2, c1, k60). 1761511274: Client esp32-Zji41609 disconnected. 2. Running mosquitto_sub -v -t 'tinkerforge/#'. Log entries: tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value {"r":0, "g":127, "b":120} tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value {"r":0,"g":127,"b":130} and some MQTT related: tinkerforge/mqtt/config_modified {"modified":3} tinkerforge/mqtt/config {"enable_mqtt":true,"broker_host":"NNN.NNN.NNN.NNN","broker_port":1883,"broker_username":"","broker_password":"","global_topic_prefix":"","client_name":"esp32-Zji","interval":1,"protocol":0,"cert_id":-1,"client_cert_id":-1,"client_key_id":-1,"path":"","read_only":false} tinkerforge/mqtt/state {"connection_state":2,"connection_start":7780,"connection_end":0,"last_error":0} tinkerforge/mqtt/auto_discovery_config_modified {"modified":3} tinkerforge/mqtt/auto_discovery_config {"auto_discovery_mode":0,"auto_discovery_prefix":"homeassistant"} Have also tried several topic prefix, but no state change. Any idea what is missing?
  6. Nachtrag Node-RED openhab2 nodes. Erfolgreich getestet barometer & lcd20x4 bricklet. Keine openhab2 rules oder script dateien verwendet. Dashboard mit addon nodes node-red-dashboard. lcdbaro.flow
  7. OK. Rule funktioniert. Getestet: Alternativ item update, ohne action, aber mittels sendCommand rule "System Start" when System started then // LCD backlight on // Switch TF_LCDBacklight "LCDBacklight" { channel="tinkerforge:brickletlcd20x4:rTS:BrickletLCD20x4Backlight" } TF_LCDBacklight.sendCommand("ON"); end // LCD 20x4 Display airpressure using sendCommand // Number TF_Barometer "Pressure [%.3f mBar]" { channel="tinkerforge:brickletbarometer:jXZ:BrickletBarometerAirPressure" } // String TF_LCD "LCD" { channel="tinkerforge:brickletlcd20x4:rTS:BrickletLCD20x4Text"} // String TF_LCDClear "LCDClear" { channel="tinkerforge:brickletlcd20x4:rTS:BrickletLCD20x4ClearDisplay" } rule "LCD update airpressure sendcommand" when Item TF_Barometer received update then // Time HH:MM:SS val lastUpdate = new DateTimeType().format("%1$tH:%1$tM:%1$tS"); // Get airpressure val airPressure = (TF_Barometer.state) as DecimalType; // Update lcd // TF_LCDBacklight.sendCommand("ON"); - see rule System Start TF_LCDClear.sendCommand("Clear"); TF_LCD.sendCommand("0," + (20 - lastUpdate.length()).toString() + "," + lastUpdate); TF_LCD.sendCommand("1,0," + String::format("%1$.4f",airPressure.floatValue) + " hPa"); end
  8. Node-RED openhab nodes: wollte mal checken ob diese als alternative zu rules (DSL based on Xtend) verwendet werden können. Node-RED mit Tinkerforge MQTT funktioniert sehr gut. Rule: test Barometer & LCD20x4 /* openHAB 2 - Test & learn Tinkerforge Master Brick + Barometer & LCD20x4 Bricklets Notes: Barometer update interval is set using the PaperUi > Thing BaroBricklet > Channel Air Pressure Always check the log after changes: /var/log/openhab2/openhab.log or http://192.168.N.NNN:9001/ Define var (and not val) for variables that are reassigned: val -> value (a fixed value, not to be changed during runtime) var -> variable (can be changed during runtime, anytime) */ // LCD 20x4 Display airpressure rule "LCD update airpressure" when Item TF_Barometer received update then // Get action objects val lcdActions = getActions("tinkerforge", "tinkerforge:brickletlcd20x4:rTS"); val baroActions = getActions("tinkerforge", "tinkerforge:brickletbarometer:jXZ"); // Get airpressure var Number airPressure = baroActions.brickletBarometerGetAirPressure().get("airPressure"); airPressure = airPressure * 0.001; // Update LCD. The line and pos must be initialized. lcdActions.brickletLCD20x4ClearDisplay(); var line = 0; var pos = 0; // Time HH:MM:SS val lastUpdate = new DateTimeType().format("%1$tH:%1$tM:%1$tS"); line = 0; pos = 20 - lastUpdate.length(); lcdActions.brickletLCD20x4WriteLine(line as short, pos as short, lastUpdate); // Airpressure displayed with 2 digits line = 1; pos = 0; lcdActions.brickletLCD20x4WriteLine(line as short, pos as short, String::format("%1$.2f",airPressure) + " hPa"); end liefert INFO hinweise im openhab.log ==> /var/log/openhab2/openhab.log <== 2020-07-22 08:48:52.194 [INFO ] [el.core.internal.ModelRepositoryImpl] - Validation issues found in configuration model 'tf1.rules', using it anyway: The method brickletBarometerGetAirPressure(ThingActions) from the type BrickletBarometerActions refers to the missing type Object The method brickletLCD20x4ClearDisplay(ThingActions) from the type BrickletLCD20x4Actions refers to the missing type Object The method brickletLCD20x4WriteLine(ThingActions, short, short, String) from the type BrickletLCD20x4Actions refers to the missing type Object 2020-07-22 08:48:52.266 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'tf1.rules'
  9. Danke für die info. Denke der weg über die paperui ist gut, da die things auch über die paperui definiert wurden, wo auch die channels konfiguriert sind/können. Falls textuelle konfiguration für things, dann is die astro binding ein gutes beispiel wo auch parameter gesetzt werden. Nächste frage: Node-RED openhab2 nodes Können diese auch für die Tinkerforge openhab2 bindings verwendet werden? Habe Barometer Bricklet getestet=OK; LCD20x4 Bricklet=Nicht OK (liefert null) Welche syntax ist für die openhab2-out node payload zu verwenden? beispiel: LCD20x5 writeline.
  10. Newbie Frage: wie wird ein Channel Parameter for ein item definiert. Beispiel Air Pressure: Number TF_Barometer "Pressure [%.3f mBar]" { channel="tinkerforge:brickletbarometer:jXZ:BrickletBarometerAirPressure" } Parameter "Update Interval" wo definieren? Number TF_Barometer "Pressure [%.3f mBar]" { channel="tinkerforge:brickletbarometer:jXZ:BrickletBarometerAirPressure" ???} Air Pressure The measured air pressure
  11. Funktioniert = downloaded tinkerforge-2.1.28.jar (maven) , kopiert ins addon verzeichnis, brickd installiert und openhab restartet.
  12. Hallo, erhalte den gleichen fehler wie schon gemeldet: 2020-07-20 15:52:08.462 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.tinkerforge-2.5.6-SNAPSHOT.jar org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.tinkerforge [133] Unresolved requirement: Import-Package: org.openhab.core.automation.annotation; resolution:="optional" Unresolved requirement: Import-Package: com.tinkerforge; version="[2.1.0,3.0.0)" Im Verzeichnis \usr\share\openhab2\addons befinden sich die beiden jar Dateien: ls /usr/share/openhab2/addons org.openhab.binding.tinkerforge-2.5.6-SNAPSHOT.jar tinkerforge-2.1.26.jar [16:05:57] openhabian@openhab:~$ Raspberry Pi mit openhab2 version stable 2.5.6-2
  13. Danke für die Hinweise. Habe erst mal gestoppt (bevor das HAT oder Bricklets zerstört werden!) und werde auf das ESP32 Board warten. Vielen nochmal für den Support.
  14. ACHTUNG: Tests mit Arduino UNO & MEGA gestoppt, da ohne Pegelwandler 5V -> 3.3V ausgeführt = Gefahr Bricklet Zerstörung. Siehe Post #1: Arduinos mit AVR-Mikrocontroller (z.b. der Arduino Uno und Mega) haben einen Logikpegel von 5V und brauchen deshalb einen Pegelwandler zwischen dem Arduino und dem Bricklet. Bricklets haben einen Logikpegel von 3,3V. Update: Habe das HAT Zero erhalten und gestartet mit einem Arduino MEGA und LED Blink Beispiel. Frage vorweg Wie müßen die CS Ports im ino Sketch deklariert werden. Lt Doku gibt es 5 CS pins aber 4 Ports A-D? Wiring: Chip Select Pins HAT (=MEGA): 13 (=53), 16(=49), 18(=47), 15(=45), 22 (=43) 1 Bricklet IO4 an Port A Deklaration ino Sketch: TF_Port ports[1] = { { .chip_select_pin=53, .port_name='A' }}; LED Blink Beispiel funktioniert. Hinweis: nach Upload, Power HAT Zero wegnehmen und wieder anschließen sonst passiert nichts oder Fehler -10 erscheint nach der HAT Init. 2 Bricklets IO4 (Port A) und IO16 (Ports B) Deklaration ino Sketch: TF_Port ports[2] = { { .chip_select_pin=53, .port_name='A' }, { .chip_select_pin=49, .port_name='B' }}; Fehlermeldung -10 nach der HAT Init. Denke: Das Wiring x-mal überprüft, ist doch ein wenig unübersichtlich = vieleicht besser auf das neue Tinkerforge ESP32 Board warten.
  15. Danke für die ausführliche Infos. Werde es (erstmal) mit einem HAT Zero Brick versuchen …
  16. Danke - Post #2 mit Source angepasst. Nächster Test: Multiple Bricklets an einem Arduino MEGA & NodeMCU. Fragen dazu (bin kein Elektroniker): Welchen "tri-state buffer chip" wird empfohlen (muß ich bestellen, zB 74HC125)? Erbitte Wiring Beispiel(e) für 2-3 Bricklets? Können an einem Breakout (v1) mehrere Bricklets angeschlossen werden? Wie werden die Ports für die einzelnen Bricklets deklariert? Macht es Sinn bei der Port deklaration auch die Bricklet UID zu definieren?
  17. Funktioniert. Klasse! Danke. Logik angepasst = nur jeweils einmal drücken um LED ON oder OFF zu setzen. Im Anhang die letzte Version. PS: Im Anhang noch ein ino Beispiel wo keine externe Deklarationen verwendet werden = "alles in einem" - wollte mal checken ob direkt aus der ino, Tinkerforge Funktionen aufgerufen werden können. io4ledserial.ino io4ledbtn.c
  18. Im Buttonbeispiel, die Loop geändert: void io4ledbtn_loop(TF_HalContext *hal) { tf_io4_v2_callback_tick(&io, 250); // tf_io4_v2_get_value(&io, io_ret_value); // Handle button pressed to set the led state on or off. // The values button_pressed and led_state are set in the button callback io4ledbtn_cb_input_value() if (button_pressed == true){ tf_hal_log_info("LED state set to %s", led_state ? "true" : "false"); tf_io4_v2_set_selected_value(&io, 0, led_state); } } Die Bedingung wird ausgeführt, aber nicht die Function tf_io4_v2_set_selected_value(). Habe verschiedene timeouts probiert. Push-button pressed channel 1. Led state true LED state set to true Übrigens: der Test io4led erfolgreich auf folgende Microcontroller: Arduino UNO, Arduino MEGA, ESP-WROOM-32.
  19. Danke für die weiteren Infos. Fragen dazu: Die 5V werden dann anscheinend nicht benötigt da die Bricklets mit 3V3 auskommen? Habe die 5V Leitung zum Breakout weggelassen (nur 3V3) und die Tests funktionieren, sowohl bei einem Arduino UNO und ESP-Wroom-32. Das mit dem Callbacks habe ich nicht verstanden. Erbitte Beispiel, wo ein Input Signal verarbeitet wird. In meinem Button Beispiel, setzt der Callback nur einen Flag der in der Loop verarbeitet wird.
  20. Danke für die Bindings = sehr gut. ACHTUNG: Tests mit Arduino UNO & MEGA gestoppt, da ohne Pegelwandler 5V -> 3.3V ausgeführt = Gefahr Bricklet Zerstörung. Siehe Post #1: Arduinos mit AVR-Mikrocontroller (z.b. der Arduino Uno und Mega) haben einen Logikpegel von 5V und brauchen deshalb einen Pegelwandler zwischen dem Arduino und dem Bricklet. Bricklets haben einen Logikpegel von 3,3V. Aufbau Arduino UNO <-> Tinkerforge Breakout Bricklet V1 <-> Tinkerforge IO4 Bricklet V2 <-> LED & Push-Button. Tests LED 10x blinken (io4led) Push-button LED an | aus (io4ledbtn) Im Anhang: Beschreibung (PDF, En), Source Code. tf-microcontroller-example.zip
  21. Confirmed working ok. Tested various RPi. Thanks a lot for your help. Appreciated.
  22. Tested = same error - running Python 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0] on linux2 on a Raspberry Pi 3B+ (Buster) 2020-05-11 12:30:39,165 <DEBUG> MQTT bindings: Calling function write_line for device rTS of type lcd_20x4_bricklet. 2020-05-11 12:30:39,167 <ERROR> MQTT bindings: argument for 's' must be a string (call of write_line of lcd_20x4_bricklet rTS) 2020-05-11 12:30:39,169 <DEBUG> MQTT bindings: Calling function write_line for device rTS of type lcd_20x4_bricklet succedded. 2020-05-11 12:30:39,170 <DEBUG> MQTT bindings: Publishing response to tinkerforge/response/lcd_20x4_bricklet/rTS/write_line 2020-05-11 12:30:39,172 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m5), 'tinkerforge/response/lcd_20x4_bricklet/rTS/write_line', ... (2 bytes)
  23. Thanks for the update. 1/ Confirmed get_identity working. tinkerforge/request/lcd_20x4_bricklet/rTS/get_identity (null) tinkerforge/response/lcd_20x4_bricklet/rTS/get_identity {"connected_uid": "5VGrDJ", "uid": "rTS", "device_identifier": "lcd_20x4_bricklet", "hardware_version": [1, 2, 0], "position": "b", "firmware_version": [2, 0, 6], "_display_name": "LCD 20x4 Bricklet"} 2/ Write_line not working. Does this happen every time you attempt to call write_line? YES, tried on two different RPi's running latest bindings or only in specific cases? NO Did you call any other functions before calling write_line? Using bash script (tested on the two systems): cat lcd2004_write_line.sh #!/bin/bash mosquitto_pub -t tinkerforge/request/lcd_20x4_bricklet/rTS/backlight_on -m '' mosquitto_pub -t tinkerforge/request/lcd_20x4_bricklet/rTS/clear_display -m '' mosquitto_pub -t tinkerforge/request/lcd_20x4_bricklet/rTS/write_line -m '{"line": 0, "position": 0, "text":"Hello World"}'
  24. Environment: Raspberry Pi (Raspian Buster), Python 2.7.16, MQTT Bindings 2.0.9 Issue: Publishing sample text is not displayed: mosquitto_pub -t tinkerforge/request/lcd_20x4_bricklet/rTS/write_line -m '{"line": 0, "position": 0, "text":"TEST"}' Ran Tinkerforge_mqtt with debug flag - shows an error 2020-05-08 18:42:57,560 <DEBUG> MQTT bindings: Calling function write_line for device rTS of type lcd_20x4_bricklet. 2020-05-08 18:42:57,562 <ERROR> MQTT bindings: argument for 's' must be a string (call of write_line of lcd_20x4_bricklet rTS) 2020-05-08 18:42:57,563 <DEBUG> MQTT bindings: Calling function write_line for device rTS of type lcd_20x4_bricklet succedded. 2020-05-08 18:42:57,564 <DEBUG> MQTT bindings: Publishing response to tinkerforge/response/lcd_20x4_bricklet/rTS/write_line 2020-05-08 18:42:57,569 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m8), 'tinkerforge/response/lcd_20x4_bricklet/rTS/write_line', ... (2 bytes) 2020-05-08 18:42:57,572 <DEBUG> MQTT bindings: Tested the same with a) brick viewer: text is displayed, b) Python bindings = text is displayed. Also tried other lcd20x4 mqtt functions: backlight_on & off = OK get_identity = error 2020-05-08 18:55:50,901 <DEBUG> MQTT bindings: Calling function get_identity for device rTS of type lcd_20x4_bricklet. 2020-05-08 18:55:50,909 <DEBUG> MQTT bindings: Calling function get_identity for device rTS of type lcd_20x4_bricklet succedded. Traceback (most recent call last): File "/usr/local/bin/tinkerforge_mqtt", line 7366, in on_message response = self.dispatch_call(request_type, device, uid, function, payload, response_path) File "/usr/local/bin/tinkerforge_mqtt", line 7717, in dispatch_call return self.device_call(device, device_class_name, uid, fnName, fnInfo, json_args) File "/usr/local/bin/tinkerforge_mqtt", line 7823, in device_call d["_display_name"] = display_names[dev_id] NameError: global name 'display_names' is not defined
  25. [SOLVED] Rebooted the Raspberry Pi and the MQTT Bindings are working ok. Tested from the CLI and also using Node-RED flow. Thanks for help anyhow.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.