Mehrere OWServer in der fhem Konfiguration

Begonnen von dougie, 09 Januar 2013, 17:29:14

Vorheriges Thema - Nächstes Thema

dougie

Manchmal sehe auch ich den Wald vor lauter Bäumen nicht. Aber gestern hat mir Martin den entscheidenden Tipp gegeben, mit dem ich (hoffentlich) jetzt alles zum Laufen bekomme.

Heute sind meine bestellten Raspberry Pis gekommen, und zwischendurch gab's noch 2x 16GB SD-Karten von Aldi (für 9,99€ das Stück).
Also hab ich mich direkt dran gesetzt.

Resultat: so sieht jetzt meine Test-Umgebung aus.

Fhem info:
  Release  : 5.3
  Branch   : DEVELOPMENT
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2
  uniqueID : c4a87d04e3f0c5af69974648e4da2fd7

Defined modules:
  CUL        : 3
  CUL_HM     : 36
  FHEMWEB    : 4
  FLOORPLAN  : 1
  FS20       : 22
  FileLog    : 12
  Global     : 1
  OWDevice   : 4
  OWServer   : 2   <= Darum geht's hier :-)
  at         : 1
  autocreate : 1
  telnet     : 1

Defined models per module:
  CUL        : CUN
  CUL_HM     : HM-CC-TC,HM-CC-VD,HM-Dis-TD-T,HM-OU-LED16,HM-SEN-MDIR-SM
  OWDevice   : DS18S20,DS2413,LCD



fhem läuft auf dem ersten RPi mit COC und CUL. Der versorgt das ganze Haus funktechnisch mit FS20 und HomeMatic, und seit OWServer im Einsatz ist, auch den lokalen 1W-Test-Bus über das COC.
Mit einem weiteren RPi habe ich heute einen abgesetzten OWServer für die Garage generiert, der einfach über das LAN in fhem eingeblendet wird.

Die /etc/owfs.conf sieht bei dem abgesetzten OWServer etwas anders aus, weil ich dort das USB/1Wire Interface aus dem Polen-Shop einsetze.


# Serial port: DS9097 und DS2480B via FTDI USB/RS232
server: device = /dev/ttyUSB0
http: port = 2121
ftp: port = 2120
server: port = 192.168.1.25:4304 # Hier darf nicht mehr localhost:4304 stehen!
Celsius


Was soll ich sagen? Funktioniert prächtig!

Hier noch meine komplette 1-Wire Konfiguration aus der Testumgebung.

define OWServer OWServer localhost:4304
attr OWServer room OW_RPi
define OW_Temp_Test OWDevice 10.069C54020800 120
attr OW_Temp_Test model DS18S20
attr OW_Temp_Test room OW_RPi
attr OW_Temp_Test stateFormat {sprintf("%.1f",ReadingsVal("OW_Temp_Test","temperature",0))."°C"}
define Log_OW_Temp_Test FileLog /var/log/fhem/OW_Temp_Test.log OW_Temp_Test
attr Log_OW_Temp_Test logtype temp4:Plot,text:Text
attr Log_OW_Temp_Test room OW_RPi
define OW_Switch_Test OWDevice 3A.90BF02000000 60
attr OW_Switch_Test model DS2413
attr OW_Switch_Test room OW_RPi
define LCD OWDevice FF.1C0800000100
attr LCD model LCD
attr LCD room OW_RPi
define LCDup at +*00:01:00 {prg_LCDup()}
attr LCDup alignTime 00:00:00
attr LCDup room OW_RPi
define MC_OWServer OWServer 192.168.1.25:4304
attr MC_OWServer room OW_RPi
define OW_Remote_Temp OWDevice 10.3BB87A010800 120
attr OW_Remote_Temp model DS18S20
attr OW_Remote_Temp room OW_RPi
attr OW_Remote_Temp stateFormat {sprintf("%.1f",ReadingsVal("OW_Temp_Test","temperature",0))."°C"}


Ich hoffe es hilft dem ein oder anderen beim Aufbau und/oder der Auswahl seines Systems.

Hier noch das Übersichtsbild, wie ich es in das Wirksystem umsetzen werde, sobald ich die Zeit dafür finde.

VG
Ralf


(siehe Anhang / see attachement)




UweH

Zitat von: dougie schrieb am Mi, 09 Januar 2013 17:29Mit einem weiteren RPi habe ich heute einen abgesetzten OWServer für die Garage generiert, der einfach über das LAN in fhem eingeblendet wird.

Sehr interessant, bisher werkelt bei mir in der Garage ein CUNO, der eigentlich für das dortige 1Wire-Netz verantwortlich sein sollte. Zur Zeit verträgt der aber nur 4 Devices, also ungeeignet. Einen Raspi dafür zu nehmen wäre ja cool, aber "einfach über das LAN in FHEM eingeblendet wird"... Bahnhof. Wie muss ich mir das vorstellen?

dougie

Zitat von: UweH schrieb am Mi, 09 Januar 2013 19:40Sehr interessant, bisher werkelt bei mir in der Garage ein CUNO, der eigentlich für das dortige 1Wire-Netz verantwortlich sein sollte. Zur Zeit verträgt der aber nur 4 Devices, also ungeeignet. Einen Raspi dafür zu nehmen wäre ja cool, aber "einfach über das LAN in FHEM eingeblendet wird"... Bahnhof. Wie muss ich mir das vorstellen?

Genau darum geht es mir ja auch!

Also: da oben hatte ich das ja schon grob zusammen gefasst und Martin hatte mich gestern auf die richtige Spur gesetzt.

Du nimmst dir einen RPi und verpasst ihm eine feste IP Adresse und ein passendes USB/1Wire Interface.
Dann installierst du owserver (sudo apt-get install owserver) und legst die oben skizziete owfs-config an (mit deiner IP)

Das war's schon.
Mit

define MC_OWServer OWServer <deine IP>:4304

legst du den neuen OWServer dann in deiner fhem Installation an und los geht's.

VG
Ralf

UweH

OK, Danke.
In den nächsten Tagen kommt mein zweiter Raspi, dann teste ich das mal. Da bin ich ja mal gespannt.
Dann darf auch mein CUNO sich nur noch um DMX kümmern... :)

Prof. Dr. Peter Henning

Das scheint in der Tat eine sinnvolle Möglichkeit zu sein - das 1-Wire Interface beim CUNO ist auch mit den wildestens Maßnahmen nur als "fragil" hinzubekommen.

LG

pah

dougie

Zitat von: UweH schrieb am Mi, 09 Januar 2013 21:52OK, Danke.
In den nächsten Tagen kommt mein zweiter Raspi, dann teste ich das mal. Da bin ich ja mal gespannt.
Dann darf auch mein CUNO sich nur noch um DMX kümmern... :)

Hi Uwe,

ich antworte mal hier:

Du bist nicht auf den i2c Chip und das i2c Interface des RPi fetgelegt. Wenn du in die owfs.conf schaust, dann siehst du dort, das auch serielle 1-Wire Devices unterstützt werden. Oben in meinem Beispiel meldet sich der MP00202 Adapter unter /dev/ttyUSB0 an. Das hab ich in die owfs.conf eingetragen und es läuft.

Heute Nacht hatte ich noch eine Idee wie ich die Migration zu OWServer/OWDevise sanft vornehme:

Der OWServer unterstützt mehrere Connections!

Auf meinem RPi, auf dem auch fhem läuft und der/das (hat mir nie jemand erklärt wie das richtig heisst) COC installiert ist, sieht die owfs.conf jetzt so aus:


server: device = /dev/i2c-1 # i2c port: DS2482-100 ... hier wird der 1W i2c Chip des COC als Interface definiert
http: port = 2121
ftp: port = 2120
server: port = localhost:4304 # Hier wird fhem der OWServer intern zur verfügung gestellt
server: port = raspberry:4304
server: port = 192.168.1.18:4304 # Hier wird der OWServer für externe Anfragen zur Verfügung gestellt
Celsius


Der besondere Charme dieser Methode: sowohl die zukünftige fhem Installation als auch die bisherige auf der FritzBox können simultan auf den OWServer zugreifen, und ich kann mit meiner Konfiguration gemütlich umziehen, in dem ich beide Systeme eine Zeit lang parallel betreibe.

Macht immer mehr Spass!!

VG
Ralf

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

dougie



Da bin ich aktuell überfragt. Aber schau mal hier bei der Liste unterstützter Hardware.

http://owfs.org/index.php?page=hardware

VG
Ralf


thoweiss

Also der Buskoppler von E-Service stellt einen Virtuellen Com-Port bereit.

Allerdings gibt es wohl nur Treiber für Windows.

Es ist wohl ein WizNet SR107 Chip verbaut - ob es dafür Linux-Treiber gibt.... keine Ahnung.

Ich würde nicht darauf hoffen...

Martin Fischer

warum fragt ihr bei andreas nicht mal direkt nach?

gruss martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

UweH

Hallo,

ich habe den zweiten Raspi in Betrieb genommen, OWServer läuft, Devices werden erkannt. Beim ersten Raspi ist die owfs.conf geändert und der zweite Raspi mittels
define Ext_OWServer OWServer <IP>:4304
eingebunden. Nun bekomme ich bei get Ext_OWServer devices folgende Meldung:
Use of uninitialized value in split at ./FHEM/10_OWServer.pm line 186

Was sagt das den Experten?




UweH

So, mittlerweile hab ich es geschafft, bis auf eine kleine (?) Hürde. Raspi 1 erkennt alle Devices, Raspi 2 ebenfalls und auf Raspi 1 sehe ich auch alle Devices von Raspi 2. Schalten und auslesen kann ich aber nur die Devices von 2. Auf 1 werden weder Temperaturen ausgelesen noch Aktoren geschaltet. Hmm... Beide Busse laufen über I2C. Muss ich noch mal genauer untersuchen.

ABER: eine andere Konfiguration funktioniert, und die finde ich viel interessanter. OWX auf Raspi 1 und OWServer auf Raspi 2 :)

UweH

Zitat von: dougie schrieb am Mi, 09 Januar 2013 17:29Die /etc/owfs.conf sieht bei dem abgesetzten OWServer etwas anders aus, weil ich dort das USB/1Wire Interface aus dem Polen-Shop einsetze

Hallo Ralf,

hast Du schon mal versucht, auf beiden RPi per I2C und OWServer auf den 1wire-Bus zuzugreifen? Das klappt bei mir nicht. Einer per USB-Interface, der andere per I2C, das funktioniert. Wenn ich in der fhem.cfg zwei OWServer definiere, kann ich zwar die jeweils angeschlossenen 1wire-Devices auslesen, aber auf beiden Bussen funktioniert das Schalten von Aktoren nicht und Temperaturen werden nicht mehr ausgelesen...
Hast Du eine Idee dazu?

dougie


Moin Uwe,

ich bin nicht sicher, ob ich deine Frage richtig verstanden habe.

Grundsätzlich kann nur _EIN_ 1W Bausmaster pro Hardware-1W-Bus vorhanden sein. Das kann ja beliebig ein i2c oder USB Adapter sein.
Sobald ein owserver auf diesem Bus läuft, kannst du den ja von beliebig vielen Clients abfragen oder Daten hin senden.

Aktuell habe ich einen RPi einzig und allein dafür abgestellt, zusammen mit einem MP00202 USB/1W Busmaster als owserver zu arbeiten.

Ich kann von mehreren fhem Installationen im Netz sowohl die dort vorhandenen Sensoren abfragen, als auch Text auf ein angeschlossenes LCD schicken.


Beantwortet das deine Frage?

VG
Ralf

UweH

Moin Ralf,

ich bekomme die Kombination "OWServer mit I2C auf RPi 1" und "OWServer mit I2C auf RPi 2" nicht zum laufen. Sobald ich z.B. auf dem einen mit OWX oder OWServer per USB auf den 1Wire-Bus zugreife, ist alles wieder gut.
Daher wollte ich gerne mal wissen, ob nur bei mir dieses Problem besteht oder das generell nicht funktioniert.

dougie


Bei mir funktioniert das (bis auf das USB/FT232 Problem auf dem RPi) einwandfrei.

Sicher, das du kein Hardware-Problem hast? Pull-Up Widerstände in beiden Fällen gleich?

VG
Ralf

UweH

Hardware-Probleme kann ich ausschließen. Funktioniert jeder für sich prima in jeder Konfiguration...nur eben nicht beide zusammen mit OWServer und I2C...
Offenbar hat jeder RPi so seine eigenen Probleme... :o