Zitat von: Ralf9 am 07 November 2024, 23:48:30Beim ESP 32 funktioniert das Empfangen und Senden, das Autoacknowledge funktioniert noch nicht.Das Autoacknowledge funktioniert jetzt auch, die Ursache war vermutlich, dass beim ESP32 das übertragen der empfangenen Nachricht per WLAN zu FHEM minimal länger dauert als beim Maple Mini über USB oder LAN.
z0B1300026543211F20210000
MN;D=0B1306301F202165432100105283;N=15;r;
Das asso/deasso beim Fensterkontakt funktioniert beim ESP32 nicht, das ist zu zeitkritisch.Zitat von: Starkstrombastler am 06 November 2024, 15:12:07Eine neue Version, die einen Temperaturwert darstellt, ist eingestellt und ab dem 7.11 regulär verfügbar.SUPER! - das mit einem Sensor hat mir schon direkt weiter geholfen - dann hab' ich noch was Geduld für den zweiten.
Mehrere Sensoren können mit der nächsten Beta-Version, welche hier veröffentlicht wird, ausgewertet werden.
Zitat von: x-juergen am 08 November 2024, 14:03:30Der Zeiteintrag wurde NICHT aktualisiert.Was sagt denn nach der dem stop von FHEM?
sudo journalctl -b -u fhem
/FHEM/lib/HM485/HM485d/HM485d.pl --hmwId 00000001 --serialNumber SGW0123456 --device /dev/ttyUSB0 --localPort 2000
--hmwId 00000001
geändert, sowie mal den --localPort 2000
# peer_act_0 channel_01 → unknown_00000000_01
# peer_act_1 channel_01 → unknown_00000000_01
# peer_act_10 channel_01 → unknown_00000000_01
# peer_act_11 channel_01 → unknown_00000000_01
# peer_act_12 channel_01 → unknown_00000000_01
# peer_act_13 channel_01 → unknown_00000000_01
# peer_act_14 channel_01 → unknown_00000000_01
# peer_act_15 channel_01 → unknown_00000000_01
# peer_act_16 channel_01 → unknown_00000000_01
..............
Zitat von: TomLee am 08 November 2024, 20:16:58Wie muss man sich das genau vorstellen? Wie ist das set-on-for-timer 0.4 definiert.
background_processing_time 1.2258 2024-11-08 21:07:08
cosphi 0.000 2024-11-08 16:35:44
device_class Solar-Wechselrichter 2024-11-08 21:00:30
device_dc_insulation 4294967295 2024-11-08 21:00:30
device_dc_residual_current 2147483.648 2024-11-08 21:00:30
device_firmware 3.17.5 R 2024-11-08 20:57:04
background_processing_time 0.3729 2024-11-08 21:13:11
device_class Solar-Wechselrichter 2024-11-08 21:13:11
device_dc_insulation 4294967295 2024-11-08 21:13:11
device_dc_residual_current 2147483.648 2024-11-08 21:13:11
device_firmware 3.17.5 R 2024-11-08 21:09:37
background_processing_time 0.8321 2024-11-08 21:16:14
cosphi 0.000 2024-11-08 21:16:14
device_class Solar-Wechselrichter 2024-11-08 21:16:14
device_dc_insulation 4294967295 2024-11-08 21:16:14
device_dc_residual_current 2147483.648 2024-11-08 21:16:14
device_firmware 4.1.15 R 2024-11-08 21:09:37
background_processing_time 1.0174 2024-11-08 21:19:01
cosphi 0.020 2024-11-08 21:19:01
device_class Solar-Wechselrichter 2024-11-08 21:19:01
device_dc_insulation 4294967295 2024-11-08 21:19:01
device_dc_residual_current 2147483.648 2024-11-08 21:19:01
device_firmware 4.1.15 R 2024-11-08 21:09:37
chargestatus 78 2024-11-08 21:21:48
device_class Batterie-Wechselrichter 2024-11-08 21:21:48
device_dc_insulation 3000000 2024-11-08 21:21:48
device_dc_residual_current 0.006 2024-11-08 21:21:48
device_firmware 3.17.14 R 2024-11-08 21:09:37
chargestatus 33 2024-11-08 21:24:37
cosphi 17.780 2024-11-08 21:24:37
device_class Batterie-Wechselrichter 2024-11-08 21:24:37
device_dc_insulation 2957897 2024-11-08 21:24:37
device_dc_residual_current 0.006 2024-11-08 21:24:37
device_firmware 3.17.14 R 2024-11-08 21:22:33
const gridReadingIn = parseFloat(parseFloat(doc.querySelector("div[informid='powerGrid-grid_in_v']").textContent).toFixed(1));
const gridReadingOut = parseFloat(parseFloat(doc.querySelector("div[informid='powerGrid-grid_out_v']").textContent).toFixed(1));
document.getElementById('gridPowerIn').textContent = gridReadingIn + " kWh";
document.getElementById('gridPowerOut').textContent = gridReadingOut + " kWh";
defmod powerGrid dummyNew
attr powerGrid readingList airdryer_v battery_v battery_p batteryState_v dishwasher_v dryer_v fridge_v grid_v grid_in_v grid_out_v house_v lowcarbon_v solar_v solarToBattery_v washer_v
attr powerGrid room Energy1
attr powerGrid setList airdryer_v:textField battery_v:textField battery_p:textField batteryState_v:select,stop,gridLoad,gridUnload,solarLoad,houseUnload dishwasher_v:textField dryer_v:textField fridge_v:textField grid_v:textField grid_in_v:textField grid_out_v:textField house_v:textField lowcarbon_v:textField solar_v:textField washer_v:textField
attr powerGrid stateFormat <!DOCTYPE html>\
<html>\
<head>\
<title>powerGrid</title>\
<style>\
#wrapper {\
background: black;;\
}\
svg {\
width: 100%;;\
height: auto;;\
}\
</style>\
</head>\
<body>\
\
<div id='wrapper'>\
<svg viewBox='0 0 650 500' xmlns='http://www.w3.org/2000/svg' style='background-color: black;; width: 90%;; height: auto;;'>\
\
<!-- Titel -->\
<text x='20' y='30' font-family='Arial' font-size='24' fill='white'>Power Flow</text>\
\
<!-- Kohlenstoffarm (Grün) -->\
<circle id='lowCarbonCircle' cx='100' cy='100' r='45' fill='none' stroke='green' stroke-width='10' opacity='0.4'/>\
<circle cx='100' cy='100' r='40' fill='none' stroke='green' stroke-width='5'/>\
<text x='100' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Low-Carbon</text>\
<text id='lowCarbonPower' x='100' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>0 %</text>\
\
<!-- Solar (Orange) - Glow Kasten -->\
<rect x='205' y='55' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='orange' stroke-width='10'/>\
<rect x='210' y='60' rx='20' ry='20' width='80' height='80' fill='none' stroke='orange' stroke-width='5' />\
<text x='250' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Solar</text>\
<text id='solarPower' x='250' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Netz (Blau) -->\
<rect x='55' y='205' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='blue' stroke-width='10'/>\
<rect x='60' y='210' rx='20' ry='20' width='80' height='80' fill='none' stroke='blue' stroke-width='5' /> \
<text id='gridPower' x='100' y='235' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text x='100' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Grid</text>\
<text id='gridPowerIn' x='100' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text id='gridPowerOut' x='100' y='280' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Batterie Label -->\
<text x='250' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Battery</text>\
<text id='batteryPower' x='250' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text id='batteryPercent' x='250' y='385' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Batterie stop (Turkis) -->\
<circle id='batteryCircle' cx='250' cy='400' r='45' fill='none' stroke='turquoise' stroke-width='10' opacity='0.4'/>\
<circle id='batteryStatic' cx='250' cy='400' r='40' fill='none' stroke='turquoise' stroke-width='5'/>\
\
<!-- Batterie dreht links -->\
<circle id='batteryClockwise' cx='250' cy='400' r='40' fill='none' stroke='purple' stroke-width='5' stroke-dasharray='9 5' stroke-dashoffset='3' style='display:none;;'>\
<animateTransform attributeName='transform' type='rotate' from='0 250 400' to='360 250 400' dur='5s' repeatCount='indefinite' />\
</circle>\
\
<!-- Batteriering dreht rechts -->\
<circle id='batteryCounterClockwise' cx='250' cy='400' r='40' fill='none' stroke='turquoise' stroke-width='5' stroke-dasharray='9 5' stroke-dashoffset='3' style='display:none;;'>\
<animateTransform attributeName='transform' type='rotate' from='0 250 400' to='-360 250 400' dur='5s' repeatCount='indefinite' />\
</circle>\
\
<!-- Haus + Ringsegmente -->\
<circle id='houseCircle' cx='400' cy='250' r='45' fill='none' stroke='purple' stroke-width='10' opacity='0.4'/>\
<circle id='solarSegment' cx='400' cy='250' r='40' fill='none' stroke='orange' stroke-width='5' stroke-dasharray='0 100' />\
<circle id='gridSegment' cx='400' cy='250' r='40' fill='none' stroke='blue' stroke-width='5' stroke-dasharray='0 100' />\
<circle id='batterySegment' cx='400' cy='250' r='40' fill='none' stroke='purple' stroke-width='5' stroke-dasharray='0 100' />\
<text x='400' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>House</text>\
<text id='housePower' x='400' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Lufttrockner (Blau) -->\
<circle id='airDryerCircle' cx='400' cy='100' r='45' fill='none' stroke='blue' stroke-width='10' opacity='0.4'/>\
<circle cx='400' cy='100' r='40' fill='none' stroke='blue' stroke-width='5'/>\
<text x='400' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Airdryer</text>\
<text id='airdryerPower' x='400' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Kühlschrank (Gelb) -->\
<rect x='355' y='355' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='yellow' stroke-width='10'/>\
<rect x='360' y='360' rx='20' ry='20' width='80' height='80' fill='none' stroke='yellow' stroke-width='5' />\
<text x='400' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Fridge</text>\
<text id='fridgePower' x='400' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Waschmaschine (Gelb) -->\
<rect x='505' y='55' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='yellow' stroke-width='10'/>\
<rect x='510' y='60' rx='20' ry='20' width='80' height='80' fill='none' stroke='yellow' stroke-width='5' />\
<text x='550' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Washer</text>\
<text id='washerPower' x='550' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Trockner (Grün) -->\
<circle id='dryerCircle' cx='550' cy='250' r='45' fill='none' stroke='green' stroke-width='10' opacity='0.4'/>\
<circle cx='550' cy='250' r='40' fill='none' stroke='green' stroke-width='5'/>\
<text x='550' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Dryer</text>\
<text id='dryerPower' x='550' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Geschirrspüler (Blau) -->\
<circle id='dishwasherCircle' cx='550' cy='400' r='45' fill='none' stroke='blue' stroke-width='10' opacity='0.4'/>\
<circle cx='550' cy='400' r='40' fill='none' stroke='blue' stroke-width='5'/>\
<text x='550' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Dishwasher</text>\
<text id='dishwasherPower' x='550' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Verbindungslinien -->\
\
<!-- Verbindungslinie von Batterie zu Haus (Lila) --> \
<path id='batteryToHousePath' d='M 260 354 A 110 100 0 0 1 357 260' stroke='purple' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='purple'>\
<animateMotion id='batteryToHouse' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#batteryToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Haus (Orange) -->\
<path id='solarToHousePath' d='M 260 145 A 110 100 0 0 0 357 240' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToHouse' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Batterie (Orange) -->\
<path id='solarToBatteryPath' d='M 250 145 A 0 100 0 0 1 250 354' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToBattery' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToBatteryPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Lufttrockner (Blau) -->\
<path id='houseToAirdryerPath' d='M 400 203 A 0 67 0 0 1 400 145' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='houseToAirdryer' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToAirdryerPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Kühlschrank (Gelb) -->\
<path id='houseToFridgePath' d='M 400 298 A 0 67 0 0 1 400 354' stroke='yellow' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='yellow'>\
<animateMotion id='houseToFridge' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToFridgePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Kohlenstoffarm (Grün) -->\
<path id='gridToLowCarbonPath' d='M 100 208 A 0 68 0 0 1 100 145' stroke='green' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='green'>\
<animateMotion id='gridToLowCarbon' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#gridToLowCarbonPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Haus (Blau) -->\
<path id='gridToHousePath' d='M 146 250 H 357' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='gridToHouse' dur='3s' repeatCount='indefinite'>\
<mpath href='#gridToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Trockner (Green) -->\
<path id='houseToDryerPath' d='M 446 250 A 0 0 0 0 1 505 250' stroke='green' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='green'>\
<animateMotion id='houseToDryer' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToDryerPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Geschirrspüler (Blue) -->\
<path id='houseToDishwasherPath' d='M 446 260 A 110 110 0 0 1 550 354' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='houseToDishwasher' dur='3s' repeatCount='indefinite'>\
<mpath href='#houseToDishwasherPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Netz (Orange) -->\
<path id='solarToGridPath' d='M 240 145 A 110 100 0 0 1 146 240' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToGrid' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToGridPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Batterie (Turkis) -->\
<path id='gridToBatteryPath' d='M 146 260 A 110 100 0 0 1 240 354' stroke='turquoise' stroke-width='2' fill='transparent'/>\
<circle id='gridToBatteryStatic' r='5' fill='turquoise' style='display:none;;' />\
<circle id='gridToBatteryForward' r='5' fill='turquoise' style='display:none;;'>\
<animateMotion id='gridToBatteryForwardAnim' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#gridToBatteryPath'/>\
</animateMotion>\
</circle>\
<circle id='gridToBatteryBackward' r='5' fill='turquoise' style='display:none;;'>\
<animateMotion id='gridToBatteryBackwardAnim' dur='3s' repeatCount='indefinite' keyPoints='1;;0' keyTimes='0;;1'>\
<mpath href='#gridToBatteryPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Waschmaschine (Gelb) -->\
<path id='houseToWasherPath' d='M 550 145 A 110 100 0 0 1 446 240' stroke='yellow' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='yellow'>\
<animateMotion id='houseToWasher' dur='3s' repeatCount='indefinite' keyPoints='1;;0' keyTimes='0;;1'>\
<mpath href='#houseToWasherPath'/>\
</animateMotion>\
</circle>\
\
</svg>\
</div>\
</body>\
</html>\
setstate powerGrid <!DOCTYPE html>\
<html>\
<head>\
<title>powerGrid</title>\
<style>\
#wrapper {\
background: black;;\
}\
svg {\
width: 100%;;\
height: auto;;\
}\
</style>\
</head>\
<body>\
\
<div id='wrapper'>\
<svg viewBox='0 0 650 500' xmlns='http://www.w3.org/2000/svg' style='background-color: black;; width: 90%;; height: auto;;'>\
\
<!-- Titel -->\
<text x='20' y='30' font-family='Arial' font-size='24' fill='white'>Power Flow</text>\
\
<!-- Kohlenstoffarm (Grün) -->\
<circle id='lowCarbonCircle' cx='100' cy='100' r='45' fill='none' stroke='green' stroke-width='10' opacity='0.4'/>\
<circle cx='100' cy='100' r='40' fill='none' stroke='green' stroke-width='5'/>\
<text x='100' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Low-Carbon</text>\
<text id='lowCarbonPower' x='100' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>0 %</text>\
\
<!-- Solar (Orange) - Glow Kasten -->\
<rect x='205' y='55' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='orange' stroke-width='10'/>\
<rect x='210' y='60' rx='20' ry='20' width='80' height='80' fill='none' stroke='orange' stroke-width='5' />\
<text x='250' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Solar</text>\
<text id='solarPower' x='250' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Netz (Blau) -->\
<rect x='55' y='205' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='blue' stroke-width='10'/>\
<rect x='60' y='210' rx='20' ry='20' width='80' height='80' fill='none' stroke='blue' stroke-width='5' /> \
<text id='gridPower' x='100' y='235' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text x='100' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Grid</text>\
<text id='gridPowerIn' x='100' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text id='gridPowerOut' x='100' y='280' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Batterie Label -->\
<text x='250' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Battery</text>\
<text id='batteryPower' x='250' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
<text id='batteryPercent' x='250' y='385' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Batterie stop (Turkis) -->\
<circle id='batteryCircle' cx='250' cy='400' r='45' fill='none' stroke='turquoise' stroke-width='10' opacity='0.4'/>\
<circle id='batteryStatic' cx='250' cy='400' r='40' fill='none' stroke='turquoise' stroke-width='5'/>\
\
<!-- Batterie dreht links -->\
<circle id='batteryClockwise' cx='250' cy='400' r='40' fill='none' stroke='purple' stroke-width='5' stroke-dasharray='9 5' stroke-dashoffset='3' style='display:none;;'>\
<animateTransform attributeName='transform' type='rotate' from='0 250 400' to='360 250 400' dur='5s' repeatCount='indefinite' />\
</circle>\
\
<!-- Batteriering dreht rechts -->\
<circle id='batteryCounterClockwise' cx='250' cy='400' r='40' fill='none' stroke='turquoise' stroke-width='5' stroke-dasharray='9 5' stroke-dashoffset='3' style='display:none;;'>\
<animateTransform attributeName='transform' type='rotate' from='0 250 400' to='-360 250 400' dur='5s' repeatCount='indefinite' />\
</circle>\
\
<!-- Haus + Ringsegmente -->\
<circle id='houseCircle' cx='400' cy='250' r='45' fill='none' stroke='purple' stroke-width='10' opacity='0.4'/>\
<circle id='solarSegment' cx='400' cy='250' r='40' fill='none' stroke='orange' stroke-width='5' stroke-dasharray='0 100' />\
<circle id='gridSegment' cx='400' cy='250' r='40' fill='none' stroke='blue' stroke-width='5' stroke-dasharray='0 100' />\
<circle id='batterySegment' cx='400' cy='250' r='40' fill='none' stroke='purple' stroke-width='5' stroke-dasharray='0 100' />\
<text x='400' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>House</text>\
<text id='housePower' x='400' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Lufttrockner (Blau) -->\
<circle id='airDryerCircle' cx='400' cy='100' r='45' fill='none' stroke='blue' stroke-width='10' opacity='0.4'/>\
<circle cx='400' cy='100' r='40' fill='none' stroke='blue' stroke-width='5'/>\
<text x='400' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Airdryer</text>\
<text id='airdryerPower' x='400' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Kühlschrank (Gelb) -->\
<rect x='355' y='355' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='yellow' stroke-width='10'/>\
<rect x='360' y='360' rx='20' ry='20' width='80' height='80' fill='none' stroke='yellow' stroke-width='5' />\
<text x='400' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Fridge</text>\
<text id='fridgePower' x='400' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Waschmaschine (Gelb) -->\
<rect x='505' y='55' rx='25' ry='25' width='90' height='90' fill='none' opacity='0.3' stroke='yellow' stroke-width='10'/>\
<rect x='510' y='60' rx='20' ry='20' width='80' height='80' fill='none' stroke='yellow' stroke-width='5' />\
<text x='550' y='100' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Washer</text>\
<text id='washerPower' x='550' y='115' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Trockner (Grün) -->\
<circle id='dryerCircle' cx='550' cy='250' r='45' fill='none' stroke='green' stroke-width='10' opacity='0.4'/>\
<circle cx='550' cy='250' r='40' fill='none' stroke='green' stroke-width='5'/>\
<text x='550' y='250' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Dryer</text>\
<text id='dryerPower' x='550' y='265' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Geschirrspüler (Blau) -->\
<circle id='dishwasherCircle' cx='550' cy='400' r='45' fill='none' stroke='blue' stroke-width='10' opacity='0.4'/>\
<circle cx='550' cy='400' r='40' fill='none' stroke='blue' stroke-width='5'/>\
<text x='550' y='400' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'>Dishwasher</text>\
<text id='dishwasherPower' x='550' y='415' font-family='Arial' font-size='12' fill='white' text-anchor='middle' alignment-baseline='middle'></text>\
\
<!-- Verbindungslinien -->\
\
<!-- Verbindungslinie von Batterie zu Haus (Lila) --> \
<path id='batteryToHousePath' d='M 260 354 A 110 100 0 0 1 357 260' stroke='purple' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='purple'>\
<animateMotion id='batteryToHouse' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#batteryToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Haus (Orange) -->\
<path id='solarToHousePath' d='M 260 145 A 110 100 0 0 0 357 240' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToHouse' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Batterie (Orange) -->\
<path id='solarToBatteryPath' d='M 250 145 A 0 100 0 0 1 250 354' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToBattery' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToBatteryPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Lufttrockner (Blau) -->\
<path id='houseToAirdryerPath' d='M 400 203 A 0 67 0 0 1 400 145' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='houseToAirdryer' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToAirdryerPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Kühlschrank (Gelb) -->\
<path id='houseToFridgePath' d='M 400 298 A 0 67 0 0 1 400 354' stroke='yellow' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='yellow'>\
<animateMotion id='houseToFridge' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToFridgePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Kohlenstoffarm (Grün) -->\
<path id='gridToLowCarbonPath' d='M 100 208 A 0 68 0 0 1 100 145' stroke='green' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='green'>\
<animateMotion id='gridToLowCarbon' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#gridToLowCarbonPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Haus (Blau) -->\
<path id='gridToHousePath' d='M 146 250 H 357' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='gridToHouse' dur='3s' repeatCount='indefinite'>\
<mpath href='#gridToHousePath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Trockner (Green) -->\
<path id='houseToDryerPath' d='M 446 250 A 0 0 0 0 1 505 250' stroke='green' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='green'>\
<animateMotion id='houseToDryer' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#houseToDryerPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Geschirrspüler (Blue) -->\
<path id='houseToDishwasherPath' d='M 446 260 A 110 110 0 0 1 550 354' stroke='blue' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='blue'>\
<animateMotion id='houseToDishwasher' dur='3s' repeatCount='indefinite'>\
<mpath href='#houseToDishwasherPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Solar zu Netz (Orange) -->\
<path id='solarToGridPath' d='M 240 145 A 110 100 0 0 1 146 240' stroke='orange' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='orange'>\
<animateMotion id='solarToGrid' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#solarToGridPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Netz zu Batterie (Turkis) -->\
<path id='gridToBatteryPath' d='M 146 260 A 110 100 0 0 1 240 354' stroke='turquoise' stroke-width='2' fill='transparent'/>\
<circle id='gridToBatteryStatic' r='5' fill='turquoise' style='display:none;;' />\
<circle id='gridToBatteryForward' r='5' fill='turquoise' style='display:none;;'>\
<animateMotion id='gridToBatteryForwardAnim' dur='3s' repeatCount='indefinite' keyPoints='0;;1' keyTimes='0;;1'>\
<mpath href='#gridToBatteryPath'/>\
</animateMotion>\
</circle>\
<circle id='gridToBatteryBackward' r='5' fill='turquoise' style='display:none;;'>\
<animateMotion id='gridToBatteryBackwardAnim' dur='3s' repeatCount='indefinite' keyPoints='1;;0' keyTimes='0;;1'>\
<mpath href='#gridToBatteryPath'/>\
</animateMotion>\
</circle>\
\
<!-- Verbindungslinie von Haus zu Waschmaschine (Gelb) -->\
<path id='houseToWasherPath' d='M 550 145 A 110 100 0 0 1 446 240' stroke='yellow' stroke-width='2' fill='transparent'/>\
<circle r='5' fill='yellow'>\
<animateMotion id='houseToWasher' dur='3s' repeatCount='indefinite' keyPoints='1;;0' keyTimes='0;;1'>\
<mpath href='#houseToWasherPath'/>\
</animateMotion>\
</circle>\
\
</svg>\
</div>\
</body>\
</html>\
setstate powerGrid 2024-11-08 20:32:40 airdryer_v 0
setstate powerGrid 2024-11-03 18:13:29 batteryState_v stop
setstate powerGrid 2024-11-01 12:43:15 battery_p 100
setstate powerGrid 2024-11-01 12:43:35 battery_v 0
setstate powerGrid 2024-11-08 20:33:33 dishwasher_v 0
setstate powerGrid 2024-11-08 20:32:14 dryer_v 0
setstate powerGrid 2024-11-08 20:33:13 fridge_v 0
setstate powerGrid 2024-11-08 20:33:39 grid_in_v 475.193
setstate powerGrid 2024-11-08 20:33:39 grid_out_v 81.466
setstate powerGrid 2024-11-08 20:33:39 grid_v 269
setstate powerGrid 2024-11-08 20:33:39 house_v 269
setstate powerGrid 2024-11-03 17:52:47 lowcarbon_v 0
setstate powerGrid 2024-11-08 20:33:44 solar_v 0
setstate powerGrid 2024-11-08 20:33:19 washer_v 0
defmod Powergrid_DOIF DOIF ## Grid + House\
([MQTT2_Smartmeter_2E1F50:"APOX_Power"])\
( set powerGrid grid_v {(ReadingsNum("MQTT2_Smartmeter_2E1F50","APOX_Power",0))} )\
( set powerGrid grid_in_v {(ReadingsNum("MQTT2_Smartmeter_2E1F50","APOX_E_in",0))} )\
( set powerGrid grid_out_v {(ReadingsNum("MQTT2_Smartmeter_2E1F50","APOX_E_out",0))} )\
( set powerGrid house_v {(ReadingsVal("MQTT2_Smartmeter_2E1F50","APOX_Power",0) + ReadingsVal("MQTT2_OpenDTU_585584","power",0))} ) \
\
## Airdryer\
DOELSEIF ([Luftentfeuchter:"ENERGY_Power"])\
( set powerGrid airdryer_v {(ReadingsNum("Luftentfeuchter","ENERGY_Power",0))} )\
\
## Dishwasher\
DOELSEIF ([MQTT2_zigbee_Geschirrspueler:"power"])\
( set powerGrid dishwasher_v {(ReadingsNum("MQTT2_zigbee_Geschirrspueler","power",0))} )\
\
## Dryer\
DOELSEIF ([MQTT2_zigbee_Trockner:"power"])\
( set powerGrid dryer_v {(ReadingsNum("MQTT2_zigbee_Trockner","power",0))} )\
\
## Fridge\
DOELSEIF ([MQTT2_zigbee_Kuehlschrank:"^power:.*$"])\
( set powerGrid fridge_v {(ReadingsNum("MQTT2_zigbee_Kuehlschrank","power",0))} )\
\
## Solar\
DOELSEIF ([MQTT2_OpenDTU_585584:"power"] )\
( set powerGrid solar_v {(ReadingsNum("MQTT2_OpenDTU_585584","power",0))} )\
\
## Washer\
DOELSEIF ([MQTT2_zigbee_Waschmaschine:"power"])\
( set powerGrid washer_v {(ReadingsNum("MQTT2_zigbee_Waschmaschine","power",0))} )\
setstate Powergrid_DOIF cmd_6
setstate Powergrid_DOIF 2024-11-08 20:35:49 Device MQTT2_OpenDTU_585584
setstate Powergrid_DOIF 2024-11-08 20:35:49 cmd 6
setstate Powergrid_DOIF 2024-11-08 20:35:49 cmd_event MQTT2_OpenDTU_585584
setstate Powergrid_DOIF 2024-11-08 20:35:49 cmd_nr 6
setstate Powergrid_DOIF 2024-11-08 20:32:40 e_Luftentfeuchter_events ENERGY_Period: 0,ENERGY_Today: 0.447,ENERGY_TotalStartTime: 2024-08-17T10:11:53,ENERGY_ApparentPower: 0,ENERGY_Yesterday: 0.516,ENERGY_Current: 0.000,ENERGY_Factor: 0.00,Time: 2024-11-08T21:32:40,ENERGY_ReactivePower: 0,ENERGY_Power: 0,ENERGY_Total: 82.747,ENERGY_Voltage: 0
setstate Powergrid_DOIF 2024-11-08 20:35:49 e_MQTT2_OpenDTU_585584_events is_valid: 1,ForecastToday: 864 Wh,ForecastTomorrow: 8497 Wh
setstate Powergrid_DOIF 2024-11-08 20:35:39 e_MQTT2_Smartmeter_2E1F50_events StatusSNS_APOX_Power: 264,StatusSNS_APOX_E_in: 475.202,StatusSNS_Time: 2024-11-08T20:35:39
setstate Powergrid_DOIF 2024-11-08 20:35:47 e_MQTT2_zigbee_Geschirrspueler_events on,last_seen: 2024-11-08T20:35:47+01:00,linkquality: 236,power_outage_memory: restore,energy: 14.1,power: 0,countdown: 0,indicator_mode: off/on,voltage: 226,current: 0,child_lock: UNLOCK
setstate Powergrid_DOIF 2024-11-08 20:33:13 e_MQTT2_zigbee_Kuehlschrank_events energy: 23.54,power: 0,power_outage_memory: restore,linkquality: 188,ON,last_seen: 2024-11-08T20:33:13+01:00,current: 0,child_lock: UNLOCK,voltage: 226,indicator_mode: off/on,countdown: 0
setstate Powergrid_DOIF 2024-11-08 20:35:12 e_MQTT2_zigbee_Trockner_events countdown: 0,child_lock: UNLOCK,voltage: 226,update_state: available,on,energy: 215.15,linkquality: 140,indicator_mode: off/on,current: 0,update_installed_version: 77,last_seen: 2024-11-08T20:35:12+01:00,update_latest_version: 192,power_outage_memory: restore,power: 0
setstate Powergrid_DOIF 2024-11-08 20:35:44 e_MQTT2_zigbee_Waschmaschine_events on,linkquality: 116,energy: 251.09,countdown: 0,voltage: 229,update_state: available,child_lock: UNLOCK,last_seen: 2024-11-08T20:35:44+01:00,update_latest_version: 192,update_installed_version: 77,power_outage_memory: restore,power: 0,indicator_mode: off/on,current: 0
setstate Powergrid_DOIF 2024-11-08 20:12:30 mode enabled
setstate Powergrid_DOIF 2024-11-08 20:35:49 state cmd_6