Hallo,
kennt sich jemand mit Modbus-Kabelführung in der Praxis aus?
Man muss das symmetrische Kabel ja am Anfang und am Ende mit dem gleichen Widerstandswert abschließen.
Darf man da mittendrin kurze Abzweigungen für den Anschluss von Messgeräten usw. anlegen (so wie T-Abzweigungen), oder muss man das Kabel immer direkt von Gerät zu Gerät weiterführen?
Bei der alten Koax-Technik bei Computernetzen war das erlaubt. Die war aber unsymmetrisch.
Wenn ich mal raten darf: bis max 1 m Länge. Es geht nicht nur um Wellenwiderstand, sondern auch um Reflektionen und stehende Wellen.
Und bei 1 m lohnt das nicht, da kannste auch durchschleifen.
Letztendlich, wenns sein muss: Probieren. Wenns lauft. Gut. Wenn nicht : kaputtgehen kanns nicht.
Schon mal vorab danke.
Den Meter habe ich aus der Computer-Netzwerktechnik noch im Hinterhirn.
Soviel Meter brauche ich vermutlich gar nicht.
Ich dachte daran, das Kabel durchzuführen durch so kleine "Abzweigdosen" in denen dann immer drei bis fünf von den guten alten DIN-Buchsen eingesetzt werden (billlig und habe ich noch 50 Stück nebst Steckern liegen), eine für Eingang, eine für Ausgang und drei für die Abgänge zu den jeweiligen Messgeräten. Dann wäre es sozusagen Werktisch-Serienproduktion und das Zusammenstöpseln wird einfach.
Wenn es funktioniert und ich ganz viel Geld ausgeben will, dann nehme ich vielleicht XLR.
Ich werde dann berichten. Allerdings warte ich immer noch auf die Messgeräte.
Bei uns im Haus werkeln ja in jedem Raum an der Eingangstüre in einer UP-Dose kleine Arduinos und erfassen Raumtemperatur und Luftfeuchte des jeweiligen Raumes. Diese Werte stellen alle Teilnehmer via RS485 Modbus RTU bereit. Ein Raspi im Keller holt als Master die Werte via Iobroker und Modbus-Adapter zyklisch ab.
Wir haben also eine relativ hohe Anzahl an Teilnehmern und eine relativ große Leitungslänge. Das Bussystem ist dabei in Sternform aufgebaut, ich habe nicht zu allen Teilnehmern 4 Daten-Adern geführt (also nicht Hin und Rückleitung), sondern komme aus jedem Raum mit zwei Adern A / B sowie DC +5V und GND in einer Leitung zentral in den Unterverteilungen an und gehe dort auf KNX Klemmen. Es gibt also je eine Unterverteilung im Obergeschoss sowie im Keller. Buskonform ist das eigentlich nicht. Einen Busabschluss gibt es dabei am Ende der längsten Leitung auf dem Spitzboden sowie direkt am USB zu RS485 Adapter am Raspi.
Aufzeichnung mit dem Oszi hat gezeigt, Signalform ist gut und das System läuft seit, ich meine, 2016, sehr zufriedenstellend.
Super.
Dann sollte mein gerader Bus mit gelegentlichen Anzapfungen funktionieren.
Darf ich da bei Gelegenheit nochmal wegen der Raspi-Software usw. auf Dich zukommen? Dauert aber noch.
Ich habe bisher nur zwei Messgeräte dran, brav durchgeschleift. Das eine ist auch noch End-Of-Bus. War ganz schön fummelig, mit den Abschlusswiderständen. ist eben "gewachsen".
Zur Zeit habe ich auf der Raspberry minimalmodbus.py aus GIT-Hub im Einsatz. Das Modul muss aber dringend ausgetauscht oder überarbeitet werden, weil es der Autor ursprünglich für ein anderes Messgerät geschrieben hatte und die Abfragecodes hart in Fubktionen verdrahet hat. Ich kann daher nicht alle Möglichkeiten der Messgeräte nutzen.
Ich kann Python zwar so einigermaßen lesen, aber nicht wirklich selber programmieren
Naja, erst mal muss bekannt sein was genau zum Einsatz kommt. Handelt es sich um Modbus RTU? Dann sind die Modbusfunktionen eindeutig festgelegt über die Funktionscodes.
Bei uns werkelt allerdings kein Python, das macht mittlerweile alles der Iobroker da es bei uns ja nur um die Aufzeichnung von Temperatur- und Luftfeuchtigkeitswerten geht. Also rein lesende Funktionen.
Ich kämpfe mich da gerade nochmal durch und habe schon mehr auf der Festplatte, als ich noch wusste. (Bin leider seit Okt. 2024 Out-Of-Order gewesen.)
Jedenfalls habe ich noch PHPmodbus und PHPSerialModbus Git-Hub-Projekt PHPSerialModbus wiedergefunden und mir nochmal die neueste Version herunter geladen. So ganz habe ich das Hauptmodul noch nicht durchschaut. Wenn es funktioniert, werde ich daher ungern etwas ändern.
Kennt sich hier schon jemand damit aus? Läuft das stabil? Dann könnte ich mir das Erlernen von Python-Script vielleicht ersparen oder es zumindest hinten anstellen
Und noch eine Frage:
Läuft IOBroker als eigene Software ohne dass es ins Internet telefoniert? Wie bekomme ich da Nachhilfe, was es kann und wie ich es einsetzen kann?
Ziel:
Ich will über die Raspberry alle Geräte per Modbus abfragen und steuern (Fernschaltung). Mit PHP und Webserver komme ich so einigermaßen zurecht: Linux, Webserver, Sicherheit, Lücken, reine HTML-Frontends, evtl. JavaScript wenn es sich nicht vermeiden lässt, MySQL/Maria, usw., aber eben fast drei Jahre nicht trainiert
Die Überschrift hätte besser RS485 Kabelführung heißen müssen? Eine RS485 Verkabelung besteht aus 2 Adern einfachstem Klingeldraht verdrillt und kann bis 1000 Meter lang sein. Also vollkommen unproblematisch. Selbst sternförmige Verdrahtungen werden funktionieren. Die A + B Ader darf jedoch nicht vertauscht werden. Darauf kann man MODBUS RTU laufen lassen. Wichtig ist auf so einem Netzwerk, dass es nur einen MASTER geben darf, mit vielen Slaves. Also nur eine Software darf fragen, jedoch viele Geräte dürfen mithören und einer darf antworten.
Ulrich
Admin der Solaranzeige
Ein Open Source Projekt seit 2016
Hallo Ulrich,
danke für die Antwort. Wir hatten auch schon über Solaranzeige Kontakt vor längerer Zeit.
Ich musst nur leider eine längere Pause einlegen.
Es geht mir immer noch darum, wie ich (störungsarm) mittels meiner Raspberry alle Werte aller Geräte abfragen kann. Das einzige, was da bei mir bisher seit Jahren läuft, ist die Abfrage der SDM230-Modbus.
Und auf der Suche nach einem fertigen System finde ich leider bisher immer nur solche, die auch ins Intertnet telefonieren zu irgendeinem Home-Server abei Zoni oder in China oder so. Das will ich nicht.
Deshalb meine Rückfrage, ob sich hier schon jemand mit phpSerialModbus auskennt?
Ich bin leider nicht mehr so fit, alles selber zu "erfinden".
Nein, mit den 2 Programmen kenne ich mich leider nicht aus, da ich die Leseroutinen selber schreibe. Wie viele Geräte mit wie vielen Registerstellen willst du denn auslesen? Die sollten ja alle mit der gleichen seriellen Geschwindigkeit arbeiten.
Klar ist, dass die meisten Hersteller auf cloud basierte Lösungen gehen. Ist einfacher anzubieten und so funktioniert auch die von Kunden gewünschte Nutzung per Smartphone ohne, dass der Kunde einen VPN-Server zu Hause aufbauen muss. Kein Hersteller kann sich heutzutage mehr ein Produkt leisten, bei dem die Steuerung per Smartphone nicht unterstützt wird. Also landen die Hersteller automatisch bei der Cloud- bzw Internet-Lösung.
Persönlich nutze ich Homeassistant. Das kann man auch nutzen, ohne, dass es Internet-Zugang braucht. Gibt eine Menge Plugins für Geräte, die auch ohne Cloud/Internet funktionieren. Andere nutzen aber die Clould. Auf die muss man dann verzichten.
Bei den vielen Wechselrichtern hat sich bei Modbus das SunSpec-Modell durchgesetzt. Je nach Hersteller werden dann bestimmte Register unterstützt oder nicht und es gibt herstellerspezifische. Andere Hersteller wie z.B. Victron nutzen komplett eigene Registerfestlegungen.
Ich selbst frage meine Geräte per NodeRed per modbus/tcp und gebe das per MQTT an Homeassistant weiter. Wenn man sich einmal in NodeRed eingearbeitet hat, ist das eine tolle Sache. Für SunSpec gibt es eine Menge Beispiele in NodeRed, die man dann um die herstellerspezifischen Register erweitern kann.
Kommt alles darauf an, welche Geräte Du genau nutzt. Und klar. Alles komplett fertig gibt es nur, wenn der Hersteller seine Schnittstellen veröffentlicht. Kommt daher schon auf den Kauf an.