Hallo,
ich will bei einem abgesetzten Befehl (Solltemperatur einstellen) gleichzeitig ein burstXmit mitschicken.
Also z.B. bei
set HM_2E5CE0_Clima desired-temp 13.5
einen zweiten Befehl
set HM_2E5CE0_Clima burstXmit
hinterher schicken.
Normaler cmdalias ist mit klar, z.B.
define burst1 cmdalias set ELRO_C1 on AS set ELRO_C1 on ;; sleep 3 ;; set ELRO_C2 on
aber oben muss ja die Temperatur durch einen Platzhalter ersetzt werden.
Wie codiert man das ?
Danke schon mal im Voraus für eure Hilfe.
Viele Grüße
Ralf
Mit regulärem Ausdruck und $EVENT bzw. $EVTPART:
http://fhem.de/commandref.html#cmdalias
Ganz sicher bin ich nicht, da ungetestet.
defne NAME cmdalias set HM_2E5CE0_Clima desired-temp .* AS set HM_2E5CE0_Clima desired-temp $EVTPART1 ;; set HM_2E5CE0_Clima burstXmit
Hi,
es gibt auch im Wiki ein paar aussagekräftige Beispiele.
https://wiki.fhem.de/wiki/Cmdalias
Gruß Otto
Zitat von: xenos1984 am 11 Februar 2020, 22:21:51
Mit regulärem Ausdruck und $EVENT bzw. $EVTPART:
http://fhem.de/commandref.html#cmdalias
Ganz sicher bin ich nicht, da ungetestet.
define NAME cmdalias set HM_2E5CE0_Clima desired-temp .* AS set HM_2E5CE0_Clima desired-temp $EVTPART1 ;; set HM_2E5CE0_Clima burstXmit
Hallo,
ich habe das und kleine Variationen davon versucht, klappt leider nicht.
:(
Zitat...klappt leider nicht.
Zu wenig Informationen. :o
Was hast Du versucht? Code?
Was passiert?
Steht was im Log?
Meine Empfehlung: Schritt für Schritt ...
Vorschlag simpel, funktioniert das?
define NAME cmdalias willi .* AS set HM_2E5CE0_Climate desired-temp $EVENT
Danach funktioniert dies in der FHEM Kommandozeile:
willi 15
Beachte
Eigentlich heissen die Kanäle bei Homematic nicht Clima sondern Climate!
Zitat von: Otto123 am 13 Februar 2020, 23:18:12
Meine Empfehlung: Schritt für Schritt ...
Vorschlag simpel, funktioniert das?
define NAME cmdalias willi .* AS set HM_2E5CE0_Climate desired-temp $EVENT
Danach funktioniert dies in der FHEM Kommandozeile:
willi 15
Das sendet nur die desired-Temperature und nicht den Burstxmit
Zitat
Beachte
Eigentlich heissen die Kanäle bei Homematic nicht Clima sondern Climate!
Wenn ich Climate nehme anstelle von Clima kommt die Fehlermeldung:
Unknown argument desired-temp, choose one of burstXmit clear getConfig getRegRaw inhibit peerBulk regBulk regSet sign sysTime
Oh Mann bist Du ein schwieriger Typ :-X
Klar, Du musst den richtigen Namen Deines Klima Kanales nehmen - es war nur ein Hinweis. :o
Und immerhin sendet willi die Temperatur :)
Denn Deine Frage war
Zitataber oben muss ja die Temperatur durch einen Platzhalter ersetzt werden.
Wie codiert man das ?
Die Frage ist doch damit beantwortet. ;) Alles andere ist wie immer ;)
Und nun? "Mutti - mach mal?"
defmod NAME cmdalias willi .* AS set HM_2E5CE0_Clima desired-temp $EVENT;; set HM_2E5CE0_Clima burstXmit
Oder hast Du das versucht? Weil sagen willst Du es ja nicht :-X :-\ :'(
Zitat von: Otto123 am 14 Februar 2020, 10:40:14
Oh Mann bist Du ein schwieriger Typ :-X
Und nun? "Mutti - mach mal?"
defmod NAME cmdalias willi .* AS set HM_2E5CE0_Clima desired-temp $EVENT;; set HM_2E5CE0_Clima burstXmit
Super Mutti - funktioniert !
Vielen Dank ;D
Hallo,
doch noch nicht ganz gelöst ....
Den CMDAlias hab ich so definiert
define burst_220A2E cmdalias settemp_220a2e .* AS set HM_220A2E_Clima desired-temp $EVENT;; set HM_220A2E_Clima burstXmit
und das geht aus Standard-FHEM-Oberfläche auch. Also settemp_220a2e 15
z.B. setzt die desired-temp auf 15 und schickt ein burstXmit hinterher.
Soweit so gut, nun muss das ganze noch mit Tablet-UI verheiraten, siehe auch Screenshot....der zugehörige Code ist hier :
<li data-row="2" data-col="2" data-sizex="1" data-sizey="3" class="semitransparent">
<header><font size="+1">Daniel</font></header>
<table width="100%">
<tr> <td> Ist:</td>
<td>
<div data-type="label" style="font-size: 200% "
data-device="HM_2E5CE0" data-get="measured-temp" data-unit="%B0C%0A" data-fix="1"
data-limits="[10,18,23]" data-colors='["#0000ff","#00ff00","#ff0000"]' >
</div>
</td>
</tr>
<tr><td> Ventil:</td>
<td> <div data-type="label" style="font-size: 200% "
data-device="HM_2E5CE0" data-get="actuator" data-unit="%" data-fix="1"
data-limits='[0,33,66]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</td>
</TR>
</table>
<TABLE>
<hr>
Reglereinstellung<br><br>
<div data-type="thermostat"
data-device="HM_2E5CE0_Clima" data-get="desired-temp"
data-set="desired-temp"
data-valve="ValvePosition"
data-min="0" data-max="30" data-step="0.5"
data-fgColor="darkorange"
data-height="100px"
data-width="100px">
</div>
<hr>
Modus<br>
<div data-type="multistatebutton"
data-device="HM_2E5CE0_Clima"
data-get="controlMode"
data-get-on='["auto","manual"]'
data-set='["controlMode manual","controlMode auto"]' data-icons='["oa-sani_heating_automatic","oa-sani_heating_manual"]' data-colors='["darkgreen","darkblue"]'
data-background-icon="fa-square"
data-background-color="grey"
>
</div>
<div data-type="multistatebutton"
data-device="HM_2E5CE0"
data-get="R-btnLock" data-get-on='["set_on","set_off"]'
data-set='["regSet btnLock off","regSet btnLock on"]'
data-icons='["oa-secur_locked","oa-secur_open"]'
data-colors='["darkred","darkblue"]'
data-background-icon="fa-square"
data-background-color="grey"
>
</div>
<div data-type="symbol" data-device="HM_2E5CE0" data-get="batteryLevel"
data-icons='["oa-measure_battery_100","oa-measure_battery_100","oa-measure_battery_75","oa-measure_battery_50","oa-measure_battery_25","oa-measure_battery_0"]'
data-get-on='["3","3\\.[0-9]","2\\.[789]","2\\.[456]","2\\.[123]","((2\\.0)|([01]\\.[0-9]))"]'
data-on-colors='["#0CFB0C","#0CFB0C","#42BC0A","#F5FF10","#FB5909","#E50005"]'>
</div>
<div data-type="pagebutton" data-url="temperatur-daniel.html" class="cell" data-icon="fa-area-chart" class="cell"></div>
</li>
Problem ist nun, dass im Tablet-UI-Code beim Thermostat <div data-type="thermostat"
data-device="HM_2E5CE0_Clima" data-get="desired-temp"
data-set="desired-temp"
data-valve="ValvePosition"
data-min="0" data-max="30" data-step="0.5"
data-fgColor="darkorange"
data-height="100px"
data-width="100px">
</div>
die Daten ans Device "HM_2E5CE0_Clima"gesendet werden, z.B. kommt beim Einstellen auf 15°in Tablet UI
in FHEM letztendlich der Befehl "set HM_2E5CE0_Clima desired-temp 15" an. Es müsste aber ein "settemp_220a2e 15" aus Tablet UI erzeugt werden. Oder aber den CMD-Alias ändern so ähnlich wie xenos1984 vorgeschlagen hat (aber der vorgeschlagene CMDalias geht aber nicht....ich glaube das hat was mit den Großbuchstaben in HM_2E5CE0 zu tun bin mir aber nicht sicher).
Kann mir da jemand weiterhelfen ?
Viele grüße
Ich habe keine Ahnung von TabletUI - aber wenn Du eigentlich einfach hinter jedem set desired-temp ein burstxmit hinterherschicken willst, kannst Du auch einfach folgendes machen:
define HM_220A2E_Clima_notify_1 notify HM_220A2E_Clima:desired-temp:.* set $NAME burstXmit
Und sparst Dir den Umweg über den Alias. ;)
Gruß Otto
Danke dir Otto. Das sieht schon mal ganz gut aus.
Problem ist hier nun, dass das burstXmit zwar irgendwann hinterher kommt aber oft relativ spät
Im Log steht :
2020.02.14 21:50:42.399 3: CUL_HM set HM_220A2E_Clima desired-temp 12.5
2020.02.14 21:51:31.301 3: CUL_HM set HM_220A2E_Clima desired-temp 13.5
2020.02.14 21:52:09.545 3: CUL_HM set HM_220A2E_Clima burstXmit
.......
.......
.......
2020.02.14 21:54:33.333 3: CUL_HM set HM_220A2E_Clima burstXmit
?????
hilfe !
naja der Ablauf ist wie folgt:
Du schickst ein set desired-temp
es wird ein Event erzeugt: HM_220A2E_Clima:desired-temp:.*
Auf den reagiert das notify und sendet ein set burstXmit
Da können irgendwelche Zeiten dazwischen liegen.
Um den Ablauf zu verstehen solltest Du nicht nur ins Logfile schauen sondern auch in den Eventmonitor.
Ich habe Deine Thermos nicht, musst Du also selbst testen. Meine WandThermostate reagieren sofort, kein sein deine sind anders.
Wir hier auch erklärt, also blöde Idee. Musst Du doch mit anderem machen....
https://forum.fhem.de/index.php?topic=17159.60
Wenn das ein Problem ist war es eine blöde Idee. Ob es aber wirklich anders ist wenn Du zwei set Befehle hintereinander schickst, weiß ich nicht. Siehst Du aber auch im Eventmonitor.
Schlechter Funkkontakt kann auch alles beeinflussen.
Gruß Otto
Hallo,
also bei der CMDAlias Implementierung reagieren die Thermostate sofort.
Also
define burst_220A2E cmdalias settemp_220a2e .* AS set HM_220A2E_Clima desired-temp $EVENT;; set HM_220A2E_Clima burstXmit
tut genau das was soll.
Nun müsste man doch irgendwie doch im obigen Ausdruck das settemp_220a2e .* ersetzen können durch ein set HM_220A2E_Clima desired-temp .* . Wenn das ginge sollte es aus Tablet UI raus einfach funktionieren. Geht aber aus irgendeinem Grund nicht. Evtl. Gross/Kleinschreibung, denn settemp_220A2E .* im obigen Ausdruck geht auch nicht
Damit Du in Zukunft auch mal ohne Mutti auskommst, definierst Du Dir mal das:
define burst_220A2E cmdalias set temp_220a2e temp .* AS {Log 1, "Kompletter Event |$EVENT| eins |$EVTPART0| zwei |$EVTPART1| drei |$EVTPART2|"}
Und dann probierst Du ein bisschen :) Du hast ja in #3 offenbar nur an der falschen Stelle variiert ;D
Wobei ich ein ungutes Gefühl mit solch einem Alias habe. Am Ende ersetzt Du damit den set Befehl im System. Ich würde das nicht machen, kann sein, dass es unangenehme Nebenwirkungen gibt.
Gruß Otto
Ich habs aufgegeben.
Bzw. anders gelöst, einfach einen Bestätigungsbutton in Tablet UI unter den Regler.
Geht und tut was es soll. Danke trotzdem an Otto :D
Code und Screenshot anbei
Viele Grüße
Ralf
<li data-row="2" data-col="6" data-sizex="1" data-sizey="3" class="semitransparent">
<header><font size="+1">Bad</font></header>
<table width="100%">
<tr> <td> Ist:</td>
<td>
<div data-type="label" style="font-size: 200% "
data-device="HM_3CFD66" data-get="measured-temp" data-unit="%B0C%0A" data-fix="1"
data-limits="[10,18,23]" data-colors='["#0000ff","#00ff00","#ff0000"]' >
</div>
</td>
</tr>
<tr><td> Ventil:</td>
<td> <div data-type="label" style="font-size: 200% "
data-device="HM_3CFD66" data-get="actuator" data-unit="%" data-fix="1"
data-limits='[0,33,66]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</td>
</TR>
</table>
<hr>Reglereinstellung
<BR><BR>
<div data-type="thermostat"
data-device="HM_3CFD66_Clima" data-get="desired-temp"
data-set="desired-temp"
data-valve="ValvePosition"
data-min="0" data-max="30" data-step="0.5"
data-fgColor="darkorange"
data-height="100px"
data-width="100px">
</div>Confirm
<div data-type="image" data-url="/../images/default/confirm.png" data-size="25%" onclick="setFhemStatus('set HM_3CFD66_Clima burstXmit ; window.location.reload();')"></div>
<HR>
<div data-type="multistatebutton"
data-device="HM_3CFD66_Clima"
data-get="controlMode"
data-get-on='["auto","manual"]'
data-set='["controlMode manual","controlMode auto"]' data-icons='["oa-sani_heating_automatic","oa-sani_heating_manual"]' data-colors='["darkgreen","darkblue"]'
data-background-icon="fa-square"
data-background-color="grey"
>
</div>
<div data-type="multistatebutton"
data-device="HM_3CFD66"
data-get="R-btnLock" data-get-on='["on","off"]'
data-set='["regSet btnLock off","regSet btnLock on"]'
data-icons='["oa-secur_locked","oa-secur_open"]'
data-colors='["darkred","darkblue"]'
data-background-icon="fa-square"
data-background-color="grey"
>
</div>
<div data-type="symbol" data-device="HM_3CFD66" data-get="batteryLevel"
data-icons='["oa-measure_battery_100","oa-measure_battery_100","oa-measure_battery_75","oa-measure_battery_50","oa-measure_battery_25","oa-measure_battery_0"]'
data-get-on='["3","3\\.[0-9]","2\\.[789]","2\\.[456]","2\\.[123]","((2\\.0)|([01]\\.[0-9]))"]'
data-on-colors='["#0CFB0C","#0CFB0C","#42BC0A","#F5FF10","#FB5909","#E50005"]'>
</div>
<div data-type="pagebutton" data-url="temperatur-bad.html" class="cell" data-icon="fa-area-chart" class="cell"></div>
</li>
Du kannst/hättest auch burst beim HKT setzen können, dann reagiert er auch sofort auf Änderung von u.a. desired-temp.
EDIT: https://wiki.fhem.de/wiki/HomeMatic#Burst bzw. https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Burst-Modus und dann: So aktiviert man den burst-Betrieb am HM-CC-RT-DN
Bzgl. Batterieverbrauch kann/konnte ich nicht wirklich mehr Verbrauch feststellen... Hängt aber auch von generellem Funkverkehr ab... (inkl. "Nachbarschaft")
Hab ich so bei einigen meiner HKTs...
Gruß, Joachim
Zitat von: MadMax-FHEM am 18 Februar 2020, 22:06:02
Du kannst/hättest auch burst beim HKT setzen können, dann reagiert er auch sofort auf Änderung von desired-temp.
Hallo Joachim,
klingt äusserst vielversprechend.....kannst du das mal genauer erklären ?
Schöne Grüße
Ralf
Hallo Ralf,
steht doch in den Links... ;)
Einfach das burst Regisert setzen und gut...
...bzw. halt noch das Attribut.
also so wie im 2ten Link inkl. angegebene "Stelle"...
Gruß, Joachim
Redest du von dem R-burstRx Register ? Die sind bei allen THermostaten gesetzt.
Aber nur langes Warten oder eben ein burstXmit setzt den neuen Sollwert.
Attribut gesetzt!?
Gruß, Joachim
Zitat von: MadMax-FHEM am 18 Februar 2020, 22:34:40
Attribut gesetzt!?
Oh manomanomann..... so viele vergeudete Stunden und dann diese einfache Lösung >:(
Also vielen vielen Dank Joachim :)
Ich hab das dämliche Attribut gefunden. :) :)
Das Attribut heisst "burstAccess" und muss auf "1_auto" gesetzt werden.
Funktioniert natürlich :o
Tja... ;)
Oft so...
Dann noch viel Spaß, Joachim