Tasmota Timer Werte im FHEM verändern / Ein Aus Schalten / Anzeigen?

Begonnen von Konfusius, 28 Mai 2022, 18:53:40

Vorheriges Thema - Nächstes Thema

Konfusius

Ich habe mir meine Aquariumlampe modifiziert, so dass sie mit einem Wemos D1 Mini und Tasmota gesteuert werden kann.
Bislang habe ich die Timerfunktion von Tasmota über die Tasmota Webseite des Devices benutzt.

Durch Neugier auf die FTUI3 Version, habe ich mir eine neue Tablet / Handy-Oberfläche für meine paar anzuzeigende / zu steuernden Sachen gebastelt und die Aquariumleuchte mit eingebaut.
Ein- Ausschalten und Dimmen geht nun damit auch. (Nur Weiss, aber auf 3 PWM Kanäle geteilt um die Last zu verteilen)

FRAGE:
Kann man mit FHEM die Timerzeiten der Tasmota Timer verändern, die Timer ein- und auschalten und die Schaltzeiten in der FTUI anzeigen lassen?
Oder sollte ich das mit FHEM selbst machen?
Es geht darum, die An- und Ausschaltzeiten festzulegen und über den Tag ab und zu etwas runter zu dimmen um Wolken zu simulieren. Eventuell etwas Nachtlicht.

EDIT:
Ich sehe gerade in den Readings alle Timer Werte stehen. Nach einem Neustart des Wemos D1 Mini waren die alle da.
Dann schau ich mal, wie ich weiter komme...

EDIT2:
Die Schaltzeiten anzeigen lassen ist kein Problem, sie zu beeinflussen schon.
Hier stehen die Befehle dazu:
https://tasmota.github.io/docs/Timers/
Wie sende ich so einen Befehl über MQTT2 von der FHEM FTUI3?



Konfusius

Also man kann tatsächlich den Timer über MQTT stellen.
Ich habe den MQTT Explorer benutzt und mir den Verkehr zwischen FHEM und dem Tasmota Device angesehen.
Dann noch die Dokumentation von Tasmota zu MQTT durchgelesen.
Mit diesem Befehl auf dem Bild stelle ich Timer1. (Das erste Zeichen im Befehl ist nur der Cursor)

Sende ich den Befehl mit z.B. geänderter Uhrzeit ab, dann bekomme ich die passende Statusmeldung zurück und in den Readings von FHEM steht bei Timer1_Time die neue Zeit.
Auch in der Tasmota Web UI sehe ich bei Timer1 nun die geänderte Zeit. Das passt.

Ich würde jetzt ein Dummy Device in FHEM anlegen, wo ich die Werte, die das "TimeSet" Modul vom FTUI3 erzeugt ablege
und dann einen Button im FTUI3 anlegen, der eine String Kette erzeugt in dem diese Werte vom Dummy Device eingesetzt werde?

Wie sendet man etwas direkt an ein anderes Device?
Wie würde ein Profi das lösen? Hat jemand eine bessere Idee für mich?




DetlefR

Hallo,

in dem Device, das die Readings vom Tasmota darstellt gibt es ein "IODev" unter "Internals". Das kann im allg. "set publish".
Damit musst du zusehen, wie du diesen Befehl hinbekommst.
set "IODEV" publish cmnd/"TASMOTA"/timer1 "JSON"
Das was in "" steht, muss entsprechend angepasst werden.

Ob das auf diese Weise sinnvoll ist, oder das ganze über FHEM z.B. mithilfe von "sunrise" und "sunset" oder eine Wettervorhersage zu lösen ist musst du selber entscheiden.

Gruß Detlef

Konfusius


DetlefR

Tasmota kann auch Web Request.
Einfacher wird es dadurch aber auch nicht. Die Befehle sind immer die gleichen. Für MQTT ist ja schon etwas da, dass den entsprechenden Befehl senden kann.

ZitatIch würde jetzt ein Dummy Device in FHEM anlegen, wo ich die Werte, die das "TimeSet" Modul vom FTUI3 erzeugt ablege
und dann einen Button im FTUI3 anlegen, der eine String Kette erzeugt in dem diese Werte vom Dummy Device eingesetzt werde?

Und dann ein Notify das auf diese Änderung reagiert und dann den entsprechenden Befehl sendet.
Ungefähr so.
define n_aquatimer notify AquaDummy:Timeset:.* {
my $json=ReadingsVal("AquaDummy","Timeset","");
fhem("set IODev publish cmnd/tasmota/timer1 $json");

AquaDummy ist der Name das dummy und Timeset das Reading in dem der neue timereintrag.

Beta-User

 ;D ich frage mich ja immer mal wieder, warum man auf den Gedanken kommt, irgendwelche Workarounds zu bauen, wenn man auch den direkten Weg gehen kann:
einfach die setList ergänzen, z.B.?
Wir haben schon einige Beispiele, in denen "beliebige Texte" (auch im JSON-Format) direkt aus einem MQTT2_DEVICE versendet werden können... Man muss nur danach suchen/fragen.

Bleibt die Frage, wie man den JSON zusammenbaut. MAn. sollte man die Infos auf dem Tasmota und in FHEM möglichst synchron halten, also auch auswerten, was ggf. direkt per Web-Interface geändert wurde und das/die Readings entsprechend zusammenbasteln.
Für "Zeitpläne" mit on/off könnte man dafür auch weekprofile nutzen, das dann auch mit MQTT2_DEVICE umgehen kann, aber zum einen ist mir unbekannt, ob es dafür ein FTUI-Widget gäbe, und zum anderen ist das Umwandeln (und empfangende Auswerten) von Zeitplänen relativ aufwändig. Vermutlich würde es sich für Tasmota aber lohnen, da was zu basteln. Ist doch relativ weit verbreitet...
Falls jemand vorhandenen Code dafür sucht: im Ebus-attrTemplate-Paket ist was zu finden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

Zitat;D ich frage mich ja immer mal wieder, warum man auf den Gedanken kommt, irgendwelche Workarounds zu bauen, wenn man auch den direkten Weg gehen kann:
einfach die setList ergänzen, z.B.?

Das liegt wohl daran, dass ich Techniker und nicht Programmierer bin und bei weitem nicht alle Möglichkeiten des FHEM und des FTUI3 /JavaScripts als Anfänger kenne.
Also versuche ich mit meinem bisherigen bescheidenden Wissen die Sache hinzubekommen.
Deshalb fragte ich ja auch am Anfang des Threads, ob jemand eine bessere Idee hat.
Ich suche auch keine fertige Lösung, sondern versuche autodidaktisch etwas zu lernen.
Praktisch macht die Sache mit dem Timer doch wenig Sinn, aber um etwas über die Materie zu lernen schon.

Ich weiß, euch Profis nerven solche Beiträge bestimmt und die "dummen" Fragen darin. Habt etwas Nachsicht mit mir. Mir macht das einfach Freude, mit dem FTUI3 meine 3 Lampen,
die Müll-Termine und das Wetter anzeigen zu lassen. 
Neben dem Senden von MQTT Befehlen kann ich jetzt also auch noch was über setList lernen. Wie schön...

Da ich im Tasmota Timer nur die Zeiten ändern will, wollte ich den Tasmota Befehlssatz aus dem Bild einfach nur als Zeichenkette fest verwenden und nur die Zeit als Variable ändern.
Ich habe dazu ein Popup auf der Zeitanzeige der Aquariumlampe, in dem das "TimeSet" steckt und wollte einen Button nutzen um den fertigen Befehl (Zeichenkette) damit abzusetzen und das Popup zu schließen.
Im Augenblick versuche ich noch einen festen MQTT-Befehl wie "on" oder"off" mit dem Button an die Lampe zu senden. Den Befehl kenne ich ja nun durch den MQTT Explorer und die Doku.
Aber immer fehlt es mir an Grundwissen. Was brauche ich für das FTUI3 an Kenntnissen? Javascript?

Beta-User

Hmmm, mit javascript kenne ich mich nicht aus, aber wenn es einfach nur darum geht, einen irgendwie gearteten Zeitpunkt in einen JSON reinzuknödeln und eine einfache Möglichkeit in setList zu haben, hier ein Schnippsel aus "tasmota_zigbee2tasmota_light_dimmer":

attr DEVICE setList on CMNDTOPIC/ZbSend {"device":"0xDEV_ID","send":{"Power":"On"}}\
  off CMNDTOPIC/ZbSend {"device":"0xDEV_ID","send":{"Power":"Off"}}\
  brightness:colorpicker,BRI,0,5,254 CMNDTOPIC/ZbSend { "device":"0xDEV_ID", "send":{"Dimmer":$EVTPART1} }


Hier würde dir also
set DEVICE brightness 08:15
die "08:15" in den JSON hinten zaubern. Ein ZigBee-Dimmer kann damit vermutlich nichts anfangen, aber als Anschauungsmaterial sollte es auch für einen Techniker ok sein ;D ...

Ich hätt's dir auch "fertig" gebastelt, aber Text aus Bildern abzutippen ist gar nicht meins...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DetlefR

FTUI ist nun auch nicht unbedingt mein Ding.
Aber wie Beta-User schon gesagt hat. Ein einfaches ON/OFF oder was auch immer zu senden ist kein Problem.
Ich würde vorschlagen, du bringst das ganze erst mal auf der FHEM Seite zum laufen und bindest dann FTUI anhand von Beispielen ein. Bzw. da wird sich dann auch wer finden, der hilft.
So wie ich das bisher verstanden habe, ist der D1 Mini schon in FHEM eingebunden. Dann schick doch mal die Konfiguration. list -r DEIND1MINI
Das ganze dann schön in Code Tags verpacken und hier einstellen. Dann haben wir was konkretes worüber wir reden können.

Gruß Detlef

Konfusius

Das mit "setList" ist eine gute Idee.
Ich habe diese nun durch einen Eintrag
timer1:noArg cmnd/tasmota_2CA303/TIMER1 {"Enable":1,"Mode":0,"Time":07:30","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}
ergänzt.
Gehe ich im FHEM oben auf "set" und wähle nun "timer1" und klicke "set", dann geht der Befehl auch raus und setzt meinen Timer auf die erstmal feste Zeit.
Im FTUI3 sehe ich diese Zeit dann auch in der Timer Zeitanzeige des FTUI3 Felds.

Aber ich schaffe es nicht diesen Befehl in das FTUI3 auf einen Button zu legen. Der Button hängt an den Befehl immer noch "on" und "off" ran, was dazu führt
das im Logfile des MQTT" Devices nur ein Error gemeldet wird.

Hier der Auszug, oben richtig im FHEM ausgelöst:
2022-06-02_18:55:06 Aquariumlampe timer1: set
2022-06-02_18:55:06 Aquariumlampe rgb: BFBFBF
2022-06-02_18:55:06 Aquariumlampe Timer1_Mode: 0
2022-06-02_18:55:06 Aquariumlampe Timer1_Time: 07:30
2022-06-02_18:55:06 Aquariumlampe Timer1_Output: 1
2022-06-02_18:55:06 Aquariumlampe Timer1_Repeat: 1
2022-06-02_18:55:06 Aquariumlampe Timer1_Action: 1
2022-06-02_18:55:06 Aquariumlampe Timer1_Window: 0
2022-06-02_18:55:06 Aquariumlampe Timer1_Days: 1111111
2022-06-02_18:55:06 Aquariumlampe Timer1_Enable: 1
2022-06-02_18:55:06 Aquariumlampe rgb: BFBFBF
2022-06-02_18:55:23 Aquariumlampe timer1: set
2022-06-02_18:55:23 Aquariumlampe rgb: BFBFBF
2022-06-02_18:55:23 Aquariumlampe Timer1: Invalid JSON


Die letzte Zeile der Button des FTUI3 mit der Errormeldung. Der Button hat folgenden Code:
<ftui-button size="large" (value)="Aquariumlampe:timer1">set</ftui-button>

Wie verhindere ich das da immer on und off rangehängt wird?

EDIT1:
<ftui-button size="large" @click="sendFhem('set Aquariumlampe timer1')">set</ftui-button>
so gehts,
Nun die Zeit ändern können

DetlefR

Erst mal was zum nachlesen https://wiki.fhem.de/wiki/FTUI_Widget_Datetimepicker
Dort gibt es ein Beispiel "Nur Zeitauswahl - Abstand 5min". Da muss aber noch irgendwie "timeron" rein. Ich habe das gleich mal erweitert. Wenn es einen Timer zum Einschalten gibt, dann soll es bestimmt auch noch einen zum Ausschalten geben. ;)
Dann die angepasste setListattr Aquariumlampe setList timeron cmnd/tasmota_2CA303/timer1 {"timer":"$EVTPART1"}\
timeroff cmnd/tasmota_2CA303/timer2 {"timer":"$EVTPART1"}\
power:on,off cmnd/tasmota_2CA303/power $EVTPART1

Das gute an den Tasmota Timern. Wenn sie einmal gesetzt sind, brauchen sie nicht jedes Mal komplett geändert werden.
Ändere den Knopf mal wieder und ersetze timer1 durch power.
<ftui-button size="large" (value)="Aquariumlampe:power">set</ftui-button>


Konfusius

#11
Ich bin mit dem neuen FTUI3 unterwegs. Da benutze ich das "Timeset" widget.
Mal sehen, ob das damit auch geht.

ZitatDas gute an den Tasmota Timern. Wenn sie einmal gesetzt sind, brauchen sie nicht jedes Mal komplett geändert werden.

Heißt das, dass ich die Zeit einzeln setzen kann, ohne den gesamten String ?

EDIT: Das geht genau so?! Danke
timer1:noArg cmnd/tasmota_2CA303/TIMER1 {"Time":"07:50"}


Kann ich statt "7:50" nicht den Wert aus einem Userreading einsetzen? Das Userreading ist ein Dummydevice "Timeset" und das Userreading ist "TimesetTime".

DetlefR

ZitatKann ich statt "7:50" nicht den Wert aus einem Userreading einsetzen? Das Userreading ist ein Dummydevice "Timeset" und das Userreading ist "TimesetTime".
Da kann ich nun wirklich nicht helfen, ohne dass die beiden device mal gesehen haben. So mit "list -r Dummydevice"

Konfusius

Das ist schon alles, ganz simpel.
Mit dem Timeset Widget stelle ich den Wert TimesetTime.

DetlefR

 :( Ein "list -r Timeset" in der Kommandozeile von FHEM wäre einfacher gewesen. Aber egal.
Du sagst, mit dem Timeset widget in FTUI3 kannst du dort die Zeit einstellen. Dann steht doch bestimmt in der Konfiguration irgendwo "Timeset" und "TimesetTime". Ändere das doch mal in "Aquariumlampe" und "timeron" und dann ändere noch die "setList" von "Aquariumlampe" nach meinem Beispiel.

attr Aquariumlampe setList timeron cmnd/tasmota_2CA303/timer1 {"timer":"$EVTPART1"}\
timeroff cmnd/tasmota_2CA303/timer2 {"timer":"$EVTPART1"}\
power:on,off cmnd/tasmota_2CA303/power $EVTPART1


Eine Frage noch. Soll es nur einen Einschalttimer geben oder auch noch einen zweiten zum Ausschalten?

Edit: Anstelle von list -r timset geht auch ein klick unten auf "Raw definition"

Konfusius

Aquariumlampe ist ein reales Device:

define Aquariumlampe MQTT2_DEVICE DVES_2CA303
attr Aquariumlampe comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/tasmota_2CA303/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr Aquariumlampe devStateIcon devStateIcon($name,"state")}
attr Aquariumlampe icon light_control
attr Aquariumlampe jsonMap POWER1:0 Dimmer:pct Channel_4:white Channel_1:0 Channel_2:0 Channel_3:0 HSBColor:0
attr Aquariumlampe model tasmota_rgbw_led
attr Aquariumlampe readingList tele/tasmota_2CA303/LWT:.* LWT\
  tele/tasmota_2CA303/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_2CA303/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_2CA303/RESULT:.* { $EVENT =~ m,HSBColor...(\d+)\,(\d+)\,(\d+), ? $2 eq ReadingsVal($NAME,"saturation","unknown") ? return : { "saturation"=>$2 } : return }\
  stat/tasmota_2CA303/POWER1:.* state\
DVES_2CA303:cmnd/tasmota_2CA303/POWER:.* POWER\
DVES_2CA303:tasmota/discovery/3C71BF2CA303/config:.* { json2nameValue($EVENT) }\
DVES_2CA303:tasmota/discovery/3C71BF2CA303/sensors:.* { json2nameValue($EVENT) }
attr Aquariumlampe room Wohnzimmer
attr Aquariumlampe setList off:noArg cmnd/tasmota_2CA303/POWER1 0\
  on:noArg cmnd/tasmota_2CA303/POWER1 1\
  toggle:noArg cmnd/tasmota_2CA303/POWER1 2\
  Color:colorpicker,RGB cmnd/tasmota_2CA303/COLOR\
  pct:colorpicker,BRI,0,5,100 cmnd/tasmota_2CA303/DIMMER\
  dimup:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+4)/10)*10+10;; return qq {cmnd/tasmota_2CA303/Dimmer $num};; }\
  dimdown:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+7)/10)*10-10;; return qq {cmnd/tasmota_2CA303/Dimmer $num};; }\
  white:colorpicker,BRI,0,5,100 { "cmnd/tasmota_2CA303/COLOR ". sprintf("000000%02X",$EVTPART1*2.55) }\
  saturation:colorpicker,BRI,0,1,100 cmnd/tasmota_2CA303/HSBCOLOR2\
  Speed:colorpicker,BRI,0,1,20 cmnd/tasmota_2CA303/SPEED\
  Fade:uzsuSelect,ON,OFF cmnd/tasmota_2CA303/FADE $EVTPART1\
  mode:selectnumbers,0,1,4,0,lin cmnd/tasmota_2CA303/SCHEME\
timer1:noArg cmnd/tasmota_2CA303/TIMER1 {"Enable":1,"Mode":0,"Time":07:30","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}
attr Aquariumlampe setStateList on off toggle
attr Aquariumlampe userReadings rgb {(substr(ReadingsVal($name,"Color",0),0,6))}
attr Aquariumlampe webCmd pct:rgb
attr Aquariumlampe webCmdLabel Helligkeit\
:Weiss\
:Farbe:

setstate Aquariumlampe off
setstate Aquariumlampe 2022-06-02 22:38:40 Color BFBFBF
setstate Aquariumlampe 2022-06-02 18:34:09 Command Unknown
setstate Aquariumlampe 2022-05-29 23:16:42 DimmerRange_Max 75
setstate Aquariumlampe 2022-05-29 23:16:42 DimmerRange_Min 0
setstate Aquariumlampe 2022-06-02 22:38:40 Fade on
setstate Aquariumlampe 2022-06-02 22:38:40 Heap 25
setstate Aquariumlampe 2022-06-02 22:21:36 IODev MQTT2_FHEM_Server
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_FallbackTopic cmnd/DVES_2CA303_fb/
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_GroupTopic cmnd/tasmotas/
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_Module Generic
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_Version 11.1.0(tasmota)
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_Hostname tasmota-2CA303-0771
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_IPAddress 192.168.19.29
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_WebServerMode Admin
setstate Aquariumlampe 2022-05-30 13:38:28 Info3_BootCount 55
setstate Aquariumlampe 2022-05-30 13:38:28 Info3_RestartReason Hardware Watchdog
setstate Aquariumlampe 2022-06-02 22:21:43 LWT Online
setstate Aquariumlampe 2022-06-02 22:38:40 LedTable on
setstate Aquariumlampe 2022-06-02 22:38:40 LoadAvg 19
setstate Aquariumlampe 2022-06-02 22:38:40 MqttCount 8
setstate Aquariumlampe 2022-06-02 22:21:43 POWER
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Free 511
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Length 0
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Once off
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Rules
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_State on
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_StopOnError off
setstate Aquariumlampe 2022-05-28 17:00:22 SaveData on
setstate Aquariumlampe 2022-06-02 22:38:40 Scheme 0
setstate Aquariumlampe 2022-05-28 17:00:21 SetOption26 on
setstate Aquariumlampe 2022-06-02 22:38:40 Sleep 50
setstate Aquariumlampe 2022-06-02 22:38:40 SleepMode Dynamic
setstate Aquariumlampe 2022-06-02 22:38:40 Speed 40
setstate Aquariumlampe 2022-05-28 17:00:20 StateText1 off
setstate Aquariumlampe 2022-05-28 17:00:21 StateText2 on
setstate Aquariumlampe 2022-05-28 17:00:21 StateText3 toggle
setstate Aquariumlampe 2022-05-28 17:00:21 StateText4 hold
setstate Aquariumlampe 2022-06-02 22:38:40 Time 2022-06-02T22:38:40
setstate Aquariumlampe 2022-06-02 21:28:20 Timer1 Invalid JSON
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Window 0
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Action 1
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Days 1111111
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Enable 1
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Mode 0
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Output 1
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Repeat 1
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Time 07:30
setstate Aquariumlampe 2022-06-02 21:45:43 Timer1_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Time 19:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Time 13:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Action 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Time 16:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timers on
setstate Aquariumlampe 2022-06-02 22:38:40 Uptime 3T09:00:19
setstate Aquariumlampe 2022-06-02 22:38:40 UptimeSec 291619
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_AP 1
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_BSSId 3C:A6:2F:52:3B:9F
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_Channel 11
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_Downtime 0T00:00:18
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_LinkCount 8
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_Mode 11n
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_RSSI 86
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_SSId DNS052015
setstate Aquariumlampe 2022-06-02 22:38:40 Wifi_Signal -57
setstate Aquariumlampe 2022-05-28 17:00:07 attrTemplateVersion 20200522 or prior
setstate Aquariumlampe 2022-06-02 22:21:44 btn_1 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_2 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_3 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_4 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_5 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_6 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_7 0
setstate Aquariumlampe 2022-06-02 22:21:44 btn_8 0
setstate Aquariumlampe 2022-06-02 22:21:44 dn Tasmota
setstate Aquariumlampe 2022-06-02 22:21:44 fn_1 Tasmota
setstate Aquariumlampe 2022-06-02 22:21:44 ft %prefix%/%topic%/
setstate Aquariumlampe 2022-06-02 22:21:44 hn tasmota-2CA303-0771
setstate Aquariumlampe 2022-06-02 22:21:44 if 0
setstate Aquariumlampe 2022-06-02 22:21:44 ip 192.168.19.29
setstate Aquariumlampe 2022-06-02 22:21:44 lk 1
setstate Aquariumlampe 2022-06-02 22:21:44 lt_st 3
setstate Aquariumlampe 2022-06-02 22:21:44 mac 3C71BF2CA303
setstate Aquariumlampe 2022-06-02 22:21:44 md Generic
setstate Aquariumlampe 2022-06-02 22:21:44 ofln Offline
setstate Aquariumlampe 2022-06-02 22:21:44 onln Online
setstate Aquariumlampe 2022-06-02 22:38:40 pct 75
setstate Aquariumlampe 2022-06-02 22:38:40 rgb BFBFBF
setstate Aquariumlampe 2022-06-02 22:21:44 rl_1 2
setstate Aquariumlampe 2022-06-02 22:21:44 rl_2 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_3 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_4 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_5 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_6 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_7 0
setstate Aquariumlampe 2022-06-02 22:21:44 rl_8 0
setstate Aquariumlampe 2022-05-28 17:30:18 saturation 0
setstate Aquariumlampe 2022-06-02 22:21:44 sho_1 0
setstate Aquariumlampe 2022-06-02 22:21:44 sho_2 0
setstate Aquariumlampe 2022-06-02 22:21:44 sho_3 0
setstate Aquariumlampe 2022-06-02 22:21:44 sho_4 0
setstate Aquariumlampe 2022-06-02 22:21:44 sn_Time 2022-06-02T22:21:44
setstate Aquariumlampe 2022-06-02 22:21:44 so_11 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_114 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_117 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_13 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_17 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_20 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_30 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_4 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_68 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_73 0
setstate Aquariumlampe 2022-06-02 22:21:44 so_82 0
setstate Aquariumlampe 2022-06-02 20:16:17 state off
setstate Aquariumlampe 2022-06-02 22:21:44 state_1 off
setstate Aquariumlampe 2022-06-02 22:21:44 state_2 on
setstate Aquariumlampe 2022-06-02 22:21:44 state_3 toggle
setstate Aquariumlampe 2022-06-02 22:21:44 state_4 hold
setstate Aquariumlampe 2022-06-02 22:22:36 subscriptions cmnd/DVES_2CA303_fb/# cmnd/tasmota_2CA303/# cmnd/tasmotas/#
setstate Aquariumlampe 2022-06-02 22:21:44 sw 11.1.0
setstate Aquariumlampe 2022-06-02 22:21:44 swc_1 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_2 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_3 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_4 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_5 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_6 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_7 -1
setstate Aquariumlampe 2022-06-02 22:21:44 swc_8 -1
setstate Aquariumlampe 2022-06-02 22:21:44 t tasmota_2CA303
setstate Aquariumlampe 2022-06-02 21:45:43 timer1 set
setstate Aquariumlampe 2022-06-02 22:21:44 tp_1 cmnd
setstate Aquariumlampe 2022-06-02 22:21:44 tp_2 stat
setstate Aquariumlampe 2022-06-02 22:21:44 tp_3 tele
setstate Aquariumlampe 2022-06-02 22:21:44 ty 0
setstate Aquariumlampe 2022-06-02 22:21:44 ver 1
setstate Aquariumlampe 2022-05-28 17:32:43 white set 0


Das Dummydevice Timeset ist nur für die Einstellung der Zeit gedacht, um über das userReading an den fertigen Zeit-Wert zu kommen.
Das geht bestimmt auch mit der Aquariumlampe direkt, ohne das Dummydevice.
Ich teste das morgen in Ruhe. Heute muss ich Schluss machen.

Beta-User

Nachdem es kopierbaren Text gibt, werfe ich mal folgende Zeile in den Raum:
Timer1_Time:time cmnd/tasmota_2CA303/TIMER1 {"Enable":1,"Mode":0,"Time":"$EVTPART1","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}
Lesestoff dazu:
https://wiki.fhem.de/wiki/FHEMWEB/Widgets
https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt

Der setter/Reading-Name ist noch nicht gut, Stichwort wäre jsonMap.

Ansonsten: Keine Ahnung, was man von dem json wirklich braucht, er sollte halt syntaktisch richtig sein ::) .Und DetlevR hat dahingehend recht, dass es sinnvoll ist, den setter ggf. so zu benennen, dass es klar ist, was er macht (und das ist hier mAn. eben keine verallgemeinerungsfähige Lösung, sondern spezieller Code für einen speziellen Anwendungfall)...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

#17
Gut ich habe das nun so verstanden:
Timer1_Time:time cmnd/tasmota_2CA303/TIMER1 {"Enable":1,"Mode":0,"Time":"$EVTPART1","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}

"Timer1_Time" ist der Ausdruck mit dem ich über den Button im FTUI3 den Befehl auslöse? (setList Befehl)
""time" ist das Reading, das den Wert (in dem Fall die Zeit) enthält?
"$EVTPART1" ist die Variable, die den Wert von "time" übergibt?

Ich bin nun so weit, dass ich das für mich soweit umgesetzt habe.
timer1:timertime cmnd/tasmota_2CA303/TIMER1 {"Time":"$EVTPART1"}

Bei mir ist der setList Befehl timer1.....    wie im Code
timertime ist ein Userreading welches mir die mit dem Timeset Widget (FTUI3) eingestellte Zeit bereitstellt. Den richtigen Wert sehe ich im Deviceüberblick auch. Wert stimmt.
Setze ich statt "$EVTPART1" eine definierte Zeit wie "07:30" ein, wird diese im Tasmota Device gesetzt.

Aber mit "$EVTPART1" kommt da nur "00:00" an. Ich bekomme die Zeit aus dem Userreading "timertime" nicht als Zeit übergeben.
Im MQTT" Device Logfile sehe ich, dass timertime auch vor dem absenden des Befehls richtig eingestellt ist. (06:06)

2022-06-03_16:05:12 Aquariumlampe timertime: 06:06
2022-06-03_16:05:12 Aquariumlampe Timer1_Mode: 0
2022-06-03_16:05:12 Aquariumlampe Timer1_Time: 00:00
2022-06-03_16:05:12 Aquariumlampe Timer1_Window: 0
2022-06-03_16:05:12 Aquariumlampe Timer1_Repeat: 1
2022-06-03_16:05:12 Aquariumlampe Timer1_Enable: 1
2022-06-03_16:05:12 Aquariumlampe Timer1_Days: 1111111
2022-06-03_16:05:12 Aquariumlampe Timer1_Action: 1
2022-06-03_16:05:12 Aquariumlampe Timer1_Output: 1


Aber Timer1_Time ist immer 00:00.
Ich komme nicht drauf, was ich da falsch gemacht habe...

DetlefR

1.) Vergiss das mal mit den userreading. Da hast du sicher etwas falsch verstanden. Das können wir später klären.
2.) Damit wir vom gleichen erzählen. Wie sieht denn die Konfiguration in FTUI aus. Ich habe mich zwar noch nicht damit beschäftigt, aber lesen sollte schon funktionieren. (Aber bitte keinen Screenshot :( )

Konfusius

define Aquariumlampe MQTT2_DEVICE DVES_2CA303
attr Aquariumlampe autocreate 1
attr Aquariumlampe comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/tasmota_2CA303/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr Aquariumlampe devStateIcon devStateIcon($name,"state")}
attr Aquariumlampe event-on-change-reading Time
attr Aquariumlampe icon light_control
attr Aquariumlampe jsonMap POWER1:0 Dimmer:pct Channel_4:white Channel_1:0 Channel_2:0 Channel_3:0 HSBColor:0
attr Aquariumlampe model tasmota_rgbw_led
attr Aquariumlampe readingList tele/tasmota_2CA303/LWT:.* LWT\
  tele/tasmota_2CA303/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_2CA303/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_2CA303/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_2CA303/RESULT:.* { $EVENT =~ m,HSBColor...(\d+)\,(\d+)\,(\d+), ? $2 eq ReadingsVal($NAME,"saturation","unknown") ? return : { "saturation"=>$2 } : return }\
  stat/tasmota_2CA303/POWER1:.* state\
DVES_2CA303:cmnd/tasmota_2CA303/POWER:.* POWER\
DVES_2CA303:tasmota/discovery/3C71BF2CA303/config:.* { json2nameValue($EVENT) }\
DVES_2CA303:tasmota/discovery/3C71BF2CA303/sensors:.* { json2nameValue($EVENT) }
attr Aquariumlampe room Wohnzimmer
attr Aquariumlampe setList off:noArg cmnd/tasmota_2CA303/POWER1 0\
  on:noArg cmnd/tasmota_2CA303/POWER1 1\
  toggle:noArg cmnd/tasmota_2CA303/POWER1 2\
  Color:colorpicker,RGB cmnd/tasmota_2CA303/COLOR\
  pct:colorpicker,BRI,0,5,100 cmnd/tasmota_2CA303/DIMMER\
  dimup:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+4)/10)*10+10;; return qq {cmnd/tasmota_2CA303/Dimmer $num};; }\
  dimdown:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+7)/10)*10-10;; return qq {cmnd/tasmota_2CA303/Dimmer $num};; }\
  white:colorpicker,BRI,0,5,100 { "cmnd/tasmota_2CA303/COLOR ". sprintf("000000%02X",$EVTPART1*2.55) }\
  saturation:colorpicker,BRI,0,1,100 cmnd/tasmota_2CA303/HSBCOLOR2\
  Speed:colorpicker,BRI,0,1,20 cmnd/tasmota_2CA303/SPEED\
  Fade:uzsuSelect,ON,OFF cmnd/tasmota_2CA303/FADE $EVTPART1\
  mode:selectnumbers,0,1,4,0,lin cmnd/tasmota_2CA303/SCHEME\
timer1:timertime cmnd/tasmota_2CA303/TIMER1 {"Time":$EVTPART1}
attr Aquariumlampe setStateList on off toggle
attr Aquariumlampe userReadings rgb {(substr(ReadingsVal($name,"Color",0),0,6))},timertime {ReadingsVal("Timeset","TimesetTime",0) }
attr Aquariumlampe webCmd pct:rgb
attr Aquariumlampe webCmdLabel Helligkeit\
:Weiss\
:Farbe:

setstate Aquariumlampe on
setstate Aquariumlampe 2022-06-03 17:03:41 Color BFBFBF
setstate Aquariumlampe 2022-06-02 18:34:09 Command Unknown
setstate Aquariumlampe 2022-05-29 23:16:42 DimmerRange_Max 75
setstate Aquariumlampe 2022-05-29 23:16:42 DimmerRange_Min 0
setstate Aquariumlampe 2022-06-03 17:03:41 Fade on
setstate Aquariumlampe 2022-06-03 17:03:41 Heap 25
setstate Aquariumlampe 2022-06-03 15:30:47 IODev MQTT2_FHEM_Server
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_FallbackTopic cmnd/DVES_2CA303_fb/
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_GroupTopic cmnd/tasmotas/
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_Module Generic
setstate Aquariumlampe 2022-05-30 13:38:28 Info1_Version 11.1.0(tasmota)
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_Hostname tasmota-2CA303-0771
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_IPAddress 192.168.19.29
setstate Aquariumlampe 2022-05-30 13:38:28 Info2_WebServerMode Admin
setstate Aquariumlampe 2022-05-30 13:38:28 Info3_BootCount 55
setstate Aquariumlampe 2022-05-30 13:38:28 Info3_RestartReason Hardware Watchdog
setstate Aquariumlampe 2022-06-03 15:30:56 LWT Online
setstate Aquariumlampe 2022-06-03 17:03:41 LedTable on
setstate Aquariumlampe 2022-06-03 17:03:41 LoadAvg 66
setstate Aquariumlampe 2022-06-03 17:03:41 MqttCount 12
setstate Aquariumlampe 2022-06-03 15:30:56 POWER
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Free 511
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Length 0
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Once off
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_Rules
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_State on
setstate Aquariumlampe 2022-05-30 17:25:47 Rule1_StopOnError off
setstate Aquariumlampe 2022-05-28 17:00:22 SaveData on
setstate Aquariumlampe 2022-06-03 17:03:41 Scheme 0
setstate Aquariumlampe 2022-05-28 17:00:21 SetOption26 on
setstate Aquariumlampe 2022-06-03 17:03:41 Sleep 10
setstate Aquariumlampe 2022-06-03 17:03:41 SleepMode Dynamic
setstate Aquariumlampe 2022-06-03 17:03:41 Speed 40
setstate Aquariumlampe 2022-05-28 17:00:20 StateText1 off
setstate Aquariumlampe 2022-05-28 17:00:21 StateText2 on
setstate Aquariumlampe 2022-05-28 17:00:21 StateText3 toggle
setstate Aquariumlampe 2022-05-28 17:00:21 StateText4 hold
setstate Aquariumlampe 2022-06-03 17:03:41 Time 2022-06-03T17:03:41
setstate Aquariumlampe 2022-06-03 17:04:25 Timer1 Invalid JSON
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer10_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer11_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer12_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer13_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer14_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer15_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer16_Window 0
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Action 1
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Days 1111111
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Enable 1
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Mode 0
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Output 1
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Repeat 1
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Time 00:00
setstate Aquariumlampe 2022-06-03 17:02:48 Timer1_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Time 19:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer2_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Time 13:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer3_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Action 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Days 1111111
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Enable 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Repeat 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Time 16:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer4_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer5_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer6_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer7_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer8_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Action 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Days 0000000
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Enable 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Mode 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Output 1
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Repeat 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Time 00:00
setstate Aquariumlampe 2022-06-01 18:06:58 Timer9_Window 0
setstate Aquariumlampe 2022-06-01 18:06:58 Timers on
setstate Aquariumlampe 2022-06-03 17:03:41 Uptime 4T03:25:20
setstate Aquariumlampe 2022-06-03 17:03:41 UptimeSec 357920
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_AP 1
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_BSSId 3C:A6:2F:52:3B:9F
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_Channel 11
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_Downtime 0T00:00:18
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_LinkCount 8
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_Mode 11n
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_RSSI 78
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_SSId DNS052015
setstate Aquariumlampe 2022-06-03 17:03:41 Wifi_Signal -61
setstate Aquariumlampe 2022-05-28 17:00:07 attrTemplateVersion 20200522 or prior
setstate Aquariumlampe 2022-06-03 15:30:57 btn_1 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_2 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_3 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_4 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_5 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_6 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_7 0
setstate Aquariumlampe 2022-06-03 15:30:57 btn_8 0
setstate Aquariumlampe 2022-06-03 15:30:57 dn Tasmota
setstate Aquariumlampe 2022-06-03 15:30:57 fn_1 Tasmota
setstate Aquariumlampe 2022-06-03 15:30:57 ft %prefix%/%topic%/
setstate Aquariumlampe 2022-06-03 15:30:57 hn tasmota-2CA303-0771
setstate Aquariumlampe 2022-06-03 15:30:57 if 0
setstate Aquariumlampe 2022-06-03 15:30:57 ip 192.168.19.29
setstate Aquariumlampe 2022-06-03 15:30:57 lk 1
setstate Aquariumlampe 2022-06-03 15:30:57 lt_st 3
setstate Aquariumlampe 2022-06-03 15:30:57 mac 3C71BF2CA303
setstate Aquariumlampe 2022-06-03 15:30:57 md Generic
setstate Aquariumlampe 2022-06-03 15:30:57 ofln Offline
setstate Aquariumlampe 2022-06-03 15:30:57 onln Online
setstate Aquariumlampe 2022-06-03 17:03:41 pct 75
setstate Aquariumlampe 2022-06-03 17:04:25 rgb BFBFBF
setstate Aquariumlampe 2022-06-03 15:30:57 rl_1 2
setstate Aquariumlampe 2022-06-03 15:30:57 rl_2 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_3 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_4 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_5 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_6 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_7 0
setstate Aquariumlampe 2022-06-03 15:30:57 rl_8 0
setstate Aquariumlampe 2022-05-28 17:30:18 saturation 0
setstate Aquariumlampe 2022-06-03 15:30:57 sho_1 0
setstate Aquariumlampe 2022-06-03 15:30:57 sho_2 0
setstate Aquariumlampe 2022-06-03 15:30:57 sho_3 0
setstate Aquariumlampe 2022-06-03 15:30:57 sho_4 0
setstate Aquariumlampe 2022-06-03 15:30:57 sn_Time 2022-06-03T15:30:57
setstate Aquariumlampe 2022-06-03 15:30:57 so_11 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_114 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_117 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_13 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_17 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_20 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_30 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_4 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_68 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_73 0
setstate Aquariumlampe 2022-06-03 15:30:57 so_82 0
setstate Aquariumlampe 2022-06-03 16:00:00 state on
setstate Aquariumlampe 2022-06-03 15:30:57 state_1 off
setstate Aquariumlampe 2022-06-03 15:30:57 state_2 on
setstate Aquariumlampe 2022-06-03 15:30:57 state_3 toggle
setstate Aquariumlampe 2022-06-03 15:30:57 state_4 hold
setstate Aquariumlampe 2022-06-03 15:31:47 subscriptions cmnd/DVES_2CA303_fb/# cmnd/tasmota_2CA303/# cmnd/tasmotas/#
setstate Aquariumlampe 2022-06-03 15:30:57 sw 11.1.0
setstate Aquariumlampe 2022-06-03 15:30:57 swc_1 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_2 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_3 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_4 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_5 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_6 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_7 -1
setstate Aquariumlampe 2022-06-03 15:30:57 swc_8 -1
setstate Aquariumlampe 2022-06-03 17:04:25 timer1 set
setstate Aquariumlampe 2022-06-03 17:04:25 timertime 08:12
setstate Aquariumlampe 2022-06-03 15:30:57 tp_1 cmnd
setstate Aquariumlampe 2022-06-03 15:30:57 tp_2 stat
setstate Aquariumlampe 2022-06-03 15:30:57 tp_3 tele
setstate Aquariumlampe 2022-06-03 15:30:57 ty 0
setstate Aquariumlampe 2022-06-03 15:30:57 ver 1
setstate Aquariumlampe 2022-05-28 17:32:43 white set 0


Das ist die Lampe und das:
define Timeset dummy
attr Timeset readingList TimesetTime
attr Timeset room Wohnzimmer

setstate Timeset TimesetTime 06:01
setstate Timeset 2022-06-03 17:03:30 TimesetTime 08:12
setstate Timeset 2022-06-03 16:00:06 state TimesetTime 06:01



Ist das Dummy Device für das Timeset Widget im FTUI3

Beta-User

*grummel*

Kannst du diesen Mist mit allen möglichen Addons mal lassen, und einfach das MQTT2_DEVICE fertig konfigurieren?

Bitte einfach die Zeile so einsetzen, wie von mir vorgegeben, und ggf. webCmd noch auf "Timer1_Time" setzen. Dann hast du ein WIDGET mit der Zeitauswahl direkt am Device (das ist das "time" hinter dem Doppelpunkt!), für das Reading mit genau diesem Namen "Timer1_Time"! (Das ist das, was von MQTT-Seite her automatisiert vergeben würde, wenn der JSON in Senderichtung funktionieren würde!)

Und von userReadings läßt man die Finger, wenn man keine Ahnung hat, wie sie funktionieren! (kein Trigger setzen ist kompletter Unfug im MQTT-Kontext!)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DetlefR

2022-06-03_16:05:12 Aquariumlampe timertime: 06:06
2022-06-03_16:05:12 Aquariumlampe Timer1_Mode: 0
...

Ich nehme mal an, dass ist aus dem Event Monitor. Der erste Event der den du in FTUI auslösst. Alles weiter ist schon die Antwort von Tasmota die entsprechend ausgewertet wird.
Aber das von FTUI was ankommt, ist schon mal ein Anfang. Ändere mal das setList Attribut von Aquariumlampe. In der letzten Zeile aus timer1:timertime einfach mal nur timertime machen.

Konfusius

#22
@Beta-User

Verstanden..
Ich habe Deine Zeile eingesetzt und das WebCmd umgestellt. Es bleibt aber bei "00:00" Uhr was beim Tasmota Device ankommt.
In der Konsole sieht man dort, dass der komplette Befehl ankommt aber ohne Zeit.

Nochmal gesagt ich benutze das TimeSet Widget vom FTUI3:
https://github.com/knowthelist/ftui/blob/master/www/ftui/examples/timeset.html

@DetlfR
Genau, ist aus dem Event Monitor
Habe ich versucht, Zeit bleibt leider 00:00

Beta-User

ZitatNochmal gesagt ich benutze das TimeSet Widget vom FTUI3:
Vergiss bitte erst mal dieses Widget aus FTUI. Erst muss es "pur" laufen!

Wie hast du die Zeit gesetzt? Über FHEMWEB? Geht dann nichts vernünftiges raus, oder war das via FTUI?

Zitat von: DetlefR am 03 Juni 2022, 17:32:00
2022-06-03_16:05:12 Aquariumlampe timertime: 06:06
2022-06-03_16:05:12 Aquariumlampe Timer1_Mode: 0
...

Ich nehme mal an, dass ist aus dem Event Monitor. Der erste Event der den du in FTUI auslösst.
Event-Monitor stimmt vermutlich, aber das "Mutter-Event" ist "Timer1_Mode". Das löst (wegen fehlendem Trigger!) die Evaluierung aus, was aber nur dazu führt, dass der interne Wert geändert wird. Das ist KEIN setreading-Kommand! Es geht mit einiger Sicherheit NICHTS über MQTT raus.

Können wir diesen Unsinn mit dummy+userReading für diesen Anwendungsfall hier jetzt bitte einfach auf den Müllhaufen der Geschichte werfen....?!?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

Dummy und Userreading gelöscht, schon verstanden.
Ich habe die Zeit immer im FTUI gesetzt!

Setze ich die im FHEM dann gehts! Das habe ich falsch verstanden.

Beta-User

#25
OK. Dann der nächste Schritt aus:
Zitat von: Beta-User am 03 Juni 2022, 09:20:48
Der setter/Reading-Name ist noch nicht gut, Stichwort wäre jsonMap.
Würde hier "on_time1" vorschlagen.

PS: Ich glaube, es ist Zeit "RTFM" zu rufen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DetlefR

Zitataber das "Mutter-Event" ist "Timer1_Mode".
Der Tasmota antwortet auf cmnd/tasmota_2CA303/TIMER1 {"Time":$EVTPART1} mit
stat/tasmota_2CA303/RESULT {"Timer1":{"Enable":1,"Mode":0,"Time":"17:45","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}}
Der Json wird dann aufgedröselt und u.A. ein Reading "Timer1_Mode" gesetzt.
Das ist also alles schon Antwort.
Das dumme ist nur es stand/steht in der setList "timer1:timertime" das Evetlog zeigt aber es kommt 2022-06-03_16:05:12 Aquariumlampe timertime: 06:06 an. Darum antwortet der Tasmota auch immer mit "time:00".
Einfach mal "setList" ändern und probieren.

Konfusius

#27
ZitatIch glaube, es ist Zeit "RTFM" zu rufen...

Klaro, mach ich....

EDIT1:
Mit Euren Tipps war es nun doch ganz einfach:
Die setList bleibt wie von Beta-User dankenswerterweise erstellt:


Timer1_Time:time cmnd/tasmota_2CA303/TIMER1 {"Enable":1,"Mode":0,"Time":"$EVTPART1","Window":0,"Days":"1111111","Repeat":1,"Output":1,"Action":1}


Im FTUI3 musste ich dann nur noch die Werte des Timeset Widgets direkt auf die setList mappen:

<ftui-timeset [(value)]="Aquariumlampe:Timer1_Time" has-buttons>Uhr</ftui-timeset>

<ftui-button @click="sendFhem('set Aquariumlampe Timer1_Time:time')" popup-close>set</ftui-button>


Das werde ich jetzt auf den Rest der benötigten Timer erweitern.
Danke nochmal für Eure Geduld, wenn Ihr Links zu Lesestoff habt, immer her damit.
So und nun weiter das TFM lesen...

Achso: kein Dummy Device, kein userReading was sinnfrei ist... 

EDIT2:
Mit dem selben System konnte ich auch noch Checkboxen zu Aktivieren und Deaktivieren der einzelnen Timer einfügen.
Die setLists habe ich noch auf die zu ändernden Werte eingekürzt, damit nicht zu ändernde Werte nicht überschrieben/ gesetzt werden.

Dank Euch viel gelernt!

Beta-User

Erst "jsonMap"! Die Readings sind doch sonst nichtssagend und zu lang!  Sonst:  :)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

Hast Du da einen Link wo ich anfangen soll? Erstmal json Grundlagen denke ich mal

Beta-User

Zitat von: Beta-User am 30 März 1975, 16:08:04
Lesestoff dazu:
https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt

Der setter/Reading-Name ist noch nicht gut, Stichwort wäre jsonMap.

Ansonsten: Keine Ahnung, was man von dem json wirklich braucht, er sollte halt syntaktisch richtig sein ::) .Und DetlevR hat dahingehend recht, dass es sinnvoll ist, den setter ggf. so zu benennen, dass es klar ist, was er macht (und das ist hier mAn. eben keine verallgemeinerungsfähige Lösung, sondern spezieller Code für einen speziellen Anwendungfall)...
json2nameValue
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DetlefR

Schön das es funktioniert.

Nur für mich mal zum Verständnis.
<ftui-timeset [(value)]="Aquariumlampe:Timer1_Time" has-buttons>Uhr</ftui-timeset>

<ftui-button @click="sendFhem('set Aquariumlampe Timer1_Time:time')" popup-close>set</ftui-button>

Löst eine Änderung der Uhrzeit (erste Zeile) nicht schon eine MQTT-Nachricht aus oder das zweite Widget dazu notwendig.

Konfusius

#32
Oha, Du hast recht, der Blick in die Tasmota Konsole sagt, dass schon das einstellen die Meldung absetzt.
Dann brauche ich den Button eigentlich gar nicht, es sei denn zum Schließen des Popups.

Konfusius

@Beta-User
Zitatjson2nameValue

Also damit ich das richtig verstehe:
Damit sollen Readings wie "Timer1_Time", die irgendwann mal schwer zu deuten sind in z.B. "Aquariumlampe1_on"  umgemappt werden?

Ich stehe noch auf dem Schlauch den Sinn der Übung zu verstehen.
"Gute Reading-Namen" > ist das damit gemeint?

Beta-User

Unter einem "guten" Reading-Namen verstehe ich
- was "übliches" für allgemein gebräuchliche setter usw. (desired-temp bzw. temperature für Soll- und Ist-Temperaturen, volume für Lautstärken, pct für Helligkeit mit 100-er Skala/brightness für 255-er Skala)
- was internationalisiertes ("temperature" statt "Temperatur")

Den Namen des Devices zu doppeln, halte ich nicht für besonders hilfreich für den "Leser".
Zitat von: Beta-User am 03 Juni 2022, 17:49:26
Würde hier "on_time1" vorschlagen.
Hier: "on" für die Aktion, "time" für "das Sachgebiet" und "1" für den Index.

Sind aber nur meine 2ct...

(PS: Es ist nur bedingt spaßig, dauernd dasselbe zu schreiben; ich versuche das so zu machen, dass es sich meistens lohnt, die bereits gegebenen Hinweise nochmal genauer zu lesen, sobald der Groschen anfängt zu fallen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

#35
Ok, ich habe zum Test nun erstmal im jsonMap das ergänzt
Timer1_Time:on_time1

und in der readingList das eingetragen:
tele/tasmota_2CA303/Timer1:.* { json2nameValue($EVENT, 'Timer1_', $JSONMAP) }

Damit habe ich die Einschaltzeit der Lampe unter "on_time1"  als reading in der Readings-Liste vorliegen.


Ahh, jetzt kann ich in der setList statt "Timer1_Time:time cmnd...."  auch "on_time1 cmnd..." verwenden! cool! Das ist also der Sinn des Ganzen hoffe ich..

DetlefR

Hallo,

mal abgesehen davon, dass ich mir das "schön machen" der Readings Namen für später aufheben würde.
Bist du sicher, dass irgendwann mal eine MQTT Nachricht mittele/tasmota_2CA303/Timer1 kommt.
Tasmota antwortet auf einen Befehl mit stat/tasmota_2CA303/RESULT und einem als Json verpacktem Ergebnis (Power mal ausgenommen).
"tele" ist eigentlich für den allg. Status und evt. angeschlossene Sensoren.

Oder es gibt was neues das ich noch nicht kenne :-[

Konfusius

Was soll ich sagen, so funktioniert das mit dem neuen reading /setter Namen ohne Probleme.
Auch mit dem FTUI3.
Kommt auch im Tasmota Device alles richtig an.

DetlefR

Die Frage ist ja nicht ob im Tasmota was ankommt.
Das funktioniert mit "cmnd/tasmota_2CA303/Timer1".
ZitatIch habe den MQTT Explorer benutzt und mir den Verkehr zwischen FHEM und dem Tasmota Device angesehen.
Schau mal ob da jemals "tele/tasmota_2CA303/Timer1" erscheint.

Schöne Pfingsten

Konfusius

Beim Einrichten des Devices sind im FHEM nach dem Neustart des Tasmota Devices alle Timerwerte automatisch erschienen. Da wurde ja noch keine Anfrage abgesetzt. Daher ging ich davon aus, das die unter " tele" reinkommen. Wenn ich wieder zu Haus bin prüfen ich das nochmal genau.

Beta-User

Zitat von: DetlefR am 04 Juni 2022, 14:04:16
mal abgesehen davon, dass ich mir das "schön machen" der Readings Namen für später aufheben würde.
Sowas macht man erfahrungsgemäß gleich oder gar nicht....

Da das kein Hexenwerk ist, wenn man mal kapiert hat, wie es geht, MUSS man das m.E. GLEICH machen, alle anderen Tipps sind UNNÜTZ!

Ob "der Kreis geschlossen" ist, sieht man (mit gesetzter setStateList) eigentlich ganz gut. Erscheint da kurz ein "set" im Reading-Wert, der dann verschwindet, wenn die Rückmeldung kommt (über welchen Topic auch immer), ist dieser Teil "sauber" ;) .

Den Verkehr kann man optional mit den aktuellen Fassungen von MQTT2_(SERVER|CLIENT) auch direkt dort mitverfolgen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

#41
@DetlefR
Da hast Du wieder recht! Auf tele/tasmota_2CA303/ kommt niemals was mit Timer an.
Das kommt auf stat/tasmota_2CA303/RESULT an, wie Du schon richtig festgestellt hast.

Wieso das nun trotzdem funktioniert weiß ich noch nicht. Egal, wo ich Timerwerte des Tasmota Devices verändere,
ob im FHEM, im Tasmota WebUI oder im FTUI3, alle haben sofort synchron den selben richtigen neuen Wert.

Und zum und vom das FTUI3 werden diese Werte mit dem neuen Reading / Setting Namen in beiden Richtungen übertragen.

Ich habe das Reading aus der  ReadingList komplett rausgelöscht und es geht immer noch.
anscheinend decken die vorgegebenen Readings das mit ab, so das die jsonMap greift
Das sind die vorhandenen ohne meine zusätzlichen:
tele/tasmota_2CA303/LWT:.* LWT
  tele/tasmota_2CA303/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_2CA303/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_2CA303/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/tasmota_2CA303/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/tasmota_2CA303/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/tasmota_2CA303/RESULT:.* { $EVENT =~ m,HSBColor...(\d+)\,(\d+)\,(\d+), ? $2 eq ReadingsVal($NAME,"saturation","unknown") ? return : { "saturation"=>$2 } : return }
  stat/tasmota_2CA303/POWER1:.* state
DVES_2CA303:cmnd/tasmota_2CA303/POWER:.* POWER
DVES_2CA303:tasmota/discovery/3C71BF2CA303/config:.* { json2nameValue($EVENT) }
DVES_2CA303:tasmota/discovery/3C71BF2CA303/sensors:.* { json2nameValue($EVENT) }


Das Reading in Zeile 6 wird das machen

@Beta-User
genau, vor meinen Readings "on_time1" usw. steht  im Fhem bei Änderungen kurz "set" vor.
Danke für den Tipp zur Kontrolle.
Ich habe alle anderen TIMER readings, die automatisch erstellt wurden gelöscht, da die neuen das ja nun übernehmen.
Ich freue mich über jeden Tipp vom Profi, auch wenn ich nicht gleich alles verstehe.

DetlefR

ZitatDas Reading in Zeile 6 wird das machen
Genau richtig. Und da dort auch $JSONMAP drin steht passt die Umsetzung auch.

Vielleicht kann Beta-User Dir noch einen Tipp geben, ob sich Timer1_Time:on_time1 so umsetzen läßt, dass man das nicht für alle 16 Timer schreiben muss. Damit kennt er sich besser aus.

Beta-User

Zitat von: DetlefR am 04 Juni 2022, 19:10:18
Vielleicht kann Beta-User Dir noch einen Tipp geben, ob sich Timer1_Time:on_time1 so umsetzen läßt, dass man das nicht für alle 16 Timer schreiben muss. Damit kennt er sich besser aus.
Das Setzen von jsonMap ist leider so (relativ) umständlich.

Man könnte natürlich "ein bißchen Perl" basteln, um das hier umzusetzen:
Zitat von: Beta-User am 02 Juni 2022, 07:31:44
Für "Zeitpläne" mit on/off könnte man dafür auch weekprofile nutzen, das dann auch mit MQTT2_DEVICE umgehen kann, aber zum einen ist mir unbekannt, ob es dafür ein FTUI-Widget gäbe, und zum anderen ist das Umwandeln (und empfangende Auswerten) von Zeitplänen relativ aufwändig. Vermutlich würde es sich für Tasmota aber lohnen, da was zu basteln. Ist doch relativ weit verbreitet...
Falls jemand vorhandenen Code dafür sucht: im Ebus-attrTemplate-Paket
ist was zu finden.
Der dortige Code baut dann ein "Zeitplan-Reading" (An/Aus-Zeiten) für jeden Tag zusammen, wenn ich das richtig im Kopf habe... Hier könnte man die Daten vielleicht auch unausgepackt im JSON-Format behalten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Konfusius

ZitatMan könnte natürlich "ein bißchen Perl" basteln, um das hier umzusetzen:

Puhh, das ist mir zu viel. Ich bin froh, dass ich grundsätzlich das verstanden habe, was ihr mir bislang erklärt habt.
Aber ich werde mich trotzdem weiter mit Weekprofile beschäftigen.
Ich brauche zwar nur 4 Timer, aber wer weiß, wie es mal weiter geht.
Das für mich wichtigste ist der Lerneffekt.