Lagesensor integrieren

Kann deinen Code nicht importieren, aber hab den String mal in eine Inject Node geschrieben:

[{"id":"27a6c6c2750bd696","type":"inject","z":"9922a93eee7ec653","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Axis X: 233.68↵Axis Y: 169.28↵Axis Z: 1.84↵Declination: 2° 15’↵Heading: 38° 10’↵↵","payloadType":"str","x":390,"y":940,"wires":[["07e242b721fb7dee"]]},{"id":"07e242b721fb7dee","type":"split","z":"9922a93eee7ec653","name":"","splt":"↵","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":530,"y":940,"wires":[["8a6c029044e81d68"]]},{"id":"08d73d95ca6fab87","type":"join","z":"9922a93eee7ec653","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"5","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":810,"y":940,"wires":[["8a673a50a15e7b08"]]},{"id":"8a673a50a15e7b08","type":"debug","z":"9922a93eee7ec653","name":"debug 10","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":960,"y":940,"wires":[]},{"id":"8a6c029044e81d68","type":"function","z":"9922a93eee7ec653","name":"get values","func":"if (msg.payload != \"\") { \n    msg.payload = msg.payload.split(\":\")\n    msg.topic = msg.payload[0].trim()\n    msg.payload = msg.payload[1].trim()\n    return msg \n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":670,"y":940,"wires":[["08d73d95ca6fab87"]]}]

Zuerst wird der String bei einem Absatz geteilt, dann wird jeweils ein Key und ein Value Objekt daraus extrahiert und am Ende wird das Ganze wieder zusammengeführt:

image

Hab deine Formatierung mal angepasst, jetzt kann man den Code importieren. Du musst das folgendermaßen machen:

```
Hier den Code rein kopieren
```

Kannst du hier im Forum mit STRG+E machen oder oben auf “Preformatted text” klicken.

Hallo Vincent, danke dir.
Wie hast du das “Return” in den Split bekommen ?

Woher weis die function was ein topic ist und was der Wert (payload)?
Und wie die Trimmung sein muss ?

Wenn ich das nun mit den Werten aus dem Python Script mache , sehe ich dass ich kein object habe, sondern immer noch einen string:

image

[{"id":"fd7ed752c3b8e12e","type":"inject","z":"0d480fc2f6a2fd31","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":480,"wires":[["1cb6f8c46233fe1d"]]},{"id":"1cb6f8c46233fe1d","type":"exec","z":"0d480fc2f6a2fd31","command":"sudo timeout 5 python3 /home/pi/quick2wire-python-api/GY-271.py","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":520,"y":480,"wires":[["b67bc9b08b4f18e4","07e242b721fb7dee"],[],[]]},{"id":"b67bc9b08b4f18e4","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 30","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":880,"y":360,"wires":[]},{"id":"27a6c6c2750bd696","type":"inject","z":"0d480fc2f6a2fd31","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Axis X: 233.68↵Axis Y: 169.28↵Axis Z: 1.84↵Declination: 2° 15’↵Heading: 38° 10’↵↵","payloadType":"str","x":310,"y":680,"wires":[["07e242b721fb7dee"]]},{"id":"07e242b721fb7dee","type":"split","z":"0d480fc2f6a2fd31","name":"","splt":"↵","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":990,"y":480,"wires":[["8a6c029044e81d68"]]},{"id":"08d73d95ca6fab87","type":"join","z":"0d480fc2f6a2fd31","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"5","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1270,"y":480,"wires":[["8a673a50a15e7b08"]]},{"id":"8a673a50a15e7b08","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 10","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1420,"y":480,"wires":[]},{"id":"8a6c029044e81d68","type":"function","z":"0d480fc2f6a2fd31","name":"get values","func":"if (msg.payload != \"\") { \n    msg.payload = msg.payload.split(\":\")\n    msg.topic = msg.payload[0].trim()\n    msg.payload = msg.payload[1].trim()\n    return msg \n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1130,"y":480,"wires":[["08d73d95ca6fab87"]]}]

Das Return Zeichen habe ich tatsächlich einfach aus deinem oberen String kopiert.

msg.topic erwartet die Join Node als key, da sie ja auf die Generierung eines Schlüssel/Werte Objektes gestellt ist. Steht auch in der Hilfe über die Node:

image

die trim() funktion schneidet alle vorausgehenden und nachstehenden Leerzeichen ab.

Und richtig, aus dem Script kommt der String, den wandeln wir ja um in ein key/value Objekt. Jetzt kannst du die Werte weiterverarbeiten mit z.B. msg.payload.Declination, dort steht der entsprechende Wert drin. Vielleicht würde ich bei den Achsen noch jeweils das Leerzeichen entfernen, ist für die Weiterverarbeitung deutlich einfacher.

Der JOIN wir leider bei mir nicht verwendet.
So sieht das Ergebnis aus:

image

Scheint ein Problem mit der Split Node zu sein. Versuch mal mit \n (steht für “newline”) zu splitten, anstatt mit dem Return Zeichen.

@Vincent kommt aufs Gleiche raus:
image

@ahtdf Arno kannst du mir da evtl. helfen ?

Neee ich glaube eher nicht.
Ist immer blöd wenn man das Material nicht selber hat, und es ausprobieren kann.
Aber am WE regnets. wer weiß. :wink:
sind das die Werte aus der Debug Node???
"msg.payload : string[81]

“Axis X: 233.68↵Axis Y: 169.28↵Axis Z: 1.84↵Declination: 2° 15’↵Heading: 38° 10’↵↵” "

Ich habe mir mal den Code von Vincent installiert, bei mir funkrioniert das.
ber du willst doch eh nur den Payload verarbeiten, dann versuchs so.


[
    {
        "id": "fd7ed752c3b8e12e",
        "type": "inject",
        "z": "184d796edadda5ca",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 160,
        "y": 2220,
        "wires": [
            [
                "1cb6f8c46233fe1d"
            ]
        ]
    },
    {
        "id": "1cb6f8c46233fe1d",
        "type": "exec",
        "z": "184d796edadda5ca",
        "command": "sudo timeout 5 python3 /home/pi/quick2wire-python-api/GY-271.py",
        "addpay": "",
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "winHide": false,
        "oldrc": false,
        "name": "",
        "x": 520,
        "y": 2220,
        "wires": [
            [
                "b67bc9b08b4f18e4",
                "07e242b721fb7dee"
            ],
            [],
            []
        ]
    },
    {
        "id": "b67bc9b08b4f18e4",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 30",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 880,
        "y": 2100,
        "wires": []
    },
    {
        "id": "27a6c6c2750bd696",
        "type": "inject",
        "z": "184d796edadda5ca",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "Axis X: 233.68↵Axis Y: 169.28↵Axis Z: 1.84↵Declination: 2° 15’↵Heading: 38° 10’↵↵",
        "payloadType": "str",
        "x": 370,
        "y": 2300,
        "wires": [
            [
                "07e242b721fb7dee"
            ]
        ]
    },
    {
        "id": "07e242b721fb7dee",
        "type": "split",
        "z": "184d796edadda5ca",
        "name": "",
        "splt": "↵",
        "spltType": "str",
        "arraySplt": 1,
        "arraySpltType": "len",
        "stream": false,
        "addname": "",
        "x": 930,
        "y": 2220,
        "wires": [
            [
                "8a6c029044e81d68"
            ]
        ]
    },
    {
        "id": "08d73d95ca6fab87",
        "type": "join",
        "z": "184d796edadda5ca",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "5",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 1270,
        "y": 2220,
        "wires": [
            [
                "647e3e79166ee51b"
            ]
        ]
    },
    {
        "id": "8a6c029044e81d68",
        "type": "function",
        "z": "184d796edadda5ca",
        "name": "get values",
        "func": "if (msg.payload != \"\") { \n    msg.payload = msg.payload.split(\":\")\n    msg.topic = msg.payload[0].trim()\n    msg.payload = msg.payload[1].trim()\n    return msg \n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1090,
        "y": 2220,
        "wires": [
            [
                "08d73d95ca6fab87",
                "922c1f33e9f9b99c"
            ]
        ]
    },
    {
        "id": "647e3e79166ee51b",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 34",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1440,
        "y": 2220,
        "wires": []
    },
    {
        "id": "922c1f33e9f9b99c",
        "type": "switch",
        "z": "184d796edadda5ca",
        "name": "",
        "property": "topic",
        "propertyType": "msg",
        "rules": [
            {
                "t": "cont",
                "v": "Axis X",
                "vt": "str"
            },
            {
                "t": "cont",
                "v": "Axis Y",
                "vt": "str"
            },
            {
                "t": "cont",
                "v": "Axis Z",
                "vt": "str"
            },
            {
                "t": "cont",
                "v": "Declination",
                "vt": "str"
            },
            {
                "t": "cont",
                "v": "Heading",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 5,
        "x": 1210,
        "y": 2080,
        "wires": [
            [
                "802f43b231723e79"
            ],
            [
                "2ec18247eb94a161"
            ],
            [
                "764bd831387b443a"
            ],
            [
                "c2a57aaf137d586b"
            ],
            [
                "12c964010c9fb58f"
            ]
        ]
    },
    {
        "id": "802f43b231723e79",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 35",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1460,
        "y": 1920,
        "wires": []
    },
    {
        "id": "2ec18247eb94a161",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 36",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1460,
        "y": 1980,
        "wires": []
    },
    {
        "id": "764bd831387b443a",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 37",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1460,
        "y": 2040,
        "wires": []
    },
    {
        "id": "c2a57aaf137d586b",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 38",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1460,
        "y": 2100,
        "wires": []
    },
    {
        "id": "12c964010c9fb58f",
        "type": "debug",
        "z": "184d796edadda5ca",
        "name": "debug 39",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "true",
        "targetType": "full",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 1460,
        "y": 2160,
        "wires": []
    }
]

Ja den Code von Vincent habe ich auch bei mir.
Der Test mit dem inject funktioniert bei mir auch.
Wenn aber anstatt der inject Daten die payload daten verwendet werden, wird im er nur der Y Wert verarbeitet.

So sieht das Ergebnis bei mir aus, von den Sensor Daten:
image

Topic Axis X wäre schon mal gut.
Aber payload String “250.24 Axis Y” ist bereits falsch.

Der manuell Inject sieht gut aus:

folgendes ist mir aufgefallen:

Die Sensor Werte sehen im Debug zwar so aus:
image

Aber wenn ich auf “Werte kopieren” klicke, kommen diese Werte heraus:

Axis X: 252.08
Axis Y: 152.72
Axis Z: 1.84
Declination: 2° 15’
Heading: 33° 28’

Wenn ich diese nun in das inject gebe kommt der gleiche Fehler wie anfangs:

[{"id":"e6d0cd583524668a","type":"inject","z":"0d480fc2f6a2fd31","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Axis X: 250.24 Axis Y: 149.96 Axis Z: -0.92 Declination: 2° 15' Heading: 33° 11'","payloadType":"str","x":410,"y":1220,"wires":[["ae7a99ee9dbfb3f1"]]}]

Mal ne dumme Frage warum schreibt ihr das Script nicht so um das es ein Json in die Console schmeist das doch dann viel einfach beim zerlegen.

oder einfach die Werte in den Mqtt legen und das Python ding ganz Normal von der Console Starten.

Daniel aus dem WomoLIN Projekt hat was für Python geschrieben um so kleine Services schnell und einfach zu schreiben.

@derkleinePunk Hi Micha, danke dir. habe das sogar schon wegen der Truma Anbindung auf dem raspi am Laufen.

Muss nur noch durchsteigen, wie ich den print vom Sensor in MQTT bekommen

Habe es hinbekommen.
das array muss anstatt 1 auf eine feste Länge von 2 eingestellt werden:
image

So sieht es bisher aus:

[{"id":"d991667924d88bf1","type":"split","z":"0d480fc2f6a2fd31","name":"","splt":"\\n","spltType":"str","arraySplt":"2","arraySpltType":"len","stream":false,"addname":"","x":930,"y":540,"wires":[["4f4d073ccd14c593"]]},{"id":"beb5449852ba5273","type":"inject","z":"0d480fc2f6a2fd31","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"10","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":540,"wires":[["8a94859fa0d1e746"]]},{"id":"8a94859fa0d1e746","type":"exec","z":"0d480fc2f6a2fd31","command":"sudo timeout 5 python3 /home/pi/quick2wire-python-api/GY-271.py","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":540,"y":540,"wires":[["5e75a042b2f76769","d991667924d88bf1"],[],[]]},{"id":"5e75a042b2f76769","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 30","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":900,"y":420,"wires":[]},{"id":"ffff5ef0adddb936","type":"join","z":"0d480fc2f6a2fd31","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"5","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1290,"y":540,"wires":[["43a59ad1a4d1617d"]]},{"id":"4f4d073ccd14c593","type":"function","z":"0d480fc2f6a2fd31","name":"get values","func":"if (msg.payload != \"\") { \n    msg.payload = msg.payload.split(\":\")\n    msg.topic = msg.payload[0].trim()\n    msg.payload = msg.payload[1].trim()\n    return msg \n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1110,"y":540,"wires":[["39ad86428c364122"]]},{"id":"43a59ad1a4d1617d","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 34","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":700,"wires":[]},{"id":"39ad86428c364122","type":"switch","z":"0d480fc2f6a2fd31","name":"","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"Axis X","vt":"str"},{"t":"cont","v":"Axis Y","vt":"str"},{"t":"cont","v":"Axis Z","vt":"str"},{"t":"cont","v":"Declination","vt":"str"},{"t":"cont","v":"Heading","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":1230,"y":400,"wires":[["45bd928c4e3d7f74","8607e4d3f7bbe5e2"],["c2b67a7057721481","0a2bdfe61efdf4ad"],["017cea65cc6c7c75","88db5975a696757f"],["016561b67fe69c2c","0eed4900b2e39973"],["394953e893f18348","f17bc37aeb314bb1"]]},{"id":"c2b67a7057721481","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 36","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":180,"wires":[]},{"id":"017cea65cc6c7c75","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 37","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":300,"wires":[]},{"id":"016561b67fe69c2c","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 38","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":420,"wires":[]},{"id":"394953e893f18348","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 39","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":540,"wires":[]},{"id":"45bd928c4e3d7f74","type":"debug","z":"0d480fc2f6a2fd31","name":"debug 40","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1500,"y":60,"wires":[]},{"id":"540790c6854f49f7","type":"mqtt in","z":"0d480fc2f6a2fd31","name":"","topic":"Axis X","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":490,"y":840,"wires":[["b737d17b957cdcb2","2089b4eff5365d40"]]},{"id":"518fcd7f1cd2e38f","type":"mqtt in","z":"0d480fc2f6a2fd31","name":"","topic":"Axis Y","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":553,"y":920,"wires":[["5b6f5767e86bbdfc","2089b4eff5365d40"]]},{"id":"c1e250285030a24a","type":"mqtt in","z":"0d480fc2f6a2fd31","name":"","topic":"Axis Z","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":459,"y":1003,"wires":[["e0fcaddd89bb819e","2089b4eff5365d40"]]},{"id":"16448da8b758479f","type":"mqtt in","z":"0d480fc2f6a2fd31","name":"","topic":"Declination","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":444,"y":1097,"wires":[["5c4389a0314b8f03","2089b4eff5365d40"]]},{"id":"8840574a5bad2536","type":"mqtt in","z":"0d480fc2f6a2fd31","name":"","topic":"Heading","qos":"2","datatype":"auto-detect","broker":"0ddb07c65cbb68bc","nl":false,"rap":false,"inputs":0,"x":413,"y":1213,"wires":[["2553cb555573c817","2089b4eff5365d40"]]},{"id":"b737d17b957cdcb2","type":"ui_gauge","z":"0d480fc2f6a2fd31","name":"","group":"41966ddc.701f44","order":1,"width":0,"height":0,"gtype":"compass","title":"X","label":"units","format":"{{value}}","min":0,"max":"180","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":496,"y":798,"wires":[]},{"id":"5b6f5767e86bbdfc","type":"ui_gauge","z":"0d480fc2f6a2fd31","name":"","group":"214bf69f.fbceca","order":1,"width":0,"height":0,"gtype":"compass","title":"Y","label":"units","format":"{{value}}","min":0,"max":"180","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":491,"y":898,"wires":[]},{"id":"e0fcaddd89bb819e","type":"ui_gauge","z":"0d480fc2f6a2fd31","name":"","group":"15c53cc2.e75d93","order":1,"width":0,"height":0,"gtype":"compass","title":"Z","label":"units","format":"{{value}}","min":0,"max":"180","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":447,"y":953,"wires":[]},{"id":"5c4389a0314b8f03","type":"ui_gauge","z":"0d480fc2f6a2fd31","name":"","group":"41966ddc.701f44","order":2,"width":0,"height":0,"gtype":"wave","title":"Declination","label":"units","format":"{{value}}","min":0,"max":"65536","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":476,"y":1052,"wires":[]},{"id":"2553cb555573c817","type":"ui_gauge","z":"0d480fc2f6a2fd31","name":"","group":"214bf69f.fbceca","order":2,"width":0,"height":0,"gtype":"wave","title":"Heading","label":"units","format":"{{value}}","min":0,"max":10,"colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":442,"y":1167,"wires":[]},{"id":"4eeaa052dc8ba659","type":"json","z":"0d480fc2f6a2fd31","name":"","property":"payload","action":"","pretty":false,"x":943,"y":959,"wires":[["1ec14f91a27e4753"]]},{"id":"1ec14f91a27e4753","type":"debug","z":"0d480fc2f6a2fd31","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1151,"y":958,"wires":[]},{"id":"2089b4eff5365d40","type":"join","z":"0d480fc2f6a2fd31","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","accumulate":false,"timeout":"6","count":"6","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":823,"y":960,"wires":[["4eeaa052dc8ba659"]]},{"id":"cc0697299e6b338f","type":"inject","z":"0d480fc2f6a2fd31","name":"Alignment Parameters","props":[{"p":"payload","v":"","vt":"date"},{"p":"topic","v":"Your Alignment Parameters","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":"60","topic":"Your Alignment Parameters","payload":"","payloadType":"date","x":757,"y":817,"wires":[["2089b4eff5365d40"]]},{"id":"8607e4d3f7bbe5e2","type":"mqtt out","z":"0d480fc2f6a2fd31","name":"","topic":"Axis X","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1510,"y":120,"wires":[]},{"id":"0a2bdfe61efdf4ad","type":"mqtt out","z":"0d480fc2f6a2fd31","name":"","topic":"Axis Y","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1510,"y":240,"wires":[]},{"id":"88db5975a696757f","type":"mqtt out","z":"0d480fc2f6a2fd31","name":"","topic":"Axis Z","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1510,"y":360,"wires":[]},{"id":"0eed4900b2e39973","type":"mqtt out","z":"0d480fc2f6a2fd31","name":"","topic":"Declination","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1530,"y":480,"wires":[]},{"id":"f17bc37aeb314bb1","type":"mqtt out","z":"0d480fc2f6a2fd31","name":"","topic":"Heading","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"0ddb07c65cbb68bc","x":1520,"y":600,"wires":[]},{"id":"ab01324c.4824","type":"inject","z":"0d480fc2f6a2fd31","name":"","props":[{"p":"payload","v":"270","vt":"num"},{"p":"topic","v":"","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"270","payloadType":"num","x":310,"y":660,"wires":[["3280794c.eb6396"]]},{"id":"3280794c.eb6396","type":"change","z":"0d480fc2f6a2fd31","name":"Convert Wind Degrees To Text","rules":[{"t":"set","p":"directions","pt":"flow","to":"$exists($flowContext(\"directions\")) ?  $flowContext(\"directions\") : [\"N\", \"NNE\", \"NE\", \"ENE\", \"E\", \"ESE\", \"SE\", \"SSE\", \"S\", \"SSW\", \"SW\", \"WSW\", \"W\", \"WNW\", \"NW\", \"NNW\"] ","tot":"jsonata"},{"t":"set","p":"index","pt":"msg","to":"$string($floor((payload / 22.5) + 0.5) % 16)","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"$flowContext(\"directions[\"&index&\"]\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":680,"wires":[["10a54176.da8daf"]]},{"id":"10a54176.da8daf","type":"debug","z":"0d480fc2f6a2fd31","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":870,"y":680,"wires":[]},{"id":"0ddb07c65cbb68bc","type":"mqtt-broker","name":"","broker":"http://localhost","port":"1883","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"41966ddc.701f44","type":"ui_group","name":"X Axis","tab":"65f4b922.5ef4a8","order":1,"disp":true,"width":"6","collapse":false},{"id":"214bf69f.fbceca","type":"ui_group","name":"Y Axis","tab":"65f4b922.5ef4a8","order":2,"disp":true,"width":"6","collapse":false},{"id":"15c53cc2.e75d93","type":"ui_group","name":"Z Axis","tab":"65f4b922.5ef4a8","order":3,"disp":true,"width":"6","collapse":false},{"id":"65f4b922.5ef4a8","type":"ui_tab","name":"X","icon":"dashboard","order":2}]

Mal ne ganz blöde Frage.
Sind die angezeigten Werte Grad Werte, die „genullt“ ( kalibriert ) werden müsen ?
Der GY-271 soll auch einen Kompass haben. Wie interpretiert man die Kompass Werte ? Declination und Heading haben doch nur etwas mit der Korrektur in Bezug auf dem aktuellen Ort zu tun, oder liege ich da falsch ?

1 Like

@range4200t Stefan,
hast du das eigentlich weiterverfolgt und einen funktionierenden Lagesensor hinbekommen?

Hätte da echt Interesse so etwas einzubauen :slight_smile:

Gruß Sven

Hi Sven, leider nein.
Aktuell bin ich dabei den WoWa fertig zu bauen.
Die Elektronik liegt einbaufertig da, somit kann ich überhaupt nicht testen, oder programmieren.
Gruss Stefan

So ich habe mir jetzt mal ein MPU6050 besorgt und das ganze mit einem ESP32 verbunden, die Werte kommen bei mir per MQTT, das funktioniert soweit, aber irgendwie stehe ich jetzt vor dem selben Problem der Kalibrierung.
Ich bekomme es auch noch hin die Werte zu “Nullen”, nach einem Neustart ist das dann aber ja wieder hinfällig da de Null vom Sensor ja beim Start gemacht wird egal in welcher lage er gerade ist oder?
Hat da irgendwer einen Lösungsvorschlag.

Stell doch mal beide Codes rein, dann können wir zusammen rumspielen.
einen MPU6050, und einen esp32 hab ich auch noch rumfliegen.
Eine Wasserwaage würde mir auch noch fehlen :wink:
Gruß Arno

Hey Sven,

du kannst den MPU6050 auch direkt auf den I2C Bus vom Relayboard legen.
Für Node-Red gibts dann schon ein paar Integrationen auf Github.

Vielleicht kommt von uns aber auch bald neue Hardware mit einem neuen Image :wink: :shushing_face:

Liebe Grüße
Karl

1 Like