NEWS
Verbesserungsvorschläge für ein Script
-
Hallo,
ich hatte ja schon seit längerem vor, meine Sonoff TX Ultimate etwas zu pimpen. Nachdem ich etwas in einer "Sackgasse" steckte und versucht habe undefinierbare Zahlenkombinationen des Matter-Adapters die die Farbe des Backlights definieren zu entschlüsseln, habe ich mich nun entschieden einen anderen Weg, unwahr den über die URL des Schalters, zu gehen.Herausgekommen ist folgendes Blockly mit dem ich den geschalteten Channel am Schalter durch rote LEDs visualisiere.
Ich spare mir erstmal die Mühe und erkläre die einzelnen Schritte. Ich denke das relevante ist zu erkennen. Darum werfe ich einfach mal so das Blockly "in den Raum"


Wenn irgendwas nicht so ersichtlich ist, bitte fragen.
Ich habe zwei Fragen an die Blockly-Experten unter euch:
-
Kann man das Script vereinfachen oder ist es so optimiert genug? Das ist mein erstes Script in der Größenordnung. Darum hätte ich gerne eine Einschätzung ob es so sinnvoll aufgebaut ist.
-
Das Script bezieht sich ja nur auf einen Schalter. Ich habe nur leider mehrere von den Schaltern verbaut. Das Ziel ist es natürlich, alle Schalter so zu optimieren. Es sind sowohl 1Ch-, 2Ch- und auch weitere 3Ch vorhanden. Lassen sich die anderen in das vorhandene Script "integrieren" oder muss ich für jeden Schalter ein eigenes Script erstellen?
-
-
Hallo,
ich hatte ja schon seit längerem vor, meine Sonoff TX Ultimate etwas zu pimpen. Nachdem ich etwas in einer "Sackgasse" steckte und versucht habe undefinierbare Zahlenkombinationen des Matter-Adapters die die Farbe des Backlights definieren zu entschlüsseln, habe ich mich nun entschieden einen anderen Weg, unwahr den über die URL des Schalters, zu gehen.Herausgekommen ist folgendes Blockly mit dem ich den geschalteten Channel am Schalter durch rote LEDs visualisiere.
Ich spare mir erstmal die Mühe und erkläre die einzelnen Schritte. Ich denke das relevante ist zu erkennen. Darum werfe ich einfach mal so das Blockly "in den Raum"


Wenn irgendwas nicht so ersichtlich ist, bitte fragen.
Ich habe zwei Fragen an die Blockly-Experten unter euch:
-
Kann man das Script vereinfachen oder ist es so optimiert genug? Das ist mein erstes Script in der Größenordnung. Darum hätte ich gerne eine Einschätzung ob es so sinnvoll aufgebaut ist.
-
Das Script bezieht sich ja nur auf einen Schalter. Ich habe nur leider mehrere von den Schaltern verbaut. Das Ziel ist es natürlich, alle Schalter so zu optimieren. Es sind sowohl 1Ch-, 2Ch- und auch weitere 3Ch vorhanden. Lassen sich die anderen in das vorhandene Script "integrieren" oder muss ich für jeden Schalter ein eigenes Script erstellen?
@Stefan341 sagte: Lassen sich die anderen in das vorhandene Script "integrieren" oder muss ich für jeden Schalter ein eigenes Script erstellen?
Sie lassen sich in ein Skript integrieren, es ist aber übersichtlicher, jeweils eigene Skripte vorzusehen.
@Stefan341 sagte in Verbesserungsvorschläge für ein Script:
ist es so optimiert genug?
Nein.
Werte, die mehr als einmal verwendet werden, setzt man in Variablen und verwendet anschließend nur die Variablen.
"httpGet" führt man nur einmal zum Schluss aus und übergibt per Variable die URL, die abhängig von den Bedingungen konstruiert wird. Ich nehme an, dass jeweils nur eine URL gesendet werden soll?Prinzip:

Wo wird die Variable Schalterfarbe gesetzt?
EDIT: Wird bei "nicht tx" immer die gleiche URL erzeugt? In dem Fall ließe sich die Logik vereinfachen.
-
-
@Stefan341 sagte: Lassen sich die anderen in das vorhandene Script "integrieren" oder muss ich für jeden Schalter ein eigenes Script erstellen?
Sie lassen sich in ein Skript integrieren, es ist aber übersichtlicher, jeweils eigene Skripte vorzusehen.
@Stefan341 sagte in Verbesserungsvorschläge für ein Script:
ist es so optimiert genug?
Nein.
Werte, die mehr als einmal verwendet werden, setzt man in Variablen und verwendet anschließend nur die Variablen.
"httpGet" führt man nur einmal zum Schluss aus und übergibt per Variable die URL, die abhängig von den Bedingungen konstruiert wird. Ich nehme an, dass jeweils nur eine URL gesendet werden soll?Prinzip:

Wo wird die Variable Schalterfarbe gesetzt?
EDIT: Wird bei "nicht tx" immer die gleiche URL erzeugt? In dem Fall ließe sich die Logik vereinfachen.
@paul53
Danke erstmal für deine Verbesserungen.@paul53 sagte in Verbesserungsvorschläge für ein Script:
Werte, die mehr als einmal verwendet werden, setzt man in Variablen und verwendet anschließend nur die Variablen.
"httpGet" führt man nur einmal zum Schluss aus und übergibt per Variable die URL, die abhängig von den Bedingungen konstruiert wird.Das werde ich mal versuchen zu optimieren.
@paul53 sagte in Verbesserungsvorschläge für ein Script:
Ich nehme an, dass jeweils nur eine URL gesendet werden soll?
Für jeden Channel wird eine bestimmte URL gesendet wenn er eingeschaltet wird, und eine andere (aber auch für jeden Channel individuelle) wenn er ausgeschaltet wird.
(Das wäre die Funktionsweise tagsüber)Nachts läuft grundsätzlich ein Animationslicht im Schalter, aber nur wenn alle Channel aus sind. Wann es läuft, wird durch den Datenpunkt "TX Ultimate BG-Bel EG" bestimmt. Wenn 1 -> Animation an, wenn 0 ->Animation aus.
Wenn jetzt ein Channel auf 1 geht, muss Ch4 mit 0 gesteuert werden um die Animation zu beenden und danach die individuelle URL (wie tagsüber) aufgerufen werden.Wenn alle Channel 0 sind, wird eine andere URL gesendet, um die Animation wieder zu starten.
@paul53 sagte in Verbesserungsvorschläge für ein Script:
Wo wird die Variable Schalterfarbe gesetzt?
Ganz oben im Script. Das ist aber nur ein "Setze Variable Schalterfarbe auf FF0000".
-
@paul53
Danke erstmal für deine Verbesserungen.@paul53 sagte in Verbesserungsvorschläge für ein Script:
Werte, die mehr als einmal verwendet werden, setzt man in Variablen und verwendet anschließend nur die Variablen.
"httpGet" führt man nur einmal zum Schluss aus und übergibt per Variable die URL, die abhängig von den Bedingungen konstruiert wird.Das werde ich mal versuchen zu optimieren.
@paul53 sagte in Verbesserungsvorschläge für ein Script:
Ich nehme an, dass jeweils nur eine URL gesendet werden soll?
Für jeden Channel wird eine bestimmte URL gesendet wenn er eingeschaltet wird, und eine andere (aber auch für jeden Channel individuelle) wenn er ausgeschaltet wird.
(Das wäre die Funktionsweise tagsüber)Nachts läuft grundsätzlich ein Animationslicht im Schalter, aber nur wenn alle Channel aus sind. Wann es läuft, wird durch den Datenpunkt "TX Ultimate BG-Bel EG" bestimmt. Wenn 1 -> Animation an, wenn 0 ->Animation aus.
Wenn jetzt ein Channel auf 1 geht, muss Ch4 mit 0 gesteuert werden um die Animation zu beenden und danach die individuelle URL (wie tagsüber) aufgerufen werden.Wenn alle Channel 0 sind, wird eine andere URL gesendet, um die Animation wieder zu starten.
@paul53 sagte in Verbesserungsvorschläge für ein Script:
Wo wird die Variable Schalterfarbe gesetzt?
Ganz oben im Script. Das ist aber nur ein "Setze Variable Schalterfarbe auf FF0000".
@Stefan341 sagte: durch den Datenpunkt "TX Ultimate BG-Bel EG" bestimmt
So wie es programmiert ist, steuert dieser DP auch, ob die LEDs tagsüber eingeschaltet werden. Ist das so gewollt?
Ich würde nur die LEDs steuern, die zum Kanal gehören, der gerade triggert. Die Konstruktion der passenden URL würde ich für Kanäle 1 und 3 in einer Schleifen-Funktion machen.

Ich hoffe, dass "%3B" (Semikolon) vor der ersten LED nicht stört?
-
@Stefan341 sagte: durch den Datenpunkt "TX Ultimate BG-Bel EG" bestimmt
So wie es programmiert ist, steuert dieser DP auch, ob die LEDs tagsüber eingeschaltet werden. Ist das so gewollt?
Ich würde nur die LEDs steuern, die zum Kanal gehören, der gerade triggert. Die Konstruktion der passenden URL würde ich für Kanäle 1 und 3 in einer Schleifen-Funktion machen.

Ich hoffe, dass "%3B" (Semikolon) vor der ersten LED nicht stört?