NEWS
Zeitdifferenz ohne Variable als Bedingung in Blockly
-
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Ehrlich jetzt
ja!
lies dir doch mal den Thread durch, was wir dir alles aus der Nase ziehen mussten, und was noch für offene Fragen sind.
Für dich ist klar was du willst.
Aber für HM, Hue und ioBroker braucht es exakte strukturierte Fakten. Da kommt es auf Fe7nheiten an, ob und wie es umgesetzt werden muss/kann. -
Ich gebe mir ab sofort mehr Mühe, sorry!
Ich habe jetzt mal versucht, den Vorschlag von Codierknecht umzusetzen. Siehe hier:
Leider bekomme ich auch hier wieder die Dauerschleife - an - aus - an - aus.
Habe ich hier einen Fehler drin? -
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Leider bekomme ich auch hier wieder die Dauerschleife - an - aus - an - aus.
Bitte sag uns genau was du versuchst.
und was passiert -
Dauerschleife - an - aus - an - aus
In beiden Fällen?
Beim Dimmen oder Schalten?
Das ist schon ein Unterschied.Du dürftest wohl kaum jemanden finden, der so ein seltsames Konstrukt im Einsatz hat.
Daher ist das alles blanke Theorie.Also mal step by step:
Du schaltest am HM einfach ein.
Der Level sollte dann auf 100% gehen.
Der Trigger reagiert darauf. Da der Wert sich innerhalb von 2 Sekunden nicht verändert, wird kein Timeout abgebrochen und der Hue ebenfalls auf 100 % gesetzt.
Der Trigger des Hue sollte zwar feuern, aber nix machen weil durch Script gesetzt.
Das dürfte der Denkfehler sein. Nimm beim Hue mal die Prüfung auf Script raus. Der muss ja schalten weil nur an ihm die Lampe hängt, -
Also habe jetzt mal beim Hue den Timeout raus genommen und den Timeout bei Homematic auf 8 Sekunden gesetzt.
Script sieht jetzt so aus:
Verhalten ist jetzt wie folgt:
Ich schalte am Hue ein oder Dimme: In Homematic passiert nichts und die Lampe geht kurz an und geht sofort (vielleicht nach 2 bis 3 Sekunden) wieder aus.
Ich schalte in Homematic ein oder Dimme: Der Zustand in Homematic ändert sich kurz auf An (oder auf den entsprechenden Dimmwert). Die Lampe bleibt aber aus. Homematic geht auch nach ca. 2 bis 3 Sekunden wieder aus. -
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Ich schalte am Hue ein oder Dimme:
nochmal:
soll das "live" synchron laufen (während des continuous Press) oder erst nach loslassenWann liefert hue den Wert an ioBroker?
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Ich schalte am Hue ein
wie gesagt, gibt es den Befehl bei HM nicht!
-
@deifel
Beim Hue muss die Prüfung auf den Ursprung noch raus. Der soll ja in allen Fällen auch tatsächlich schalten.Du denkst daran, dass bei HM für Lesen und Schreiben unterschiedliche Kanäle zuständig sind?
-
@homoran said in Zeitdifferenz ohne Variable als Bedingung in Blockly:
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Ich schalte am Hue ein oder Dimme:
nochmal:
soll das "live" synchron laufen (während des continuous Press) oder erst nach loslassenWann liefert hue den Wert an ioBroker?
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Ich schalte am Hue ein
wie gesagt, gibt es den Befehl bei HM nicht!
Es reicht völlig, wenn das ganze nicht live synchron läuft, sondern nach loslassen der Taste. Da es sich um einen HM Schaltdimmer für Markenschalter handelt, gibt es grundsätzlich ja schon "ein" und "aus".
Auch in Homematic kann ich ein oder aus schalten. Er geht dann auf den letzten bekannten Dimmwert.
Hue liefert den Wert bereits nach ca. 1 bis 2 Sekunden an Iobroker. -
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Es reicht völlig, wenn das ganze nicht live synchron läuft, sondern nach loslassen der Taste
das können wir nicht entscheiden.
Die Frage ist wann hue was an ioBroker meldet.@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Da es sich um einen HM Schaltdimmer für Markenschalter handelt, gibt es grundsätzlich ja schon "ein" und "aus".
nein. Da gibt es nur 0 und 100% und erst wenn der HM auf 100% angekommen ist, meldet er das.
oder ist
@homoran sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Der HM Dimmer von HmIP
-
Nein es ist definitiv ein normaler HM Aktor.
Ich kann also die Schaltwippe betätigen oder in der Oberfläche von Homematic. Dann dauert es kurz (vielleicht 3 Sekunden) und er steht dann auf "ein".Schalte ich in Hue (egal ob App oder über die Fernbedienung/Taster), dann landet es extrem schnell in Iobroker. Schätze 2 Sekunden.
-
@deifel
Bau doch zunächst mal ein paar Debug-Blöcke ein um zu sehen, was wann passiert. -
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
dann landet es extrem schnell in Iobroker. Schätze 2 Sekunden.
wann?
erst beim loslassen, oder kontinuierlich bis zum loslassen?@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Dann dauert es kurz (vielleicht 3 Sekunden) und er steht dann auf "ein".
weil er so lange bis zum Erreichen der Zielhelligkeit dimmt, und erst dann meldet.
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
ein normaler HM Aktor.
die habe ich auch.
Aber einen Datenpunkt ein haben die meines Wissens nicht -
Nein einen Datenpunkt ein haben die nicht, das stimmt. Nur Level.
Ich bleibe ja erst gar nicht auf der Taste drauf. Ich Drücke bei dem Hue Taster nur auf "an" und 2 Sekunden später ist der Wert in Iobroker.
Bei Hue gibts auch nen Datenpunkt für "on" -der bringt aber nix. Außerdem den Wert "Level". Und den will ich ja synchronisieren.
Das ist ne ganz schön schwere Geburt
Ich bin schon am verzweifeln... -
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Nein einen Datenpunkt ein haben die nicht,
eben. deswegen muss HM den Level (langsam) verändern, während
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Bei Hue gibts auch nen Datenpunkt für "on"
der sofort schaltet
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Das ist ne ganz schön schwere Geburt
ja!
-
@deifel
Versuch's mal auf die Art: -
@codierknecht said in Zeitdifferenz ohne Variable als Bedingung in Blockly:
@deifel
Versuch's mal auf die Art:Vielen Dank für Deine Hilfe.
Leider klappt auch das nicht. Hier hauts mir den DC sofort nach oben, weil ich in ner heftigen Dauerschleife lande.
Habe nur mal den Teil für das Schalten von Richtung Hue erstellt um es zu testen.
Ist das so korrekt?
Weil ich verstehe den Sinn dieses Scriptes überhaupt nicht. Welcher Bezug hat denn "Wert"?
-
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Welcher Bezug hat denn "Wert"?
das ist der aktuelle Wert des Triggers zum Zeitpunkt des triggerns
-
@deifel sagte in Zeitdifferenz ohne Variable als Bedingung in Blockly:
Welcher Bezug hat denn "Wert"?
Das ist dieses Element.
Kann man auf "Wert" ändern und erhält damit den Wert des triggernden Objektes.Das Script soll folgendes machen:
Wenn HM geändert wird, wird Hue auf den gleichen Wert gesetzt. Aber nur, wenn Hue nicht schon den gleichen Wert hat.
Bei HM dann halt analog. -
Habe ich verstanden und so gebaut.
Leider exakt selbes Problem: Dauerschleife. Egal, aus welcher Richtung ich schalte. An-Aus-An-Aus... Bis dann der DC oben ist
Eigentlich auch klar, da bei Homematic der Wert "springt" - der geht nicht sofort auf den eingestellten Wert, sondern macht Zwischenschritte. Demnach hüpft er hin und her und das Script spinnt dann.
Wäre es denn möglich, dass wir das mit der Zeitdifferenz zwischen den Zeitstempeln testen?
Wenn das klappt, dann wäre mir geholfen -
Nehmen wir mal folgendes Szenario an:
Bei sind aus (Level = 0%). Im HM war der letzte Wert 50%.
Du schaltest am HM durch kurzen Tastendruck ein. Der geht auf den letzten gespeicherten Wert. Also auf 50%.
Der Trigger reagiert und prüft nun, was im Hue-Level steht.
Dort steht 0% - also setzt das Script den Wert nun ebenfalls auf 50%.Jetzt feuert der Trigger am Hue.
Er guckt auf den Wert in HM und stellt fest: Da steht 50%. Ist der gleiche Wert, also passiert nix.