Seite 1 von 2

Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 23. Aug 2019 11:52
von peter-pan
Hallo Zusammen.
Ich habe zwei RPi's im Netzwerk laufen. Auf dem Ersten ist OH2.5.M2 installiert.
Auf dem Zweiten läuft das Standard-System von Raspberry als "kleine" Büroanwendung.

Kann ich aus OH heraus eine Datei auf dem zweiten RPi auslesen und als String anzeigen lassen? (genauer gesagt: "/sys/class/thermal/thermal_zone0/temp")

Freue mich über jede Antwort.
Gruss,
Peter

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 23. Aug 2019 11:58
von webguards
Meine Lösung wäre ein BASH-Dienst, welcher die Daten ausliest und via MQTT sendet.
oder SAMBA-Freigabe für den Ordner und den beim anderen PI einhängen.

Ich tendiere zu MQTT-Lösung

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 23. Aug 2019 12:53
von peter-pan
webguards hat geschrieben: 23. Aug 2019 11:58 Meine Lösung wäre ein BASH-Dienst, welcher die Daten ausliest und via MQTT sendet.
oder SAMBA-Freigabe für den Ordner und den beim anderen PI einhängen.

Ich tendiere zu MQTT-Lösung
Das hört sich toll an, aber leider verstehe ich nur Bahnhof :oops: .
Ich weiss gerade mal, dass ich so ein Samba-Dingsda auf meinem Pi (OH) habe und dass ich dadurch von meinem Windows-Rechner per Explorer auf den Pi gucken kann.
Ausserdem weiss ich noch dass ich Mosquitto auf meinem OH-Pi laufen habe, der für meine Sonoffs zuständig ist.
Das ist aber auch schon alles. Man darf von einem alten Mann, der jetzt ein neues Spielzeug (Hobby) hat, nicht allzu viel erwarten. In meinem früheren Leben war ich Buchhalter/Controller und kenne mich EDV-technisch gerade mal mit ein paar Excel-Funktionen und natürlich weiß ich auch wo der Einschalter von meinem Rechner ist :lol: :?: :!: .

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 23. Aug 2019 13:22
von webguards
Das wird schwierig :x

Keine Ahnung von Console via SSH?

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 23. Aug 2019 15:04
von peter-pan
Putty hab ich. (An beiden Pi's).
putty.jpg
ls -alF geht auch. :) . Mit openhab-cli console, sudo systemctl start/stop/restart openhab2, sudo shutdown kann ich grad noch umgehen.
Aber dann :?:

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 24. Aug 2019 08:10
von udo1toni
Du kannst Samba dafür nutzen, aber irgendwie ist das extrem umständlich. Letztlich musst Du ohnehin ein Script schreiben, welches die Datei regelmäßig überträgt.
Es gibt verschiedene Möglichkeiten, das Problem zu lösen.

eine Variante wäre, ein Script zu schreiben, welches auf dem 2. Raspberry läuft und in regelmäßigen Abständen die Datei per http an openHAB schickt. Dazu brauchst Du nur curl auf dem Raspberry.
  • In openHAB legst Du ein Item für die Temperatur an.
  • Anschließend gehst Du in die REST API Dokumentation und suchst Dir den Befehl heraus, mit dem Du einem Item einen Wert zuweisen kannst. Dort trägst Du den Namen des Items ein und probierst den Befehl aus. Du erhältst zusätzlich zum gesetzten Item einen curl Aufruf.
  • Den kopierst Du auf den 2. Raspberry in ein Bash Script.
  • Anschließend passt Du den curl-Aufruf dahingehend an, dass er nun den Inhalt Deiner Datei sendet.
  • Das fertige Script speicherst Du an einem passenden Ort.
  • Dann legst Du mittels sudo crontab -e einen Job an, der minütlich Dein Script startet.
Alternativ kannst Du auch ein kleines Python Script verwenden, welches dann auf dem 2. Raspberry läuft und den gleichen Job erledigt. Die Übertragung kann man natürlich auch mittels MQTT erledigen, für Python gibt es eine Bibliothek, die es komfortabel macht, mit ienem MQTT Broker zu kommunizieren. Ich habe selbst solche Scripte im Einsatz, allerdings bin ich grade nicht zuhause (erst Montag wieder).

Die erste Variante ist extrem simpel zu realisieren, allerdings wird das Script maximal minütlich aufgerufen, wenn Du mehrere Messungen pro Minute haben willst, muss das Bash Script entsprechend mehrere Updates senden und zwischendurch mittels sleep warten. Im Gegensatz zu openHAB ist das in einem Bash Script aber ok...

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 24. Aug 2019 13:57
von peter-pan
@udo1toni

Zuerst mal Danke für deine Ausführungen.
Ich werde mal versuchen damit klar zu kommen. (Aber du weisst ja, von andern Posts, dass ich gerne mal "von hinten durch die Brust ins Auge" denke und handle ;) :lol: , so sind sie halt die Buchhalter)

Gruss,
Peter

P.S.: Das Probieren muss aber noch ein bisschen warten, muss jetzt Rasen mähen (Anweisung von meiner Chefin :roll: )

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 11. Sep 2019 22:50
von eiGelbGeek
MQTT Binding und dann vom Pi via Bash Script

Ich z.b. polle die CPU Temperaturen nach Openhab mit folgenden Script auf den RPi's

Code: Alles auswählen

sudo nano /usr/local/mqtt_rpi/mqtt_rpi_temperature.sh

Code: Alles auswählen

#!/bin/bash

mqtt_broker_ip="xxx.xxx.xxx.xxx"
mqtt_broker_port="1883"
mqtt_topic="/broker/topic/rpi/temp/"
mqtt_item="RPi_temperature"

Temperature=$(/opt/vc/bin/vcgencmd measure_temp | awk -F "=" '{print $2}' | awk -F "\'" '{print $1}' 2>/dev/null)
mosquitto_pub -h $mqtt_broker_ip -p $mqtt_broker_port -t $mqtt_topic$mqtt_item/status -m $Temperature
Rechte setzen

Code: Alles auswählen

sudo chmod u+x /usr/local/mqtt_rpi/mqtt_rpi_temperature.sh
Cronjob

Code: Alles auswählen

sudo crontab -e

Code: Alles auswählen

0-59/5 * * * * bash /usr/local/mqtt_rpi/mqtt_rpi_temperature.sh >/dev/null 2>&1

Das kann man bestimmt noch optimieren ... ich mache 2 mal awk um nicht benötige Zeichen zu löschen .... das geht bestimmt auch in einen Aufruf ... aber so what ;-) Das zweite awk ist das entfernen des °C ... könnte man auch drin lassen, aber dann hätte man in OH einen String und keine Number ... eine Number kann man natürlich besser verarbeiten in einer Rule ... z.b. Temp über 70 Grad send Telegramm über 80 Grad sudo shutdown -h now

Item

Code: Alles auswählen

Number RPi_temperature "RPi Temperatur [%s °C] " { channel="mqtt:topic:rpi:RPi_temperature" }
Thing

Code: Alles auswählen

Thing mqtt:topic:rpi "MQTT - RPi - Daten" (mqtt:broker:rpi) {
    Channels:
        Type number : RPi_temperature "RPi Temperatur" [ stateTopic="/broker/topic/rpi/temp/RPi_temperature/status" ]
}

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 12. Sep 2019 09:09
von peter-pan
Supi @eiGelbGeek!! Danke für deinen Tipp. Werde ich mal versuchen in den nächsten Tagen umzusetzen. Habe MQTT vor 1 1/2 Wochen von Version 1.x auf 2.x umgestellt. Das sollte dann ja auch klappen.

Re: Datei aus einem 2.ten RPi auslesen. Geht das ?

Verfasst: 13. Sep 2019 13:55
von eiGelbGeek
Sollten Probleme auftreten, weißte ja wo mich findest :mrgreen: