Rule mit Gerätetaster aktivieren / deaktivieren

  • Würde meine mehrfachabfrage erklären,warum rule3 nur halb oder garnicht abgearbeitet wird?

    Ich kann ja mal versuchen zu beschreiben,wie die genaue Funktion sein soll.Kommt dann aber erst morgen...

  • Die praktische Anwendung habe ich ja bereits im ersten post beschrieben...

    hier mal eine Ablaufbeschreibung wie ich mir das vorstelle:


    Der Gerätetaster soll das Relais tastend ein und ausschalten können (Grundfunktion,geht sowieso schon).

    Mit einem longpress (2sek,geht auch schon) (switch1#state=3) des Gerätetasters soll zwischen zwei Funktionen hin und her geschaltet werden.Also aktiv

    ist entweder Funktion1 ODER Funktion2.Auch der über Relay2 (power2) hinzugefügte Schalter in der web-ui soll die Funktionen

    hin und her schalten.Schalterzustand ON wäre dann Funktion1 aktiv.


    Funktion1:

    - blaue LED (ledpower1 ?) aus sobald Funktion1 aktiv

    - wenn die Leistung 60sek lang größer/gleich 180 Watt ist--Relais (power1) aus.


    Funktion2:

    - blaue LED (ledpower1 ?) an sobald Funktion2 aktiv

    - wenn die Leistung 60sek lang kleiner 2 Watt ist--Relais (power1) aus

    Das hin und her schalten der Funktionen 1 und 2 soll sowohl bei ein-als auch bei ausgeschaltetem Relais (power1)

    möglich sein.

  • Moin.

    Die energy#power>2 ist ja die Standartfunktion die IMMER aktiv ist und bei Volladung eintritt.

    Bei 80% vermutlich die >180W die nur zugeschaltet werden.


    Rule1 zum toggeln des Power2, der dann die Rule toggelt und fürs blinken wenn Rule3 aktiv:

    Code
    rule1
    on switch1#state=3 do power2 2 endon
    on power2#state do backlog rule3 %value%; rule3 endon
    on rules#timer=1 do power1 0 endon
    on rule3#state=OFF do backlog ledpower 1; ruletimer2 1 endon
    on rule3#state=ON do backlog ruletimer2 0; ledpower 0 endon
    on rules#timer=2 do backlog ledpower 2; ruletimer2 1 endon

    Rule2 für 60sek<2W die Standartfunktion wenn volladung (denk ich mal)

    (könnte man auch im Ruleset1 {Rule1} unterbringen würde aber dauernd feuern bei Power>2W

    also auslagern in Ruleset2 und dieses auf Once stellen {Rule2 5})

    Code
    rule2
    on energy#power<2 do ruletimer1 60 endon

    Rule3 für 60sek>180W (vermutlich die Teilladung?)

    diese Ruleset wird vom Power2 zugeschaltet und wird ebenfalls auf ONCE gesetzt um bei >180W nicht permanent zu feuern

    Code
    rule3
    on energy#power>180 do ruletimer1 60 endon

    Aktivieren der Rule und Rule2 u. Rule3 auf ONCE

    backlog rule1 1; rule2 1; rule1 4; rule2 5; rule3 5

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    3 Mal editiert, zuletzt von HoerMirAuf (9. August 2023 um 10:09)

  • Vielen Dank,probiere ich mal aus wenn ich Feierabend habe.

    Code
    on power2#state do backlog rule3 %value%; rule3 endon

    muss hinter power2#state keine Zahl stehen? und im Feld %value% ?

  • muss hinter power2#state keine Zahl stehen? und im Feld %value% ?

    In diesem Fall nicht.

    Wenn kein Wert dahinter steht, wird bei jeder Änderung die Rule ausgelöst und im %value% der jeweige Wert des triggers, in dem Fall der power2 status ausgegeben.

    Wenn also eingeschaltet ist steht im %value% des Power#state eine "1" bei ausgeschaltet eine "0"

    Die Rule3 wird also bei power2 1 auch 1 (aktiv) und bei power2 0 ebenfalls 0 also inaktiv.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • werden die timer in rule2 und rule3 eigentlich jetzt noch zurück gesetzt wenn die Bedingung innerhalb der 60sek nur einmal kurz

    erfüllt ist?

    Beispiel:

    Beim einschalten des Ladegerätes wird kurzzeitig eine hohe Einschaltleistung weit über den 180 Watt gezogen,dann gehts erst wieder unter 180 Watt.

    Das würde den Timer ja schon ungewollt setzen oder?

    selbiges im Fall bei < 2 Watt.

  • Beim einschalten des Ladegerätes wird kurzzeitig eine hohe Einschaltleistung weit über den 180 Watt gezogen,dann gehts erst wieder unter 180 Watt.

    Das würde den Timer ja schon ungewollt setzen oder?

    selbiges im Fall bei < 2 Watt.

    Nö, war nicht berücksichtigt.

    Zu Beachten wäre:

    Du kannst nicht gleichzeitig nach >180 UND nach >2 auswerten, Bei >180 ist ja schon lange die Bedingung >2 erfüllt und setzt den ruletimer immer zurück.

    Das heißt bei der Teilladung können wir nicht nach >2 Auswerten sondern NUR nach >180

    Code
    rule1
    on switch1#state=3 do power2 2 endon
    on power2#state=1 do backlog rule2 0; rule3 1; rule3 endon
    on power2#state=0 do backlog rule3 0; rule2 1; rule3 endon
    on rules#timer=1 do power1 0 endon
    on rule3#state=OFF do backlog ledpower 1; ruletimer2 1 endon
    on rule3#state=ON do backlog ruletimer2 0; ledpower 0 endon
    on rules#timer=2 do backlog ledpower 2; ruletimer2 1 endon
    Code
    rule2
    on energy#power>2 do ruletimer1 0 endon
    on energy#power<2 do ruletimer1 60 endon
    Code
    rule3
    on energy#power<180 do ruletimer1 0 endon
    on energy#power>180 do ruletimer1 60 endon

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Zu Beachten wäre:

    Du kannst nicht gleichzeitig nach >180 UND nach >2 auswerten, Bei >180 ist ja schon lange die Bedingung >2 erfüllt und setzt den ruletimer immer zurück.

    Das heißt bei der Teilladung können wir nicht nach >2 Auswerten sondern NUR nach >180

    hm ich dachte wenn eine rule off ist,wird sie in der weiteren Verarbeitung auch nicht beachtet :/

  • hm ich dachte wenn eine rule off ist,wird sie in der weiteren Verarbeitung auch nicht beachtet :/

    Hab ich ja jetzt. In Rule2 wird gegen <>2 geprüft, in der Rule3 <>180. EIne ist immer nur aktiv

    ABER, sollte es aus irgend einem Grund mal nicht abschalten bei >180 würde der Akku ja volladen.

    Die Automatische Abschalteng bei <>2 für Volladung greift dann aber nicht weil die ja in Rule2 deaktiviert ist

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Moin.

    müsste da nicht rule2 anstatt rule3 stehen?

    hab das mal probiert,aber keinen Unterschied festgestellt.

    Das steht nur da damit die Rule3 Abfrage für rule3#state auch sicher ausgeführt wird, da dies beim test ja nicht immer erfogte.

    Also passt das schon wenn da nur rule3 steht.

    Wenn Du keinen Unterschied merkst, dann weil es ja kein rule2#state gibt und weil die rule3#state abfrage auch ohne das rule3 zu funktionieren scheint.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Ok wieder was gelernt...

    Ansonsten funktioniert alles bis auf eine Auffälligkeit:

    Ausgangssituation:

    Relais power1 ist aus,rule2 ist on rule3 ist off,Ladegerät steckt nicht in der Steckdose(also energypower ist 0)

    Wenn das Relais power1 nun eingeschaltet wird,hätte ich erwartet,das es nach 60sek wieder ausgeht da ja energypower 0 ist.

  • Das liegt sicher an der ONCE Funktion der Rule2 (rule2 4)

    ONCE bewirkt, das die Rule nur einmal auslöst wenn die bedingung erfült wurde.

    Wenn also schon mal für <2 ausgelöst wurde, wird bei einem erneuten <2 nicht wieder ausgelöst.

    Es muss erst >2 geworden sein damit die Bedingung erneut greift.

    Du kannst das ONCE auch mal ausschalten rule2 4 und schau dann mal in die Konsole.

    Der Trigger <2 wird dauernd ausgelöst und damit der Ruletimer ständig zurückgesetzt und würde nie auslösen.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Wenn du Lust aufs testen hast, könnte man die Rule2 erweitern mit Bedingungen:

    Code
    rule2
    on energy#power>2 do ruletimer1 0 endon
    on energy#power=0 do ruletimer1 60 break
    on energy#power<2 do ruletimer1 60 endon

    Wie zuvor wird bei <2 ausgeschaltet.

    Ich weiß nicht wie sich BREAK/ENDON im ONCE verhält aber wenn die Bedingung <2 nicht greift könnte dann <1 triggern.

    Wenn das geht sollte, weil andere Bedingung als nächstes >2 wieder greifen.

    ONCE aktivierts du übrigens wieder mit:

    rule2 5

    EDIT:

    Hab das eben mal mir variablen getestet. Das funktionier zwar nicht perfekt und es wird in so einem Fall eventuell einmal der Ruletimer nachgetriggert aber im großen und ganzen geht das so.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development 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

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    4 Mal editiert, zuletzt von HoerMirAuf (10. August 2023 um 08:42)