Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Alle Infos und Tipps speziell zu openHAB 2

Moderatoren: seppy, udo1toni

Benutzeravatar
peter-pan
Beiträge: 225
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von peter-pan » 1. Jun 2019 12:04

Wie Udo schon anmerkte, solltest du das Anlegen von Items nach Möglichkeit etwas strukturierter anpacken.

Die Fehlermeldungen, die du imLoggger siehst:

Code: Alles auswählen

wenn ich in /var/log/openhab2/openhab2.log schauen sehe ich das:
nach Beitrag von oben:
019-05-30 09:36:53.826 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'Arbeitszimmer_Humidity' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:36:53.831 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'Arbeitszimmer_Humidity' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:36:53.835 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'Arbeitszimmer_Humidity' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:44:14.482 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text



gehört zum neuen Beitrag (änderung)
019-05-30 09:55:37.995 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:37.998 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'UG_waschkeller' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.000 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'UG_waschkeller' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.002 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'UG_waschkeller' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.005 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.007 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'GF_Balcony' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.009 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'GF_Balcony' for widget org.eclipse.smarthome.model.sitemap.Text
2019-05-30 09:55:38.011 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'GF_Balcony' for widget org.eclipse.smarthome.model.sitemap.Text
kommen daher, dass diese Items nirgends (weder PaperUI noch .items-File) angelegt sind. Das solltest du mal überprüfen.

croix-aigle
Beiträge: 7
Registriert: 20. Mai 2019 08:40

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von croix-aigle » 3. Jun 2019 18:20

Danke für die Info.

Wie heist es, ich sehe den Wald nicht vor lauter Bäumen.

Ich habe jetzt einfach mal die Werte von udo1toni eingefügt, passiert nichts. Weil meine fehler noch weiter im Items usw nicht richtig sind.

Da mir das aktuell komplex vorkommt und ich mit openhabian erst recht am Anfang stehe, gibt es ein Buch, wo ich über diese Sachen wie Bauteile einbinden und das unter Paper UI anzeigen lassen kann? Mit dem Buch Smart Home mit openhab2 von Marianne Spiller ist nicht dafür gut geeignet.

Und einfach die Lösung bekommen rein kopieren erweitern. Möchte ich auf der einen Seite auch nicht. Außer es wäre damit ein guter Anfang für mich

Benutzeravatar
peter-pan
Beiträge: 225
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von peter-pan » 3. Jun 2019 23:01

Bitte nicht aufgeben. Es ist gar nicht so schwierig.
Am Anfang ist das Item. Das verbindest du mit einem Channnel. Das Ergebnis siehst du dann in der Sitemap. (easy). Das ganze basiert natürlich auf dem Item-Namen.
Es gibt natürlich auch andere Möglichekeiten um einen Wert in ein Item zu bringen, z.B. mit einer Regel oder mit einer Regel/Script über einen Kanal. Es nutzt also nichts nur zwei Items zu definieren, die müssen ja mit einander kommunizieren.
Deshalb kommt auch die Info (ERROR) in der Sitemap. Du hast keine Item definiert, das du in der Sitemap sehen möchtest. Das musst du erst mal definieren.
Um das Ergebnis dann zu sehen musst du es auch erst mit einem Wert befüllen. Das kann dann wiederum über eine Regel sein, oder aber ganz einfach das "Original-Item". Das bedeutet, dass du einfach den Item-Namen, den du in deinem .items-File(oder PapuerUI) definiert hast in deinem Sitemap-File eintragen musst.
Ich kenn mich mit Python, usw. nicht aus. Ich würde einfach mal so anfangen und sehen, ob ich in der Sitemap ein Ergebnis sehe (und/oder im Logger), wenn ich das Ergebnis für den Wert "temperature_out" sehen kann. D. h. du musst dieses Item auch in der Sitemap definieren, z.B. so:

Code: Alles auswählen

Text item=temperature_out
oder so

Code: Alles auswählen

Default item=temperature_out
so wie du das auch in deinem .items-File angelegt hast.

Das mit der Umwandlung von einem String- in einen Number-Wert kannst du dann immer noch machen.

croix-aigle
Beiträge: 7
Registriert: 20. Mai 2019 08:40

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von croix-aigle » 10. Jun 2019 16:31

da ich keinen Ansatz habe, fellt es mir recht schwer, die zusammenhänge zu finden.
selbst wenn ich die daten auf einen anderen Py draufsetze und gewisse parameter verendere. Kommt logischwerweise nichts.
Der Log zeigt das an:
2019-06-10 15:25:46.562 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'onewiregpio.items'
2019-06-10 15:28:07.742 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'onewiregpio.things'
2019-06-10 15:29:29.580 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'haus.sitemap'
2019-06-10 15:54:43.668 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'haus.sitemap'
2019-06-10 15:54:43.799 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Text
2019-06-10 15:54:43.803 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'temperature_out' for widget org.eclipse.smarthome.model.sitemap.Text
2019-06-10 15:54:43.806 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'temperature_out' for widget org.eclipse.smarthome.model.sitemap.Text
2019-06-10 15:54:43.808 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item 'temperature_out' for widget org.eclipse.smarthome.model.sitemap.Text
2019-06-10 16:01:01.216 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'dht22.items'
2019-06-10 16:01:02.347 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'dht22.items'
2019-06-10 16:09:51.729 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'haus.sitemap'
2019-06-10 16:19:43.026 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'dht22.things' has errors, therefore ignoring it: [1,166]: mismatched input '$' expecting '='
[2,1]: missing ']' at 'Thing'
[2,166]: mismatched input '$' expecting '='
[2,167]: mismatched input '<EOF>' expecting ']'

2019-06-10 16:19:44.088 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'dht22.things' has errors, therefore ignoring it: [1,166]: mismatched input '$' expecting '='
[2,1]: missing ']' at 'Thing'
[2,166]: mismatched input '$' expecting '='
[2,167]: mismatched input '<EOF>' expecting ']'

2019-06-10 16:21:51.691 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'dht22.things' has errors, therefore ignoring it: [1,156]: mismatched input '$' expecting '='
[2,1]: missing ']' at 'Thing'
[2,156]: mismatched input '$' expecting '='
[2,157]: mismatched input '<EOF>' expecting ']'
wenn ich klein anfangen soll, was wäre da die grundschritte?

Benutzeravatar
udo1toni
Beiträge: 1376
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Einbinden von DHT22 Temperatur u. Feuchtigkeitssensor

Beitrag von udo1toni » 13. Jun 2019 13:40

Der erste Schritt wäre, sicherzustellen, dass der Sensor funktioniert. das heißt, Du siehst, dass auf Hardwareseite ein Wert geschickt wird. Wo ist der Sensor angeschlossen?
der zweite Schritt ist dann, diesen Wert auszulesen. Falls es für die verwendete Hardware kein eigenes Binding gibt, kommt es drauf an, was die Hardware als Schnittstelle zur Verfügung stellt.. Falls es nur über die Kommandozeile geht, muss das Script auf der Kommandozeile konkrete Werte liefern.
Der dritte Schritt ist, sicherzustellen, dass man ein solches Script von openHAB aus erfolgreich ansteuern kann. Allgemein wird man das über das exec Binding tun.

Da es zwei verschiedene exec Bindings gibt, die Entwicklung aber nicht still steht: exec1 sollte man nicht mehr für Neuentwicklungen einsetzen, in openHAB3 wird exec1 nicht mehr funktionieren (bzw. man wird dafür eine OH1-Instanz im Hintergrund laufen lassen müssen - sehr unbefriedigend).

Da die exec-Konfiguration nicht trivial ist, sollte man schon im eigentlichen Script darauf achten, den Aufruf möglichst einfach zu gestalten. Ein einfaches Kommando ohne Parameter; Falls man mehrere Sensoren hat, die sich über das gleiche Script abfragen lassen, könnte man einen Parameter übergeben, der den Sensor auswählt.
Das Script sollte exakt einen Wert zurück liefern, ohne irgendwas sonst drumrum, keine Einheit, wenn Fließkommazahlen zurückgeliefert werden, bitte nach Möglichkeit den Punkt als Dezimaltrennzeichen nutzen (innerhalb eines Python Scripts ist das schnell mit eingebaut - auf openHAB-Seite macht es die ganze Sache nur unnötig kompliziert).

Der vierte Schritt ist, ein konkretes Thing für das Script anzulegen. Tipp: Man kann Things bequem über Paper UI anlegen, das hat den Vorteil, dass man die auszufüllenden Felder sieht.
Wartungsfreundlicher ist allerdings die Variante über eine oder mehrere things Dateien, dann aber bitte mit VSCode als Editor, VSCode bietet ein openHAB Plugin, mit welchem syntaktishce Fehler zuverlässig angezeigt werden, da das Plugin die laufende openHAB-Instanz zur Prüfung des Codes verwendet.
Fehlermeldungen ohne die bemängelte Konfiguration sind sinnfrei. Die Meldung

Code: Alles auswählen

Configuration model 'dht22.things' has errors, therefore ignoring it:
ist hier eindeutig genug. Nochmal auch hier der Hinweis: die Zitatfunktion ist für Zitate gedacht, nicht um Code, Konfigurationen oder auch Logs zu markieren, dafür gibt es die Code-Tags.

Antworten

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste