NEWS
Überprüfen ob Aktor Steuerbefehl erhalten hat...
-
@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
dass ich nicht verlässlich meine Rolladen steuern kann, ab und an bleiben, obwohl der Befehl gesendet wird die Rolladen zu schließen, die ein oder andere Rollade oben.
Dazu müsste man mehr wissen.
Bei Homematic soll man nie alle Befehle auf einmal senden, das führt zur Überlastung der Frequenz und zu Missverständinssen in der Kommunikation.
- Hast du ALLE Rollläden versucht zeitgleich zu steuern?
- sind es immer die selben Rollläden?
- sind idese es IMMER?
-
@Homoran herzlichen Dank für die schnelle Antwort.
Alleine aus den Fragen, lässt sich schon ableiten welche potenziellen Fehler ich mache
ja, ich habe alle Rolladen gleichzeitig "angefunkt" - was wäre ein guter Versatz?
nein, nicht immer mal der eine mal der andere, aber meistens diejenigen, die etwas "abgelegener" im Haus liegen (also von der CCU aus gesehen)
mal funktioniert es und alle sind unten mal nichtAber selbst wenn ich nun alle mit Versatz "anfunke", wie stelle ich sicher, dass auch wirklich alle unten sind und falls nicht, wie stoße ich den Befehl noch einmal an bis wirklich alles so ist, wie es sein soll? Also programmiertechnisch smart?
VG
AnamCara -
@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
die etwas "abgelegener" im Haus liegen (also von der CCU aus gesehen)
mal funktioniert es und alle sind unten mal nichtdann gehe mal auf die CCU unter Systemsteuerung und devconfig und suche da nach rssi (jetzt aus dem Kopf)
dort wird gezeigt wie gut der Empfang ist@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
was wäre ein guter Versatz?
einige Sekunden.
Wenn du zulange wartest kommt die Bestätigung vom Aktor "bin unten" und kollidiert.@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
wie stoße ich den Befehl noch einmal an bis wirklich alles so ist, wie es sein soll? Also programmiertechnisch smart?
Es sollte auch beim ersten mal eigentlich abgefragt werden ob der Rollladen nicht bereits unten ist, bevor er nach unten geschickt wird um den Duty Cycle zu minimieren.
Wenn der Befehl allerdings korrekt gesendet wurde und nur nicht angekommen ist, steht in der CCU auch schon "bin unten".
Eine weitere Abfrage darauf ist nicht von Erfolg gekrönt.
Allerdings sollte dann eine Kommunikationsstörung gemeldet worden sein. -
-
@Homoran said in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
dann gehe mal auf die CCU unter Systemsteuerung und devconfig und suche da nach rssi (jetzt aus dem Kopf)
dort wird gezeigt wie gut der Empfang istMhmh, das kann ich nicht finden, Du meinst doch die WEBUI?
@paul53 said in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Versuche es mal so:
Das schau ich mir mal später an...
Herzlichen Dank erst mal!
-
@AnamCara Hallo,
auch ich hatte anfangs ähnliche Probleme mit den Rolladenaktoren.
Zwar sind bei mir diejenigen von Homematic (ohne IP) verbaut, aber möglicher Weiße können dir diese Infos weiterhelfen. Eine Lösung mittels Skript wie von dir gewünscht ist weiter unten-
Homematic Funkgeräte wünschen untereinander einen Mindestabstand von 20 cm.
Wusste das beim Kauf nicht und habe diese Aktoren in einer Berker Leiste nebeneinander verbaut, versetzen wollte ich diese Beiden aus ästhetische Gründe nicht.
Das Zeitliche versetzen der Startbefehle für mehreren Rolladen ist sinnvoll, half aber bei der Lösung des Problem nicht wirklich viel. Die Situation verbesserte sich ein wenig. Abhilfe schaffte das ausbauen und um 180 Grad wieder montieren des Aktors. Abdeckplatte passt auch umgedreht und die Internen Tasten des Aktors können in der CCU konfiguriert werden.
Als Zeitversatz habe ich 40 Sekunden gewählt, meine Rolladen brauchen um die 30 Sekunden von Level 0-100. So stelle ich sicher dass jedes Rollo nur einzeln fährt. Funkbefehle gibt es auch während der Fahrt. -
Ablauf der Befehle (so weit ich mitbekommen bin)
Eingabe eines Werts in Objekt "LEVEL"
a) CCU erteilt Befehl an Aktor den eingegebenen Wert anzusteuern
b) CCU erhält während- und beim Abschluss der Aktion Updtates zum Wert von Objekt bzw. Rückmeldungen.
Läuft alles normal blinkt im iobroker der Wert dieses Objekts nach Status-Änderungen kurz auf. Bleiben die Rückmeldungen aus wird der Wert rot dargestellt. In der CCU wirst du die Fehlermeldung "Kommunikationsstörung" finden.
Du kannst diese Tatsache beim erstellen der Skripte berücksichtigen.
Es ist möglich den anerkannt Status eines Objekt abzufragen. Falls es mal ein "nicht anerkannt" geben sollte, Befehl wiederholen. Bei einen zweiten Versuch wird das ganze auch klappen. (Anerkannt bei Trigger: "Update" für aktualisiere Objekt ID bzw. "Befehl" für steuere Objekt ID)
Ob's Störung gab kannst man in der CCU immer noch verfolgen. Dort wird in diesem Fall die Fehlermeldung "Kommunikation WAR gestört" gelistet sein.
Zu HM-IP: Ich hab vier Stück Unterputz Schaltaktoren. Diese reagierten sporadisch nicht mehr. Ein Triggern von "nicht-anerkannt" nutzte bei diesen Geräten nicht weshalb durch unbegrenzte Schaltbefehlen der Duty Cylke stark anstieg. Sicherheitshalber empfehle ich dir in deinen Skripte die anzahl der Versuche zu limitieren.Abhilfe verschaffte letztendlich das versetzen der CCU zentraler in der Wohnung. Fehlermeldungen sind sehr sehr selten geworden.
Testweise habe ich den umgedrehten Rolloaktor wieder gerade gestellt.
CCU mitten in der Wohnung kein Problem; CCU an ursprünglichen Standort Probleme treten wieder auf.
(Aktor ist nahe an einen Anderen Aktor verbaut, jedoch nicht wie bei dir entfernt von CCU) -
-
@DAN78 sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Homematic Funkgeräte wünschen untereinander einen Mindestabstand von 20 cm.
Das ist so nicht korrekt.
Dieser Abstand bezieht sich auf einen Sender und einen Empfänger, die mit Direktverknüpfung verbunden sind.
(z.B. Wandtaster mit dahinter liegendem Schaltaktor)wenn es nur Aktoren sind ist es kein Problem diese in einen Mehrfach-Rahmen unterzubringen.
Allerdings weiß ich nicht wie es bei HmIP aussieht, da alle PBU getrennte Bedientaster und Aktoren haben, die nicht mehr hardwaremaäßig, sondern über eine interne DV verbunden sind.
Da das aber so designed ist, sollte es auch keine Probleme machen -
Die Abstände wären gegeben, denn es sind ja Rolladen-Aktoren die betroffen sind und jedes Fenster ist mehr als 20cm voneinander entfernt (auch die Schalter/Aktoren).
Neben der CCU sind noch zwei Steckdosen als Repeater eingebunden.
Ich hoffe ich finde heute noch die Zeit um die Code-Schnipsel anzuschauen und aus zu probieren.
Herzlichen Dank für Eure Hilfe! -
@Homoran danke
-
@Homoran sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
@DAN78 sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Homematic Funkgeräte wünschen untereinander einen Mindestabstand von 20 cm.
Das ist so nicht korrekt.
Dieser Abstand bezieht sich auf einen Sender und einen Empfänger, die mit Direktverknüpfung verbunden sind.
(z.B. Wandtaster mit dahinter liegendem Schaltaktor)wenn es nur Aktoren sind ist es kein Problem diese in einen Mehrfach-Rahmen unterzubringen.
Allerdings weiß ich nicht wie es bei HmIP aussieht, da alle PBU getrennte Bedientaster und Aktoren haben, die nicht mehr hardwaremaäßig, sondern über eine interne DV verbunden sind.
Da das aber so designed ist, sollte es auch keine Probleme machenDanke
-
@DAN78 said in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Sicherheitshalber empfehle ich dir in deinen Skripte die Anzahl der Versuche zu limitieren.
Guten Morgen,
ich hatte erst noch ein anderes Problem zu lösen, meine Skripte liefen gar nicht mehr. Ich hatte eine einfache Steuerung mit der Astro-Funktion gebaut und darunter dann die ganzen "Steuere Objekt ID"'s liegen. Als ich aber eine CRON Zeitsteuerung darüber gesetzt hatte ging nichts mehr. Also habe ich erst mal den CRON wieder herausgenommen, da die Vierschachtelung wohl nicht funktionierte.
Danach habe ich mir mal Dein Skript angesehen. Schlussendlich habe ich es etwas anders umgesetzt, denn ich denke mal in Deinem Skript geht es darum individuell die Behanghöhe "Neue Zielposition" eingeben zu können und dann geht die Steuerung los...
Bei mir soll das ganze "erst einmal" etwas statischer von statten gehen und ich habe das nun so gesetzt:Im Grunde sollte das Rollo ja den Befehl zum steuern der Behanghöhe erhalten haben wenn es danach in Bewegung ist.
(P.S. was macht denn "anerkannt von Objekt ID" ?)Wenn das so okay ist, müsste ich das nun für 12 Rolladen machen. Ich denke mal den Block jetzt 11 mal zu kopieren und abzuändern ist aus Sicht eines Programmierers nicht das gelbe vom Ei. Ich bin zwar kein Programmierer aber ich habe genug Code gesehen um zu erahnen, dass eine Schleife oder besser wohl ein Array mit den Rolladen besser wäre?
Das Skript oben habe ich jetzt noch nicht richtig testen können, denn es funktioniert im Moment direkt beim ersten Lauf ich hatte zunächst Dein Skript zu quasi 100% übernommen, aber dabei wurde nie ins Log geschrieben, das es gerade der 2.,3.,4. oder 5. Versuch ist der läuft, es kam immer die Meldung Störung, obwohl der Rolladen noch bei der Arbeit war, deshalb habe ich den Intervall nach oben korrigiert.
-
@AnamCara Hallo,
Das "anerkannt von Objekt ID" gibt Rückmeldung ob dein Befehl ausgeführt wurde
In deinem Skript oben fragst du ab ob das Rollo läuft. Mit activiti up/down...
So was probierte ich auch mal für eine andere Anwendung, funktionierte dann nicht wirklich.Mein Lösungsansatz zu deiner Frage: "Wie stellt ihr sicher, dass das Rollo auch wirklich gefahren ist." war folgender.
- Die Rollade fährt.
- Nach ein paar Minuten wird kontrolliert ob die aktuelle Bahnhöhe der angesteuerten entspricht, und ob diese per Rückmeldung bestätigt sei.
- Falls nicht zurück zu punkt 1
Falls du unter "meinem Skript" hingegen das Rolladenskript meitest welches ich 2018 hochgeladen habe,
bitte ich dich dieses nicht zu verwenden! Das beinhaltet Astro und mehrere Spielereien.
Zwar funktioniert es, ist aber für den Zweck viel zu unübersichtlich, wenn nicht schlecht ausgeführt.
Das war damals mein erstes Programm ich konnte es nicht besser.Aktuell bin ich dabei ein neues Rolladenskript zu erstellen, werde dann den Schinken im Post ersetzen. Habe nicht die Berechtigung meine Posts zu löschen.
-
@DAN78 sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Habe nicht die Berechtigung meine Posts zu löschen.
aber ich
Aber ich bin der Meinung, dass so etwas archiviert gehört.
Erstens zeigt es, dass man sich entwickelt, zum anderen kann man es immer wieder als Basis für anderes nutzen
und zum dritten zerstört das Löschen ggf. den Sinninhalt des folgenden Threads -
@Homoran Da gebe ich dir vollkommen Recht. Es ist aber auch so, dass man den Leuten hier nur gutes weiter geben möchte
-
@AnamCara Probier mal das Skript. Ich glaube du wolltest das haben
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="fGkS8jJx-UC*s0yHpdv*">var_neue_Behanghoehe</variable> <variable type="" id="Yyk;+Ej*G^q;$$=E8S}l">var_Anzahl_Versuche</variable> <variable type="undefined" id="Intervall_weiterer_Versuch">Intervall_weiterer_Versuch</variable> </variables> <block type="variables_set" id="e8dE+dd:bTXjxgRb9~4?" x="-438" y="37"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> <value name="VALUE"> <block type="math_number" id="dj3~OilSG7CKfWwMQOk@"> <field name="NUM">70</field> </block> </value> <next> <block type="schedule" id="TCe,*CJa}b+Jd_3e(#;G"> <field name="SCHEDULE">49 15 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="L$.KI`y*kgR#nR0BX3JJ"> <value name="IF0"> <block type="logic_compare" id="Q3A1x?oUTFLHLZ}%{|ux"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="X_oyMKvcM,J#8,+-.EqH"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="e6n%9(6~|$SO(B-Z#7NM"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D|P8C=#ml5QYhj{$EMuR"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="QahG?%RGy:~Q*qb{l,f^"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="?z|?eaHf-CB^X)WwSmsq"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="dNW](`0}~]2aq:]KjY1("> <field name="TEXT">1. Versuch</field> </shadow> </value> <next> <block type="variables_set" id="gMbk;?$z_[Af8pEA1Mpy"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="VALUE"> <block type="math_number" id="R(Hl|}rF20EbED5,:?)f"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_setinterval" id="26zz;Qjv:Ae:EPjV)},K"> <field name="NAME">Intervall_weiterer_Versuch</field> <field name="INTERVAL">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="math_change" id="${[B@86#A~$X%^If(XZ{"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="DELTA"> <shadow type="math_number" id="V,mJT1/f?=TkL*V2!62T"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="TNQkz1~2HtsEWy]7~gGu"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="O2yuL1;z2nk3kkw{+{.^"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="a?hCtQF?1_S(Fqwa*fXa"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Dwq77@qs?FOIPh+]vBn#"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="B"> <block type="math_number" id="_@,w5,-[?Hi))Vs9:?_i"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K`|`?6#+WZ:]~378XENY"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="eB35z2Gz-9pKG@|rRX]0"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="|H)xi=7Vc?]F+(}x#fWx"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="LPoX~di|oNj$[!i{rTPT"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="x/4L5EMrB=Z]%g^}Eox~"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="-o-^OGwdRTOp2[|+Wro."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=";xPlZCpA^7Asu6v`DK:%"> <field name="TEXT">1. Versuch</field> </shadow> <block type="text_join" id="+Y[_X9ky{vf]4ahC-NuS"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="x8(Q!|R!{:VrD6AK,@D@"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="ADD1"> <block type="text" id="/(PHvCiQv)2Q7+XN-ImP"> <field name="TEXT">. Versuch</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="0o,:CCsd[6[VLU4E8#Uz"> <field name="NAME">Intervall_weiterer_Versuch</field> <next> <block type="debug" id="s/5zpJ!M@jhY*ib5/g]N"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="D|6rcCb|b@ax^xIM#/fU"> <field name="TEXT">Rolladen Buero Joerg verzeichnet eine Störung!</field> </shadow> </value> <next> <block type="debug" id="PFQeInC2-=9KZr$hCYea"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="o,uR+N]%2dAY#0--NRZu"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="on_ext" id="+.-r#/(bd(1;%iji|@OG"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="F}2pd5:IApGH#fdP7Kea"> <field name="oid">hm-rpc.0.PEQ0005311.1.WORKING</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="cI$Iy0K*u5qH)k}4+}5Y"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="EY69Ml6`|vHhmrcu{g:e"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="debug" id="?W;z^Nfw#ojq2W+b@oID"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="h3arA9hGdT|2^mmI|W#N"> <field name="TEXT">Rolladen in Aktion</field> </shadow> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="|nw:k=p~Yn6,8{1`!q9e"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="g(+XF=#sOL_t5bVJ;.?A"> <value name="BOOL"> <block type="on_source" id="i;:o=-y%9gA}A-R9p7qR"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="?n9YB~5~.R2i{pch#0$1"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="|VUq.Z5l`]Gf#V[e;3xv"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="bc.gU,7!}/an!aG1hXFN"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.PEQ0005311.1.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="debug" id="n*~m:g:BfTs0_`]=stW~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*_Y#R].#=_ek)LQ#(s%="> <field name="TEXT">Rolladen ist auf Behanghoehe.</field> </shadow> </value> <next> <block type="debug" id="M4Zv{r5[qetQXav^BD;5"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="5=|n{7v:BacBXfuYT%(L"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
Dankeschön @DAN78
nur eine kurze Rückfrage ich habe leider kein .WORKING objekt das ich abfragen kann in HMip oder habe ich etwas übersehen?
Wenn ich das Skript ausführe, dann laufen gleich alle 1-5 Versuche durch, ich habe deshalb den Intervall von 2 Sek. auf 2 Minuten geändert. Bei mir habe ich dann anstelle von WORKING den ACTIVITY__STATE gewählt. Jetzt kommt im Log dann nur noch folgendes
javascript.0 2020-04-24 07:57:15.215 info (878) script.js.Test.Pruefung: Rolladen in Aktion
javascript.0 2020-04-24 07:57:00.213 info (878) script.js.Test.Pruefung: Rolladen in Aktion
javascript.0 2020-04-24 07:57:00.025 info (878) script.js.Test.Pruefung: 1. VersuchSollte mich der zweite "Rolladen in Aktion" Eintrag stören?
-
Zum zweiten Log-Eintrag:
Was hast du im Trigger? (Objekt ID geändert oder aktualisiert / anerkannt egal oder update)Habe die von HM (ohne IP), kann oder wird sein dass die Datenpunkte nicht identisch sind.
Activity wird bei HMIP vermutlich dieselbe Funktion haben wie Working und Stop bei HM.
Du kannt das Ganze evtl auch mit Direction verknüpfen. (states: 0=NONE; 1=UP; 2=DOWN; 3=UNDEFINED)Hatte die 2 Sekunden in Intervall um das Blockly zu testen.
-
@DAN78 sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Was hast du im Trigger? (Objekt ID geändert oder aktualisiert /
Ich habe als Trigger "Falls Objekt Rolladen.Buero.Joerg:4.ACTIVITY_STATE wurde geändert".
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="fGkS8jJx-UC*s0yHpdv*">var_neue_Behanghoehe</variable> <variable type="" id="Yyk;+Ej*G^q;$$=E8S}l">var_Anzahl_Versuche</variable> <variable type="undefined" id="Intervall_weiterer_Versuch">Intervall_weiterer_Versuch</variable> </variables> <block type="variables_set" id="e8dE+dd:bTXjxgRb9~4?" x="-438" y="37"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> <value name="VALUE"> <block type="math_number" id="dj3~OilSG7CKfWwMQOk@"> <field name="NUM">100</field> </block> </value> <next> <block type="schedule" id="TCe,*CJa}b+Jd_3e(#;G"> <field name="SCHEDULE">57 7 * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="L$.KI`y*kgR#nR0BX3JJ"> <value name="IF0"> <block type="logic_compare" id="Q3A1x?oUTFLHLZ}%{|ux"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="X_oyMKvcM,J#8,+-.EqH"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="e6n%9(6~|$SO(B-Z#7NM"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.00111A49A48768.4.LEVEL</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="D|P8C=#ml5QYhj{$EMuR"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.1.00111A49A48768.4.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="QahG?%RGy:~Q*qb{l,f^"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="?z|?eaHf-CB^X)WwSmsq"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="dNW](`0}~]2aq:]KjY1("> <field name="TEXT">1. Versuch</field> </shadow> </value> <next> <block type="variables_set" id="gMbk;?$z_[Af8pEA1Mpy"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="VALUE"> <block type="math_number" id="R(Hl|}rF20EbED5,:?)f"> <field name="NUM">1</field> </block> </value> <next> <block type="timeouts_setinterval" id="26zz;Qjv:Ae:EPjV)},K"> <field name="NAME">Intervall_weiterer_Versuch</field> <field name="INTERVAL">2</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="math_change" id="${[B@86#A~$X%^If(XZ{"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> <value name="DELTA"> <shadow type="math_number" id="V,mJT1/f?=TkL*V2!62T"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="TNQkz1~2HtsEWy]7~gGu"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="O2yuL1;z2nk3kkw{+{.^"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="a?hCtQF?1_S(Fqwa*fXa"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Dwq77@qs?FOIPh+]vBn#"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="B"> <block type="math_number" id="_@,w5,-[?Hi))Vs9:?_i"> <field name="NUM">5</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="K`|`?6#+WZ:]~378XENY"> <field name="OP">NEQ</field> <value name="A"> <block type="variables_get" id="eB35z2Gz-9pKG@|rRX]0"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="|H)xi=7Vc?]F+(}x#fWx"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.00111A49A48768.4.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="LPoX~di|oNj$[!i{rTPT"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.1.00111A49A48768.4.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="x/4L5EMrB=Z]%g^}Eox~"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <next> <block type="debug" id="-o-^OGwdRTOp2[|+Wro."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=";xPlZCpA^7Asu6v`DK:%"> <field name="TEXT">1. Versuch</field> </shadow> <block type="text_join" id="+Y[_X9ky{vf]4ahC-NuS"> <mutation items="2"></mutation> <value name="ADD0"> <block type="variables_get" id="x8(Q!|R!{:VrD6AK,@D@"> <field name="VAR" id="Yyk;+Ej*G^q;$$=E8S}l" variabletype="">var_Anzahl_Versuche</field> </block> </value> <value name="ADD1"> <block type="text" id="/(PHvCiQv)2Q7+XN-ImP"> <field name="TEXT">. Versuch</field> </block> </value> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_clearinterval" id="0o,:CCsd[6[VLU4E8#Uz"> <field name="NAME">Intervall_weiterer_Versuch</field> <next> <block type="debug" id="s/5zpJ!M@jhY*ib5/g]N"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="D|6rcCb|b@ax^xIM#/fU"> <field name="TEXT">Rolladen Buero Joerg verzeichnet eine Störung!</field> </shadow> </value> <next> <block type="debug" id="PFQeInC2-=9KZr$hCYea"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="o,uR+N]%2dAY#0--NRZu"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="+.-r#/(bd(1;%iji|@OG"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION">true</field> <value name="OID0"> <shadow type="field_oid" id="F}2pd5:IApGH#fdP7Kea"> <field name="oid">hm-rpc.1.00111A49A48768.4.ACTIVITY_STATE</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="cI$Iy0K*u5qH)k}4+}5Y"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="EY69Ml6`|vHhmrcu{g:e"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="debug" id="?W;z^Nfw#ojq2W+b@oID"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="h3arA9hGdT|2^mmI|W#N"> <field name="TEXT">Rolladen in Aktion</field> </shadow> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="|nw:k=p~Yn6,8{1`!q9e"> <field name="OP">AND</field> <value name="A"> <block type="logic_negate" id="g(+XF=#sOL_t5bVJ;.?A"> <value name="BOOL"> <block type="on_source" id="i;:o=-y%9gA}A-R9p7qR"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="?n9YB~5~.R2i{pch#0$1"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="|VUq.Z5l`]Gf#V[e;3xv"> <field name="VAR" id="fGkS8jJx-UC*s0yHpdv*" variabletype="">var_neue_Behanghoehe</field> </block> </value> <value name="B"> <block type="get_value" id="bc.gU,7!}/an!aG1hXFN"> <field name="ATTR">val</field> <field name="OID">hm-rpc.1.00111A49A48768.4.LEVEL</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="debug" id="n*~m:g:BfTs0_`]=stW~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="*_Y#R].#=_ek)LQ#(s%="> <field name="TEXT">Rolladen ist auf Behanghoehe.</field> </shadow> </value> <next> <block type="debug" id="M4Zv{r5[qetQXav^BD;5"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="5=|n{7v:BacBXfuYT%(L"> <field name="TEXT">Intervall/Skript Ende</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </xml>
Wo kann man eigentlich mal nachlesen, welchen Kanal man wann verwendet und wofür diese gut sind? Ich finde bei eQ3 nicht wirklich eine gute Beschreibung von Aktoren und den Funktionen/Kanälen...
-
Nachdem ich nun einfache Verzögerungen (jeweils 5 Sekunden) eingebaut habe ist das Problem nicht mehr aufgetreten.
@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Wo kann man eigentlich mal nachlesen, welchen Kanal man wann verwendet und wofür diese gut sind? Ich finde bei eQ3 nicht wirklich eine gute Beschreibung von Aktoren und den Funktionen/Kanälen...
-
@AnamCara sagte in Überprüfen ob Aktor Steuerbefehl erhalten hat...:
Ich finde bei eQ3 nicht wirklich eine gute Beschreibung von Aktoren und den Funktionen/Kanälen...
bei HomeMatic gibt es ein Programmierhandbuch (Teil4 Datenpunkte) in dem alles sehr asuführlich dokumentiert ist.
für IP gibt es auch so etwas, das ist schon fast ein Telefonbuch.Ansonsten auf der CCU unter Einstellungen - Geräte das entsprechende Gerät aufrufen, dann steht dort üblicherweise zu jedem Kanal zumindest der mehr oder weniger aussagekräftige Bezeichner