Seite 2 von 2

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

Verfasst: 13. Sep 2019 20:47
von peter-pan
Klaro!! ;)

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

Verfasst: 25. Sep 2019 16:18
von peter-pan
@eiGelbGeek
Hallo Kevin,
ich habe deine SetUp benutzt und es läuft !!! Musste nur noch die Mosquitto-Clients auf dem 2ten RasPi installieren (sudo apt-get install mosquitto-clients).

Bash-Script:

Code: Alles auswählen

#!/bin/bash

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

Temperature=$(/opt/vc/bin/vcgencmd measure_temp | tr -d "a-zA-Z=' ")

# echo $Temperature

mosquitto_pub -h $mqtt_broker_ip -p $mqtt_broker_port -t $mqtt_topic$mqtt_item/status -m $Temperature # -d
Den "awk" habe ich durch "tr" ersetzt. (awk ist ja so mächtig, das war mir im Moment zu viel "Input" :roll: )

Das Thing sieht auch etwas anders aus. Ich vermute du hast Bridge und Things getrennt.

mqtt2.things

Code: Alles auswählen

//https://openhabforum.de/viewtopic.php?f=15&t=970&start=20   // from Udo
//Bridge mqtt:broker:MosquittoMqttBroker "Mosquitto MQTT Broker" @ "MQTT2" 
//       ^    ^      ^                    ^                      ^ Zeige diese Bridge auf der Unterseite "MQTT" in Paper UI Control
//       ^    ^      ^                    ^ Label der Bridge
//       ^    ^      ^ Name der Bridge
//       ^    ^ Art der Bridge
//       ^ Binding

Bridge mqtt:broker:hans "Mosquitto" [ host="localhost", port=1883, secure=false, clientID="OH2_hans" ]  
{
    Thing topic s2003 "Sonoff S20 03 RPi Office"       @ "MQTT2" {      // Steckdose zum an- und ausschalten des Raspi - ausschalten automatisch nach Shutdown + 3 Minuten mit Rule "RaspberryPi switch off after shutdown" (cpu.rules)
    Channels:
        Type switch : power     "Power "                 [ stateTopic="stat/schaltdose03/POWER", commandTopic="cmnd/schaltdose03/POWER" ]
        Type number : rssi      "WiFi Signal Strength"   [ stateTopic="tele/schaltdose03/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : version   "Firmware Version    "   [ stateTopic="stat/schaltdose03/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
        Type switch : reachable "Reachable"              [ stateTopic="tele/schaltdose03/LWT",transformationPattern="MAP:reachable.map" ]
    }
...........

    Thing topic RPI2 "Raspberry Office"                @ "MQTT2" {
    Channels:
        Type number : temp        "CPU Temp.Office-RPi"  [ stateTopic="/hans/topic/rpi/temp/RPi_temperature/status"]
    }
}
cpu.items

Code: Alles auswählen

Number    RPi_temperature               "RPi Office Temperatur [%.1f °C]"  <temperature>      (Chart_Sys_Temp)  { channel="mqtt:topic:hans:RPI2:temp" }
Den Crontab-Eintrag hab ich noch nicht gemacht, da ich die "Umleitungen" nicht ganz verstehe, braucht man die bzw. was passiert, wenn ich die nicht habe ? Hab hier schon ein bisschen gelesen.

Code: Alles auswählen

2>/dev/null + >/dev/null 2>&1

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

Verfasst: 26. Sep 2019 17:49
von eiGelbGeek
Hier ist es relativ gut beschrieben.... allerdings in Englisch ;-)

Kurz gesagt alles was nach /dev/null umgeleitet wird wird verworfen und nicht gespeichert

https://unix.stackexchange.com/question ... tab-basics

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

Verfasst: 27. Sep 2019 00:21
von peter-pan
@eiGelbGeek
thx for answering. No matter what, I try to understand. ;) .
Es ist halt für einen "Dummy" nicht immer ganz einfach, das alles zu überschauen. Ich denk aber ich hab's so einigermassen verstanden.

Noch ne Frage!

Ich hab auch versucht das Script per "crontab -e" anzulegen. Aber das klappt nicht! D.h. es wird nicht ausgeführt. Kannst du (oder wer anders) mir sagen warum ? Hab's mit "pi" und "root" probiert:

Code: Alles auswählen

 */1 * * * *   root    bash /usr/local/mqtt_rpi/mqtt_rpi_temperature.sh
Ach noch 'ne Frage! Was bedeutet die Croneinstellung:

Code: Alles auswählen

0-59/5 * * * * 
genau ?

Ich hab's mal mit

Code: Alles auswählen

*/1 * * * * 
probiert, und jetzt bekomme ich jede Minute einen Wert.

Gruss
Peter

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

Verfasst: 28. Sep 2019 19:28
von peter-pan
So, die eine Idee von Udo habe ich nun auch umgesetzt (RestAPI). Hab mich heute Mittag hingesetzt und mich mit dem RestAPI beschäftigt. Das ging eigenlich ganz leicht (wenn man's verstanden hat).

Code: Alles auswählen

#!/bin/bash

Temperature1=$(/opt/vc/bin/vcgencmd measure_temp | tr -d "a-zA-Z=' ")

curl -X PUT --header "Content-Type: text/plain" --header "Accept: application/json" -d $Temperature1 "http://192.168.xxx.xx:8080/rest/items/RPi_temperature_1/state"
Noch den Cron-Job dazu; passt!

Wenn ich da an meine Versuche denke. Mit Exec-Binding und Scripts und USB-Stick von Fritz-Box mounten, und...und.. :shock:

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

Verfasst: 30. Sep 2019 16:21
von eiGelbGeek
peter-pan hat geschrieben: 27. Sep 2019 00:21 Ach noch 'ne Frage! Was bedeutet die Croneinstellung:

Code: Alles auswählen

0-59/5 * * * * 
genau ?
Alle 5 Minuten in der Zeit von Minute 0 bis 59 .... ja ehrlich gesagt ist es das selbe wie */5 * * * * ;-) Interessant ist diese Notierung eher in dieser Form

0-30/5 * * * *

Würde heissen alle 5 Minuten von xx:00 bis xx:30


Hier ein guter leicht verständlicher Crontab Generator , der auch vorhandene Crontabs auflösen kann :-)

https://crontab.guru/

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

Verfasst: 30. Sep 2019 22:29
von peter-pan
eiGelbGeek hat geschrieben: 30. Sep 2019 16:21 Hier ein guter leicht verständlicher Crontab Generator , der auch vorhandene Crontabs auflösen kann :-)

https://crontab.guru/
Danke.

Gruss - Peter