Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen

    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      Vocaris @opossum last edited by

      @opossum Ich habe für alle drei Blöck einen eigenen Trigger gemacht.
      Dann geht es. Muss ich nicht verstehen... Aber ich bin ja auch kein Informatiker

      5fd24c25-00cb-4a36-9f3c-48980acbe2ec-image.png

      Berges01 1 Reply Last reply Reply Quote 0
      • Berges01
        Berges01 @Vocaris last edited by

        @vocaris

        Bei deinen Trigger Blöcken (Weinrote Blöcke), sind als Trigger der ID Open drin.
        Das auch noch 2 x.
        Die Anweisungen in solch einem Block wird jedes mal durchlaufen wenn der ID Open seinen Zustand verändert.
        Das macht so eigentlich keinen Sinn.
        Mein Block wir nur durchlaufen wenn der Endschalter auf oder zu seinen Zustand verändert.
        Schau mein Beispiel.
        Innerhalb dieses Triggerblockes kontrolliere ich die Zustände der Endschalter auf/zu und reagiere dementsprechend.
        Nur Guten Mutes, Rom ist auch nicht in einem Tag gebaut.
        Für die Blocklyprogrammierung muss man kein Informatiker sein nur Logisches Denken ist unabdingbar.
        Schau dir mal erst alle Blocklys an und versuche heraus zu bekommen was wie arbeitet.
        Gruss

        W V 2 Replies Last reply Reply Quote 1
        • W
          warp735 @Berges01 last edited by

          Mein Tor stellt zwar die Endlagen zur Verfügung, aber ich steuer das nur über n timeout.

          Berges01 1 Reply Last reply Reply Quote 0
          • Berges01
            Berges01 @warp735 last edited by

            @warp735

            Ja es ist wie immer "viele Wege führen nach Rom".
            Darum würde ich auch jedes Mal sagen, ich stelle ein Beispiel hier ein und keine Vorgabe.
            Ich freue mich immer wenn einer Hier Beispiele reinsetzt, dadurch habe ich schon vieles gelernt.
            Ich baue wenn Möglich alles mit Festen Vorgaben auf und weniger mit Timern.
            Ab und an baue ich etwas auch mit Countern auf.
            Von den Vorher benutzen SmartHome Systemen bin ich was Timer, Paúse und Timeout betrifft ein gebranntes Kind.
            Läuft der Timer noch oder nicht, löst er Aktionen aus die ich gar nicht haben möchte oder reagiert er Unlogisch und nicht nach Zeitvorgabe.
            Aber das ist nur Meine Meinung und soll erklären warum ich etwas mache.
            Gruss

            W 1 Reply Last reply Reply Quote 1
            • W
              warp735 @Berges01 last edited by

              Versteh Dich schon. Man muss halt wissen was man macht 😉

              Mich hat mehr das abrupte ab / umschalten des Lichts bei erreichen einer Endlage gestört. Das sieht einfach nicht schön aus, wenn zum Beipiel das rote Lauflicht mitten in der Bewegung abgewürgt wird.
              Hat zwar einiges an Zeit gekostet das abzustimmen, aber jetzt sieht es halt super harmonisch aus.

              1 Reply Last reply Reply Quote 1
              • V
                Vocaris @Berges01 last edited by

                @berges01 dank dir für dein Post.
                Vorab. Es funktionierte und am nächsten Tag (ohne das ich was geändert habe) war es wieder so wie vorher.. Von Geisterhand.

                OK das mit dem Triggern und den beiden Open habe ich aus Scripten von hier.
                In verstehe das so:
                Das Script (bzw. dieser Trigger-Block) läuft nur dann los, wenn sich bei einem der oberen beiden Objekten (das sind die States der beide Kontakte) einen Veränderung ergibt.
                Und ich meine, das ich das auch brauche. Wenn ich nur ein Objekt einbinde (z.B. den Kontakt oben, der im geschlossenen Zustand ja auch true steht) und ich die Garage hoch fahre, dann dürfte der Trigger ja nicht "ziehen", denn der Kontakt oben ändert sich erst, wenn das Tor oben ist.
                Aber ggf. ist bei mir das logische Denken für sowas ausgeschaltet (Gott sei dank finde ich noch dir Toilette 😂 )

                Berges01 1 Reply Last reply Reply Quote 0
                • Berges01
                  Berges01 @Vocaris last edited by

                  @vocaris

                  Hallo Vorab das mit dem Logischen Denken wahr nicht Diskriminierent gemeint sondern Sachlich !
                  Wenn du mich kennen würdest, währe das mit den Lockeren Sprüchen normal und unmissverständlich.
                  Ab und an schlage ich über die Stränge aber immer locker vom Hocker auch mit 64 Lenzen.

                  So jetzt zu deinem Problem.
                  Schau dir mal mein Beispiel an :
                  Der Trigger wird bei mir von den Endschaltern offen und geschlossen durchgeführt.
                  Beide sind gleichberechtigt im Triggerblock.
                  Der Triggerblock steht auf "wurde geändert" also bei jeder Änderung an den Endschaltern wird alles das was in dem Block eingeschlossen ist abgearbeitet.
                  Innerhalb dieses Blockes frage ich dann die Zustände der Endschalter ab und habe somit die Toorzustände offen, in Bewegung und geschlossen selektiert.
                  Jetzt muss ich nur noch innerhalb von jeder Selektion die Arbeitsweise des WLED anweisen und habe somit die volle Funktion des Garageneffektlichtes erzeugt.
                  Wenn ich jetzt noch innerhalb der Selektion einen "debug output Block" mit dem text offen, zu und in Bewegung einfüge, so kann ich im Fenster unterhalb der Blockeditierung sehen wann was passiert.
                  Ist etwas dumm zu erklären, aber ich hoffe das du mir folgen kannst.
                  Probiere mal das wird dir schon gelingen.

                  V 1 Reply Last reply Reply Quote 0
                  • V
                    Vocaris @Berges01 last edited by

                    @berges01 hei... Ich habe das auch so "lustig" verstanden.... Mein Antwort sollte auch eher lustig sein 🙂
                    Sender/Empfänger Problem...

                    Also ich habe das auch so gemacht.
                    Was ich am Trigger blöd finde, dass ich den Wert des Objektex nicht abfragen kann, dass zum Auslösen führt. Es steht ja nur true oder false zur Verfügung. sonst könnte ich als Objekt einen Datenpunkt nehmen, der drei Werte annehmen kann. So müsste ich drei Datenpunkte mit offen zu und bewegung erstellen und diese auf true/false stellen.

                    Ich habe jetzt beim Block AUF nur ein Objekt eingebunden und zwar das den Schalters OBEN.
                    Wenn das auf False (also geschlossen=> Tor ist oben) geht, löst der Trigger aus. Wenn man 2 Objekte hat, dann scheint sich "Ändern" auf eins der Objekte zu beziehen. Also eine ODER Verknüpfung.
                    Habe aber parallel den Schalter oben gewechselt. Jetzt läuft es. Mal sehen wie lange.

                    3f41f71a-ecab-4596-b800-4f16d4e95ae1-image.png

                    Berges01 1 Reply Last reply Reply Quote 0
                    • Berges01
                      Berges01 @Vocaris last edited by

                      @vocaris
                      Noch mal der Triggerblock ist Rot.
                      Blau ist ein Abfrageblock.
                      Wo mit Triggerst du da ?
                      Am Roten Block hängt oben der Graue Open dran.
                      Daan wir nur Getriggert wenn "open" unwahr also in dem Moment von wahr auf unwahr geht.
                      Fachbegriff heißt hier "Triggern auf abfallende Flanke".
                      Dann Fragst du "open" auf wahr und falsch ab.
                      Ich vermute mal das ist Schalter "Toor oben" und "Toor unten" haben beide die Bezeichnung open und sind somit schlecht voneinander zu unterscheiden.
                      Kleiner Tipp schau dir die "Alias-Manager" Instanz mal an, ist etwas Kryptisch zu bedienen (Meine Meinung") aber hat einen Riesengrossen Vorteil, die Schalter können jede Bezeichnung annehmen und beim Wechseln braucht man die Scripte nicht mehr anzupassen. Aber das solltest du erst anpacken wenn du besser mit ioBroker zurecht kommst.
                      Nich alles auf einmal. Ich erwähne das nur da es dir bei der Programmendwicklung (Scripte) Eindeutige Bezeichner hast und nicht für oben und unten nur "open".
                      Nur mal zur Erwähnung man kann auf Werte triggern aber für die Garagenfunktion ist das nicht nötig und bleiben wir erst mal beim einfachen und nicht gleich mit dem "Vorschlaghammer".
                      Schau dir noch mal meinen Trigger und meine Abfragen an oder die von den Anderen die Hier genau so etwas eingestellt haben.
                      Die funktionieren sicher alle und sind ohne Schnörkel.

                      V 1 Reply Last reply Reply Quote 0
                      • V
                        Vocaris @Berges01 last edited by Vocaris

                        @berges01
                        Moin,
                        ich habe den Trigger in gleicher Verwendung wie du.
                        5b328dbe-241c-4f8d-948d-c2cfb6bf0dd1-image.png 301d2dff-fbb7-4aeb-a3a5-6a946b5748a6-image.png
                        Du nimmst ja auch die beiden Kontakte. Ich auch. Ja bei mir heißen beide OPEN. Wie du beschrieben hast, kann native (wohl) kein Aliasname verwendet werden. Da es beides Aquara Kontakte sind, heißen sie leider beide gleich.
                        Ich habe ja das Script für "Garage oben" ja am Trigger angepasst. Habe hier nur ein Objekt eingebunden und das es mit "ändert sich" wieder nicht ging habe ich es mit true/false versucht. Wenn das Tor oben ist, wird ja der obere Kontakt false. Dann soll er es ausführen. Wenn das Tor fährt (und dabei hat er ja das Problem gehabt, dass er das "oben Script" während der Fahrt ausgeführt hat) wird ja der obere Kontakt zu true.
                        Ich dachte das wäre die Lösung. War es auch ABER ich habe auch gleichzeitig den Kontakt ausgetauscht. Was jetzt die Ursache war, weiß ich nicht. Mal gucken wie lange das hält.
                        DEnnoch zum Trigger: WEnn ich 2 Objekte habe und den Wert "ändert sich", dann läuft der Trigger wenn EINER der Objekte eine Änderung aufweist? Ist also eine ODER Verknüpfung?
                        Finde keine Kurse die da mal auf der Ebene erklären. Gerade bei Trigger fliegen viele Kurse schnell drüber und erklären da nicht. Auch nicht ob man Trigger-Objekte hinsichtlich ihres Wertes abfragen kann. Es gibt wohl nur true und flase.

                        Berges01 1 Reply Last reply Reply Quote 0
                        • Berges01
                          Berges01 @Vocaris last edited by

                          @vocaris

                          Guten Morgen

                          schau mal !
                          8f2aaee2-97ec-4602-835c-0a8465564210-image.png
                          Meinst du so etwas ?
                          Die Anweisungen im Triggerblock werden ausgeführt wenn die Variabel Weckzaehler auf von 24 auf 25 springt oder von 26 auf 25.
                          "ist wahr" bezieht sich dabei auf die Aussage "Weckzaehler = 25".
                          Oder habe ich dich falsch verstanden ?

                          91023a0d-5326-4cef-8439-135dcf6d325f-image.png

                          Auch hierbei wird getriggert und da auch auf eine Variabel "Weckzaehler"
                          Hierbei Triggert der immer wenn die Variabel größer wird (25 nach 26) aber nicht von (26 auf 25).
                          Das legt die Abfrage "ist gleich oder größer als letztes" fest.

                          Das mit der Doku zu Blockly´s gebe ich dir recht, das ist nicht so einfach.
                          Ich habe auch schon vieles gesucht und nicht gefunden oder etwas falsches was genau so aussah.
                          Es ist so das dieses Blockly zu Java gehört und eigentlich eine Grafische Aufarbeitung von Java ist.
                          Oder zumindest gedacht ist.
                          Mann kann in der Ursprungsversion auch selber Bausteine progammieren, ob das hier auch geht keine Ahnung.
                          Wenn due etwas mit Blockly aufgebaut hast kannst du dir das auch in Java ansehen wenn du im Editor auf

                          56d65e0d-ca16-4624-9f30-f8425263f15c-image.png

                          Das JS klickst.
                          Das hilft beim Verstäntniss etwas (Zumindest hat mir das geholfen).
                          Ab und an muss ich aber auch die Sprache beim ioBroker wieder auf Englisch stellen da das Deutsche mich ab und an mal verwirrt und nicht eindeutig ist.
                          Na ja auch Probieren hilft ab und an.
                          Ich nehme mein Licht im Zimmer und trigger damit um einige Funktionen zu testen die ich nicht verstanden habe (Zumindest in der Anfangsfase).
                          Da ich aber von einer Grafischen Programmiersprache komme (zumindestens einiges mit gemacht habe ist das etwas einfacher.
                          Auch Beruflich wahr ich mit Automation und Prüftechnik beschäftigt und bin so vorbelastet.
                          Wenn man ohne Vorkenntnis da reingeworfen wird ist das ein Berg von Fragen die schwer zu beantworten sind da Doku meinst nur in Englisch vorliegt oder zu hochgestochen und Teilweise gar nicht vorhanden ist.
                          Also Probieren, immer in kleinen Happen damit es nicht zu Unübersichtlich wird.

                          W V 2 Replies Last reply Reply Quote 0
                          • W
                            warp735 @Berges01 last edited by

                            @berges01 sagte in [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen:

                            @vocaris

                            91023a0d-5326-4cef-8439-135dcf6d325f-image.png

                            Auch hierbei wird getriggert und da auch auf eine Variabel "Weckzaehler"
                            Hierbei Triggert der immer wenn die Variabel größer wird (25 nach 26) aber nicht von (26 auf 25).
                            Das legt die Abfrage "ist gleich oder größer als letztes" fest.

                            Jetzt muss ich auch mal nachfragen... Warum wird hier bei 25 getriggert? Die 25 stehen doch nirgens?

                            Berges01 1 Reply Last reply Reply Quote 0
                            • Berges01
                              Berges01 @warp735 last edited by

                              @warp735

                              Ich habe geschrieben :

                              Hierbei Triggert der immer wenn die Variabel größer wird (25 nach 26) aber nicht von (26 auf 25).

                              Der triggert bei jeder zahl sie muss aber größer als der Letzte Wert von der Variabel "Weckzähler" sein.

                              Die 25 ist dabei völlig nebensächlich und diente nur zur veranschaulichung der Triggerung.

                              1 Reply Last reply Reply Quote 0
                              • V
                                Vocaris @Berges01 last edited by

                                @berges01
                                Es fängt schon damit an, wie ich den Datenpunkt "XYZ" mit dem Stringwert "bewegung" in den Trigger bekomme. Ich finde im Blockly keine "Funktion", um den Datenpunkt einzubinden.
                                Wird wohl nur über Variable gehen. Aber in Variblen kann ich z.B. eine neu Variable "Garage" erstellen und einbinden. Aber diese ist ja nicht mit dem auslösenden Datenpunkt verbunden.
                                Da ist schon mein erstes Problem. Dann der Wert. Du hast das Ding aus "Mathematik" gezogen. Ich brauche einen Textwert, Wenn die Garage sich bewegt, wird der Datenpukt zu "bewegung".
                                Kann ich dafür einfach die Funktion Text "bewegung" einbinden?

                                Berges01 1 Reply Last reply Reply Quote 0
                                • Berges01
                                  Berges01 @Vocaris last edited by Berges01

                                  @vocaris

                                  Erst mal ist das hier eigentlich etwas für Blockly und somit hier falsch.
                                  Aber seih es drum.
                                  Wenn ich das Richtig verstehe, so hast du einen Sensor der als wert "bewegung" und "keine bewegung" oder "" als Wert hat?
                                  Darauf kannst du nicht Triggern !
                                  Ich bekomme es nicht hin, auch mit Tricks die ich so kenne nicht um auf einen String , dessen Wert, Inhalt oder eine Auswahl daraus zu Triggern.
                                  Schau dir den Sensor noch mal genau an, meine Sensoren für Fenster und Türen geben Wert "22" und "23" für auf oder zu raus.
                                  (Vorsichtshalber noch mal Geprüft)
                                  Darauf kann man Triggern.
                                  Da ist etwas Falsch, nicht Komplett oder ich verstehe dich nicht richtig.

                                  Hier mal z-Wave Philio Sensor an meiner Balkontür. was da rechts steht ist vom Programm Interüretiert und endspricht in dieser Darstellung nicht dem Richtigen Wert sondern dem Interpretierten Zustand.

                                  f3a647f4-c94a-40ea-a78f-f7356f4cc10c-image.png

                                  accessControl_doorState hat den Wert 22 oder 23.

                                  Hier die Alias-Umsetzung
                                  4428b459-96ad-4de5-94d5-97d84cc3c5a5-image.png

                                  V 1 Reply Last reply Reply Quote 0
                                  • V
                                    Vocaris @Berges01 last edited by Vocaris

                                    @berges01
                                    Ich verzweifele und habe auch langsam keine Lust mehr.
                                    Ich habe mein Script jetzt umgestellt und es reagiert nur noch auf den Datenpunkt mit den Werten 1, 2 oder 3.
                                    Anbei das Script:

                                    49c3eb0a-ebd3-4b7d-bef9-8e3dcc8d3bd7-image.png

                                    Wie gesagt es besteht ja nur das Problem beim Runterfahren.
                                    Habe jetzt der Trigger gedebuged und das Event an sich.
                                    Hier erkennt man, dass der Datenpunkt beim Runterfahren 2x geändert wird. Wie.... keine Ahnung. Wenn man sich den Datenpunkt in den Objekten anguckt, sieht man keine Änderung. Aber das Debug spukt es ja aus.

                                    d0234ed6-edc3-42d1-a3b5-7392eeb01c7b-image.png

                                    Also er fährt runter. Der DP wechselt auf 2.
                                    Klar der Trigger löst alles drei "Unterscripte" aus. Somit sind die ersten drei Zeilen korrekt.
                                    Die Zeile 4 ist auch korrekt, denn nur Script FÄHRT wird aufgrund der 3 im Datenpunkt durchlaufen.
                                    Aber dann kommt es. Nur kurz später wird der Trigger durch eine Änderung wieder aktiviert und da es in das Unterscript "Tor auf" geht, muss der obere Kontakt (der ja beim offenen Tor auf false steht und beim Fahren auf true ging, wieder geschlossen worden sein!!??)
                                    Das ginge ja nur, wenn sich da wo der Fensterkontakt befindet nochmal ein Magnet vorbei kommt... Und danach schaltet er ja nochmal.... Das ist krass.

                                    PSS:
                                    Ich glaube ich habe es:
                                    Also nach einem filigranen Test scheint es so zu sein, dass wenn man den Magnet von ganz rechts am Kontakt vorbei laufen lässt er auf dem Wege true/false/true erzeugt... Was für ein Quatsch. Krass.
                                    Ich habe jetzt den Magnet so weit außen platziert, dass er beim hochfahren gerade noch das flase auslöst. Damit wäre das Thema hoffentlich durch.
                                    Finde es nur krass, dass ich das nur durch den Debug im Script rausbekommen habe. Am Datenpunkt muss es ja das gleiche sein. Aber dort sieht man nix.

                                    W opossum 2 Replies Last reply Reply Quote 0
                                    • W
                                      warp735 @Vocaris last edited by

                                      @vocaris
                                      Kann man keine Eventverzögerung einstellen?

                                      1 Reply Last reply Reply Quote 0
                                      • opossum
                                        opossum @Vocaris last edited by

                                        Moin, @vocaris,

                                        ich hatte das Problem auch, als ich noch mit Homematic-Türmagneten gearbeitet habe. Die optischen Sensoren, die ich jetzt einsetze, sind sehr zuverlässig. Aber super, dass Du den Fehler jetzt gefunden hast.

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bishop last edited by

                                          @Dutchman
                                          habe mal ein usermod versucht PIRSwitch
                                          läuft soweit, bekomme aber den state nur über MQTT rein nicht über den WLed Adapter da bekomme ich nur eine "Warn" Meldung

                                          wled.0
                                          	2022-03-16 07:19:52.291	warn	State "wled.0.840d8e56c708._info.u.<button class="btn" onclick="requestJson({PIRsensorSwitch:{PIRenabled:false}});">PIR <i class="icons">&#xe325;</i></button>" has no existing object, this might lead to an error in future versions
                                          

                                          kann man das als DP einfügen?

                                          Danke und Grüße

                                          Dutchman 1 Reply Last reply Reply Quote 0
                                          • Dutchman
                                            Dutchman Developer Most Active Administrators @bishop last edited by

                                            @bishop sagte in [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen:

                                            kann man das als DP einfügen?

                                            usermods kan ich leider nicht unterstützen da diese zu variable sind

                                            B 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            580
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapater adapter neu hier test testen tester wled
                                            73
                                            655
                                            139281
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo