NEWS
Gosund SP111 mit Tasmota: Bedeutung "Logging"
-
Hallo zusammen!
Ich möchte das Pumpen einer Tauchpumpe überwachen. Dafür habe ich das "Logging" in Tasmota auf 10 Sekunden eingestellt (kleiner geht nicht). Da die Pumpe immer unter 10 Sekunden lang pumpt, werden die Abfragen nicht zuverlässig.
Oder verstehe ich das falsch? "Logging" unter Tasmota bedeutet doch, daß der Stromverbrauch nur alle 10 Sekunden geprüft wird? Oder bedeutet es nur, daß alle 10 Sekunden protokolliert wird, die Prüfung erfolgt aber ständig?Grüße,
Marcus -
@invidianer TelePeriod 10 bedeutet, dass alle 10 Sek die Werte übermittelt werden.
-
@crunchip
„Übermitteln“ heißt, daß die Werte auch „nur“ alle 10 Sekunden geprüft werden (nicht nur ins Logging geschrieben werden)? Sprich, läuft die Pumpe kürzer, als 10 Sekunden, habe ich keine Chance? -
@invidianer Das kannst du mit dem Befehl PowerDelta lösen.
Set maximum delta of phase a<x> in energy monitoring devices to report on active power load change while the power is ON. PowerDelta will not report when the power turns off. 0 = disable reporting on power change 1..100 = set reporting on percentage power change to send an MQTT telemetry message 101..32000 = set reporting on absolute power change to send an MQTT telemetry message (offset by 100, e.g., 101=1W, 207=107W)
powerdelta 120
schickt zB. beim Über/Unterschreiten von 20 Watt sofort, und unabhängig von der Teleperiod Zeit eine (mqtt) Meldung zu IOBroker.
-
@einstein67
Danke!
Muß ich alle Zeilen genau so eingeben? Scheint etwas abgeschnitten zu sein?Wie „verknüpfe“ ich diese MQTT-Meldung dann mit meinem Blockly?
-
du musst nur
powerdelta 120
in der console eingeben, wenn der wert für die änderung (delta) von 20Watt für dich passt
möchtest du eine nachricht bei einer änderung schon bei 5Watt unterschied, musst du powerdelta 105 eingeben
möchtest du die änderung auf prozent umstellen - also wenn sich der wert um 5 prozent ändert, musst du powerdelta 5 eingeben
der wert hinter powerdelta ist von 1 bis 100 in prozent zu sehen und ab 101 sind es direkt die watt (minus 100; 101 -100=1Watt änderung)
mit blockly verbindest du es über die datenpunkte in der sonoff instanz - dort sind wie immer diese änderungen zu sehen
-
Ok, verstehe, danke Euch!!
Wenn ich es also richtig interpretiere, dann ist die "Logging"-Einstellung in der Tasmota-Oberfläche nur das Intervall, in welchem der aktuelle Stromverbrauch geloggt wird. Abgefragt wird er dagegen offenbar ständig.
Somit verstehe ich nicht, warum mein Blockly nicht zuverlässig funktioniert (bei anderen Geräten funktioniert es nach demselben Muster problemlos).Da ich die "Steuerung" lieber über das Blockly realisieren möchte, als über den Konsolenbefehl, kann mir vielleicht jemand den Fehler aufzeigen:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</variable> </variables> <block type="variables_set" id="vB%/(%QK-.|VB8olH+F+" x="-62" y="-137"> <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="Zt3N#kbH0XjK+}5)pbJ^"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on" id="?*7pS-cANelnRStH5fpi"> <field name="OID">sonoff.0.Pumpfix.ENERGY_Power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="*bOx]47]yxIByA#qqt3J"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="Z=d#73]O`zyDGC~L|Jn/" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=".(cUpb9mFzXnI.u`/RGu"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="+L|D9(N^L/_9p**AC4Y#"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="IRXiQ:Tf}.:}u-F;(J?|"> <field name="NUM">50</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="!+aTX:f8zpg?koPwXqU9"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="~^+uLCVDphEA1T3csQ;4"> <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="m9)+OzK@16j;{0FErZe_"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="yj^]v8#=,-=xs,C$1:0m"> <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="c%J}.8a#0L-%7wEqRPVF"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="telegram" id=")43X.^NP$KHLnE,ZJK[m"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="B`kyTY5/jBuR@[lQA^oW"> <field name="TEXT">Pumpfix läuft</field> </shadow> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="ypsA%)wGaJm%m/NKb;=i" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="`of^ix$+JJ:q+jB]LuGW"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="%%:?,%fLZ^rP#abOHUuC"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="}xv`$j.L]mt%:X1mr]{E"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Q+6~nu9t9);pkS12`.AL"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="cpnf;Gi35/{P3:nPjq[W"> <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</field> </block> </value> <value name="B"> <block type="logic_boolean" id="J57c)XE#PG(Da`u;jg#,"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id=":eS4G4/zu.ky;:[2FzJN"> <field name="VAR" id="EP`a-qu0Mi)#+F^5KaM)">Punpfix_aktiv?</field> <value name="VALUE"> <block type="logic_boolean" id="ly}z},:j05vr{-G[6+~L"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="9?I2K.J*.|N*=,2aN+V_"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="m0]cKJ`QA.tao?AAm`!P"> <field name="TEXT">Pumpfix fertig</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
-
@invidianer said in Gosund SP111 mit Tasmota: Bedeutung "Logging":
Konsolenbefehl
Ohne den "Konsolenbefehl" bekommt dein Blockly aber die Änderung der Pumpen-Leistung nicht mit.
-
das alles hat mit logging nix zu tun
der befehl teleperiod 10
sagt: übermittle alle 10 sec die energie werte mit mqtt (sonoff adapter) - standardmäßig ist das auf 300 sekunden eingestelltunter 10 sek (ist das limit von teleperiod) muss man sich anders behelfen, damit etwas an den sonoff adapter gesendet wird
daher der powerdelta befehl
die befehle müssen einmal an der gui eingegeben werden evtl noch ein savedata 1 - um alle einstellungen zu speichern, bei einem stromausfall (braucht man aber nicht bei teleperiod - glaube ich)
am anfang - nach dem einrichten des tasmota gerätes - rufe ich noch das auf - damit wird die zeit, der ntp server (meine fritzbox) und der standort einmalig gesetzt
http://192.168.1.x/cm?cmnd=backlog%20Latitude%2050.53651200%3BLongitude%2013.80158400%20timezone%2099%3Btimedst%200,0,3,7,2,120%3Btimestd%200,0,10,7,2,60%3Btimezone%2099%3Bntpserver1%20192.168.1.1
-
Eine andere Möglichkeit wäre, in der SP111 einfach ein virtuelles Relaise einstellen (Relay 2) und folgende Rule erstellen und starten:
rule1 on ENERGY#Power>40 do power2 1 endon on ENERGY#Power<10 do power2 0 endon rule1 5 rule1 1
So landet der Pumpenstatus auf die tausendstel Sekunde genau im Datenpunkt "Power 2". Damit schickst du dann einfach deine Nachrichten.