Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Moderatoren: jmaus, Co-Administratoren
Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Hallo liebe Communty,
ich habe gestern meine CCU2 zu einer virtualiserten Raspberrymatic (Synology VMM unter Intel Celeron CPU x86) migriert. Dabei kommt als RF-Gateway selbstverständlich die alte CCU2 zum Einsatz. So weit so gut. Das funktioniert
Nun zu meinen Problemen:
Ich habe als Zusatzprogramme das CuxD AddOn (V2.6) und XML-API (V1.21) AddOn installiert. Auf der virtualiserten Raspberrymatic muss man eine spezielle Version des CuxD installieren (cuxd_2.6_ccux86.tar.gz). Das habe ich auch gemacht. Beim Drücken auf den in der Systemsteuerung befindlichen CuxD Button, öffnet sich die CuxD Webseite. Status = Ok. Es sind zwei virtuelle Geräte angelegt, genau wie in der CCU2 auch, allerdings funktionieren die Scripte offensichtlich nicht. Wie ich den Fehler weiter eingrenzen kann, ist mir ehrlich gesagt unklar. Bin unter Linux eher nicht bewandert (nur rudimentäre Kenntnisse).
Das XML-API AddOn scheint auch nicht so recht zu funktionieren. Beim Aufruf der Webseite https://homematicip/addons/xmlapi/info.html erscheint die Liste der möglichen CGIs. Status gibt sogar einen Wert zurück, aber alle anderen CGIs bringen keine Daten oder es läuft sich tot. So richtig kann ich das nicht auseinanderhalten.
Kann mir bitte jemand versuchen zu helfen!? Was braucht ihr für weitere Infos?
Danke für's lesen und beste Grüße.
Rainer
ich habe gestern meine CCU2 zu einer virtualiserten Raspberrymatic (Synology VMM unter Intel Celeron CPU x86) migriert. Dabei kommt als RF-Gateway selbstverständlich die alte CCU2 zum Einsatz. So weit so gut. Das funktioniert
Nun zu meinen Problemen:
Ich habe als Zusatzprogramme das CuxD AddOn (V2.6) und XML-API (V1.21) AddOn installiert. Auf der virtualiserten Raspberrymatic muss man eine spezielle Version des CuxD installieren (cuxd_2.6_ccux86.tar.gz). Das habe ich auch gemacht. Beim Drücken auf den in der Systemsteuerung befindlichen CuxD Button, öffnet sich die CuxD Webseite. Status = Ok. Es sind zwei virtuelle Geräte angelegt, genau wie in der CCU2 auch, allerdings funktionieren die Scripte offensichtlich nicht. Wie ich den Fehler weiter eingrenzen kann, ist mir ehrlich gesagt unklar. Bin unter Linux eher nicht bewandert (nur rudimentäre Kenntnisse).
Das XML-API AddOn scheint auch nicht so recht zu funktionieren. Beim Aufruf der Webseite https://homematicip/addons/xmlapi/info.html erscheint die Liste der möglichen CGIs. Status gibt sogar einen Wert zurück, aber alle anderen CGIs bringen keine Daten oder es läuft sich tot. So richtig kann ich das nicht auseinanderhalten.
Kann mir bitte jemand versuchen zu helfen!? Was braucht ihr für weitere Infos?
Danke für's lesen und beste Grüße.
Rainer
Homematic: Sehr nützlich, aber Finger weg von Funksensoren, wenn es um Zuverlässigkeit geht. Alles was zuverlässig funktionieren soll benötigt RS-485 und Direktverknüpfungen!
-
- Beiträge: 387
- Registriert: 30.03.2017, 13:44
- Hat sich bedankt: 177 Mal
- Danksagung erhalten: 16 Mal
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Ich hab das Gleiche vor einigen Wochen gemacht. Mit der richtigen CUXD Version läuft das problemlos (mit ca. 30 virt. Geräten).
Kannst Du mal die Scripte hier posten?
Kannst Du mal die Scripte hier posten?
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Danke für Deine Antwort. Hier die Daten ->
Zunächst mal der Status:
Hier eines meiner Pushover-Scripte direkt ausgeführt:
Dann quasi das gleiche in abgewandelter, universeller Form auf Basis dieser Anleitung: https://homematic.simdorn.net/push-meldung/
Diese beiden Varianten funktionierten bis zur Migration einwandfrei und zuverlässig. Die Netzwerkeinstellungen der Raspberrymatic habe ich nochmal geprüft. Alles OK. Gateway und DNS sind richtig gesetzt. In der Firewall ist alles mit "Vollzugriff" erlaubt. Irgendwie bin ich Ideenlos, was ich noch testen kann, bzw. wie ich überhaupt testen kann, ob die CUxD das macht, was sie soll. Ich habe natürlich auch schon gegoogelt, aber mit entsprechenden Suchbegriffen keine Treffer gefunden. Scheint so, als würde ich dieses Problem als einziger haben. Ggf. ist die Kombination mit dem VMM (QEMU) auf einem Synology NAS etwas außergewöhnlich. Für mich ist die Virtualisierung allerdings meiner Vorzugsvaríante.
Bin dankbar für jeden Hinweis
Zunächst mal der Status:
Code: Alles auswählen
USB 2-1 - QEMU USB Tablet [HID] - Fri Oct 15 17:59:10 2021
Kein TTY-Device connected!
Erfolgreich mit HomeMatic-CCU 127.0.0.1:8183 verbunden!
als RPC-Server(INIT) von HomeMatic-CCU (24857) angefordert!
Diese Web-Seite wurde aufgerufen von: 192.168.177.68
CUxD-Uptime(2.6): 2 Tag(e) 01:24:16, 192856 Bytes belegt, Compiled May 11 2021 19:24:08
CCU-Uptime(3.59.6.20211009): 2 Tag(e) 01:24:42, load-average: 0.16 0.03 0.01, 10s-cpu-load: 1.4%
Speicher: Total 2033120k Used 392976k Free 1640144k (Cached 148124k) Available 1779212k
CPU(1): Intel(R) Celeron(R) CPU N3160 @ 1.60GHz [3199.89 bogomips]
CPU(2): Intel(R) Celeron(R) CPU N3160 @ 1.60GHz [3199.89 bogomips]
Linux version 5.10.70 (builder@283683684f84) (x86_64-buildroot-linux-gnu-gcc.br_real (Buildroot -g5a34bf7) 10.3.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Sat Oct 9 11:06:59 UTC 2021
aktive CCU-Prozesse: ReGaHss(1) rfd(1) hs485d(1) java(1)
Filesystem: / ext4 (ro) Total 996780k Used 679052k (68.1%) Free 317728k (31.9%)
Filesystem: /dev devtmpfs (rw) Total 1010652k Used 0k ( 0.0%) Free 1010652k (100.0%)
Filesystem: /dev/shm tmpfs (rw) Total 1016560k Used 0k ( 0.0%) Free 1016560k (100.0%)
Filesystem: /tmp tmpfs (rw) Total 1016560k Used 1440k ( 0.1%) Free 1015120k (99.9%)
Filesystem: /run tmpfs (rw) Total 1016560k Used 292k ( 0.0%) Free 1016268k (100.0%)
Filesystem: /var tmpfs (rw) Total 1016560k Used 3780k ( 0.4%) Free 1012780k (99.6%)
Filesystem: /media tmpfs (rw) Total 1016560k Used 0k ( 0.0%) Free 1016560k (100.0%)
Filesystem: /usr/local ext4 (rw) Total 64502396k Used 3441060k ( 5.3%) Free 61061336k (94.7%)
Filesystem: /boot vfat (ro) Total 261868k Used 59604k (22.8%) Free 202264k (77.2%)
CCU-MAC: 02:11:32:22:C5:58
HM-Config: /etc/config/homematic.regadom(4465670) OK! - Sun Oct 17 18:00:21 2021
CUxD-Config: /tmp/cuxd.ps.sav(1292) - D - Sun Oct 17 19:19:10 2021
/usr/local/addons/cuxd/cuxd.ps(1292) - D - Sun Oct 17 13:59:10 2021
/usr/local/addons/cuxd/cuxd.ps.bak(1292) - D - Sun Oct 17 02:59:10 2021
aktuelle Parameter: (* = bei Änderung Neustart erforderlich)
*LISTENPORT '8700'
*HM-HOST '127.0.0.1'
*HM-SCRIPT-PORT '' -> (8183)
*HM-REGA-PORT '' -> (31999)
*RPCHOST '127.0.0.1'
*RPCPORT '8701'
HTTP-REFRESH '5'
TERMINALLINES '25'
RCVLOGSIZE '10000'
USERACCESS ''
CUXINITCMD 'X21'
LOGFILE ''
LOGLEVEL '1'
LOGFLAGS ''
LOGSIZE '1000000'
LOGFILEMOVE ''
DEVLOGFILE ''
DEVLOGSIZE '100000'
DEVLOGMOVE ''
DEVLOGMOVE-HR ''
DEVLOGEXPORT ''
DEVTIMEFORMAT '%Y-%m-%dT%X'
DEVDATAFORMAT ''
DEVLOGOLDALIAS '0'
SUBSCRIBE-RF '1'
SUBSCRIBE-WR '1'
AUTOSAVE '1'
MOUNTCMD ''
UMOUNTCMD ''
BACKUPCMD ''
SYSLOGMOVE ''
SYSLOGMOVEDAILY ''
TH-DIR ''
TH-DIR-FILTER ''
ADDRESS-BUFFER '120'
CLOUDMATIC_CMD '/etc/config/addons/mh/cloudmatic'
WEBCAMCONFIG '/usr/local/addons/cuxd/webcamconfig.ini'
WEBCAMSNAPSHOT '/tmp/snapshots'
WEBCAMCACHE '/tmp/webcams'
SYSLOGFILENAME '/var/log/messages'
CUXD-CHARTS '/etc/config/addons/www/cuxchart/index.html'
DFU_ERASE './dfu-programmer $TARGET$ erase'
DFU_FLASH './dfu-programmer $TARGET$ flash $HEXFILE$'
DFU_START './dfu-programmer $TARGET$ start'
REMOTE-PARAMS ''
REMOTE-CMD ''
LEVEL-FILTER '5'
Aktuelle Geräteeinstellungen - 2 Gerät(e), 32 Channel(s):
CUX2801002:1 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:2 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:3 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:4 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:5 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:6 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:7 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:8 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:9 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:10 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:11 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:12 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:13 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:14 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:15 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2801002:16 rmax(65535) t(3600s) p(0)
KEY-SHORT CMD_SHORT()
KEY-LONG CMD_LONG()
CUX2803001:1 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:2 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:3 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:4 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:5 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:6 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:7 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:8 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:9 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:10 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:11 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:12 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:13 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:14 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:15 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
CUX2803001:16 host:'' int-alive:60s int-fail:60s max-retry:0 threshold:1
gefundene Adressen f(3) (aktuelle zuerst 19:23:26):
Code: Alles auswählen
string nachricht = "<Frostschutz> wurde eingeschaltet";
dom.GetObject("CUxD.CUX2801002:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token=geheim -d user=geheim -d message='"#nachricht#"' -d priority=0 https://api.pushover.net/1/messages.json");
Code: Alles auswählen
var PushOverText = "1_Heizung-Comforttemperratur> wurde ausgeloest";
dom.GetObject('PushOver').State(PushOverText);
var programObj = dom.GetObject("PushOverSend");
programObj.ProgramExecute();
Bin dankbar für jeden Hinweis
Homematic: Sehr nützlich, aber Finger weg von Funksensoren, wenn es um Zuverlässigkeit geht. Alles was zuverlässig funktionieren soll benötigt RS-485 und Direktverknüpfungen!
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Ich vermute, dass ist das einzige, wozu ich CUxD nutze. Das ist allerdings fast existenziell.
Homematic: Sehr nützlich, aber Finger weg von Funksensoren, wenn es um Zuverlässigkeit geht. Alles was zuverlässig funktionieren soll benötigt RS-485 und Direktverknüpfungen!
- jmaus
- Beiträge: 9865
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1883 Mal
- Kontaktdaten:
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Für solch primitive Sachen wie ein "wget" oder "curl" Aufruf brauchst du unter RaspberryMatic kein CUxD. Da funktioniert alles auch problemlos mit direkten "system.Exec()" Befehlen die genau das selbe erledigen.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Okay! Hat denn ggf. jemand ein Demoscript für mich, mit dem man aus der Raspberrymatic heraus mit Boardmitteln Nachrichten per Pushover versenden kann?
Homematic: Sehr nützlich, aber Finger weg von Funksensoren, wenn es um Zuverlässigkeit geht. Alles was zuverlässig funktionieren soll benötigt RS-485 und Direktverknüpfungen!
-
- Beiträge: 12116
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 849 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Will ja kein Spielverderber sein, aber Google nach "homematic pushover" liefert auf Anhieb mind. 2 ausführliche Anleitungen.
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Damit funktioniert es ->
Ich würde aber gerne diese Variante nutzen -> https://homematic.simdorn.net/push-meldung/
Dafür müsste das Script von CUxD auf Syste.Exec umgeschrieben werden. Aufgrund meiner fehlenden Linux-Erfahrung bekomme ich das allerdings nicht hin. Geht das überhaupt? Wenn ich das halbwegs richtig verstanden habe, müsste die Befehlszeile rund um po_request verändert werden.
Kann jemand helfen?
Code: Alles auswählen
! Pushover über system.exec und wget by alchy -> geht doch gut, aber ohne Umlaute in Nachricht
string stdout;string stderr;
string message = "Test mit system.exec und wget von Alchy - und ob das geht - nur ohne Ümläüte";
system.Exec("wget --no-check-certificate --post-data 'token=++++++++&user=++++++++++&message="#message#"' -O - https://api.pushover.net/1/messages" , &stdout, &stderr);
Dafür müsste das Script von CUxD auf Syste.Exec umgeschrieben werden. Aufgrund meiner fehlenden Linux-Erfahrung bekomme ich das allerdings nicht hin. Geht das überhaupt? Wenn ich das halbwegs richtig verstanden habe, müsste die Befehlszeile rund um po_request verändert werden.
Code: Alles auswählen
!Pushover - Skript
!------------------------------
!__Pushover Keys
string po_api_user="+++++++++++++++++++++++";
string po_api_token="+++++++++++++++++++++++++";
!__Nachricht
string po_title="Betreff";
string po_message="Nachricht";
string po_sound="pushover";
string po_priority="1";
string po_device="Rainers_iPhone"; ! wenn leer, dann Nachricht an alle angemeldete Geräte
!___Nur benoetigt wenn Prioritaet auf Emergency (2) gesetzt ist
string po_retry="30";
string po_expires="3600";
!___Erlaeuterungen
! Sounds: pushover, bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien, climb, persistent, echo, updown, none
!Prioritaeten: 0=Normal; 1=High (AudioVibration auch waehrend quiet hour); 2=Emergency (Meldung Muss bestätigt werden, solange sound/Vibration); -1=Low ; -2=Lowest
! Bei Prio 2: po_retry gibt an (in sekunden), wie hauefig eine Nachricht vom Server geschickt wird (z.B. alle 30s)
! Bei Prio 2: po_expires gibt an (in Sekunden), wie lange nachrichten geschickt werden sollen. Bestätigt der User, stoppt die Benachrichtigung. Beispiel: Alle 30 sekunden wird eine Nachricht geschickt, das passiert eine Stunde lang (1 Stunde = 3600 sekunden).
!------ NICHT MODIFIZIEREN-------
string po_request;
if(po_priority=="2"){
po_request="curl -s -k -d token='"#po_api_token#"' -d user='"#po_api_user#"' -d device='"#po_device#"' -d title='"#po_title#"' -d message='"#po_message.ToUTF8()#"' -d priority='"#po_priority#"' -d sound='"#po_sound#"' -d retry='"#po_retry#"' -d expire='"#po_expires#"' https://api.pushover.net/1/messages.json";
}
else{
po_request="curl -s -k -d token='"#po_api_token#"' -d user='"#po_api_user#"' -d device='"#po_device#"' -d title='"#po_title#"' -d message='"#po_message.ToUTF8()#"' -d priority='"#po_priority#"' -d sound='"#po_sound#"' https://api.pushover.net/1/messages.json";
}
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(po_request);
Homematic: Sehr nützlich, aber Finger weg von Funksensoren, wenn es um Zuverlässigkeit geht. Alles was zuverlässig funktionieren soll benötigt RS-485 und Direktverknüpfungen!
-
- Beiträge: 1172
- Registriert: 14.02.2016, 12:32
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Heidenheim
- Hat sich bedankt: 57 Mal
- Danksagung erhalten: 226 Mal
Re: Migration CCU2 -> Raspberrymatic (virtualisiert->x86)
Noch einfacher, du musst eigentlich nur die letzte Zeile ersetzen:
Wobei es sicher eine gute Idee wäre bei den cURL-Aufrufen noch einen Timeout (-m) mitzugeben, da das Script sonst u.U. minutenlang die komplette CCU blockieren kann:
Code: Alles auswählen
system.Exec(po_request);
Code: Alles auswählen
po_request="curl -m 5 -s -k -d...