Tasmota Device mit Weekday Timer ansteuern ?

Begonnen von Canon.Fritz, 30 August 2019, 15:40:38

Vorheriges Thema - Nächstes Thema

Canon.Fritz

Hallo,

ich verwende einen Wemos D1 Mini auf dem Tasmota läuft.
Angeschlossen habe ich einen Portexpander um noch mehr Ausgänge am Wemos zu haben.

Das Tasmota Device wurde von FHEM via MQTT2_Device per auto create angelegt.

Die Ausgänge kann ich per Befehlszeile ansprechen:
set Tasmota_Werkstatt Relais1 on
set Tasmota_Werkstatt Relais1 off


Das ganze kann ich für alle 16 Relais Ausgänge tun:
set Tasmota_Werkstatt Relais1 on
set Tasmota_Werkstatt Relais1 off
set Tasmota_Werkstatt Relais2 on
set Tasmota_Werkstatt Relais2 off
set Tasmota_Werkstatt Relais3 on
set Tasmota_Werkstatt Relais3 off
set Tasmota_Werkstatt Relais4 on
set Tasmota_Werkstatt Relais4 off
......


Wie habt ihr das Weekdaytimer Modul im FHEM Backend konfiguriert ?
defmod Relais1 WeekdayTimer Tasmota_Werkstatt Relais1 de 12345|15:56|on 12345|15:57|off 60|14:00|on 60|14:30|off
attr Relais1 commandTemplate set $NAME  $EVENT
attr Relais1 disable 0


und

Wie richte ich jetzt mein Weekday Timer Modul im FTUI darauf ein ?

Mein bisheriger versuch:
<!-- Schaltzeiten / Weekday Timer -->
<li data-row="1" data-col="8" data-sizex="4" data-sizey="5">
<header><font size="+1">Schaltzeiten&nbsp;</font></header>
<div class="container">
        <div class="left" style="margin-left:40px;margin-top:0px">
                <div id="wdtimer_ftui"
data-type="wdtimer"
data-device="Tasmota_Werkstatt"   
data-style="round"
data-theme="dark"
data-width="600"
data-height="600"
data-title="Schale - Schaltzeiten"
data-savecfg="true"
data-timesteps="5"
data-cmdlist='{"Aus":"Relais1 off","An":"Relais1 on"}'>
<div data-type="push"
data-device="Tasmota_Werkstatt"   
data-get="disabled"
data-states='["0","1"]'
            data-icons='["fa-wrench","fa-wrench"]'
            data-colors='["green", "#4d4d4d"]'
        data-background-colors='["green", "#4d4d4d"]'
class="large"></div>
<div data-type="label">Schale</div>
</div>
                                                </div>
                              </div>


Kann mir da mal jemand auf die Sprünge helfen ?
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

Beta-User

Also, helfen kann ich vielleicht, aber nur für 2 der 3 Teile:

1. Schau mal nach, ob das Tasmota-MQTT2_DEVICE "auskonfiguriert" ist. Es gibt dazu ein paar attrTemplates (wiki: Praxisbeispiele), mit denen sich das soweit ändern lassen sollte, dass du nicht das Reading Relais1 schaltest, sondern state (und damit on-for-timer usw. auch funktioniert).

2. Der WeekdayTimer sollte gehen, wenn entweder ein anderes commandTemplate genutzt wird (das das "Relais1" enthält), oder (nach Änderung des MQTT2_DEVICE) du mußt gar nichts ändern, weil on/off auf "state" wirkt ;) .

Zu FTUI kann ich leider nix beitragen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Canon.Fritz

Ich habe zwischenzeitlich viel probiert und letztendlich ein MQTT2DEVICE von Hand angelegt.

Auch hat das Kind zwischenzeitlich einen Namen bekommen  Relais1 -> Apfelbaum ;D

Ich kann das Gerät per :
set Tasmota_Werkstatt_Apfelbaum Apfelbaum on
set Tasmota_Werkstatt_Apfelbaum Apfelbaum off

schalten.

Nur lässt sich das Gerät nicht per WeekdayTimer schalten.

Config von MQTT2 Device :
defmod Tasmota_Werkstatt_Apfelbaum MQTT2_DEVICE DVES_00AD4F
attr Tasmota_Werkstatt_Apfelbaum userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr Tasmota_Werkstatt_Apfelbaum IODev MQTT2_Server
attr Tasmota_Werkstatt_Apfelbaum readingList DVES_00AD4F:stat/Werkstatt/RESULT:.* { json2nameValue($EVENT) }
attr Tasmota_Werkstatt_Apfelbaum room MQTT2_DEVICE
attr Tasmota_Werkstatt_Apfelbaum setList Apfelbaum cmnd/Werkstatt/sensor29 6,


Config von WeekdayTimer Device :
Tasmota_Werkstatt_Apfelbaum de 1234560|13:15|Apfelbaum on 1234560|13:20|Apfelbaum off

Vielleicht habt ihr noch einen Tipp für mich.
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

Beta-User

 ;D
Ich mach zwei Vorschläge und du willst Lösung 3...  ;D ;D ;D

Also: für Lösung 3 siehe Commandref:

ZitatNOTE: Use ":" to replace blanks in parameter and escape ":" in case you need it. So e.g. on-till:06\:00 will be a valid parameter.
Ergäbe:
Tasmota_Werkstatt_Apfelbaum de 1234560|13:15|Apfelbaum:on 1234560|13:20|Apfelbaum:off
(Escapen mit "\" sollte auch gehen:
Tasmota_Werkstatt_Apfelbaum de 1234560|13:15|Apfelbaum\ on 1234560|13:20|Apfelbaum\ off

Generell denke ich aber weiterhin, dass du deine MQTT2_DEVICE-Geräte besser "splittest" und jeden Kanal zu einem eigenen Gerät machst. Wenn dich das näher interessiert: Nimm eine Kopie von dem vorhandenen Gerät (gerne auch in ein Testsystem) und wende darauf mal das neue attrTemplate für den 4-Channel-Tasmota an. Dann wird evtl. das Prinzip klarer und du mußt nicht mehr ganz so viel manuell in dem Device machen ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Canon.Fritz

 ;D
Ich möchte den simpelsten Weg  ;D

Ich habe beide Varianten ausprobiert.
ZitatErgäbe:
Code: [Auswählen]
Tasmota_Werkstatt_Apfelbaum de 1234560|13:15|Apfelbaum:on 1234560|13:20|Apfelbaum:off
(Escapen mit "\" sollte auch gehen:
Code: [Auswählen]
Tasmota_Werkstatt_Apfelbaum de 1234560|13:15|Apfelbaum\ on 1234560|13:20|Apfelbaum\ off

Leider triggert davon keine mein Tasmota_Werkstatt_Apfelbaum Device.  ???

Zitatwende darauf mal das neue attrTemplate für den 4-Channel-Tasmota an.
Damit war ich ja schon einmal dicht dran mit meiner Lösung.

Hast du sonnst vielleicht noch eine Idee, warum mein Device sich nur über die Befehle
set Tasmota_Werkstatt_Apfelbaum Apfelbaum on
set Tasmota_Werkstatt_Apfelbaum Apfelbaum off

schalten lässt und nicht per WDT ?
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

Beta-User

Ich würde mal behaupten, dass die setList so nicht paßt und auch das mit on/off entgegen deinen Behauptungen so nicht geht:
defmod Tasmota_Werkstatt_Apfelbaum MQTT2_DEVICE DVES_00AD4F
attr Tasmota_Werkstatt_Apfelbaum userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr Tasmota_Werkstatt_Apfelbaum IODev MQTT2_Server
attr Tasmota_Werkstatt_Apfelbaum readingList DVES_00AD4F:stat/Werkstatt/RESULT:.* { json2nameValue($EVENT) }
attr Tasmota_Werkstatt_Apfelbaum room MQTT2_DEVICE
attr Tasmota_Werkstatt_Apfelbaum setList Apfelbaum cmnd/Werkstatt/sensor29 6,

Das muß für einen "vereinzelten" in die Richtung aussehen - wobei das mit "6" und "7" komisch ist, das sollte gefühlt eher 0 und 1 sein und an ein POWER-Topic gehen (steht in der Tasmota-Doku, was für was ist, bitte dort mal einlesen, die 6 ist evtl. auch "toggle", aber nicht on oder off)):
defmod Tasmota_Werkstatt_Apfelbaum MQTT2_DEVICE DVES_00AD4F
attr Tasmota_Werkstatt_Apfelbaum userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
attr Tasmota_Werkstatt_Apfelbaum IODev MQTT2_Server
attr Tasmota_Werkstatt_Apfelbaum readingList DVES_00AD4F:stat/Werkstatt/RESULT:.* { json2nameValue($EVENT) }
attr Tasmota_Werkstatt_Apfelbaum room MQTT2_DEVICE
attr Tasmota_Werkstatt_Apfelbaum setList on cmnd/Werkstatt/sensor29 6,\
off cmnd/Werkstatt/sensor29 7,


Damit sollte "state" an dem Device geschaltet werden, das "Apfelbaum" kann dann im WDT entfallen. Ob allerdings die Rückmeldung vom Device her so paßt, kann ich grade nicht sagen.

Bräuchte dazu mal nähere Info, was das überhaupt für eine Konstruktion ist (klingt nach Portexpaner oder so).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Canon.Fritz

Im ersten Post steht   ;)
Zitatich verwende einen Wemos D1 Mini auf dem Tasmota läuft.
Angeschlossen habe ich einen Portexpander um noch mehr Ausgänge am Wemos zu haben.

Deswegen lässt dich auch der Ausgang des Expanders mit
set Tasmota_Werkstatt_Apfelbaum Apfelbaum on
set Tasmota_Werkstatt_Apfelbaum Apfelbaum off

schalten.
FHEM auf Raspberry3, Betriebssystem Raspberry Pi OS, diverse Wemos D1 mini Boards, Sonoff S20, Shellys

Beta-User

Zitat von: Canon.Fritz am 24 September 2019, 20:20:31
Im ersten Post steht   ;)
Sorry, war mir nicht mehr gegenwärtig.
ZitatDeswegen lässt dich auch der Ausgang des Expanders mit set Tasmota_Werkstatt_Apfelbaum Apfelbaum on
set Tasmota_Werkstatt_Apfelbaum Apfelbaum off

schalten.
Diese Schlußfolgerung teile ich nicht. Du sendest via MQTT _immer denselben Befehl_. Das muß also ein logisches "toggle" sein. Sonst würden sind die Befehle für on und off unterscheiden.

Um das zu verifizieren, kannst du einfach den MQTT-Verkehr mitlesen (den MQTT2_SERVER auf rawEvents .* setzen und rePublish aktivieren) oder versuche mal
1. mehrfach "set Tasmota_Werkstatt_Apfelbaum Apfelbaum";
2. mehfach nur "set Tasmota_Werkstatt_Apfelbaum Apfelbaum on" bzw. "set Tasmota_Werkstatt_Apfelbaum Apfelbaum off" (ohne jeweils nach einem Mal den gegenläufigen Befehl zu verwenden...

EDIT:
Jetzt habe ich selbst mal in die Doku gesehen. Die "6" ist der Pin, geschaltet wird mit weiteren Argumenten...

Richtig wäre (vermutlich, wenn das der verwendete Chip ist):
To change the state of an output pin you may use:
Zitat
sensor29 0,ON   // Turn pin ON (HIGH if pinmode 5 or LOW if pinmode 6(inverted)) sensor29 0,OFF  // Turn pin OFF (LOW if pinmode 5 or HIGH if pinmode 6(inverted)) sensor29 0,T    // Toggle the current state of pin from ON to OFF, or OFF to ON 
(aus: https://github.com/arendst/Sonoff-Tasmota/wiki/MCP23008-MCP23017).
Also:
attr Tasmota_Werkstatt_Apfelbaum setList Apfelbaum:ON,OFF cmnd/Werkstatt/sensor29 6,$EVTPART1

oder besser:
attr Tasmota_Werkstatt_Apfelbaum setList on cmnd/Werkstatt/sensor29 6,ON\
off cmnd/Werkstatt/sensor29 6,OFF\

Für die Auswertung müßte man den JSON noch filtern auf Rückmeldungen, die den "sensor29/6" enthalten. Dazu bitte einen RAW-Json liefern wie bereits geschildert.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors