Die Potentiometer sind eher so lala, muss man extrem vorsichtig drehen wenn gerade der rote Streifen durch geht.
Wenn es mit der Hand geht, ist der Sensor schon mal nicht defekt.
Ist vielleicht am Anfang ein kleines Geduldsspiel!
Die Potentiometer sind eher so lala, muss man extrem vorsichtig drehen wenn gerade der rote Streifen durch geht.
Wenn es mit der Hand geht, ist der Sensor schon mal nicht defekt.
Ist vielleicht am Anfang ein kleines Geduldsspiel!
Älso wenn der rote Streifen durch fährt drehen bis die 2. LED aus ist?
Genau, ist ein wenig ärgerlich weil die Zeitspanne bei wenig Verbrauch natürlich etwas lang ist.
Ist ein wenig ein Geduldsspiel.
Darf nicht flackern oder ähnliches. ( Wird als Impuls gewertet und +1 gezählt )
Hallo Zusammen,
ich habe versucht mir eine Zäherstandsermittlung zu basteln und habe kleines Problem beim Blockly und komme da nicht weiter.
Der ioBroker bekommt alle 300 s von einer [definition='27','0']NodeMCU[/definition] einen Impulsstand übermittelt.
Den Fehler was ich nicht weg bekomme liegt in der Berechnung "Steure ...Zaehlerstand mit Wert vom Objekt ID .... Zaehler / 10000".
Das Skript nimmt den Wert von der vorhergehenden Berechnung "Steure ...Zaehler mit Wert vom Objekt ID .... Zaehler + Wert vom Objekt ID .... Differenz"
Das Ergebnis "Zaehler"wird zwar im ioBroker richtig angezeit, aber es wird für die Berechnung der Wert von der vorhergehenden Berechnung genommen, also immer eine
Aktualisierung später.
Vielleicht kann mir da jemand helfen.
Grüße Gerri
<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="on_ext" id="/Ke^4uol-G2u2UJ70Pz3" x="-487" y="-237">
<mutation items="1"></mutation>
<field name="CONDITION">any</field>
<field name="ACK_CONDITION"></field>
<value name="OID0">
<shadow type="field_oid" id="nYK=%!}:pW3ls0s,jJ)x">
<field name="oid">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.COUNTER_C1</field>
</shadow>
</value>
<statement name="STATEMENT">
<block type="controls_if" id="aE6lr~PHT(Hlt^e7`c!1">
<mutation elseif="1"></mutation>
<value name="IF0">
<block type="logic_compare" id="lobA;m5lrok6!)1HqHLY">
<field name="OP">GT</field>
<value name="A">
<block type="get_value" id="VKRfDx=.8Mx[s~bj#Wl8">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.COUNTER_C1</field>
</block>
</value>
<value name="B">
<block type="get_value" id="7:)/deRJPnwP/!{OpdXu">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Counter_alt</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="control" id="yn-RI1R/YFic?BQ.|.%l">
<mutation delay_input="false"></mutation>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Differenz</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id="1L.W`XkSE;D.7t3OyHtF">
<field name="OP">MINUS</field>
<value name="A">
<shadow type="math_number" id="G7NG8UAlP5v1vl%@!(?Y">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="7sg^{smwsYrJ]DWiLOsu">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.COUNTER_C1</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="_?NJ0n~:8gnxP38|3IIu">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="DMsv+YX6Z}6e@zGvyU^G">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Counter_alt</field>
</block>
</value>
</block>
</value>
<next>
<block type="control" id="OBP6Sq0JGkM+VZHEgRrz">
<mutation delay_input="false"></mutation>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Zaehler</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id="t]^,Fzgk!?*GTtp%{I{v">
<field name="OP">ADD</field>
<value name="A">
<shadow type="math_number" id="gYW~t!jpf.S4;a9vRg{0">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="E%/Z,kRaMM]cN*r5Nc/Q">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Zaehler</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="4z/uGxQ](NbY7cIX(pd,">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="Szr4(H6reVBKI!X[J/aY">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Differenz</field>
</block>
</value>
</block>
</value>
<next>
<block type="control" id="ky#SKK:c9oTTyhKqg1^R">
<mutation delay_input="false"></mutation>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Zaehlerstand</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_arithmetic" id="3H6MGEQN%Py@{5eGdUIu">
<field name="OP">DIVIDE</field>
<value name="A">
<shadow type="math_number" id="G7NG8UAlP5v1vl%@!(?Y">
<field name="NUM">1</field>
</shadow>
<block type="get_value" id="3QqOy:M~7HqV8Gq7Oo?A">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Zaehler</field>
</block>
</value>
<value name="B">
<shadow type="math_number" id="_?NJ0n~:8gnxP38|3IIu">
<field name="NUM">10000</field>
</shadow>
</value>
</block>
</value>
<next>
<block type="control" id="!P8`ffBg9KBqC,GBwnoI">
<mutation delay_input="false"></mutation>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Counter_alt</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="get_value" id="A6rqnpfjchtBs^MffYhZ">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.COUNTER_C1</field>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</statement>
<value name="IF1">
<block type="logic_compare" id="P2YY[3_(I%I[5ABMYQMe">
<field name="OP">EQ</field>
<value name="A">
<block type="get_value" id="VD#v[1eT1hDp}[QsCO=h">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.COUNTER_C1</field>
</block>
</value>
<value name="B">
<block type="get_value" id="^e@@bF{-RA:BaH|zlElc">
<field name="ATTR">val</field>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Counter_alt</field>
</block>
</value>
</block>
</value>
<statement name="DO1">
<block type="control" id="%[MXj])+#^8hEg(JeE]o">
<mutation delay_input="false"></mutation>
<field name="OID">[definition='84','0']sonoff[/definition].0.DVES_7F6C6363.Differenz</field>
<field name="WITH_DELAY">FALSE</field>
<value name="VALUE">
<block type="math_number" id="`csO@Jm/i(]9E^Uc12{g">
<field name="NUM">0</field>
</block>
</value>
</block>
</statement>
</block>
</statement>
</block>
</xml>
Alles anzeigen
SUCHE noch ein Skript für TAGESVERBRAUCH und MOMENTANVERBRAUCH.
Hat da jemand was für mich?
Hat nun alles geklappt?
Würde mich freuen
Da hier nur 10000 Zeilen erlaubt sind, schaue Dich mal hier um ( Momentverbrauch):
https://www.techdroid.de/2018/11/analog…ment-verbrauch/
Hab versucht es schritt für schritt zu erklären!
Tagesverbrauch findest Du hier:
https://www.techdroid.de/2018/11/analog…tagesverbrauch/
Berechne die Variablen einzeln, anschließend erst rechnest Du neu.
Oder versuch mal statt steuere, aktualisiere zu nehmen, vielleicht übernimmt er dann ja sofort den neuen Wert!
Denke Dein Fehler liegt darin das er mit Variablen aus dem Speicher rechnet und nicht mit den neu erstellten.
Ich habe mir die ganzen Berechnungen nochmal intensiv angeschaut und festgestellt, das zwar der Wert "Differenz" richtig eingetragen ist aber noch intern den vorhergehenden Wert gespeichert hat.
Alle Berechnungen nehmen immer ihren Vorwert!
Ich habe das ganze Skript gelöst und wieder Neu erstellt, einen Upload aller Adapter gemacht, den Skript- Adapter entfernt und neu installiert, leider ohne Erfolg!
Dann Versuch das Problem wie folgt zu lösen:
Werte speichern, anschließend neues Script was zwar auch auf "irgend was " triggert, diesmal baust Du aber eine Verzögerung von 500ms oder so rein ( Bei der Abfrage! )
Eine Verzögerung hatte ich auch schon bei allen möglichen Bausteinen eingegeben, aber das brachte auch keinen Erfolg.
Ich hatte nochmal ein neues Skript erstellt und nahm für beispielweise 2 Berechnungen in Blockly erstellten Variablen dafür her und habe dann die Ergebnisse in die Objekt ID eintragen lassen.
Entweder hatte ich da einen großen Fehler gemacht oder man muss das so machen, aber hat es funktioniert!!
Eine Verzögerung hatte ich auch schon bei allen möglichen Bausteinen eingegeben, aber das brachte auch keinen Erfolg.
Ich hatte nochmal ein neues Skript erstellt und nahm für beispielweise 2 Berechnungen in Blockly erstellten Variablen dafür her und habe dann die Ergebnisse in die Objekt ID eintragen lassen.
Entweder hatte ich da einen großen Fehler gemacht oder man muss das so machen, aber hat es funktioniert!!
Könntest du mir dein Skript mal zur Verfügung stellen? Ich habe die gleichen Probleme wie du.
Ich bin grad etwas unsicher. Habe ALLES exakt wie im Video eingestellt. Doch mein TotalCounter zählt IMMER 1 dazu und nicht wie erklärt 2 (ein UND aus)... Ich mein, schlimm wärs sicher nicht, dann mach ich das Script halt mit 75 anstatt 150... aber unsicher macht mich das schon warum es nicht wie beschrieben beide Zustände zählt....
Habe langsam drehen (mehrere Sekunden und schnell drehen in verschiedensten Geschwindigkeiten simuliert... immer plus 1) *kopfkratz*
Das Video ist schon geil... hat alles auf anhieb geklappt.
… hast du evtl. eine zu lange debounce Zeit beim Counter?
Hallo Zusammen,
ich hab mich auch an dem Zähler gewagt, hab aber das Gefühl etwas falsch gemacht zu haben. Die aktuelle Leistung ist immer sehr hoch. Zählerkonstanze habe ich angepasst. Vorgegangen bin ich PascalVC Anleitung.
... ich denke mit einer debounce Zeit von einer Sekunde wirst du keine genauen Zeiten ermitteln können! Am besten das Hardwaremäßig sauber zur MCU bringen.
Hallöle,
hab das Projekt auch umgesetzt und als Device "Switch" genommen. Lässt sich besser (75 Umdrehungen) rechnen und ist "eigentlich" zuverlässig.
Dreht die Scheibe sich ein wenig schneller , passt alles. Ist aber der Verbrauch gen Null, dass heisst die Scheibe dreht sich gaaaaaaaaaaaaaaaaaaaaanz langsam (ca. 10 Sekunden bis der rote Balken vorbei ist), habe ich Abweichungen. Das ist natürlich ärgerlich, weil ich nicht täglich gucken will, ob die Zahlen stimmen.
Es ist natürlich schwierig, die richtige Zeit zum Übermitteln zu finden, denn mal dreht die Scheibe schnell, mal langsam. Ich habe jetzt 12 Sekunden eingestellt.
Wie habt ihr das zuverlässig gelöst?
Welche Einstellungen habt ihr in der [definition='27','0']NodeMCU[/definition] gemacht mit Device "Switch"?
Du hast also anstatt "Pulse Counter" einen Switch gewählt?
Habe große Probleme mit Device "Pulse Counter".
Welchen Switch hast du denn in der [definition='27','0']NodeMCU[/definition] eingestellt? Da sind ja mehrere zur Auswahl.
Debounce kannst Du gegen 0 machen.
Übermittlung auf 0
Der TRCT5000 bleibt solange auf LOW bis der rote Streifen wieder weg ist.
Switch auf : normal Switch.
Sendet dann eine 1/0
Im IoBroker dann beide triggern und bis 75 zählen.
Du hast also anstatt "Pulse Counter" einen Switch gewählt?
Habe große Probleme mit Device "Pulse Counter".
Welchen Switch hast du denn in der [definition='27','0'][definition='27','0']NodeMCU[/definition][/definition] eingestellt? Da sind ja mehrere zur Auswahl.
Ich meine das in der Auswahl nur das Wort Switch stand. Kein Zusatz, nur Switch.
Alles anzeigenDebounce kannst Du gegen 0 machen.
Übermittlung auf 0
Der TRCT5000 bleibt solange auf LOW bis der rote Streifen wieder weg ist.
Switch auf : normal Switch.
Sendet dann eine 1/0
Im IoBroker dann beide triggern und bis 75 zählen.
Ich vergleiche nachher mal Deine Einstellungen mit meinen und poste das Ergebnis.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!