NEWS
Wie SDS011 / SPS30 Staubsensor mit I2C über LAN zu IOBroker?
-
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/
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 -
Ich habe dieses kleine Blockly angefertigt:
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.... -
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 -
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 auchZiel 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% #
-
@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?
-
@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. -
@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 BefehlPublish
Oder du triggerst - per MQTT oder Web Request - einen passenden
Status x
an:
Der wird dann sowohl in der Konsole angezeigt als auch unmittelbar gesendet. -
@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.... -
@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? -
pff müsste ich mir auch erst zusammensuchen / googeln