OpenHAB 2 und 1-wire

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Hallo liebe Leute
Ich bin neu hier in diesem Forum.
Bis jetzt hab ich immer nur in den vorhandenen Themen geschmökert, Jetzt hab ich aber ein Problem, bei dem ich Hilfe brauche.
Bin eher ein Anfänger.
Ich habe auf meinem Raspi 3 openhab 2 und Homegear installiert. Außerdem einen YAHM container mit CCU 2.
Ein Funkmodul ist aufgesteckt(ob es funktioniert weis ich noch nicht).
Außerdem habe ich über 1-wire fünf Temperatursensoren DS18S20 dran hängen. Da die Pins 1-12 vom Funkmodul abgedeckt sind, nehm ich für 1-wire die 3,3 V vom Pin 17, GND von 20 und die Datenleitung hängt am GPIO 21.
Mit folgendem Script lese ich die Sensoren aus. Stammt nicht von mir, so gut bin ich leider noch nicht. Hab ich runtergesaugt und mit einer Funktion erweitert, damit ich jedem Sensor einen Namen zuweisen Kann, der auch ausgegeben wird. Das Ganze in eine Schleife gelegt, alle 10 Sekunden krieg ich die Werte der Sensoren.

#!/usr/bin/python
# -*- coding: utf-8 -*-

def sensor(sensor_name):
if sensor_name == "28-000008596f98":
sensor_name = "Sensor 1"
if sensor_name == "28-000008598474":
sensor_name = "Sensor 2"
if sensor_name == "28-00000859354a":
sensor_name = "Sensor 3"
if sensor_name == "28-00000858ac61":
sensor_name = "Sensor 4"
if sensor_name == "28-000008597447":
sensor_name = "Sensor 5"
return sensor_name


while True:

# Import der Module
import sys
import os
import time

# 1-Wire Slave-Liste lesen
file = open('/sys/devices/w1_bus_master1/w1_master_slaves')
w1_slaves = file.readlines()
file.close()

# Fuer jeden 1-Wire Slave aktuelle Temperatur ausgeben
for line in w1_slaves:
# 1-wire Slave extrahieren
w1_slave = line.split("\n")[0]
# 1-wire Slave Datei lesen
file = open('/sys/bus/w1/devices/' + str(w1_slave) + '/w1_slave')
filecontent = file.read()
file.close()

# Temperaturwerte auslesen und konvertieren
stringvalue = filecontent.split("\n")[1].split(" ")[9]
temperature = float(stringvalue[2:]) / 1000

# Temperatur ausgeben
sensor_name = w1_slave

print(sensor(sensor_name) + ': %6.1f °C' % temperature)

print " "
time.sleep(10)
else:
sys.exit(0)

Funktioniert tadellos

Jetzt meine Frage :
Gibt es eine Möglichkeit den 1-wirw Bus an openhab 2 anzubinden um eine elegantere Darstellung der Ausgabe zu erreichen.
1-Wire Binding hab ich installiert.
Sonst sind meine OpenHAB Kenntnisse eher bescheiden.
Bin Jeden Tip dankbar.
Gruß
Jerry

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: OpenHAB 2 und 1-wire

Beitrag von seppy »

Hi,
ja sollte gehen, allerdings mit dem openHAB 1 Binding. Die Basiskonfiguration des Bindings erfolgt dann nicht in der openhab.cfg, sondern onewire.cfg die openHAB beim Laden des Bindings automatisch unter /etc/openhab2/services/ erzeugen sollte.

Testen kann ich leider selber nicht, da ich keine 1-wire Sensoren im Einsatz habe.

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

Re: OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Danke !

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

Re: OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Hallo
Nach ein paar Tagen Pause kann ich wieder bei meinem Projekt weitermachen.
Habe gleich eine wichtige Frage.
Wie kann ich den 1-wire Bus mit dem openHAB-Raspberry verbinden?
Brauche ich da einen eigenen Adapter oder geht das über die GPIO's?
Wird vielleicht Homegear verwendet?
GPIO-Binding ist installiert.
Grüße
Jerry

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: OpenHAB 2 und 1-wire

Beitrag von seppy »

Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

Re: OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Hallo
Vielen Dank für die Antwort. Vor allem der erste Link bringt mir als Anfänger viel.
Momentan komme ich allerdings nicht vom Fleck. Habe alles wieder neu aufgesetzt(mit neuer Karte, die alte gesichert und nicht gelöscht).
Am Raspi kann ich den 1-wire bus mit meinem Python script tadelos auslesen und ausgeben. Nur im openhab rührt sich nix. Habe GPIO,Homematic und One-Wire-Binding installiert. Die Inbox bleibt leer. Wird kein Thing gefunden. Irgend etwas mach ich falsch.
Ich arbeite ohne Monitor und Tastatur, nur mit Ssh und VNC.
Grüße
Jerry

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: OpenHAB 2 und 1-wire

Beitrag von seppy »

Hi,
so wie ich das sehe ist das OneWire Binding ein Legacy Binding und muss über ein Configfile konfiguriert werden. Dazu legst Du eine Datei unter

Code: Alles auswählen

/etc/openhab2/services/
mit Namen onewire.cfg (soweit ich weiß). Die Konfiguration in diesem File erfolgt genau wie in openHAB 1. Du kannst also den 1-wire Abschitt kopieren.
Things brauchst Du nicht und die Items musst Du über ein *.items File erzeugen.

Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

Re: OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Hallo seppy
Wieder ein kleiner Schritt vorwärts.
Die Sensoren hab ich jetzt in ein Item gepackt.

Group temperatur

Number Sensor_1 "Sensor 1 [%.1f °C]" (temperatur) { exec="<[/home/jerry/scripts/onewiretemp.sh 28-000008596f98:10000:REGEX((.*?))]" }
Number Sensor_2 "Sensor 2 [%.1f °C]" (temperatur) { exec="<[/home/jerry/scripts/onewiretemp.sh 28-000008598474:10000:REGEX((.*?))]" }
Number Sensor_3 "Sensor 3 [%.1f °C]" (temperatur) { exec="<[/home/jerry/scripts/onewiretemp.sh 28-00000859354a:10000:REGEX((.*?))]" }
Number Sensor_4 "Sensor 4 [%.1f °C]" (temperatur) { exec="<[/home/jerry/scripts/onewiretemp.sh 28-00000858ac61:10000:REGEX((.*?))]" }
Number Sensor_5 "Sensor 5 [%.1f °C]" (temperatur) { exec="<[/home/jerry/scripts/onewiretemp.sh 28-000008597447:10000:REGEX((.*?))]" }


Dann eine Sitemap


Group item=temperatur label="Heizungsteuerung" {
Frame label="Temperaturen" {
Text item=Sensor_1
Text item=Sensor_2
Text item=Sensor_3
Text item=Sensor_4
Text item=Sensor_5
}
}

In der Paper UI Tauchen alle 5 Sensoren bei den items auf, nicht aber bei den Things.
Wenn ich das Script mit der jeweiligen Sensor ID aufrufe, läuft es und ich krieg die Temperatur angezeigt.
Am Script kann es also nicht liegen.
Kannst Du mir vielleicht weiterhelfen.
Leide schon an akutem Schlafmangel.

Grüße
Jerry

Benutzeravatar
seppy
Beiträge: 738
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: OpenHAB 2 und 1-wire

Beitrag von seppy »

Hi,
Legacy Bindings erzeugen keine Things, da bin ich am Anfang auch drüber gestolpert. Kann es sein das Du ein Berechtigungsproblem hast? Aktivieren mal das Debugging. Ich habe gerade von Cyrelian gelernt, wie das in openHAB2 funktioniert. Am einfachsten über die Karaf Console (http://docs.openhab.org/administration/console.html):

1) Anmelden an der Karaf Console

Code: Alles auswählen

ssh -p 8101 openhab@localhost
2) Den Debug Modus für das Binding aktivieren:

Code: Alles auswählen

Log:set DEBUG org.openhab.binding.onewire
3) Ob es funktioniert hat kannst Du mit dem folgenden Befehl prüfen:

Code: Alles auswählen

log:list
4) Ab diesem Zeitpunkt kannst Du im Logfile genau verfolgen was passiert und ggfls. nicht läuft:

Code: Alles auswählen

tail -f -n 1000 /var/log/openhab2/openhab.log
Grüße,
Seppy
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

jerrykuehn
Beiträge: 6
Registriert: 27. Jan 2017 16:09
Answers: 0

Re: OpenHAB 2 und 1-wire

Beitrag von jerrykuehn »

Hallo seppy
Bin schon wieder ein Stück weiter.
Hab jetzt alle Sensore manuell zu den Things eingefügt.
Werden alle bei Configuration -> Things angezeigt mit grünen Feld "ONLINE"
Bein ClassicUI hab ich sie alle da.
Wenn ich einen anklicke steht der Onlineschalter auf off. Wenn ich ihn umschalte spingt er nach ca. 10 sec wieder auf off.
Die Log Datei schaut so aus:

2017-03-21 21:40:10.254 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'Connect.php' contains invalid characters, new Datapoint name 'Connect_php'
2017-03-21 21:40:10.258 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'GetID.php' contains invalid characters, new Datapoint name 'GetID_php'
2017-03-21 21:40:10.261 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'ReadMe.txt' contains invalid characters, new Datapoint name 'ReadMe_txt'
2017-03-21 21:40:32.122 [INFO ] [ternal.communicator.HomematicGateway] - No event since 1802 seconds from gateway '287faae0', restarting RPC server
2017-03-21 21:40:32.143 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'Test.php' contains invalid characters, new Datapoint name 'Test_php'
2017-03-21 21:40:32.144 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'DeviceScripts/Sonos/espeakTTS.php' contains invalid characters, new Datapoint name 'DeviceScripts_Sonos_espeakTTS_php'
2017-03-21 21:40:32.146 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'DeviceScripts/Sonos/IvonaTTS.php' contains invalid characters, new Datapoint name 'DeviceScripts_Sonos_IvonaTTS_php'
2017-03-21 21:40:32.147 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'Connect.php' contains invalid characters, new Datapoint name 'Connect_php'
2017-03-21 21:40:32.148 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'GetID.php' contains invalid characters, new Datapoint name 'GetID_php'
2017-03-21 21:40:32.149 [INFO ] [ng.homematic.internal.misc.MiscUtils] - Datapoint name 'ReadMe.txt' contains invalid characters, new Datapoint name 'ReadMe_txt'

Da kann ich leider nix anfangen damit.
Kannst Du mir weiter helfen
Grüße
jerry

Antworten