esyeasy Neopixel und colorpicker

Begonnen von riker1, 07 Juni 2018, 19:03:21

Vorheriges Thema - Nächstes Thema

riker1

Hi
ich bekomme es nicht so hin.

wie kann ich denn in einem ESPEasy Device den Colorpicker enablen für
das Device :

set [espdevice] neopixel|neopixelline|neopixelall

so ist mein device definiert.

defmod ESPEasy_ESP_Easy_167_NP_Candle ESPEasy 192.168.0.167 80 espBridge ESP_Easy_167_NP_Candle
attr ESPEasy_ESP_Easy_167_NP_Candle IODev espBridge
attr ESPEasy_ESP_Easy_167_NP_Candle Interval 300
attr ESPEasy_ESP_Easy_167_NP_Candle colorpicker RGB
attr ESPEasy_ESP_Easy_167_NP_Candle colorpickerCTcw 6000
attr ESPEasy_ESP_Easy_167_NP_Candle colorpickerCTww 2000

attr ESPEasy_ESP_Easy_167_NP_Candle group ESPEasy Device
attr ESPEasy_ESP_Easy_167_NP_Candle presenceCheck 1
attr ESPEasy_ESP_Easy_167_NP_Candle readingSwitchText 1
attr ESPEasy_ESP_Easy_167_NP_Candle room ESPEasy
attr ESPEasy_ESP_Easy_167_NP_Candle setState 3


Danke Thomas
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

dev0

Nicht ohne selbst etwas zu programmieren, da der ESP Easy neopixel Befehl keinen rrggbb Hexwert erwartet, sondern drei getrennte Werte von 0-255.

dirk.k

Hi,
ich habe den 6 stelligen Hex-Wert "RGB" in 3 einzelne zerlegt, welche espeasy versteht.
Zusätzlich habe ich noch den RGBv für die Helligkeit eingerechnet.

RGBr {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),0,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},
RGBg {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),2,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},
RGBb {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),4,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},


Stefan M.

Hallo zusammen
Ich verzweifel gerade an diesem Thema.
Ich habe ESPEasy D1MiniPro Modul mit einen LED Ring als NeoPixel konfiguriert.

ESPEasy : Output - NeoPixel (Basic)   LED         GPIO-12   

Die Steuerung in ESPEasy Commandline mit z.b.
Zitat
neopixelall 200 10 20 schaltet alle LEDs in einen Rotton
neopixel 2 10 10 20 schaltet LED 2 in einen Blauton

Meine Frage nun wie binde ich es nun richtig in FHEM ein um die LEDs alle bzw. einzeln mit dem colorpicker zu steuern. ON und OFF wäre auch noch schön.
Irgendwie habe ich mich festgefahren.
Kann mir da bitte jemnd heraus helfen.


define ESPEasy_D1MiniPro_203_LED ESPEasy 192.168.0.203 80 espBridge D1MiniPro_203_LED


auch hier funktioniert
Zitat
set ESPEasy_D1MiniPro_203_LED  neopixelall 200 10 20
set ESPEasy_D1MiniPro_203_LED neopixel 2 10 10 20

Gruss
Stefan
FHEM auf 3 x RaspberryPi, 1 x Fritzbox,1 x Win. FS20 über CUL, HomeMatic über HMLan, 6 x  HM_CC_RT_DN,2 x HM_LC_BL1_FM,3 x HM_SEC_KEY,2 x HM_RC_Key4_2,7 x HM_SEC_SC,1 x HM_SEC_WDS,1 x HM_Sen_RD_O, 1x HM_Sen_Wa_Od,2 x HM_RC_Key4_2, 5 x HM-ES-PMSw1-Pl,1 x HM_LC_SW4_WM,1 x HM_SCI_3_FM

dirk.k

Hi,
ich mache das mit MQTT.
Ich zerlege in FHEM die Farbe in 3 zahlenwerte, da ESPEASY nur zahlen empfangen konnte (oder kann).
Diese werden per MQTT gesendet, in espeasy einem MQTT-Import device zugeordnet und über rules zusammengebaut und die LED geschaltet.
Code gibt es, wenn die Idee gefällt.

Stefan M.

Hi Dirk
Deine Idee würde ich mir schon mal ansehen.

LG
Stefan
FHEM auf 3 x RaspberryPi, 1 x Fritzbox,1 x Win. FS20 über CUL, HomeMatic über HMLan, 6 x  HM_CC_RT_DN,2 x HM_LC_BL1_FM,3 x HM_SEC_KEY,2 x HM_RC_Key4_2,7 x HM_SEC_SC,1 x HM_SEC_WDS,1 x HM_Sen_RD_O, 1x HM_Sen_Wa_Od,2 x HM_RC_Key4_2, 5 x HM-ES-PMSw1-Pl,1 x HM_LC_SW4_WM,1 x HM_SCI_3_FM

dirk.k

#6
Ok,
hier schon mal der Teil aus FHEM:
defmod WeMos_S3 MQTT_DEVICE
attr WeMos_S3 DbLogInclude Luftfeuchtigkeit,Temperatur,valveposition,desiredTemperature,uptime
attr WeMos_S3 IODev mqtt_local
attr WeMos_S3 alias WeMos_S3 Wohnzimmer
attr WeMos_S3 autoSubscribeReadings fhem/sensors/ESPEasy_03/in/#
attr WeMos_S3 event-min-interval Luftfeuchtigkeit:600,Temperatur:600,WLANRSSI:600,desiredTemperature:600
attr WeMos_S3 event-on-change-reading .*
attr WeMos_S3 icon icoTemp
attr WeMos_S3 publishSet_AlarmLevel fhem/sensors/ESPEasy_03/setALERT
attr WeMos_S3 publishSet_RGB fhem/sensors/ESPEasy_03/setRGB
attr WeMos_S3 publishSet_RGBb fhem/sensors/ESPEasy_03/setRGBb
attr WeMos_S3 publishSet_RGBg fhem/sensors/ESPEasy_03/setRGBg
attr WeMos_S3 publishSet_RGBr fhem/sensors/ESPEasy_03/setRGBr
attr WeMos_S3 qos 1
attr WeMos_S3 readingsWatcher 7200,???,Temperatur,Luftfeuchtigkeit
attr WeMos_S3 retain 1
attr WeMos_S3 room 8.2_ESP,1.1_Wohnzimmer
attr WeMos_S3 stateFormat Temperatur °C, Luftfeuchtigkeit %
attr WeMos_S3 subscribeReading_Firmware fhem/sensors/ESPEasy_03/in/sysbuild_time
attr WeMos_S3 subscribeReading_LWT fhem/sensors/ESPEasy_03/in/LWT
attr WeMos_S3 subscribeReading_Luftfeuchtigkeit fhem/sensors/ESPEasy_03/in/Sensor1/Humidity
attr WeMos_S3 subscribeReading_Temperatur fhem/sensors/ESPEasy_03/in/Sensor1/Temperature
attr WeMos_S3 subscribeReading_uptime fhem/sensors/ESPEasy_03/in/UPTIME
attr WeMos_S3 userReadings RGBr {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),0,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},\
RGBg {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),2,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},\
RGBb {(hex(substr(ReadingsVal("WeMos_S3","RGB",0),4,2))*ReadingsVal("WeMos_S3","RGBv",0)/100)},\

attr WeMos_S3 webCmd RGB:RGB ff00ff:RGB ff0000:RGB ffff00:RGB 8CFF08:RGB 00ff00:RGB 05FF82:RGB 00FFff:RGB 088CFF:RGB 0000ff:RGB 000000:RGB FFFFFF
attr WeMos_S3 widgetOverride RGB:colorpicker,RGB


Der Geräte-teil:
RulesOn System#Boot do    //When the ESP boots, do
      timerSet,1,5      //Set Timer 1 for the next event in 5 seconds
    NeoPixel,1,50,50,50
endon

On Rules#Timer=1 do
    NeoPixel,1,0,0,1
delay 1000
    NeoPixel,1,0,1,0
delay 1000
    NeoPixel,1,1,0,0
delay 1000
    NeoPixel,1,0,0,0
endon

//on Clock#Time=All,**:30 do //will run half past every hour
on Clock#Time=All,**:*5 do //will run alle 10 minuten
  Publish fhem/sensors/ESPEasy_03/in/OTAIP,%ip%
  Publish fhem/sensors/ESPEasy_03/in/WLANRSSI,%rssi%
  Publish fhem/sensors/ESPEasy_03/in/UPTIME,%uptime%
  Publish fhem/sensors/ESPEasy_03/in/sysbuild_time,%sysbuild_date%
endon

on UPTIME#UPTIME do
   TaskValueSet 12,1,%uptime%-[MQTT-IN#uptimePong]
   if [Dummy#Watchdog] > 30 
      reboot
   endif
endon

On MQTTRGB#LEDRed do
//    NeoPixel,1,2,0,0
    NeoPixel,1,[MQTTRGB#LEDRed],[MQTTRGB#LEDBlue],[MQTTRGB#LEDGreen]
endon

On MQTTRGB#LEDGreen do
//    NeoPixel,1,0,0,2
    NeoPixel,1,[MQTTRGB#LEDRed],[MQTTRGB#LEDBlue],[MQTTRGB#LEDGreen]
endon

On MQTTRGB#LEDBlue do
//    NeoPixel,1,0,2,0
    NeoPixel,1,[MQTTRGB#LEDRed],[MQTTRGB#LEDBlue],[MQTTRGB#LEDGreen]
endon

On MQTTRGB#ALERT=7 do
NeoPixel,1,255,0,0
timerSet,7,1      //Set Timer 7 for the next event in 10 seconds
endon

On MQTTRGB#ALERT=0 do
  NeoPixel,1,[MQTTRGB#LEDRed],[MQTTRGB#LEDBlue],[MQTTRGB#LEDGreen]
  timerSet,7,0
endon

//create an actual warning signal, every time timer 7 expires:
On Rules#Timer=7 do
   //repeat after 3 seconds
   timerSet,7,3
   NeoPixel,1,0,255,0
   delay 500
   NeoPixel,1,0,0,0
   delay 50
   NeoPixel,1,0,255,0
   delay 500
   NeoPixel,1,0,0,0
   delay 50
   NeoPixel,1,0,255,0
   delay 500
   NeoPixel,1,0,0,0
   delay 50
   NeoPixel,1,255,0,0
   delay 500
   NeoPixel,1,0,0,0
   delay 50
   NeoPixel,1,255,0,0
   delay 500
   NeoPixel,1,0,0,0
   delay 50
   NeoPixel,1,255,0,0
   delay 500
   NeoPixel,1,0,0,0
endon


fabse

Gibts da mittlerweile eine andere Lösung als dieses MQTT verfahren?

Colorpicker und ON/OFF wäre super!!!

Kann man nicht hex2rgb irgendwie mit rein bauen?

:-\

fabse

Zitat von: locutus am 22 August 2020, 13:22:37
https://forum.fhem.de/index.php/topic,50174.0.html

Einfach ein Link hinklatschen kann ich auch  :o
.... das Modul 98_LEDStripe.pm scheint noch nicht offiziell dabei zu sein, jedenfalls finde ich es auf meiner Raspberry nicht. Gibt auch noch keine Command_ref dazu, obwohl es 2017 schon verwendet wurde.
Für mich als nicht programmierer und user ist das alles sehr wirr und unübersichtlich..

dirk.k

Hallo,
ich mache es immer noch wie früher, da ich die Flexibilität von MQTT brauche.
Mit dem Modul für ESPEASY sollte es aber auch möglich sein, direkte Befehle per HTTP Aufruf zu übermitteln.