dk211 Posted April 5, 2018 at 06:48 AM Share Posted April 5, 2018 at 06:48 AM Hallo zusammen, ich habe das Code Beispiel von Tinkerforge in Javascript verwendet um meine drei Temperatursensoren über das Outdoor Weather Bricklet auszulesen. Das funktioniert auch wunderbar, in einer Textarea erhalte ich die Werte aller drei Sensoren. Ich möchte nun allerdings jeden Sensor in einer eigenen Textarea ausgeben, um mir mein eigenes Dashboard zu bauen. Mein Ziel ist ein Dashboard, auf dem ich auf einem Blick je Zimmer die Temperatur und Luftfeuchtigkeit sehe. Ich bekomme den Javascript Code allerdings nicht so hin, dass er die Sensor Daten einzeln ausliest. Mit einer if-Schleife habe ich es leider nicht geschafft. In meinem *.html habe ich folgende Funktion mit if-Bedingung ausgestattet: // Register sensor data callback ow.on(Tinkerforge.BrickletOutdoorWeather.CALLBACK_SENSOR_DATA, // Callback function for sensor data callback function (identifier, temperature, humidity) { // Ausgabe Werte in textArea if (identifier = 119) { textArea.value += 'Identifier (Sensor): ' + identifier + '\n'; textArea.value += 'Temperature (Sensor): ' + temperature/10.0 + ' °C\n'; textArea.value += 'Humidity (Sensor): ' + humidity + ' %RH\n'; textArea.value += '\n'; textArea.scrollTop = textArea.scrollHeight; } } ); // Register sensor data callback ow.on(Tinkerforge.BrickletOutdoorWeather.CALLBACK_SENSOR_DATA, // Callback function for sensor data callback function (identifier, temperature, humidity) { // Ausgabe Werte in textArea if (identifier = 141) { // Ausgabe Werte in textArea2 textArea2.value += 'Identifier (Sensor): ' + identifier + '\n'; textArea2.value += 'Temperature (Sensor): ' + temperature/10.0 + ' °C\n'; textArea2.value += 'Humidity (Sensor): ' + humidity + ' %RH\n'; textArea2.value += '\n'; textArea2.scrollTop = textArea.scrollHeight; } } ); Führe ich den Code aus, funktioniert die Funktion für meinen Sensor 141 (siehe Screenshot), allerdings für den Sensor 119 in der oberen Textarea passiert nichts. Hat jemand so etwas schon einmal programmiert oder einen Tipp für mich? Danke und viele Grüße, Daniel Quote Link to comment Share on other sites More sharing options...
borg Posted April 5, 2018 at 07:42 AM Share Posted April 5, 2018 at 07:42 AM Du musst beide Ifs in einen Callback packen. Dein zweiter ".on"-Aufruf überschreibt den ersten. Quote Link to comment Share on other sites More sharing options...
dk211 Posted April 7, 2018 at 05:58 AM Author Share Posted April 7, 2018 at 05:58 AM Hi borg, klasse - Danke Dir! Wenn ich (inzwischen drei) Sensoren als If in eine Funktion packe liest er die zwar einzeln je Text.Area aus, aber eben bei allen mit den selben Werten. Klingt logisch, da er eine Variable für identifier, etc. hat. Wo habe ich den gerade meinen Denkfehler? // Register sensor data callback ow.on(Tinkerforge.BrickletOutdoorWeather.CALLBACK_SENSOR_DATA, // Callback function for sensor data callback function (identifier, temperature, humidity) { // Ausgabe Werte in textArea if (identifier = 119) { textArea.value += 'Identifier (Sensor): ' + identifier + '\n'; textArea.value += 'Temperature (Sensor): ' + temperature/10.0 + ' °C\n'; textArea.value += 'Humidity (Sensor): ' + humidity + ' %RH\n'; textArea.value += '\n'; textArea.scrollTop = textArea.scrollHeight; } // } //); // Register sensor data callback // ow.on(Tinkerforge.BrickletOutdoorWeather.CALLBACK_SENSOR_DATA, // Callback function for sensor data callback //function (identifier, temperature, humidity) { // Ausgabe Werte in textArea if (identifier = 250) { // Ausgabe Werte in textArea2 textArea2.value += 'Identifier (Sensor): ' + identifier + '\n'; textArea2.value += 'Temperature (Sensor): ' + temperature/10.0 + ' °C\n'; textArea2.value += 'Humidity (Sensor): ' + humidity + ' %RH\n'; textArea2.value += '\n'; textArea2.scrollTop = textArea.scrollHeight; } // Ausgabe Werte in textArea if (identifier = 141) { // Ausgabe Werte in textArea2 textArea3.value += 'Identifier (Sensor): ' + identifier + '\n'; textArea3.value += 'Temperature (Sensor): ' + temperature/10.0 + ' °C\n'; textArea3.value += 'Humidity (Sensor): ' + humidity + ' %RH\n'; textArea3.value += '\n'; textArea3.scrollTop = textArea.scrollHeight; } } ); Danke Euch!! Viele Grüße, Daniel Quote Link to comment Share on other sites More sharing options...
borg Posted April 9, 2018 at 10:20 AM Share Posted April 9, 2018 at 10:20 AM Statt if (identifier = 119) { musst du if (identifier == 119) { verwenden. Quote Link to comment Share on other sites More sharing options...
dk211 Posted April 9, 2018 at 06:48 PM Author Share Posted April 9, 2018 at 06:48 PM klasse - vielen Dank! Quote Link to comment 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.