Lagesensor integrieren

Ich hab es nun erstmal mit dem ESP komplett gemacht :slight_smile:
War ein nettes Wochenendprojekt, vielen Dank für deine Hilfe Karl.

Im Bild seht wir wie das ganze auf iPhone aussieht, die Drehung vom Bulli ist 4x so stark wie real, sonst würde man das irgendwie kaum sehen.

Ist ja Cool
wie haat du denn Den Bus darein bekommen??

Danke,

über eine template Node, das Bild zieht der dann über eine Webadresse, Leider habe ich es nicht hinbekommen das ich das Bild auf dem Pi speichern konnte :sweat_smile:

Ich habe mich mal um MPU6050 direkt über das Relaybord gekümmert.
Zuerst bin ich hiernach vorgegangen.

Danach habe ich Im Python Script die Adresse von 68 auf 69 geändert.
da Python Skript habe ich hier hin kopiert


und weil ich auch nicht so richtig weiß was ich da mache, habe ich mir das vom DS18B20 kopiert und geändert. Daten Kommen und sind auch plausiebel.

[{"id":"f052681e8e627523","type":"link in","z":"f1779a1a22539bee","name":"tempconfigread","links":["822fb891.c1f2b8"],"x":130,"y":799,"wires":[["c2d08a8c062b36c0"]]},{"id":"c2d08a8c062b36c0","type":"trigger","z":"f1779a1a22539bee","name":"","op1":"true","op2":"0","op1type":"bool","op2type":"str","duration":"-3","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":405,"y":799,"wires":[["a9ae25b17ce47a87","cfdcb33d97e3655c"]]},{"id":"cdaede4b11f35558","type":"function","z":"f1779a1a22539bee","name":"","func":"msg.reset = true; \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":465,"y":879,"wires":[["c2d08a8c062b36c0"]]},{"id":"a9ae25b17ce47a87","type":"delay","z":"f1779a1a22539bee","name":"","pauseType":"delay","timeout":"50","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":275,"y":879,"wires":[["cdaede4b11f35558"]]},{"id":"cfdcb33d97e3655c","type":"exec","z":"f1779a1a22539bee","command":"timeout 5 python3 ~/pekaway/mpu6050/mpu6050/mpu6050.py","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":610,"y":940,"wires":[["f08830d1d56c09cc","5f55159fb2fb46bc"],[],[]]},{"id":"72ea41edbbbba91b","type":"inject","z":"f1779a1a22539bee","name":"2s","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":true,"onceDelay":"5","topic":"MPU_6050","payload":"","payloadType":"str","x":255,"y":939,"wires":[["cfdcb33d97e3655c"]]},{"id":"f08830d1d56c09cc","type":"function","z":"f1779a1a22539bee","name":"MPU6050","func":"//msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n     \"Temperatur\": msg.payload[0],\n    \"a_x\": msg.payload[1],\n    \"a_y\": msg.payload[2],\n    \"a_z\": msg.payload[3],\n    \"g_x\": msg.payload[4],\n    \"g_y\": msg.payload[5],\n    \"g_z\": msg.payload[6],\n   \n    \n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":960,"y":920,"wires":[["9eb3a65e14800d8b","e849547aed6c020b","dc1482e13676e504","e748119ed232c04b","50a2ecb2f872783e","cb7bb48865d761c2","f5b1ec5ac87412b4"]]},{"id":"5f55159fb2fb46bc","type":"debug","z":"f1779a1a22539bee","name":"debug 260","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":890,"y":880,"wires":[]},{"id":"9eb3a65e14800d8b","type":"function","z":"f1779a1a22539bee","name":"Temperatur","func":"msg.payload = msg.payload.Temperatur;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1130,"y":840,"wires":[["e7da0f7722dc011e"]]},{"id":"e849547aed6c020b","type":"function","z":"f1779a1a22539bee","name":"a_x","func":"msg.payload = msg.payload.a_x;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1150,"y":880,"wires":[["c50aad2334b166c1","a99592249b539953"]]},{"id":"dc1482e13676e504","type":"function","z":"f1779a1a22539bee","name":"a_y","func":"msg.payload = msg.payload.a_y;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1150,"y":920,"wires":[["b0e7a7353eced4ab","2044747c0c22ad14"]]},{"id":"e748119ed232c04b","type":"function","z":"f1779a1a22539bee","name":"a_z","func":"msg.payload = msg.payload.a_z;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1150,"y":960,"wires":[["27d2f3fd20d75f6b"]]},{"id":"50a2ecb2f872783e","type":"function","z":"f1779a1a22539bee","name":"g_x","func":"msg.payload = msg.payload.g_x;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1610,"y":880,"wires":[["6f52a2a37b734d18"]]},{"id":"cb7bb48865d761c2","type":"function","z":"f1779a1a22539bee","name":"g_y","func":"msg.payload = msg.payload.g_y;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1610,"y":920,"wires":[["80c643beb31eb6f6"]]},{"id":"f5b1ec5ac87412b4","type":"function","z":"f1779a1a22539bee","name":"g_z","func":"msg.payload = msg.payload.g_z;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1610,"y":960,"wires":[["f81fe0505e93114f"]]},{"id":"e7da0f7722dc011e","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":1,"width":6,"height":4,"gtype":"gage","title":"Temp","label":"units","format":"{{value}}","min":"-15","max":"45","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1310,"y":840,"wires":[]},{"id":"c50aad2334b166c1","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":7,"width":6,"height":4,"gtype":"gage","title":"Achse_x","label":"units","format":"{{value}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1320,"y":880,"wires":[]},{"id":"a99592249b539953","type":"range","z":"f1779a1a22539bee","minin":"-10","maxin":"10","minout":"-90","maxout":"90","action":"scale","round":false,"property":"payload","name":"X_Achse","x":1460,"y":840,"wires":[["7a76a196fd3797fe"]]},{"id":"b0e7a7353eced4ab","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":9,"width":6,"height":4,"gtype":"gage","title":"Achse_y","label":"units","format":"{{value}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1320,"y":920,"wires":[]},{"id":"2044747c0c22ad14","type":"range","z":"f1779a1a22539bee","minin":"-10","maxin":"10","minout":"-90","maxout":"90","action":"scale","round":false,"property":"payload","name":"Y_Achse","x":1460,"y":1000,"wires":[["fcea39fe80ca68de"]]},{"id":"27d2f3fd20d75f6b","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":12,"width":6,"height":4,"gtype":"gage","title":"Achse_z","label":"units","format":"{{value}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1320,"y":960,"wires":[]},{"id":"6f52a2a37b734d18","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":18,"width":6,"height":4,"gtype":"gage","title":"gyr_x","label":"units","format":"{{value}}","min":0,"max":"255","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1750,"y":880,"wires":[]},{"id":"80c643beb31eb6f6","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":19,"width":6,"height":4,"gtype":"gage","title":"gyr_y","label":"units","format":"{{value}}","min":0,"max":"255","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1750,"y":920,"wires":[]},{"id":"f81fe0505e93114f","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":20,"width":6,"height":4,"gtype":"gage","title":"gyr_z","label":"units","format":"{{value}}","min":0,"max":"255","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1750,"y":960,"wires":[]},{"id":"7a76a196fd3797fe","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":8,"width":6,"height":4,"gtype":"gage","title":"Winkel_x_Achse","label":"Winkel Grad","format":"{{value}}","min":"-90","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1620,"y":840,"wires":[]},{"id":"fcea39fe80ca68de","type":"ui_gauge","z":"f1779a1a22539bee","name":"","group":"23d21b49a929acac","order":10,"width":6,"height":4,"gtype":"gage","title":"Winkel_y_Achse","label":"Winkel Grad","format":"{{value}}","min":"-90","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1630,"y":1000,"wires":[]},{"id":"23d21b49a929acac","type":"ui_group","name":"Wasserwaage","tab":"370a2d2d181e8c6f","order":1,"disp":false,"width":12,"collapse":false},{"id":"370a2d2d181e8c6f","type":"ui_tab","name":"Wasserwaage","icon":"dashboard","order":31,"disabled":false,"hidden":false}]


leider kommt bei jedem 5.-10. auslesen eine Error Meldung, und ich weiß noch nicht wie ich die wegbekomme.

21.1.2024, 17:45:18node: debug 260
MPU_6050 : msg : Object
object
topic: “MPU_6050”
_msgid: “076ed770826b83c4”
payload: “”
rc: object
code: 1
message: “Command failed: timeout 5 python3 ~/pekaway/mpu6050/mpu6050/mpu6050.py↵Traceback (most recent call last):↵ File “/home/pi/pekaway/mpu6050/mpu6050/mpu6050.py”, line 265, in ↵ print(mpu.get_temp())↵ File “/home/pi/pekaway/mpu6050/mpu6050/mpu6050.py”, line 100, in get_temp↵ raw_temp = self.read_i2c_word(self.TEMP_OUT0)↵ File “/home/pi/pekaway/mpu6050/mpu6050/mpu6050.py”, line 84, in read_i2c_word↵ low = self.bus.read_byte_data(self.address, register + 1)↵OSError: [Errno 121] Remote I/O error↵”

wenn ich dann noch son schönen Bus reinkriegen würde wäre das richtig toll

@Bock.auf.Raus
kannst du mal dokumentieren wie du das gemacht hast???
Danke
Gruß Arno

Anbei der Code fürs ESP8266
Das Code für den MPU ist der Standart Code der als exaple in der MPU6050_Light Libary dabei ist, den hab ich dann nur ums WiFi und MQTT erweitert.

#include "Wire.h"
#include <MPU6050_light.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

MPU6050 mpu(Wire);

long timer = 0;

const char* ssid = "xxxxx";
const char* password = "xxxxxx";

const char* mqtt_server = "xxxxxxx"; // Ersetzen mit der Adresse Ihres MQTT-Servers
const int mqtt_port = 1883; // Standard-MQTT-Port
const char* mqtt_user = "IHR_MQTT_USER"; // Optional, abhängig von Ihrer MQTT-Server-Konfiguration
const char* mqtt_password = "IHR_MQTT_PASSWORT"; // Optional, abhängig von Ihrer MQTT-Server-Konfiguration

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(9600);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  client.setServer(mqtt_server, mqtt_port);
  while (!client.connected()) {
    Serial.print("Verbindung zu MQTT...");
    if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
      Serial.println("verbunden");
    } else {
      Serial.print("Fehler, rc=");
      Serial.print(client.state());
      Serial.println(" erneuter Versuch in 5 Sekunden");
      delay(5000);
    }
  }

  Wire.begin(5, 4);
  byte status = mpu.begin();
  Serial.print(F("MPU6050 status: "));
  Serial.println(status);
  while (status != 0) { }
}

void loop() {
  if (!client.connected()) {
    // MQTT-Verbindung wiederherstellen, wenn sie unterbrochen wurde
    while (!client.connected()) {
      if (client.connect("ESP8266Client", mqtt_user, mqtt_password)) {
        Serial.println("MQTT erneut verbunden");
      } else {
        delay(5000);
      }
    }
  }
  client.loop();

  mpu.update();
  if (millis() - timer > 100) {
    char msgX[50];
    char msgY[50];

    // Erstelle Nachrichten für X- und Y-Winkel
    sprintf(msgX, "%f", mpu.getAngleX());
    sprintf(msgY, "%f", mpu.getAngleY());

    // Publiziere die Nachrichten an die entsprechenden MQTT-Topics
    client.publish("mpu6050/x_angle", msgX);
    client.publish("mpu6050/y_angle", msgY);

    timer = millis();
  }
}

Die Notes sind Hier:

[{"id":"d3306e8805cac3e5","type":"mqtt in","z":"3160a070e0376e18","name":"","topic":"mpu6050/x_angle","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":150,"y":1480,"wires":[["350655fe67ad6282"]]},{"id":"3a7c99cdbb9887b8","type":"function","z":"3160a070e0376e18","name":"Offset hinzufügen","func":"// Erhalten der Eingangsdaten\nvar eingangsdaten = msg.payload;\n\n// Kalibrierungswert aus der globalen Variable verwenden\nvar kalibrierungswert = global.get(\"calibration_value_x\") || 0; // Standardwert ist 0, falls nicht gesetzt\n\n// Anpassen der Daten um den Kalibrierungswert\nvar datenMitKalibrierung = eingangsdaten - kalibrierungswert;\n\n// Auf eine Dezimalstelle runden\nvar gerundeteDaten = datenMitKalibrierung.toFixed(1); // 1 steht für eine Dezimalstelle\n\n// Wenn der gerundete Wert 0 ist, auf 0.0 ändern\nif (Number(gerundeteDaten) === 0) {\n    gerundeteDaten = \"0.0\";\n}\n\n// Weiterleiten der modifizierten und gerundeten Daten\nmsg.payload = parseFloat(gerundeteDaten); // Als Zahl statt String zurückgeben\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":1480,"wires":[["6cfd5f18637d1d6f","b0736d584b4ecc68"]]},{"id":"350655fe67ad6282","type":"smooth","z":"3160a070e0376e18","name":"","property":"payload","action":"mean","count":"2","round":"1","mult":"single","reduce":false,"x":320,"y":1480,"wires":[["3a7c99cdbb9887b8"]]},{"id":"bcc1ff8459b037e0","type":"mqtt in","z":"3160a070e0376e18","name":"","topic":"mpu6050/y_angle","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":150,"y":1540,"wires":[["e3a4b8de4d794b4d"]]},{"id":"741c5e47944bd345","type":"function","z":"3160a070e0376e18","name":"Offset hinzufügen","func":"// Erhalten der Eingangsdaten\nvar eingangsdaten = msg.payload;\n\n// Kalibrierungswert aus der globalen Variable verwenden\nvar kalibrierungswert = global.get(\"calibration_value_y\") || 0; // Standardwert ist 0, falls nicht gesetzt\n\n// Anpassen der Daten um den Kalibrierungswert\nvar datenMitKalibrierung = eingangsdaten - kalibrierungswert;\n\n// Auf eine Dezimalstelle runden\nvar gerundeteDaten = datenMitKalibrierung.toFixed(1); // 1 steht für eine Dezimalstelle\n\n// Wenn der gerundete Wert 0 ist, auf \"0.0\" ändern\nif (Number(gerundeteDaten) === 0) {\n    gerundeteDaten = \"0.0\";\n}\n\n// Weiterleiten der modifizierten und gerundeten Daten\nmsg.payload = parseFloat(gerundeteDaten); // Als Zahl statt String zurückgeben\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":510,"y":1540,"wires":[["your-rotation-function","3409d4236d412e95"]]},{"id":"e3a4b8de4d794b4d","type":"smooth","z":"3160a070e0376e18","name":"","property":"payload","action":"mean","count":"2","round":"1","mult":"single","reduce":false,"x":320,"y":1540,"wires":[["741c5e47944bd345"]]},{"id":"your-unique-id","type":"ui_template","z":"3160a070e0376e18","group":"41966ddc.701f44","name":"IMG NICK","order":2,"width":6,"height":4,"format":"\n\n<div style='width:100%; height:100%; display:flex; justify-content:center; align-items:center;'>\n    <div id='image-container' style='position: relative;'>\n        <img id='image-to-rotate' src='https://xxxxxxx' style='transform: rotate({{msg.payload}}deg);' />\n        <div id='line'\n            style='position: absolute; width: 100%; height: 3px; background-color: grey; top: 96%; transform: translateY(-50%); z-index: -1;'>\n        </div>\n    </div>\n</div>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":730,"y":1580,"wires":[[]]},{"id":"your-rotation-function","type":"function","z":"3160a070e0376e18","name":"Rotate Image","func":"// Erhalten der Winkelinformation (z. B. über MQTT)\nvar angle = msg.payload; // Der Rotationswinkel in Grad\n\n// Wert des Payloads verdoppeln\nmsg.payload = angle * 3;\n\n// CSS-Transformation zur Rotation des Bilds\nvar transformation = \"rotate(\" + msg.payload + \"deg)\";\n\n// Senden Sie die Transformation zurück\nmsg.ui_control = {\n    \"angular\": true,\n    \"rotate\": transformation\n};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":1580,"wires":[["your-unique-id"]]},{"id":"3409d4236d412e95","type":"ui_text","z":"3160a070e0376e18","group":"41966ddc.701f44","order":3,"width":6,"height":1,"name":"Winkel Nick","label":"","format":"{{msg.payload.toFixed(1)}}","layout":"row-center","className":"","x":710,"y":1540,"wires":[]},{"id":"128317c9d03356b7","type":"ui_template","z":"3160a070e0376e18","group":"","name":"Stylesheet Winkel","order":5,"width":0,"height":0,"format":"<style>\n[node-id=\"3409d4236d412e95\"] .value {\nfont-size: 2.9em;\nfont-weight: 100;\n}\n\n</style>\n\n\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"global","className":"","x":890,"y":1540,"wires":[[]]},{"id":"a264acee8cbaa7c4","type":"comment","z":"3160a070e0376e18","name":"Lagesensor","info":"","x":90,"y":1420,"wires":[]},{"id":"361d0b60a9d31f7d","type":"mqtt in","z":"3160a070e0376e18","name":"","topic":"mpu6050/x_angle","qos":"0","datatype":"utf8","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":610,"y":1700,"wires":[["03027f480d97cf07"]]},{"id":"123ceed000850aca","type":"mqtt in","z":"3160a070e0376e18","name":"","topic":"mpu6050/y_angle","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":610,"y":1760,"wires":[["b59261354c35e02e"]]},{"id":"button_node","type":"ui_button","z":"3160a070e0376e18","name":"Start Calibration","group":"d4ee45356a6231e7","order":7,"width":6,"height":1,"passthru":false,"label":"Lagesensor Kalibrieren","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"start_calibration","payloadType":"str","topic":"start_calibration","topicType":"str","x":160,"y":1720,"wires":[["03027f480d97cf07","b59261354c35e02e","84e41aac61bb1ee9"]]},{"id":"03027f480d97cf07","type":"function","z":"3160a070e0376e18","name":"Kalibrierungsfunktion","func":"// Variablen für die Kalibrierung\nlet calibrationDatax = context.get(\"calibrationData_x\") || [];\nlet timer = context.get(\"timer\") || null;\n\n// Startet die Kalibrierung bei einer Nachricht vom Button\nif (msg.topic === \"start_calibration\" && !timer) {\n    calibrationDatax = [];\n    context.set(\"calibrationData_x\", calibrationDatax);\n\n    timer = setTimeout(() => {\n        let sum = calibrationDatax.reduce((a, b) => a + b, 0);\n        let avg = calibrationDatax.length > 0 ? sum / calibrationDatax.length : 0;\n        global.set(\"calibration_value_x\", avg); // Speichert das Ergebnis in der globalen Variable\n        context.set(\"timer\", null);\n        node.send({ payload: avg });\n    }, 5000); // Kalibrierungszeitraum: 5 Sekunden\n\n    context.set(\"timer\", timer);\n    return;\n}\n\n// Sammelt Daten, wenn eine Nachricht vom Sensor empfangen wird\nif (msg.topic === \"mpu6050/x_angle\" && timer) {\n    let value = parseFloat(msg.payload);\n    if (!isNaN(value)) {\n        calibrationDatax.push(value);\n        context.set(\"calibrationData_x\", calibrationDatax);\n    }\n}\n\nreturn null; // Sendet keine Nachricht, bis der Timer abläuft\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":1700,"wires":[[]]},{"id":"b59261354c35e02e","type":"function","z":"3160a070e0376e18","name":"Kalibrierungsfunktion","func":"// Variablen für die Kalibrierung\nlet calibrationData = context.get(\"calibrationData_y\") || [];\nlet timer = context.get(\"timer\") || null;\n\n// Startet die Kalibrierung bei einer Nachricht vom Button\nif (msg.topic === \"start_calibration\" && !timer) {\n    calibrationData = [];\n    context.set(\"calibrationData_y\", calibrationData);\n\n    timer = setTimeout(() => {\n        let sum = calibrationData.reduce((a, b) => a + b, 0);\n        let avg = calibrationData.length > 0 ? sum / calibrationData.length : 0;\n        global.set(\"calibration_value_y\", avg); // Speichert das Ergebnis in der globalen Variable\n        context.set(\"timer\", null);\n        node.send({ payload: avg });\n    }, 5000); // Kalibrierungszeitraum: 5 Sekunden\n\n    context.set(\"timer\", timer);\n    return;\n}\n\n// Sammelt Daten, wenn eine Nachricht vom Sensor empfangen wird\nif (msg.topic === \"mpu6050/y_angle\" && timer) {\n    let value = parseFloat(msg.payload);\n    if (!isNaN(value)) {\n        calibrationData.push(value);\n        context.set(\"calibrationData_y\", calibrationData);\n    }\n}\n\nreturn null; // Sendet keine Nachricht, bis der Timer abläuft\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":400,"y":1760,"wires":[[]]},{"id":"b44bfc8f6cae29d6","type":"comment","z":"3160a070e0376e18","name":"Lagesensor Kalibrierung","info":"","x":130,"y":1660,"wires":[]},{"id":"91b7e2d9b77c1c07","type":"ui_toast","z":"3160a070e0376e18","position":"top right","displayTime":"5","highlight":"","sendall":false,"outputs":0,"ok":"OK","cancel":"","raw":false,"className":"","topic":"","name":"","x":530,"y":1660,"wires":[]},{"id":"84e41aac61bb1ee9","type":"function","z":"3160a070e0376e18","name":"","func":"msg.payload = \"Kalibriere Lagesensor...\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":1660,"wires":[["91b7e2d9b77c1c07"]]},{"id":"613c9b0c625742ef","type":"ui_template","z":"3160a070e0376e18","group":"73daa4c1c02b6e0a","name":"IMG ROLL","order":2,"width":6,"height":4,"format":"\n\n<div style='width:100%; height:100%; display:flex; justify-content:center; align-items:center;'>\n    <div id='image-container' style='position: relative;'>\n        <img id='image-to-rotate' src='https://wwwxxxxxxx' style='transform: rotate({{msg.payload}}deg);' />\n        <div id='line'\n            style='position: absolute; width: 100%; height: 3px; background-color: grey; top: 96%; transform: translateY(-50%); z-index: -1;'>\n        </div>\n    </div>\n</div>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"local","className":"","x":730,"y":1440,"wires":[[]]},{"id":"6cfd5f18637d1d6f","type":"function","z":"3160a070e0376e18","name":"Rotate Image","func":"// Erhalten der Winkelinformation (z. B. über MQTT)\nvar angle = msg.payload; // Der Rotationswinkel in Grad\n\n// Wert des Payloads verdoppeln\nmsg.payload = angle * 3;\n\n// CSS-Transformation zur Rotation des Bilds\nvar transformation = \"rotate(\" + msg.payload + \"deg)\";\n\n// Senden Sie die Transformation zurück\nmsg.ui_control = {\n    \"angular\": true,\n    \"rotate\": transformation\n};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":1440,"wires":[["613c9b0c625742ef"]]},{"id":"b0736d584b4ecc68","type":"ui_text","z":"3160a070e0376e18","group":"73daa4c1c02b6e0a","order":3,"width":6,"height":1,"name":"Winkel ROLL","label":"","format":"{{msg.payload.toFixed(1)}}","layout":"row-center","className":"","x":710,"y":1480,"wires":[]},{"id":"838d020233fa4e80","type":"ui_template","z":"3160a070e0376e18","group":"","name":"Stylesheet Winkel","order":5,"width":0,"height":0,"format":"<style>\n[node-id=\"b0736d584b4ecc68\"] .value {\nfont-size: 2.9em;\nfont-weight: 100;\n}\n\n</style>\n\n\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"global","className":"","x":890,"y":1480,"wires":[[]]},{"id":"0ddb07c65cbb68bc","type":"mqtt-broker","name":"","broker":"http://localhost","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"41966ddc.701f44","type":"ui_group","name":"NICK","tab":"65f4b922.5ef4a8","order":1,"disp":false,"width":"6","collapse":false,"className":""},{"id":"d4ee45356a6231e7","type":"ui_group","name":"Settings","tab":"f1f02c2b78d81470","order":1,"disp":true,"width":"6","collapse":true,"className":""},{"id":"73daa4c1c02b6e0a","type":"ui_group","name":"ROLL","tab":"65f4b922.5ef4a8","order":2,"disp":false,"width":"6","collapse":false,"className":""},{"id":"65f4b922.5ef4a8","type":"ui_tab","name":"Lagesensor","icon":"fa-arrows","order":4,"disabled":false,"hidden":false},{"id":"f1f02c2b78d81470","type":"ui_tab","name":"Config","icon":"fa-cog","order":15,"disabled":false,"hidden":false}]

Kann das sein das die Template Node eine html Seite braucht???
Hast du das mal versucht??

Du meinst wegen der Fotos?
Ich denke es ist eher eine zurifsrechte Geschichte, aber da ich sowieso nen Webspace habe und der das glaube auch nur beim kompletten Neustart einmal lädt und mein System sowieso online ist war mir das erstmal egal. :slight_smile:

Meine Bilder sind PNG

@Bock.auf.Raus Wie hast du das aufs Handy gebracht ?
Warum ist der MPU 6050 nicht direkt am Raspi angeschlossen, sondern über einen ESP ?

Gruss Stefan

@range4200t
Ich habe hier auch angefangen den MPU6050 als Wasserwaage für das Fahrzeug zu Programmieren

Die ersten Schritte habe ich von hier genommen.

Aus den Zahlen die der MPU für die X und Y Achse auswirft habe ich dann den Winkel ermittelt.

Anhand der Winkel, und dem Abstand zu den Rädern, habe ich die Höhe der Unterlegkeile berechnet. Dazu muss man den Achsabstand, die Spurbreite, den Abstand vom Sensor zur Vorderachse, und den Abstand zum rechten Vorderrad angeben.

Einen Teil habe ich von Sven geklaut :wink: danke Sven.

Und zwar den Bereich mit dem bewegenden Bild, allerdings habe ich 2 Bilder (png) im Ordner Pekaway abgelegt, auf die ich zugreife, diese müssen mit eine Bas64 Node dekodiert werden. Für die Größe muss das Bild vorher skaliert werden. Das habe ich mit Paint 3D gemacht. Bild Hinten wurde in meinem Fall auf 215x209 und Bild Seite auf 227x121 skaliert.

Ob die Berechnungen so stimmen konnte ich noch nicht ermitteln.
(Als Winkelfunktion und Dreiecksberechnung in der Schule dran waren war ich Krank :wink: )
Da der MPU alle paar Messungen einen Fehler rausgibt,

und das System dadurch ins Schwanken kommt, habe ich jetzt einige Zeit damit verbracht das abzufangen. Habs aber nicht geschafft. In dem Python Skript habe ich alles gelöscht was gyro heißt, dadurch hat sich die Fehlermeldung halbiert, aber das bringt am Ergebnis auch nixs.
Von Maik habe ich seinen MPU6050 bekommen, zum Ausprobieren ob es an meinem MPU liegt, aber bei dem kommen die Fehlauslesungen genauso.

Hat irgendeiner eine Idee wie man den Fehler abfangen kann???

Ich versuche das demnächst mit einem ESP8266, weil die Berechnungen kann man ja übernehmen.

Anbei der Flow, vielleicht hat jemand Lust mit zu entwickeln.

[{"id":"9eb3a65e14800d8b","type":"function","z":"08b1222770f25950","name":"Temperatur","func":"msg.payload = msg.payload.Temperatur;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":1940,"wires":[["677c961b2e09b812"]]},{"id":"f08830d1d56c09cc","type":"function","z":"08b1222770f25950","name":"MPU6050","func":"//msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n    \"Temperatur\": msg.payload[0],\n    \"a_x\":  msg.payload[1],\n    \"a_y\": msg.payload[2],\n    \"a_z\": msg.payload[3],\n   /* \"g_x\": msg.payload[4],\n    \"g_y\": msg.payload[5],\n    \"g_z\": msg.payload[6],*/\n   \n    \n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":2040,"wires":[["9eb3a65e14800d8b","dc1482e13676e504","e748119ed232c04b","ac9f3001d534e0ca","9e4a1b5130d1b1a8"]]},{"id":"677c961b2e09b812","type":"smooth","z":"08b1222770f25950","name":"","property":"payload","action":"mean","count":"5","round":"1","mult":"single","reduce":false,"x":1280,"y":1940,"wires":[["e7da0f7722dc011e"]]},{"id":"cfdcb33d97e3655c","type":"exec","z":"08b1222770f25950","command":"timeout 5 python3 ~/pekaway/mpu6050/mpu6050/mpu6050.py","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":485,"y":2041,"wires":[["f08830d1d56c09cc","cb7ce55180c8ae09"],[],[]]},{"id":"e849547aed6c020b","type":"function","z":"08b1222770f25950","name":"a_x","func":"msg.payload = msg.payload.a_x;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":750,"y":1740,"wires":[[]]},{"id":"dc1482e13676e504","type":"function","z":"08b1222770f25950","name":"a_y","func":"var a_y = msg.payload.a_y;\nvar a_y_set = global.get(\"a_y\");\n/**/\n    msg.payload = a_y;\n return msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1030,"y":2020,"wires":[["7b429a29dbf1b9ce"]]},{"id":"e748119ed232c04b","type":"function","z":"08b1222770f25950","name":"a_z","func":"msg.payload = msg.payload.a_z;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":2060,"wires":[["b9af8a8a89fc942d"]]},{"id":"e7da0f7722dc011e","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":1,"width":7,"height":4,"gtype":"gage","title":"Temp","label":"units","format":"{{msg.payload.toFixed(2)}}","min":"-15","max":"45","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1430,"y":1940,"wires":[]},{"id":"72ea41edbbbba91b","type":"inject","z":"08b1222770f25950","name":"1s","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":true,"onceDelay":"5","topic":"MPU_6050","payload":"","payloadType":"str","x":130,"y":2040,"wires":[["cfdcb33d97e3655c"]]},{"id":"c2d08a8c062b36c0","type":"trigger","z":"08b1222770f25950","name":"","op1":"true","op2":"0","op1type":"bool","op2type":"str","duration":"-3","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":365,"y":1899,"wires":[["a9ae25b17ce47a87","cfdcb33d97e3655c","be3339f7a521b060"]]},{"id":"842efc21bd9fac1b","type":"smooth","z":"08b1222770f25950","name":"","property":"payload","action":"mean","count":"10","round":"10","mult":"single","reduce":false,"x":1280,"y":1980,"wires":[["c50aad2334b166c1","1b0d126e78f290c5","f8c5cc9775eafc0d","b9f19b08c9bf8460"]]},{"id":"7aad7f1d1dc1afe0","type":"smooth","z":"08b1222770f25950","name":"","property":"payload","action":"mean","count":"10","round":"10","mult":"single","reduce":false,"x":1280,"y":2020,"wires":[["b0e7a7353eced4ab","8f7ffcf271181f68","e66b9aeb88fd1ef5"]]},{"id":"b9af8a8a89fc942d","type":"smooth","z":"08b1222770f25950","name":"","property":"payload","action":"mean","count":"2","round":"1","mult":"single","reduce":false,"x":1280,"y":2060,"wires":[["27d2f3fd20d75f6b"]]},{"id":"f052681e8e627523","type":"link in","z":"08b1222770f25950","name":"tempconfigread","links":["822fb891.c1f2b8"],"x":90,"y":1899,"wires":[["c2d08a8c062b36c0"]]},{"id":"cdaede4b11f35558","type":"function","z":"08b1222770f25950","name":"","func":"msg.reset = true; \nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":425,"y":1979,"wires":[["c2d08a8c062b36c0","cd95b63bb23af570"]]},{"id":"a9ae25b17ce47a87","type":"delay","z":"08b1222770f25950","name":"","pauseType":"delay","timeout":"50","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":235,"y":1979,"wires":[["cdaede4b11f35558"]]},{"id":"be3339f7a521b060","type":"debug","z":"08b1222770f25950","name":"debug 275","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":610,"y":1880,"wires":[]},{"id":"c50aad2334b166c1","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":10,"width":5,"height":4,"gtype":"gage","title":"Achse_x","label":"units","format":"{{msg.payload.toFixed(2)}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1420,"y":1980,"wires":[]},{"id":"a99592249b539953","type":"range","z":"08b1222770f25950","minin":"-10.3","maxin":"10.3","minout":"-90","maxout":"90","action":"scale","round":false,"property":"payload","name":"X_Achse","x":1680,"y":1980,"wires":[["7a76a196fd3797fe","5c723aebd8173e18","dc2aeadf25e35680","79e68d1036ce39bb"]]},{"id":"2044747c0c22ad14","type":"range","z":"08b1222770f25950","minin":"-9.7","maxin":"9.7","minout":"-90","maxout":"90","action":"scale","round":false,"property":"payload","name":"Y_Achse","x":1680,"y":2020,"wires":[["fcea39fe80ca68de","9464c8745827e92a","3c588298273aa4eb","3663c4b9d088602a"]]},{"id":"b0e7a7353eced4ab","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":19,"width":5,"height":4,"gtype":"gage","title":"Achse_y","label":"units","format":"{{msg.payload.toFixed(2)}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1420,"y":2020,"wires":[]},{"id":"27d2f3fd20d75f6b","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":28,"width":5,"height":4,"gtype":"gage","title":"Achse_z","label":"units","format":"{{value}}","min":"-12","max":"12","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1420,"y":2060,"wires":[]},{"id":"cd95b63bb23af570","type":"debug","z":"08b1222770f25950","name":"debug 276","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":610,"y":1980,"wires":[]},{"id":"7a76a196fd3797fe","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":3,"width":5,"height":4,"gtype":"gage","title":"Winkel_x_Achse","label":"Winkel Grad","format":"{{msg.payload.toFixed(2)}}","min":"-90","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1840,"y":1980,"wires":[]},{"id":"458e18235afd83ba","type":"function","z":"08b1222770f25950","name":"Tangens","func":"\nvar rad = global.get(\"abstand_rechts\");\nvar winkel = msg.payload;\n//var hoehe = Math.tan(winkel)*rad;\nvar hoehe = Math.tan((winkel * Math.PI) / 180)*rad;\n\nmsg.payload = hoehe\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1440,"y":2100,"wires":[["639e2fee6c6a8986"]]},{"id":"fcea39fe80ca68de","type":"ui_gauge","z":"08b1222770f25950","name":"","group":"23d21b49a929acac","order":6,"width":5,"height":4,"gtype":"gage","title":"Winkel_y_Achse","label":"Winkel Grad","format":"{{msg.payload.toFixed(2)}}","min":"-90","max":"90","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","diff":false,"className":"","x":1850,"y":2020,"wires":[]},{"id":"ada8739e87767107","type":"function","z":"08b1222770f25950","name":"Tangens","func":"var achse = global.get(\"Von_Vorder_Achse\");\nvar rad = global.get(\"abstand_vorne\");\nvar winkel = msg.payload;\nvar hoehe = Math.tan((winkel * Math.PI) / 180)*rad;\n\nmsg.payload = hoehe\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1440,"y":2240,"wires":[["8116f9ed1b5eb49c"]]},{"id":"d63cea16236d5966","type":"ui_level","z":"08b1222770f25950","group":"23d21b49a929acac","order":4,"width":1,"height":4,"name":"Rechts","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":"30","segWarn":"5","segHigh":"15","unit":" cm__Rechts","layout":"sv","channelA":"","channelB":"","decimals":"2","animations":"soft","shape":2,"colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"tickmode":"off","peakmode":false,"property":"payload","peaktime":3000,"x":1760,"y":2100,"wires":[]},{"id":"00cc4cbe3eee97fd","type":"ui_level","z":"08b1222770f25950","group":"23d21b49a929acac","order":7,"width":1,"height":4,"name":"Vorne","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":"30","segWarn":"5","segHigh":"15","unit":" cm__Vorne","layout":"sv","channelA":"","channelB":"","decimals":"2","animations":"soft","shape":2,"colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"tickmode":"off","peakmode":false,"property":"payload","peaktime":3000,"x":1750,"y":2240,"wires":[]},{"id":"0fb42f2eabae7eae","type":"comment","z":"08b1222770f25950","name":"MPU6050","info":"","x":620,"y":1380,"wires":[]},{"id":"00322020898111c4","type":"comment","z":"08b1222770f25950","name":">>> from mpu6050 import mpu6050  >>> sensor = mpu6050(0x69)  >>> accelerometer_data = sensor.get_accel_data()","info":">>> from mpu6050 import mpu6050  \n>>> sensor = mpu6050(0x69)  \n>>> accelerometer_data = sensor.get_accel_data()","x":740,"y":1860,"wires":[]},{"id":"03c076cd0c5e1343","type":"comment","z":"08b1222770f25950","name":"/home/pi/pekaway/mpu6050/mpu6050/mpu6050.py","info":"","x":730,"y":1920,"wires":[]},{"id":"0e649e7f6eb04528","type":"ui_text_input","z":"08b1222770f25950","name":"","label":"Achsabstand","tooltip":"","group":"b5fe614cebc76e9b","order":1,"width":4,"height":1,"passthru":true,"mode":"number","delay":300,"topic":"topic","sendOnBlur":true,"className":"","topicType":"msg","x":790,"y":1380,"wires":[["d3a1a5a674a6d59c"]]},{"id":"d3a1a5a674a6d59c","type":"function","z":"08b1222770f25950","name":"global set Achsabstand","func":"global.set(\"Achsabstand\", (parseFloat(msg.payload)));\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1280,"y":1380,"wires":[["ad1a626ea50b5dba","0e649e7f6eb04528","1b3ee8a07653fac2"]]},{"id":"50fdf511b5bc4d58","type":"ui_text_input","z":"08b1222770f25950","name":"","label":"Radabstand","tooltip":"","group":"b5fe614cebc76e9b","order":3,"width":4,"height":1,"passthru":true,"mode":"number","delay":300,"topic":"topic","sendOnBlur":true,"className":"","topicType":"msg","x":790,"y":1440,"wires":[["52ae58855fcc3316"]]},{"id":"52ae58855fcc3316","type":"function","z":"08b1222770f25950","name":"global set Radabstand","func":"global.set(\"Radabstand\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1290,"y":1440,"wires":[["3eed25c78f1de3c0","50fdf511b5bc4d58","e0b56f47a7c7bd49"]]},{"id":"4dd9b6f65e25d7c7","type":"function","z":"08b1222770f25950","name":"global set Abstand_VorderAchse","func":"global.set(\"Abstand_VorderAchse\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1250,"y":1500,"wires":[["1e1f5f4e49f800a1","89136b3294cc9859","d0ce261075309f58"]]},{"id":"89136b3294cc9859","type":"ui_text_input","z":"08b1222770f25950","name":"","label":"Abstand_VorderAchse","tooltip":"","group":"b5fe614cebc76e9b","order":5,"width":4,"height":1,"passthru":true,"mode":"number","delay":300,"topic":"topic","sendOnBlur":true,"className":"","topicType":"msg","x":700,"y":1500,"wires":[["4dd9b6f65e25d7c7"]]},{"id":"8b8adb2a4c2be177","type":"function","z":"08b1222770f25950","name":"global set Radabstand rechtes Vorderrad","func":"global.set(\"abstand-vorne_rechts\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1290,"y":1560,"wires":[["8e63b1f2bc0b1062","b399b35da7551506","a686b2a46415c242"]]},{"id":"b399b35da7551506","type":"ui_text_input","z":"08b1222770f25950","name":"Abstand_v_R","label":"Abstand_v_R","tooltip":"","group":"b5fe614cebc76e9b","order":7,"width":4,"height":1,"passthru":true,"mode":"number","delay":"3000","topic":"topic","sendOnBlur":true,"className":"","topicType":"msg","x":740,"y":1560,"wires":[["8b8adb2a4c2be177"]]},{"id":"af09420a71549e48","type":"function","z":"08b1222770f25950","name":"Abstand hinten","func":"var aa =  global.get(\"Achsabstand\");\nvar av = global.get(\"Abstand_VorderAchse\");\nvar hinten = aa-av;\n\nmsg.payload = hinten;\nglobal.set(\"abstand_hinten\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":1620,"wires":[["5fe2f2cea23b5899","79cf590f61e18514"]]},{"id":"e780b0c92a72b918","type":"function","z":"08b1222770f25950","name":"Abstand vorne","func":"\nvar av = global.get(\"Abstand_VorderAchse\");\n\n\nmsg.payload = av;\nglobal.set(\"abstand_vorne\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":1660,"wires":[["c12eca9fbe56c8b9","3d1eddeb9b0a7b7b"]]},{"id":"c90778209d9a88ce","type":"function","z":"08b1222770f25950","name":"Abstand rechts","func":"\nvar av = global.get(\"abstand-vorne_rechts\");\n\nmsg.payload = av;\nglobal.set(\"abstand_rechts\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":1740,"wires":[["0e9d4e8a9cce92c3","df08a68b0d0c9b51"]]},{"id":"6d9dc2db298fe7c3","type":"function","z":"08b1222770f25950","name":"Abstand links","func":"var aa = global.get(\"abstand-vorne_rechts\");\nvar ah = global.get(\"Radabstand\");\nvar links = ah-aa;\n\nmsg.payload = links;\nglobal.set(\"abstand_links\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":1700,"wires":[["cb10eaca855650df","d9be6254f271c7ee"]]},{"id":"4040928a65a2c779","type":"function","z":"08b1222770f25950","name":"Tangens","func":"var achse = global.get(\"abstand_links\");\nvar rad = global.get (\"Radabstand\");\nvar winkel = msg.payload;\nvar hoehe = Math.tan((winkel * Math.PI) / 180)*rad;\n\nmsg.payload = hoehe\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1440,"y":2160,"wires":[["77a70c32bb9b1454"]]},{"id":"d876b4191a494f25","type":"ui_level","z":"08b1222770f25950","group":"23d21b49a929acac","order":2,"width":1,"height":4,"name":"Links","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":"30","segWarn":"5","segHigh":"15","unit":" cm__Links","layout":"sv","channelA":"","channelB":"","decimals":"2","animations":"soft","shape":2,"colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"tickmode":"off","peakmode":false,"property":"payload","peaktime":3000,"x":1750,"y":2160,"wires":[]},{"id":"8f7c47f70debf3bd","type":"function","z":"08b1222770f25950","name":"Tangens","func":"var achse = global.get(\"Von_Vorder_Achse\");\nvar rad = global.get(\"abstand_hinten\");\nvar winkel = msg.payload;\nvar hoehe = Math.tan((winkel * Math.PI) / 180)*rad;\n\nmsg.payload = hoehe\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1440,"y":2300,"wires":[["170981b20d3a15cc"]]},{"id":"4a68f1e1fb889015","type":"ui_level","z":"08b1222770f25950","group":"23d21b49a929acac","order":5,"width":1,"height":4,"name":"Hinten","label":"","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":"30","segWarn":"5","segHigh":"15","unit":" cm__Hinten","layout":"sv","channelA":"","channelB":"","decimals":"2","animations":"soft","shape":2,"colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"textAnimations":false,"hideValue":false,"tickmode":"off","peakmode":false,"property":"payload","peaktime":3000,"x":1750,"y":2300,"wires":[]},{"id":"23d1467d31d5a833","type":"inject","z":"08b1222770f25950","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"10","topic":"","payload":"","payloadType":"str","x":530,"y":1600,"wires":[["af09420a71549e48","e780b0c92a72b918","6d9dc2db298fe7c3","c90778209d9a88ce","8f3e03456b76631d","a15e2d5ef9da6599","7d5da76833dfcc5c","bbe62355bdd3ea59"]]},{"id":"5fe2f2cea23b5899","type":"debug","z":"08b1222770f25950","name":"debug 279","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1390,"y":1620,"wires":[]},{"id":"c12eca9fbe56c8b9","type":"debug","z":"08b1222770f25950","name":"debug 280","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1390,"y":1660,"wires":[]},{"id":"cb10eaca855650df","type":"debug","z":"08b1222770f25950","name":"debug 281","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1390,"y":1700,"wires":[]},{"id":"0e9d4e8a9cce92c3","type":"debug","z":"08b1222770f25950","name":"debug 282","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1390,"y":1740,"wires":[]},{"id":"2a8b20db4cb3e611","type":"debug","z":"08b1222770f25950","name":"debug 283","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2000,"y":1380,"wires":[]},{"id":"d473c578d18589d6","type":"debug","z":"08b1222770f25950","name":"debug 284","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2000,"y":1440,"wires":[]},{"id":"a6c405f7611d8599","type":"debug","z":"08b1222770f25950","name":"debug 285","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2000,"y":1500,"wires":[]},{"id":"279ed7ad902e19e9","type":"debug","z":"08b1222770f25950","name":"debug 286","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":2040,"y":1560,"wires":[]},{"id":"5c723aebd8173e18","type":"range","z":"08b1222770f25950","minin":"0","maxin":"10","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"X_Achse","x":1280,"y":2100,"wires":[["458e18235afd83ba"]]},{"id":"9464c8745827e92a","type":"range","z":"08b1222770f25950","minin":"0","maxin":"10","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"Y_Achse","x":1280,"y":2240,"wires":[["ada8739e87767107"]]},{"id":"dc2aeadf25e35680","type":"range","z":"08b1222770f25950","minin":"-10","maxin":"0","minout":"90","maxout":"0","action":"clamp","round":false,"property":"payload","name":"X_Achse","x":1280,"y":2160,"wires":[["4040928a65a2c779"]]},{"id":"3c588298273aa4eb","type":"range","z":"08b1222770f25950","minin":"-10","maxin":"0","minout":"90","maxout":"0","action":"clamp","round":false,"property":"payload","name":"Y_Achse","x":1280,"y":2300,"wires":[["8f7c47f70debf3bd"]]},{"id":"639e2fee6c6a8986","type":"range","z":"08b1222770f25950","minin":"0","maxin":"90","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"0-90","x":1590,"y":2100,"wires":[["d63cea16236d5966","d3679a85eac515ef"]]},{"id":"77a70c32bb9b1454","type":"range","z":"08b1222770f25950","minin":"0","maxin":"90","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"0-90","x":1610,"y":2160,"wires":[["d876b4191a494f25","9b6f931cc42d11a0"]]},{"id":"8116f9ed1b5eb49c","type":"range","z":"08b1222770f25950","minin":"0","maxin":"90","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"0-90","x":1610,"y":2240,"wires":[["00cc4cbe3eee97fd","f936f91999811345"]]},{"id":"170981b20d3a15cc","type":"range","z":"08b1222770f25950","minin":"0","maxin":"90","minout":"0","maxout":"90","action":"clamp","round":false,"property":"payload","name":"0-90","x":1610,"y":2300,"wires":[["4a68f1e1fb889015","b68495929eb497aa"]]},{"id":"f8c5cc9775eafc0d","type":"function","z":"08b1222770f25950","name":"global.set a_x","func":"msg.payload = msg.payload;\nglobal.set(\"a_x\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1260,"y":1840,"wires":[[]]},{"id":"e66b9aeb88fd1ef5","type":"function","z":"08b1222770f25950","name":"global.set a_y","func":"msg.payload = msg.payload;\nglobal.set(\"a_y\", (parseFloat(msg.payload)));\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1260,"y":1880,"wires":[[]]},{"id":"02145a2863fed689","type":"ui_button","z":"08b1222770f25950","name":"","group":"b5fe614cebc76e9b","order":10,"width":0,"height":0,"passthru":false,"label":"Calibrieren","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"true","payloadType":"bool","topic":"topic","topicType":"msg","x":750,"y":2180,"wires":[["146d93d10b232203","7d0d1b7dd7405deb"]]},{"id":"146d93d10b232203","type":"function","z":"08b1222770f25950","name":"a_x","func":"var cal = msg.payload;\nvar x= global.get(\"a_x\");\n\n\nif (cal == true){\n   global.set(\"a_x_cal\", x);\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":950,"y":2160,"wires":[[]]},{"id":"7d0d1b7dd7405deb","type":"function","z":"08b1222770f25950","name":"a_y","func":"var cal = msg.payload;\nvar y = global.get(\"a_y\");\n\n\nif (cal == true) {\n    global.set(\"a_y_cal\", y);\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":950,"y":2200,"wires":[[]]},{"id":"10a0d791bab048b8","type":"debug","z":"08b1222770f25950","name":"debug 291","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1710,"y":1920,"wires":[]},{"id":"1b0d126e78f290c5","type":"function","z":"08b1222770f25950","name":"a_x","func":"var a_x = msg.payload;\nvar x = global.get(\"a_x_cal\");\n\nmsg.payload = (a_x - x);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1550,"y":1980,"wires":[["a99592249b539953","10a0d791bab048b8"]]},{"id":"8f7ffcf271181f68","type":"function","z":"08b1222770f25950","name":"a_x","func":"var a_y = msg.payload;\nvar y = global.get(\"a_y_cal\");\n\nmsg.payload = (a_y - y);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1550,"y":2020,"wires":[["2044747c0c22ad14"]]},{"id":"b9f19b08c9bf8460","type":"debug","z":"08b1222770f25950","name":"debug 292","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1570,"y":1900,"wires":[]},{"id":"fd3be96ea9bcd350","type":"ui_button","z":"08b1222770f25950","name":"","group":"b5fe614cebc76e9b","order":9,"width":0,"height":0,"passthru":false,"label":"Werte setzen","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":510,"y":1560,"wires":[["af09420a71549e48","e780b0c92a72b918","6d9dc2db298fe7c3","c90778209d9a88ce","8f3e03456b76631d","a15e2d5ef9da6599","7d5da76833dfcc5c","bbe62355bdd3ea59"]]},{"id":"ac9f3001d534e0ca","type":"debug","z":"08b1222770f25950","name":"debug 293","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":810,"y":1960,"wires":[]},{"id":"d2a639ce28d14ce3","type":"debug","z":"08b1222770f25950","name":"debug 294","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1110,"y":2100,"wires":[]},{"id":"9e4a1b5130d1b1a8","type":"function","z":"08b1222770f25950","name":"a_x","func":"var a_x = msg.payload.a_x;\nvar a_x_set = global.get(\"a_x\") ;\n/*\nif (a_x === \" \") \n    msg.payload = a_x_set;\n\n\nelse */\nmsg.payload= a_x;\nreturn msg ;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1030,"y":1980,"wires":[["4a5d061815a76558"]]},{"id":"e97ae079e54deaa2","type":"function","z":"08b1222770f25950","name":"a_y","func":"msg.payload = msg.payload.a_y;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":750,"y":1780,"wires":[[]]},{"id":"43f3ac9.5214a54","type":"inject","z":"08b1222770f25950","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":true,"onceDelay":"6","topic":"","payload":"","payloadType":"date","x":730,"y":2400,"wires":[["7fe75716.574148"]]},{"id":"49b00b00.d657b4","type":"ui_template","z":"08b1222770f25950","group":"da67d2975b06a71d","name":"Hinten","order":1,"width":6,"height":6,"format":"<div style='width:100%; height:100%; display:flex; justify-content:center; align-items:center;'>\n    <div id='image-container' style='position: relative;'>\n        <img id='image-to-rotate' src=\"data:image/png;base64,{{msg.payload}}\"  style='transform: rotate({{msg.payload}}deg);' />\n        <div id='line'\n            style='position: absolute; width: 100%; height: 3px; background-color: grey; top: 96%; transform: translateY(-50%); z-index: -1;'>\n        </div>\n    </div>\n</div>","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":1790,"y":2400,"wires":[[]]},{"id":"4a8daeb2.4a1a7","type":"base64","z":"08b1222770f25950","name":"","action":"str","property":"payload","x":1220,"y":2400,"wires":[["49b00b00.d657b4","085269f57265115e"]]},{"id":"7fe75716.574148","type":"file in","z":"08b1222770f25950","name":"","filename":"/home/pi/pekaway/hinten.png","filenameType":"str","format":"","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":950,"y":2400,"wires":[["4a8daeb2.4a1a7","3f0bfe644e7890b1"]]},{"id":"b07d788e037da7de","type":"inject","z":"08b1222770f25950","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":true,"onceDelay":"6","topic":"","payload":"","payloadType":"date","x":730,"y":2440,"wires":[["e7fdb12157fbfd9f"]]},{"id":"a4c7c79d6b1cecb0","type":"ui_template","z":"08b1222770f25950","group":"da67d2975b06a71d","name":"Seite","order":4,"width":6,"height":6,"format":"<div style='width:100%; height:100%; display:flex; justify-content:center; align-items:center;'>\n    <div id='image-container' style='position: relative;'>\n        <img id='image-to-rotate' src=\"data:image/png;base64,{{msg.payload}}\"  style='transform: rotate({{msg.payload}}deg);' />\n        <div id='line'\n            style='position: absolute; width: 100%; height: 3px; background-color: grey; top: 96%; transform: translateY(-50%); z-index: -1;'>\n        </div>\n    </div>\n</div>\n \n ","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":false,"templateScope":"local","className":"","x":1790,"y":2440,"wires":[[]]},{"id":"eccb6ae8d28a4c04","type":"base64","z":"08b1222770f25950","name":"","action":"str","property":"payload","x":1220,"y":2440,"wires":[["a4c7c79d6b1cecb0","0fec3ebdf4c1b670"]]},{"id":"e7fdb12157fbfd9f","type":"file in","z":"08b1222770f25950","name":"","filename":"/home/pi/pekaway/seite.png","filenameType":"str","format":"","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":940,"y":2440,"wires":[["eccb6ae8d28a4c04","a6b02678d68698fc"]]},{"id":"3f0bfe644e7890b1","type":"debug","z":"08b1222770f25950","name":"debug 296","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":990,"y":2360,"wires":[]},{"id":"085269f57265115e","type":"debug","z":"08b1222770f25950","name":"debug 297","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1210,"y":2360,"wires":[]},{"id":"a6b02678d68698fc","type":"debug","z":"08b1222770f25950","name":"debug 298","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":990,"y":2480,"wires":[]},{"id":"0fec3ebdf4c1b670","type":"debug","z":"08b1222770f25950","name":"debug 299","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1230,"y":2480,"wires":[]},{"id":"907deec57e9d8b8d","type":"ui_template","z":"08b1222770f25950","group":"","name":"Stylesheet Winkel hinten","order":5,"width":0,"height":0,"format":"<style>\n[node-id=\"49b00b00.d657b4\"] .value {\nfont-size: 2.9em;\nfont-weight: 100;\n}\n\n</style>\n\n\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"global","className":"","x":1990,"y":2400,"wires":[[]]},{"id":"adf060b12ea29910","type":"ui_template","z":"08b1222770f25950","group":"","name":"Stylesheet Winkel Seite","order":5,"width":0,"height":0,"format":"<style>\n[node-id=\"a4c7c79d6b1cecb0\"] .value {\nfont-size: 2.9em;\nfont-weight: 80;\n}\n\n</style>\n\n\n","storeOutMessages":true,"fwdInMessages":true,"resendOnRefresh":true,"templateScope":"global","className":"","x":1990,"y":2440,"wires":[[]]},{"id":"ae46eff168ddd975","type":"function","z":"08b1222770f25950","name":"Rotate Image","func":"// Erhalten der Winkelinformation (z. B. über MQTT)\nvar angle = msg.payload; // Der Rotationswinkel in Grad\n\n// Wert des Payloads verdoppeln\nmsg.payload = angle * 2;\n\n// CSS-Transformation zur Rotation des Bilds\nvar transformation = \"rotate(\" + msg.payload + \"deg)\";\n\n// Senden Sie die Transformation zurück\nmsg.ui_control = {\n    \"angular\": true,\n    \"rotate\": transformation\n};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1600,"y":2400,"wires":[["49b00b00.d657b4"]]},{"id":"f2ae14fe515000b3","type":"function","z":"08b1222770f25950","name":"Rotate Image","func":"// Erhalten der Winkelinformation (z. B. über MQTT)\nvar angle = msg.payload; // Der Rotationswinkel in Grad\n\n// Wert des Payloads verdoppeln\nmsg.payload = angle * 2;\n\n// CSS-Transformation zur Rotation des Bilds\nvar transformation = \"rotate(\" + msg.payload + \"deg)\";\n\n// Senden Sie die Transformation zurück\nmsg.ui_control = {\n    \"angular\": true,\n    \"rotate\": transformation\n};\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1600,"y":2440,"wires":[["a4c7c79d6b1cecb0"]]},{"id":"79e68d1036ce39bb","type":"range","z":"08b1222770f25950","minin":"-4","maxin":"4","minout":"-4","maxout":"4","action":"clamp","round":false,"property":"payload","name":"X_Achse","x":1420,"y":2400,"wires":[["ae46eff168ddd975"]]},{"id":"3663c4b9d088602a","type":"range","z":"08b1222770f25950","minin":"-4","maxin":"4","minout":"-4","maxout":"4","action":"clamp","round":false,"property":"payload","name":"Y_Achse","x":1420,"y":2440,"wires":[["f2ae14fe515000b3"]]},{"id":"d3679a85eac515ef","type":"ui_text","z":"08b1222770f25950","group":"da67d2975b06a71d","order":3,"width":3,"height":1,"name":"Rechts","label":"","format":"{{msg.payload.toFixed(1)}}cm","layout":"row-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1900,"y":2140,"wires":[]},{"id":"9b6f931cc42d11a0","type":"ui_text","z":"08b1222770f25950","group":"da67d2975b06a71d","order":2,"width":3,"height":1,"name":"Links","label":"","format":"{{msg.payload.toFixed(1)}}cm","layout":"row-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1890,"y":2180,"wires":[]},{"id":"f936f91999811345","type":"ui_text","z":"08b1222770f25950","group":"da67d2975b06a71d","order":6,"width":3,"height":1,"name":"Vorne","label":"","format":"{{msg.payload.toFixed(1)}}cm","layout":"row-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1890,"y":2260,"wires":[]},{"id":"b68495929eb497aa","type":"ui_text","z":"08b1222770f25950","group":"da67d2975b06a71d","order":5,"width":3,"height":1,"name":"Hinten","label":"","format":"{{msg.payload.toFixed(1)}}cm","layout":"row-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1890,"y":2300,"wires":[]},{"id":"8f3e03456b76631d","type":"file in","z":"08b1222770f25950","name":"","filename":"pekaway/Achsabstand","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":1030,"y":1380,"wires":[["d3a1a5a674a6d59c"]]},{"id":"ad1a626ea50b5dba","type":"file","z":"08b1222770f25950","name":"","filename":"pekaway/Achsabstand","filenameType":"str","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"none","x":1760,"y":1380,"wires":[["2a8b20db4cb3e611"]]},{"id":"a15e2d5ef9da6599","type":"file in","z":"08b1222770f25950","name":"","filename":"pekaway/Radabstand","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":1030,"y":1440,"wires":[["52ae58855fcc3316"]]},{"id":"3eed25c78f1de3c0","type":"file","z":"08b1222770f25950","name":"","filename":"pekaway/Radabstand","filenameType":"str","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"none","x":1770,"y":1440,"wires":[["d473c578d18589d6"]]},{"id":"7d5da76833dfcc5c","type":"file in","z":"08b1222770f25950","name":"","filename":"pekaway/Abstand_VorderAchse","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":960,"y":1500,"wires":[["4dd9b6f65e25d7c7"]]},{"id":"1e1f5f4e49f800a1","type":"file","z":"08b1222770f25950","name":"","filename":"pekaway/Abstand_VorderAchse","filenameType":"str","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"none","x":1780,"y":1500,"wires":[["a6c405f7611d8599"]]},{"id":"bbe62355bdd3ea59","type":"file in","z":"08b1222770f25950","name":"","filename":"pekaway/Ab_vorne_rechts","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":970,"y":1560,"wires":[["8b8adb2a4c2be177"]]},{"id":"8e63b1f2bc0b1062","type":"file","z":"08b1222770f25950","name":"","filename":"pekaway/Ab_vorne_rechts","filenameType":"str","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"none","x":1830,"y":1560,"wires":[["279ed7ad902e19e9"]]},{"id":"79cf590f61e18514","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":11,"width":0,"height":0,"name":"","label":"Abstand hinten","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1200,"y":1620,"wires":[]},{"id":"3d1eddeb9b0a7b7b","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":12,"width":0,"height":0,"name":"","label":"Abstand vorne","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1200,"y":1660,"wires":[]},{"id":"d9be6254f271c7ee","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":13,"width":0,"height":0,"name":"","label":"Abstand links","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1190,"y":1700,"wires":[]},{"id":"df08a68b0d0c9b51","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":14,"width":0,"height":0,"name":"","label":"Abstand rechts","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1200,"y":1740,"wires":[]},{"id":"e0b56f47a7c7bd49","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":4,"width":2,"height":1,"name":"Radabstand","label":"","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1550,"y":1440,"wires":[]},{"id":"d0ce261075309f58","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":6,"width":2,"height":1,"name":"Abstand_VorderAchse","label":"","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1520,"y":1500,"wires":[]},{"id":"a686b2a46415c242","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":8,"width":2,"height":1,"name":"Abstand_v_R","label":"","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1550,"y":1560,"wires":[]},{"id":"1b3ee8a07653fac2","type":"ui_text","z":"08b1222770f25950","group":"b5fe614cebc76e9b","order":2,"width":2,"height":1,"name":"Achsabstand","label":"","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":1550,"y":1380,"wires":[]},{"id":"07291f5b46541a6c","type":"comment","z":"08b1222770f25950","name":"231x260 Pixel","info":"","x":1790,"y":2360,"wires":[]},{"id":"be1f0b5b6fa78c70","type":"comment","z":"08b1222770f25950","name":"275x140. Pixel","info":"","x":1790,"y":2480,"wires":[]},{"id":"cb7ce55180c8ae09","type":"debug","z":"08b1222770f25950","name":"debug 309","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":810,"y":2100,"wires":[]},{"id":"201d658e48a2b67e","type":"function","z":"08b1222770f25950","name":"MPU6050","func":"//msg.payload = msg.payload.toString();\nmsg.payload = msg.payload.split(\"\\n\");\n\nmsg.payload = {\n    \"Temperatur\": Number((msg.payload[0])),\n    \"a_x\": Number(( msg.payload[1])),\n    \"a_y\": Number((msg.payload[2])),\n    \"a_z\": Number((msg.payload[3])),\n    \"g_x\": Number((msg.payload[4])),\n    \"g_y\": Number((msg.payload[5])),\n    \"g_z\": Number((msg.payload[6])),\n   \n    \n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":620,"y":1760,"wires":[[]]},{"id":"4a5d061815a76558","type":"function","z":"08b1222770f25950","name":"Zahl","func":"msg.payload = Number((msg.payload))\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1150,"y":1980,"wires":[["842efc21bd9fac1b","d2a639ce28d14ce3"]]},{"id":"7b429a29dbf1b9ce","type":"function","z":"08b1222770f25950","name":"Zahl","func":"msg.payload = Number((msg.payload))\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1150,"y":2020,"wires":[["7aad7f1d1dc1afe0"]]},{"id":"23d21b49a929acac","type":"ui_group","name":"Wasserwaage","tab":"370a2d2d181e8c6f","order":1,"disp":false,"width":7,"collapse":false},{"id":"b5fe614cebc76e9b","type":"ui_group","name":"Config","tab":"370a2d2d181e8c6f","order":2,"disp":true,"width":"6","collapse":false,"className":""},{"id":"da67d2975b06a71d","type":"ui_group","name":"Bilder","tab":"370a2d2d181e8c6f","order":3,"disp":false,"width":"6","collapse":false,"className":""},{"id":"370a2d2d181e8c6f","type":"ui_tab","name":"Wasserwaage","icon":"dashboard","order":31,"disabled":false,"hidden":false}]

Hi Arno, sehr cool. Probiere ich bei Gelegenheit aus. Danke.
Hast evtl. du auch etwas mit einem GY-271 gemacht um die Position des Fahrzeug zum Ausrichten für die Sat Schüssel darzustellen?

Gruß, Stefan

Nee mit einem GY-271 hab ich nichts gemacht. Aber ich gehe davon aus das du das hiermit auch hin bekommst

Meinst du du kannst das mal probieren?
Du kannst das doch ganz gut.

Nee dazu müsste ich son Teil da haben.
Und ich hab mit dem mpu6050 schon zu viel Zeit verbraten. Und funtioniert doch nicht so wie ich mir das vorstelle. Ausserdem habe ich mir bei dem Versuch alexa einzubinden das System mal wieder zerschossen und muss erst mal alles wieder einrichten :hot_face: :nauseated_face: WLED funktioniert auch noch nicht richtig. Also Baustellen genug. :frowning: