ESPeasy Rule in eine Tasmota Rule übersetzen

Begonnen von eppi, 09 Mai 2020, 18:47:11

Vorheriges Thema - Nächstes Thema

eppi

Hallo
Ich habe ein funktionierendes ESPeasy Device mit einer Rule. Nun möchte ich nach Tasmota umziehen und scheitere bei den Rules. Könnte mich jemand dabei unterstützen? M.W. gibt es in Tasmota kein IF, ELSE, etc, deshalb wäre ich um Unterstützung dankbar.

Define:
name: relay
Internal PullUp: ja
Inversed Logic: ja
GPIO:2
Switch Type: Switch
Switch Button Type: Normal Switch
Send Boot state: ja

name: taster
Internal PullUp: ja
GPIO: 3
Switch Type: Switch
Switch Button Type: Push Button Active Low
Send Boot state: ja


Und die Rule dazu:
on taster#taster do
if [relay#relay]=1
gpio,2,1
else
gpio,2,0
endon


Vielen herzlichen Dank!

Gisbert

Hallo eppi,

schau mal hier:
https://tasmota.github.io/docs/Rules/
Dort steht:
Syntax
<if-statement>
IF (<logical-expression>) <statement-list> {ELSEIF (<logical-expression>) <statement-list>} [ELSE <statement-list>] ENDIF

Vielleicht reicht das schon als Gedankenanstoß.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

eppi

Danke Gisbert
Ich habe mal versucht, so in der Art:
Rule1 on Switch1#state do IF (POWER=1) POWER 0 ELSE POWER 1 ENDIF endon
Die Konsole gibt jedoch beim Schalten folgendes zurück:
07:14:01 RUL: SWITCH1#STATE performs "IF (POWER=1) POWER 0 ELSE POWER 1 ENDIF"
07:14:01 RSL: stat/tasmota_736675/RESULT = {"Command":"Unknown"}


Beispiele im Netz zu finden ist nicht einfach (scheint ziemlich neu zu sein), versuche es weiter...

Gisbert

Hallo eppi,

schau mal nach Power1#State, dort wird ein Vergleich beschrieben.
Ich bin fast davon überzeugt, dass Tasmota nicht power möchte sondern powern, also power1 möchte.

​Vielleicht ist das schon die Lösung.
Viele​ Grüße​
Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

eppi

Hallo Gisbert
Bei mehr als einem Relais macht Tasmota POWER1, POWER2, etc... Wenn ich aber nur ein Relais habe, heisst es nur POWER.
Beim Booten des ESP gibt mir die Console auch so zurück:
00:00:00 CFG: Loaded from flash at F9, Count 67
00:00:00 Project tasmota Tasmota-Schalter Version 8.2.0(tasmota)-STAGE
00:00:00 WIF: Connecting to AP1 camelia in mode 11N as tasmota_736675-1653...
00:00:05 WIF: Connected
00:00:05 HTP: Web server active on tasmota_736675-1653 with IP address 192.168.2.84
00:00:05 RSL: INFO1 = {"Module":"Generic","Version":"8.2.0(tasmota)","FallbackTopic":"cmnd/DVES_736675_fb/","GroupTopic":"cmnd/tasmotas/"}
00:00:05 RSL: INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_736675-1653","IPAddress":"192.168.2.84"}
00:00:05 RSL: INFO3 = {"RestartReason":"Software/System restart"}
00:00:05 RSL: RESULT = {"POWER":"ON"}
00:00:05 RSL: POWER = ON
07:48:10 RSL: STATE = {"Time":"2020-05-10T07:48:10","Uptime":"0T00:00:11","UptimeSec":11,"Heap":28,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":34,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"camelia","BSSId":"F0:9F:C2:A4:72:E8","Channel":13,"RSSI":100,"Signal":-46,"LinkCount":1,"Downtime":"0T00:00:06"}}
07:48:10 RSL: SENSOR = {"Time":"2020-05-10T07:48:10","Switch1":"ON"}

Was meinst du?
Danke vielmals und beste Grüsse eppi

eppi

Bin etwas weiter gekommen, jedenfalls erhalte ich keine {"Command":"Unknown"} mehr.
rule1 on Switch1#state=on do if (POWER#state=1) power 0 endif endon

In der Rule fehlt jedoch das ELSE, das kann ich aber in eine zweite Rule schreiben..

Ich versuche es weiter und werde wieder berichten...

Gisbert

Hallo eppi,

und was hindert dich daran die Lisa, äh ELSE, zu bemühen, die steht schon in den Startlöchern 8)

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

HaWe68

@eppi: habe gleiches Problem mit IF-ELSE, bist Du weiter gekommen:

Zitat von: eppi am 10 Mai 2020, 09:59:02
Bin etwas weiter gekommen, jedenfalls erhalte ich keine {"Command":"Unknown"} mehr.
rule1 on Switch1#state=on do if (POWER#state=1) power 0 endif endon

In der Rule fehlt jedoch das ELSE, das kann ich aber in eine zweite Rule schreiben..

Ich versuche es weiter und werde wieder berichten...



eppi

Zitat von: HaWe68 am 29 Mai 2020, 18:31:29
@eppi: habe gleiches Problem mit IF-ELSE, bist Du weiter gekommen:
Nein, ich habe das Projekt aktuell mal auf Eis gelegt... Aber bin natürlich weiterhin interessiert, falls du Erfolg hast würde ich mich freuen von dir zu lesen.

Gisbert

Halll eppi,

ich hatte am Wochenende versucht, Tasmota mit IF/ELSE zu nutzen.
Es war hoffnungslos, ich hab's nicht geschafft, das ans Laufen zu bekommen.
Die Bedingungen wurden entweder nicht oder falsch umgesetzt.

Hast du es nochmals versucht?
Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

eppi

Zitat von: Gisbert am 16 März 2021, 05:27:16
Halll eppi,

ich hatte am Wochenende versucht, Tasmota mit IF/ELSE zu nutzen.
Es war hoffnungslos, ich hab's nicht geschafft, das ans Laufen zu bekommen.
Die Bedingungen wurden entweder nicht oder falsch umgesetzt.

Hast du es nochmals versucht?
Viele​ Grüße​ Gisbert​
Hallo Gisbert
Nein, ich habe es in FHEM gelöst, da ich nach Wochen die Geduld verloren habe. Somit kann ich dir nicht weiterhelfen, sorry....
Viel Erfolg und LG eppi

Gisbert

Hallo eppi,

ich hab fast den Eindruck, dass Tasmota mit IF/ELSE nicht zurechtkommt. Ich schließe den Fehler bei mir eigentlich aus, da ich ich mich lange damit beschäftigt habe.

Der Grund, warum ich Tasmota mit Rules und IF/ELSE versucht habe, war dass die eigentlich gut mit ESPEasy laufende Anwendung immer wieder zum Restart des ESP geführt hatten, wenn anscheinend zuviele Befehle auf einmal reinkamen. Die load ist dann 100%, der ESP macht nichts mehr, startet aber immerhin jedesmal wieder neu. Für die Anwendung als Wechsellichtschalter mit Bewegungsmelder (PIR) ist das suboptimal, wenn mittendrin die Steuerung neu startet.

Es gibt auch noch Tasmota Scripting anstatt Rules: https://forum.fhem.de/index.php?topic=111873.0.
Ich hab mir das mal angeschaut, aber nicht ansatzweise verstanden, d.h.für mich ist es nicht umsetzbar.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

rob

Zitat von: Gisbert am 16 März 2021, 08:15:21
...ich hab fast den Eindruck, dass Tasmota mit IF/ELSE nicht zurechtkommt...
Hallo Gisbert. Ich stimme Deiner Einschätzung zu.
Zitat
Same trigger may be used in more than one rule. This may be required for some cases of using IF/ELSE since an IF statement cannot be used within a Backlog.
Fundort: https://tasmota.github.io/docs/Rules/. Dort gibt es auch den Hinweis, dass man sich IF/ELSE selbst rein-compilieren kann:
Zitat
Conditional Rules

This feature is not included in precompiled binaries.

To use it you must compile your build. Add the following to user_config_override.h:
...
Habs selbst aber noch nicht benötigt/ ausprobiert. Kennst es wahrscheinlich schon, aber vielleicht doch einen Versuch wert :)

Viele Grüße
rob

Gisbert

Hallo rob,

das man selbst kompilieren muss, habe ich natürlich berücksichtigt. Das war mit Gitpod nicht sonderlich schwierig.

Genauso verhält es sich mit Scripting, man muss selbst kompilieren.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY