Modulentwicklung: Changing the branch failed

Hallo,

ich baue grad mein erstes Modul (Controme Heizungssteuerung.).

Nach dem es Tage gut geklappt hat, bekomme ich nun immer die Meldung:

Changing the branch failed

Cannot update repository if local changes were made (Code: -32603)

Und zwar:

  • wenn ich neue Updates von Github abrufen will
  • wenn ich die Branch wechseln will (Dann ist die Überschrift ein wenig anders)

Und zwar auch schon, direkt nach dem Abrufen des Moduls von Github - ohne das ich irgendetwas mit dem Modul gemacht habe…

modul-Verzeichnis ist befreit vom Modul - und auch wenn ich alle angelegten Instanzen gelöscht habe, gehts nicht…

Einzige Weg ist: Modul via Modulmanager löschen und neu abrufen.

Kennt das jemand oder hat einen Lösungsvorschlag?

BG

Kai

Wie der Fehler sagt, gibt es scheinbar irgendwelche lokalen Änderungen bei dir. Kannst du sonst mal mit einem richtigen Git-Client wie z.B. GitHub Desktop schauen, was da für lokale Änderungen sind? Dann können wir bestimmt auch besser herausfinden, woher die kommen.

Hallo @Dr.Niels

gerne - bekomme ich den auf die Smbox?

Davon aubgesehen: auf der Symbox lösche ich das Modul mit der Konsole Pro, schaue nach im Terminal und das Verzeichnis ist weg. Dann lade ich es von Github über die Konsole neu - und direkt als nächstes will ich die Branch ändern - und das klappt schon nicht.

Welcher Prozess könnte denn direkt nach dem Download des Moduls eine Änderung vornehmen? Oder welcher Zustand könnte das verursachen?

Bis vor ca. 3 Tagen hat das wunderbar geklappt, identisches Setup nur konnte ich im Modulmanager ein einfaches Update auslösen.

BG

Kai

SymBox ist da natürlich komplizierter. Das sollte trotzdem irgendwie gehen, aber sonst lass uns erstmal auf andere Dinge schauen:

  • Passiert das auch bei anderen Modulen?
  • Kann es sein, dass dein Modul irgend etwas im eigenen Verzeichnis ändert oder dergleichen? Kannst du mir sonst einen Link zu deinem Repository schicken? Dann kann ich den Code mal überfliegen bzw. testen ob ich den Fehler nachstellen kann.

Hallo @Dr.Niels ,

nein, die neue Version vom PCT14 Configurator z.B. ging problemlos durch.

Eigentlich sollte das Modul nichts lokal ändern, nur beim Anlegen von Instanzen werden Variablen & Profile automatisch angelegt.

Das Repository ist GitHub - AllardLiao/ContromeHeatingControl: IP-Symcon Modul zur lokalen Steuerung und Überwachung von Controme-Heizsystemen. Automatisches Anlegen von Räumen, Sensoren, Ist-/Soll-Temperaturen, Luftfeuchte und Betriebsart. Unterstützt Lesen und Schreiben über die Controme API. Vollständig in IPS integrierbar mit Timer und Variablenprofilen.

Beim schnellen rüberschauen sehe ich da tatsächlich auch nichts… Vielleicht lohnt es sich das Modul mal auf einem Windows-System zu installieren und zu schauen, ob du das dort nachstellen kannst. Denn dann ist es ja ein einfaches mit einem richtigen Git-Client mal zu schauen

Hallo @Dr.Niels ,

leider hab ich kein Windows. Kann auf Mac nachsehen - wenn Du mir einen Tip gibst wo und wie…

ich habe mal das Verzeichnis ausgeben lassen, Microsekunden scheint es auf der Symbox nicht zu geben, die Erzeugung des Moduls hier hat in den Sekunden 16:28:37-38 stattgefunden. Es gibt nur eine Datei .git/config die danach geschrieben wurde. Aber das sollte ja normal sein…

2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeGateway/README.md
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeGateway/form.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeGateway/module.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeGateway/locale.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeGateway/module.php
2025-09-15 16:28:37.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/description
2025-09-15 16:29:14.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/config
2025-09-15 16:28:37.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/info/exclude
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/FETCH_HEAD
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/index
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/refs/remotes/origin/develop
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/refs/remotes/origin/main
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/refs/remotes/origin/HEAD
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/refs/remotes/origin/feature/read-basics
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/refs/heads/main
2025-09-15 16:28:37.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/hooks/README.sample
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/logs/refs/remotes/origin/develop
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/logs/refs/remotes/origin/main
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/logs/refs/remotes/origin/feature/read-basics
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/logs/refs/heads/main
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/logs/HEAD
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/HEAD
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/objects/pack/pack-9cd65d5a91c8848251fcbbf27a7f0a8842155469.pack
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.git/objects/pack/pack-9cd65d5a91c8848251fcbbf27a7f0a8842155469.idx
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/README.md
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/VersionHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/DebugHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/WidgetHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/WebhookHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/_traits.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/EventHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/FormatHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/UserFriendlyException.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/ProfileHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/VariableHelper.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/libs/ContromeConstants.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/package.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/LICENSE
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.gitmodules
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/.gitignore
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/library.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeCentralControl/README.md
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeCentralControl/form.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeCentralControl/module.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeCentralControl/locale.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeCentralControl/module.php
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/module.html
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/README.md
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/form.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/module.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/locale.json
2025-09-15 16:28:38.000000  /var/lib/symcon/modules/ContromeHeatingControl/ContromeRoomThermostat/module.php

Hallo @Dr.Niels ,

mit ist etwas im Status Log aufgefallen:

Da habe ich Meldungen wie diese:

Die Instanz dazu war eine zu meinem Modul, die es aber nicht mehr gibt:

In der Timer-Info gibt es nur die drei zu den aktuell existierenden Instanzen:

Kann das zusammenhängen?

Und unabhängig davon: wie kann ich diesen Timer, der ja zumindest noch Fehler wirft, loswerden?

Das sollte mit dem Timer nichts zu tun haben. Der sollte auch selbstständig aufräumen. Was mir als Möglichkeit einfällt: Kann es sein, dass die Funktion des Timers länger läuft? Denn wenn diese natürlich läuft und währenddessen die Instanz gelöscht wird, dann läuft die Funktion noch weiter bis zum Ende und kann sicherlich über sowas stolpern.

Den ursprünglichen Fehler kann ich übrigens nachstellen und bin dran, habe heute aber noch nichts herausfinden können.

Hallo @Dr.Niels

hm. Kann natürlich sein, dass ich das in den Microsekunden überschneidet. Der Timer löst einen API-Abruf aus (lokales Netz) und speichert je nach Modul 5 oder ca. 40 Werte im IPS - das geht immer rasend schnell durch.

So, jetzt haben wirs. Das Problem ist, dass du eine .gitmodules mit Submodulen hast, diese aber nicht korrekt eingebunden sind. Als Fix dafür passen wir es an, dass nicht existierende Submodule einfach übersprungen werden anstatt Fehler zu verursachen. In deinem Fall kannst du aber einfach die .gitmodules löschen, dann ist alles wieder gut.

Hallo @Dr.Niels

jep - das war’s. Eine existierende Altlast…

Besten Dank!

2 „Gefällt mir“