Esp8266 mit Tasmota Rules mit mehreren Bedingungen

  • Hallo!


    Ich möchte mir mit einem ESP8266, einem DHT11 und einem Relais eine Steuerung für einen Heizlüfter bauen.

    Diese soll bei einer gewissen Temperatur ein- bzw. ausschalten.

    Ich habe es hinbekommen, dass bei 20° das Relais einschaltet und bei erreichen von 25° wieder aus. (Mit einer Rule)

    Allerdings muss ich nun jedesmal die rule aktivieren bzw. deaktivieren da die Heizung nur laufen soll, wenn ich anwesend bin.


    Ist es jetzt mit einer rule möglich, einen zusätzlichen (Haupt-) schalter mit einzubinden?


    Also nur wenn der Schalter ein ist funktioniert und schaltet die Steuerung.

    Ist der Schalter AUS, soll auch die Heizung immer aus sein.


    rule on power1#state=1 DHT11#Temperature<20 do power2 on endon on DHT11#Temperature>25 do power2 off endon



    Würde dies so funktionieren?


    Bild ist zur Veranschaulichung

    Heizungsschalter ist Hauptschalter und Status ist das Relais welches Schalter

  • Hi

    Ist es jetzt mit einer rule möglich, einen zusätzlichen (Haupt-) schalter mit einzubinden?

    Ja

    rule on power1#state=1 DHT11#Temperature<20 do power2 on endon on DHT11#Temperature>25 do power2 off endon

    Würde dies so funktionieren?

    Nein. ;)


    Du hast ein virtuelles Relais Power1 angelegt, das mit einem Schalter ("hauptschalter") betätigt wird?

    Und das Physikalische Relais ist Power2? Ich bau das jetzt mal auf diesen Bedingungen auf.


    An einem GPIO hast du einen Schalter konfiguriert der die Steuerung aktiviert und dem virtuellen Relais zugeordnet ist: Switch1


    Jetzt erst mal den Switchmode auf "follow" oder "inverted follow"

    switchmode 2


    Jetzt die Rule mir der die Automatik (Rule2) aktiviert und deaktiviert wird:

    rule1 on switch1#state=1 do rule2 1 endon on switch1#state=0 do backlog rule2 0; power2 0 endon


    Dann die Rule für die Automatik:

    rule2 on DHT11#Temperature<20 do power2 1 endon on DHT11#Temperature>25 do power2 0 endon


    Zuletzt Rule1 aktivieren:

    rule1 1

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Hi


    Auf welchem GPIO hängt den das schalt Relais? Wirklich auf GPIO5?


    Ansonsten bitte Konsolen Log posten


    EDIT:

    Was ist das den für ein WebIf Screenshot? So ne Darstellung hab ich noch nicht gesehen? :/

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Also das Schaltrelais, also welches physisch auch existiert, hängt auf GPIO5 also D1.

    GPIO2 D4 ist mein virtuelles Relais welches gemeinsam mit dem Switch auf GPIO 0 D3 geschalten wird. (So zumindest mein Verständnis/ meine Theorie)



    Die Darstellung stammt aus der Tasmota Control App

    Da können mehrere Tasmota Geräte auf einmal dargestellt werden.

    Ist grundsätzlich eine Zusammenfassung von Verlinkungen bzw. der einzelnen IP Adressen der Geräte.

  • Was mir gerade auffällt... Nimm nicht den GPIO0 für den Switch. Wenn der auf GND beim booten liegt dann geht der ESP in den flash Modus.


    Evtl ist das der Grund? Ansonsten sollte das so gehen

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Was sagt der Log in der Konsole??

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Moin.


    Screenshots sind ungünstig bei Log.

    Besser: Copy und Paste nur den Text


    gibt mal rule1 ein und poste den Output, genauso den nach der Eingabe von rule2

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 07:16:41.629 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":88,"Free":423,"Rules":"on power1#state=1 do rule2 1 endon on switch1#state=0 do backlog rule2 0; power2 0 endon"}}


    07:17:12.350 RSL: RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":83,"Free":428,"Rules":"on DHT11#Temperature<25 do power2 1 endon on DHT11#Temperature>26 do power2 0 endon"}}




    07:15:53.562 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:53.568 RSL: RESULT = {"POWER2":"ON"}

    07:15:53.570 RSL: POWER2 = ON

    07:15:54.093 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:54.098 RSL: RESULT = {"POWER2":"ON"}

    07:15:54.101 RSL: POWER2 = ON

    07:15:54.704 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:54.710 RSL: RESULT = {"POWER2":"ON"}

    07:15:54.713 RSL: POWER2 = ON

    07:15:55.294 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:55.299 RSL: RESULT = {"POWER2":"ON"}

    07:15:55.302 RSL: POWER2 = ON

    07:15:55.893 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:55.898 RSL: RESULT = {"POWER2":"ON"}

    07:15:55.901 RSL: POWER2 = ON

    07:15:56.487 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:56.492 RSL: RESULT = {"POWER2":"ON"}

    07:15:56.495 RSL: POWER2 = ON

    07:15:57.086 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:57.091 RSL: RESULT = {"POWER2":"ON"}

    07:15:57.094 RSL: POWER2 = ON

    07:15:57.697 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:57.703 RSL: RESULT = {"POWER2":"ON"}

    07:15:57.706 RSL: POWER2 = ON

    07:15:58.290 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:58.295 RSL: RESULT = {"POWER2":"ON"}

    07:15:58.298 RSL: POWER2 = ON

    07:15:58.916 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:58.921 RSL: RESULT = {"POWER2":"ON"}

    07:15:58.924 RSL: POWER2 = ON

    07:15:59.516 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:15:59.522 RSL: RESULT = {"POWER2":"ON"}

    07:15:59.524 RSL: POWER2 = ON

    07:16:00.119 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:00.125 RSL: RESULT = {"POWER2":"ON"}

    07:16:00.127 RSL: POWER2 = ON

    07:16:00.729 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:00.734 RSL: RESULT = {"POWER2":"ON"}

    07:16:00.737 RSL: POWER2 = ON

    07:16:01.304 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:01.310 RSL: RESULT = {"POWER2":"ON"}

    07:16:01.313 RSL: POWER2 = ON

    07:16:01.906 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:01.912 RSL: RESULT = {"POWER2":"ON"}

    07:16:01.914 RSL: POWER2 = ON

    07:16:02.508 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:02.513 RSL: RESULT = {"POWER2":"ON"}

    07:16:02.516 RSL: POWER2 = ON

    07:16:03.108 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:03.114 RSL: RESULT = {"POWER2":"ON"}

    07:16:03.116 RSL: POWER2 = ON

    07:16:03.791 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:03.797 RSL: RESULT = {"POWER2":"ON"}

    07:16:03.799 RSL: POWER2 = ON

    07:16:04.421 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:04.427 RSL: RESULT = {"POWER2":"ON"}

    07:16:04.429 RSL: POWER2 = ON

    07:16:04.976 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:04.982 RSL: RESULT = {"POWER2":"ON"}

    07:16:04.984 RSL: POWER2 = ON

    07:16:05.576 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:05.582 RSL: RESULT = {"POWER2":"ON"}

    07:16:05.584 RSL: POWER2 = ON

    07:16:06.274 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:06.280 RSL: RESULT = {"POWER2":"ON"}

    07:16:06.283 RSL: POWER2 = ON

    07:16:06.904 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:06.910 RSL: RESULT = {"POWER2":"ON"}

    07:16:06.912 RSL: POWER2 = ON

    07:16:07.506 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:07.511 RSL: RESULT = {"POWER2":"ON"}

    07:16:07.514 RSL: POWER2 = ON

    07:16:08.165 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:08.170 RSL: RESULT = {"POWER2":"ON"}

    07:16:08.173 RSL: POWER2 = ON

    07:16:08.862 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:08.868 RSL: RESULT = {"POWER2":"ON"}

    07:16:08.870 RSL: POWER2 = ON

    07:16:09.486 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:09.492 RSL: RESULT = {"POWER2":"ON"}

    07:16:09.494 RSL: POWER2 = ON

    07:16:10.088 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:10.094 RSL: RESULT = {"POWER2":"ON"}

    07:16:10.097 RSL: POWER2 = ON

    07:16:10.699 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:10.704 RSL: RESULT = {"POWER2":"ON"}

    07:16:10.707 RSL: POWER2 = ON

    07:16:11.321 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:11.326 RSL: RESULT = {"POWER2":"ON"}

    07:16:11.329 RSL: POWER2 = ON

    07:16:11.921 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:11.927 RSL: RESULT = {"POWER2":"ON"}

    07:16:11.929 RSL: POWER2 = ON

    07:16:12.521 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:12.526 RSL: RESULT = {"POWER2":"ON"}

    07:16:12.529 RSL: POWER2 = ON

    07:16:13.127 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:13.133 RSL: RESULT = {"POWER2":"ON"}

    07:16:13.136 RSL: POWER2 = ON

    07:16:13.675 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:13.681 RSL: RESULT = {"POWER2":"ON"}

    07:16:13.683 RSL: POWER2 = ON

    07:16:13.712 CMD: rule1

    07:16:13.719 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":88,"Free":423,"Rules":"on power1#state=1 do rule2 1 endon on switch1#state=0 do backlog rule2 0; power2 0 endon"}}

    07:16:14.295 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:14.301 RSL: RESULT = {"POWER2":"ON"}

    07:16:14.303 RSL: POWER2 = ON

    07:16:14.895 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:14.901 RSL: RESULT = {"POWER2":"ON"}

    07:16:14.903 RSL: POWER2 = ON

    07:16:15.498 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:15.504 RSL: RESULT = {"POWER2":"ON"}

    07:16:15.506 RSL: POWER2 = ON

    07:16:16.097 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:16.103 RSL: RESULT = {"POWER2":"ON"}

    07:16:16.105 RSL: POWER2 = ON

    07:16:16.685 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:16.691 RSL: RESULT = {"POWER2":"ON"}

    07:16:16.693 RSL: POWER2 = ON

    07:16:17.278 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:17.284 RSL: RESULT = {"POWER2":"ON"}

    07:16:17.286 RSL: POWER2 = ON

    07:16:17.878 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:17.884 RSL: RESULT = {"POWER2":"ON"}

    07:16:17.886 RSL: POWER2 = ON

    07:16:18.479 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:18.484 RSL: RESULT = {"POWER2":"ON"}

    07:16:18.486 RSL: POWER2 = ON

    07:16:19.157 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:19.162 RSL: RESULT = {"POWER2":"ON"}

    07:16:19.165 RSL: POWER2 = ON

    07:16:19.703 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:19.709 RSL: RESULT = {"POWER2":"ON"}

    07:16:19.711 RSL: POWER2 = ON

    07:16:20.292 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:20.298 RSL: RESULT = {"POWER2":"ON"}

    07:16:20.300 RSL: POWER2 = ON

    07:16:20.893 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:20.899 RSL: RESULT = {"POWER2":"ON"}

    07:16:20.901 RSL: POWER2 = ON

    07:16:21.493 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:21.499 RSL: RESULT = {"POWER2":"ON"}

    07:16:21.501 RSL: POWER2 = ON

    07:16:22.098 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:22.103 RSL: RESULT = {"POWER2":"ON"}

    07:16:22.106 RSL: POWER2 = ON

    07:16:22.708 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:22.714 RSL: RESULT = {"POWER2":"ON"}

    07:16:22.716 RSL: POWER2 = ON

    07:16:23.297 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:23.302 RSL: RESULT = {"POWER2":"ON"}

    07:16:23.305 RSL: POWER2 = ON

    07:16:23.898 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:23.903 RSL: RESULT = {"POWER2":"ON"}

    07:16:23.906 RSL: POWER2 = ON

    07:16:24.500 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:24.505 RSL: RESULT = {"POWER2":"ON"}

    07:16:24.508 RSL: POWER2 = ON

    07:16:25.100 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:25.105 RSL: RESULT = {"POWER2":"ON"}

    07:16:25.108 RSL: POWER2 = ON

    07:16:25.711 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:25.716 RSL: RESULT = {"POWER2":"ON"}

    07:16:25.718 RSL: POWER2 = ON

    07:16:25.888 CMD: rule2

    07:16:25.895 RSL: RESULT = {"Rule2":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":83,"Free":428,"Rules":"on DHT11#Temperature<25 do power2 1 endon on DHT11#Temperature>26 do power2 0 endon"}}

    07:16:26.378 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:26.384 RSL: RESULT = {"POWER2":"ON"}

    07:16:26.386 RSL: POWER2 = ON

    07:16:26.982 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:26.988 RSL: RESULT = {"POWER2":"ON"}

    07:16:26.990 RSL: POWER2 = ON

    07:16:27.583 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:27.589 RSL: RESULT = {"POWER2":"ON"}

    07:16:27.591 RSL: POWER2 = ON

    07:16:28.182 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:28.188 RSL: RESULT = {"POWER2":"ON"}

    07:16:28.190 RSL: POWER2 = ON

    07:16:28.821 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:28.827 RSL: RESULT = {"POWER2":"ON"}

    07:16:28.829 RSL: POWER2 = ON

    07:16:29.421 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:29.426 RSL: RESULT = {"POWER2":"ON"}

    07:16:29.429 RSL: POWER2 = ON

    07:16:30.028 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:30.034 RSL: RESULT = {"POWER2":"ON"}

    07:16:30.036 RSL: POWER2 = ON

    07:16:30.574 RUL: DHT11#TEMPERATURE<25 performs "power2 1"

    07:16:30.579 RSL: RESULT = {"POWER2":"ON"}

    07:16:30.582 RSL: POWER2 = ON

    07:16:31.247 CMD: rule2 0

    07:16:31.254 RSL: RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":83,"Free":428,"Rules":"on DHT11#Temperature<25 do power2 1 endon on DHT11#Temperature>26 do power2 0 endon"}}

    07:16:41.622 CMD: rule1

    07:16:41.629 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":88,"Free":423,"Rules":"on power1#state=1 do rule2 1 endon on switch1#state=0 do backlog rule2 0; power2 0 endon"}}

    07:17:12.343 CMD: rule2

    07:17:12.350 RSL: RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":83,"Free":428,"Rules":"on DHT11#Temperature<25 do power2 1 endon on DHT11#Temperature>26 do power2 0 endon"}}

  • mehr kann ich leider nicht posten

    Das passt so schon.


    Die Rule1 greift nicht, bzw die Schalterbetätigung wird nicht erkannt

    Was kommt in der Konsole wenn du switchmode1 eingibst?

    Wie ist der Schalter angeschlossen? Gegen Masse? Gegen VCC?

    Mit was für nen ESP arbeitest du, wie lang ist die Strecke vom Schalter zum ESP?

    Pullup oder Pulldown WIderständer verwendet?

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Ok ich glaube ich verlaufe mich da gerade in etwas.

    Den Hauptschalter gibt es ja nur in Tasmota.

    Sprich mein Aufbau ist der DHT11, ein ESP8266 und ein Relais. (Aufbau ist nur für Testzwecke so und wird natürlich vor Verwendung sauber gebaut und in eine KU Box gepackt)

    ESP8266 ist von AZDelivery

    Was kommt in der Konsole wenn du switchmode1

    "Switchmode1":2


    Sprich:

    das Relais auf GPIO5 D1

    und den DHT11 auf GPIO4 D2

    gibt es wirklich.


    Alles andere gibt es nur in der Software.

  • Ok.

    Dann kann es natürlich nicht gehen. Die Rule baut auf den tatsächlich vorhandene Schalter und dessen Betätigung auf.


    Kannst Du ja mit ner Drahtbrücke zwischen dem GPIO0 und z.B VCC Simulieren.

    Aber wie gesagt, sei gewarnt! Nimm nicht den GPIO0. Sollte der GPIO0 während des Booten auf GND liegen startet der ESP nur im flashmodus.


    Wenn man Schalter mit etwas längeren Strecken nimmt sollte man mit Pullup oder Pulldown Widerständen arbeiten um das Signal sauber zu definieren.

    Beim GPIO0 geht nur ein Pullup und schalten gegen GND .... Ist der Schalter bei nem Reboot geschlossen hängt das Ding im flashmodus.


    Schaut auf dem Bild wie ein WEMOS D1 MIni aus? Nimm einfach nen anderen GPIO außer D3 oder D4. Es bieten sich z.B. D6 oder D7 an...


    Zur Rule: Ansonsten könntest du auch statt dem Switchstate den Power1 als Trigger nehmen:

    rule1 on power1#state=1 do rule2 1 endon on power1#state=0 do backlog rule2 0; power2 0 endon

    Dann kannst du mit dem Webbotton für Power1 die Schalterbetätigung simulieren.

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • Thaha genau so funktioniert es:


    rule1 on power1#state=1 do rule2 1 endon on power1#state=0 do backlog rule2 0; power2 0 endon


    rule2 on DHT11#Temperature<20 do power2 1 endon on DHT11#Temperature>25 do power2 0 endon


    rule1 1


    Nun ist auch der Hauptschalter aktiv und macht das was er soll.


    DAAAAANKEEEEEE😍😍😍😍👍👍👍👍🙌🙌🙌🙌


    Nochmals zum Verständnis:

    Jetzt muss ich natürlich immer die gesamte Rule neu schreiben um die Temperaturen zu ändern.

    Jetzt könnte ich die beiden Zahlen durch var1 und var2 ersetzen.

    Diese sind allerdings nach einem Reboot "verloren".

    Würde ich es durch mem1 und mem2 ersetzten bleiben diese gespeichert.


    Bzw. zwei virtuelle Regler an denen Ein- und Ausschalttemperatur eingestellt werden können.

    Allerdings werde ich mich hierzu noch etwas mit der Programmierung auseinandersetzen müssen.

    Wäre also schon mit der mem1 zufrieden.

  • Jetzt könnte ich die beiden Zahlen durch var1 und var2 ersetzen.

    Diese sind allerdings nach einem Reboot "verloren".

    Würde ich es durch mem1 und mem2 ersetzten bleiben diese gespeichert.

    Genauso ist es:

    rule2 on DHT11#Temperature<%mem1% do power2 1 endon on DHT11#Temperature>%mem2% do power2 0 endon

    backlog mem1 20; mem2 25


    oder noch einfacher wenn du einfach ne Temperatur eingeben willst mit variable Hysterese:

    Code
    rule1
    on switch1#state=1 do rule2 1 endon on switch1#state=0 do backlog rule2 0; power2 0 endon
    on mem1#state do backlog var1 %value%; sub1 %mem2%; var2 %value%; add2 %mem2% endon
    on mem2#state do backlog var1 %mem1%; sub1 %value%; var2 %mem1%; add2 %value% endon
    Code
    rule2 on DHT11#Temperature<%var1% do power2 1 endon on DHT11#Temperature>%var2% do power2 0 endon


    mem1 22.5 ( Temp.)

    mem2 2.5 (Hysterese)


    EDIT:

    Die Rule noch bitte mit in den rule1 ruleset:

    on system#init do backlog var1 %mem1%; sub1 %mem2%; var2 %mem1%; add2 %mem2% endon


    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

    9 Mal editiert, zuletzt von HoerMirAuf ()

  • Bzw. zwei virtuelle Regler an denen Ein- und Ausschalttemperatur eingestellt werden können.

    Das kannst erreichen indem z.B. einen GPIO auf PWM stellst, das erzeugt dir einen Slider.

    Der arbeitet allerdings nur mit Werten von 0 bis 100. Möchtest du mit dem Slider aber andere Werte stellen geht das wieder mit Rules.


    Beispiel, der Slider soll zwischen einem Bereich von 17 (mem1) - 27(mem2) Grad stellen.


    rule1 1

    mem1 17

    mem2 27

    rule1 on dimmer#state do scale1 %value%,0,100,%mem1%,%mem2% endon

    in var1 steht nun immer der Wert zwischen 17 und 27 je nachdem wie der Slider gestellt wird.



    Oder mit 2 Slidern als Testbeispiel, Stellbereich wieder zwischen 17 und 27.

    - 2 GPIO auf PWM1 und PWM2 stellen

    - backlog setoption68 1; setoption20 1

    Code
    rule1
    on system#init do backlog channel1 %mem1%; channel2 %mem2% endon
    on Channel1 do scale1 %value%,0,100,17,27 endon
    on Channel2 do scale2 %value%,0,100,17,27 endon
    on var1#state do backlog mem1 %value%; webbutton1 %value% endon
    on var2#state do backlog mem2 %value%; webbutton2 %value% endon

    Die Werte von Slider 1 und Slider2 werden nun dauerhaft in mem1 und mem2 gespeichert und wenn du die Browserseite nach dem Slider-stellen neu lädst hast du die aktuellen Werte im Button stehen.

    benzino77 Tasmocompiler

    Gitpod Master Release


    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

    6 Mal editiert, zuletzt von HoerMirAuf ()

  • Ok danke.


    Vermutlich wird es so passieren, dass man sowieso einen Temperaturbereich findet die passt und diese dann lässt.


    Gebe ich bei den Temperaturen zum Beispiel 22,5° ein, muss ich hier mit , oder . trennen?