crycode-de / ioBroker.ds18b20

ioBroker adapter for DS18B20 1-wire temperature sensors
MIT License
6 stars 8 forks source link

Remote Verbindung zu entfernten Raspberry #11

Closed ChR-iSz closed 3 years ago

ChR-iSz commented 3 years ago

Hallo Peter,

gibt es eine Möglichkeit auf einem entfernten Raspberry im Heimnetz diese Sensoren auszulesen. Eventuell bräuchten wir eine Daemon, auf dem Zielgerät ?

-- Christian

crycode-de commented 3 years ago

Hallo Christian, ich denke der richtige (ioBroker konforme) Ansatz ist hier, auf dem entfernten Raspi einen ioBroker Slave zu installieren und auf diesem eine Instanz des Adapters einzurichten.

ChR-iSz commented 3 years ago

Hallo Peter,

danke für die schnelle Antwort. Okay, das ist mir dann doch zu viel Aufwand. Der remote rpi ist leider nur ein rpi-1b. Denke der wird mit iOBroker ein wenig überfordert. Ich versuche mal einen Workaround für mich, indem ich die entfernten ds1820 Folders auf dem ioBroker Server einmounte, und entsprechende Symlinks nach /sys/bus/w1/devices/* lege. Vielleicht klappt das ja schon.

Vielen dank für die Rückantwort.

-- Christian

crycode-de commented 3 years ago

Der Aufwand ist eigentlich recht gering und ein ioBroker Slave läuft wunderbar auf dem Raspi 1B. Ich habe auf einem Raspi 1B einen Slave mit 2 Adaptern (JavaScript und Radiohead) laufen.

Alternativ könnte man noch ein kleines Node.js Script schreiben, welches die Sensoren ausließt und den Wert dann z.B. mittels SimpleAPI oder MQTT an ioBroker schickt.

ChR-iSz commented 3 years ago

Danke Peter,

mit dem mounten hat es wunderbar geklappt. Du hast ja sogar schon den Path zu den sys Verzeichnis konfigurierbar gemacht. Konnte den Perfekt auf /mnt/sys.... ändern. Läuft soweit alles!

Danke für Deine Unterstützung!

-- Christian

crycode-de commented 3 years ago

Danke für die Info. Dann kann ich das ja mal mit in die Doku aufnehmen. :)

crycode-de commented 3 years ago

Kannst du mir vielleicht noch eine paar Infos dazu geben, was du jetzt wie genau gemountet hast? Danke schon mal! :)

ChR-iSz commented 3 years ago

Hallo Peter,

selbstverständlich.

Remote-Raspi: apt-get install samba

In der /etc/samba/smb.conf folgendes an Ende hinzugefügt:

[ds1820]
path = /sys/devices/w1_bus_master1
comment = Temperature sensors.
available = yes
browseable = yes
guest ok = yes
writeable = no
force user = root
force group = root

IoBroker-Raspi

apt-get install smbclient

In der /etc/fstab folgenden Eintrag hinzugefügt: //{IP-ADRESSE-REMOTE-RPI}/ds1820 /mnt/ds1820 cifs defaults,vers=1.0 0 0

Verzeichnis anlegen: mkdir /mnt/ds1820

Mounten mount -a

Dann in IoBroker bei Deinem Plugin den Pfad /mnt/ds1820 eingetragen.

Info: Sollten auf dem IoBroker Host auch Sensoren sein, bleibt Dein Pfad im Plugin auf /sys/devices/w1_bus_master1 und aus /mnt/ds1820 müssten entsprechende Symlinks gesetzt werden: ln -s /mnt/ds1820/xxx /sys/devices/w1_bus_master1/.

os25 commented 3 years ago

Hallo Peter, habe auf dem 2. Pi Samba installiert, leider fehlen mir noch ein paar Kenntnisse. Ich bekomme folgende Meldung pi@garten:~ $ sudo systemctl restart samba Failed to restart samba.service: Unit samba.service not found. Vielleicht kannst Du mir helfen.

--Olaf

crycode-de commented 3 years ago

@os25 Der Serivce heißt smbd und nicht samba. sudo systemctl restart smbd sollte funktionieren. Ich werde das gleich noch in der Doku anpassen.

os25 commented 3 years ago

Danke für die schnelle Antwort,

habe auf iobroker folgende Befehle ausgeführt und verbindet sich scheinbar mit 2.PI pi@iobroker:~ $ sudo mkdir -p /mnt/remote-ds1820 pi@iobroker:~ $ sudo mount /mnt/remote-ds1820 Password for root@//192.168.178.120/ds1820: **** pi@iobroker:~ $

Ordner /mnt/remote-ds1820 ist leer

beim suchen von weiteren Sensoren im iobroker fehlt scheinbar noch der richtige Pfad

Error: ENOENT: no such file or directory, open '/mnt/remote-ds1820/192.168.178.120/sys/devies/w1_bus_master1/w1_master_slaves'

danke für Info

ChR-iSz commented 3 years ago

Zeig mal die samba config vom 2.PI, wo du Deine Freigabe eingetragen hast. Samba server danach restartet auf dem 2.PI ?

crycode-de commented 3 years ago

@os25 Da passt dann noch was mit deinem Mount und der Adapterconfig nicht.

Für den Mount muss in der Datei /etc/fstab folgender Eintrag gemacht werden: (Unter der Annahme, dass 192.168.178.120 dein Remote Pi ist)

//192.168.178.120/ds1820 /mnt/remote-ds1820 cifs defaults,vers=1.0 0 0

Außerdem musst di in der Adapterconfig den Systempfad /mnt/remote-ds1820 angeben.

os25 commented 3 years ago

Samba config 2.PI

[ds1820] path = /sys/devices/w1_bus_master1 comment = DS1820 Temperature sensors available = yes browseable = yes guest ok = yes writeable = no force user = root force group = root

Und adapterconfig auf /mnt/remote-ds1820 geändert

Am 21.12.2020 um 10:02 schrieb Peter Müller notifications@github.com:

@os25 https://github.com/os25 Da passt dann noch was mit deinem Mount und der Adapterconfig nicht.

Für den Mount muss in der Datei /etc/fstab folgender Eintrag gemacht werden: (Unter der Annahme, dass 192.168.178.120 dein Remote Pi ist)

//192.168.178.120/ds1820 /mnt/remote-ds1820 cifs defaults,vers=1.0 0 0 Außerdem musst di in der Adapterconfig den Systempfad /mnt/remote-ds1820 angeben.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/crycode-de/ioBroker.ds18b20/issues/11#issuecomment-748858509, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFZRG5I73FF3BBYUHUMTX73SV4FLPANCNFSM4SLA4XHQ.

os25 commented 3 years ago

Ok Es hat geklappt Danke

Am 21.12.2020 um 10:02 schrieb Peter Müller notifications@github.com:

@os25 https://github.com/os25 Da passt dann noch was mit deinem Mount und der Adapterconfig nicht.

Für den Mount muss in der Datei /etc/fstab folgender Eintrag gemacht werden: (Unter der Annahme, dass 192.168.178.120 dein Remote Pi ist)

//192.168.178.120/ds1820 /mnt/remote-ds1820 cifs defaults,vers=1.0 0 0 Außerdem musst di in der Adapterconfig den Systempfad /mnt/remote-ds1820 angeben.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/crycode-de/ioBroker.ds18b20/issues/11#issuecomment-748858509, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFZRG5I73FF3BBYUHUMTX73SV4FLPANCNFSM4SLA4XHQ.

LupinIII commented 3 years ago

Das Freigeben funktioniert so nicht, da der Adapter das Unterverzeichnis w1_bus_master1 lesen will (die Freigabe IST dieses Verzeichnis). Wie oben: Error: ENOENT: no such file or directory, open '/mnt/remote-ds1820/w1_bus_master1/w1_master_slaves'

Das ganze /sys/devices Verzeichnis (in dem sich w1_bus_master1 befindet) möchte ich mit root-Rechten aber auch nicht freigeben (aus Prinzip, auch wenn's nur der raspi ist).

Ich habe daher ein Verzeichnis in /srv (ich denke, dort passt's am besten hin) mkdir -p /srv/1wire und dort einen Symlink angelegt ln -s /sys/devices/w1_bus_master1/

Die Samba-Share ist dann für /srv/1wire. Damit Symlinks in der Share funktionieren, muss man aber noch das in der smb.conf in den entsprechenden Abschnitten hinzufügen:

[global]
unix extensions = no
....

[ds1820]
follow symlinks = yes
wide links = yes
....

Damit finde ich jetzt zumindest die am Raspi angeschlossenen Sensoren übers Netzwerk, Temperatur sehe ich aber noch keine. Für die Instanz ist "Connected to ds18b20" gleich "false"

crycode-de commented 3 years ago

Ich arbeite aktuell an einer Lösung bei der die Dateifreigaben dann komplett entfallen.

Mit v1.4.x wird es möglich sein, Remote-Systeme direkt per TCP Sockets über einen kleinen Service auf z.B. einen entfernten Raspi einzubinden.

crycode-de commented 3 years ago

Die Version 1.4.0 ist ab sofort auf NPM und ab morgen im latest Repo verfügbar. Damit wird nun die Einbindung von entfernten Sensoren direkt im Adapter über den eigenen Remote Client unterstützt. (siehe Doku) Somit sind jetzt die Umwege über Samba etc. nicht mehr notwendig. :-)