{"id":19019,"date":"2022-01-17T12:35:18","date_gmt":"2022-01-17T10:35:18","guid":{"rendered":"https:\/\/www.wjst.de\/blog\/?p=19019"},"modified":"2022-11-08T10:52:52","modified_gmt":"2022-11-08T08:52:52","slug":"wechselrichter-und-stromzahler-mit-fritzbox-verbinden","status":"publish","type":"post","link":"https:\/\/www.wjst.de\/blog\/sciencesurf\/2022\/01\/wechselrichter-und-stromzahler-mit-fritzbox-verbinden\/","title":{"rendered":"Wechselrichter und Stromz\u00e4hler mit FRITZ!Box verbinden"},"content":{"rendered":"<p>Es w\u00e4re interessant, die Daten der Photovoltaik zur Steuerung von Steckdosen zu nehmen, um Ger\u00e4te nur bei \u00dcberschuss anzuschalten. Und zwar ohne teure extra Hardware oder einen Smartmeter, der auch noch alle Haushaltsdaten nach aussen funkt quasi als Einladung an potentielle Einbrecher &#8230;<\/p>\n<p>Die Kopplung geht einfacher als gedacht. Mein <a href=\"https:\/\/www.fronius.com\/de\/solarenergie\/installateure-partner\/technische-daten-uebersicht\">Fronius Wechselrichter<\/a> ist im Heimnetz unter http:\/\/192.168.187.1\/solar_api\/v1\/GetPowerFlowRealtimeData.fcgi zu erreichen. Die aktuelle Wattzahl\u00a0 kommt im json Format.<\/p>\n<p><a href=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-16-um-08.54.43.jpg\" data-rel=\"key-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-19020\" src=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-16-um-08.54.43.jpg\" alt=\"\" width=\"402\" height=\"592\" srcset=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-16-um-08.54.43.jpg 402w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-16-um-08.54.43-340x500.jpg 340w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/a><\/p>\n<p>Die FRITZ!Box kann die Daten zwar im Augenblick nicht verarbeiten (AVM hat dies aber als Produktvorschlag akzeptiert),\u00a0<a href=\"https:\/\/avm.de\/fileadmin\/user_upload\/Global\/Service\/Schnittstellen\/AHA-HTTP-Interface.pdf\"> daf\u00fcr kann die FRITZ!Box eine Steckdose<\/a> schalten.\u00a0Also brauchen wir doch einen zweiten Rechner zur \u00dcberbr\u00fcckung. Ich nehme daf\u00fcr einen <a href=\"https:\/\/www.berrybase.de\/raspberry-pi\/raspberry-pi-computer\/boards\/raspberry-pi-zero-2-w\">Raspberry Pi Zero<\/a> (der Pi Zero 2 ist vergriffen, aber auch nicht notwendig)\u00a0 am besten in der Ausf\u00fchrung WH mit Pinleiste.\u00a0 Stromversorgung kommt von einem Netzteil in N\u00e4he des Sicherungskasten\/Stromz\u00e4hlers, zum Test \u00fcber 3 Tage reicht aber auch eine \u00fcbliche\u00a0 Powerbank.<\/p>\n<p>Zun\u00e4chst wird das Pi <a href=\"https:\/\/www.raspberrypi.com\/software\">OS<\/a> auf eine alte micro SD Karte installiert und die Karte in den Zero gesteckt. Sobald der Zero dann im WLAN erscheint, kann man ihn <a href=\"https:\/\/learnembeddedsystems.co.uk\/headless-raspberry-pi-setup\">headless\u00a0<\/a>d.h, ohne Peripherieger\u00e4te via SSH weiter konfigurieren.\u00a0 Als Messeinheit brauchen wir noch einen <a href=\"https:\/\/www.ebay.de\/itm\/313460034498?hash=item48fbac8bc2:g:B50AAOSwSIVgFDfN\">USB IR Lesekopf<\/a>, der am Stromz\u00e4hler das Blinken der Diode ausliest.<\/p>\n<p>Mit einem cronjob werden im Minutenabstand die Daten abgeholt. Die Abfrage des <a href=\"https:\/\/www.stadtwerke-burgdorf-netz.de\/_Resources\/Persistent\/9450d40cdc3d62d8de38a3e4b06ad5d6805c87b4\/Gebrauchsanleitung_LK13BE8030x9.pdf\">Logarex<\/a> Wechselstromz\u00e4hlers funktioniert dabei mit<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nstty -F \/dev\/ttyUSB0 300 -parodd cs7 -cstopb parenb -ixoff -crtscts -hupcl -ixon -opost -onlcr -isig -icanon -iexten -echo -echoe -echoctl -echok\r\necho -n -e '\\x2F\\x3F\\x21\\x0D\\x0A' &gt;&gt; \/dev\/ttyUSB0\r\ntimeout 10s cat \/dev\/ttyUSB0\r\n<\/pre>\n<p>Ab einer bestimmten Leistung der PV kann dann die Steckdose eingeschaltet werden, im Prinzip mit<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nwatt=$(curl http:\/\/192.168.187.1\/solar_api\/v1\/GetPowerFlowRealtimeData.fcgi | jq '.Body.Data.Inverters&#x5B;1].P')\r\nif &#x5B;&#x5B; $watt -gt 200 ]]\r\nthen\r\nhttp:\/\/fritz.box\/webservices\/homeautoswitch.lua?switchcmd=setsimpleonoff&amp;amp;amp;ain=13077%200012360-1&amp;amp;amp;onoff=1\r\n<\/pre>\n<p>Die Hardware passt in ein kleines Geh\u00e4use, die Kosten liegen unter 50\u20ac, dazu kommt noch die schaltbare Steckdose.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Update 26.1.22<\/span><\/p>\n<p>Der Abfragecode ist nun in ein PHP Skript verpackt und gibt die Daten in einer h\u00fcbschen <a href=\"https:\/\/d3js.org\/\">d3.js Grafik<\/a> aus.<\/p>\n<p><a href=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-26-um-17.27.28.jpg\" rel=\"key\" data-rel=\"key-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-19131 size-full\" src=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-01-26-um-17.27.28.jpg\" alt=\"\" width=\"575\" height=\"350\" \/><\/a><\/p>\n<p>Im Augenblick l\u00e4uft die Datensammlung inklusive regelm\u00e4ssiger <a href=\"https:\/\/openweathermap.org\/\">openweathermap<\/a> Abfrage um sp\u00e4ter ein <a href=\"https:\/\/towardsdatascience.com\/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e\">R-CNN<\/a> zur Vorhersage zu programmieren.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Update 23.2.22<\/span><\/p>\n<p>Der Lesekopf funktionierte einwandfrei mit dem Drehstromz\u00e4hler Logarex LK13BDxxxx obwohl die Shell Kommandos nur sehr primitiv in ein PHP Skript eingebaut waren.<\/p>\n<p><a href=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12.jpg\" data-rel=\"key-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-21004\" src=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12-620x402.jpg\" alt=\"\" width=\"620\" height=\"402\" srcset=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12-620x402.jpg 620w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12-772x500.jpg 772w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12-768x498.jpg 768w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12-1536x995.jpg 1536w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-11-08-um-08.51.12.jpg 1685w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Mit dem Einbau eines neuen bidirektionalen Smartmeters <a href=\"https:\/\/www.mit-n.de\/fileadmin\/user_upload\/Dateien\/Messwesen\/Messwesen_Strom\/EFR-SGM-C4-Produkthandbuch.pdf\">SGM-C4-xxxxxx<\/a> durch unseren Stromversorger funktioniert das\u00a0 leider nicht mehr. Problem ist nicht etwa, da\u00df die Kommunikation nun mit 9600\/8\/N\/1 l\u00e4uft, das Problem ist da\u00df die bin\u00e4re SML Zeichen, die nun jede Sekunde kommen, nicht richtig\u00a0 interpretiert werden.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nstty -F \/dev\/ttyUSB0 9600 cs8 -cstopb -parenb\r\ntimeout 2s cat \/dev\/ttyUSB0 | od -tx1\r\n<\/pre>\n<p>Python downgrade f\u00fcr den <a href=\"https:\/\/www.stefan-weigert.de\/php_loader\/sml.php\">php_loader<\/a> machte wenig Sinn, node liess sich auch nicht auf dem Zero installieren und <a href=\"https:\/\/github.com\/nrocco\/smeterd\">smeterd<\/a> brach leider mit einer Fehlermeldung ab.\u00a0Einzig mit <a href=\"https:\/\/github.com\/volkszaehler\/libsml\">libsml<\/a> hatte ich aber Erfolg<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\napt-get install uuid-dev uuid-runtime\r\ngit clone https:\/\/github.com\/volkszaehler\/libsml\r\ncd libsml\r\nmake\r\nexamples\/sml_server -s \/dev\/ttyUSB0\r\n<\/pre>\n<p>Die -s Option ist dabei undokumentiert, aber wichtig denn nur sie findet genau einen Datensatz. Aus <a href=\"https:\/\/www.mit-n.de\/fileadmin\/user_upload\/Dateien\/Messwesen\/Messwesen_Strom\/EFR-SGM-C4-Produkthandbuch.pdf\">Zeilen 1.8.0 und 2.8.0<\/a> l\u00e4sst sich \u00fcber einen regex Ausdruck der Z\u00e4hlerstand auslesen.<\/p>\n<p><a href=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-02-24-um-14.29.41.jpg\" data-rel=\"key-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-19490\" src=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-02-24-um-14.29.41-620x563.jpg\" alt=\"\" width=\"620\" height=\"563\" srcset=\"https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-02-24-um-14.29.41-620x563.jpg 620w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-02-24-um-14.29.41-551x500.jpg 551w, https:\/\/www.wjst.de\/blog\/wp-content\/uploads\/2022\/01\/Bildschirmfoto-2022-02-24-um-14.29.41.jpg 649w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Update 2.3.22<\/span><\/p>\n<p>Auf Anfrage kann ich auch das komplette Messger\u00e4t verleihen, falls jemand denselben Z\u00e4hler testweise auslesen oder die SD Karte klonen m\u00f6chte.\u00a0 Wenn sich der Zero nicht das eigenes WLAN findet, <a href=\"https:\/\/www.raspberryconnect.com\/projects\/65-raspberrypi-hotspot-accesspoints\/183-raspberry-pi-automatic-hotspot-and-static-hotspot-installer\">startet er einen eigenen Hotspot<\/a>, ist damit also autonom \u00fcberall verwendbar.<\/p>\n<p><span style=\"text-decoration: underline;\">Update 6.9.22<\/span><\/p>\n<p>L\u00e4uft und l\u00e4uft &#8230; Allerdings boote ich nun einmal in 24 Stunden per crontab , da sich manchmal nach 10 Tagen der Zero aufh\u00e4ngt.<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n0 1 * * * shutdown -r now\r\n<\/pre>\n<p><span style=\"text-decoration: underline;\">Update 8.11.22<\/span><\/p>\n<p>L\u00e4uft nun seit 10 Monaten ohne einen Ausfall, genauso wie der <a href=\"https:\/\/www.wjst.de\/blog\/sciencesurf\/2022\/03\/apropos-gasboykott-wie-hoch-ist-eigentlich-mein-gasverbrauch\/\">Gasz\u00e4hler<\/a>.<\/p>\n\n<p>&nbsp;<\/p>\n<div class=\"bottom-note\">\n  <span class=\"mod1\">CC-BY-NC Science Surf , accessed 01.05.2026<\/span>\n <\/div>","protected":false},"excerpt":{"rendered":"<p>Es w\u00e4re interessant, die Daten der Photovoltaik zur Steuerung von Steckdosen zu nehmen, um Ger\u00e4te nur bei \u00dcberschuss anzuschalten. Und zwar ohne teure extra Hardware oder einen Smartmeter, der auch noch alle Haushaltsdaten nach aussen funkt quasi als Einladung an potentielle Einbrecher &#8230; Die Kopplung geht einfacher als gedacht. Mein Fronius Wechselrichter ist im Heimnetz &hellip; <a href=\"https:\/\/www.wjst.de\/blog\/sciencesurf\/2022\/01\/wechselrichter-und-stromzahler-mit-fritzbox-verbinden\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Wechselrichter und Stromz\u00e4hler mit FRITZ!Box verbinden<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[3727,3731,3725,3772,3729,3726,3724,3730,3723],"class_list":["post-19019","post","type-post","status-publish","format-standard","hentry","category-computer-software","tag-datenbank","tag-fritzbox","tag-pv","tag-raspberry-pi","tag-sensor","tag-solarstrom","tag-stromzaehler","tag-verbrauch","tag-wechelrichter"],"_links":{"self":[{"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/posts\/19019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/comments?post=19019"}],"version-history":[{"count":51,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/posts\/19019\/revisions"}],"predecessor-version":[{"id":21006,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/posts\/19019\/revisions\/21006"}],"wp:attachment":[{"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/media?parent=19019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/categories?post=19019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wjst.de\/blog\/wp-json\/wp\/v2\/tags?post=19019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}