2026-04-19_14:29:03 off
2026-04-19_14:29:11 on
2026-04-19_14:36:28 on
2026-04-19_14:38:08 off
2026-04-19_14:38:13 on
2026-04-19_14:54:36 off
2026-04-19_14:54:42 on
2026-04-19_15:01:28 off
2026-04-19_15:01:30 on
#Firmata_OUT_A22:value:::$fld[1]=~"on"?1:0ZitatSehr geehrter wetter.com User
see for English below
Sie greifen derzeit auf unsere Legacy-API unter api.wetter.com zu. Wir möchten Sie darüber informieren, dass wir dieses Produkt am Montag, den 6. Juli 2026, einstellen werden. Nach diesem Datum wird diese Legacy-API nicht mehr verfügbar sein und alle darauf basierenden Integrationen könnten nicht mehr funktionieren.
👉Bitte migrieren Sie zur Public Weather API (PWA)
Unser Public Weather API (PWA) ist deutlich leistungsfähiger und bietet zahlreiche neue Funktionen und Verbesserungen, wie zum Beispiel:
Verbesserte Wettervorhersagen, einschließlich 5min Nowcasting
Europaweite Warnungen mit erweiterten Warninformationen
Weitere Wetterparameter wie Pollen, UV oder Gewitterstunden
Versionierung für Upgrades
und vieles mehr
METEONOMIQS, das B2B-Team von wetter.com, hat in den letzten Jahren intensiv daran gearbeitet, dies zur bisher besten Version der B2B-API zu machen – und bereits viele zufriedene Kunden nutzen das Produkt.
Wenn Sie auf die PWA umsteigen möchten, können Sie sich auf der Website http://meteonomiqs.com/weather-api/ für einen kostenlosen API-Schlüssel registrieren. Die Dokumentation ist ebenfalls hier verfügbar: http://doc.meteonomiqs.com/ .
Wenn Sie an höheren Abfragevolumen und zusätzlichen Datenfunktionen interessiert sind, kontaktieren Sie uns unter info@meteonomiqs.com
Wir möchten uns an dieser Stelle herzlich für Ihre Treue bedanken und hoffen, dass Sie viel Freude mit der PWA haben werden!
Mit freundlichen Grüßen
Ihr wetter.com METEONOMIQS Team
defmod di_energy_card_min DOIF {}
attr di_energy_card_min uiTable {\
$ATTRIBUTESFIRST = 1;;\
\
## Energy_card kann über das Attribut zoom skalliert werden\
\
$TABLE = 'zoom: 1;; width: 212px;; height: 195px;; text-align: left;; vertical-align: top;; border-radius:0%;; position:relative;; background: linear-gradient(to bottom, rgb(40,40,40), rgb(60, 60, 60));; ';;\
\
package ui_Table;;\
\
sub move {\
my ($left, $top, $content) = @_;;\
my $value;;\
if (ref($content) eq "ARRAY") {\
$value = $content->[0];;\
} else {\
$value =$content;;\
}\
\
my $out = '<div style="position:absolute;; left:'\
. $left . 'px;; top:'\
. $top . 'px;;">'\
. $value .\
'</div>';;\
\
if (ref($content) eq "ARRAY") {\
return ([$out,$content->[1]]);;\
} else {\
return ($out);;\
}\
}## end of move\
\
sub flow {\
\
my ($d,$item,$power,$max,$direction)=@_;;\
my $dur;;\
if ($power == 0) {\
$dur=0;;\
} else {\
$power=$max if ($power>$max);;\
$dur=int((6-abs(5*$power/$max))*10)/10;;\
}\
\
\
my ($from, $to, $x1, $x2, $y1, $y2);;\
\
if ($direction==0) { # ↖ unten rechts -> oben links\
($from, $to, $x1, $x2, $y1, $y2)=("1 1","-1 -1",101,-1,100,0);;\
} elsif ($direction==1) { # ↘ oben links -> unten rechts\
($from, $to, $x1, $x2, $y1, $y2)=("-1 -1","1 1",-1,101,0,100);;\
} elsif ($direction==2) { # ↗ unten links -> oben rechts\
($from, $to, $x1, $x2, $y1, $y2)=("-1 1","1 -1",-1,101,100,0);;\
} elsif ($direction==3) { # ↙ oben rechts -> unten links\
($from, $to, $x1, $x2, $y1, $y2)=("1 -1","-1 1",101,-1,0,100);;\
}\
\
my $out='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 35" width="40" height="35" style="width:40px;; height:35px;;">';;\
\
$out .= '<defs>\
<linearGradient id="flowGradient_'.$item.'" \
x1="'.$x1.'%" y1="'.$y1.'%" \
x2="'.$x2.'%" y2="'.$y2.'%" \
>\
<stop offset="0%" stop-color="white" stop-opacity="0.2"/>\
<stop offset="80%" stop-color="white" stop-opacity="1"/>\
<stop offset="100%" stop-color="white" stop-opacity="0.2"/>\
<animateTransform \
id="flowAnim_'.$item.'" \
attributeName="gradientTransform" \
type="translate" \
from="'.$from.'" \
to="'.$to.'" \
dur="'.$dur.'s" \
repeatCount="indefinite" \
calcMode="linear"/>\
</linearGradient>\
</defs>\
<path d="'.$d.'" fill="none" stroke="url(#flowGradient_'.$item.')" stroke-width="5" />';;\
\
##$out .= '<defs> <linearGradient id="flowGradient_'.$item.'" x1="'.$x1.'%" y1="0%" x2="'.$x2.'%" y2="0%"> <stop offset="0%" stop-color="gray" stop-opacity="0.2"/> <stop offset="100%" stop-color="white" stop-opacity="1"/> <stop offset="0%" stop-color="gray" stop-opacity="0.2"/></defs><path d="'.$d.'" fill="none" stroke="gray" stroke-opacity="0.2" stroke-width="3"/><path d="'.$d.'" fill="none" stroke="url(#flowGradient_'.$item.')" stroke-width="2" stroke-dasharray="3 9"><animate id="flowAnim_'.$item.'" attributeName="stroke-dashoffset" from="'.$from.'" to="'.$to.'" dur="'.$dur.'s" repeatCount="indefinite"/></path>';;\
\
return ([$out,'var e=document.getElementById("flowAnim_'.$item.'");;if (e) {e.setAttribute("dur","'.$dur.'s");;e.setAttribute("from","'.$from.'");;e.setAttribute("to","'.$to.'");;};; var e=document.getElementById("flowGradient_'.$item.'");;if (e) {e.setAttribute("x1","'.$x1.'%");;e.setAttribute("x2","'.$x2.'%");;}'])\
} ## end of flow\
\
sub grid_power {\
my ($power,$max)=@_;;\
return (move(30,64,flow("M 5 0 A 30 30 0 0 0 35 30","grid",$power,$max,($power > 0 ? 0 : 1))));;\
} \
\
sub solar_power {\
my ($power,$max)=@_;;\
return move(138,64,flow("M 35 0 A 30 30 0 0 1 5 30 L 5 30","solar",$power,$max,3));;\
} \
\
sub home_power {\
my ($power,$max)=@_;; \
return move(30,94,flow("M 5 35 A 30 30 0 0 1 35 5","home",$power,$max,3));;\
}\
\
sub battery_power {\
my ($power,$max)=@_;;\
return move(138,94,flow("M 35 35 A 30 30 0 0 0 5 5 ","battery",$power,$max,($power < 0 ? 0:1)));;\
}\
\
sub grid {\
my ($power,$feed,$consum)=@_;;\
move(2,2,icon_ring2("scene_power_grid\@silver",$power,-5,5,0,90,"kW",110,undef,"2",$feed-$consum,-20,20,0,90,"kWh",undef,"1",undef,"nogradient,,innerring,nopointer,negzeropos"));;\
}\
\
sub self {\
my ($autark,$EVG)=@_;;\
move(64,60,ring2($autark,0,100,undef,undef,"Autarkie",130,[(33.3,40,66.6,65,100,85)],"0,,fill:silver, %",$EVG,0,100,190,170,"EVQ",undef,"0,,fill:silver, %",undef,undef,"nogradient,,innerring,nopointer")) # [(33.3,40,66.6,65,100,85)]\
}\
\
sub solar {\
my ($power,$energy)=@_;;\
move(140,2,icon_ring2("solar_icon\@silver",$power,0,3.6,30,90,"kW",110,undef,"2",$energy,0,30,30,90,"kWh",undef,"1",undef,"nogradient,,innerring,nopointer"));;\
}\
\
sub home {\
my ($power,$consum)=@_;;\
move(2,130,icon_ring2("fa_home\@silver",$power,0,3,60,10,"kW",110,undef,"2",$consum,0,10,60,10,"kWh",undef,"1",undef,"nogradient,,innerring,nopointer"));;\
}\
\
sub battery {\
my ($power,$cap)=@_;;\
move(140,130,icon_ring2("battery_100\@silver",$power/1000,-1,1,220,170,"kW",110,undef,"2",$cap,0,100,0,90,"%",undef,"0",undef,"nogradient,,noinnerring,nopointer,zeronegpos"));;\
}\
\
} ## end of perl area\
\
## Tabellendefinition\
## Hier eigene Readings anpassen\
\
grid([MQTT2_DVES_C58DCB:power_fc],[di_counter_new:MQTT2_DVES_C58DCB.total_f.day],[di_counter_new:MQTT2_DVES_C58DCB.total_c_positiv.day]).\
solar([MQTT2_DVES_C58DCB:power_pv],[di_counter_new:MQTT2_DVES_C58DCB.total_pv.day]).\
home ([MQTT2_DVES_C58DCB:power_home_c],[di_counter_new:MQTT2_DVES_C58DCB.total_home_c.day]).\
battery([ecoflowStreamACpro:quota_powGetBpCms],[ecoflowStreamACpro:quota_soc]).\
self(([di_counter_new:MQTT2_DVES_C58DCB.total_pv.day]-[di_counter_new:MQTT2_DVES_C58DCB.total_f.day])/[di_counter_new:MQTT2_DVES_C58DCB.total_consum.day]*100,(1-[di_counter_new:MQTT2_DVES_C58DCB.total_f.day]/[di_counter_new:MQTT2_DVES_C58DCB.total_pv.day])*100).\
grid_power([MQTT2_DVES_C58DCB:power_fc],3.6).\
solar_power([MQTT2_DVES_C58DCB:power_pv],3.6).\
battery_power([ecoflowStreamACpro:quota_powGetBpCms],1050).\
home_power([MQTT2_DVES_C58DCB:power_home_c],3.6)
Du darfst diesen Dateianhang nicht ansehen.ZitatEVSE fault code register value is the decimal equivalent of binary fault codes. Each bit defines 1 fault.
For example, binary equivalent of register value 16 is 10000. This means 4th bit is set and the fault is PP
error.
Bit Fault
0 Contactor Welded Error
1 Contactor Response Error
2 Interlock Lock Error
3 Interlock Unlock Error
4 PP Error
5 CP Diode Error
6 CP Short Error
7 Overvoltage Phase1
8 Overvoltage Phase2
usw
Name EVSE Fault Code* | Register 1006 | länge 2 | read/write R | datentypp unit32 | Beschreibung 0: No fault Other: Fault code |