Wie kann ich zwei OH Versionen miteinander "mergen"?

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Norick
Beiträge: 251
Registriert: 31. Jan 2022 06:35
Answers: 0

Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von Norick »

Hallo
Ich habe eine OH Version 4.1.0.M1 bei welcher die Kamera funktioniert. Bei OH Version 4.1.0.M3 funktioniert diese leider nicht. Ich habe es schon auf alle Arten probiert aber ohne Erfolg. Da ich schon mehrere Änderungen in M3 habe würde ich die M1 vorziehen (Kamera funktioniert) und alle Anpassungen aus M3 übernehmen.

Frage:
Was wäre der einfachste Weg die rules, items, things etc auf die M1 zu übertragen bzw. zu mergen? Ich habe von beiden ein Backup.

Danke

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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von udo1toni »

Das ist nicht vorgesehen.

Du kannst Things, Items und die Links zwischen beiden aus der entsprechenden JSON Datei extrahieren und in der anderen JSON Datei einbauen, allerdings solltest Du schon sehr genau wissen, was Du da tust, denn wenn Du einen noch so kleinen Fehler machst, geht gleich gar nichts mehr. Sprich, mach vorher Sicherungskopien der Dateien, die Du änderst, damit Du zumindest zum alten Stand zurückkehren kannst.

Mit Text-Konfiguration wäre das Ganze übrigens ein Kinderspiel :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 251
Registriert: 31. Jan 2022 06:35
Answers: 0

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von Norick »

Danke für deine Antwort. In diesem Fall geht es um das IP-camera binding resp. um eine IP Kamera (axis) die einfach unter M3 nicht funktioniert will...
Ich habe in M1 jedoch noch eine funktionierende Kamera welche ich dann "mergen" könnte oder wie du sagst via json File rauskopieren.

Ich habe dazu im File "org.openhab.core.thing.Thing.json" etwas gefunden zu dieser Kamera. Meinst du ich könnte diesen Teil rauskopieren und in M3 einfach einfüen? Reicht es wenn ich nur die Things nehme?

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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von udo1toni »

Je nachdem, was Du alles übernehmen willst :) Es gibt die Things, die Items und die Links zwischen beiden (das liegt daran, dass es zwischen Item und Channel eine n:m Beziehung gibt). Für eine vollständige Übernahme musst Du aus allen drei Dateien die fraglichen Daten extrahieren und ins Pendant übernehmen (und wie gesagt, Du musst dabei höllisch aufpassen, dass Du die vorhandene Struktur nicht zerstörst).

Für ein einzelnes Thing scheint mir der Aufwand nicht gerechtfertigt, die paar Konfigurationswerte lassen sich doch leicht von Hand eintragen.

Oder funktioniert die Kamera ausschließlich per Autodiscovery?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 251
Registriert: 31. Jan 2022 06:35
Answers: 0

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von Norick »

Ja da hast du natürlich auch Recht. Man (ich) würde meinen ein paar Konfig sollten reichen aber der Teufel steckt wohl wieder im Detail. Nun das IP-Camera binding funktioniert da von den zwei IP-Kameras ja eine geht. Die zweite habe ich wie folgt konfiguriert:

Code: Alles auswählen

UID: ipcamera:generic:f6e9f25e69
label: IP Camera EG
thingTypeUID: ipcamera:generic
configuration:
  mjpegOptions: -q:v 5 -r 2 -vf scale=640:-2 -update 1
  ipAddress: 192.168.178.23
  mjpegUrl: http://admin:%3D98P@192.168.178.23/axis-cgi/mjpg/video.cgi?
  updateImageWhen: "0"
  gifPreroll: 0
  ffmpegLocation: c:/ffmpeg/usr/bin/ffmpeg
  ipWhitelist: DISABLE
  mp4OutOptions: -c:v copy -c:a copy
  pollTime: 1000
  password: =98Pxq\pviD<
  port: 80
  snapshotUrl: http://admin:%3D98P@192.168.178.23:80/jpg/image.jpg?size=3
  snapshotOptions: -an -vsync vfr -q:v 2 -update 1
  gifOutOptions: -r 2 -filter_complex
    scale=-2:360:flags=lanczos,setpts=0.5*PTS,split[o1][o2];[o1]palettegen[p];[o2]fifo[o3];[o3][p]paletteuse
  hlsOutOptions: -strict -2 -f lavfi -i aevalsrc=0 -acodec aac -vcodec copy
    -hls_flags delete_segments -hls_time 2 -hls_list_size 4
  username: admin
  ffmpegInput: http://admin:%3D98P@192.168.178.23/axis-cgi/mjpg/video.cgi?
location: EG
channels:

bring jedoch den folgenden Fehler:

Code: Alles auswählen

2023-12-02 11:09:03.352 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.thingUpdated()' on 'org.openhab.binding.ipcamera.internal.handler.IpCameraHandler@383756ec': Alias "/ipcamera/f6e9f25e69" was never registered by org.openhab.binding.ipcamera_4.0.0.202303221120 [239]
java.lang.RuntimeException: Alias "/ipcamera/f6e9f25e69" was never registered by org.openhab.binding.ipcamera_4.0.0.202303221120 [239]
	at org.ops4j.pax.web.service.internal.HttpServiceEnabled.lambda$doUnregisterServlet$2(HttpServiceEnabled.java:703) ~[?:?]
	at org.ops4j.pax.web.service.spi.model.ServerModel.lambda$run$2(ServerModel.java:541) ~[?:?]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
	Suppressed: java.lang.Throwable
		at org.ops4j.pax.web.service.spi.model.ServerModel.run(ServerModel.java:535) ~[?:?]
		at org.ops4j.pax.web.service.internal.HttpServiceEnabled.doUnregisterServlet(HttpServiceEnabled.java:585) ~[?:?]
		at org.ops4j.pax.web.service.internal.HttpServiceEnabled.unregister(HttpServiceEnabled.java:545) ~[?:?]
		at org.ops4j.pax.web.service.internal.HttpServiceProxy.unregister(HttpServiceProxy.java:186) ~[?:?]
		at org.openhab.binding.ipcamera.internal.servlet.IpCameraServlet.dispose(IpCameraServlet.java:136) ~[?:?]
		at org.openhab.binding.ipcamera.internal.servlet.CameraServlet.dispose(CameraServlet.java:283) ~[?:?]
		at org.openhab.binding.ipcamera.internal.handler.IpCameraHandler.dispose(IpCameraHandler.java:1863) ~[?:?]
		at org.openhab.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:153) ~[?:?]
		at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
		at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
		at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
		at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
		at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) ~[?:?]
		at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) ~[?:?]
		at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
		at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.IllegalArgumentException: Alias "/ipcamera/f6e9f25e69" was never registered by org.openhab.binding.ipcamera_4.0.0.202303221120 [239]
	at org.ops4j.pax.web.service.internal.HttpServiceEnabled.lambda$doUnregisterServlet$2(HttpServiceEnabled.java:612) ~[?:?]
	... 8 more
2023-12-02 11:09:18.617 [DEBUG] [amera.internal.servlet.CameraServlet] - GET:/ipcamera.mjpeg, received from 192.168.178.26

Hier steht u.a.

Code: Alles auswählen

Alias "/ipcamera/f6e9f25e69" was never registered by 
ist dies u.U. das Problem?
Das "Kamera Thing" zeigt mir "Online" an. Das "Ping-Binding" auf die Kamera ebenfalls "Online". Ein autosearch brachte kein Erfolg. Wenn ich die URL so wie es im Konfig angegeben ist im Browser eingebe sehe ich das Kamera Livebild. Aber auf dem Widget "image Card" bekomme ich nach der Item Auswahl auf diese Kamera nur ein "leeres" Bild in weiss angezeigt. Wenn ich im gleichen Widget auf die funktionierende Kamera wechsle dann sehe ich das Bild einwandfrei.

Hast du eine Idee was ich noch probieren kann?

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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von udo1toni »

Wenn Du eine funktionierende Kamera hast, dann zeig doch mal das funktionierende Thing im Vergleich.
Ich nehme an, die beiden Kameras sind baugleich?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 251
Registriert: 31. Jan 2022 06:35
Answers: 0

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von Norick »

Nein die Kameras sind leider unterschiedlich in Hersteller und Typ. Das heisst man kann dies leider nicht vergleichen :(

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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von udo1toni »

Ah, schade. Aber im alten System funktionieren beide Kameras? Und die Konfiguration von oben ist die aus dem Altsystem, oder aus dem Neusystem?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Norick
Beiträge: 251
Registriert: 31. Jan 2022 06:35
Answers: 0

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von Norick »

Die Konfiguration ist aus dem Neusystem. Nun ich habe jetzt von dem alten System unter Things -> Code de IP-camera welche funktioniert das ganze per einfügen im Neusystem wieder zum laufen gekriegt :)

Wieso es nur so funktioniert hat kann ich nicht sagen aber freue mich dass es wieder am laufen ist!

Vielen Dank für die Unterstützung

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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?

Beitrag von udo1toni »

Das wäre dann mein nächster Vorschlag gewesen... :) Prima dass Du es selbst hinbekommen hast!
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten