ich habe da eine mehr oder weniger zufriedenstellende Lösung, dies lässt sich sicherlich noch ein wenig optimieren. Die meisten verwenden sicherlich Visual Studio Code und Samba. So wird es in der openHAB-Dokumentation bspw. empfohlen. Theia ist jetzt nicht wirklich anders als Visual Studio Code. Es ist ein Online-Editor bzw. eine IDE, die auf Webservern läuft.
https://theia-ide.org/
Ich habe zugegeben über GitHub es geklont und lasse das Beispiel theia/examples/browser laufen. Da gibt es dann eine Menüspalte mit Sample Menu zu viel. Man kann es natürlich auch selbst konfigurieren:
https://theia-ide.org/docs/composing_applications/
Ich weiß jetzt nicht mehr, wo da genau das Problem war. Hatte aber auch Probleme dann in Theia den openHAB-Konfigurationsordner zu öffnen. Ich blieb dann einfach bei dem Beispiel aus dem GitHub-Repository.
Ich habe mir folgenden systemd-Dienst erstellt:
Code: Alles auswählen
cat nodejs_theia.service
[Unit]
Description=theia nodejs
Documentation=https://example.com
After=network.target
[Service]
Type=simple
User=openhabvm
ExecStart=/usr/bin/yarn run start --hostname 0.0.0.0 --port 3000
WorkingDirectory=/home/<user oder /path/to/theia>/theia/examples/browser
Restart=on-failure
[Install]
WantedBy=multi-user.target
Man kann das ganze natürlich mit einem Passwort absichern. Eventuell über htaccess oder andere Möglichkeiten. Lass ich mal weg. Man verwendet auch gerne pm2 um eine NodeJS-Anwendung automatisiert zu starten. Gibt viele kleinere Dinge.
Adressieren kann ich den Projektordner bspw. über die URL:
Code: Alles auswählen
http://<ip>:3000/#/etc/openhab2
Code: Alles auswählen
http://<ip>:3000/#/etc
Code: Alles auswählen
sitemap Theia label="Theia"
{
Webview url="https://<ip>/static/theia/theia.html" icon=none height=18
Frame label="Fullscreen"
{
Text item=LINK_SITEMAP
}
}
Code: Alles auswählen
<!DOCTYPE html>
<html>
<head>
<style>
@import url('https://fonts.googleapis.com/css?family=VT323');
body {
font-size: 14px;
font-family: Helvetica, sans-serif;
background: #fff;
color: #000;
}
</style>
<script type="text/javascript">
/*
Disables the border and scrolling of the Webview sitemap iframe in the openhab.app webpage.
*/
function formatIframe() {
var iframe = window.frameElement;
if (iframe) {
iframe.style.border = "0px";
iframe.scrolling = "no";
iframe.style.height = "350px";
}
}
</script>
</head>
<body style="margin:0px;padding:0px;overflow:hidden" onload="formatIframe()">
<iframe src="http://<ip>/#/etc/openhab2" frameborder="0" style="overflow:hidden;overflow-x:hidden;overflow-y:hidden;height:100%;width:100%;position:absolute;top:0px;left:0px;right:0px;bottom:0px" height="100%" width="100%"></iframe>
</body>
</html>
Der Link in der Sitemap funktioniert leider auch nicht, dass Item wäre:
Code: Alles auswählen
String LINK_SITEMAP "<a href='http://<ip>:3000/#/etc/openhab2'>Fullscreen</a>"
Abschließend wie man Theia und die Beispiele baut:
https://github.com/eclipse-theia/theia/ ... eloping.md
Es ist bisher noch nicht das Gelbe vom Ei. Aber vielleicht hat hier jemand anderweitig bereits gute Erfahrungen gemacht oder es regt jemanden an, dies anständig umzusetzen, nachdem man einen Denkanstoß von mir hierzu bekommt.
Es gibt auch andere Versuche, die nach mir dies ausgetestet haben:
https://community.openhab.org/t/experim ... hab/119057
https://github.com/ghys/openhab-ide
Kann dazu nichts näheres sagen. Ist bei mir schon etliche Monate her, dass ich hierzu Versuche unternommen habe.
openHAB läuft bei mir über ein Reverse-Proxy von nginx und wäre auch per htaccess Passwort geschützt. Bei openHAB 3 gibt es ja einen Login-Mechanismus. Auch hierzu muss man vieles nicht mehr sagen.
Mein Ansatz hat deutliche Schwächen. War aber wie gesagt nur ein erster Versuch und ich habe mich nicht näher damit befasst.
Über Theia könnt ihr auch das Terminal bei entsprechender Konfiguration bedienen und openHAB beenden und neustarten. Theoretisch kann man auch Visual Studio Codes Plugins installieren. Da gibt es allgmeine jedoch Komplikationen. Ob die openHAB VS Code Extension läuft, kann ich euch auch nicht mitteilen.
Ich sag es mal so: Für viele von euch wird sicher der Aufwand nicht lohnen. Die meisten bleiben bei Samba + Visual Studio Code. Da ich einzelne Instanzen habe, wo Studenten daran arbeiten, wäre es nicht gerade unpraktisch, wenn man sich jedes Semester sparen könnte, dass Studenten einen Netzwerkordner hinzufügen. Wobei man ja wirklich sagen muss, dass dies Nuancen sind, die einen großen Aufwand nicht wert sind. Das sollten die innerhalb weniger Minuten ja wohl schaffen.
Gab ja Gründe, warum ich dies nur kurz ausprobiert und nicht weiterverfolgt habe. Der Mehrwert geht gegen null. Die Mehrheit dürfte openHAB auch nicht öffentlich im Internet verfügbar haben. Und dann reicht auch eine VPN-Verbindung, dass man von extern am System arbeitet (vorausgesetzt man hätte VPN im Heimnetzwerk installiert).