PV Leistungsanzeige mit WLED LED Stripe

Begonnen von GeZi3560, 16 Februar 2023, 17:33:32

Vorheriges Thema - Nächstes Thema

GeZi3560

Hallo,

ich überlege mir eine Leistungsanzeige für meine PV Anlage mittels eines LED Stripe angesteuert mit WLED.
Also eine Anzeige von  0- 100%  jeweils 3 LEDS je 10% ansteigend

WLED hab ich schon an FHEM hängen und spiele noch ein wenig damit herum.
Hat schon jemand von euch so etwas realisiert?
Ja, ist ne Spielerei... aber macht Spass.


Danke für eure Inputs

Gruss Gerd
Raspberry Pi 4 4GB, MariaDB,2 Cul V3 868 ,1 Cul V3, 433, Zwave-USB, Conbee2, DeConz, MAX WT und Ventile,HM, Somfy, Fibaro, Shellys, Tradfri, Lidl Zigbee

KernSani

Ich hatte mal einen WLED-Ring (mittlerweile hat er einen anderen Einsatzzweck) als "Puls" des Hauses gebastelt, der den aktuellen Strombedarf visualisiert hat von grün bis rot,WLED Effekt "breathe" mit ansteigender Geschwindigkeit - hat kurzzeitig für einen großen "AHA" Effekt gesorgt, wenn man visualisiert bekommt was (z.B.) die Spülmaschine saugt...   
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Icinger

Ich hab das so gelöst. Zeigt den prozentuellen Anteil vom Gesamtverbrauch an.
Möchte den hinterlegten LED-Streifen aber noch von 60LED/m auf eine 144 Leds/m tauschen.

Angesteuert aber nicht mit WLED, sondern mit einem ESP32, der auch das Display bedient und seine Daten per MQTT von FHEM bekommt.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

BenMarloe

Zitat von: KernSani am 16 Februar 2023, 21:44:38
Ich hatte mal einen WLED-Ring (mittlerweile hat er einen anderen Einsatzzweck) als "Puls" des Hauses gebastelt, der den aktuellen Strombedarf visualisiert hat von grün bis rot,WLED Effekt "breathe" mit ansteigender Geschwindigkeit - hat kurzzeitig für einen großen "AHA" Effekt gesorgt, wenn man visualisiert bekommt was (z.B.) die Spülmaschine saugt...   
Würdest Du den Code teilen? Ich würde da auch gerne machen.
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

KernSani

Zitat von: BenMarloe am 19 Februar 2023, 11:44:40
Würdest Du den Code teilen? Ich würde da auch gerne machen.
Aber klar... Eines vorneweg: Ich habe die WLEDs über MQTT und dem entsprechenden Template eingebunden und das Coding aus diesem Post (das irgendwie nicht mehr da ist) verwendet um die Effekte elegant ansprechen zu können.

Dann ist es ein ziemlich simples DOIF, das auf Änderungen des Stromzählers triggert, Wertebereich ist von 300-3000 Watt. <meinStromzähler> und <power> musst du natürlich mit deinem Device/Reading ersetzen.

defmod ev_power_light DOIF ([<meinStromzähler>])\
(\
{\
my $pc = ReadingsNum("<meinStromzähler>","<power>",0);;\
if ($pc > 3000) {$pc = 3000};;\           
if ($pc < 300) {$pc = 300};;\               
my $pct = ($pc-300)/2700;;\
my $speed = int($pct*255+0.5);;\
my $hex = substr(Color::pahColor(300,700,3000,int($pc),[0,255,0,127,255,0,255,255,0,255,127,0,255,0,0],0),0,6);;\
fhem("set wled1 rgb $hex");;\
fhem("set wled1 effectname Breathe");;\
fhem("set wled1 speed $speed");;\
}\
\
)
attr ev_power_light do always


Sollte eigentlich so funktionieren, kann aber keine Garantie dafür übernehmen ;-)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

BenMarloe

Danke. Könntest Du das Coding bitte auch noch posten?
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

C@MP3R

Moin, hat wer evtl noch ne Schritt für Schritt Anleitung?
DOIF angepasst macht aber nix.
Wled lässt sich per Fhem steuern

C@MP3R

Ich glaub ich habe da Irgendwo nen Denkfehler, könnte mir jemand auf die Sprünge helfen?

WLED = MQTT2_WLED_1
Zähler = Stromzaehler
Aktueller Verbrauch = power
99_attrT_WLED_Utils.pm ist Installiert

Ich kann die WLED auch wie ich mag per Fhem steuern aber mit dem DOIF passiert nichts.
Wenn er ja wenigstens was machen würde wüsste ich ja wo ich ansetzen muss aber so... ?

Danke

ch.eick

Zitat von: C@MP3R am 13 März 2023, 21:58:56Ich glaub ich habe da Irgendwo nen Denkfehler, könnte mir jemand auf die Sprünge helfen?

< snip >

Ich kann die WLED auch wie ich mag per Fhem steuern aber mit dem DOIF passiert nichts.
Wenn er ja wenigstens was machen würde wüsste ich ja wo ich ansetzen muss aber so... ?
Du solltest mal Deine angepasste Definition des DOIF hier rein stellen, oder geht es jetzt schon?
VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

C@MP3R

Guten Morgen, ich bräuchte noch mal Input von den Perl Experten hier.
Mein aktueller Code ist wie folgt, das funktioniert auch wie gewünscht.
#########################
sub pv_leistung{
        my $power = ReadingsVal("SH10rt_1_LAN","01_Total_DC_Power",10000);
        if ($power <= 0){
        fhem("set pv off");
        }
        else{
        my $str;
        $str = '{"on":true,"bri":255,"seg":[';
       
        my $led_hi = int( 60 / 10000 * $power );

        my $brightness;

        foreach my $seg (0..1){               
                $str .= '{"id":'.$seg.',"i":[';

                foreach my $led (0..60){
               
                        if ( $led > $led_hi ){
                                # dunkler, leds ausserhalb der Tagestemperatur
                                $brightness=0;
                        }
                        else{
                                # heller
                                $brightness=125;
                        }
                      #
                        if ($led < 5){
                                $str .= $led.",[$brightness,0,0]";
                        }
                        elsif ($led < 10){
                                $str .= $led.",[$brightness,$brightness,0]";
                        }
                        elsif ($led < 60){
                                $str .= $led.",[0,$brightness,0]";               
                        }
                        else{
                                $str .= $led.",[0,$brightness,0]";                       
                        }

                        if ($led < 60){
                                $str .= ',';
                        }               
                }
                $str .= ']}';
                if ($seg < 1){
                        $str .= ',';
                }
        }
        $str .= ']}';
        fhem("set pv leistung ".$str.";set pv leistung ".$str);
}
}
1;

Nun hatte ich die Idee, wäre doch schön wenn der aktuelle Hausverbrauch auch entsprechend
visualisiert dargestellt wird, die Daten habe ich ja vom Wechselrichter das ist nicht das Problem.
Meine Idee war das aber nur eine LED jeweils Blau leuchten soll.
Geht das überhaupt?
Ich hatte gestern mal kurz was getestet das ging nicht, habe es dann wieder gelöscht... :)

Mal im Anhang noch eine Bastel Inspiration falls wer sowas bauen mag.

FHEMAN

Hi, ich habe zwei Matrixdisplays nebeneinander an einem ESP8266, der via MQTT von FHEM gefüttert wird.
Die Anzeige wechselt alle 3 Sekunden durch die verschieden Werte PV, Wetter, Heizung/Warmwasser, Benzinpreise. Auf der linken Seite wird jedoch grundsätzlich der PV-Ertrag als Balken dargestellt. Hier auf dem Foto gerade auf Maximum, daneben der aktuell saldierte Wert, der Gesamtertrag sowie der Strombezug an diesem Tag.
Eigentlich hatte ich nicht vor, es länger so in dem Look und Stil zu nutzen. Aber inzwischen haben sich alle dran gewöhnt.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB