NEWS
Anfängerfrage Trigger / UND Verkn. / Debug
-
@paul53 danke!
-
Okay ?!?
Die LED schaltet ...naja... "wie gewünscht"
(mit eben bis zu dieser Sekunde Verzögerung - was nicht schlimm wäre.
Ich hatte die "Debug Probleme" bereits die ganze Zeit...Liegt das eventuell am Raspi 3B+ auf dem ich IOBroker laufen habe?
Benötigt das Ganze etwas mehr Dampf?
Steff
-
Ich habs jetzt mal "zeitgesteuert" getriggert.
Nun, ich denke dass die logische Abfrage funktioniert. (LOG output)
Stellt sich m.E. jetzt die Frage, wie ich einen hm... "offiziellen Trigger"
hinbekomme.
Bestenfalls sollte das später mal mit bis zu 6 Schaltern (an zwei ESPs)
funktionieren...Steff
-
Kann bitte jemand bestätigen, dass beide Versionen nicht funktionieren?
Ich bin mir nicht sicher, ob
- Ich falsch herangehe
- Das ein BUG ist
- Mein ioBroker nen defekt hat.
Steff
-
@SBeide
Der erstere ist definitiv falsch, da hat wert von... nichts zu suchen -
@Homoran
o. K. Dann ist bei einem Trigger nur ein "OR"
vorgesehenen? Ist eigentlich auch genug.Ich wäre froh, wenn mir jemand "Lesestoff"
diesbezüglich empfehlen könnte. (URL, echtes Buch, whatever)Mache ich etwas falsch oder ist das eine
Macke im Programm?
Oder liegt es an der Raspi Version und auf
PC Hardware tuts?
Kann man das irgendwie umgehen?Grüße
Steff
-
@SBeide
Du hast ein systematisches Problem:Wenn du auf mehrere Datenpunkte triggerst triggert die Änderung von jedem datenpunkt (einzeln) das darunter liegende script. Selbst wenn du beide Knöpfe gleichzeitig drückst wird das Script 2 mal nacheinander aufgerufen, und jedesmal besteht eine chance das nur ein Knopf “noch” gedrückt ist. Ist halt alles asynchron.
Was du tun kannst:
Für jeden Knopf einen trigger, (steigende Flanke) der- einen timeout startet, falls der nicht schon läuft (sagen wir mal 1 Sekunde - globaler trigger)
- eine interne Variable von false auf true setzt (je trigger eine eigene Variable)
Dazu wenn du magst noch einen trigger auf die fallende Flanke - hier setzt du nur die Variable wieder auf false.
(Du kannst das Konstrukt aus deinem ersten Post nehmen, im falls wahr Strang reagierst du auf die steigende Flanke, im Else auf die fallende)
I’m timeout kannst du dann alle Variablen abfragen und darauf basierend deine Aktion durchführen. Danach setzt du alle Variablen wieder auf false zurück.
Die Länge des timeout steuert wie “gleichzeitig” die Aktionen sein müssen.
A.
-
@Asgothian
Das ist definitiv Stoff für die nächsten 2 Tage.
Erst mal herzlichen Dank für den Fingerzeig.Ist das eine Blockly typische Beschränkung
die man mit Java oder NodRed beheben oder
umgehen könnte?Stefan
-
@SBeide
Jein. Das Problem hast du auch bei js oder node-red.Es lässt sich in js wahrscheinlich etwas eleganter selber schreiben, insbesondere wenn du die besagten 6 Taster hast. Aber das Prinzip ist überall gleich.
A.
-
@Asgothian @Homoran @paul53
Dann vielen Dank für die schnellen Antworten.
Ich werde versuchen das heute verstandene morgen umzusetzen.Steff