Beleuchtung Garagensturz mit WLED Pixel Controller

Hallo jheinz,

kannst du mir helfen und versuchen zu erklären, wie ich an dein Script die einzelnen KNX-Variablen anhängen kann?

Ich bekomme es einfach nicht hin und habe schon einen Knoten im Kopf und in meinen bisherigen Versuchen.
Ich verstehe das Script von dir, aber wie bekommen ich die einzelnen Bits in die 50413 gebastelt?!

Der Bem

@bem
einfach an das LED Scrip ein Ausgelöstes Ereignis hängen und als Auslösende Variable

z.B den Wert von Garage Fahrbefehl eintragen )bei Änderung.

Bei mir ist es ein Boden Kontakt der auf einen KNX Aktor hängt.

Habe mir aber gestern auch ein KNX / Hörmann Gateway bestellt.
Wenn ich umgebaut habe melde ich mich .

@jheinz

dass hab ich doch schon an X-Anderen Stellen so gemacht… hätte ich auch selbst drauf kommen können.

DANKESCHÖN

Kleiner Tipp zum KNX-Gateway:
Den Busscan ausführen und aufpassen, dass der Antrieb wirklich einen Busteilnehmer gefunden hat.
In der Applikation musst du auch drauf achten, dass der Richtige Antrieb eingestellt wird.
Der Rest ist Easy.

Würde mich über das Ergebnis deiner Umsetzung freuen.

Gruß
Bem

Moin @jheinz,

ich hab hier mit den Zeiten ein wenig herumexperimentiert, aber es läuft einfach nicht flüssig.

Die DummyVariable habe mit der Rückmeldung der Fahrbewegung (3) und mit der Endlage (2) versorgt. Allerdings kommt im gesamten Ablauf immer wieder der Status 6 und ich weiß nicht woher.

<?php



$var = GetValue(56065);

$zeit1 = 3;
$zeit2 = 14;
$zeit3 = 10;
$zeit4 = 5;
$zeit5 = 10;

//grün
if ( $var == 2)
{
 USCK_SendText(58668,'SM=0&SS=0&SV=2&S=0&S2=299&GP=1&SP=0&RV=0&SB=255&A=255&R=0&G=255&B=0&W=0&R2=0&G2=0&B2=0&W2=&FX=0&T=1');
}
        IPS_SetScriptTimer($IPS_SELF, $zeit1);
        SetValue(56065,4);


//rot Lauflicht
if ( $var == 3)
{
 USCK_SendText(58668,'SM=0&SS=0&SV=2&S=0&S2=299&GP=1&SP=0&RV=0&SB=255&A=255&R=255&G=0&B=0&W=0&R2=0&G2=0&B2=0&W2=&FX=60&SX=203&IX=246&T=1');
 }


//Hallo Weiß
 if ( $var == 1)
{
 USCK_SendText(58668,'SM=0&SS=0&SV=2&S=0&S2=299&GP=1&SP=0&RV=0&SB=255&A=255&R=0&G=0&B=0&W=255&R2=0&G2=0&B2=0&W2=&FX=60&SX=64&IX=113&T=1T=0SM=0&SS=0&SV=2&S=15&S2=299&GP=7&SP=30&RV=0&SB=255&A=255&LX=100100100&W=255&R2=0&G2=0&B2=0&W2=&FX=0&T=1');
 }

//hell
if ( $var == 4)
{
 USCK_SendText(58668,'SM=0&SS=0&SV=2&S=0&S2=299&GP=1&SP=0&RV=0&SB=255&A=255&LX=100100100&W=255&R2=0&G2=0&B2=0&W2=&FX=0&T=1');
 }
        IPS_SetScriptTimer($IPS_SELF, $zeit4);
        SetValue(56065,5);

//Spot
 if ( $var == 5)
{
 USCK_SendText(58668,'SM=0&SS=0&SV=2&S=15&S2=299&GP=7&SP=30&RV=0&SB=255&A=255&LX=100100100&W=255&R2=0&G2=0&B2=0&W2=&FX=0&T=1');
 }
        IPS_SetScriptTimer($IPS_SELF, $zeit5);
        SetValue(56065,6);

//Aus
 if ( $var == 6)
{
 USCK_SendText(58668,'T=0');
 }

Mahlzeit,

ich hab es per Script nicht hinbekommen und mir daher die Beta 6.0 installiert.
Mit dem Ablaufplan war dann alles machbar.

Falls es jemanden interessiert:

Jetzt muss ich nur die Ausführung des Ablaufplanes etwas verriegeln und alles ist wie geplant.

Gruß
Der Bem

Ich frage einfach mal ganz frech, ob sich schon jemand an ein Modul gewagt hat, um eine ergonomische Steuerung zu schaffen statt diesen kryptischen String per UDP zu versenden? Den String zu generieren ist ein Krampf.

1 „Gefällt mir“

Octoprint??? Nein - lieber Repetier :smiley:
Das ist ansich schon deutlich besser…

So Freunde des beleuchteten Garagensturzes, ich habe eben einen WLED-Controller an meinem Hoftor verbaut. (Aktuell noch mit einer Seite)

Es gibt aber ein kleines Problem:

Mein Tor hat zwei Flügel, daher habe ich in WLED auch zwei Segmente, welche je an einem PIN des Controller hängen.
Mit den Codes von euch, kann ich irgendwie leider nur eine Seite davon ansteuern.
Mit allem Gefrickel, habe ich es leider nicht geschaft mittels Codemodifikation das zweite Segment laufen zu lassen :frowning:

Kann jemand helfen?
Gruß,
Matthias

wenn du mehrere Segmente hast, muss du die auch entsprechend ansprechen. In der HTTP Request API wird dazu aber empfohlen, dass besser mit der JSON API zu machen.
Ich nutze bei mir einen WebSocket Client und den JSON Decoder.
Damit bekommt man schon mal alle Werte in IPS. Senden geht dann mit WSC_SendMessage mit den entsprechenden JSON Strings. Das ist ganz gut bei WLED beschrieben.
Der JSON Decoder erstellt die Variablen mit entsprechenden Idents, sodass zum Senden Ident und Value auch zur Verfügung steht.
An dem passenden Action Skript versuche ich mich gerade. Einzelne Werte setzen funktioniert schon (On/Off, Helligkeit). Bei komplexeren Variablen wie Color oder Segmente braucht es dann ein paar mehr Parameter…

<?php

// Action Script WLED send JSON 
// z.B. WSC_SendMessage(12345, '{"on":true}');

$Ident = IPS_GetObject($_IPS['VARIABLE'])['ObjectIdent'];
$value = $_IPS['VALUE'];
$send = json_encode(array($Ident => $value));

WSC_SendMessage(12345,  $send);

Das scheint mir etwas übersichtlicher und einfacher, als die HTTP Befehle.

Gruß
Rainer

1 „Gefällt mir“

Hey @erpe das sieht ja schonmal gut aus!
Ich habe den JSON-decoder und der ruft auch Werte ab (mit /json/state).
Das Actionscript habe ich auch, aktuell aber nur hinter der Variable für On (zum testen).
Ebenfalls den Websocket-Client - hier kommt das Problem:

Ich kann die Schnittstelle beim Websocket (da steht im Moment http://192.168.1.113/json/state drin) leider nicht aktivieren.
(Protokoll nicht unterstützt, laut IPS)
Ich weiß aber auch nicht, ob das nötig ist… (oder reicht das WSC_SendMessage?).

Also WebsocketClient ist nicht aktiv, aber ich kann mit deinem Script Daten wegsenden, d.h. wenn ich im WebSocketClient im Debug schaue, dann stehen da auch die JSON-Daten drin als gesendet. Soweit so gut - nur WLED macht genau garnichts…

Hast Du ne Idee?
Gruß,
Matthias

@Maeffjus,
im WebSocket Client bei URL ws://WLED-IP/ws eintragen. Dem JSON Decoder dann den WebSocket Client als Gateway zuordnen. Dann sollte es funktionieren.

Gruß
Rainer

1 „Gefällt mir“

Kaum macht man es richtig, schon geht es :slight_smile:
Danke!

Eine Sache frage ich mich allerdings doch noch: Die Effekte (ich werde wohl einfach Police nehmen), sind ja Strings in den (Variablen Index_0 usw).
Ich sehe keine Variable wo ich die Effekte setzen kann, bzw. was in dem JSON stehen soll.
Ich vermute bei Index_0 usw ist ja nur eine Auflistung der möglichen Effekte.

schau mal auf die WLED Project Seite kno.wled.ge
Da gibt stehen recht ausführliche Beschreibungen.
die Effekte werden als ID unter der Variable fx abgelegt. Police ist z.B. EffectID 48.
Diesen „Index_“ Präfix erzeugt der JSON Decoder. Eigentlich ist das nur ein Array mit Keys ohne Namen, also nur 0, 1, 2 usw.

Ich habe es anders gelöst: Mit einer Playlist.
Ich habe die Effekte meiner Wahl - mit der Einstellungen meiner Wahl - als Preset gespeichert.
(1,2,3) - das letzte Preset, 4, ist „Licht aus“.
Dann habe ich aus dem API-Beispiel die Playlist kopiert und angepasst.
Ich schicke dem Strip also einfach einen String der die Playlist enthält.
Zuerst 20s Police, dann 10s einen grünen Scanner und am Schluss 60s weiß Leuchten.
Das passt für Zu und Auffahren.
Ach ja: Die Zeiten sind 1/10 Sekunden in der Playlist, d.h. 20 = 2s, 200 = 20s.
Gruß,
Matthias

Hallo Zusammen,

ich habe da mal eine Frage. Was für Netzteile benutzt ihr für eure LED-Streifen. Ich habe aktuell 3 Stück ausprobiert.
MeanWell RS-50-5
MeanWell LRS50-5
OYY S-50W-5

Alle Netzteile haben im Ruhemodus min.10-17W was ich persönlich ein wenig viel finde und deswegen bin ich noch auf der Suche nach einem Netzteil was im Ruhemodus weniger Strom benötigt.
Oder sollte man noch mal einen Schaltaktor vor das Netzteil setzten ?

Gruß Stephan

das hat ohne Last <0,2W

Wenn der „Ruhemodus“ deiner Installation so viel Leistung benötigt nützt auch ein anderes Netzteil wenig. Mach doch bitte etwas mehr Angaben.

Die WS2812 brauchen auch „sehr viel“ Strom wenn sie aus sind. Entweder per FET oder Relais schalten

Vielen Dank für die schnelle Antwort.
Also verdrahtet habe ich das wie folgt.

Selbst wenn ich nichts am Netzteil Anschließe zeigt mir die Messsteckdose ca. 11Watt an.
Oder kann es an der Messsteckdose liegen?

Wie @Heidewinkler schon geschrieben hat. Meanwell sind im Leerlauf äußerst sparsam.
Ich selbst habe aus diesem Grund einige im Einsatz (LRS-35, DR-15). Diese haben alle zwischen 0,1 und 0,2W Leerlaufleistung. Falls du sicher nichts angeschlossen hast liegts am Messaufbau.
Womit misst du denn die Leistung ?
Hast du einen Vergleichsverbraucher wo sichergestellt ist dass dieser z.b. nur 2W benötigt?