Part of map sensors comunmity with Home Matic Sensirion SPS30?

Hello,

How can I register my Home Matic Sensirion SPS30 fine dust sensor with you and (if possible) become part of the community ?

I would like to provide the data and preferably using NodeRed.

Is there possibly a tutorial for the connection with NodeRed ?
From whom do I get the sensor ID ?

BR Quito96

Look at this page in the part “API sensor.commnunity”:

Try to make your system produce such POST request:

Content-Type: application/json  
X-Pin: 1  
X-Sensor: esp8266-12345678  
{
   "software_version": "your_version", 
  "sensordatavalues":[
    {"value_type":"P1","value":"66.04"},
    {"value_type":"P2","value":"53.32"}
  ]
}  

Check the correct X-Pin and endpoint values for both the PM and THP sensors and both the SC and Madavi servers.

But don’t overload the API!

I read a bit about NodeRed. It should work easily.

Thank you for the information
I have just created the sensors and then
the ID in the accont. Now I can start to create the
Node Red components.

BR

You’re welcome!
Please share the code for NodeRed. It could interest others in the community.

For Madavi, I was told:

Madavi API needs a prefix for the value types. So if there is a BME280 sending data then i.e. ‘humidity’ weill become ‘BME280_humidity’. Other prefixes can be found in the firmware source code.

It is quite straight forward.

Which ID did you use ? The MAC as HEX byte of the Home Matic ? It has to be unique.

If your not using an ESP8266 or an ESP32, please ask tech@sensor.community for the good prefix. There are already a few in devices.sensor.community but nothing for NodeRed I think

yes gladly, as soon as I have successfully implemented it.
THX

Hello,

here comes my solution to send data from my homematic rasberrymatic
System with HmIP-SFD (SPS30) Sensor via NodeRed.

  1. Register at https://devices.sensor.community
  2. Create a New Sensor (raspi, SPS30, BME280)
  3. Import Node Red Flow below (Adjustments required)
[
    {
        "id": "168fbfbd.1b349",
        "type": "tab",
        "label": "Map-Sensor-Community ",
        "disabled": false,
        "info": "https://devices.sensor.community/sensors"
    },
    {
        "id": "8456d0bc.fbecd",
        "type": "comment",
        "z": "168fbfbd.1b349",
        "name": "Post homematic Data to https://api.sensor.community/v1/push-sensor-data/",
        "info": "",
        "x": 710,
        "y": 80,
        "wires": []
    },
    {
        "id": "28c280c5.420378",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_2.5",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1",
        "datapoint": "MASS_CONCENTRATION_PM_2_5",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 140,
        "y": 140,
        "wires": [
            [
                "6273c588.8e5af4"
            ]
        ]
    },
    {
        "id": "7b740d5b.d39214",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_10",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1",
        "datapoint": "MASS_CONCENTRATION_PM_10",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 140,
        "y": 200,
        "wires": [
            [
                "99377a93.bbeef"
            ]
        ]
    },
    {
        "id": "91343d53.60237",
        "type": "debug",
        "z": "168fbfbd.1b349",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 990,
        "y": 340,
        "wires": []
    },
    {
        "id": "bb44220e.9c8ae",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_Temperature",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1 Feinstaubsensor:1",
        "datapoint": "ACTUAL_TEMPERATURE",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 170,
        "y": 260,
        "wires": [
            [
                "e00d9f12.d75c1"
            ]
        ]
    },
    {
        "id": "1f67f8c6.2f425f",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_Humidity",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1 Feinstaubsensor:1",
        "datapoint": "HUMIDITY",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 160,
        "y": 320,
        "wires": [
            [
                "1cb5402.8992d4"
            ]
        ]
    },
    {
        "id": "6273c588.8e5af4",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pm25",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pm25",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 140,
        "wires": [
            [
                "cc7a7438.78d0f"
            ]
        ]
    },
    {
        "id": "cc7a7438.78d0f",
        "type": "join",
        "z": "168fbfbd.1b349",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "2",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 630,
        "y": 180,
        "wires": [
            [
                "7dca90ee.dd1e"
            ]
        ]
    },
    {
        "id": "99377a93.bbeef",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pm10",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pm10",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 200,
        "wires": [
            [
                "cc7a7438.78d0f"
            ]
        ]
    },
    {
        "id": "7dca90ee.dd1e",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "Prepare json Data",
        "func": "msg.headers = {\n    \"Content-Type\": \"application/json\",\n    \"X-Pin\": \"1\",\n    \"X-Sensor\": \"raspi-xxxxxx\"\n};\nmsg.payload = {\n    \"software_version\": \"NRZ- 2020129\",\n    \"sensordatavalues\": [\n        {\"value_type\": \"P1\", \"value\": parseFloat(msg.payload.pm25)},\n        {\"value_type\": \"P2\", \"value\": parseFloat(msg.payload.pm10)}\n    ]\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 790,
        "y": 180,
        "wires": [
            [
                "6062b7a6.f11b4",
                "7e61aafa.bdf9d4"
            ]
        ]
    },
    {
        "id": "6062b7a6.f11b4",
        "type": "http request",
        "z": "168fbfbd.1b349",
        "name": "POST PM DATA",
        "method": "POST",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://api.sensor.community/v1/push-sensor-data/",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1000,
        "y": 180,
        "wires": [
            []
        ]
    },
    {
        "id": "209ee0bb.85d3b8",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "Prepare json Data",
        "func": "msg.headers = {\n    \"Content-Type\": \"application/json\",\n    \"X-Pin\": \"11\",\n    \"X-Sensor\": \"raspi-xxxxxx\"\n};\nmsg.payload = {\n    \"software_version\": \"NRZ- 2020129\",\n    \"sensordatavalues\": [\n        {\"value_type\": \"temperature\", \"value\": parseFloat(msg.payload.temperature)},\n        {\"value_type\": \"humidity\", \"value\": parseFloat(msg.payload.humidity)},\n        {\"value_type\": \"pressure\", \"value\": parseFloat(msg.payload.pressure)}\n    ]\n};\nreturn msg;\n\n\n\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 790,
        "y": 300,
        "wires": [
            [
                "781e1a98.6fd29c",
                "91343d53.60237"
            ]
        ]
    },
    {
        "id": "781e1a98.6fd29c",
        "type": "http request",
        "z": "168fbfbd.1b349",
        "name": "POST  DATA",
        "method": "POST",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://api.sensor.community/v1/push-sensor-data/",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 990,
        "y": 300,
        "wires": [
            []
        ]
    },
    {
        "id": "e00d9f12.d75c1",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_temperature",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "temperature",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 420,
        "y": 260,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "d31e430e.ec1b48",
        "type": "join",
        "z": "168fbfbd.1b349",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 630,
        "y": 300,
        "wires": [
            [
                "209ee0bb.85d3b8"
            ]
        ]
    },
    {
        "id": "1cb5402.8992d4",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_humidity",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "humidity",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 320,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "ab77be26.de1d7",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pressure",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pressure",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 490,
        "y": 380,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "9339e84a.e1b108",
        "type": "json",
        "z": "168fbfbd.1b349",
        "name": "",
        "property": "payload",
        "action": "obj",
        "pretty": false,
        "x": 450,
        "y": 500,
        "wires": [
            [
                "8b65c7d6.1a6228"
            ]
        ]
    },
    {
        "id": "834eb211.ed0578",
        "type": "mqtt in",
        "z": "168fbfbd.1b349",
        "name": "tele/tasmota_E08D2C/SENSOR",
        "topic": "tele/tasmota_E08D2C/SENSOR",
        "qos": "2",
        "datatype": "json",
        "broker": "eec9b617.98a998",
        "x": 210,
        "y": 380,
        "wires": [
            [
                "9339e84a.e1b108"
            ]
        ]
    },
    {
        "id": "2ac9c776.a95bf",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "offset",
        "func": "msg.payload = Number(msg.payload)+9;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 450,
        "y": 420,
        "wires": [
            [
                "ab77be26.de1d7"
            ]
        ]
    },
    {
        "id": "8b65c7d6.1a6228",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "BME280.Pressure",
        "func": "var msg_pres = {payload:msg.payload.BME280.Pressure.toFixed(0)};\nreturn msg_pres;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 490,
        "y": 460,
        "wires": [
            [
                "2ac9c776.a95bf"
            ]
        ]
    },
    {
        "id": "7e61aafa.bdf9d4",
        "type": "debug",
        "z": "168fbfbd.1b349",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 990,
        "y": 220,
        "wires": []
    },
    {
        "id": "38263145.35ea0e",
        "type": "ccu-connection",
        "name": "192.168.2.113",
        "host": "192.168.2.113",
        "regaEnabled": true,
        "bcrfEnabled": true,
        "iprfEnabled": true,
        "virtEnabled": true,
        "bcwiEnabled": false,
        "cuxdEnabled": false,
        "regaPoll": true,
        "regaInterval": "30",
        "rpcPingTimeout": "60",
        "rpcInitAddress": "192.168.2.113",
        "rpcServerHost": "192.168.2.113",
        "rpcBinPort": "2047",
        "rpcXmlPort": "2048",
        "tls": false,
        "inSecure": false,
        "authentication": false,
        "username": "Username",
        "password": "xxxxxx",
        "queueTimeout": "5000",
        "queuePause": "250",
        "contextStore": ""
    },
    {
        "id": "eec9b617.98a998",
        "type": "mqtt-broker",
        "name": "Mosquitto",
        "broker": "192.168.2.122",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": false,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closeRetain": "false",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": ""
    }
]

I use the following data from my HmIP-SFD (SPS30) Sensor (Sensor Location)

  1. PM 2.5
  2. PM 10
  3. Temperature
  4. Humidity

Pressure comes via MQTT from my BME280 Sensor.

After Posting the data you can check incoming data
https://devices.sensor.community/sensors look at DATA .

Have fun…… :blush:

Great!
It works well?

The SPS30 measures also PM1, doesn’t it?

Yes it works well.

SPS30 measures PM1 but I have not yet found the right assignment for PM1 = value_type:P3?

current msg.payload looks like:

msg.headers = {
    "Content-Type": "application/json",
    "X-Pin": "1",
    "X-Sensor": "raspi-33553"
};
msg.payload = {
    "software_version": "NRZ- 2020129",
    "sensordatavalues": [
        {"value_type": "P1", "value": parseFloat(msg.payload.pm25)},
        {"value_type": "P2", "value": parseFloat(msg.payload.pm10)}
    ]
};
return msg;

PM1 is P0 actually. I forgot to tell you…

thanks for the info. :blush:

I have adjusted the NodeRed Flow below,
now with all particles areas of the SPS30.

[
    {
        "id": "168fbfbd.1b349",
        "type": "tab",
        "label": "Map-Sensor-Community ",
        "disabled": false,
        "info": "https://devices.sensor.community/sensors"
    },
    {
        "id": "8456d0bc.fbecd",
        "type": "comment",
        "z": "168fbfbd.1b349",
        "name": "Post homematic Data to https://api.sensor.community/v1/push-sensor-data/",
        "info": "",
        "x": 350,
        "y": 60,
        "wires": []
    },
    {
        "id": "28c280c5.420378",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_2.5",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1",
        "datapoint": "MASS_CONCENTRATION_PM_2_5",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 140,
        "y": 180,
        "wires": [
            [
                "6273c588.8e5af4"
            ]
        ]
    },
    {
        "id": "7b740d5b.d39214",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_10",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1",
        "datapoint": "MASS_CONCENTRATION_PM_10",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 140,
        "y": 240,
        "wires": [
            [
                "99377a93.bbeef"
            ]
        ]
    },
    {
        "id": "91343d53.60237",
        "type": "debug",
        "z": "168fbfbd.1b349",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1010,
        "y": 380,
        "wires": []
    },
    {
        "id": "bb44220e.9c8ae",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_Temperature",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1 Feinstaubsensor:1",
        "datapoint": "ACTUAL_TEMPERATURE",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 170,
        "y": 300,
        "wires": [
            [
                "e00d9f12.d75c1"
            ]
        ]
    },
    {
        "id": "1f67f8c6.2f425f",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_Humidity",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1 Feinstaubsensor:1",
        "datapoint": "HUMIDITY",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 160,
        "y": 360,
        "wires": [
            [
                "1cb5402.8992d4"
            ]
        ]
    },
    {
        "id": "6273c588.8e5af4",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pm25",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pm25",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 420,
        "y": 180,
        "wires": [
            [
                "cc7a7438.78d0f"
            ]
        ]
    },
    {
        "id": "cc7a7438.78d0f",
        "type": "join",
        "z": "168fbfbd.1b349",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 630,
        "y": 180,
        "wires": [
            [
                "7dca90ee.dd1e"
            ]
        ]
    },
    {
        "id": "99377a93.bbeef",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pm10",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pm10",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 420,
        "y": 240,
        "wires": [
            [
                "cc7a7438.78d0f"
            ]
        ]
    },
    {
        "id": "7dca90ee.dd1e",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "Prepare json Data",
        "func": "msg.headers = {\n    \"Content-Type\": \"application/json\",\n    \"X-Pin\": \"1\",\n    \"X-Sensor\": \"raspi-12345\"\n};\nmsg.payload = {\n    \"software_version\": \"NRZ- 2020129\",\n    \"sensordatavalues\": [\n        {\"value_type\": \"P0\", \"value\": parseFloat(msg.payload.pm0)},\n        {\"value_type\": \"P1\", \"value\": parseFloat(msg.payload.pm25)},\n        {\"value_type\": \"P2\", \"value\": parseFloat(msg.payload.pm10)}\n    ]\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 790,
        "y": 180,
        "wires": [
            [
                "6062b7a6.f11b4",
                "7e61aafa.bdf9d4"
            ]
        ]
    },
    {
        "id": "6062b7a6.f11b4",
        "type": "http request",
        "z": "168fbfbd.1b349",
        "name": "POST PM DATA",
        "method": "POST",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://api.sensor.community/v1/push-sensor-data/",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1000,
        "y": 180,
        "wires": [
            []
        ]
    },
    {
        "id": "209ee0bb.85d3b8",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "Prepare json Data",
        "func": "msg.headers = {\n    \"Content-Type\": \"application/json\",\n    \"X-Pin\": \"11\",\n    \"X-Sensor\": \"raspi-12345\"\n};\nmsg.payload = {\n    \"software_version\": \"NRZ- 2020129\",\n    \"sensordatavalues\": [\n        {\"value_type\": \"temperature\", \"value\": parseFloat(msg.payload.temperature)},\n        {\"value_type\": \"humidity\", \"value\": parseFloat(msg.payload.humidity)},\n        {\"value_type\": \"pressure\", \"value\": parseFloat(msg.payload.pressure)}\n    ]\n};\nreturn msg;\n\n\n\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 810,
        "y": 340,
        "wires": [
            [
                "781e1a98.6fd29c",
                "91343d53.60237"
            ]
        ]
    },
    {
        "id": "781e1a98.6fd29c",
        "type": "http request",
        "z": "168fbfbd.1b349",
        "name": "POST  DATA",
        "method": "POST",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "https://api.sensor.community/v1/push-sensor-data/",
        "tls": "",
        "persist": false,
        "proxy": "",
        "authType": "",
        "x": 1010,
        "y": 340,
        "wires": [
            []
        ]
    },
    {
        "id": "e00d9f12.d75c1",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_temperature",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "temperature",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 300,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "d31e430e.ec1b48",
        "type": "join",
        "z": "168fbfbd.1b349",
        "name": "",
        "mode": "custom",
        "build": "object",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 650,
        "y": 340,
        "wires": [
            [
                "209ee0bb.85d3b8"
            ]
        ]
    },
    {
        "id": "1cb5402.8992d4",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_humidity",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "humidity",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 360,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "ab77be26.de1d7",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pressure",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pressure",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 490,
        "y": 420,
        "wires": [
            [
                "d31e430e.ec1b48"
            ]
        ]
    },
    {
        "id": "9339e84a.e1b108",
        "type": "json",
        "z": "168fbfbd.1b349",
        "name": "",
        "property": "payload",
        "action": "obj",
        "pretty": false,
        "x": 450,
        "y": 540,
        "wires": [
            [
                "8b65c7d6.1a6228"
            ]
        ]
    },
    {
        "id": "834eb211.ed0578",
        "type": "mqtt in",
        "z": "168fbfbd.1b349",
        "name": "tele/tasmota_E08D2C/SENSOR",
        "topic": "tele/tasmota_E08D2C/SENSOR",
        "qos": "2",
        "datatype": "json",
        "broker": "eec9b617.98a998",
        "x": 210,
        "y": 420,
        "wires": [
            [
                "9339e84a.e1b108"
            ]
        ]
    },
    {
        "id": "2ac9c776.a95bf",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "offset",
        "func": "msg.payload = Number(msg.payload)+9;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 450,
        "y": 460,
        "wires": [
            [
                "ab77be26.de1d7"
            ]
        ]
    },
    {
        "id": "8b65c7d6.1a6228",
        "type": "function",
        "z": "168fbfbd.1b349",
        "name": "BME280.Pressure",
        "func": "var msg_pres = {payload:msg.payload.BME280.Pressure.toFixed(0)};\nreturn msg_pres;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 490,
        "y": 500,
        "wires": [
            [
                "2ac9c776.a95bf"
            ]
        ]
    },
    {
        "id": "7e61aafa.bdf9d4",
        "type": "debug",
        "z": "168fbfbd.1b349",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 990,
        "y": 220,
        "wires": []
    },
    {
        "id": "7ba02232.4e7db4",
        "type": "ccu-value",
        "z": "168fbfbd.1b349",
        "name": "PM_1",
        "iface": "HmIP-RF",
        "channel": "00271D8993DCDA:1",
        "datapoint": "MASS_CONCENTRATION_PM_1",
        "mode": "",
        "start": true,
        "change": true,
        "cache": false,
        "queue": false,
        "on": 0,
        "onType": "undefined",
        "ramp": 0,
        "rampType": "undefined",
        "working": false,
        "ccuConfig": "38263145.35ea0e",
        "topic": "${CCU}/${Interface}/${channel}/${datapoint}",
        "x": 130,
        "y": 120,
        "wires": [
            [
                "804459cf.c2b768"
            ]
        ]
    },
    {
        "id": "804459cf.c2b768",
        "type": "change",
        "z": "168fbfbd.1b349",
        "name": "set_topic_pm1 = pm0",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "pm0",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 400,
        "y": 120,
        "wires": [
            [
                "cc7a7438.78d0f"
            ]
        ]
    },
    {
        "id": "38263145.35ea0e",
        "type": "ccu-connection",
        "name": "192.168.2.113",
        "host": "192.168.2.113",
        "regaEnabled": true,
        "bcrfEnabled": true,
        "iprfEnabled": true,
        "virtEnabled": true,
        "bcwiEnabled": false,
        "cuxdEnabled": false,
        "regaPoll": true,
        "regaInterval": "30",
        "rpcPingTimeout": "60",
        "rpcInitAddress": "192.168.2.113",
        "rpcServerHost": "192.168.2.113",
        "rpcBinPort": "2047",
        "rpcXmlPort": "2048",
        "tls": false,
        "inSecure": false,
        "authentication": false,
        "username": "Username",
        "password": "pwd",
        "queueTimeout": "5000",
        "queuePause": "250",
        "contextStore": ""
    },
    {
        "id": "eec9b617.98a998",
        "type": "mqtt-broker",
        "name": "Mosquitto",
        "broker": "192.168.2.122",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": false,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closeRetain": "false",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": ""
    }
]

I tried to use the flow and it is working more or less fine.

Anyway, can you help me with some information. I use only the SPS30. How do I define X-PIN and software version?

To my knowledge the sensor ID is taken from the MCU (ESP8266) so how do you acquire an ID?

„Your version“ is not important. Write what you want. X-Pin should be 1. Check the api page in github.

Hello,
I need some advice. How do I connect the SPS030 sensor to the ESP8266. Somehow I can’t get it to work. Thank you in advance for your help.
Sincerely Michal.

SPS30 (I2C, 5V)
Pinout: 1 2 3 4 5

Pin 1 (5V) → Pin VU/VIN
Pin 2 (SDA) → Pin D3 (GPIO0)
Pin 3 (SCL) → Pin D4 (GPIO2)
Pin 4 (SEL) → Pin GND
Pin 5 (GND) → Pin GND

Please check the pinout of the SPS in Google image.
And don’t forget to configure the sensor the right way.

There is an error in your SDS30 PM data forwarding to the proper P labels:
P0=PM1 (from SDS30)
P1=PM10 ,
P2=PM2.5 ,

Good luck, Bert