Seite 1 von 8

Anbindung FritzBox (FritzDect)

Verfasst: Sa Jul 20, 2019 2:28 pm
von Heiko
Hallo zusammen,

ich habe mir diese Wochen einen openWB-Raspi-Rechner gekauft und meinen Sunnyboy Wechselrichter angeschlossen. Nun habe ich zuhause noch einzelne PV-Module, deren Ertrag ich über FritzDECT-Komponenten ablese. AVM stellt für den Zugriff entsprechende APIs zur Verfügung (https://avm.de/service/schnittstellen/).
Daher folgende Fragen/Wünsche:
- ich hätte gerne die Möglichkeit, ein oder mehrere FritzDect als zusätzliche Wechselrichter einzubinden (nice to have)
- bei Stromüberschuss wäre es schön, wenn man FritzDect-Steckdosen schalten könnte (einschalten, minimale Laufzeit, damit die Dose nicht dauernd an und ausgeht, optionales Ausschalten, wenn kein Stromüberschuss mehr vorhanden ist - der FritzDect kann ja selber unter gewissen Randbedingungen ausschalten)

Da FritzBoxen recht weit verbreitet sind, könnte ich mir vorstellen, dass das Interesse recht groß ist.

Viele Grüße
Heiko

Re: Anbindung FritzBox (FritzDect)

Verfasst: Sa Jul 20, 2019 5:12 pm
von openWB
Bist der erste mit der Anforderung :)
Was ich gesehen habe braucht es nur nen recht simples script.
Das kannst du dann durch die openWB Webhooks (die können Einschaltdauer) antriggern.


Aktuell bin ich recht belegt, derweil kann sich dem gern jemand annehmen.

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mo Dez 28, 2020 3:51 pm
von fawick
Gab es da seit Juli 2019 bereits Arbeiten daran oder sind welche in Planung? Ich haette ansonsten in Q1/2021 noch Zeit dafuer frei, das Schalten von FritzDECT-Dosen fuer OpenWB zu realisieren. Ich koennte damit prima eine Gartenpumpe bei PV-Ueberschuss aktivieren.

Das Thema "FritzDect als zusätzliche Wechselrichter" verstehe ich nicht, daher wuerde ich das erstmal ausklammern. Ist damit gemeint, dass man bspw. eine Balkon-PV mit eigenem Wechselrichter zusaetzlich aktiv schaltet?

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mo Dez 28, 2020 4:09 pm
von openWB
Mangels Interesse ist hier nichts weiter passiert und auch nicht in Planung.
Shelly Steckdosen werden super unterstützt.

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mo Dez 28, 2020 5:55 pm
von fawick
Okay, dann wage ich mal einen Versuch. Welche Sprache wird fuer neue Module lieber gesehen? Bash oder Python3?

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mo Dez 28, 2020 6:51 pm
von openWB
Python3 :)

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mo Dez 28, 2020 9:00 pm
von fawick
Okay, hier ist der erste Entwurf:

https://github.com/fawick/openWB/tree/a ... automation

Implementiert ist:
  • Ein Script zum Einschalten
  • Ein Script zum Abschalten
  • Ein Script zum Auslesen der aktuellen Leistung in Watt
Was man noch machen koennte (weil die API von AVM es hergaebe):
  • Ein Script zum Auslesen der Spannung in Volt
  • Ein Script zum Auslesen der bisher transferierten Energie in (Kilo-)Wattstunden
  • Ein Script zum Auslesen der Temperatur
Was ich bisher noch nicht angefangen habe:
  • Die Integration ins Webfrontend. Ich bin mit meiner OpenWB auf 1.9003 stable, da gibt es die Combobox noch nicht (Elwa, Acthor etc). Ich muss mir mal einen anderen Pi mit einer "Spielzeug-Konfiguration" aufsetzen.
Was ich bisher noch nicht zufriedenstellend implementiert habe:
  • Konfigurierbarkeit der FritzBOX-URL (derzeit statisch auf http://fritz.box gesetzt, was in den meisten LANs vermutlich ausreichend ist)
  • Wie man die Credentials fuer die FritzBOX ablegt (username/password). Hierzu benoetige ich Beratung durch OpenWB-Team.
  • Derzeit werden vorhandene Switch-IDs ("AIN") durchiteriert, bis der gesuchte Name gefunden ist. Das werde ich noch durch ein einzelnes HTTP-GET an einen API-Endpoint setzen, der alle Home-Devices samt Name und ID gefunden ist. EDIT: Erledigt
Die Scripte erwarten zwei Parameter:
  1. Devicenummer
  2. Name des Switches wie in der Config der FritzBox eingetragen

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mi Dez 30, 2020 1:43 pm
von fawick
Bisher gab es ja noch keine Smart-Homemodule, die mehr Config als die 4 Commandline-Parameter gebraucht haben, mit denen sie aus runs/smarthomehandler.py aufgerufen wurden. Welchem Weg sollte ich denn fuer das Lesen von Config-Parametern in Python einschlagen?

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mi Dez 30, 2020 3:26 pm
von okaegi
Hm... entweder lesen die Submodule (on.py, off.py, watt.py) selber smarthome.ini oder es gibt mehr übergabe Parameter
Wenn ich das richtig checke brauchst du die ip der fritzbox (oder die Url) und ein User und ein pw.
Die übergabe im Smarthomehandler ist derweilen so
subprocess.Popen( ['python3',pyname,str(numberOfDevices),config.get('smarthomedevices', 'device_ip_'+str(numberOfDevices)),str(uberschuss),device_leistungurl])
D.h. aus python:
devicenumber=str(sys.argv[1])
ipadr=str(sys.argv[2])
uberschuss=int(sys.argv[3])
url=str(sys.argv[4])

Ich würde vorschlagen user und Pw als 5 und 6 Parameter zu machen .
Somit hätte dann der typ fritz folgende Parameter im gui
Ipadresse (Fritzbox)
User
Password
Reicht das zum Aufruf dann ?
@lutz Meinungen ?
Gruss Oliver

Re: Anbindung FritzBox (FritzDect)

Verfasst: Mi Dez 30, 2020 4:43 pm
von fawick
okaegi hat geschrieben: Mi Dez 30, 2020 3:26 pm Die übergabe im Smarthomehandler ist derweilen so
subprocess.Popen( ['python3',pyname,str(numberOfDevices),config.get('smarthomedevices', 'device_ip_'+str(numberOfDevices)),str(uberschuss),device_leistungurl])
D.h. aus python:
devicenumber=str(sys.argv[1])
ipadr=str(sys.argv[2])
uberschuss=int(sys.argv[3])
url=str(sys.argv[4])
Japp, dass sind die vier Commandline-Parameter, die ich schon angesprochen hatte.

Deine Aufzaehlung ist schon fast vollstaendig. Ich brauche noch einen Parameter mehr fuer den Namen des Aktors. Sind also die folgenden vier Parameter:
- FritzBox Adresse der FritzBox
- Name des Aktors
- Username
- Password

Fuer die Adresse kann man ja gerne weiter sys.argv[2] nutzen, lediglich die anderen drei Parameter sind speziell.

Wenn man ueber Commandline-Parameter geht, muesste in runs/smarthomehandlyer.py ein Sonderfall fuer die AVM Home Automation geschaffen werden. Schoener waere es vielleicht, wenn man direkt Configparameter in Python lesen koennte.