openhab3 update von openhab2 ohne openhabian

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

Hallo,
ich habe auf meinem RaspberryPi eine openhab2 Installation (2.5.0 M1) und möchte auf openhab3 upgraden.
Alle Anleitungen berufen auf openhabian-config wo das einfachst möglich ist.
Ich habe alle Items, Rules, etc in Files liegen.

Kann mir jemand einen einfachen Weg für das Upgraden nennen ? Testweise habe ich bereits auf Windows meine Hauptkomponente (HTTP Binding) zum laufen gebracht.

Danke,

Infos:
root@raspberrypi:~# openhab-cli info

Version: 2.5.0.M1 (Build)

User: openhab (Active Process 528)
User Groups: openhab

Directories: Folder Name | Path | User:Group
----------- | ---- | ----------
OPENHAB_HOME | /usr/share/openhab2 | openhab:openhab
OPENHAB_RUNTIME | /usr/share/openhab2/runtime | openhab:openhab
OPENHAB_USERDATA | /var/lib/openhab2 | openhab:openhab
OPENHAB_CONF | /etc/openhab2 | openhab:openhab
OPENHAB_LOGDIR | /var/log/openhab2 | openhab:openhab

URLs: http://192.168.1.50:8181
https://192.168.1.50:8443

root@raspberrypi:~# openhab-cli console

Aktuell hab ich mal zulu java11 installiert, und das neue openhab3 meiner /etc/apt/sources.list.d/openhab3.list hinzugefügt.
Ein sudo apt-get update und danach sudo-apt-get install openhab fragt:
The following packages will be REMOVED:
openhab2 openhab2-addons
The following NEW packages will be installed:
openhab
0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded.
Need to get 98.2 MB of archives.
After this operation, 154 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

habe gelesen, dass ich damit die config files übernehmen kann ? ist das richtig?

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

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von udo1toni »

Deine openHAB Version ist etwas alt. Mutmaßlich trifft das auch auf das System selbst zu :)

Was das Backup Deiner Einstellungen (und der Persistence, soweit das rrd4j und mabDB betrifft), so kannst Du einfach in der Linux-Konsole den Befehl

Code: Alles auswählen

sudo openhab-cli backup
aufrufen.
Anschließend kannst Du das Backup in Form einer Zip-Datei sichern, z.B. über eine Samba Freigabe.

Es bietet sich an, das System komplett neu aufzusetzen, falls das möglich ist. Ob Du dazu das openHABian Image verwendest oder openHAB manuell aufsetzt, kannst Du frei selbst entscheiden :) allerdings bietet openHABian schon einige überaus nützliche Zusatzfunktionen, lohnt sich also, das in Erwägung zu ziehen ;)

Was den Restore betrifft, so geht das analog zum Backup, mit

Code: Alles auswählen

sudo openhab-cli restore </pfad/zum/zip-file>
wobei klar sein sollte, dass man für den Restore openHAB vorher anhält :)

Nutzt Du noch openHAB1-Bindings (das sind die, bei denen die Konfiguration über *.cfg Dateien erfolgt und die Verknüpfung auf die Items nicht mit {channel="..."} konfiguriert wird, sondern z.B. mit {http="..."} usw.), so musst Du diesen Teil der Konfiguration mindestens komplett neu erfinden. Es gibt auch ein paar (exotischere) Bindings, für die es (bisher) keinen Ersatz gibt. Falls Du das schon abgecheckt hast, super :)

Weitere Hürden sind Rules, welche now() verwenden, da mit openHAB3 ein Wechsel von Joda Time zu JavaTime erfolgt ist, dort sind diverse Dinge leicht bis komplett anders gelöst.

Und nicht zuletzt ist die UI nun eine komplett andere :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

danke für die Infos!
Ich habe auf dem Raspberrypi noch einige andere wichtige Dienste laufen wie SIP-Server, VPN-Server, usw. d.h. ich werde vermutlich nur openhab erneuern.
Wie kann ich nur openhab2 sauber entfernen ?
reicht hier sudo-apt-get install openhab, oder habe ich dann einen Mix aus Openhab2/Openhab3 ?
danke,

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

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von udo1toni »

Ok, kein Problem. Allerdings solltest Du dann noch mehr darauf achten, dass das System auf einem aktuellen Stand ist.
Darf ich fragen, was Du als SIP-Server einsetzt?

Da der Unterbau von openHAB3 gegenüber openHAB2 ja nun ein erheblich anderer ist, empfiehlt es sich, openHAB zunächst restlos zu entfernen:

Code: Alles auswählen

sudo apt remove openhab2
sudo apt purge openhab2
Dann kommt es darauf an, welche Java-Version(en) Du installiert hast, und ob Du sie noch für andere Programme benötigst. Schon um das System nicht allzusehr zuzumüllen, ist es empfehlenswert, alle nicht benötigten Versionen zu entfernen. Übrig, bzw neu zu installieren wäre dann Java11, in der 32Bit-Version, openJDK sollte mit debian ausgeliefert werden. Zulu Java war mal die Empfehlung, aber es gab zuletzt (das ist jetzt auch schon wieder über eine Jahr her) immer mehr Probleme mit der Installation, weil die Macher von Zulu offensichtlich keine Bock haben. (mal ganz provokant gesagt...)
openJDK funktioniert aber hervorragend und ist gut getestet.
Wenn das soweit ordentlich ist, kannst Du openHAB einfach aus dem aktuellen Repository installieren. (Siehe https://www.openhab.org/docs/installati ... ed-systems). Bei der Wahl der Version ist immer zu bedenken, dass "stable" im Zusammenhang mit openHAB lediglich bedeutet, dass diese Version nicht mehr verändert wird, nicht, dass sie "besser" als andere Versionen wäre. "milestone" wäre gewöhnlich meine Empfehlung bei der Wahl für ein normales System, welches zuhause produktiv läuft, aber letztlich ist das natürlich jedem selbst überlassen


Ganz grundsätzlich ist es eine gute Idee, die einzelnen Anwendungen auf dem System möglichst gut voneinander zu trennen.
Falls es sich bei Deinem Pi um einen Pi4 handelt, böte sich da Docker an, das würde natürlich bedeuten, dass Du das System dennoch komplett neu aufsetzen müsstest, und mehr noch müsstest Du den Umgang mit Docker erlernen.
Dafür bekommst Du eine erhöhte Sicherheit und bessere Abschottung der einzelnen Anwendungen gegeneinander, selbstverständlich nicht vergleichbar mit einer vollständigen Virtualisierung, aber besser als ein all-in-one allemal.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

hallo!
habe minisipserver laufen.

habe nun openhab2 komplett entfernt, und beginne mit openhab3. hab auch alle Things neu adden können.
Items lege ich auf der Oberfläche an und verknüpfe sauber mit Things.
nur im moment versuche ich der Gruppe OG eine Lampe (Gästezimmer) per HTTP Thing zu schalten.
Das klappt soweit, nur auf der sitemap bekomme ich das nicht hin:
sitemap1.png
Ich habe das Item so definiert:
Name: Gaeste_Out
Label: Gästezimmer
Type: Switch
Category light
Semantic Class Lightbulb
Parent Group(s): OG(OG)
Channel Links:
beckhoff
Gaeste_Out
http:url:27cc992a4d:Gaeste_Out

Aktuelles Verhalten: Backend => klappt wenn ich den switch betätige, auch die Rückmeldung wenn ich das Licht manuell schalte
In der Sitemap:
Ich kann einschalten, lampe färbt sich auf gelb, regler nach rechts.
beim ausschalten, wird zwar licht ausgeschaltet, aber regler bleibt rechts, lampe auch gelb.
erneutes klicken: regler geht nach links und gelbe lampe färbt sich grau.

hatte damals in openhab2:
item file:

Code: Alles auswählen

String Gaeste_OutValue { http="<[beckhoff:2000:JSONPATH($.Gaeste_Light)]" }
Switch Gaeste_Out "Gäste Zimmer" <light> (OG) { http=">[ON:POST:https://xxxxx.com/postdata.php?gaeste=true{Authorization=Basic xxxx==}] >[OFF:POST:https://xxxxx.com/postdata.php?gaeste=false{Authorization=Basic xxxxx==}]" }
und diese rule:

Code: Alles auswählen

rule "gaeste"
when
	Item Gaeste_OutValue received update
then
	Gaeste_Out.postUpdate(if(Gaeste_OutValue.state == "on") ON else OFF)
end
übernehmen der Files klappt nicht, hab alles im UI angelegt.
Mein HTTP Thing identifier lautet:
http:url:27cc992a4d

ist es sinnvoller die item datei anzupassen (Wäre schneller bei meinen 200 items), wenn ja wie? Oder kann ich alles ohne .rules und .items files in der Oberfläche erledigen?
kann man diese "Oberfläche" auch sichern wie die Files ?
konkret wäre halt gut wenn sich das ganze so wie damals bedienen lässt in openhab2: licht ein => regler geht nach rechts, lampe wird von grau zu gelb.
danke
danke,
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

merkwürdig.. heute geht alles ohne einer .rules datei! ;-)
Rein die Definition als Item reicht

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

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von udo1toni »

Ja, wenn es korrekt angelegt ist, brauchst Du für die UI keine zusätzliche Rule (das war aber unter OH2 nicht anders).
Was das seltsame Verhalten der UI betrifft, so könnte es sein, dass hier ein Cache Problem zugeschlagen hat. Wenn Du ein Item in der Main UI normal bedienen kannst, dann funktioniert das zu 100 % auch über die Sitemap, weil es schlicht keinen Unterschied zwischen beiden Möglichkeiten gibt. Aber wie gesagt kann es vorkommen, dass die Konfiguration noch nicht zu 100 % korrekt umgesetzt wird, weil die verschiedenen Caches dazwischenfunken.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

danke! Eine frage noch zum logging.
hätte versucht folgendes zu eliminieren in events.log

2022-11-14 11:06:04.621 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'SMARTMETER_Current' changed from -2054.1 W to -2085.7 W
2022-11-14 11:06:04.629 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Verbrauch' changed from 920.4 to 896.312
2022-11-14 11:06:04.637 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Einspeisung' changed from 2054.1 to 2085.7


bin ich hier richtig:
/var/lib/openhab/etc/log4j2.xml

hätte folgenden änderung (REGEX) gemacht:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Configuration monitorInterval="10">

	<Appenders>
		<!-- Console appender not used by default (see Root logger AppenderRefs) -->
		<Console name="STDOUT">
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
		</Console>

		<!-- Rolling file appender -->
		<RollingFile fileName="${sys:openhab.logdir}/openhab.log" filePattern="${sys:openhab.logdir}/openhab.log.%i.gz" name="LOGFILE">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
			<RegexFilter onMatch="DENY" onMismatch="ACCEPT" regex=".*(PV|WindValue|SMARTMETER_Current|Verbrauch|Bezug|Energiebezug|Energieeinspeisung|Einspeisung).*"/>
			<Policies>
				<OnStartupTriggeringPolicy/>
				<SizeBasedTriggeringPolicy size="16 MB"/>
			</Policies>
			<DefaultRolloverStrategy max="7"/>
		</RollingFile>

		<!-- Event log appender -->
		<RollingRandomAccessFile fileName="${sys:openhab.logdir}/events.log" filePattern="${sys:openhab.logdir}/events.log.%i.gz" name="EVENT">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
			<RegexFilter onMatch="DENY" onMismatch="ACCEPT" regex=".*(PV|WindValue|SMARTMETER_Current|Verbrauch|Bezug|Energiebezug|Energieeinspeisung|Einspeisung).*"/>
			<Policies>
				<OnStartupTriggeringPolicy/>
				<SizeBasedTriggeringPolicy size="16 MB"/>
			</Policies>
			<DefaultRolloverStrategy max="7"/>
		</RollingRandomAccessFile>

		<!-- Audit file appender -->
		<RollingRandomAccessFile fileName="${sys:openhab.logdir}/audit.log" filePattern="${sys:openhab.logdir}/audit.log.%i.gz" name="AUDIT">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
			<Policies>
				<OnStartupTriggeringPolicy/>
				<SizeBasedTriggeringPolicy size="8 MB"/>
			</Policies>
			<DefaultRolloverStrategy max="7"/>
		</RollingRandomAccessFile>

		<!-- OSGi appender -->
		<PaxOsgi filter="*" name="OSGI"/>
	</Appenders>

	<Loggers>
		<!-- Root logger configuration -->
		<Root level="WARN">
			<AppenderRef ref="LOGFILE"/>
			<AppenderRef ref="OSGI"/>
		</Root>

		<!-- Karaf Shell logger -->
		<Logger level="OFF" name="org.apache.karaf.shell.support">
			<AppenderRef ref="STDOUT"/>
		</Logger>

		<!-- Security audit logger -->
		<Logger additivity="false" level="INFO" name="org.apache.karaf.jaas.modules.audit">
			<AppenderRef ref="AUDIT"/>
		</Logger>

		<!-- openHAB specific logger configuration -->

		<Logger level="INFO" name="org.openhab"/>

		<Logger level="ERROR" name="openhab.event.ItemStateEvent"/>
		<Logger level="ERROR" name="openhab.event.ItemAddedEvent"/>
		<Logger level="ERROR" name="openhab.event.ItemRemovedEvent"/>
		<Logger level="ERROR" name="openhab.event.ItemChannelLinkAddedEvent"/>
		<Logger level="ERROR" name="openhab.event.ItemChannelLinkRemovedEvent"/>
		<Logger level="ERROR" name="openhab.event.ChannelDescriptionChangedEvent"/>
		<Logger level="ERROR" name="openhab.event.ThingStatusInfoEvent"/>
		<Logger level="ERROR" name="openhab.event.ThingAddedEvent"/>
		<Logger level="ERROR" name="openhab.event.ThingUpdatedEvent"/>
		<Logger level="ERROR" name="openhab.event.ThingRemovedEvent"/>
		<Logger level="ERROR" name="openhab.event.InboxUpdatedEvent"/>
		<Logger level="ERROR" name="openhab.event.RuleStatusInfoEvent"/>
		<Logger level="ERROR" name="openhab.event.RuleAddedEvent"/>
		<Logger level="ERROR" name="openhab.event.RuleRemovedEvent"/>
		<Logger level="ERROR" name="openhab.event.StartlevelEvent"/>
		<Logger level="ERROR" name="openhab.event.AddonEvent"/>

		<Logger additivity="false" level="INFO" name="openhab.event">
			<AppenderRef ref="EVENT"/>
			<AppenderRef ref="OSGI"/>
		</Logger>

		<Logger level="ERROR" name="javax.jmdns"/>
		<Logger level="ERROR" name="org.jupnp"/>

		<!-- This suppresses all Maven download issues from the log when doing feature installations -->
		<!-- as we are logging errors ourselves in a nicer way anyhow. -->
		<Logger level="ERROR" name="org.ops4j.pax.url.mvn.internal.AetherBasedResolver"/>

		<!-- Filters known issues of pax-web (issue link to be added here). -->
		<!-- Can be removed once the issues are resolved in an upcoming version. -->
		<Logger level="OFF" name="org.ops4j.pax.web.pax-web-runtime"/>

		<!-- Filters known issues of lsp4j, see -->
		<!-- https://github.com/eclipse/smarthome/issues/4639 -->
		<!-- https://github.com/eclipse/smarthome/issues/4629 -->
		<!-- https://github.com/eclipse/smarthome/issues/4643 -->
		<!-- Can be removed once the issues are resolved in an upcoming version. -->
		<Logger level="OFF" name="org.eclipse.lsp4j"/>

		<!-- Filters warnings for events that could not be delivered to a disconnected client. -->
		<Logger level="ERROR" name="org.apache.cxf.jaxrs.sse.SseEventSinkImpl"/>

		<!-- Filters warnings from broken connections during startup -->
		<!-- https://github.com/openhab/openhab-core/issues/2998 -->
		<Logger level="ERROR" name="org.apache.cxf.phase.PhaseInterceptorChain"/>

		<!-- Filters known issues of KarServiceImpl, see -->
		<!-- https://github.com/openhab/openhab-distro/issues/519#issuecomment-351944506 -->
		<!-- Can be removed once the issues are resolved in an upcoming version. -->
		<Logger level="ERROR" name="org.apache.karaf.kar.internal.KarServiceImpl"/>

		<!-- Filters warnings about unavailable ciphers when JCE is not installed, see -->
		<!-- https://github.com/openhab/openhab-distro/issues/999 -->
		<Logger level="ERROR" name="org.apache.karaf.shell.ssh.SshUtils"/>

		<!-- Filters known issues of javax.mail, see -->
		<!-- https://github.com/openhab/openhab-addons/issues/5530 -->
		<Logger level="ERROR" name="javax.mail"/>

		<!-- Filters disconnection warnings of the ChromeCast Java API, see -->
		<!-- https://github.com/openhab/openhab-addons/issues/3770 -->
		<Logger level="ERROR" name="su.litvak.chromecast.api.v2.Channel"/>

		<!-- Added by Karaf to prevent debug logging loops, see -->
		<!-- https://issues.apache.org/jira/browse/KARAF-5559 -->
		<Logger level="WARN" name="org.apache.sshd"/>
	</Loggers>

</Configuration>


klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von klaus1 »

nachtrag: ein restart hilft immer! ;-)

Maggi
Beiträge: 27
Registriert: 22. Okt 2019 20:09
Answers: 0
Wohnort: Hanau

Re: openhab3 update von openhab2 ohne openhabian

Beitrag von Maggi »

Hi,

ich habe in eine frische Openhab 3 installation meine Backup Datei von Openhab 2.5 zurückgespielt mit dem Befehl

Code: Alles auswählen

sudo openhab-cli restore </pfad/zum/zip-file>
Jetzt bekomme läd Opehab nicht mehr richtig und es können auch keine Bindings installiert werden.
Ich habe die Fehlermeldung jetzt im Log stehen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten