Beiträge von ansim

    Ich habe mal das Log von der Konsole kopiert.
    Erstens für Rule1 (Mittelwert). Das scheint in Ordnung zu sein.
    Hier die Rule, so wie sie jetzt eingegeben ist:

    Code
    rule1 on
    system init do backlog var1 0; var2 0; var3 0; endon 
    on analog#a0 do backlog add1 %value%; add2 1 endon on 
    var2#state>=10 do backlog scale3 %var1%,0,10,0,1; var1 0; var2 0 endon
    on var3#state do publish /Bodenfeuchte/Zitronenbaum/M10 %value% endon 

    Hier das Log zu Rule1:

    Hier die Rule2:

    Code
    rule2:
    on system init do backlog var1 0; var2 0; var3 0; var4 0; var5 0; var6 5 endon
    on analog#a0>=%var4% do backlog add1 %value%; add2 1; var4 %value%; add4 %var6%; var5 %value%; sub5 %var6%  endon
    on analog#a0<=%var5% do backlog add1 %value%; add2 1; var4 %value%; add4 %var6%; var5 %value%; sub5 %var6%  endon
    on var2#state>=10 do backlog scale3 %var1%,0,10,0,1; var1 0; var2 0 endon
    on var3#state do publish /Bodenfeuchte/Zitronenbaum/M10 %value% endon

    Hier das Log zu Rule2:

    Code
    ...kommt in der nächsten Antwort (zu viele Zeichen).


    Der größte Wert ist 729.


    ...und so kommt es im IOBroker an:

    1799,2 ist größer als der größte Messwert.
    Ich seh da leider nicht wo in Rule2 der Fehler steckt...

    Sorry, leider muss man auch manchmal etwas anderes machen als Bodenfeuchte-Sensoren zu konfigurieren.... :(
    Ich habe im 1. Vorschlag das scale noch etwas angepasst:
    scale3 %var1%,0,1000,0,100; jetzt kommen die M10-Werte wieder dreistellig.
    Die Rule funktioniert sehr gut.
    Mit dem Hysteresis-Vorschlag komme ich nicht so klar. +-5 bedeutet doch, dass nur Werte einbezogen werden, die sich um +-5 vom vorherigen Wert unterscheiden. Wahrscheinlich muss var4 auch noch Null gesetzt werden, der wird immer weiter hochgezählt.
    Bis hierher vielen Dank für Deine Hilfe!!! Alleine hätte ich das nicht hinbekommen.

    Vielen Dank, ich glaube ich habe das meiste verstanden...
    Ich probiere es erstmal ohne Wertematrix.

    Die Regel sieht nun so aus:
    rule1
    on system init do backlog var1 0; var2 0; var3 0; endon
    on analog#a0 do do backlog add1 %value%; var2 add 1 endon
    on var2#state>=10 do backlog scale3 %var1%,0,10,0,1; var1 0; var2 0 endon
    on var3#state do publish stat/Zitronenbaum/Bodenfeuchte/M10 %value% endon

    Auf der Konsole kommt aber folgendes in schöner Wiederholung:
    11:51:10.443 RUL: ANALOG#A0 performs 'do backlog add1 738; var2 add 1'
    11:51:10.450 MQT: Zitronenbaum/Bodenfeuchte/RESULT = {"Command":"Unknown","Input":"DO backlog add1 738; var2 add 1"}
    Das steht dann auch im IOBroker unter RESULT. M10 wird nicht angelegt.
    Ich denke mal, ich hab da noch einen Fehler drin... - oder?

    ... indem Du die Werte in einer Variablen addierst, einen counter mit hochzählst und dann bei Counterwert X den Variablenwert durch diesen teilst.

    Rechnen mit Tasmota Rules

    Naja - das ist mir ja schon klar... Aber: Es soll ja erst über MQTT gesendet werden, wenn dieser Vorgang abgeschlossen ist.
    Normalerweise werden die Messwerte an den Server gesendet wenn 300ms vergangen sind (oder was da eingestellt ist).
    Ich muss demnach den Wert der Variablen in der MQTT-Nachricht verändern bevor diese abgeschickt wird. Richtig?
    Ich kann aber nicht direkt in die VVariablen der Messwerte neue Daten schreiben - oder? Ist mit nicht gelungen.
    Kann ich einen Trigger auf die Variable mit dem berechneten Mittelwert setzen? D.h. immer wenn die aktualisiert ist, dann senden?
    Ich danke schon mal für dein Hirnschmalz!!!

    Hallo,
    ein Wemos D1 mini, mit Tasmota DE 14.6.0 geflasht, soll einen Bodenfeuchtesensor auslesen.
    Ist es z.B. mit rules möglich, dass über mqtt ein Mittelwert aus mehreren Messungen gesendet wird, anstatt dass jeder Wert gesendet wird und ich im IOBroker den Mittelwert bilde?
    Könnte man diesen Wert dann noch in % umrechnen? Ich hab da was gefunden - SCALE1.
    Mein Topic ist: "Zitronenbaum/Bodenfeuchte/" in %.
    Vielen Dank schon mal!

    Vielen Dank!
    ich habe den D1 gerade zurückgesetzt und neu eingerichtet.
    Dann: backlog rule1 on system#init do deepsleeptime 0 endon; rule1 1 eingegeben.

    Antwort auf der Konsole ist:
    10:06:13.234 CMD: backlog rule1 on system#init do deepsleeptime 0 endon; rule1 1
    10:06:13.306 RUL: Stored uncompressed, would compress from 39 to 25 (-36%)
    10:06:13.310 MQT: Bodenfeuchte/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":39,"Free":472,"Rules":"on system#init do deepsleeptime 0 endon"}}
    Dann: DeepSleepTime 60
    --> der D1 geht schlafen, ...und schläft, ...und schläft..., ...und schläft...!

    Hallo, ich will einen Bodenfeuchtesensor nachbauen (https://www.knx-helden.de/hausautomation/bodenfeuchtesensor/#).
    Dafür habe ich u.a. einen D1 Mini NodeMcu mit ESP8266-12F gekauft.
    Diesen habe ich erstmal zum Ausprobieren von deepsleep provisorisch auf einem breadboard gesteckt, mit Tasmota DE 14.6.0 geflasht, und dann RST und D0 kurzgeschlossen und mit Pullup versehen.
    (Ich hatte keinen 10K mehr und habe daher zwei 22K parallelgeschaltet. Ich denke als Pullup sollte das durchgehen).
    Im Tasmota habe ich Typ generic(18) gewählt.
    In der Konsole habe ich "savedata 1" und "DeepSleepTime 60" eingeben.
    Der ESP zählt dann in der Konsole von 60 rückwärts, geht vorschriftsmäßig schlafen und wacht nie wieder auf! :sleeping:
    Ich hab schon ganz viel gegoogelt und auch die Beiträge im Forum "Tasmota und der deepsleep" gefunden, es funktioniert einfach nicht!
    Hab ich was übersehen?
    Liegt es am Chip?
    Weiß jemand Rat?
    Vielen Dank schon mal!!!

    Hallo, ich muss das Thema noch mal aufgreifen...
    Ich will die Wassermenge bestimmen, die ich aus meinem Regenwasserspeicher entnehme.
    Dazu habe ich einen Durchflussensor YF-B1 (Hallsensor) gekauft https://www.amazon.de/dp/B077TNHCWG
    Der Plan ist, den Sensor an einen ESP8266 (LoLIn) mit Tasmota anzuschließen und die Impulse mit dem Counter zu zählen.
    Also: Sensorleitung an D5 (GPIO14), im Tasmota 14.3.0 bei Geräteeinstellungen den Generic(0)-Modus gewählt und GPIO14 als Counter definiert.

    Im Hauptmenü wird nun ein Zähler1 angezeigt. Aber der Zähler zählt automatisch langsam hoch ohne dass sich die Turbine bewegt.
    Daher habe ich einen PullUp-Widerstand (10KOhm) zwischen GPIO14 und 3V geschaltet. Jetzt zählt der Zähler überhaupt nicht mehr, auch nicht wenn die Turbine sich bewegt.
    Was stimmt denn da nicht? Hat jemand einen Tipp? Wo liegt mein Fehler?
    Vielen Dank schon mal!!!

    Hallo, mein Sonoff Basic R2, Tasmota geflasht, sendet seine Daten an IOBroker als MQTt-Server. Leider habe ich mit den Timern rumgespielt. Seitdem erscheinen im IOBroker alle 16 Timer. Das ist sehr unübersichtlich. Wie kann ich die Timer im MQTT Protokoll wieder loswerden? Deaktivieren hilft nicht. Muss ich Tasmota resetten? Danke schon mal!!!