Jump to content

rwblinn

Members
  • Content Count

    102
  • Joined

  • Last visited

Community Reputation

0 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. [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.
  2. Please find the output of running the bindings with parameter --debug. Changed the period to 5000. 2020-01-24 10:10:29,786 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m582), 'b'tinnse/air_quality_bricklet/Jvj/get_all_values_callback_configuration'', ... (46 bytes) 2020-01-24 10:10:48,678 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m586), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes) 2020-01-24 10:10:53,637 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m587), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes) 2020-01-24 10:10:58,600 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m588), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes) 2020-01-24 10:11:03,561 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m589), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes) 2020-01-24 10:11:08,513 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m590), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes) 2020-01-24 10:11:13,478 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m591), 'b'tinkerforge/callback/air_quality_bricklet/Jvj/all_values'', ... (109 bytes)
  3. Hi, tried to setup an Air Quality Bricklet for MQTT Callback with a Raspberry Pi 4 running mosquito and the Tinkerforge MQTT Binding 2.0.6. The Brick Viewer shows all data; An MQTT request provides also the data (see below …/get_all_values request with response), but with MQTT callback no response. Question: what is wrong in below configuration? pi@4dev:~ $ mosquitto_pub -t tinkerforge/request/air_quality_bricklet/Jvj/set_all_values_callback_configuration -m '{"period": 100, "value_has_to_change":false}' pi@4dev:~ $ mosquitto_pub -t tinkerforge/register/air_quality_bricklet/Jvj/all_values -m '{"register": true}' OUTPUT pi@4dev:~ $ mosquitto_sub -v -t tinkerforge/# tinkerforge/request/air_quality_bricklet/Jvj/set_all_values_callback_configuration {"period":10,"value_has_to_change":false} tinkerforge/register/air_quality_bricklet/Jvj/all_values {"register":true} tinkerforge/request/air_quality_bricklet/Jvj/get_all_values {} tinkerforge/response/air_quality_bricklet/Jvj/get_all_values {"iaq_index": 26, "iaq_index_accuracy": "low", "temperature": 2100, "humidity": 5403, "air_pressure": 102912}
  4. OK = thanks for the update. Tested successfully: lcd.writeLine((short)0, (short)0, "Battery: " + "\u0008");
  5. Just a suggestion for a small change regarding writing a custom character with Java. Test Java Snippet // Custom Char battery assigned to index 0 (from max 7) short[] battery = new short[]{14,27,17,17,17,17,17,31}; lcd.setCustomCharacter((short)0, battery); // Display the custom char with some text lcd.writeLine((short)0, (short)0, "Battery: " + (char)0x08); Suggestion Java documentation: For section void BrickletLCD20x4.setCustomCharacter(short index, short[] character) change the line: The characters can later be written with writeLine() by using the characters with the byte representation 8 ("x08") to 15 ("x0F"). to The characters can later be written with writeLine() by using the characters with the byte representation 8 ( (char)0x08 ) to 15 ( (char)0x0F ).
  6. Got it - overlooked the documentation "A value of 0 turns the callback off." = got mis leaded by the default value 0 (period – Type: int, Unit: 1 ms, Range: [0 to 232 - 1], Default: 0). After changing, its working fine. Thanks for the swift help.
  7. Hi, using Node-RED - trying to MQTT listen to input state changes of an IO-4 v2 bricklet having a push-button connected to channel 1 configured as input pull-up. Issue: When pushing the button, no MQTT message is received - see 2). Tested first in the Brick Viewer 2.4.11 and the value changes for channel from low to high when pressing the push-button. Node-RED Nodes Configuration 1) mqtt in with topic tinkerforge/#. Messages are received (see below test channel 0 as output) Tested OK (MQTT message received) the IO-4 state change of channel 0 (output) - led connected - using in a function node with msg.payload input true or false //Bricklet: IO-4 - Example to set pin 0 high | low var brickletUID = "G4d"; var topicPrefix = "tinkerforge/request/io4_v2_bricklet/"; var topicSuffix = "/set_configuration"; msg.topic = topicPrefix+brickletUID+topicSuffix; msg.payload = {"channel": 0, "direction": "out", "value": msg.payload}; node.status({text:"State:"+msg.payload.value}); return msg; 2) Channel 1 as Input with a push-button connected. Configured a function node as follows - no MQTT message received when pushing the button //IO-4 - example set callback configuration var brickletUID = "G4d"; var topicPrefixRequest = "tinkerforge/request/io4_v2_bricklet/"; var topicPrefixRegister = "tinkerforge/register/io4_v2_bricklet/"; msg.topic = topicPrefixRequest+brickletUID+"/set_configuration"; msg.payload = {"channel": 1, "direction": "i", "value":true}; node.send(msg); msg.topic = topicPrefixRequest+brickletUID+"/set_all_input_value_callback_configuration"; msg.payload = {"period": 0, "value_has_to_change": true}; node.send(msg); msg.topic = topicPrefixRegister+brickletUID+"/all_input_value"; msg.payload = {"register":true}; node.send(msg); msg.topic = topicPrefixRequest+brickletUID+"/get_configuration"; msg.payload = {"channel":1}; node.send(msg); What is wrong in the configuration?
  8. For those interested, based on previous learning's, created an Indoor Air Quality Node-RED Dashboard using MQTT. Please find on GitHub.
  9. That was a great hint. The log showed no topic, only payload, means error in node-red creating topic. The log: first line using terminal, second via node-red. tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value {"r":255,"g":0,"b":0} {"r":255,"g":0,"b":0} Changed the node-red function node creating topic with payload //Example to set a green color = RGB (0, 255, 0) var r = 0; var g = 255; var b = 0; //Mosquitto Command: //mosquitto_pub -t tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value -m '{"r":0, "g":255, "b":0}' //Translated to JavaScript Message with Topic and Payload msg.topic = "tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value"; msg.payload = {"r":r,"g":g,"b":b}; return msg; resulting in log: tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value {"r":0,"g":255,"b":0} That was good learning = again thanks for help.
  10. Yes, noted the difference in string and json from mqtt out. To note is that this node-red example setup has been used without issues using mqtt proxy v1.0. Tried to a JSON node, but again no change. Tried a string, i.e. "R",... but also no change. Output of mosquitto_sub -t tinkerforge/# {"r":0, "g":0, "b":123} Debug pi@4dev:~ $ tinkerforge_mqtt --debug 2019-09-06 14:51:22,144 <DEBUG> MQTT bindings: Configuring connection to MQTT broker at localhost:1883 2019-09-06 14:51:22,145 <DEBUG> MQTT bindings: Connected to MQTT broker at localhost:1883 2019-09-06 14:51:22,147 <DEBUG> paho.mqtt.client: Sending CONNECT (u0, p0, wr0, wq0, wf1, c1, k60) client_id= 2019-09-06 14:51:22,148 <DEBUG> paho.mqtt.client: Received CONNACK (0, 0) 2019-09-06 14:51:22,148 <DEBUG> MQTT bindings: Connected to mqtt broker. 2019-09-06 14:51:22,148 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m1) [('tinkerforge/request/#', 0)] 2019-09-06 14:51:22,149 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m2) [('tinkerforge/register/#', 0)] 2019-09-06 14:51:22,149 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m3), 'tinkerforge/callback/bindings/restart', ... (4 bytes) 2019-09-06 14:51:22,149 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m4) [('tinkerforge/callback/bindings/restart', 0)] 2019-09-06 14:51:22,150 <DEBUG> MQTT bindings: Connecting to brickd at localhost:4223 2019-09-06 14:51:22,152 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 14:51:22,153 <DEBUG> MQTT bindings: Connected to Brick Daemon: Connection established after request from user. 2019-09-06 14:51:22,153 <DEBUG> MQTT bindings: Connected to brickd at localhost:4223 2019-09-06 14:51:22,153 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 14:51:22,198 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 14:51:28,094 <DEBUG> paho.mqtt.client: Received PUBLISH (d0, q0, r0, m0), 'tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value', ... (23 bytes) 2019-09-06 14:51:28,094 <DEBUG> MQTT bindings: 2019-09-06 14:51:28,095 <DEBUG> MQTT bindings: Calling function set_rgb_value for device Jng of type rgb_led_v2_bricklet. 2019-09-06 14:51:28,096 <DEBUG> MQTT bindings: Calling function set_rgb_value for device Jng of type rgb_led_v2_bricklet succedded. Node-RED MQTT out node In the terminal no entry subscribing tinkerforge/# In debug pi@4dev:~ $ tinkerforge_mqtt --debug 2019-09-06 14:53:50,026 <DEBUG> MQTT bindings: Configuring connection to MQTT broker at localhost:1883 2019-09-06 14:53:50,026 <DEBUG> MQTT bindings: Connected to MQTT broker at localhost:1883 2019-09-06 14:53:50,028 <DEBUG> paho.mqtt.client: Sending CONNECT (u0, p0, wr0, wq0, wf1, c1, k60) client_id= 2019-09-06 14:53:50,029 <DEBUG> paho.mqtt.client: Received CONNACK (0, 0) 2019-09-06 14:53:50,029 <DEBUG> MQTT bindings: Connected to mqtt broker. 2019-09-06 14:53:50,030 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m1) [('tinkerforge/request/#', 0)] 2019-09-06 14:53:50,030 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m2) [('tinkerforge/register/#', 0)] 2019-09-06 14:53:50,030 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m3), 'tinkerforge/callback/bindings/restart', ... (4 bytes) 2019-09-06 14:53:50,031 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m4) [('tinkerforge/callback/bindings/restart', 0)] 2019-09-06 14:53:50,031 <DEBUG> MQTT bindings: Connecting to brickd at localhost:4223 2019-09-06 14:53:50,032 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 14:53:50,033 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 14:53:50,034 <DEBUG> MQTT bindings: Connected to Brick Daemon: Connection established after request from user. 2019-09-06 14:53:50,034 <DEBUG> MQTT bindings: Connected to brickd at localhost:4223 2019-09-06 14:53:50,078 <DEBUG> paho.mqtt.client: Received SUBACK
  11. Thanks for help. Using mosquito for this test is ok: Terminal 1 subscribing to all topics: mosquitto_sub -t tinkerforge/# Terminal 2 setting the color: mosquitto_pub -t tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value -m '{"r":0, "g":0, "b":123}' Terminal 1 shows: {"r":0, "g":0, "b":123} Next step is to obtain the same in Node-RED. Defined a simple flow. mqtt in node with topic tinkerforge/# and broker localhost port 1883. The mqtt in node outputs to a debug node. When changing the color via terminal, then the debug node shows: 06/09/2019, 14:15:01node: DEBUG TF ALL tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value : msg.payload : string[23] "{"r":0, "g":0, "b":123}" Now, to test changing the color via mqtt out node (and debug node) using a function node: //Example to set a green color = RGB (0, 255, 0) var r = 0; var g = 255; var b = 0; //Mosquitto Command: //mosquitto_pub -t tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value -m '{"r":255, "g":0, "b":0}' //Translated to JavaScript Message with Topic and Payload var msgmqtt = {topic: "tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value", payload:{"r":r,"g":g,"b":b} }; return msgmqtt; The debug node shows: 06/09/2019, 14:16:30node: 65847a3b.80f134 tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value : msg.payload : Object { r: 0, g: 255, b: 0 } BUT the color is not changed. Any hint what is missing in this setup?
  12. Hi, in the process od switching from MQTT proxy 1.0 to 2.0. Question: how to subscribe to topic changes? Started as follows: Raspberry Pi 4 with Master Brick and RGB LED 2.0 Bricklet Installed mosquitto Installed the MQTT bindings in /usr/local/bin. Started the script: tinkerforge_mqtt --debug Log: 2019-09-06 10:57:03,889 <DEBUG> MQTT bindings: Configuring connection to MQTT broker at localhost:1883 2019-09-06 10:57:03,890 <DEBUG> MQTT bindings: Connected to MQTT broker at localhost:1883 2019-09-06 10:57:03,892 <DEBUG> paho.mqtt.client: Sending CONNECT (u0, p0, wr0, wq0, wf1, c1, k60) client_id= 2019-09-06 10:57:03,893 <DEBUG> paho.mqtt.client: Received CONNACK (0, 0) 2019-09-06 10:57:03,893 <DEBUG> MQTT bindings: Connected to mqtt broker. 2019-09-06 10:57:03,894 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m1) [('tinkerforge/request/#', 0)] 2019-09-06 10:57:03,894 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m2) [('tinkerforge/register/#', 0)] 2019-09-06 10:57:03,895 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m3), 'tinkerforge/callback/bindings/restart', ... (4 bytes) 2019-09-06 10:57:03,895 <DEBUG> paho.mqtt.client: Sending SUBSCRIBE (d0, m4) [('tinkerforge/callback/bindings/restart', 0)] 2019-09-06 10:57:03,896 <DEBUG> MQTT bindings: Connecting to brickd at localhost:4223 2019-09-06 10:57:03,897 <DEBUG> paho.mqtt.client: Received SUBACK 2019-09-06 10:57:03,899 <DEBUG> paho.mqtt.client: Received SUBACK Published from terminal to set the color of a RGB LED V2 bricklet: mosquitto_pub -t tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value -m '{"r": 0, "g": 0, "b": 200}' Log: 2019-09-06 10:57:51,513 <DEBUG> paho.mqtt.client: Received PUBLISH (d0, q0, r0, m0), 'tinkerforge/request/rgb_led_v2_bricklet/Jng/set_rgb_value', ... (29 bytes) 2019-09-06 10:57:51,514 <DEBUG> MQTT bindings: 2019-09-06 10:57:51,515 <DEBUG> MQTT bindings: Calling function set_rgb_value for device Jng of type rgb_led_v2_bricklet. 2019-09-06 10:57:51,516 <ERROR> MQTT bindings: ubyte format requires 0 <= number <= 255 (call of set_rgb_value of rgb_led_v2_bricklet Jng) 2019-09-06 10:57:51,517 <DEBUG> MQTT bindings: Calling function set_rgb_value for device Jng of type rgb_led_v2_bricklet succedded. 2019-09-06 10:57:51,517 <DEBUG> MQTT bindings: Publishing response to tinkerforge/response/rgb_led_v2_bricklet/Jng/set_rgb_value 2019-09-06 10:57:51,518 <DEBUG> paho.mqtt.client: Sending PUBLISH (d0, q0, r0, m5), 'tinkerforge/response/rgb_led_v2_bricklet/Jng/set_rgb_value', ... (2 bytes) 2019-09-06 10:57:51,518 <DEBUG> MQTT bindings: 2019-09-06 10:58:51,597 <DEBUG> paho.mqtt.client: Sending PINGREQ 2019-09-06 10:58:51,598 <DEBUG> paho.mqtt.client: Received PINGRESP The color of the RGB LED 2.0 Bricklet changed. Note: on the brick viewer had to refresh tab RGB LED 2.0 to get the new values. Subscribing to get_rgb_value from terminal: mosquitto_sub -v -t tinkerforge/request/rgb_led_v2_bricklet/Jng/get_rgb_value Changed the color via Brick Viewer to RED (255,0,0). Nothing happens on the terminal. Changed the command to: mosquitto_sub -t tinkerforge/request/rgb_led_v2_bricklet/Jng/get_rgb_value Nothing happens on the terminal. Question: How to subscribe to value changes? Would like to use this in Node-RED.
  13. To share a plugin for the Domoticz Home Automation System. Measure, from an Indoor Air Quality Station (using TinkerForge Building Blocks), the Air Quality Index & Accuracy, Air Pressure, Humidity, Temperature, Illuminance and display the values in Domoticz Home Automation System. Read more https://github.com/rwbl/domoticz-plugin-indoor-air-quality-monitor. Notes For learning purposes on how to build a Domoticz Plugin interacting with Tinkerforge Building Blocks, created a simple Traffic Light plugin (https://github.com/rwbl/domoticz-plugin-traffic-light) Also described in my Domoticz Home Automation Workbook (https://github.com/rwbl/domoticz-homeautomation-workbook) [in progress].
  14. To share my first plugin for the Domoticz Home Automation System: Measure the soil moisture of a plant, display the value in Domoticz Home Automation System, in a TinkerForge Segment Display 4x7 and TinkerForge RGB LED indicator. Read more https://github.com/rwbl/domoticz-plugin-soil-moisture-monitor.
  15. Thanks for clarification. Might be a consideration for next version of the WiFi2 to be consistent with the other LEDs.
×
×
  • Create New...