NEWS
[WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen
-
@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. -
@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. -
@berges01
Moin,
ich habe den Trigger in gleicher Verwendung wie du.
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. -
Guten Morgen
schau mal !
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 ?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 aufDas 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. -
@berges01 sagte in [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen:
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?
-
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.
-
@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? -
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.
accessControl_doorState hat den Wert 22 oder 23.
Hier die Alias-Umsetzung
-
@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: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.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. -
@vocaris
Kann man keine Eventverzögerung einstellen? -
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.
-
@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" Meldungwled.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"></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
-
@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
-
ok kein Problem, dann verwende ich dafür MQTT
-
@bishop sagte in [WLED] LED streifen (WS2812B,WS2811,SK6812,APA102) bedienen:
ok kein Problem, dann verwende ich dafür MQTT
Wir könnten das mal debuggen um zu schau ob dafür ein allgemeiner datenpunkt erstellt werden könnte
-
@dutchman
was soll ich tun um dir zu helfen? -
Hallo zusammen,
hab jetzt auch mit WLED angefangen (Teile lagen schon Monate hier...aber Kinder wollten was anderes machen ^^).
Aktuell hab ich irgendwie nen Brett vorm Kopf...ich überlege, wie ich den Datenpunkt "FX" in Alexa eingebunden bekomme...mir fällt da spontan nur sowas ein wie je ein eigener Datenpunkt für jedes FX als Schalter und dann via Blocklys auf jeden der Schalter triggern & den FX-Datenpunkt in WLED schalten. Ich meine, der IOT-Adapter wird keine Liste auswerten bzw beschreiben können? Also den FX-Datenpunkt von WLED...
Grund: Meine Tochter bekommt so nen Streifen ans Bett und soll das via Alexa steuern können wie den alten Osram-Streifen - aber inkl. 2-3 Effekten (via WLED-Presets halt oder dem FX-Datenpunkt). -
@kueppert
Presets anlegen und mit Alexa aufrufen, fällt mir dazu ein. -
@muchul der Datenpunkt "ps" lässt sich zumindest nicht direkt in IOT einbinden. Da erscheint ne Fehlermeldung. Also vermutlich geht das wie ich dachte nur mit eigenen Datenpunkten, die ich anlege und mit Alexa steuere?!
-
@kueppert
Ganz ehrlich, ich habe das noch nicht umgesetzt.
Aber eventuell kann der DP auf lesen und Schreiben gesetzt werden?
Müsste mal getestet werden.