NEWS
HM Treppenlichtautomat–IoBroker
-
Bei jedem einschalten muss auch die gewünschte Einschaltdauer übergeben werden.
Bei jeder Direktverknüpfung, Tastenbetätigung, Programmsteuerung usw. muss die Einschaltdauer programmiert werden.
Wenn Du über ioBroker einfach rein STATE=ture setzt, dann bedeutet dies dauerhaft ein.
-
Selbst wenn du über die CCU schaltest, musst du wieder über die CCU oder über einen Taster ausschalten. Die Einschaltdauer gibts zwar als Objekt, da wird bei mir, und ich denke generell, nichts reingeschrieben!
Enrico
-
ok
Erst einmal danke für die Infos.
Das heißt also, ich müsste für die Schalter in der VIS ein blockly schreiben und die Einschaltdauer begrenzen.
Ich hatte gedacht das immer die Einstellungen der HM-Geräte übernommen werden.
-
Ich habe einfach ein Skript zu laufen, dass nach der gleichen Zeit, wie die Voreinstellung im Gerät den Aktor ausschaltet. So ist momentan egal, ob die Lampe per Taster oder per Programm eingeschaltet wird, sie geht immer aus.
Enrico
-
Ich hatte gedacht das immer die Einstellungen der HM-Geräte übernommen werden. `
Im Gerät selbst kann man keine generelle Einschaltdauer für alle Situationen hinterlegen.Die Parameter innerhalb der Geräteeinstellungen gelten lediglich für die interne Gerätetaste. Im Fall des HM-LC-Sw1-DR gilt die Einstellung für den angeschlossenen mechanischen Taster. Das ist auch bei einer reinen Steuerung über HM so.
-
@J Riemann:Im Fall des HM-LC-Sw1-DR gilt die Einstellung für den angeschlossenen mechanischen Taster. Das ist auch bei einer reinen Steuerung über HM so. `
gibts den S0 Anschluss als Datenpunkt? dann könnte man ihn evtl darüber schalten und die konfigurierte einschaltdauer dadurch mitnehmen .)
Sent from my iPhone using Tapatalk
-
Wenn ich den HM-LC-Sw1-DR über VIS schalte, bleibt das Licht auch dauerhaft an und
das mache ich mir zu Nutzen und das finde ich sogar sehr gut, für die Treppenhausreinigung zum Beispiel.
Denn dann schaltet sich das Licht nach 3 Minuten (bei mir) nicht wieder aus, was in diesen Fall ja nicht so praktisch wäre.
-
gibts den S0 Anschluss als Datenpunkt? dann könnte man ihn evtl darüber schalten und die konfigurierte einschaltdauer dadurch mitnehmen .) `
Nein, es gibt die ON_TIME und STATE welche vom Nutzer gesetzt werden können.
Die gesamte „Problematik“ betrifft im Prinzip jeden HM-Aktor und nicht nur speziell das hier besprochene Gerät.
Entweder man setzt bei jedem einschalten, egal auf welchem Weg, auch gleich die Einschaltdauer, oder man bedient sich einer „Krücke“. Man könnte z.B. ein Programm oder Skript erstellen welchen den Aktor nach Zeit x abschaltet sobald das Gerät eingeschaltet wurde.
-
Auf ON_TIME reagiert der Aktor aber nicht, oder gibts da einen Trick?
Enrico
-
Hallo,
beim mir funktioniert es mit ON_TIME. Allerdings muss zuerst die Einschaltdauer gesetzt werden (ON_TIME), danach (mit etwas Verzögerung, am besten setStateDelayed()) dann einschalten. Ein Hinweis, der sich dutzendfach im Homematic-Forum findet.
Gruß
Pix
-
Auf ON_TIME reagiert der Aktor aber nicht, oder gibts da einen Trick? `
ON_TIME ist lediglich die Einschaltdauer. Diese gilt immer für das nächste mal wenn der Aktor eingeschaltet wird.Ein typischer Anfängerfehler bei HM… das alleinige setzen der Dauer schaltet nichts ein, es muss ein zusätzlicher Einschaltbefehl erfolgen. Also zuerst die Dauer setzen und dann einschalten, umgekehrt würde es wieder zu unerwünschten Effekten kommen.
-
Naja, als Anfänger würde ich mich nicht mehr bezeichnen, aber eben auch nicht allwissend! :lol:
Wichtig dabei wäre noch, dass der Wert jedesmal gesetzt werden muss, auch wenn er vom letzten Schalten noch drin steht!
Danke für den Tip!
Enrico
-
Wichtig dabei wäre noch, dass der Wert jedesmal gesetzt werden muss, auch wenn er vom letzten Schalten noch drin steht `
Das ist ja nur halb richtig. Wenn die Einschaltdauer an den Aktor übergeben wird, wird damit ein Timer im Aktor gefüttert. Der Timer läuft aber erst los sobald das Gerät eingeschaltet wird. Ist der Timer dann abgelaufen bleibt er leer bis zur neuen Übergabe einer Einschaltdauer. Jede Dauer wir somit nur ein einiges mal verwendet. Der nächste Einschaltbefehl ohne vorheriges setzten der Dauer wäre dann wieder dauerhaft ein.
Wird eine Einschaltdauer übergeben und nicht eingeschaltet, so bleibt der Wert solange gespeichert bis eingeschaltet wird oder die Dauer durch einen neuen Wert überschrieben wird (egal auf welchem Weg).
-
Ok, den Fall hab ich nicht explizit getest. Mir gings im Hinweis darum, dass im ioBroker in den Objekten der Wert weiterhin drin stehen bleibt aber nicht mehr verwendet wird, nach deinem Hinweis hätte ich noch schreiben müssen, dass der Wert allerdings im Gerät bis zum nächsten Einschalten erhalten bleibt und dabei dann auch verwendet wird.
@J Riemann:(egal auf welchem Weg) `
Das kann ich allerdings nicht bestätigen. Beim Einschalten per Taster wurde bei mir im Test eben die im Gerät gespeicherte Zeit verwendet, die gespeicherte Zeit aber nach dem Test noch für das nächste Einschalten, in dem Fall per ioBroker, verwendet wurde. Ich muss allerdings dieser Beobachtung noch hinzufügen, dass der Aktor von mir mal verstellt wurde und erst beim zweiten Tastendruck nach dem Einschalten ausgeht. Da hatte ich mal was verstellt und nicht mehr wirklich danach gesucht, was eigentlich!
Enrico
-
Das kann ich allerdings nicht bestätigen. Beim Einschalten per Taster wurde bei mir im Test eben die im Gerät gespeicherte Zeit verwendet, die gespeicherte Zeit aber nach dem Test noch für das nächste Einschalten,
Das ist ja auch ein ganz anderes Szenario! Wenn Du in den Einstellungen für die Gerätetaste einen Wert hinterlegst, dann gilt dieser Wert natürlich dauerhaft für DIESE Art zu schalten. Gleiches gilt für Direktverknüpfungen… Die Gerätetaste eines "HM-classic" Aktors kann man aber nicht von extern betätigen und den Tastendruck am Gerät auch nicht als Trigger für andere Dinge nutzen (bei HM-IP ist das anders). Die Einstellungen der Gerätetaste sind nichts anderes wie eine interne direkte Verknüpfung zwischen Taste und Relais des Aktors. Die Werte der Direktverknüpfungen haben aber nichts direkt mit dem Datenpunkt ON_TIME im iobroker zu tun. Direktverknüpfungen sind kleine Programme die in den beteiligten Geräten abgelegt sind und auch dort verarbeitet werden. Bei der Gerätetaste und evtl. vorhandenen DV
s wird die Einschaltdauer "fest" eingestellt, bei allen anderen Wegen zu schalten, egal von wo (WebUI, Programm, Skript, App, iobroker usw.) muss halt immer vor dem einschalten die gewünschte Einschaltdauer übergeben werden. Fest eingestellte Werte wäre an dieser Stelle ja auch extrem unflexibel.Das die letzten Werte im iobroker in den Objekten stehen bleiben ist ein ganz anderes Thema. Auch wenn noch ein "alter" Wert eingetragen ist muss dieser explizit nochmal vor jedem einschalten an den Aktor übergeben werden damit das Gerät die Einschaltdauer auch verwendet.
Jedes schalten per "STATE=true" des Aktorkanals wird für dauerhaftes einschalten sorgen wenn nicht vorher eine Einschaltdauer übergeben wurde. Dabei ist es egal ob aus einem Skript, Programm, über die WebUI der CCU, aus einer App heraus und und und geschaltet wird.
Es ist aber absolut egal ob die Einschaltdauer zusammen mit dem Einschaltbefehl oder zeitlich getrennt übertragen wurde. Setzt man z.B. heute eine Einschaltdauer im Aktor, schaltet ihn aber nicht ein, dann bleibt dieser Befehl erhalten bis irgendwann eingeschaltet wird, auch wenn z.B. Tage vergangen sind. Oft wird auch der Fehler gemacht zuerst einzuschalten und dann verzögert um 1 Sekunde die Einschaltdauer zu setzen. In diesem Fall würde das Licht jetzt dauerhaft eingeschaltet werden und die Dauer würde für das nächste einschalten gelten.
@RappiRN:dass der Aktor von mir mal verstellt wurde und erst beim zweiten Tastendruck nach dem Einschalten ausgeht ` Reaktion erst beim 2. Tastendruck kann bei KEINEM HM-Aktor per default eingestellt werden. Keine Ahnung was Du da "verstellt" hast, aber rein per Geräteeinstellungen oder Direktverknüpfung ist dies nicht möglich. Um sowas zu realisieren ist schon eine Programm- oder Skriptsteuerung nötig.
-
Hallo,
vielen Dank für die Diskusion :lol:
Ich muss dann für mich rausfinden wie ich es am besten löse.
Zum einen ist das Argument gar nicht schlecht das man es auernd damit einschalten kann um zB. zu Treppenhaus reinigen
anders soll es auch so sein das wenn ich zum Beispiel in den Keller gehe und Alexa darum gebbeten habe das Licht im kompletten treppenhaus
einzuschalten, das es dann auch wieder aus geht :roll:
Ich schaue mal wie ich das am besten löse, vielleicht eine Schaltung in der VIS "Treppenhaus reinigen" oder so, mal sehen. :lol:
P.S.
Was ich noch fragen wollte, kann man so ein script das die Einschaltdauer begrenzt in der VIS hinterlegen(am Schalter) oder muss ich da ein kleines
blockly schreiben und dann darauf zugreifen.
-
Ich glaube dass du das per Skript lösen musst. Ich habe jedenfalls noch kein Widget gefunden, mit dem zwei Objekte übergeben werden können.
Ich weiß nicht, ob es möglich wäre per Link gleich zwei Objekte zu beschreiben, dann könnte es mit dem Link-Widget gemacht werden.
Enrico
Edit: Hab gerade mal nachgelesen und ausprobiert, man kann ja per Http-Link Befehle senden und da können zwei Befehle gleichzeitig übergeben werden.
Z.B.: http://192.168.178.44:8087/setBulk?hm-r … rettyPrint (du musst natürlich deinen Aktor eingeben!) schaltet bei mir das Flurlicht für 15sek ein. Allerdings erfolgt ja auch eine Ausgabe im Browser. Vielleicht ist das aber schonmal ein Hinweis zum weiterprobieren!
Edit2: Ich glaube die Anleitung so verstanden zu haben, dass mein Beispiel ein Request ist, also eine Antwort kommt, man aber auch einen POST schicken kann, der dann wohl keine Antwort erwartet, dafür sind meine Kenntnisse nicht ausreichend. Die Beschreibung steht in den Infos zum simpleAPI-Adapter!
Vielleicht kommst du ja, oder irgendwer anderes damit weiter!
-
Hallo zusammen
Ich weiss, der Thread ist schon 2 Monate alt, aber ich denke die Lösung für einen Treppenautomaten der auch von VIS/YAHKA etc. geschaltet werden kann, ist aus dem oben genannten eigentlich ganz einfach: Sobald der State des Schalters auf FALSE geht, einfach schon mal "auf Vorrat" den Ausschalttimer ON_TIME setzen.
Hier ein Blockly
! ````
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="5tZz0}.ut,]Fu=6Q-kvN" x="-612" y="-413"><mutation items="1"></mutation>
<field name="CONDITION">ne</field><value name="OID0"><shadow type="field_oid" id="^u2,LMoN`A27G0U57!ON"><field name="oid">default</field></shadow> <block type="field_oid" id="#iV5+.HNEj,7;;l:S`c)"><field name="oid">hm-rpc.2.JEQ0297642.1.STATE</field></block></value> <statement name="STATEMENT"><block type="controls_if" id="Sh:dCjG/-^;J[2qda(lw"><value name="IF0"><block type="logic_compare" id="}cPegQ((piYeG.}d!(NI"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="76j2lNv.;]~qL5=o.g~7"><field name="ATTR">val</field> <field name="OID">hm-rpc.2.JEQ0297642.1.STATE</field></block></value> <value name="B"><block type="logic_boolean" id="wR_8haojXT^HTcu?oeJ!"><field name="BOOL">FALSE</field></block></value></block></value> <statement name="DO0"><block type="debug" id="GqrPgm)5S}(9yO!ETeOk"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="yw!-0xl+7k0Q-O9BaBwc"><field name="TEXT">Kellerlicht.STATE war false, ON_TIME auf 300 gesetzt</field></shadow></value> <next><block type="control" id="H0|+pc)m8Gbp8g0aGdG_"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.2.JEQ0297642.1.ON_TIME</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">TRUE</field> <value name="VALUE"><block type="math_number" id="v!#jeh,6b5/.ifjy*g%w"><field name="NUM">300</field></block></value></block></next></block></statement></block></statement></block></xml>
Gruss Kneip