NEWS
Datei in IOBroker einlesen von entferntem PI
-
Hallo liebe Gemeinde
ich habe folgendes Anliegen, ich habe auf einem entfernten Pi im Desktopordner eine TXT liegen worin ein Wert in Form von 1.54 bis 2.30 liegt, sonst nichts.
Diesen Wert möchte ich in einen Datenpunkt auf einem anderen Pi worauf auch IoBroker läuft schreiben.
Ich habe hier irgendwie keinen Ansatzpunkt wie ich das realisieren kann.
Vlt Kann mir jemand bei dieser Idee helfen.
Grüße
-
Mit dem Parser sollte das gehen
-
Mit dem Parser sollte das gehen ` Dazu muss die Datei aber vom Netzwerk aus erreichbar sein, der Desktopordner wird aber nicht zugänglich sein.
Also wäre es denkbar die Datei im Netzwerk mittels Webserver verfügbar zu machen, ohne das ein Login erforderlich ist.
Weitere möglichkeiten:
-
den Pi zum ioBroker Slave machen, eine JS Adapter instanz auf dem Slave installieren und mit 'fs' die Datei lesen
-
mit exec/ssh auf den Pi zugreifen und die Datei lesen
-
ein Python Skript erstellen was die Datei liest und die Daten per SimpleAPIan ioBroker übermittelt. Das ganz könnte man auch mit nodejs und einem JS Skript lösen, aber der Aufwand ist größer.
Was davon für dich Sinnvoll ist, musst du entscheiden.
Als Entscheidungshilfe:
-
Zyklisch Änderung der Daten? -> Parser/Webserver oder exec/ssh
-
Einmaliges einlesen der Daten -> siehe oben
-
Dynamsiche Änderung der Daten? -> Python Skript das auf Änderungen der Datei wartet
-
Noch mehr aufgaben auf dem 2ten Pi? -> ioBroker Slave
-
-
Danke schön für eure Antworten,
als erstes du der Frage nach den Aufgaben des Pis, er soll nur einen Sensorwert aufnehmen sonst nichts. nach Möglichkeit sollte auch die Reproduktion falls mal etwas stirbt übersichtlich bleiben.
Die Webserveridee kam mir auch, nur konnte ich keine Beispiele finden wie der Parser oder das Systeminfo Plugin das verarbeiten.
Grüße
-
RE
so ich habe mich mit der Werbservergeschichte beschäftigt , das ist aber leider nichts für den schnellen Datenabruf.
Sieht schön aus wenn man lange Weile hat.
Edit :
Wie war die Idee mit dem EXEC SSh zu verstehen? Eben gelesen woanders was ausführen ist auch alles von hinten durch die Lasche.
Irgendwie beschleicht mich das gefühl dazu gibt es keine einfache Lösung.
MfG
-
Ich habe ähnliches. Ein Raspberry ermittelt die Speichertemperatur, die durch den 18b20 als Datei auf diesem vorliegt. Ich lese dies mit dem Parser aus und habe es dadurch in dem Hauptsystem.
-
Warum nimmst du nicht den Simple API Adapter? Dann kannst du vom Raspi den Wert ganz bequem per curl an einen iobroker State schicken.
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://<iobroker.ip>:8087/set/<mein state="">?value= <meion wert="">Beispiel curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://192.168.99.010:8087/set/node-red.0.teststate?value=3.3</meion></mein></iobroker.ip>
-
oder Du installierst node.js auf dem Rechner, wo das Text file ist und betreibst einen kleinen Server.
Beispiel siehe:
-
Also bei mir hängen an einem Raspberry 5 Sensoren. Diese werden über ein Pythonprogramm ausgelesen und die dazu benötigte Logik realisiert. Um die Werte im ioBroker zu haben schicke ich diese einfach über mqtt (Pythonprogramm erweitert, ioBroker=mqtt Server).
Von da aus sollte der weitere Abruf/Verteilung über mqtt eigentlich kein Problem sein…
Gesendet von meinem G8441 mit Tapatalk