Seite 1 von 1
Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 30. Nov 2023 16:20
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
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 1. Dez 2023 01:48
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

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 2. Dez 2023 08:50
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?
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 2. Dez 2023 09:13
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?
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 2. Dez 2023 11:19
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.
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?
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 2. Dez 2023 17:36
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?
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 3. Dez 2023 08:46
von Norick
Nein die Kameras sind leider unterschiedlich in Hersteller und Typ. Das heisst man kann dies leider nicht vergleichen

Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 3. Dez 2023 09:19
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?
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 3. Dez 2023 10:42
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
Re: Wie kann ich zwei OH Versionen miteinander "mergen"?
Verfasst: 3. Dez 2023 19:34
von udo1toni
Das wäre dann mein nächster Vorschlag gewesen...

Prima dass Du es selbst hinbekommen hast!