[Gelöst] Sonoff 4Ch Pro R2 mit Tasmota per MQTT2: PulseTime oder on-for-timer

Begonnen von JHo, 24 Juli 2019, 22:34:03

Vorheriges Thema - Nächstes Thema

JHo

Hallo,

ich habe einen Sonoff 4Ch Pro (R2) mit aktuellem Tasmota geflasht, per Autocreate über MQTT2 eingebunden und mit dem 4Ch-Pro-Template konfiguriert. Ich kann problemlos über FHEM schalten und bekomme lokale oder Schaltvorgänge über das WebIF von Tasmota in FHEM mit. Funktioniert also an sich.

Auch kann ich über die Tasmota-Konsole die PulseTime setzen - nur über FHEM bin ich zu doof dazu. Wie muss ich den "set <DEVICE> POWER<x> on"-Befehl erweitern, um die PulseTime zu übergeben?
Im Wiki zu MQTT2 steht, dass es "on-for-timer" gibt, da setExtensions automatisch aktiviert ist. Aber auch das bekomme ich nicht hin, es gibt nur die Fehlermeldung aus, dass ich doch "set <Device> POWER1 POWER2 etc. pp on off toggle" ausführen soll und es "on-for-timer" eben nicht gibt. Kann mir jemand helfen?

Ziel soll sein, den vier Kanälen variabel und von FHEM bedarfsgesteuert Abschalt-Timer mitzugeben, um die Bewässerungsventile durch das Sonoff selber, autark, wieder abzudrehen.

Viele Grüße
Jan
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

rudolfkoenig

on-for-timer (und etliche andere wie interval, blink) wird von SetExtensions genau dann angeboten, wenn das Geraet von sich aus ein on und ein off Befehl anbietet.
Das ist bei einer 4-Kanal-Definition problematisch, einer der Gruende warum ich eine separate FHEM-Definition fuer jeden Kanal bevorzuge.

DasQ

Nagut dann weis ich jetzt warum mein Blink immer genau 10 mal statt nur 1 mal blinkt

defmod HausTuerSignalKueche DOIF ([11:00-15:30] and [ESP_5Vrelais:Glocke] eq "on" and [Kueche_SonOff_4CH_1:POWER2] eq "on" ) ((set Kueche_SonOff_4CH_1 POWER2 blink 3 1, set Kueche_SonOff_4CH_1 POWER2 off), ({Log 3, "Klingeln an der Haustuer zwischen 11-14:30 Uhr"}))\
DOELSEIF   ([11:00-15:30] and [ESP_5Vrelais:Glocke] eq "on" and [Kueche_SonOff_4CH_1:POWER2] eq "on" )  (set Kueche_SonOff_4CH_1 POWER2 blink 1 1, set Kueche_SonOff_4CH_1 POWER2 on)\
DOELSEIF   ([11:00-15:30] and [ESP_5Vrelais:Glocke] eq "on" and [Kueche_SonOff_4CH_1:POWER2] eq "off" ) (set Kueche_SonOff_4CH_1 POWER2 blink 1 1, set Kueche_SonOff_4CH_1 POWER2 off)
attr HausTuerSignalKueche group ESP
attr HausTuerSignalKueche repeatsame 1:1:1
attr HausTuerSignalKueche room Hausgang,Kueche
attr HausTuerSignalKueche verbose 3
attr HausTuerSignalKueche wait 0,3:0,3:0,3
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

Mal schauen, wie ich das mit den SetExtensions eventuell bei Gelegenheit nochmal irgendwie genauer verwurstle in der Doku/den templates.

Trotzdem will der TE hier ja eigentlich was anderes, nämlich einen timer, der auf dem Gerät (ESP8266) läuft.

Hat jemand eine Idee bzw. kann mal in der (tasmota-) Doku nachsehen, was man da per MQTT versenden muß, um es auf diesem Weg zu realisieren?
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

JHo

Ich dachte, bei den unterstützen Geräten würde on-for-timer eben genau auf dem Gerät angewendet? Habe ich das falsch verstanden?

Richtig, mir geht es darum, einen Timer zum Abschalten von FHEM aus im Gerät zu setzen. Damit meine Ventile nicht den Garten fluten, wenn FHEM ausfällt.
Tasmota bietet als Command dafür PulseTime. Das funktioniert in der Konsole und kann nach Tasmota-Referenz auch per MQTT geschickt werden: cmnd/%topic%/<command> <parameter> Dabei muss die PulseTime vor einem "on" gesetzt werden und gilt dann bis zur nächsten Änderung auf für manuelle Schaltvorgänge über das WebIF bzw am Gerät.

Meine Frage ist wohl sehr unklar formuliert: Wo und wie kann ich aus FHEM mit MQTT2 dieses Command abschicken? Im MQTT2 Device per Publish kam keinerlei Reaktion zurück, eben auch nicht in der Konsole des Sonoff.
Wird beim 4ch pro ein on-for-timer von FHEM oder im Device verwaltet? Wenn es Geräte gibt, die on-for-timer autark verwalten, woran erkenne ich das?
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

TomLee

Mit Backlog ? (List of commands to be executed in sequence separated by ; )

onfor6s:noArg cmnd/sonoffOBI/Backlog POWER on; Delay 60; POWER off

Beta-User

Backlog sollte auch klappen, so wie das klingt, würde dann die PulseTime nicht auf dem Aktor gespeichert, anders, wie wenn man das ausdrücklich vor das "on" setzt.

Was das on-for-timer-Verständnis im allgemeinen angeht: Es gibt afaik nur zwei oder drei Module, die eine on-for-timer-Anweisung wirklich direkt auf dem Aktor verwalten: CUL_HM (und evtl. die CCU.*-Module) und Shelly (ohne MQTT). Bei allen anderen geht das via SetExtensions. Welche Variante "stattfindet", kann man in der Regel an einem list ablesen, für SetExtensions gibt es dabei eine Internal-Struktur "TimedOnOff" (oder so ähnlich), solange SetExtensions aktiv ist.

Zur Lösung des Problems hier:

Backlog wäre (ungetestet!) z.B. so ein Eintrag (CMNDTOPIC ist template-Sprache, muß angepaßt werden, habe hier aber kein list/RAW):
P1_timerOn CMNDTOPIC/Backlog POWER1 on; delay $EVTPART1; POWER1 off
Für die andere Variante wäre evtl. jeweils so eine Zeile zusätzlich:POWER1_timerOn CMNDTOPIC/POWER1 $EVTPART1 on\(Oder generischer, nummerische Kanaleingabe + Einschaltzeit):
ChannelNum_timerOn CMNDTOPIC/POWER$EVTPART1 $EVTPART2 on\
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

TomLee

Zitat von: Beta-User am 25 Juli 2019, 09:27:50

P1_timerOn CMNDTOPIC/Backlog POWER1 on; delay $EVTPART1; POWER1 off


Das wollte mir gerade nicht gelingen und gerade nachfragen  :)

So waren meine Gedanken und da stand in $EVTPART1 immer 2

inttimer:select,0,10,20,30,40,50,60,70,80 cmnd/sonoffOBI/Backlog POWER 1; delay {"$EVTPART1"}; POWER 0

und so klappts jetzt

inttimer:select,0,10,20,30,40,50,60,70,80 cmnd/sonoffOBI/Backlog POWER 1; delay $EVTPART1; POWER 0

rudolfkoenig

ZitatEs gibt afaik nur zwei oder drei Module, die eine on-for-timer-Anweisung wirklich direkt auf dem Aktor verwalten: CUL_HM (und evtl. die CCU.*-Module) und Shelly (ohne MQTT).
on-for-timer stammt vom guten alten FS20.
Das ZWave Protokoll definiert sowas auch, allerdings nur ab SWITCH_BINARY version 2, und mir ist kein Geraet bekannt, der das implementiert.
Erstaunlich, dass aktuelle Protokolle sowas Elementares uebersehen, vmtl. haben die Designer keine praktische Erfahrung.

Beta-User

 :)
@TomLee: Zwei Dinge...
- statt select als widget eventuell selectnumber? (Ist zwar etwas "umständlicher" zu konfigurieren, dafür aber m.E. flexibler, wenn man mehr Werte haben möchte...)
- Wundert mich etwas, dass du POWER verwendest statt POWER1. Hast du auf Kleinschriebung umgestellt? (Ist für "nur-FHEM"-Zwecke m.E. günstiger, weil dann die Symbole usw. passen).


FS20 hatte ich schon gar nicht mehr auf dem Schirm ::) , und das mit ZWave war mir neu (habe bisher nur den FGR-223 und ein paar 222-er Switches im Einsatz, bei letzteren ist es SE-getimed, und der Rollladenaktor soll seine Timer sowieso alleine verwalten). Ist eigentlich schade... Aber FHEM läuft so robust, da macht es nicht sooo viel, wenn das "indirekt" gelöst ist.

(Blöd ist nur, dass ich wegen der ganzen Testerei usw. im Moment recht viele updates fahre und daher auch oft neu starte; dann sind die SE-Timer weg, wenn ich das richtig verstanden habe...)
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

TomLee

ZitatBacklog sollte auch klappen, so wie das klingt, würde dann die PulseTime nicht auf dem Aktor gespeichert, anders, wie wenn man das ausdrücklich vor das "on" setzt.

Sry, wo findet das delay denn statt ? auf dem ESP oder ?


09:30:37 MQT: stat/sonoffOBI/RESULT = {"Backlog":"Appended"}
09:30:37 MQT: stat/sonoffOBI/RESULT = {"POWER":"on"}
09:30:37 MQT: stat/sonoffOBI/POWER = on
09:30:37 MQT: stat/sonoffOBI/RESULT = {"Delay":20}
09:30:39 MQT: stat/sonoffOBI/RESULT = {"POWER":"off"}
09:30:39 MQT: stat/sonoffOBI/POWER = off



Zitat- statt select als widget eventuell selectnumber?
 - Wundert mich etwas, dass du POWER verwendest statt POWER1. 

Ich schaus mir an aber ich brauchs nicht, genauso wie das mit dem select aber immer gut zu wissen wie es gehen könnte  :P

Das ist ein Zwischenstecker den ich zum testen erstmal rausholen muss, mir ist völlig wurscht wie der aussieht/konfiguriert ist.

Beta-User

Hmmm, das delay findet auf dem ESP statt; aber die Einheit ist "falsch"/anders als gedacht:

Zitat
Command
Parameters
Delay
2..3600 = set delay between two backlog commands with 0.1 second increment

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

TomLee

Das mit selectnumber hab ich so verstanden das ich schon ein Beispiel finden werde, in keiner .template find ich ein Beispiel und mit der Suche danach bin ich wenig erfolgreich.

Beta-User

selectnumber ist im Wiki unter FHEMWEB/widgets kurz dargestellt und man findet Beispiele dazu im ASC-Wiki-Eintrag.
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

TomLee

Zitat von: Beta-User am 25 Juli 2019, 10:49:00
selectnumber ist im Wiki unter FHEMWEB/widgets kurz dargestellt und man findet Beispiele dazu im ASC-Wiki-Eintrag.

Ups, ich wusste doch das mir das bekannt vorkommt.  ;D

TomLee

Dann hier nochmal die 2 Varianten:

inttimer1:select,0,10,20,30,40,50,60,70,80 cmnd/sonoffOBI/Backlog POWER 1; delay $EVTPART1; POWER 0
inttimer2:selectnumbers,2,10,3600,0,lin cmnd/sonoffOBI/Backlog POWER 1; delay $EVTPART1; POWER 0

TomLee

Zitat von: JHo am 25 Juli 2019, 08:21:52
Tasmota bietet als Command dafür PulseTime. Das funktioniert in der Konsole und kann nach Tasmota-Referenz auch per MQTT geschickt werden: cmnd/%topic%/<command> <parameter> Dabei muss die PulseTime vor einem "on" gesetzt werden und gilt dann bis zur nächsten Änderung auf für manuelle Schaltvorgänge über das WebIF bzw am Gerät.


Nur bis zur nächsten Änderung geht aber nicht, die pulsetime bleibt (ohne save) bis zu einem restart auch für jeden "on" Befehl erhalten (man möge mich verbessern wenn dem nicht so ist)  mein Workaround dazu pulsetime einfach vor jedem "on" vorsichtshalber ausschalten  :P :

on:noArg cmnd/sonoffOBI/Backlog pulsetime 0; POWER 1
inttimer:selectnumbers,1,100,64900,0,lin cmnd/sonoffOBI/Backlog pulsetime $EVTPART1; POWER 1


Nachteil, nur noch über FHEM einschalten , nicht mehr über das WebIF (sonst halt mit Timer) des Geräts, kann man aber verkraften denk ich.

Beta-User

...nur als Idee: SetExtensions wird erst aktiv, wenn "vorher" nichts anderes gefunden wird. Es sollte also gehen, direkt "on-for-timer" zu nutzen (k.A., ob das als Redingsname zulässig ist...):

on-for-timer {"cmnd/sonoffOBI/Backlog POWER ".$EVTPART1*10." 1; delay ".$EVTPART1*10."; POWER 0 0"}

Führt zwar ggf. zu doppeltem Ausschalten, dafür könnte man das "pro Kanal" in einem separaten Device unterbringen? (Ich fürchte, das pusetime-setzen via backlog ohne Kanal wirkt dann auf alle, und das ist ja ggf. nicht gewollt). Im Prinzip würde man das mit der pulsetime so gar nicht benötigen, sondern könnte auch direkt den delay verwenden, also so:
on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay ".$EVTPART1*10."; POWER 0"}
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

TomLee

ZitatIch fürchte, das pusetime-setzen via backlog ohne Kanal wirkt dann auf alle, und das ist ja ggf. nicht gewollt

Die Syntax ist PulseTime<x> <parameter>.

gibt man nur pulsetime an ist der erste gemeint, nicht alle.

JHo

Zitat von: TomLee am 25 Juli 2019, 12:27:48
Nur bis zur nächsten Änderung geht aber nicht, die pulsetime bleibt (ohne save) bis zu einem restart auch für jeden "on" Befehl erhalten (man möge mich verbessern wenn dem nicht so ist)  mein Workaround dazu pulsetime einfach vor jedem "on" vorsichtshalber ausschalten  :P :
Mit "bis zur nächsten Änderung" meine ich die Änderung der Pulsetime: Wird eine PulseTime gesetzt, bleibt sie bis zum nächsten Setzen einer Pulsetime genau so vorhanden und greift bei allen Schaltvorgängen über MQTT, WebIF oder direkt am Gerät. Bei Neustart des Sonoff müsste auf eine zuvor mit Savedata gespeicherte Pulsetime gegangen werden.
In meinem Fall wäre es mir lieber, auf eine Default-Anschaltdauer von 10 Minuten oder so zu gehen, anstatt unter Umständen ewig zu bewässern.

Allen anderen: vielen Dank für euren Input! Werde ich mal ausprobieren und insbesondere die Infos zu on-for-timer merken. Das hatte ich bislang echt immer so verstanden, dass die unterstützten Geräte das dann autark machen. Nicht, weil ich FHEM nicht stabil genug finde, sondern viel mehr an der 100%igen Zuverlässigkeit der Hardware zweifele, auf der FHEM läuft bzw. mit der FHEM den Ausschaltbefehl schickt.
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

TomLee

on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay ".$EVTPART1*10."; POWER 0"}

es müssen einfache ' sein

on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay '.$EVTPART1*10.'; POWER 0"}

sonst bekommt man eine Fehlermeldung beim übernehmen (attr drücken).

Klappt aber nicht jetzt steht wie bei mir vorhin 2 in $EVTPART1 und der set befehl on-for-timer ist nun immer vorbelegt mit dem zuletzt verwendetem Wert mit einem set davorgestellt bspw. set 9


Beta-User

Zitat von: JHo am 25 Juli 2019, 13:11:10
Bei Neustart des Sonoff müsste auf eine zuvor mit Savedata gespeicherte Pulsetime gegangen werden.
In meinem Fall wäre es mir lieber, auf eine Default-Anschaltdauer von 10 Minuten oder so zu gehen, anstatt unter Umständen ewig zu bewässern.
Du kannst die 10 Min ja ohne weiteres via backlog wie beschrieben in alle Kanäle schreiben und dann ein "SaveData 1;" an's Ende anfügen ;) .

Zitat von: TomLee am 25 Juli 2019, 12:51:54
Die Syntax ist PulseTime<x> <parameter>.

gibt man nur pulsetime an ist der erste gemeint, nicht alle.
Danke für den Hinweis. (Wieder was gelernt, auch wenn ich damit im Moment mangels Hardware nichts anzufangen weiß ;D ).

Zitat von: TomLee am 25 Juli 2019, 13:12:54
Klappt aber nicht
Wenn, dann könnten ggf. überall einfache quotes helfen (liegt evtl. an den nicht escapten ";"):
on-for-timer {'cmnd/sonoffOBI/Backlog POWER 1; delay '.$EVTPART1*10.'; POWER 0'}

Ist aber alles nach wie vor ungetestet...
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

TomLee

Gut ist das es grundsätzlich funzen sollte, weil das klappt:
on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay $EVTPART1;POWER 0"}

Alles andere klappt nicht sobald gerechnet werden soll, den Punkt hinten bin ich mir nicht sicher ob der korrekt ist 8) daher hab ich ihn manchmal raus genommen, getestet hab ich auch noch die geschweiften nur um EVTPART1 in allen möglichen Varianten, das Kommando wird immer ausgeführt (von daher die ; zu escapen sinnfrei) aber delay ist immer 2:

on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay '.$EVTPART1*10'; POWER 0"}
on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay '.$EVTPART1*10.'; POWER 0"}
on-for-timer {'cmnd/sonoffOBI/Backlog POWER 1; delay ".$EVTPART1*10."; POWER 0'}
on-for-timer {'cmnd/sonoffOBI/Backlog POWER 1; delay ".$EVTPART1*10"; POWER 0'}



on-for-timer {"cmnd/sonoffOBI/Backlog POWER 1; delay ".$EVTPART1*10."; POWER 0"}
syntax error at (eval 3425984) line 1, near "10."; POWER 0""


on-for-timer {'cmnd/sonoffOBI/Backlog POWER 1; delay '.$EVTPART1*10'; POWER 0'}
syntax error at (eval 3426774) line 1, near "10'; POWER 0'"


ZitatWieder was gelernt, auch wenn ich damit im Moment mangels Hardware nichts anzufangen weiß  

Ausrede  8) Ich mein in Erinnerung zu haben du hast vor einiger Zeit erwähnt mind. einen Wemos D1 Mini zu besitzen.  :P

Beta-User

Dann halt vorher rechnen...:

on-for-timer {my $duration = $EVTPART1*10; 'cmnd/sonoffOBI/Backlog POWER 1; delay '.$duration.'; POWER 0'}
Und das mit der Bedeutung der Quotes und der Funktion der Punkte solltest du dir nochmal ansehen, das sieht mir etwas sehr nach trial&error aus :D .



Ich habe sogar 3 WeMoS rumfahren, davon 2 im Einsatz (einer als MiLight-Bridge mit sidoh-firmware, einer mit Tasmota als IR-Gateway) und noch diverse ESP8266 in verschiedenen Bauformen im Keller rumfliegen :P . Aber deswegen packe ich die ungenutzten Biester noch lange nicht aus, und die die ich "produktiv" im Einsatz habe, fasse ich auch nicht ohne Not an...
Wofür habe ich euch?



EDIT:
Eventuell muß man auch die allgemeine Vorgehensweise für ";" verwenden, bitte testen, wenn das obige nicht geht:
on-for-timer {my $duration = $EVTPART1*10; "cmnd/sonoffOBI/Backlog POWER 1;; delay $duration;; POWER 0"}
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

TomLee

Zitat von: Beta-User am 25 Juli 2019, 16:12:19
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/sonoffOBI/Backlog POWER 1; delay '.$duration.'; POWER 0'}

Der Pöbel hat es getestet und befindet es für gut. :P




Zitat
Wofür habe ich euch?

ZitatIn meiner Ausbildungsfirma gab es einen Abteilungsleiter, der nach der Device gehandelt hat "wer sich für unentbehrlich hält, fliegt raus". Inzwischen habe ich in 35 Jahren Berufsleben sehr gut verstanden, was er damit meinte.

Frag mich nicht wie ich jetzt auf die Verbindung komme !

Beta-User

 ;D ;D ;D
Wenn du auf einen meiner "Lieblingsknöpfe" (sch... WLAN-Gedönse...) drückst, bekommst du, was du erwartest :P .

Mal im Ernst: Das, was heute in den attrTemplates steckt, ist zum allergrößten Teil nicht auf meinem Mist gewachsen, sondern haben Leute beigetragen, die in vielen Bereichen (u.A. Perl) deutlich mehr auf dem Kasten haben als meinereiner... Bin also definitiv (und zum Glück) verzichtbar 8)

Was jetzt den on-for-timer-Code @tasmota angeht:
Muß ich wohl bei Gelegenheit irgendwie in die template-file aufnehmen. Jemand eine Idee, wo das gut aufgehoben ist?
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

Beta-User

Den on-for-timer-Code habe ich eben mit dem "Basis"-Power1-tasmota-Template ins svn geschubst (falls ihn mal wieder jemand suchen sollte)...
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

JHo

1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

Beta-User

Zitat von: JHo am 31 Juli 2019, 14:02:34
Ein Traum - vielen lieben Dank für die Unterstützung!
Thx, auch an TomLee für's Testen und die Basisidee mit dem backlog.

Markierst du den Thread dann bitte noch als [gelöst]?
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

JHo

Sorry, ich muss das nochmal aufgreifen, die Lösung hat einen Haken:
Tasmota-Delay kann nur maximal 5 Minuten. Wird ein Delay über 3600 (Zehntelsekunden) übergeben, dann springt Tasmota auf 2 (Zehntelsekunden)... sollte meiner Meinung nach so nicht (ohne Hinweis) in den Templates stehen.

Ich behelfe mir jetzt damit, dass ich tatsächlich eine PulseTime übergebe. Das setList schaut nun so aus: on-for-timer {my $duration = $EVTPART1+100; 'cmnd/DVES_5A0F82/Backlog pulseTime1 '.$duration.'; POWER1 1'}
, womit ich Werte ab 12 (Sekunden) "richtig" übergebe - darunter wird immer mindestens 11,x Sekunden angeschaltet. Tasmotas pulseTime zählt von 0 bis 111 in Zehntelsekunden, danach in Sekunden. Das müsste man noch mit abfangen, um richtig korrekt zu sein, aber ich bekomme keine Bedingung im setList unter... geht sowas überhaupt wie (WENN $EVTPART1>=111 DANN ... SONST die Variante mit +100)?

Viele Grüße
Jan
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

Beta-User

Danke für den Hinweis.

Das sollte dann so klappen:
on-for-timer {my $duration = $EVTPART1 > 11.1 ? $EVTPART1+100 :  $EVTPART1*10 ; 'cmnd/DVES_5A0F82/Backlog pulseTime1 '.$duration.'; POWER1 1'}
Damit sollte erst mal nachgesehen werden, ob der Bereich bis 11.1 Sekunden gemeint ist oder darüber liegt und dann eine passende Berechnung stattfinden. Bitte kurz testen, dann pflege ich das gerne ein.
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

JHo

Komme diese Woche nicht zum testen, melde mich ab Anfang September. Danke für den Tipp schonmal!
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

JHo

1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

Beta-User

Zitat von: JHo am 09 September 2019, 14:36:10
So, jetzt: funktioniert - Danke!
Thx, war grade eh' dabei das und das "Interlock0" vorzubereiten. Ist seit eben im svn :) .
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