Migration von IPS-Win zu IPS-Raspberry Pi

Hallo Community,
ich versuche nun schon seit Wochen eine Migration von IPS Win zu IPS für Raspi durchzuführen. Immer wieder scheitere ich an der Anpassung der Scripts in der IPSLibrary. Ja, ich weiß, dass die Anpassung von „\“ zu „/“ durchgeführt werden muss. Leider suche ich vergeblich nach den richtigen Stellen, um die Anpassungen auch vornehmen zu können. Manche Scripte in der IPSLibrary sind da und funktionsfähig, manche aber auch nicht. Ich habe sehr komplexe Konfigurationen in meiner IPS, z.B. das Monitoren eines EHZ und die Anbindung meiner PV Anlage, was mir eine komplette Neuinstallation unmöglich macht, da ich in diesem Bereich nicht wirklich fit bin. Es würde sicherlich Jahre dauern :wink:
Wer kann mir eine „narrensichere“ Anleitung für die Migration geben. Sicherlich gibt es hier genug Veröffentlichungen zu dem Thema aber leider sind es nur Teilanleitungen. Ich brauche quasi eine von A- Z.
Das wichtigste ist, die Anpassung der Lib und der Scripts. (Wie und Wo)

Vielen Dank im Voraus.
Heuser

Ich würde DIRECTORY_SEPARATOR als Konstante nutzten und nicht "\ " oder „/“ dann liegst Du immer richtig. Automatisch ersetzten kannst Du auch nicht da ein \ ja auch noch einem anderen Zweck dienen kann, also eine simple Lösung fällt mir da auch nicht ein.

Hast du mal probiert vor dem Upgrade die IPSLibrary neu zu installieren? Mittlerweile ist diese ja auch für Linux kompatibel.

paresy

Erst einmal vielen Dank für die Antwort. Wie und wo setze ich den Directory Separator ein. Ich bin in der Programmierung alles andere als fit.

Hallo Paresy,
leider hatte Dein Ansatz keinen Erfolg.

Einfach statt / bzw \ immer die Konstante DIRECTORY_SEPARATOR benutzten.

Also


$imagepath = IPS_GetKernelDir()."media".DIRECTORY_SEPARATOR."picturename.png";
var_dump($imagepath);

gibt Dir je nachdem auf welchem System IP-Symcon läuft immer den Pfad zur Bilddatei.

Auf einem Raspberry ist dann $imagepath z.B.


/var/lib/symcon/media/picturename.png

Auf einem Windows Rechner z.B.


D:\IP-Symcon\media\picturename.png

usw.

Analog das Vorgehen wenn Du auf andere Verzeichnisse verweist, dann kann Dir auch egal sein auf welchen Rechner das läuft bzw. Du musst nichts umstellen im Skript.

Hallo Fonzo, ich bin offenbar zu blöd dafür. :banghead:
Wie muss denn für den Raspberry der Pfad aus dem Beispiel mit dem Directory_Seperator korrekt heissen?

„IPSLibrary\app\core\IPSComponent\IPSComponentAVControl\IPSComponentAVControl_AudioMax.class.php“


$path = IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR."IPSLibrary".DIRECTORY_SEPARATOR."app".DIRECTORY_SEPARATOR."core".DIRECTORY_SEPARATOR."IPSComponent".DIRECTORY_SEPARATOR."IPSComponentAVControl".DIRECTORY_SEPARATOR."IPSComponentAVControl_AudioMax.class.php"; 
var_dump($path);  

Da muss doch fast nur die „autoload.php“ angepasst werden … :cool:

Migration der IPSLibrary von Windows auf Raspbian

Gruß
Bruno

Ok, ich habe es bis auf die IPSCam hinbekommen, aber die muss ich dann halt neu einrichten. Vielen Dank an alle! :slight_smile:

Hallo liebe IPS-Fangemeinde,
hätte mir den Umstieg von IPS 5.0 Windows auf IPS 5.0 Ubuntu leichter vorgestellt.
Möchte mir eigentlich die Neuinstallation von z.B. IPSLibrary ersparen.
Wenn ich es richtig mitbekommen habe muss ich die „settings.json“, „_autoload.php“ und eventuell diverse Scripte anpassen.
Kann das \ oder \ statt auf / zu ändern auch auf .DIRECRORY_SEPARATOR. ersetzt werden?
Z.B. in „settings.json“:

"file":"IPSLibrary\\app\\core\\IPSComponent\\IPSComponentCam\\IPSComponentCam_Planet.class.php"

auf

"file":"IPSLibrary“.DIRECRORY_SEPARATOR.“app“.DIRECRORY_SEPARATOR.“core“.DIRECRORY_SEPARATOR.“IPSComponent“.DIRECRORY_SEPARATOR.“IPSComponentCam“.DIRECRORY_SEPARATOR.“IPSComponentCam_Planet.class.php"

Oder bei „__autoload.php“

include_once IPS_GetKernelDir()."\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php";
   IPSUtils_Include("IPSLogger_PhpErrorHandler.inc.php", "IPSLibrary::app::core::IPSLogger");

in

$path = IPS_GetKernelDir()."“.DIRECRORY_SEPARATOR.“scripts“.DIRECRORY_SEPARATOR.“IPSLibrary“.DIRECRORY_SEPARATOR.“app“.DIRECRORY_SEPARATOR.“core“.DIRECRORY_SEPARATOR.“IPSUtils“.DIRECRORY_SEPARATOR.“IPSUtils.inc.php";
include_once var_dump($path);
   IPSUtils_Include("IPSLogger_PhpErrorHandler.inc.php", "IPSLibrary::app::core::IPSLogger");

Wenn ich richtig liege, mache ich mich gleich ans werken :o

Ja, das sollte auch korrekt funktionieren :slight_smile:

paresy