Beleuchtung Garagensturz mit WLED Pixel Controller

Könnt ihr bitte helfen?
Ich habe den JSON Decoder & HTTP-Client in Symcon hinzugefügt. Bei der Übernahme der Konfiguration erhalte ich jedoch die Fehlermeldung:
Unsupported protocol: Protocol „ws“ not supported or disabled in libcurl in C:\Windows\System32- on line 3
Als URL nutze ich „ws://192.168.1.10/ws“
IPS-Version: 6.0 - 28.8.2021

schätze mal da sollte ein „http“ rein

bb

Mit http bekomme ich zwar die Konfig / Status aktualisiert kann aber keine Befehle zu WLED senden.
Befehl:
WSC_SendMessage($WSClientID, ‚{„on“:false}‘);

Fehler:
Warning: Instance does not implement this function…

Ich habe nun mal testweise mit „pure“ php und curl die JSON Befehle an den WLED gesendet. Damit funktioniert es ohne Probleme.

@Marco ich habe grade ein neues Modul für WLED erstellt, ich kann dich gerne für den test einladen

Das Modul Arbeit mit der Websocket API von WLED

Ja, schaue ich mir gerne an.

Klingt gut, ich beschäftige mich auch grade mit dem Thema und wenn es da schon ein Modul gibt spart mir das viel Arbeit :slightly_smiling_face:

Einladung sind raus, ihr solltet von IP-Symcon eine E-mail bekommen haben.

Swen

Ist angekommen. Ich warte noch auf die LEDs aber ein geflashtes Wemos Modul hab ich schon hier liegen.

Hi,

wäre es evtl. möglich auch eigeladen zu werden?

Danke und Grüße
Stephan

Ich hätte auch Interesse! :point_up_2:

Habe grade mal versucht das Modul zu installieren und bekomme nachdem ich die IP Adresse im Splitter eingegeben und den Weiter Button geklickt habe folgende Meldung:

Konnte Änderungen nicht anwenden

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47

Warning: invalid stod argument in C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on line 47
Abort Processing during exceed of maximal ErrorCount: invalid stod argument
   Error in Script C:\ProgramData\Symcon\modules\.store\wled.symcon.acer90.module\SymconWLEDSplitter\module.php on Line 47 (Code: -32603)

Aber trotzdem gehen einige Sachen und wenn sie funktionieren, dann sowohl bei Änderungen an der WLED Oberfläche als auch in IPS:

  • An/Aus
  • Änderungen dan def drei Farben
  • Effect Speed
  • Effect Intensity
  • Effekte einstellen (aber nur als Befehl, nicht als Änderung der Variable)

Was geht nicht:

  • Brightnss (obwohl ein Event zu kommen scheint wenn ich ein Änderung auf der WLED Seite mache)
  • Nachträgliche Änderung der Oberfläche werden nicht durchgereicht (also wenn ich im Segment die Temperatur von An auf Aus schalte bleibt die Variable trotzdem im IPS)

Das Gegenstück zu Temperatur finde ich auf der WLED Seite nicht.

Aber jedwede Änderung eines Wertes führt im Log zu einer Meldung:


Könnte sein, dass es mit den Variablenprofilen noch Probleme gibt?

@firewire @Ubari einladung ist raus

@mws fehler schau ich mir dieses wochenende an

wo änderst du die Breitnes für das segment, oder global?

Die Temperatur soll auch nicht gelöscht werden, es ist eigentlich nicht vorgesehen gemäß modulrichtline variablen selbst zu löschen, deshalb ist die checkbox aber auch default aus.

Die Funktion Temperatur muss im übrigen noch im WLED aktiviert werden.

Swen

Ich See nur eine Brightness. Wird wohl global sein.

Wenn Du die Variablen nicht löschen willst macht es keinen Sinn einen Schalter einzubauen. Ich hab auch schon Module gebaut und die sind durch die Prüfung gekommen obwohl ich Variablen ausblenden wenn sie nicht gewünscht sind. Auch wenn die Instanz schon angelegt ist.

Das mit der Temperatur muss ich mir noch mal anschauen. Hab grade erst angefangen mit WLED. Aber die Teile für den großen Test sind unterwegs.

Viel Erfolg weiterhin.


schau mal dort

Für die globalen Werte kommt dieses Wochenende noch eine Instance,
falls du die globale Helligkeit steuern möchtest.

Swen

1 „Gefällt mir“

Hab eine Einladungsmail bekommen, danke! Wenn ich aber auf den Link klicke, steht:
Konnte Test nicht beitreten
The invitation was not intended for your account

hab dir nochmal einen alternativen link per pm geschickt

@Acer90 Hi, hast Du wegen dem Fehler schon was raus gefunden?

Wenn ich das richtig sehe versuchst Du an der Stelle die Effekte auszulesen und in ein Variablenprofil zu schreiben.
OK, ich hab es gefunden. Du baust die Association falsch.
Die Werte $key und $item sind vertauscht. Es musss so heißen:

        if(Sys_Ping($this->ReadPropertyString("IPAddress"), 3000)){
            if(!IPS_VariableProfileExists("WLED.Effects")){
                IPS_CreateVariableProfile("WLED.Effects", 1);

                $eff_arr = json_decode(file_get_contents("http://".$this->ReadPropertyString("IPAddress")."/json/eff"), true);

                foreach ($eff_arr as $item => $key) {
                    IPS_SetVariableProfileAssociation("WLED.Effects", $item, $key, "", -1);
                }
            }

            if(!IPS_VariableProfileExists("WLED.Palettes")){
                IPS_CreateVariableProfile("WLED.Palettes", 1);

                $eff_arr = json_decode(file_get_contents("http://".$this->ReadPropertyString("IPAddress")."/json/pal"), true);

                foreach ($eff_arr as $item => $key) {
                    IPS_SetVariableProfileAssociation("WLED.Palettes", $item, $key, "", -1);
                }
            }
        }

Dann würde ich noch folgenden Part einbauen damit die Checkboxen im Form der Segmentinstanz auch die komplette Funktion haben:

            if($this->ReadPropertyBoolean("ShowTemperature")) {
                $this->RegisterVariableInteger("VariableTemperature", "Temperature", "WLED.Temperature", 24);
                $this->EnableAction("VariableTemperature");
            }
            else{
                @$this->DisableAction('VariableTemperature');
                $this->UnregisterVariable('VariableTemperature');
            }            

Sonst kannst Du ein Element zwar aktivieren aber nie wieder deaktivieren, es sei denn Du löscht die Instanz und legst sie neu an.

Alles andere funktiniert gut wie es scheint.

Danke, habe leider nur am Wochenende Zeit, nächstes Wochenende sollte das aber geändert sein.

Swen