rwblinn
Members-
Gesamte Inhalte
121 -
Benutzer seit
-
Letzter Besuch
Letzte Besucher des Profils
Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.
rwblinn's Achievements
-
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
-
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
-
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'
-
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.
-
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
-
Funktioniert = downloaded tinkerforge-2.1.28.jar (maven) , kopiert ins addon verzeichnis, brickd installiert und openhab restartet.
-
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
-
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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. -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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. -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
Danke für die ausführliche Infos. Werde es (erstmal) mit einem HAT Zero Brick versuchen … -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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? -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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 -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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. -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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. -
Betaversion der C/C++ Bindings für Mikrocontroller
Thema antwortete auf rwblinns rtrbt in: Allgemeine Diskussionen
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