Danke für die Hinweise. Ich werde die Kommandos heute noch mal auf dem PC ausführen. Bislang habe ich es vom Mac über das Terminal gemacht. Ist im Grunde kein Unterschied, aber vielleicht umgehe ich da eventuelle Fehler beim Zeilenumbruch oder "Sonderzeichen".
Hier mal meine Versuche den KSEM zu pingen. Musste dazu mal Chat CPT befragen. Habe also keine Ahnung, ob ich alles richtig gemacht habe ?!
Oder wie pinge ich den KSEM? Im Browser kann ich unter der IP drauf zugreifen, das ist aber ja nicht Modbus...
ich meinte, einfach wenn du per SSH auf deinem VenusOS connected bist, "ping 192.168.178.180", aber ich vermute dass das funktionieren wird.
Wo hast du den das import Kommando eingefügt?
ich habs bei mir da eingebaut:
import carlo_gavazzi
import ev_charger
import smappee
import abb
import Kostal_SmartEnergyMeter
import logging
@stivmaster Ping scheint zu klappen:
Last login: Tue Apr 25 18:14:02 2023
root@einstein:~# ping 192.168.178.180
PING 192.168.178.180 (192.168.178.180): 56 data bytes
64 bytes from 192.168.178.180: seq=0 ttl=64 time=1.760 ms
habe bei seq=138 abgebrochen Ich dachte der pingt nur ein mal...
meine dbus-modbus-client.py
sieht so aus:
#! /usr/bin/python3 -u
from argparse import ArgumentParser
import dbus
import dbus.mainloop.glib
import faulthandler
import os
import pymodbus.constants
from settingsdevice import SettingsDevice
import signal
import time
import traceback
from vedbus import VeDbusService
from gi.repository import GLib
import device
import mdns
import probe
from scan import *
from utils import *
import watchdog
import carlo_gavazzi
import ev_charger
import smappee
import abb
import logging
import Kostal_SmartEnergyMeter
log = logging.getLogger()
NAME = os.path.basename(__file__)
VERSION = '1.24'
__all__ = ['NAME', 'VERSION']
pymodbus.constants.Defaults.Timeout = 0.5
MODBUS_TCP_PORT = 502
MODBUS_TCP_UNIT = 1
MAX_ERRORS = 5
FAILED_INTERVAL = 10
MDNS_CHECK_INTERVAL = 5
MDNS_QUERY_INTERVAL = 60
SCAN_INTERVAL = 600
UPDATE_INTERVAL = 250
if_blacklist = [
'ap0',
usw...
Habe es jetzt mal wie Du VOR import logging gepackt. Wie erwartet keine Besserung. Ich denke wir übersehen irgendetwas anderes... Kann sich nicht jemand bei mir aufschalten, der das schon erfolgreich umgesetzt hat?
LG,
Tommy
Ich habe jetzt noch mal alles von der Trouble Shooting Liste abgeprüft und bin beim letzten Punkt stutzig geworden, weil mein KSEM einfach nicht gefunden wird:
root@einstein:~# cd /var/log/dbus-modbus-client/
root@einstein:/var/log/dbus-modbus-client# ls
@40000000644669e41b22fbbc.s @40000000644810f43b15c544.u @40000000644b9fea09cf0e14.s current lock state
root@einstein:/var/log/dbus-modbus-client# vi current
@40000000644ba242169107ec INFO Starting background scan
@40000000644ba242180861c4 INFO Scanning 192.168.178.67/24
@40000000644ba2b52642f1dc INFO Scanning 192.168.178.94/24
@40000000644ba3290b01f47c INFO Scan complete
@40000000644ba5811ad87d6c INFO Starting background scan
@40000000644ba5811c5958dc INFO Scanning 192.168.178.67/24
@40000000644ba5f43b571fbc INFO Scanning 192.168.178.94/24
@40000000644ba668072b1734 INFO Scan complete
@40000000644ba8c010702334 INFO Starting background scan
@40000000644ba8c011eadc54 INFO Scanning 192.168.178.67/24
@40000000644ba9333813666c INFO Scanning 192.168.178.94/24
@40000000644ba9a727ae2654 INFO Scan complete
@40000000644babff3723da34 INFO Starting background scan
@40000000644babff389dbc7c INFO Scanning 192.168.178.67/24
@40000000644bac7315cf753c INFO Scanning 192.168.178.94/24
@40000000644bace70029c174 INFO Scan complete
@40000000644baf3f0e3d977c INFO Starting background scan
@40000000644baf3f0fbc30cc INFO Scanning 192.168.178.67/24
@40000000644bafb21decfce4 INFO Scanning 192.168.178.94/24
@40000000644bb02531906c54 INFO Scan complete
@40000000644bb27e02b62914 INFO Starting background scan
@40000000644bb27e04290294 INFO Scanning 192.168.178.67/24
@40000000644bb2f2091ff5dc INFO Scanning 192.168.178.94/24
@40000000644bb3652eae7274 INFO Scan complete
~
~
~
~
~
~
~
- current 24/24 100%
Die beiden IP Adressen sind ein mal LAN und ein mal WLAN. KSEM und CerboGX hängen am gleichen Anschluss der Fritzbox über einen Switch. Sollte ja Wurscht sein, hauptsahe eigene IP.
Laut Anleitung sollte er hier den KSEM finden (Found KOSTAL_KSEM at tcp:<ksem-ip>:502:1
). Tut er aber nicht.
Hier noch mal meine Einstellungen vom KSEM:
Der KSEM ist doch Slave und der CerboGX ist Master. Muss ich noch was da eintragen? Hat mein KSEM vielleicht noch irgendwelche anderen versteckten Einstellungen, die einen Zugriff verhindern? Hat der Anlagenbauer (Eigensonne) vielleicht irgendwo einen Riegel vorgeschoben?
Habe jetzt mal das CerboGX Menü komplett durchsucht und folgendes gefunden.
Modbus dann deaktiviert und wieder aktiviert, da war der Fehler kurz weg, kam dann aber wieder. Hat das mit meinem Problem zu tun?
Ach so, wenn ich mit Putty oder Terminal auf dem Cerbo bin, immer als root...
Need help /p>
Ich hab WLAN nicht verbunden, da ich dass nicht brauchen kann, ein Gerät mit zwei IP Adressen. Wenn du das ausprobieren willst, einfach die Verbindungen löschen. Deaktivieren geht nicht, wenn ich mich recht erinnern kann.
@stivmaster ja, ich hatte es jetzt erst aktiviert als Verzweifelung irgendwass probieren. Hatte es vorher auch aus (allein um Energie zu sparen) und es ging nicht. Aber ja, ich schalte es jetzt mal wieder aus. Falls es dann funktioniert melde ich mich. Würde mich aber arg wundern... Sonst stimmt alles, was ich geschrieben habe?
Hallo Tommy,
auf jedenfall WLAN aus.
Bei mir funktioniert es.
Hier einige Screenshots zum Vergleichen:
@400000006448502600e5e96c CCGX booted (0)
@40000000644850271234a6f4 starting dbus-modbus-client
@4000000064485033037041b4 INFO Waiting for localsettings
@40000000644850340d0751cc INFO Found KOSTAL_KSEM at tcp:192.168.178.192:502:1
@40000000644850343009b0fc INFO registered ourselves on D-Bus as com.victronenergy.grid.cg_0
@4000000064485034399376bc INFO registered ourselves on D-Bus as com.victronenergy.modbusclient.tcp
bei mit ist im KSEM
unter Modus TCP die eigenen KSEM IP (.192) eingetragen.
Bei dir ist da nichts drin.
KSEM ist auf der aktuellen SW Version
Evtl. mal die IP und den Port eintragen.
Gruß
Jemba
Habe die Modbus TCP des "Masters" also des KSEM nun auch bei "Slave" eingetragen. Incl. Port 502. Bisschen unlogisch aber ich probiere alles aus
WLAN Zugang gelöscht und somit deaktiviert.
@40000000644bc3270fb62204 CCGX booted (0)
@40000000644bc32804fb0834 starting dbus-modbus-client
@40000000644bc331001055a4 INFO Waiting for localsettings
@40000000644bc33100828bec INFO waiting for settings
@40000000644bc3331788c5cc INFO Starting background scan
@40000000644bc3332816718c INFO Scanning 192.168.178.67/24
@40000000644bc3333718b2bc INFO registered ourselves on D-Bus as com.victronenergy.modbusclient.tcp
@40000000644bc3a7121ba49c INFO Scanning 192.168.178.94/24
@40000000644bc41a2052dd3c INFO Scan complete
@40000000644bc6722d5a4c54 INFO Starting background scan
Jetzt wird auch die WLAN IP Adresse des Cerbo nicht mehr angezeigt, nur die LAN IP Adresse. Leider aber kein "Found KOSTAL_KSEM at tcp:" 🙁
Ich glaube als nächstes werde ich den Cerbo mal auf Werkseinstellungen zurück setzen und alle noch mal machen.
Andere Ideen, was ich testen kann/ woran es liegen kann?
Hallo Tommy, dann würde ich evtl. mal komplett von vorne anfangen und auf einem sauber neu aufgesetztem System starten. macht es evtl. einfacher.
Gruß
Jemba
@phil Ich habe die Datei dbus-modbus-client.cpython-38.pyc wie von Dir beschrieben gelöscht, sie wird aber beim neustart nicht neu erzeugt. Ist Dir das Problem bekannt?
/opt/victronenergy/dbus-modbus-client/__pycache__ die datei dbus-modbus-client.cpython-38.pyc und starte danach neu. Die Datei wird beim hochfahren wieder neu angelegt, beinhaltet aber dann die von dir hinzugefügte Zeile 😉
Ich denke, ich brauche die Datei, wenn er sie aber nicht neu erzeugt?!
Hallo,
Hatte auch das Problem das ich keine Verbindung vom RPI auf den KSEM hinbekommen habe, der TCP-Modbus Scan lieferte keine Ergebnisse. Ich habe aber eine Lösung gefunden. Lt. "BA_KOSTAL_Interface_KSEM_EN.pdf" (google hilft;-)) Identifiziert sich der KSEM mit der (Standard-)Antwort 0x4852 hex (18514 dez) an der Adresse 0x2001. Interessanterweise ist aber in der GitHub Version (Stand 20.02.23) in Kostal_SmartEnergyMeter.py als Identnummer 18498 dez hinterlegt. Also bei mir hat daher geholfen
models = {
18498: { ....
durch
models = {
18514: { ....
zu ersetzen! Danach reboot + Modbus-TCP Scan und funzt perfekt! Vielen Dank! Das spart mir einen Smartmeter 😉
Thx,
MoJo
Ich habe es nun dank einem Freund nach 4h "debugging" gefunden. Für alle anderen ist das vielleicht auch relevant:
der KSEM identifiziert sich scheinbar nicht nur mit der 18498 dez, 18514 dez sondern bei mit mit der 18530 dez. Wenn man die auch ergänzt, klappt alles auf Anhieb.
Alles andere war korrekt. Ich befürchte, Kostal wird in Zukunft auch noch andere Nummernkreise vergeben. Vielleicht kann jemand eine Abfrage einbauen, mit der man die Nummer vorher abfragt. Ich werde jedenfalls erst mal kein Update machen 🙂
Danke an Phil und alle für die Vorarbeit!
(und Danke an Dennis, der es nach 4h raus bekommen hat:-))
Tommy
Hi,
Danke @tommyt dass du die Lösung gepostet hast. Und sorry an alle anderen, dass ich mich nicht beteiligt habe. Bin zur Zeit im Urlaub und hatte die letzten Wochen wenig Zeit 🙁
Das ist echt Mist, dass der Wert sich immer ändert. Laut Doku ist auf dem Register die Info gespeichert, dass es sich um ein KSEM handelt. Von unterschiedlichen Versionen erwähnen die nichts. Man könnte noch auf das Register für "Ich bin von Kostal" ausweichen, aber das birgt andere Gefahren...
Auf alle Fälle nehme ich in die Troubleshooting Liste mit auf, wie man den Wert von KSEM ermittelt. Habe in dem anderen repo bereits ein Testscript, damit ist das einfach zu erledigen. Update kommt dann ab nächster Woche.
Viele Grüße an alle
Phil
Evtl. gibt es mittlerweile auch unterschiedliche Hardwareversionen. Mir ist neulich aufgefallen, als ich mein KSEM upgedated habe, dass im Downloadbereich bei Kostal jetzt mehrere angezeigt werden. Es gibt da jetzt das KSEM und ein KESM G2.
Ja es währe toll wenn auch die Einspeise-Werte vom WR angezeigt würden!!