Lokale Skriptvariable per Shellskript auslesen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Lokale Skriptvariable per Shellskript auslesen

Beitrag von dtp » 12.02.2018, 08:26

Hi,

gibt es eine Möglichkeit, per Shellskript (bash, sh) z.B. von einem Raspi aus den Inhalt einer lokalen Skriptvariablen der CCU2 ausulesen?

Oder kann man alternativ das ganze Shellskript ziehen, um es dann auf dem Raspi nach einem String durchsuchen zu lassen?

Hintergrund: ich möchte gerne die in meinen zPNS-xx hinterlegten Zugriffsdaten für die Push-Dienste für meinen DoorPi nutzen, ohne sie dort noch mal explizit ablegen zu müssen. Zudem möchte ich die Daten auch nicht in einer Systemvariablen auf der CCU2 speichern.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Xel66
Beiträge: 14146
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 582 Mal
Danksagung erhalten: 1497 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von Xel66 » 12.02.2018, 08:51

Ich glaube nicht, dass die Scriptvariablen über den Webserver abfragbar sind, habe es aber auch noch nicht ausprobiert. Mein Lösungsansatz wäre aber, die benötigten Dateien im Webserverbereich der CCU als .conf o.ä. zu hinterlegen und von dort durch den DoorPi bei Bedarf abrufen zu lassen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von dtp » 12.02.2018, 09:07

Hm. Dann müsste ich aber auch die zPNS-xx entsprechend umstellen, und das möchte ich ehrlich gesagt nicht.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
Black
Beiträge: 5469
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1070 Mal
Kontaktdaten:

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von Black » 12.02.2018, 09:44

direkt vllt nicht, aber ich würds vllt so probieren

Wenn dein Script ohne Trigger aufgerufen wird, kannst du es ja über $src$ erfassen

nun baust in ein script ein, das es, wenn es manuell oder im boot aufgerufen wird, nix macht, sondern nurdie lokalen Scriptvariablen mit deinen defitionen füllt und dann wieder zurückkehrt.

wenn du es über in einem tcl script dann via regascript dann aufrufst, werden die lokalen scriptvariablen in einem array zurückgegeben. dieses array kannst du dann auswerten.
Ähnlich hab ichs auch in meinem Script Scheduler gemacht.
Grad mal probiert, klappt leider so nicht...

Gruss, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von dtp » 12.02.2018, 10:47

Black hat geschrieben: Grad mal probiert, klappt leider so nicht...
Trotzdem danke. Wäre mir aber auch irgendwie zu "kompliziert". ;)

Ist es nicht so, dass auch lokale Skriptvariablen in der CCU zwischengespeichert werden, so dass sie von anderen CCU-Skripten auslesbar sind, sofern sie dort nicht neu deklariert wurden? Dann müsste man doch diese Skriptvariablen doch auch ausgelesen bekommen.

Mir würde es ja ansonsten auch schon helfen, wenn ich das gesamte Skript irgendwie mit dem Raspi auslesen könnte. Das Finden des entsprechenden Strings innerhalb des Skripts wäre dann die kleinste Herausforderung. ;)

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Xel66
Beiträge: 14146
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 582 Mal
Danksagung erhalten: 1497 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von Xel66 » 12.02.2018, 12:10

dtp hat geschrieben:Dann müsste man doch diese Skriptvariablen doch auch ausgelesen bekommen.
Das heißt noch lange nicht, dass Du da via Webanfrage rankommst. Scriptvariablen überleben ja auch einen Neustart nicht und werden somit nicht mitgesichert. Darum dürften sie wohl nur ab der ersten Laufzeit des Scripts im RAM sein.
dtp hat geschrieben:Mir würde es ja ansonsten auch schon helfen, wenn ich das gesamte Skript irgendwie mit dem Raspi auslesen könnte.
Warum setzt Du nicht bei meinem Vorschlag an? Du hinterlegst im Verzeichnis /www/config/ eine Textdatei (z.B. doorpi.txt) mit den entsprechenden Zugangsdaten und fragst sie beim Scriptlauf auf dem DoorPi über http://IPDERCCU/www/config/dorrpi.txt ab. In diesem Verzeichnis sind diverse Dateien, die ich über diesen Weg abfragen kann. Somit sind die hinterlegten Daten zwar in Deinem Netz verfügbar, werden aber nicht unbedingt als Systemvariable im GUI der CCU dargestellt.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von dtp » 12.02.2018, 12:31

Xel66 hat geschrieben: Warum setzt Du nicht bei meinem Vorschlag an?
Weil die zPNS-xx hier von einigen Usern verwendet werden und das Anlegen und Auslesen einer solchen txt-Datei dann doch etwas zu viel Aufwand bedeuten würde, zumal das ja für die Mehrheit keinerlei Benefit darstellen dürfte. Dein Vorschlag ist zwar gut, aber so leider nicht praktikabel. Da könnte ich die betreffenden Daten dann doch besser in eine oder mehrere Systemvariablen schreiben.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Xel66
Beiträge: 14146
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 582 Mal
Danksagung erhalten: 1497 Mal

Re: Lokale Skriptvariable per Shellskript auslesen

Beitrag von Xel66 » 12.02.2018, 16:03

dtp hat geschrieben:Weil die zPNS-xx hier von einigen Usern verwendet werden...
OK, ich dachte es geht Dir primär darum, dass keine Zugangsdaten im einem IT-Gerät außerhalb Deines Wohnhauses hinterlegt werden und dass Du es deshalb von "extern" abfragen wolltest.

Grundsätzlich ist das Editieren von Konfigurationsdateien für bestimmte Addons (z.B. Webcam) auf der CCU auch "üblich" und wird so von vielen Usern gemacht. Ich gehe mal davon aus, dass entsprechende Konfigrurationsdaten auch mittels Script Initial in einer solchen Datei über die "Script ausführen"-Funktion hinterlegt werden könnten. Wer etwas Mächtiges wie das zPNS einsetzt, sollte auch zu dieser einmaligen Aktion in der Lage sein. Alternativ kann man es ja im Addon-Verzeichnis hinterlegen. Dieses wird durch ein Firmwareupdate nicht überschrieben und durch ein Backup mitgesichert.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“