Node Red - Hilfe-/Frage-/Ideen-/Austausch - Thread

ich brauche das json komplett und dort kannst du dann beim key ein paar werte ändern.

{„PASSKEY“:„456A552BA27EB61C362A77A2CE5AF67C“,„stationtype“:„GW1000A_V1.6.8“,„dateutc“:„2024-10-04 18:38:36“,„tempinf“:„75.2“,„humidityin“:„52“,„baromrelin“:„29.982“,„baromabsin“:„29.244“,„tempf“:„46.4“,„humidity“:„89“,„winddir“:„353“,„windspeedmph“:„0.00“,„windgustmph“:„0.00“,„maxdailygust“:„20.58“,„solarradiation“:„0.00“,„uv“:„0“,„rainratein“:„0.000“,„eventrainin“:„0.000“,„hourlyrainin“:„0.000“,„dailyrainin“:„0.000“,„weeklyrainin“:„1.512“,„monthlyrainin“:„1.331“,„yearlyrainin“:„35.051“,„totalrainin“:„35.051“,„temp1f“:„43.88“,„pm25_ch2“:„5.0“,„pm25_avg_24h_ch2“:„4.4“,„lightning_time“:„1726762456“,„lightning_num“:„0“,„lightning“:„31“,„wh65batt“:„0“,„batt1“:„0“,„pm25batt2“:„4“,„wh57batt“:„5“,„freq“:„868M“,„model“:„GW1000_Pro“}

So jetzt aber ^^

Das ist leider falsch formatiert und nicht nutzbar.
Bitte kopiere es nochmal und füge es als Code ein.

[
    {
        "id": "72bd38d95d97ef31",
        "type": "inject",
        "z": "b0fa15c342fc217c",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{   \"PASSKEY\": \"456A552BA27EB61C362A77A2CE5AF67C\",   \"stationtype\": \"GW1000A_V1.6.8\",   \"dateutc\": \"2024-10-04 18:38:36\",   \"tempinf\": \"75.2\",   \"humidityin\": \"52\",   \"baromrelin\": \"29.982\",   \"baromabsin\": \"29.244\",   \"tempf\": \"46.4\",   \"humidity\": \"89\",   \"winddir\": \"353\",   \"windspeedmph\": \"0.00\",   \"windgustmph\": \"0.00\",   \"maxdailygust\": \"20.58\",   \"solarradiation\": \"0.00\",   \"uv\": \"0\",   \"rainratein\": \"0.000\",   \"eventrainin\": \"0.000\",   \"hourlyrainin\": \"0.000\",   \"dailyrainin\": \"0.000\",   \"weeklyrainin\": \"1.512\",   \"monthlyrainin\": \"1.331\",   \"yearlyrainin\": \"35.051\",   \"totalrainin\": \"35.051\",   \"temp1f\": \"43.88\",   \"pm25_ch2\": \"5.0\",   \"pm25_avg_24h_ch2\": \"4.4\",   \"lightning_time\": \"1726762456\",   \"lightning_num\": \"0\",   \"lightning\": \"31\",   \"wh65batt\": \"0\",   \"batt1\": \"0\",   \"pm25batt2\": \"4\",   \"wh57batt\": \"5\",   \"freq\": \"868M\",   \"model\": \"GW1000_Pro\" }",
        "payloadType": "json",
        "x": 170,
        "y": 140,
        "wires": [
            [
                "dc5cc6205adfb716"
            ]
        ]
    },
    {
        "id": "dc5cc6205adfb716",
        "type": "http request",
        "z": "b0fa15c342fc217c",
        "name": "",
        "method": "PUT",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "localhost:1880/put1",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 390,
        "y": 140,
        "wires": [
            [
                "1d86bcf69c44770c"
            ]
        ]
    },
    {
        "id": "5456989bd55d0772",
        "type": "http in",
        "z": "b0fa15c342fc217c",
        "name": "",
        "url": "/put1",
        "method": "put",
        "upload": false,
        "swaggerDoc": "",
        "x": 180,
        "y": 220,
        "wires": [
            [
                "adf3a6fd2d9297be",
                "990e9e6113c609a7",
                "6182da7eddeeb380"
            ]
        ]
    },
    {
        "id": "adf3a6fd2d9297be",
        "type": "debug",
        "z": "b0fa15c342fc217c",
        "name": "debug 98",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 360,
        "y": 220,
        "wires": []
    },
    {
        "id": "990e9e6113c609a7",
        "type": "http request",
        "z": "b0fa15c342fc217c",
        "name": "",
        "method": "PUT",
        "ret": "obj",
        "paytoqs": "ignore",
        "url": "localhost:1880/put2",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 370,
        "y": 260,
        "wires": [
            [
                "5dd71d8c366933ee"
            ]
        ]
    },
    {
        "id": "1d86bcf69c44770c",
        "type": "debug",
        "z": "b0fa15c342fc217c",
        "name": "debug 99",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 580,
        "y": 140,
        "wires": []
    },
    {
        "id": "5dd71d8c366933ee",
        "type": "debug",
        "z": "b0fa15c342fc217c",
        "name": "debug 100",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 590,
        "y": 260,
        "wires": []
    },
    {
        "id": "be7d6938439e1ef8",
        "type": "http in",
        "z": "b0fa15c342fc217c",
        "name": "",
        "url": "/put2",
        "method": "put",
        "upload": false,
        "swaggerDoc": "",
        "x": 180,
        "y": 340,
        "wires": [
            [
                "48f0ea8bb81ab90e",
                "40460cb78a8ed43c"
            ]
        ]
    },
    {
        "id": "48f0ea8bb81ab90e",
        "type": "debug",
        "z": "b0fa15c342fc217c",
        "name": "debug 101",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 370,
        "y": 340,
        "wires": []
    },
    {
        "id": "40460cb78a8ed43c",
        "type": "http response",
        "z": "b0fa15c342fc217c",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 350,
        "y": 380,
        "wires": []
    },
    {
        "id": "6182da7eddeeb380",
        "type": "http response",
        "z": "b0fa15c342fc217c",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 350,
        "y": 300,
        "wires": []
    }
]

hier habe ich deinen Code mal richtig formatiert und neu eingefügt und es funzt.

1 „Gefällt mir“
{"PASSKEY":"12FDSDG678A27EB61C362A77A2CE5AF67C","stationtype":"GW1000A_V1.6.8","dateutc":"2024-10-04 19:45:13","tempinf":"75.4","humidityin":"51","baromrelin":"29.982","baromabsin":"29.244","tempf":"47.1","humidity":"89","winddir":"359","windspeedmph":"0.00","windgustmph":"0.00","maxdailygust":"20.58","solarradiation":"0.00","uv":"0","rainratein":"0.000","eventrainin":"0.000","hourlyrainin":"0.000","dailyrainin":"0.000","weeklyrainin":"1.512","monthlyrainin":"1.331","yearlyrainin":"35.051","totalrainin":"35.051","temp1f":"43.70","pm25_ch2":"6.0","pm25_avg_24h_ch2":"4.3","lightning_time":"1726762456","lightning_num":"0","lightning":"31","wh65batt":"0","batt1":"0","pm25batt2":"4","wh57batt":"5","freq":"868M","model":"GW1000_Pro"}

So müsste es jetzt aber passen oder?

jo auch damit funzt es mit dem Testflow.

Hmmm, und warum klappt es nicht mit dem originalen…

Ich habe den Unterschied gefunden, das „Original“ kommt mit POST und nicht mit PUT in node-red an. Keine Ahnung was das bedeutet, aber wenn ich auf PUT umstelle funktioniert das „Original“ auch nicht mehr, (also es kommen keine Daten an)

Dann muss es als Post weitergeleitet werden. Kann ich mir morgen mal anschauen.

2 „Gefällt mir“

Habe es mal zum Test als Post gesendet und auch empfangen und dann als put weitergeleitet, da läuft alles fehlerfrei durch.
Da muss noch ein anderer Fehler bei dir sein.
Hast du mal nen Screenshot deines Flow wo die Daten von der Wetterstation ankommen und wie du sie dann weiterleitest.
Kannst auch den Bereich des Flows mal als Code einstellen.

1 „Gefällt mir“

Sehr gern:

[
    {
        "id": "f59c8ccf.84175",
        "type": "http response",
        "z": "a9a64973.eb7b4",
        "name": "",
        "statusCode": "",
        "headers": {},
        "x": 230,
        "y": 1060,
        "wires": []
    },
    {
        "id": "1859b43a.cc152c",
        "type": "http in",
        "z": "a9a64973.eb7b4",
        "name": "Incoming Weather Data",
        "url": "/weather/",
        "method": "post",
        "upload": false,
        "swaggerDoc": "",
        "x": 180,
        "y": 1120,
        "wires": [
            [
                "efd72300.b69ba",
                "f59c8ccf.84175",
                "89ffcd89.b5a3b8",
                "5ab99d0.a2e26e4",
                "4ab1ace5.a54ff4",
                "bc94556c.d122d8",
                "9a2029c7.86b8b",
                "57666012.b4dc08",
                "6be61423.40d644",
                "faf7edf4.37356",
                "6b906e38.fecfc8",
                "e3c71d46.a5a5e",
                "9ceb2586.447a28",
                "afba6a08.e27108",
                "9b43b2a6.0a0118",
                "6715e296.6d9514",
                "9479b1c7.8e86b8",
                "a3dc22ef.71cac",
                "bf3ada58.eff998",
                "40aca74c.fc63d8",
                "a9835891.e3d9e8",
                "afe7af18.d62a4",
                "abee83d1.7880f",
                "c753ff31.8a5dc8",
                "6e0cc86a.541e58",
                "93a7d59c.e5c9f",
                "fddfd04a.9ac1e",
                "1ae77cd0.ff5b8b",
                "406731f0.44dbe",
                "847123ab.5c3b5",
                "b032316c.d2c01",
                "e5b94913.344768",
                "5ba545ad.2052bc",
                "e8214429.b2bcc8",
                "67b60413.c2cfb4",
                "95f5d8d3.27d6c",
                "7f44672.43f0b18",
                "35e682c.58d917e",
                "a93a31b6.6a6bb",
                "de5fc66c.dedce",
                "8f36b4c1.90f9a8",
                "c9c78f25.9472e8",
                "68981b4d.e32d64",
                "2691a13cd1c496cd"
            ]
        ]
    },
    {
        "id": "efd72300.b69ba",
        "type": "debug",
        "z": "a9a64973.eb7b4",
        "name": "os",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 430,
        "y": 1140,
        "wires": []
    },
    {
        "id": "fa3ab7a0.69f1a",
        "type": "debug",
        "z": "a9a64973.eb7b4",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 590,
        "y": 1200,
        "wires": []
    },
    {
        "id": "24c6e43c.19e9bc",
        "type": "file",
        "z": "a9a64973.eb7b4",
        "name": "",
        "filename": "/home/pi/Shared/wetter.log",
        "appendNewline": true,
        "createDir": true,
        "overwriteFile": "false",
        "encoding": "none",
        "x": 360,
        "y": 1200,
        "wires": [
            [
                "fa3ab7a0.69f1a"
            ]
        ]
    },
    {
        "id": "b032316c.d2c01",
        "type": "csv",
        "z": "a9a64973.eb7b4",
        "name": "",
        "sep": ";",
        "hdrin": false,
        "hdrout": "none",
        "multi": "one",
        "ret": "\\r",
        "temp": "",
        "skip": "1",
        "strings": true,
        "include_empty_strings": true,
        "include_null_values": true,
        "x": 150,
        "y": 1200,
        "wires": [
            [
                "24c6e43c.19e9bc"
            ]
        ]
    },
    {
        "id": "2691a13cd1c496cd",
        "type": "http request",
        "z": "a9a64973.eb7b4",
        "name": "",
        "method": "PUT",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "192.168.1.182:8123/api/webhook/ca23511fc70c8ee070dd2d3f2a2e79c4",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 190,
        "y": 1300,
        "wires": [
            [
                "cad8223b.399c98"
            ]
        ]
    },
    {
        "id": "cad8223b.399c98",
        "type": "debug",
        "z": "a9a64973.eb7b4",
        "name": "debug WS",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 190,
        "y": 1360,
        "wires": []
    }
]

Bei dieser Variante bekommst du bei dem Request Node den Fehler?
kann es sein das du einen String als Nachricht von der Wetterstation erhältst ?
Kannst du mal genau schauen welches Zeichen an der Stelle 32 steht ?
Grundsätzlich sehe ich erstmal keinen Fehler, jetzt ist echt die Frage welches Zeichen den Fehler auslöst und in welchem Node.

Nein, es wird einfach nichts weitergeleitet. debug WS bleibt einfach leer.

Wie kann ich das herausfinden? Was ich dir geschickt habe ist das was direkt bei „incoming weather data“ ankommt konfigurieren kann ich da nichts :frowning:

Da kommt kein Fehler mehr an Stelle 32, bzw. das scheint zu einem anderen node zu gehören wenn der Solarbetriebene Partikelsensor nicht funktioniert…

Der Request Node sollte beim senden einen blauen Punkt anzeigen und eine Antwort bekommst du nicht zwangsläufig vom. Node wenn der Empfänger nichts sendet.

Ich schau mir mal die HA Seite an mit der Ecowitt Integration dazu.

1 „Gefällt mir“

Die Station sendet ja alle 16 Sekunden Werte, das kann ich ja auch am os-debug-node sehen und der blaue Punkt unter http request blinkt auch kurz auf, aber an debug WS kommt nichts raus.

schau mal das du bei der ecowitt das debug einstellst, bei mir kommt da ein Fehler wenn ich deine Daten dahin sende.

2024-10-05 14:01:36.464 ERROR (MainThread) [homeassistant.components.webhook] Error processing webhook 6ee8b2709455c579cd77bfcc7786152f
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/webhook/__init__.py", line 172, in async_handle_webhook
    response = await webhook["handler"](hass, webhook_id, request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/ecowitt/__init__.py", line 27, in handle_webhook
    return await ecowitt.handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aioecowitt/server.py", line 101, in handler
    self.last_values[data["PASSKEY"]] = data.copy()
                     ~~~~^^^^^^^^^^^
KeyError: 'PASSKEY'

1 „Gefällt mir“

Der Empfänger ist HA in diesem Fall.

Bestimmt weil der Passkey nicht zu deinem passt, der wird jedes mal neu erstellt glaube ich…

Ich habe keine Wetterstation :joy: ich nutze nur deine Daten dafür.
Deswegen sollst du das Debug aktivieren und schauen was bei dir da steht wenn die Nachricht ankommt.

Da steht auch das der Passkey falsch ist. :frowning: Es soll noch andere Integrationen geben, ich schau da mal…

1 „Gefällt mir“

War absolut nicht negativ gemeint.
Ich habs mit Node Red nicht so. Ist mir alles viel zu kompliziert.

Eigentlich wollte ich mich ja raushalten, habe ja keinen Plan was Not Red angeht.

@JayJayX macht Dir das Leben doch nicht so schwer.
Richte unter Home Assistant die Ecowitt Integration. Dauert keine Minute. Installiere unter Node Red die Home Assistant Palette. Und alle Deine Sensoren der Wetter Stationen stehen Dir auch in Node Red zur verfügung.

Gruß
Osorkon

4 „Gefällt mir“