von OH2 zu OH4

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
MagicBird
Beiträge: 76
Registriert: 8. Jun 2020 17:31
Answers: 1

von OH2 zu OH4

Beitrag von MagicBird »

Hallo Forum,

ich möchte auf OH4 wechseln. Also das aktuelle Openhabian 4 auf die SD karte geschrieben und im PI3 hoch gefahren.

Schlechte Umsetzung ist. Ich musste Mosquitto via openhab-config installieren. Warum wird das nicht via dem Dashboard erledigt?
Hoffe das es mit OH5 daran mal gearbeitet wird.

aber nun mal zu meiner Frage. bringt es mir etwas. wenn ich meine
influxdb.persist
wohnungs.items
sitemap.items

von OH2 in den OH4 packe?

danke Lars

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: von OH2 zu OH4

Beitrag von PeterA »

Hallo,

da ich auch schon seit kurzem mit OH4 "spiele" (Udo wirds freuen :)) habe ich das fürs erste auch genau so gemacht.
Entsprechende Things/Items/Persist und die Sitemap vom bestehendem System (auch OH2.4) rüber kopiert.
Es wird vermutlich aber nicht alles wie gewohnt funktionieren.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: von OH2 zu OH4

Beitrag von udo1toni »

Stopp!

Was Du auf die SD-Karte geschrieben hast, ist openHABian 1.8 (mutmaßlich 1.8b). Das openHABian Image ist ein Raspberry Pi OS lite Image (bullseye) mit installierten openHABian Helper Scripts.
Beim ersten Boot wird das Image auf der SD-Karte expandiert, anschließend startet der Raspberry automatisch neu und nach dem Reboot installiert openhabian-config vollautomatisch openHAB4.0.4 und diverse Zusatzsoftware.

Mosquitto hat erst mal nichts mit openHAB zu tun, es ist 3rd Party Software. openHAB selbst installiert ausschließlich openHAB Addons und sonst keinerlei Software.
In openHAB2 gab es eine Zeit lang Moquette als embedded Broker, die Software wird aber nicht mehr gepflegt und ist somit tot.

Um es dem Anwender leicht zu machen, wurde openHABian entwickelt, eben damit man eine zentrale Stelle hat, um diverse Software auch von anderen Anbietern zusätzlich installieren zu können. Es ist reine Nettigkeit, diese Software überhaupt anzubieten, und eigentlich wäre es auch nicht weiter schlimm, mosquitto manuell über den Paketmanager zu installieren.

Welche Version von openHAB2 hast Du denn bisher genutzt? (die letzte verfügbare Version ist OH2.5.12)

Was die Konfigurationsdateien betrifft: openHAB4 unterstützt weiterhin das Textmodell, welches auch schon unter openHAB1 und openHAB2 zur Verfügung stand. Genau wie unter openHAB2 kann man beide Verfahren gleichzeitig nutzen und auch mischen, wie auch schon unter openHAB2 sieht man in der Textkonfiguration nichts von den per UI angelegten Dingen und in der UI sind alle Elemente, welche über Textdateien angelegt wurden nur lesbar.
Items können vollständig über Text konfiguriert werden, bei Things kommt es etwas darauf an, wie gut der Programmierer das Addon gestaltet hat, aber bei den meisten Addons funktioniert auch die Definition über Textdateien.
V1-Addons gibt es nicht mehr, das heißt, alle Bindings, welche Du bisher über direkte Links in den Items definiert hast, z.B.:

Code: Alles auswählen

Switch meinSwitch "Lampe [%s]" {http="..."}
müssen zwingend in das Things Modell überführt werden.

Du wirst aber auch sonst mit hoher Wahrscheinlichkeit nicht um umfangreiche Umstellungen herum kommen. Insbesondere gilt das auch für Rules, sofern Du zeitbezogene Funktionen oder Timer genutzt hast, weil openHAB2 noch Joda Time verwendete, seit openHAB3 aber JavaTime im Einsatz ist. Die Funktionsaufrufe unterscheiden sich teilweise extrem, an anderer Stelle sind sie nahezu identisch.
Und bevor Du hier auch über "schlechte Umsetzung" motzt: Das ist nicht auf dem Mist der openHAB Entwickler gewachsen, es ist einfach so, dass openHAB ein Veteran der Smarthome Welt ist und die Entwickler dem technischen Fortschritt direkt folgen, statt der Entwicklung um zig Jahre hinterher zu hinken, das bedeutet aber auch, dass es immer einen Wandel zwischen den Versionen gibt.
Als openHAB3 stable wurde, gab es schon ein paar Upgrade Scripts, welche beim Umstieg von openHAB2.5.12 einige Anpassungen automatisch vorgenommen haben. Das Gleiche fand im Juni beim Umstieg von openHAB3.4.4 auf openHAB4.0.0 statt, und in nicht mal zwei Monaten wird openHAB4.1 stable werden, auch da werden mutmaßlich einige Dinge automatisch angepasst, soweit das sinnvoll machbar ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

MagicBird
Beiträge: 76
Registriert: 8. Jun 2020 17:31
Answers: 1

Re: von OH2 zu OH4

Beitrag von MagicBird »

Hallo Udo,

danke für deine Nachricht.

wird den mqtt (mosquitto) noch am meist verwendet wenn es tot ist oder sollte ich dann auf zigbee (Philips Hue, Ikea trädfri) wechseln?

pi@openhab:~ $ dpkg --list | grep openhab
ii openhab2 2.5.12-1 all openhab2
ii openhab2-addons 2.5.12-1 all openhab2-addons
pi@openhab:~ $

Code: Alles auswählen

Group	Home			"Wohnung"		<house>					["Building"]

Group   GF			"Erdgeschoss"		<groundfloor>   (Home)			["GroundFloor"]

Group   Balkon			"Balkon"		<terrace>	(Home)			["Outdoor"]			{ga="thermostat"}
Group   Bathroom		"Badezimmer"		<bath>          (Home)			["Bathroom"]			{ga="thermostat"}
Group   Schlafzimmer		"Schlafzimmer"		<bedroom>       (Home)			["Bedroom"]			{ga="thermostat"}
Group	LennoxRoom		"Lennox"		<boy_1>		(Home)			["Room"]			{ga="thermostat"}
Group   ColinRoom		"Colin"			<boy_3>		(Home)			["Room"]			{ga="thermostat"}
Group   Wohnzimmer		"Wohnzimmer"		<sofa>          (Home)			["LivingRoom"]			{ga="thermostat"}
Group   Kueche			"Küche"			<kitchen>       (Home)			["Kitchen"]			{ga="thermostat"}
Group	Systeme			"Systeme"		<alarm>		(Home)			["Systeme90"]			{ga="thermostat"}
Group	Systeme			"Systeme"		<alarm>		(Home)			["Systeme100"]

Switch	Balcony_Power      "Steckdose Balkon"		<poweroutlet>   (Balkon, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:balkon_wlandose:POWER", ga="Switch"}
Switch	Bathroom_Power     "Steckdose Bad"		<poweroutlet>   (Bathroom, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:bad_wlandose:POWER", ga="Switch"}
Switch	Bedroom1_Power     "Steckdose TV"		<poweroutlet>   (Schlafzimmer, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:schlafzimmer_tv:POWER", ga="Switch"}
Switch	Bedroom2_Power     "Steckdose Funktechnik"	<poweroutlet>   (Schlafzimmer, gPower)	["Switch", "Switchable"]	{channel=""}
Switch	KidsRoom1_Power    "Schreibtisch"		<poweroutlet>   (LennoxRoom, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:lennox_licht1:POWER", ga="Switch"}
Switch  KidsRoom3_Power    "Leselicht"                  <poweroutlet>   (LennoxRoom, gPower)    ["Switch", "Switchable"]        {channel="mqtt:topic:lennox_licht2:POWER", ga="Switch"}
Switch	KidsRoom5_Power	   "Lüfter"			<poweroutlet>	(LennoxRoom, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:lennox_luefter:POWER", ga="Switch"}
Switch	KidsRoom2_Power    "Schreibtisch"		<poweroutlet>   (ColinRoom, gPower)     ["Switch", "Switchable"]	{channel="mqtt:topic:colin_licht1:POWER", ga="Switch"}
Switch	KidsRoom4_Power    "Leselicht"			<poweroutlet>   (ColinRoom, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:colin_licht2:POWER", ga="Switch"}
Switch	KidsRoom6_Power	   "Lüfter"			<poweroutlet>	(ColinRoom, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:colin_lüfter:POWER", ga="Switch"}
Switch	LivingRoom1_Power  "Stehlampe"			<poweroutlet>   (Wohnzimmer, gPower)    ["Switch", "Switchable"]	{channel="mqtt:topic:wohnzimmer_stehlampe:POWER", ga="Switch"}
Switch	LivingRoom2_Power  "Blumenbrett"		<poweroutlet>   (Wohnzimmer, gPower)    ["Switch", "Switchable"]	{channel="mqtt:topic:wohnzimmer_blume:POWER", ga="Switch"}
Switch	LivingRoom3_Power  "Highboard"			<poweroutlet>   (Wohnzimmer, gPower)    ["Switch", "Switchable"]	{channel="mqtt:topic:wohnzimmer_highboard:POWER", ga="Switch"}
Switch	LivingRoom4_Power  "Dyson Staubsauger"		<poweroutlet>	(Wohnzimmer, gPower)	["Switch", "Switchable"]	{channel="mqtt:topic:wohnzimmer_brunnen:POWER", ga="Switch"}
Switch	Kitchen_Power      "Küchengeräte"		<poweroutlet>   (Kueche, gPower)        ["Switch", "Switchable"]	{channel="mqtt:topic:kuechen_wlandose:POWER", ga="Switch"}

Number  Bathroom_Temperature	"Bad Temperatur [%.2f °C]" <temperature>		(Bathroom, gSensorTemperature)		{channel="mqtt:topic:bad_wlandose:temperature", autoupdate="true"}
Number  Bathroom_Humidity	"Bad Luftfeuchtigkeit [%.2f %%]" <humidity>		(Bathroom, gSensorHumidity)		{channel="mqtt:topic:bad_wlandose:humidity", autoupdate="true"}
Number  Bedroom1_Temperature	"Schlafzimmer Temperatur [%.2f °C]" <temperature>	(Schlafzimmer, gSensorTemperature)	{channel="mqtt:topic:schlafzimmer_tv:temperature", autoaupdate="true"}
Number  Bedroom1_Humidity	"Schlafzimmer Luftfeuchtigkeit [%.2f %%]" <humidity>	(Schlafzimmer, gSensorHumidity)		{channel="mqtt:topic:schlafzimmer_tv:humidity", autoupdate="true"}
Number  KidsRoom1_Temperature	"Lennox Temperatur [%.2f °C]" <temperature>		(LennoxRoom, gSensorTemperature)	{channel="mqtt:topic:lennox_licht1:temperature", autoupdate="true"}
Number  KidsRoom1_Humidity	"Lennox Luftfeuchtigkeit [%.2f %%]" <humidity>		(LennoxRoom, gSensorHumidity)		{channel="mqtt:topic:lennox_licht1:humidity", autoupdate="true"}
Number  KidsRoom2_Temperature	"Colin Temperatur [%.2f °C]" <temperature>		(ColinRoom, gSensorTemperature)		{channel="mqtt:topic:colin_licht1:temperature", autoupdate="true"}
Number  KidsRoom2_Humidity	"Colin Luftfeuchtigkeit [%.2f %%]" <humidity>		(ColinRoom, gSensorHumidity)		{channel="mqtt:topic:colin_licht1:humidity", autoupdate="true"}
Number  LivingRoom1_Temperature "Wohnzimmer Temperatur [%.2f °C]" <temperature>		(Wohnzimmer, gSensorTemperature)	{channel="mqtt:topic:wohnzimmer_stehlampe:temperature", autoupdate="true"}
Number  LivingRoom1_Humidity	"Wohnzimmer Luftfeuchtigkeit [%.2f %%]" <humidity>	(Wohnzimmer, gSensorHumidity)		{channel="mqtt:topic:wohnzimmer_stehlampe:humidity", autoupdate="true"}
Number  Kitchen_Temperature	"Küchen Temperatur [%.2f °C]"	<temperature>		(Kueche, gSensorTemperature)		{channel="mqtt:topic:kuechen_wlandose:temperature", autoupdate="true"}
Number  Kitchen_Humidity	"Küchen Luftfeuchtigkeit [%.2f %%]" <humidity>		(Kueche, gSensorHumidity)		{channel="mqtt:topic:kuechen_wlandose:humidity", autoupdate="true"}
Number	Systeme90_Temperature	"WebPi Temperatur [%.2f °C]"	<temperature>		(Systeme90, gSensorTemperature)		{channel="mqtt:topic:webpi90:temperature", autoupdate="true"}
Number	Systeme100_Temperature	"OpenHAB Temperatur [%.2f °C]"	<temperature>		(Systeme100, gSensorTemperature)		{channel="mqtt:topic:openhab:temperature", autoupdate="true"}
Number  Balcony_Temperature	"Aussen Temperatur [%.2f °C]"	<temperature>		(Balkon, gSensorTemperature)		{channel="mqtt:topic:aussen_bme280:temperature", autoupdate="true"}
Number  Balcony_Humidity	"Ausen Luftfeuchtigkeit [%.2f %%]" <humidity>		(Balkon, gSensorHumidity)		{channel="mqtt:topic:aussen_bme280:humidity", autoupdate="true"}
Number  Balcony_Pressure	"Aussen Luftdruck [%.2f hPA]"	<pressure>		(Balkon, gSensorPressure)		{channel="mqtt:topic:aussen_bme280:pressure", autoupdate="true"}

Group:Switch:OR(ON, OFF)	gPower				"Steckdose"   <poweroutlet>	(Home)   ["Switch", "Switchable"]
Group:Number:DHT		gSensorHumidity			"Luftfeuchtigkeit" <humidity>	(Home)
Group:Number:DHT		gSensorTemperature		"Temperatur" <temperature>	(Home)
das wäre die items datei

lars

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: von OH2 zu OH4

Beitrag von udo1toni »

Bitte achte auf den exakten Namen:

mosquitto -> der am weitesten verbreitete Open Source MQTT Broker, aktiv gepflegt und weiterentwickelt
Moquette -> ein embedded MQTT Broker, der end of life ist.

Tatsächlich wurde Moquette extra in openHAB 2 integriert, damit die Anwender nicht den großen Stress auf sich nehmen müssen, folgendes Kommando einzugeben:

Code: Alles auswählen

sudo apt install mosquitto
Und wenige Monate später war klar, dass dieser Weg völlig falsch war, weil Moquette nicht mehr gepflegt wird.
mosquitto stand "schon immer" für openHAB zur Verfügung (ich habe das mqtt Binding unter openHAB1.8 genutzt)

Mit openhabian-config steht ein Tool bereit, welches mit größtmöglichem Komfort eine große Auswahl an 3rd Party Software auf den Raspberry Pi (oder ein Debian-artiges GNU/Linux System) bringt, nicht nur mosquitto. Aber diese Software hat halt nichts mit openHAB zu tun (außer, dass openHAB mit dieser Software kommunizieren kann und man sie für SmartHome Umgebungen nutzt).

Wenn Deine Itemliste vollständig ist, kommst Du zumindest um Änderungen bezüglich der Anbindung von mqtt herum, denn Du nutzt hier ja schon Channel.
Der Parameter ga bezieht sich vermutlich auf Google Alexa? Ich bin mir nicht sicher, denke aber, dass das jetzt über Tags läuft. Ich nutze selbst kein Alexa, das ist also nur gefährliches Halbwissen ;)

autoupdate="true" kannst Du weg lassen, denn das ist das default Verhalten. lediglich wenn ein Item kein automatisches Update erhalten soll, musst Du autoupdate="false" setzen.

Unter openHAB4 stehen in vielen Bindings Units of Measurement (UoM) zur Verfügung - das gibt es auch schon in OH2.5.12, aber in OH4 auch in mqtt.
Das bedeutet: Wenn Du z.B. eine Temperatur überträgst, hast Du einen number Channel, der bisher einfach eine Zahl enthielt. Mit UoM kann aber gleich noch die korrekte Einheit mitgeliefert werden. Dazu muss im Channel noch der Parameter Unit gesetzt werden, z.B. auf °C. Aus 22 wird dann 22 °C. Und wenn man diesen Channel mit einem Item verknüpft, welcehs als Number:Temperature definiert ist, kann man dort die Einheit ebenfalls setzen.
Der Witz bei UoM ist aber, dass damit automatisch umgerechnet werden kann, z.B. in °F oder in K. Falls ein Sensor den Wert in Zehntelgrad liefert, also 221 statt 22.1, reicht es, im Channel d°C anzugeben und openHAB teilt den Wert automatisch durch zehn (d -> dezi). UoM ist ein extrem mächtiges Werkzeug. Allerdings muss man auch viele Dinge beachten, z.B. wenn man in Rules solche Werte verarbeiten will.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

MagicBird
Beiträge: 76
Registriert: 8. Jun 2020 17:31
Answers: 1

Re: von OH2 zu OH4

Beitrag von MagicBird »

Hallo Udo,

ich habe die 3 Dateien auf OH4 kopiert. natürlich laufen sie noch nicht. Da meine Hardware an die OH2 Ip sendet.

ga steht für google assistant. Na ich wollte das ganze mal mit hey siri und hey google steuern aber hab das irgendwann nicht weiter gebastelt.
früher hatte ich ja ifttt mal.

ich schaue mir natürlich Videos zum thema an
https://www.youtube.com/watch?v=v2gYK7uOGJk
https://www.youtube.com/watch?v=VEagSEx7e4o&t=1251s
und versuche zu verstehen. Ob mein vorhandenen mit dem neue funktioniert. :)

danke lars

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: von OH2 zu OH4

Beitrag von udo1toni »

MagicBird hat geschrieben: 20. Nov 2023 14:33 ga steht für google assistant
Genau... Alexa ist ja Amazon... Ich nutze keine Sprachsteuerung :) schlimm genug, dass ich nicht wirklich verhindern kann, dass mein Smartphone ständig meine Stimme trackt, da muss es nicht auch noch mein Haus tun.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

MagicBird
Beiträge: 76
Registriert: 8. Jun 2020 17:31
Answers: 1

Re: von OH2 zu OH4

Beitrag von MagicBird »

nun versuche ich natürlich eine Steckdose zu schalten.

in OH4 steht bei Identifier mqtt:broker:899bcf9bb5

muß ich das dann in der items Datei einfügen?
{channel="mqtt:broker:899bcf9bb5:colin_licht1:POWER", ga="Switch"}

???

Benutzeravatar
udo1toni
Beiträge: 15244
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: von OH2 zu OH4

Beitrag von udo1toni »

Nein.

Die UID des Channels kannst Du leicht in der UI nachschlagen (steht direkt beim Channel dabei und kann dort sogar per Knopf in die Zwischenablage übernommen werden), oder Du orientierst Dich am grundsätzlichen Aufbau der UID. Bei mqtt sieht das so aus (Beipiel eines mqtt Geräts mit einem Channel und zugehöriger Bridge, als Textdefinition):

Code: Alles auswählen

Bridge mqtt:broker:mosquitto "Mosquitto Broker" [
    host="192.168.178.50", // die IP, unter der mosquitto erreichbar ist
    ... // Username, Passwort usw.
] {
    Thing topic meinDevice "Ein MQTT Device" [
        // evtl. LWT für Availability
    ] {
        Channels:
        Type switch : ch1 "Kanal 1" [ stateTopic="...", commandTopic="..." ]
    }
}
Die UID enthält zunächst mal den Namen des Bindings (hier mqtt) und darauf folgend die übergeordnete Funktion, sowie den Bezeichner für das Device
Die UID des Brokers ist in diesem Beispiel also mqtt:broker:mosquitto.
Das Thing hat die Funktion topic, das hängt mit dem gewöhnlich hierarchischen Aufbau in mqtt zusammen, letztlich musste das Kind halt einen Namen haben. Die UID beginnt also mit mqtt:topic:
Nun gibt es aber die Möglichkeit, mehr als einen Broker zu konfigurieren, entsprechend braucht es zwingend einen Hinweis, um welchen Broker es sich handelt. Hier reicht allerdings der einfache Bezeichner, im Beispiel also mosquitto, ergibt mqtt:topic:mosquitto:, gefolgt vom Bezeichner des Things, hier meinDevice.
Und der Channel hat selbst noch einen Bezeichner, der Channel hat also die UID mqtt:topic:mosquitto:meinDevice:ch1
Alle Channel folgen mehr oder weniger exakt diesem Modell. Wenn ein Binding keine Bridge verwendet, braucht es natürlich auch keinen Bezeichner für die Bridge.
Der Punkt ist aber: es gibt ein Schlüsselwort für die Definition der Bridge und ein Schlüsselwort für die Art des Geräts, in der UID des Geräts steht also das Schlüsselwort für die Geräteart.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten