HA Phython (?) script (bezahlt) - wen fragen?

jck5000

Cadet 4th Year
Registriert
Jan. 2010
Beiträge
79
Hallo liebe Leute mit eventuell Ahnung,

ich erkläre das "lange" Problem gerne ausführlich, aber so kurz es geht (ich schreibe beruflich):

Es gibt für HomeAssistant ein fertiges Plugin.
Es gibt für HomeAssistant einen fertigen IP-Scanner.

Mein A1-Hybridmodem (irgendwas Huawei, DSL/LTE/5G) gibt meinem Wechselrichter von Goodwee gerne lustig neue IP-Adressen nach Reset. Die Fehlerquelle variiert, aber ich hätte gerne was, was die sicher irgendwo gespeicherte "aufzurufende" IP-Adressse im Goodwe-Plugin durch die der MAC-Adresse zum Aufrufzeitpunkt entsprechende IP-Adresse ersetzt.

Ich hab ~0 Ahnung von Programmieren, das ist meine Fehlerbeschreibung als Laie. Mein Stiefvater ist gelernter Ingenieur-Programmierer und hält das Problem für "trivial", kann aber kein Python, hat dazu keine Lust mehr, das zu lernen und ist ~80.

Dessen Vorschlag war es, "kann man da nicht wen dafür zahlen, dass er das macht?". Daher frage ich mal hier, wen man da fragen kann. Oder wo. Die Macher des Goodwe-Plugins hab ich schon (vorsichtig) gefragt, auf Github, aber das scheint da nicht Usus zu sein (mein Verständnis).
 
Warum sagst nicht einfach dem Router welche Adresse er zu vergeben hat?
 
  • Gefällt mir
Reaktionen: Ja_Ge
jck5000 schrieb:
Die Macher des Goodwe-Plugins hab ich schon (vorsichtig) gefragt, auf Github, aber das scheint da nicht Usus zu sein (mein Verständnis).
https://github.com/mletenay/home-assistant-goodwe-inverter
Das oder was anderes?
Was ist den mit dem discovery teil unten?

Was hat das Bild im Anhang damit zu tun?

Kannst du eine feste IP zuweisen oder die Leasetime hoch stellen?

Und.. Einen Python Freiberufler zu bezahlen, ist nach ca 1-2 Stunden Teurer als ein frischer DHCP Server. Kannst du im prinzip einfach da laufen lassen, wo du auch HA betreibst und dann im Modem / Router abschalten.
 
Zuletzt bearbeitet:
Ich denke auch, dass es nicht zielführend ist die sich ändernde IP irgendwo zu hinterlegen. Sinnvoller wäre es, dafür zu sorgen, dass der WR immer die gleiche IP bekommt. Wenn er selbst nicht entsprechend konfiguriert werden kann, dann über eine manuelle Zuweisung im Router.
 
  • Gefällt mir
Reaktionen: Ja_Ge und Phil_81
Oder mittels static arp entry nachhelfen.

Aber die Frage ist: Wieso bekommt das Gerät ständig wechselnde IP-Adressen?
 
Okay, sorry für das Bild im Anhang, das war eine zu komplexe, andere, Frage. Das ist jetzt weg.

Zu den anderen - und eigentlich allen:

Ja, es wäre super-praktisch, wenn die Funktion "Fixed IP" des Goodwe-Wechselrichters irgendeine erkennbare Funktion hätte. Hat sie aber nicht.

Es wäre auch praktisch, wenn die Funktion des Routers, IP-Adressen für Gerät [MAC] das tun würde, wozu sie gut ist. Tut sie aber nicht.

Die beiden sinnvollen Alternativen sind also wegen Mist-Software auf der nicht-tauschbaren Hardware halt leider raus.

Die wäre (A1-seitig) eine (enorm kastrierte) "Huawei Ha-35-22", und beim WR ein
GW10K-ET von Goodwe. Goodwe hat das mit "ohne DHCP" verbockt, und A1 bei der wahrscheinlich funktionierenden Hauwei-Anpassung für die Vergabe.

Nein, ich möchte nicht 6.000€ für nen neuen WR ausgeben, und A1 elaubt nut dieses Hybrid-Modem, bei alternativen Anbietern hab ich da kein Rest-DSL mehr, und LTE/5G kannst Du da bei Gewitter knicken; ich brauch so schon ne Richtantenne.

madmax2010 schrieb:
Und.. Einen Python Freiberufler zu bezahlen, ist nach ca 1-2 Stunden Teurer als ein frischer DHCP Server. Kannst du im prinzip einfach da laufen lassen, wo du auch HA betreibst und dann im Modem / Router abschalten.

Wäre das hier die interessanteste Idee - die ich ja nun auch schon hatte. Das blöde, (unausweichliche) A1-Dings will halt unbedingt DHCP-Server sein. Das könnte mit egal sein, aber ich hab (vor Jahren) da schon ne Fritzbox 7590 dahinter gehängt, und zumindest mein Stiefvater behauptet, die würden sich "irgendwie nicht mögen", und der war der mit der Frage, ob man da nicht einfach jemanden bezahlen könnte.

Ob / dass das nötig ist, sei hier nebensächlich. Der Mann ist 15 Jahre in Rente. Selbst Programmierer. Ich hab eher so Null Ahnung; ich hab Wirtschaft studiert, ich würde da einfach alles neu machen; ist wahrscheinlich einfacher, und aus so nem 14€-Futro S720 bekommt man mit noch ner zweite Netzwerkkarte schon eher alles him, wenn's dazu mal ne gute Anleitung gäbe. Wenn der denn überhaupt notwendig ist, was ich bezweifle; das kann ja so eigentlich auch die Fritzbox. Meine Fritzbox zumindest kann alles prima.Die da nicht.

Daher erweitere ich mal meine Frage von "ja wo frag ich denn für so Phython-Programmierung" auf " wie mache ich aus einem S720 einen DHCP-Server; der wird den vorgeschalteten A1-DHCP schon ignorieren können? Weiß ich halt nicht.
 
jck5000 schrieb:
wenn die Funktion des Routers, IP-Adressen für Gerät [MAC] das tun würde, wozu sie gut ist.
Hab meinen auch verflucht und mußte dann feststellen, dass bei Android jedes WLAN eine eigene Einstellung für generische MACs hat, gut dass es das Internet gibt, ich wollte schon aufgeben. Tablet und Router waren unschuldig :D.
 
du kannst ja sicher im homeassistant auch einen hostnamen anstatt der ip des wechselrichters angeben. in dem fall könnte man mit einem script (muss als root laufen) + cronjob alle x minuten nach der mac suchen und die dazugehörige ip in der /etc/hosts eintragen:

Bash:
#!/bin/bash

HOST="goodwe"
MAC="00:01:02:03:04:05"

for i in {2..254}; do (ping -c 1 -W 1 192.168.1.$i 2>&1 > /dev/null &); done
sleep 3

IP=$(arp -an | grep $MAC | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')

if [ $? != 0 ]
then
  echo "ip for mac not found"
  exit 1
fi

if grep -Fq $IP /etc/hosts
then
  echo "replace ip in /etc/hosts"
  sed -i "/$HOST/ s/.*/$IP\t$HOST/g" /etc/hosts
else
  echo "add ip to /etc/hosts"
  echo -e "$IP\t$HOST" >> /etc/hosts
fi

die gesuchte mac und das eigene netzwerk (hier 192.168.1) sind anzupassen. das script pingt alle möglichen ips in /24 an (ich habe keinen broadcast-ping genommen, weil nicht jedes gerät darauf reagiert) und schaut, ob die mac dann in der arp-tabelle steht. voraussetzung ist natürlich, dass der wechselrichter auf ping antwortet. nicht sonderlich elegant, aber mir fällt grade nichts besseres ein (hab jetzt auch keine weitere kenntnis zu homeassistant wegen dem erwähnte ip-scanner) :)
 
  • Gefällt mir
Reaktionen: jck5000 und SaxnPaule
Evtl. auch einfach nochmal bei dem Goodwe Teil schauen ob es korrekt konfiguriert ist. Evtl. muss man ihn auf Fixed/Static IP stellen UND den DHCP Client deaktivieren.
 
  • Gefällt mir
Reaktionen: jck5000
Ist da ein Smart Dongle dran verbaut? Wenn ja, dann wie von @DaZpoon vermutet:

1721279437514.png
 
  • Gefällt mir
Reaktionen: jck5000
jck5000 schrieb:
Das könnte mit egal sein, aber ich hab (vor Jahren) da schon ne Fritzbox 7590 dahinter gehängt, und zumindest mein Stiefvater behauptet, die würden sich "irgendwie nicht mögen",
Warum sollen die sich nicht mögen? Schlimmstenfalls hast du halt Double-NAT (wenn das A1 keine exposed host Funktion bietet), was eventuell minimal auf die Performance/Latenz geht.
Einen anderen Router hinter das A1-Modem zu klemmen ist (Abseits der nicht-Möglichkeit, das Modem durch was brauchbares zu ersetzen ^^) imho wohl die einzige Möglichkeit, es wirklich sauber zu machen. Ob das jetzt ne Fritzbox oder n Futro mit OpenWRT o.ä. ist würde ich mal als Erfahrungs- bzw Geschmackssache bezeichnen.

Falls du doch beim programmieren lassen bleiben willst würde ich für solche Kleinprojekte wohl am ehesten zu erst auf Fiver o.ä. schauen 🤔
 
  • Gefällt mir
Reaktionen: madmax2010
Termy schrieb:
Einen anderen Router hinter das A1-Modem zu klemmen ist (Abseits der nicht-Möglichkeit, das Modem durch was brauchbares zu ersetzen ^^) imho wohl die einzige Möglichkeit, es wirklich sauber zu machen.
BTW: Alternativlos ist wohl nur das Hybridmodem, fürs klassische Festnetz allein funktioniert eine Fritzbox auch bei A1 astrein.
 
jck5000 schrieb:
Ja, es wäre super-praktisch, wenn die Funktion "Fixed IP" des Goodwe-Wechselrichters irgendeine erkennbare Funktion hätte. Hat sie aber nicht.
Kannst du da nicht DHCP komplett deaktivieren und alles selbst setzen?
 
Vorab mal DANKE! Ich fahre erst in 10 Tagen runter und hoffe mal, dass es das Doppel-DHCP von @DazSpoon / @Phil_81 ist. Sehr benutzerfreundlich.

Ansonsten bleibt mir wohl nichts anderes übrig, als die Lösung von @0x8100 - Danke für das Script; ich bin hinreichend unbedarftes Scriptkiddie, um zu sehen, dass das das tun sollte, was ich brauche. Heißt für mich, sehr viele youtube-Videos gucken, da ich ja mal rausfinden müsste, wie ich ein "script" "als root laufen lassen" kann, via eines "cronjobs". Ich versteh's vom Konzept. Ich kann's nur nicht. Davor muss ich aber mal rausfinden, wo das Goodwe-Plugin die IP hinschreibt. Dank dieses Hinweises (explizit, dass ich da ein "script" brauche) hab ich dann auch vom Entwickler des Goodwe-Plugins im HomeAssistant Core die "experimental" - Version des Entwicklers bei Github gefunden, die angeblich

  • Services for getting/setting inverter configuration parameters

...hat.

Inverter discovery and communication testing
To test whether the inverter properly responds to UDP request, just execute the inverter_test.py script in your python (3.8+) environment. The inverter_scan.py script can be used to discover inverter(s) on your local network.

Also, einfach, wie @0x8100 sagt, das script laufen lassen. Das ist natürlich dann trivial, v.a., wenn das der Programmierer der Geschichte schon "fertig" hat, wenn auch experimentell. Wenn ich jetzt nicht an "einfach" an meine Grenze stoßen würde... aber gut, dafür gibt's youtube. Ich sag Bescheid, so in 14 Tagen, wie ich's hinbekomen habe.

"just execute the script in your python (3.8+) environment" liest sich für mich halt grob wie "you have to be a level 8 wizard with at least 200 mana to cast this spell". Aber gut, ich denke, damit komme ich klar; herzlichen Dank für den Hinweis, dass das "script" heißt, was ich suche. Wupps, gefunden. Jetzt muss ich nur noch lernen, wie man den Zauberspruch korrekt aufsagt - ich bin kein großer Fantasy-Fan; ich mag mehr "hard" SciFi oder Thriller, wo viele Leute sterben. Ich weiß aber immerhin, dass "Abrakadabra" unter Linux "sudo" heißt ;)
 
Zurück
Oben