Beiträge von HoerMirAuf

    Es geht um die Steuerung einer Heizungspumpe für eine nicht immer bewohnte Dachgeschosswohnung. Die Pumpe wird ja von der Heizung nur eingeschalten wenn geheizt wird. Sonoff Basic R2 hängt zwischen Heizungsregelung und Umwälzpumpe. Dass heisst ich kann aktuell die Heizung fürs Dachgeschoss nur dazuschalten, wenn die Heizung läuft.

    Die Funktion versteh ich nicht ganz. Die Heizung wird dazugeschaltet wenn die Heizung läuft? Du meinst wenn das DG Heizung anfordert?

    Wo und in welchem Fall ist da der Sonoff Stromlos? Der hängt im Dachgeschoss und da ist in Abwesenheit der Strom aus? Warum hängt der zwischen Heizungskreis und Regelung?


    Und warum wird die Pumpe mit nem Sonoff geschaltet?


    ich frag nur so nach, weil sich Dein Problem vielleicht auch mit ner Stromerkennung lösen lässt. z.B. mit ner Rule: Ist Heizung an (Stromfluss höher Wert X) dann Pumpe an. Ist die Heizung aus (Stromfluss kleiner Wert X) Pumpe aus. Würde aber dann einen zweiten Sonoff z.B. POW/Gosund Sp111 benötigen der Die Stromerkennung durchführt und dann z.B. zyklisch alle paar Minuten den Wert an den schaltenden Sonoff sendet. Oder mit einem Zusatzsensor für Strommessung INA219/ACS712 am besagten Sonoff selbst.

    Hi.


    Ich schätze du meinst die Multipress-Functions?

    Das beschreibt die verschiedenen Modi die mit dem Button der an GPIO0 angeschlossen ist, geschaltet werden können:


    https://tasmota.github.io/docs…es/#multi-press-functions


    EDIT:

    Und ja, die haben sich im Laufe der Versionen schon verändert.

    HI.


    Also, was Du meinst ist kein "Treppenlichttrafo" (Trafo ist absolut irritierend in dem Zusammenhang) sondern ein Zeitrelais und wenn schon umgangssprachlich, dann ein "Treppenlichautomat" ;)

    *klugscheißmodus aus


    würde es funktionieren

    Ja! Geht, weil du die Zeitfunktion ja auch mit nem Shelly realisieren kannst.

    Welche Einstellung muss ich am shelly vornehmen

    Kommt drauf an: Tasmota oder Orginal FW? Bei Tasmota über Pulsetime<x> in der Konsole.

    Hi.


    Nach deinen Log Daten wird Power2 geschaltet, das passt soweit.

    Entweder der Touch kaputt, der Eltako kaputt (eher unwahrscheinlich), falsch am Eltako angeschlossen oder was ich fast vermute:


    Du hast keinen Sonoff T1 3CH und das Template passt nicht.


    Evtl mal das vom T3 versuchen:

    Code
    {"NAME":"TX T3EU3C","GPIO":[17,255,0,255,23,22,18,19,21,158,0,0,0],"FLAG":0,"BASE":30}


    Oder :

    https://tasmota.github.io/docs…rocedure-for-New-Devices/

    Hi


    Kann auch nicht gehen. Du überschreibst Deine Rule1 mit jeder Zeile und hast so nur die letzte Zeile als Rule1 aktiv.

    Das Rule1 kommt nur einmal ganz am Anfang vor, damit Tasmota weiß, das jetzt die Rule beschrieben bzw. überschrieben wird.

    Code
    Rule1 on Energy#Power!=%var1% do backlog var1 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Power').State(%var1%) endon on Energy#Current!=%var2% do backlog var2 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Current').State(%var2%) endon on Energy#Voltage!=%var3% do backlog var3 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Voltage').State(%var3%) endon on Energy#Today!=%var4% do backlog var4 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Today').State(%var4%) endon on Energy#Yesterday!=%var5% do backlog var5 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Yesterday').State(%var5%) endon

    rule1 1


    Falls das zuviel Zeichen für eine Rule sind:

    Code
    Rule1 on Energy#Power!=%var1% do backlog var1 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Power').State(%var1%) endon on Energy#Current!=%var2% do backlog var2 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Current').State(%var2%) endon on Energy#Voltage!=%var3% do backlog var3 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Voltage').State(%var3%) endon
    Code
    Rule2 on Energy#Today!=%var4% do backlog var4 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Today').State(%var4%) endon on Energy#Yesterday!=%var5% do backlog var5 %value%; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Yesterday').State(%var5%) endon

    rule1 1

    rule2 1



    Aber ich fürchte das das Ding sich tot sendet. Die Trigger lösen ja bei jeder kleinsten Änderung aus.

    Evtl. das Ganze lieber zyklisch alle Minute senden oder so:

    Code
    Rule1
    on Energy#Power!=%var1% do var1 %value% endon
    on Energy#Current!=%var2% do var2 %value% endon
    on Energy#Voltage!=%var3% do var3 %value% endon
    on Energy#Today!=%var4% do var4 %value% endon
    on Energy#Yesterday!=%var5% do var5 %value% endon

    Code
    Rule2
    on Time#Minute do backlog WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Power').State(%var1%);
    WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Current').State(%var2%);
    WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Voltage').State(%var3%);
    WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Today').State(%var4%);
    WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Yesterday').State(%var5%) endon

    Oder man spielt mit Hsysterese (im Fallbeispiel "5", man braucht aber dann auch 2 Variablen pro Wert):

    Code
    on Energy#Power>%var1% do backlog var1 %value%; add1 5; var2 %value%; sub2 5; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Power').State(%var1%) endon
    on Energy#Power<%var2% do backlog var1 %value%; add1 5; var2 %value%; sub2 5; WebSend [192.168.xx.xx:8181] /cuxd.exe?Status=dom.GetObject('Sonoff Pow 001: Power').State(%var1%) endon


    EDIT:

    Wenn ich das richtig sehe gibt es für die CCU auch ein MQTT Addon. Wäre evtl sinnvoller die Werte damit zu übertragen als mit Websend.

    Siehe da, Dein Fehler mit Bildchen schon deutlich zu sehen.

    Echt? Für mich jetzt nicht so, ad hoc,

    Wenn er nen Wemos hat, dann kann er durchaus den GPIO13 verwenden und wenn er verschieden bin's versucht hat könnte auch (was ich aber bewzeifle ) die sensor.bin dabei gewesen sein ....


    Aber ich schätze Helfinger bezieht sich auf den Hinweis mit dem blauen Ausrufezeichen gleich unter der Überschrift ;)


    Smart :

    Also etwas genauer bitte! WELCHE "unterschiedlichen Firmwares" hast du versucht? Und war die Sensor.bin dabei?

    Diese beiden Rules habe ich nun erstellt.

    Zum einen geht das mit einer Rule, zum anderen wird bei deiner Rule jetzt bei jeder Wertänderung dieser in var1 eingelesen. Da brauchts in der 2. Rule dann auch kein backlog und setzten des var1 auf null.

    Inwieweit das den Prozessor am NodeMCU belastet .... ?? Ansonsten eben wie im ersten beispiel, beim senden die var1 auf null zu setzen und nur dann einlesen wenn der analog wert größer null ist.


    Deine beiden Rule zuzammengefasst:


    Rule1 ON analog#a0 DO Var1 %value% ENDON ON Time#Minute DO WebSend [192.168.1.103:6832] /Test %var1% ENDON

    Das macht doch der Eltako bereits das er bei einem kurzen Druck schaltet, bei einem langen dimmt.

    Zumindest hab ich das so verstanden.


    Du musst das doch nur einfach vom Touch Element so auf Relais übertragen.

    Das Relais zieht immer so lange an wie du mit dem Finger auf dem Touch bist und das relais gibt das so an den Eltako weiter und der macht das dann wie vorher auch.

    Wie stell ich noch mal auf "Switch" statt "Button" um??

    Schau mal auf deinen Screenshot. Da wo Button steht, das ist ein dropdown Feld, da wählst du Switch aus.


    EDIT

    Die gleich Lösung hat dir übrigens auch schon der User DejaWuest in Post 3 gegeben.

    Hi ...


    Wenn ich mir das so durchlese... und das richtig verstehe, möchtest du eigentlich nur, das das Relais solange angezogen bleibt wie der Touch betätigt wird.

    Wie eben beim mechanischen Taster? Toggeln und dimmen macht ja dann der Eltako.


    Dann musst du eigentlich nur auf "Switch" statt "Button" konfigurieren und den Switchmode jeweils auf 1 (follow) setzten.

    switchmode1 1

    switchmode2 1

    switchmode3 1

    Hi.


    werden wohl nur die Rohdaten angezeigt A0


    Wie genau speichert man den Wert von Analog0 in der Variable "var1"?

    Wie im Wiki beschrieben:

    Zitat

    (the raw analog value would be analog#a0).

    Dann muss die Rule lauten:


    Code
    ON analog#a0>%var1% DO VAR1 %value% ENDON
    ON Time#Minute DO Backlog websend [myserver.com] /<pfad> %var1%; var1 0 ENDON
    Rule 1 1

    Zur Erklärung:

    var1 ist im Ursprung "0".


    on analog#a0>%var1% do var1 %value% endon

    macht folgendes: Ist der Wert von analog#a0 größer var1 (ist ja 0) beschreibe var1 mit dem Wert von analog#a0

    Dieser wird dann alle Minute gesendet und die var1 wieder auf null gesetzt und das Ganze beginnt von vorne.


    EDIT:

    Man kann auch bei Änderung des analog Wertes senden anstatt zyklisch, wenn das nicht zu oft der Fall ist:

    on analog#a0!=%var1% do backlog websend [myserver.com] /<pfad> %value%; var1 %value% endon


    Wenn der Wert von analog#a0 ungleich var1 ist wird gesendet und var1 auf den Wert von analaog#a0 gesetzt. Ändert der sich erneut wird dieser wieder übertragen. Allerdings bei ständigen Änderungen nicht zu empfehlen.

    Hi,


    Das mit Thinkspeak hatte wir schon mal:

    tasmota mqtt an ThingSpeak ohne eigenen broker

    Da scheint es wohl mit der LWT Message von Tasmota Probleme zu geben.


    Senden kannst du den ADC value z.b. Minutenweise mit ner Rule, wie im Tasmota Rules Wiki beschrieben:

    Zitat

    This example uses Analog Range mode (trigger analog#range) which is a scaled output value (the raw analog value would be analog#a0). On ESP32 which supports multiple ADC inputs, the ADC index must be appended such as analog#range1 for ADC#1.

    Code
    Rule:
    ON analog#range>%var1% DO VAR1 %value% ENDON
    ON Time#Minute DO Backlog publish shed/tele/maxdb %var1%; var1 0 ENDON
    Rule 1 1

    Wobei anstelle von publish eben websend verwendet wird.


    Aber ich würde erst mal testen ob das mit dem Websend wirklich funktioniert. Im Link von dem FRED hat der User gemu2015 extra den Quellcode von Tasmota angepasst weil's da wohl eben auch Probleme gab.

    Oh, guter Hinweis.


    Ich hab das auch noch nicht gesehen das man das Design umstellen kann.

    Mich stört das neue zwar nicht, das alte ist aber auch für mich gewohnter und ... übersichtlicher :):thumbup: