« Photovoltaik / PV  |

PV-Überwachung ohne Cloud - Seite 2

Teilen: facebook    whatsapp    email
Zusammenfassung anzeigen
 1  2  3 
  •  precision
  •   Bronze-Award
2.2. - 18.3.2026
51 Antworten | 13 Autoren 51
51
Eigentlich ist es mir ein Dorn im Auge, dass die PV-Daten in eine Cloud gehen:

https://blog.codinghorror.com/content/images/2025/05/there-is-no-cloud--1-.pngBildquelle: https://blog.codinghorror.com/content/images/2025/05/there-is-no-cloud--1-.png
Es liegt sowieso bei jeden von uns viel zu viel Zeug auf irgendwelchen Servern vom Onlinebanking über vertrauliche Mails, Kalendereinträge bis zu Röntgenbilder,...

Und der Stromverbrauch ist nochmal eine ganz andere Nummer.
Man erkennt damit Tagesroutinen der Bewohner und die Information sollte nicht in falsche Hände gelangen.

Deswegen finde ich diesen Artikel sehr interessant.
https://www.inside-digital.de/news/pv-ueberwachung-ohne-hersteller-cloud-neue-plattform-sucht-tester

Ich hab zwar keine Bus-System zuhause, aber wenn es möglich wäre mit geringem Equipment und einem Heimnetzwerk die Daten abrufbar zu machen, wäre das eine echt tolle Sache.

Mich wundert ehrlich gesagt, dass es soetwas nicht schon lange gibt. 

Was sagt ihr dazu?

  •  precision
  •   Bronze-Award
12.2.2026  (#21)
Debian ist installiert.
SSH, Wireguard.
Wenn alles läuft, dann kommt noch InfluxDB und Grafana für Monitoring.

Die Konfiguration ist aber gar nicht so wenig Arbeit.

1
  •  thohem
12.2.2026  (#22)
Wie hast das alles am laufen? 

Ich hab die ganzen Programme in einem docker stack über portainer laufen. So bleibt alles persistent und die Konfiguration ist leicht über das yaml file zu machen

1
  •  precision
  •   Bronze-Award
14.2.2026  (#23)
Gestern habe ich eine Niederlage gehabt.

Zuerst musste ich statt Wireguard auf Tailscale ausweichen wegen meines Lte-router.
Kein Problem, hat tadellos funktioniert und ich konnte vom Handy aus den Wechselrichter anpingen. 

Die Kommunikation klappt also, nächster Schritt ist sind die PV -Tools. Zuerst Phyton installieren...
... FESTPLATTE VOLL!!!

Das kann doch nicht sein, dass ein minimal Debian mit ein paar Programmen eine 4gb Platte voll belegt. 

OK, das Wireguard kann ich wieder runterschmeißen, aber mir fehlt noch die restlichen PV-Programme. 
Das wird nicht viel Sinn machen so fortzusetzen. 

Jetzt muss ich schauen, ob ich eine andere Festplatte bekomme oder dazustecken kann.
Oder ich wechsle zu einer noch schlankeren Distro, falls es die gibt. 

Sehr ärgerlich auf jeden Fall. 

1
  •  Benji
  •   Gold-Award
14.2.2026  (#24)

zitat..
precision schrieb: Das kann doch nicht sein, dass ein minimal Debian mit ein paar Programmen eine 4gb Platte voll belegt. 

Meinst du wirklich 4 GB? Weil das ist (für einen PC) nicht wirklich viel (auf einem Raspi oder so natürlich was anderes)
Was hast du denn für einen PC?
Wo du wirklich viel sparen kannst: eine alternative GUI (falls du überhaupt eine brauchst), also KDE oder Gnome durch was schlankes ersetzen (ich hab seit Jahren Xfce4, und will nie mehr was anderes)


1
  •  christoph1703
14.2.2026  (#25)
Wenn du ganz viel sparen willst: Alpine Linux
Aber 4GB sind heutzutage nicht mehr viel, das hast du schnell mal wenn du ein paar Daten aufzeichnest.

1
  •  precision
  •   Bronze-Award
14.2.2026  (#26)
Na Oida!!!
Problem beseitig, aber das hat mir Energie gekostet...
Ich hab keinen Dunst warum, aber bei der Installation hat der Thinclient eine 1,5 GB-Swap-Partition angelegt. Dadurch hatte ich auch keine 4GB, sondern nur 2,5GB. Und die waren dann irgendwann einmal voll...
Zum Glück kann man bei Linux die Partitionen auch nachträglich anpassen. 
Ich habe nur SSH-Debian. 

Jetzt hab ich gerade noch die Modbus-Anbindung mit Python probiert und bin da gleich aufs nächste Problem gestossen. Jetzt mag ich nicht mehr.
Ich geh schlafen. 
Gute Nacht! 💤

1
  •  Spt42
  •   Silber-Award
15.2.2026  (#27)
ich würde so oder so in etwas mehr Speicher investieren. 

# du -sh /var/lib/influxdb/
61G     /var/lib/influxdb/

1
  •  Benji
  •   Gold-Award
15.2.2026  (#28)

zitat..
Spt42 schrieb: 61G     /var/lib/influxdb/

Interessehalber: was /wieviel hast du gespeichert? Und über welchen Zeitraum?

bei mir sind in etwas über 2 jahren 16 GB zusammengekommen:

SELECT
    relname AS table,
    pg_size_pretty(pg_total_relation_size(schemaname || '.' || relname)) AS total_size,
    pg_size_pretty(pg_table_size(schemaname || '.' || relname)) AS table_size,
    pg_size_pretty(pg_indexes_size(schemaname || '.' || relname)) AS index_size,
    stats.table_len 
FROM                 
    pg_stat_user_tables
CROSS JOIN LATERAL pgstattuple(pg_stat_user_tables.schemaname || '.' || pg_stat_user_tables.relname) AS stats
ORDER BY                                                                                                     
    pg_total_relation_size(schemaname || '.' || relname);
   table    | total_size | table_size | index_size | table_len  
------------+------------+------------+------------+------------
 hints      | 24 kB      | 8192 bytes | 16 kB      |          0
 fann       | 56 kB      | 40 kB      | 16 kB      |      16384
 schedule   | 1856 kB    | 1416 kB    | 440 kB     |    1449984
 solcast    | 3504 kB    | 2520 kB    | 984 kB     |    2580480
 request    | 5392 kB    | 3776 kB    | 1616 kB    |    3833856
 price      | 5528 kB    | 3872 kB    | 1656 kB    |    3964928
 wattpilot  | 6336 kB    | 4512 kB    | 1824 kB    |    4587520
 meteoblue  | 23 MB      | 9248 kB    | 14 MB      |    9469952
 openmeteo  | 23 MB      | 9288 kB    | 14 MB      |    9510912
 energy     | 109 MB     | 45 MB      | 64 MB      |   46776320
 dhcp       | 224 MB     | 175 MB     | 49 MB      |  182927360
 prediction | 462 MB     | 220 MB     | 242 MB     |  230342656
 smartmeter | 524 MB     | 382 MB     | 142 MB     |  400023552
 x2         | 812 MB     | 671 MB     | 140 MB     |  703856640
 fronius    | 1114 MB    | 972 MB     | 142 MB     | 1019011072
 grid       | 1276 MB    | 501 MB     | 775 MB     |  525459456
 harvest    | 3583 MB    | 1356 MB    | 2227 MB    | 1421352960
 mqtt       | 8441 MB    | 2977 MB    | 5464 MB    | 3121143808





1
  •  Spt42
  •   Silber-Award
15.2.2026  (#29)
ich hab Influx in Verwendung seit es Grafana gibt (über 10 Jahre). Aktuell sind knapp 25Gb von iOBroker/Hass und Checkmk. Der Rest kommt von Unifipoller welcher ALLES aus meinem Unifi Netz sammelt. Man könnte hier sicher ordentlich ausmisten/zusammenfassen, aber am Ende sind 60Gb heute "nix". 

1
  •  precision
  •   Bronze-Award
16.2.2026  (#30)

zitat..
Spt42 schrieb:

ich würde so oder so in etwas mehr Speicher investieren. 

# du -sh /var/lib/influxdb/
61G     /var/lib/influxdb/

Das ist bei meinem Thinclient nicht ganz so einfach, weil er nur 4GB auf einer direkt verlötetem Flashspeicher hat. Ein Tausch ist daher kaum möglich.
Ok - das habe ich beim Gebrauchtkauf unterschätzt, aber fürs erste Herumspielen mit PV-Aufzeichnung wird es hoffentlich reichen.
Die Datenaufzeichnung wollte ich auf einen externen USB-Stick/Festplatte machen. Ich denke, dass sollte kein Problem sein.

zitat..
Benji schrieb:

Interessehalber: was /wieviel hast du gespeichert? Und über welchen Zeitraum?

bei mir sind in etwas über 2 jahren 16 GB zusammengekommen:

Das ist jetzt gar nicht so wenig. Kann man da vielleicht den Intervall auch hochdrehen? Also statt 1Sekunden- auf 30Sekunden-Intervall ausdünnen für Langzeitarchivierung?

Momentan hänge ich aber noch immer in der Konfiguration:
Der Modbus TCP ist zwar aktiviert, aber der Zugriff auf lokale Geräte scheinbar nicht freigegeben. Das muss mir der Elektriker erst freischalten.
Das ist lästig, dass man für das eigene System auf den Gutwill des Auftragnehmers angewiesen ist.
Naja. Ich muss den Elektriker nachher kontaktieren. 


1
  •  thohem
16.2.2026  (#31)

zitat..
precision schrieb: Das ist jetzt gar nicht so wenig. Kann man da vielleicht den Intervall auch hochdrehen? Also statt 1Sekunden- auf 30Sekunden-Intervall ausdünnen für Langzeitarchivierung?

Sicher, mach 2 buckets: einmal "live" einmal "archiv". Meine DB ist für 2 Jahre bei 250mb.

Ich heb meine live Daten für 3 Monate auf und schmeiß sie dann weg. jede Stunde hol ich mir die 15min Mittelwerte in das archiv per Task ( über |> integral()). Ist dann in Grafana auch viel schneller zu rechnen, wenn man pro Tag nicht 86400 Werte hat sondern nur 96


1
  •  precision
  •   Bronze-Award
16.2.2026  (#32)

zitat..
thohem schrieb:

Sicher, mach 2 buckets: einmal "live" einmal "archiv". Meine DB ist für 2 Jahre bei 250mb.

Ich heb meine live Daten für 3 Monate auf und schmeiß sie dann weg. jede Stunde hol ich mir die 15min Mittelwerte in das archiv per Task ( über |> integral()). Ist dann in Grafana auch viel schneller zu rechnen, wenn man pro Tag nicht 86400 Werte hat sondern nur 96

Super Lösung! So werde ich es auch machen.

Die Mail an den Elektriker ist draussen.
Ich hoffe, dass ich dann an die Daten rankomme.


1
  •  brtl
19.2.2026  (#33)
Mit den 4GB wirst nur Probleme haben, ich würde mir da eine Lösung überlegen. Wieso kein Raspberry Pi mit einer ordentlich dimensionierten SD-Karte?

Und wieso eigentlich nicht was fertiges wie Home Assistant? Da hast schnell Erfolgserlebnisse und kannst dann immer noch anpassen Ende nie.

1
  •  precision
  •   Bronze-Award
20.2.2026  (#34)
Bei mir ist das jetzt einmal ein erstmaligen reinwachsen in die Materie und nicht das Ende der Reise.
Die Festplatte vom Thinclient ist klein, aber ich kann per USB ja externe Festplatten dazustecken.

Mit Home Assistant hab ich mich bisher noch gar nicht auseinandergesetzt.
Aber ich bin offen für alles. 
 
Ein Anliegen ist mir aber auf jeden Fall langfristig von der Cloud wegzukommen.


1
  •  precision
  •   Bronze-Award
26.2.2026  (#35)
So, der Elektriker war da.
Ich komme jetzt auch mit Installer-Zugang rein.
In den Kommunikationeinstellungen ist im "Dongle-Parametereinstellungen" der  "Modbus TCP" auf "Aktivieren (uneingeschränkt)" gestellt.

Wechselrichterseitig sollte also alles funktionieren.
Aber leider bekomme ich noch immer keine Daten geliefert.

Ich hoffe, dass ich das bald zum Laufen bekomme.
Langsam nervt es mich nämlich.



1
  •  Spt42
  •   Silber-Award
26.2.2026  (#36)
poste mal deine Modbus abfrage

1
  •  precision
  •   Bronze-Award
26.2.2026  (#37)

Das Python Script:
from pymodbus.client import ModbusTcpClient

client = ModbusTcpClient('192.168.8.101', port=502)
client.connect()

print("Connected:", client.connected)

# Huawei 0-based offset
result = client.read_input_registers(address=32063, count=2, slave=1)

print(result)

client.close()

Die Ausgabe:
Verbunden: True Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 8 bytes (0 received)
nmap sagt:
Starting Nmap 7.93 ( https://nmap.org ) at 2026-02-25 20:24 CET
Nmap scan report for lwip (192.168.8.101)
Host is up (0.0023s latency).

PORT STATE SERVICE 502/
tcp open mbap

Nmap done: 1 IP address (1 host up) scanned in 0.66 seconds


Chatgpt sagt:
  • ✅ Port 502 ist offen (mbap)
  • ✅ TCP Verbindung funktioniert
  • ✅ Dongle direkt am Router
  • ✅ Modbus TCP „uneingeschränkt“ aktiviert
  • ✅ Richtige Registerart probiert
  • ✅ Offset probiert
  • ✅ Unit 0 / 1 / 100 probiert

...und vermutet einen Fehler bei den Input Register.

1
  •  Spt42
  •   Silber-Award
26.2.2026  (#38)
"Unit 0 / 1 / 100 probiert" => im Script hast du aber "slave" angegeben?

1
  •  precision
  •   Bronze-Award
26.2.2026  (#39)
Ja, ich habe da aber schon einige Varianten ausprobiert. 🤣

1
  •  precision
  •   Bronze-Award
26.2.2026  (#40)
Endlich!
mbpoll -m tcp -p 502 -a 1 -t 4:int -r 32064 -c 2 192.168.8.101und es kommt eine Antwort:
mbpoll 1.0-0 - FieldTalk(tm) Modbus(R) Master Simulator
Copyright © 2015-2019 Pascal JEAN, https://github.com/epsilonrt/mbpoll
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; type 'mbpoll -w' for details.

Protocol configuration: Modbus TCP
Slave configuration...: address = [1]
                       start reference = 32064, count = 2
Communication.........: 192.168.8.101, port 502, t/o 1.00 s, poll rate 1000 ms
Data type.............: 32-bit integer (little endian), output (holding) register table

-- Polling slave 1... Ctrl-C to stop)
Read output (holding) register failed: Connection timed out
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
[32064]:        0
[32066]:        0
-- Polling slave 1... Ctrl-C to stop)
Read output (holding) register failed: Connection timed out
-- Polling slave 1... Ctrl-C to stop)
Read output (holding) register failed: Invalid data
-- Polling slave 1... Ctrl-C to stop)
Read output (holding) register failed: Invalid data
-- Polling slave 1... Ctrl-C to stop)
Read output (holding) register failed: Invalid data
^C--- 192.168.8.101 poll statistics ---
14 frames transmitted, 9 received, 5 errors, 35.7% frame loss
0 Watt werden geliefert, weil es draussen komplett finster ist.

Das angepasste Modbus Skript liefert aber trotzdem noch nix:

from pymodbus.client import ModbusTcpClient
from pymodbus.payload import BinaryPayloadDecoder
from pymodbus.constants import Endian

client = ModbusTcpClient(
    host="192.168.8.101",
    port=502,
    timeout=5
)

client.connect()

result = client.read_holding_registers(
    address=32064,
    count=2,
    slave=1
)

if result.isError():
    print("Fehler:", result)
else:
    decoder = BinaryPayloadDecoder.fromRegisters(
        result.registers,
        byteorder=Endian.BIG,
        wordorder=Endian.LITTLE
    )
    value = decoder.decode_32bit_int()
    print("Aktuelle Leistung (W):", value)

client.close()
dann kommt wieder:

Fehler: Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 8 by
tes (0 received)



1
  •  brtl
27.2.2026  (#41)
Da kommen mit mbpoll ja auch viele Fehler. Funktioniert das Python-Script nie, egal wie oft du es wiederholst? Ich kenne mich mit modbus (noch) nicht aus, aber die Verbindung scheint hier nicht zuverlässig zu funktionieren. Versuche mal retries=5.

1


Beitrag schreiben / Werbung ausblenden?
Einloggen

 Kostenlos registrieren [Mehr Infos]