Beiträge von chromo23

    Hallo,

    ich habe mir mal auf die Schnelle eine kostengünstige Leckageerkennung bzw. eher eine "Ich habe das Wasser aus versehen laufen lassen" Erkennung gebaut.

    Das wurde nötig, da ein älterer Herr im Bekanntenkreis immer häufiger vergisst, das Wasser wieder abzustellen und ich keine kommerzielle Lösung finden konnte.

    Grundlage sind ein Stömungsschalter und eine S20 mit Tasmota drauf. Der Stömungsschalter sitzt direkt hinter der Pumpe.

    Da ich so selten mit Tasmota arbeite habe ich die aktuelle Standardversion 8.4.0 geflasht.

    Daher bin ich auf die Rules angewiesen, an denen ich mir regelmäßig die Finger breche. :rolleyes:

    Hier die Rules:

    Code
    Rule1 on Switch2#State=0 do backlog ruletimer1 2100 ;LedPower 1; Rule3 0 endon on rules#timer=1 do backlog power1 0; Rule2 1; Rule1 0 endon on Switch2#State=1 do backlog ruletimer1 0; LedPower 0 endon on Button1#state=2 do Publish cmnd/custom-topic/SWITCH %value% endon 
    Code
    Rule2 on System#boot do backlog rule1 1; rule2 0; rule3 0 endon on Switch2#State=1 do backlog Rule3 1; Rule2 0 endon on Button1#state=2 do Publish cmnd/custom-topic/SWITCH %value% endon 
    Code
    Rule3 on Button1#State=2 do backlog power1 2; Rule1 1; LedPower 0 endon

    Leider etwas unübersichtlich geworden. Das kann gerne verbessert werden.

    Gundeinstellungen sind folgende:

    Switchmode2 1 ------> SwitchMode 1 Set switch to follow mode (0 = OFF, 1 = ON)

    PowerOnState 1 ---> 1 = turn relay(s) ON after power up


    Was das Gerät eigentlich macht:

    Man steckt das Gerät ein und hängt die Pumpe dran. Durch PowerOnState 1 ist es immer gleich aktiviert wenn man es einsteckt.

    Sobald der der Strömungschalter aktiviert wird läuft der Timer und mit

    Code
    Button1#state=2 do Publish cmnd/custom-topic/SWITCH %value% endon

    wird der interne Button des S20 deaktiviert, seine Hauptfuntktion somit überschrieben (da hab ich keine bessere Lösung gefunden)

    Nach Ablauf des Timers wird die Pumpe ausgeschalten und der interne Button erst freigegeben, wenn kein Wasser mehr fließt, der Strömungschalter also aus ist (das passiert in Rule2 bzw.3)

    Dann erst kann man mit dem Button die Pumpe wieder anschalten.

    Mit LedPower habe ich ein visuelles Feedback für den Strömungsschalter.

    Ein bisschen umständlich alles, aber es geht. :)

    Da es im Keller kein Wlan gibt, muss man also immer erst in den Keller wenn die "Sicherung" auslöst.

    Aber für die Zukunft hier die Frage: Kann man die virtuellen An/Aus Schalter im Webinterface auch mit Rules Steuern, damit die sich z.b. genauso verhalten wie Button1 in meinem Beispiel?

    Edit: Ein Problem bleibt. Der Strömungschalter ist an GPIO2 (pin14). Bei meinen Test habe ich bemerkt, dass wenn ich den Sonoff mit geschlossenem Schalter in die Steckdose stecke, dieser nicht bootet bzw. inaktiv bleibt. Kann mir jemand dieses Verhalten erklären bzw gibt es einen Workaround dafür?

    Edit2: Lösung selber gefunden: https://www.letscontrolit.com/forum/viewtopic.php?t=2541 :) Hab den Schalter an RX bzw. GPIO3 gehangen.

    Ich vermute eher dass dieser E-Log der GPIO2 ist. Kann ich aber nicht testen da es bei meinen S20 diesen Anschluss gar nicht gibt (haben nur 3,3 Rx Tx und GND).

    Ich hab mir den neueren Sonoff S20 mal angeschaut und der E-Log Anschluss führt, wenn mich meine Augen nicht täuschen direkt zum Pin 14 des ESP.

    Somit hast du völlig recht mit der Annahme, dass dies GPIO2 ist.

    Das Problem lässt sich bei mir zum Glück durch einen hard boot beheben. Per softwareseitigem Neustart bleibt der Sensor leider nicht ansprechbar.

    Vielleicht versuchst du mal den "SI7021" auszuwählen.

    Hab ich auch schon gemacht. Das ändert nichts.

    Immerhin läuft das ganze ne Weile (ca. 12-24h....) und für meine Anwendung ist das (noch) nicht ganz so schlimm, da der Sonoff durch den Lichtschalter eh häufig neu gestartet wird. Aber für eine zuverlässige Produktivumgebung kann ich das so noch nicht benutzen.

    Jetzt scheint alles zu funktionieren. Bei dem Projekt war definitiv der Wurm drin.

    Ich habe den Sonoff neu geflasht und damit sind die zufälligen Neustarts verschwunden, die auch ohne Sensor auftraten. Dann hab ich den Sensor wieder angeschlossen und ich habe entweder keine Werte bekommen oder der Sonoff startete wieder willkürlich neu. Dann hab ich die Datenleitung mal aus Spaß auf RX des Sonoffs gelegt. Läuft!

    Da schienen sich zwei Probleme hervorragend zu ergänzen bzw. zu überlagern.

    Ich habe jetzt ein update auf 6.4.0 gemacht und es scheint wieder zu funktionieren.:/

    Wie einen doch vermeintliche Kleinigkeiten den ganzen Nachmittag lang beschäftigen können.....

    Naja, es ist ja nicht ganz umsonst. Dadurch lernt man viele neue Sachen im Forum und kann dann seinen Sonoff Basic auch mit verbunden Augen komplett zerlegen und wieder zusammenbauen.

    Edit: Zu früh gefreut :cursing: Jetzt startet der auch die ganze zeit neu. In der Konsole seh ich ncihts spannendes... da war mal kurz was mit "Info3 restart rason ....fatal exception.... bla" und dann auch mal "restart reason hardware watchdog" aber ich konnts nicht so schnell kopieren, da das Gerät schon wieder neu gestartet hat...

    Ich trau mich ja fast nicht es zuzugeben, aber ich habe einen Fehler gemacht.... :rolleyes:

    Für alle, die einen Sensor an einen Sonoff Basic o.ä. kleben wollen: Macht es nicht! 8o

    Ich hätte nicht gedacht, dass das Ding so viel Eigenwärme durchs Gehäuse transportiert. Ich hab dazu noch den Sensor genau neben die Trafospule geklebt.

    Immerhin hab ich jetzt gelernt, dass man per Rules nen Offset eingeben kann. Danke Chaot

    Endlich kam der Sensor an....Leider wars der BMP280 :/

    Genau das, was ich nicht brauche. Immerhin hab ich jetzt ne Temperaturanzeige und kann das als Variable benutzen bis der neue Sensor kommt.

    Aber egal... ich wollte schonmal anfangen mit den Rules zu experimentieren.

    Es geht aber nicht!

    Ich scheitere schon an einem einfachen Beispiel von der Tasmota Seite:

    Code
    rule1 on button1#state do backlog power1 %value%; ruletimer1 60 endon on rules#timer=1 do power1 off endon

    Was mache ich falsch?

    Ich bin zur Console und habe da die Rule reinkopiert. Dann Enter und dann nix passiert außer die Meldung, dass er die rule empfangen und gespeichert hat.

    Ich habe 6.3.0 auf dem Sonoff.

    Das mit der Feuchte müsste schon auch gehen. So ähnlich wie es im Beispiel 9 Thermostat gehändelt wird.... aber sorry, da steig ich selbst noch nicht ganz durch. Zumindest geht es so das der Lüfter zwar auschaltet aber die Feucht immer wieder abgefragt wird und bei Wertüberschreitung wieder einschaltet. Bei ner 10 Sekunden abfrage wäre der dann spätesten nach 10 Sekunden wieder an. Bei Gelegenheit werd ich das mal versuchen.

    Könnte es nicht auchgenauso gut passieren, dass der Lüfter bei ner 10sek Abfrage immer schon nach 10sek ausschaltet, wenn der Luftfeuchtewert von vornherein zu niedrig ist?

    Oder werden die Rules seriell verarbeitet?

    Also wenn man die seriell verarbeitbar machen könnte, dann wäre es ja gelöst.

    also bei schalter an läuft der timer....wenn timer fertig, dann aus und neue regel zur feuchteüberwachung laufen lassen...

    Der TH16 bekommt also erst Saft mit dem Lichtschalter?

    Genau.

    Verstehe ich nicht. Wie soll das Relais den eingeschaltet bleiben wenn der Sonoff keinen Saft mehr hat?

    Soll es doch gar nicht. Der Lichtschalter versorgt das Sonoff mit Strom, damit das seine Routine verrichten kann. Also entweder nach Zeit X aus oder wenn zu Feucht, erst nach Luftfeuchte Y aus.

    Nun ist Der Lüfter aus und der Lichtschalter immer noch an. Wenn ich jetzt kurz mal den Lichschalter aus und wieder an schalte, dann Läuft die Routine on neuem....ein Reset sozusagen.

    Hallo, ich habe einen Badlüfter, der mit einem Sonoff Th16 geregelt wird.

    Das ganze wird über einen freien Lichtschalter angeschalten und dann läuft das ganze für 15min via Timer (der looptimer von ewelink)

    Manchmal wird auch noch geduscht und dann muss ich in der App leider manuell umschalten , dass der Lüfter erst bei Unterschreiten eines bestimmten Feuchtigkeitswertes wieder deaktiviert wird.

    Nun zur eigentlichen Frage: Ist es möglich mit Tasmota und den Regeln folgendes Szenario zu erstellen?

    Wenn Th16 ans Netz angeschloßen wird, schaltet das Relais auf An und ein Timer läuft für X Minuten.

    Wenn aber während dieser Zeit die Luftfeuchte einen Wert Y überschreitet, wird der Timer deaktiviert (bis zum Neustart des Gerätes via Lichtschalter) und das Relais erst ausgeschalten wenn der Luftfeuchtewert Y unterschritten wird (im Idealfall spingt der Lüfter auch wieder an, falls, solange diese Regel aktiv ist, Y nochmals überschritten wird)

    Danke im Voraus, Chromo