Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      HerrFrodo @HerrFrodo last edited by HerrFrodo

      Nachtrag 04.03.2024

      Übrigens werden bei POE-Einspeisung immer die Adernpaare 1 und 4 genommen.
      Quelle: https://www.kabelscheune.de/Netzwerkstecker-RJ45-Belegung-nach-EIA-TIA-Farbcode/
      Netzwerkkabel-Belegung.PNG
      Bei T568A
      PIN 1: weiß / grün (Paar 3)
      PIN 2: grün (Paar 3)
      PIN 3: weiß / orange (Paar 2)
      PIN 4: blau (Paar 1)
      PIN 5: weiß / blau (Paar 1)
      PIN 6: orange (Paar 2)
      PIN 7: weiß / braun (Paar 4)
      PIN 8: braun (Paar 4)

      Bei T568B
      PIN 1: weiß / orange (Paar 2)
      PIN 2: orange (Paar 2)
      PIN 3: weiß / grün (Paar 3)
      PIN 4: blau (Paar 1)
      PIN 5: weiß / blau (Paar 1)
      PIN 6: grün (Paar 3)
      PIN 7: weiß / braun (Paar 4)
      PIN 8: braun (Paar 4)

      Diese Stecker: https://www.amazon.de/dp/B098XW9XQL?ref=ppx_yo2ov_dt_b_product_details&th=1
      an dieses Kabel: https://www.amazon.de/dp/B0716R9N5H?ref=ppx_yo2ov_dt_b_product_details&th=1

      1 Reply Last reply Reply Quote 0
      • H
        HerrFrodo last edited by

        Ich habe dieses kleine Blockly angefertigt:
        Staub-Blockly.PNG
        Hier der Code:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on_ext" id="y/Kj+@nuqDDajWv8d[LM" x="-763" y="-1812">
            <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <value name="OID0">
              <shadow type="field_oid" id="3FsVh}:{;,]-jhS1VF(6">
                <field name="oid">sonoff.0.SPS30 Feinstaubsensor.SENSOR.SPS30.PM10</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="controls_if" id="!i+EGcL4yWV~N87ricAT">
                <mutation elseif="1"></mutation>
                <value name="IF0">
                  <block type="logic_operation" id="`A-TtiYACPIxQI}A8L]9">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="logic_compare" id="hld^OxU5I#C7bn3V;#HT">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value_var" id="yJP@T-Dx_/XkOfN?ig89">
                            <field name="ATTR">val</field>
                            <value name="OID">
                              <shadow type="field_oid" id="B)X;2-R]2(;=_u]@h`;v">
                                <field name="oid">0_userdata.0.Feinstaub.VAR_Lüftung-wegen-Staub-0-1</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="M2,l@Xy$7(J|TIg).3Ii">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="/DSH4FzH^zx||Mtu{Dgd">
                        <field name="OP">GT</field>
                        <value name="A">
                          <block type="get_value" id="w*rbOn3YC9}jC9(g|s49">
                            <field name="ATTR">val</field>
                            <field name="OID">sonoff.0.SPS30 Feinstaubsensor.SENSOR.SPS30.PM10</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="get_value" id="bz:miwR;T3d{JJEVSd0]">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Feinstaub.Lüftung_Staub-Schwelle_AUS</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control_ex" id="*1g.ViJ/HnbqFTj}2`Zl">
                    <field name="TYPE">false</field>
                    <field name="CLEAR_RUNNING">TRUE</field>
                    <value name="OID">
                      <shadow type="field_oid" id="RwR0cLO.O|PSzOJlp#4b">
                        <field name="oid">hm-rpc.0.LEQ0539002.1.STATE</field>
                      </shadow>
                    </value>
                    <value name="VALUE">
                      <shadow type="logic_boolean" id="8Hf2z4`G8]5}zo_^O.)G">
                        <field name="BOOL">FALSE</field>
                      </shadow>
                    </value>
                    <value name="DELAY_MS">
                      <shadow type="math_number" id="k$^ckeL9ed*ry{3E.A#t">
                        <field name="NUM">0</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="control_ex" id="V7PLAR,U%mgiuv/s1=4Y">
                        <field name="TYPE">true</field>
                        <field name="CLEAR_RUNNING">TRUE</field>
                        <value name="OID">
                          <shadow type="field_oid" id="_-^[KPCml};k4f4EdB:]">
                            <field name="oid">0_userdata.0.Feinstaub.VAR_Lüftung-wegen-Staub-0-1</field>
                          </shadow>
                        </value>
                        <value name="VALUE">
                          <shadow type="logic_boolean" id="d5,8dy,1|xkUz*nAP:bi">
                            <field name="BOOL">FALSE</field>
                          </shadow>
                          <block type="math_number" id="i@#(,B$DR1LK!gn:$8_@">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                        <value name="DELAY_MS">
                          <shadow type="math_number" id="Gsi4-@,LdScZ=uUL_`,,">
                            <field name="NUM">0</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="debug" id=";JXq,_ii:$Ir.T$ROruj">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                              <shadow type="text" id="O{pzwwGMk17Pd?S_%%U+">
                                <field name="TEXT">LÜFTUNG AUS wegen hohem Feinstaubwert</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="signal-cmb" id="le{;(r?GDOPss4E{i0/=">
                                <field name="INSTANCE">.0</field>
                                <field name="LOG">log</field>
                                <value name="MESSAGE">
                                  <shadow type="text" id="srV/+K]pg]a8;Iswvw)O">
                                    <field name="TEXT">LÜFTUNG AUS wegen hohem Feinstaubwert</field>
                                  </shadow>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <value name="IF1">
                  <block type="logic_operation" id="R|+cCsn9_Zr$a55.;},X">
                    <field name="OP">AND</field>
                    <value name="A">
                      <block type="logic_compare" id="M=C)eQ`K/94w5qgV[xk%">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value_var" id=":AZO!+EKLhC)-rg!g.W^">
                            <field name="ATTR">val</field>
                            <value name="OID">
                              <shadow type="field_oid" id="f?O)}RzYO``m05/0N=1l">
                                <field name="oid">0_userdata.0.Feinstaub.VAR_Lüftung-wegen-Staub-0-1</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="?BJ1;1Ik^EZX/QSzxIv2">
                            <field name="NUM">0</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_compare" id="Ss~gJ+2JrLs#LxyASuWr">
                        <field name="OP">LT</field>
                        <value name="A">
                          <block type="get_value" id="Io9m#vdM/~$ZZ|wy1nS=">
                            <field name="ATTR">val</field>
                            <field name="OID">sonoff.0.SPS30 Feinstaubsensor.SENSOR.SPS30.PM10</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="get_value" id="Je/6HhqT=_ST9fbE._[$">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Feinstaub.Lüftung_Staub-Schwelle_AUS</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO1">
                  <block type="control_ex" id="QG8k/m.pnX1HLE5:-l.0">
                    <field name="TYPE">false</field>
                    <field name="CLEAR_RUNNING">TRUE</field>
                    <value name="OID">
                      <shadow type="field_oid" id="@Bmh-R[_+~xXu6E0J79O">
                        <field name="oid">hm-rpc.0.LEQ0539002.1.STATE</field>
                      </shadow>
                    </value>
                    <value name="VALUE">
                      <shadow type="logic_boolean" id="B5K#:PAeja0H7rzx`$al">
                        <field name="BOOL">TRUE</field>
                      </shadow>
                    </value>
                    <value name="DELAY_MS">
                      <shadow type="math_number" id="BB8%ft}o)qn-=n!4}HW^">
                        <field name="NUM">0</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="control_ex" id="t/|RC;8=}EWk90V^mDBW">
                        <field name="TYPE">true</field>
                        <field name="CLEAR_RUNNING">TRUE</field>
                        <value name="OID">
                          <shadow type="field_oid" id="sOQ5A,bEVDF[wJgNSywu">
                            <field name="oid">0_userdata.0.Feinstaub.VAR_Lüftung-wegen-Staub-0-1</field>
                          </shadow>
                        </value>
                        <value name="VALUE">
                          <shadow type="logic_boolean" id="e1AvIBrVfz;|eFZSUTmr">
                            <field name="BOOL">TRUE</field>
                          </shadow>
                          <block type="math_number" id="a5mp/5|1+eV_/vc7fz/A">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                        <value name="DELAY_MS">
                          <shadow type="math_number" id="hpV|sa-Tbg.-|BGjt.9r">
                            <field name="NUM">0</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="debug" id="4YT1IG_#U-nP*FSiQG=W">
                            <field name="Severity">log</field>
                            <value name="TEXT">
                              <shadow type="text" id="lWxqU_=@?,;8Mh`kpmQH">
                                <field name="TEXT">LÜFTUNG EIN nach besserem Feinstaubwert</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="signal-cmb" id="%rqUa~y;{CoHNRoQppU9">
                                <field name="INSTANCE">.0</field>
                                <field name="LOG">log</field>
                                <value name="MESSAGE">
                                  <shadow type="text" id="d@sFBEOTVqLA[aS7hI[`">
                                    <field name="TEXT">LÜFTUNG EIN nach besserem Feinstaubwert</field>
                                  </shadow>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Kennt sich da jemand aus? Ist das so OK?
        Funktionieren tut es, aber vielleicht geht es anders besser....

        Ralla66 2 Replies Last reply Reply Quote 0
        • Ralla66
          Ralla66 Most Active @HerrFrodo last edited by

          @herrfrodo

          Kurz zur Info,

          läuft auch per USR-TCP-232-302 und Tasmota Scripting,
          Sensordata -> ESP Speicher -> ESP Ausgang TX -> Serial to Lan -> NodeRed -> Datenpunkt
          Damit können dann alle Sensorenwerte die in Tasmota laufen per Lan gesendet werden.
          Läuft auch 🙂

          TCP_RS232.jpg

          1 Reply Last reply Reply Quote 1
          • Ralla66
            Ralla66 Most Active @HerrFrodo last edited by Ralla66

            @herrfrodo

            Kurz zur Info,

            der kleine Bruder USR-TCP232-T2 läuft, dieser ist direkt mit TTL zu verbinden.
            Der USR-TCP-232-302 braucht einen Adapter von TTL auf RS232
            Der E-Byte E801 ( TCP ) braucht auch einen Adapter von TTL auf RS232
            WT32-ETH0 geht auch

            Ziel erreicht, bin Weg ------------------------------------->

            Testscript für Tasmota Scripting DHT11, Data Send an TX alle 5 sec

            >D
            
            temp=0
            hum=0
            tau=0
            
            >B
            
            so(3 1 9600 8N1 1024)
            
            >T
            
            temp=DHT11#Temperature
            hum=DHT11#Humidity
            tau=DHT11#Dewpoint
            
            >S
            
            if upsecs%5==0
            then 
            =>SerialSend2 {"Temperature":%temp%,"Humidity":%hum%,"Dewpoint":%tau%,},\n
            print ---- SEND STR NUM ---- %temp%
            endif
            
            >W
            
            Temperature {m} %temp% 
            Feuchtidkeit {m} %hum% 
            Taupunkt {m} %tau% 
            
            #
            
            H 1 Reply Last reply Reply Quote 1
            • H
              HerrFrodo @Ralla66 last edited by

              @ralla66 said in Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?:

              USR-TCP232-T2

              Irgendwie check ich das mit der eMail-Benachrichtigung bei neuen Posts hier nicht.....

              Vielen Dank für Deine Hilfe und Tests!

              Was kann man nun zusammenfassen schreiben?
              Man braucht in jedem Fall einen ESP dafür, egal ob USR-TCP-232-302 oder USR-TCP232-T2, wobei der USR-TCP232-T2 deutlich günstiger ist.
              In jedem Fall braucht man mindestens einen ESP8266 (ca. 10€)
              USR-TCP-232-302 kostet ca. 34€ plus Adapter!
              USR-TCP232-T2 kostet ca. 19€
              WT32-Eth01 kostet ca. 20€ plus USB zu UART Adapter ca. 6-8€
              Die deutlich bessere Performance des WT32 wird nie ausgenutzt und der Stromverbrauch ist viel höher als beim ESP8266.

              Was mich allerdings im täglichen Gebrauch stört ist die Tatsache, dass unter Tasmota der Sensorwert nur alle 10 Sekunden aktualisiert wird....dadurch habe ich bis zu 10 Sekunden lang den Kaminmief von den Nachbarn im Haus.....daher überlege ich an einen Testaufbau mit ESPHome.....

              Testscript für Tasmota Scripting DHT11, Data Send an TX alle 5 sec

              Wie schaffst Du die 5 sec?

              Codierknecht BananaJoe 2 Replies Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @HerrFrodo last edited by

                @herrfrodo sagte in Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?:

                Irgendwie check ich das mit der eMail-Benachrichtigung bei neuen Posts hier nicht.....

                Was genau ist da unklar?
                Lässt sich alles einstellen.

                7104cfd8-e71d-4ee3-a578-bac2da157d06-image.png

                H 1 Reply Last reply Reply Quote 1
                • BananaJoe
                  BananaJoe Most Active @HerrFrodo last edited by BananaJoe

                  @herrfrodo sagte in Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?:

                  Was mich allerdings im täglichen Gebrauch stört ist die Tatsache, dass unter Tasmota der Sensorwert nur alle 10 Sekunden aktualisiert wird....dadurch habe ich bis zu 10 Sekunden lang den Kaminmief von den Nachbarn im Haus.....daher überlege ich an einen Testaufbau mit ESPHome.....

                  Testscript für Tasmota Scripting DHT11, Data Send an TX alle 5 sec

                  Wie schaffst Du die 5 sec?

                  Wenn das verwendete Tasmota eine Scripting-Enginge hat kann von dort einen Wert auch bei jeder Änderung senden lassen. Dort gibt es einen publish Befehl
                  https://tasmota.github.io/docs/Scripting-Language/#features

                  =>Publish Soyosource/SOYO_1ce2fb/L1L2L3 %sml[8]%
                  

                  sendet zum beispiel den 8ten Wert aus dem vorherigen Abschnitt sml, ganz am Ende angehängt.

                  Du könntest aber auch einen normale Rule erstellen die es dann bei Änderung ebenfalls published:
                  https://tasmota.github.io/docs/Commands/#mqtt
                  Wieder der Befehl Publish

                  Oder du triggerst - per MQTT oder Web Request - einen passenden Status x an:
                  17b7144d-c8eb-4b77-9329-8ae8bbfe8c67-image.png
                  Der wird dann sowohl in der Konsole angezeigt als auch unmittelbar gesendet.

                  H 1 Reply Last reply Reply Quote 1
                  • H
                    HerrFrodo @Codierknecht last edited by

                    @codierknecht sagte in Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?:

                    Was genau ist da unklar?
                    Lässt sich alles einstellen.

                    Danke für Deine Hilfe!
                    Hatte ich schon alles eingestellt.....und offensichtlich "Änderungen Speichern" übersehen.... 😔

                    1 Reply Last reply Reply Quote 0
                    • H
                      HerrFrodo @BananaJoe last edited by

                      @bananajoe
                      Beim WT32-Eth01 ist Berry dabei.
                      Wie ich den Befehl für eine sekündliche Werteabfrage beim SPS30 gestalten muss, erschließt sich mir noch nicht.
                      Bleibt der dann bis zum Neustart oder kann man den irgendwie speichern?

                      BananaJoe 1 Reply Last reply Reply Quote 0
                      • BananaJoe
                        BananaJoe Most Active @HerrFrodo last edited by

                        pff müsste ich mir auch erst zusammensuchen / googeln

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        967
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        7
                        65
                        5319
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo