Ich habe alles laut Anleitung auf den Raspberry installiert.
Von Bit 2 bis 7 Habe ich die Heizungspumpen auf dem Raspberry hängen, das funktioniert einwandfrei.
Aber das auslesen der 1-Wire temp sensoren funktioniert bei mir nicht.
das sollte auf keinen Fall ein Problem darstellen.
Als erstes solltest Du mit dieser Anleitung, wie auf Seite 1 auch schon verlinkt, http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/ die Sensoren einrichten. Dann solltest Du die Temperaturen auch auf dem Raspberry per Putty sehen:
„…Two lines of text will be printed. On the second line, the section starting „t=“ is the temperature in degrees Celsius. A decimal point goes after the first two digits, so the example value of „t=22250“ is in fact „t=22.250“ degrees Celsius:…“
Wenn das funktioniert, stell bitte noch einmal eine Frage zu der „Modbus - IP-Symcon - Anbindung“, falls mein Beispiel bei Dir noch Probleme bereitet.
Ich habe bereits schon alle Temperatur-Sensoren eingebunden.
Zur zeit werden diese per SSH abgefragt.
Aufgrund der langen Skriptlaufzeit würde ich lieber die Temperaturen über Modbus abfragen.
Und genau dort habe ich das problem ich weis icht welche Schreib bzw. Leseadresse ich auswählen muss.
Du solltest als erstes eine „normale“ Integer-Zahl per Modbus zum IPS übertragen.
Mach doch in dem mb.c Code eine Variable auf 250 (die Division durch 10 um auf 25°C zu kommen mach ich im IPS).
Im Beitrag 12 dieses Threads ist ein Snapshot für die Adresse 16.
Im mb.c File (siehe Beitrag 9 dieses Threads) müsste m.E. folgendes stehen:
Hallo,
erstmal vielen Dank für diese tolle Lösung zum Anbinden des Raspberry an IPS! Es hat alles geklappt und läuft problemlos. Wenn ich jedoch den Raspberry neu starte, wird der Modbusserver anscheinend nicht mit gestartet. Ich muss diesen dann erneut mit „sudo ./mb“ starten, damit die 1-wire Temperaturen wieder ankommen.
Gibt es eine Möglichkeit dies automatisch beim booten des Raspberry zu starten (Autostart)?
Gruß
Thorsten
schön, dass es Dir gefällt. Ich habe mittlerweile 5 PI mit dieser Lösung im Einsatz, zwei davon als Türsprechstellen mit PJSIP als VoIP-Client.
Entgegen anderer Meinungen im Web, habe ich auch ca. 7 I²C-Schnittstellen direkt am Raspberry PI (kleiner 30cm) ohne jede Pegelwandlung, über 9 Monate ohne jeglichen Ausfall (i2c von Horter und Kalb).
Zusätzlich zum IPS Watchdog sende ich mir allerdings vom PI minütlich ein LifeBit und starte bei Problemen (z.B. Windows Updates = Downzeiten) mittels Batch den PI neu:
Hier kann aber sicher jeder, der sich an die Thematik Raspberry Modbus wagt, selber „Optimierungen“ vornehmen.
Nun zu Deiner Frage:
Start mittels:
/Setting it to be run
To launch the script at start-up edit the “rc.local” file needs to be edited.
sudo nano /etc/rc.local
Add the following line:/
hab mich mit Hilfe der Anleitung hier nun auch mal mit dem Pi und Modbus beschäftigt.
Modbusverbindung ist da und Ausgänge schalten funktioniert auch.
Nur stimmt bei mir etwas mit der Zuordnung nicht so ganz.
IPS Bit 0 spricht WPI 7 an
IPS Bit 1 spricht WPI 0 an
IPS Bit 2 spricht WPI 1 an
IPS Bit 3 spricht WPI 2 an
IPS Bit 4 spricht WPI 3 an
IPS Bit 5 spricht WPI 4 an
IPS Bit 6 spricht WPI 5 an
IPS Bit 7 spricht WPI 6 an
vielen Dank für das script und die wunderbaren Erklärungen.
Es funktioniert alles bestens bis auf ein kleines Thema was die letzten Tage vermehrt aufkam.
Socket Error 10054 nach jedem verbinden.
Ich brauche GPIO14 (pin8), GPIO23 (pin16) und GPIO8 (pin24) als Ausgänge und müsste einen Temperatursensor auslesen.
GPIO23 (Schreibadresse 5) funktioniert einwandfrei, sobald ich aber über Schreibadresse 7 gehe, erhalte ich den Fehler ILLEGAL_DATA_ADDRESS.
Ich möchte nicht einfach an den mb_mapping parametern herumspielen, ich möchte gerne verstehen was die Parameter bedeuten Habe leider nichts gefunden was mir weitergeholfen hätte.
Vielen Dank für eure Hilfe
Gruss Roland
Das C-Script (aus #13) ist auf meinem Pi am laufen (und mit IPS verbunden. Pi sagt „connceted“).
Ich will erstmal ganz trivial (oder für mich auch nicht ) einen GPIO (bei mir GPIO26 (=wPi26, BCM 12)) als digitalen Eingang (mit einem Taster geschaltet) nutzen bzw. aus IPS abfragen. Der Schalter geht (kann ich mit „gpio readall“ kontrollieren. Aber in IPS bekomme ich keine Antwort (?).
Welche Adresse muss ich in der IPS-Modbus-Instanz eingeben? Bzw. muss ich in dem c-Script was anpassen? Ich steige durch das c-script leider nicht durch.
es ist Sommer und der Rasensprenger Raspberry Pi läuft wieder.
Leider bekomme ich nun nachdem Update auf die neue Version im Winter folgende Meldungen angezeigt.
An für sich funktioniert alles, nur spamt es mit die das Fenster mit den Meldungen zu