Somfy RTS + CUXD => Homematic (ohne Aktor)

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

chka
Beiträge: 2483
Registriert: 13.02.2012, 20:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 302 Mal
Danksagung erhalten: 116 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von chka » 22.02.2018, 17:54

Emig hat geschrieben:
image.jpeg
Es gibt ja für die Einrichtung einmal diese Anleitung für die etwas Fortgeschrittenen und dann noch diese:

viewtopic.php?t=36678

Beide Seiten Stellen ein Skript zur Verfügung.

Ich habe mal die beiden Skripte verglichen (nebeneinander Kopiert) die die Autoren zur Verfügung stellen. Dabei ist mir in der zweiten und dritten Zeile ein Unterschied aufgefallen.

Siehe Bild...

Kannst mir je,and sagen warum man in dem einem Skript auf Zeile 2 und 3 dieser Anleitung verzichtet hat?
Dann solltest du dich schnell in das Thema einarbeiten! Putty ist ein Programm und die Zeilen sind mit einer Raute (#) aaskommentiert also greifen sie nicht, dies ist für mich wenn ich mal schnell was anlernen muss eine Information
RaspberryMatic - CuL 868mHz- CuxDemon - PioTek Tracker - Velux mit KLF200 und Somfy Anbindung- io.Broker auf Proxmox NUC6I3SYH i3-6100U RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

comtel2000
Beiträge: 25
Registriert: 21.02.2018, 10:53
Danksagung erhalten: 2 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von comtel2000 » 24.02.2018, 13:13

Falls noch jemand Probleme mit dauer blinkenden CUL's hat ist hier ein überarbeitetes Script mit Prüfung auf zu schnelle Befehlszuweisungen.
Voraussetzung ist eine zusätzliche Systemvariable (SOMFY_PID) mit Typ: Zeichenkette, die parallele Abarbeitung vermeiden sollte:

Code: Alles auswählen

#!/bin/tclsh
load tclrega.so

proc rega_read {obj} {
  set cmd "var value = dom.GetObject('$obj').Value();"
  array set values [rega_script $cmd]
  return $values(value)
}

# read previous pid
set somfy_pid [rega_read SOMFY_PID]

if {$somfy_pid != "" && $somfy_pid != "???"} {
  puts "process: '$somfy_pid' not finished - sleep for 2 sec."
  after 2000 { set state done }
  vwait state

  # try again
  set somfy_pid [rega_read SOMFY_PID]
  if {$somfy_pid != ""} {
    puts "still busy -> abort"
    exit 1
  }
}

# update current pid
set somfy_pid [pid]
rega_script dom.GetObject('SOMFY_PID').State('$somfy_pid');

# free pid lock after 2000ms
after 2000 {
 rega_script dom.GetObject('SOMFY_PID').State('');
 set state done
}

# get args
set device_name [lindex $argv 0]
set device_sysvar_name [lindex $argv 1]
set device_cmd [lindex $argv 2]
set device_remote_enc [lindex $argv 3]
set device_remote_id [lindex $argv 4]

# get rolling counter
set remote_counter [rega_read $device_sysvar_name]

# convert to hex
set remote_counter [expr int($remote_counter)]
set remote_counter_hex [format %04X $remote_counter]

switch $device_cmd {
   "OPEN" { set device_cmd_hex "20" }
   "1000" { set device_cmd_hex "20" }
   "CLOSE" { set device_cmd_hex "40" }
   "0" { set device_cmd_hex "40" }
   "PROG" { set device_cmd_hex "80" }
   "MY" { set device_cmd_hex "10" }
   "500" { set device_cmd_hex "10" }
   "STOP" { set device_cmd_hex "11" }
   default { 
     puts "unknown command: $device_cmd"
     exit 1
   }
}

incr remote_counter
rega_script dom.GetObject('CUxD.$device_name.SEND_CMD').State('Ys$device_remote_enc$device_cmd_hex$remote_counter_hex$device_remote_id');
rega_script dom.GetObject('$device_sysvar_name').State('$remote_counter');

vwait state
Zuletzt geändert von comtel2000 am 27.02.2018, 00:51, insgesamt 1-mal geändert.

chka
Beiträge: 2483
Registriert: 13.02.2012, 20:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 302 Mal
Danksagung erhalten: 116 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von chka » 24.02.2018, 13:19

Damit ich es richtig verstehe mit dem script wird verhindert das sich der cal ggf verschluckt und alles nach einander abgearbeitet wird?
RaspberryMatic - CuL 868mHz- CuxDemon - PioTek Tracker - Velux mit KLF200 und Somfy Anbindung- io.Broker auf Proxmox NUC6I3SYH i3-6100U RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

tinamausi
Beiträge: 101
Registriert: 07.04.2011, 17:37

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von tinamausi » 24.02.2018, 18:46

Hallo comtel2000
Falls noch jemand Probleme mit dauer blinkenden CUL's hat ist hier ein überarbeitetes Script mit Prüfung auf zu schnelle Befehlszuweisungen.
Voraussetzung ist eine zusätzliche Systemvariable (SOMFY_PID) mit Typ: Zeichenkette, die parallele Abarbeitung vermeiden sollte:
habe auch dieses Proplem, somit habe ich dieses Script ausgetausch und ein Variabel wie beschrieben angelegt. Leider werden keine sendebefehle mehr gesendet (Cux Terminal) gibt es noch was zu beachten oder mach ich noch was falsch. Es werden bei mir 9 Somfy Rolladen bedient mit seperaten Selbstbau Cul Version (V 1.67 nanoCUL433)

Tinamausi
Asustinker S mit RaspiMatic, CUX Version 2.2.0 mit 2 Selbstbau Cul (433/868 MHz), Raspi3 mit Display 7" und ioBroker
70 Kanäle in 36 Geräten und 51 CUxD-Kanäle in 17 CUxD-Geräten

comtel2000
Beiträge: 25
Registriert: 21.02.2018, 10:53
Danksagung erhalten: 2 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von comtel2000 » 24.02.2018, 19:55

Das Script prüft über die Systemvariable SOMFY_PID einfach auf doppelte Ausführung. Während das script läuft, steht die aktuelle ProzessID in SOMFY_PID und wird nach ca.2sec. wieder gelöscht. Falls dauerhaft was in SOMFY_PID steht konnte das letzte script nicht ausgeführt werden, was aber theoretisch nicht passieren sollte..

tinamausi
Beiträge: 101
Registriert: 07.04.2011, 17:37

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von tinamausi » 24.02.2018, 20:10

Hallo comtel2000
das Skript funktioniert bei mir nicht, und in der Systemvariabel stehen 3*?
Zeile der Systemvariabel in der Web Oberfläche des Raspimatic ( SOMFY_PID SOMFY_PID 24.02.2018 19:52:37 ??? ) da müsste ja was passieren ?

Tinamausi
Asustinker S mit RaspiMatic, CUX Version 2.2.0 mit 2 Selbstbau Cul (433/868 MHz), Raspi3 mit Display 7" und ioBroker
70 Kanäle in 36 Geräten und 51 CUxD-Kanäle in 17 CUxD-Geräten

comtel2000
Beiträge: 25
Registriert: 21.02.2018, 10:53
Danksagung erhalten: 2 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von comtel2000 » 24.02.2018, 21:35

@Tinamausi
was passiert wen du das script in der Konsole/Putty startest?
Bitte einfach mal manuell einen Leerstring "" in SOMFY_PID schreiben.
Wahrscheinlich ist die Systemvariable noch nicht initialisiert.

tinamausi
Beiträge: 101
Registriert: 07.04.2011, 17:37

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von tinamausi » 24.02.2018, 22:16

@comtel2000

in Putty passiert nichts, außer das Putty sich selbst schließt.
Der Leerstring hat auch nicht geholfen, das alte Skript funktioniert aber sofort wieder.
Gibt es noch andere Möglichkeiten ?

Tinamausi
Asustinker S mit RaspiMatic, CUX Version 2.2.0 mit 2 Selbstbau Cul (433/868 MHz), Raspi3 mit Display 7" und ioBroker
70 Kanäle in 36 Geräten und 51 CUxD-Kanäle in 17 CUxD-Geräten

tinamausi
Beiträge: 101
Registriert: 07.04.2011, 17:37

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von tinamausi » 25.02.2018, 09:29

Hallo comtel2000

jetzt funktioniert es, habe nochmals Leerzeichen in die variabel geschrieben und Neustart des Raspimatic durchgeführt, für andere es darf absolut nichts in der Variabel stehen nach Erstellung.
Danke für deine Arbeit, ein Absturz des nanocul ist somit geschichte.

Tinamausi
Asustinker S mit RaspiMatic, CUX Version 2.2.0 mit 2 Selbstbau Cul (433/868 MHz), Raspi3 mit Display 7" und ioBroker
70 Kanäle in 36 Geräten und 51 CUxD-Kanäle in 17 CUxD-Geräten

chka
Beiträge: 2483
Registriert: 13.02.2012, 20:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 302 Mal
Danksagung erhalten: 116 Mal

Re: Somfy RTS + CUXD => Homematic (ohne Aktor)

Beitrag von chka » 25.02.2018, 09:48

Habe es im Urspunkgspost verlinkt.

@Tinamaus bist du dir sicher das der CUL abstürzt, habe bei meinen Programmen in denen mehrere Rollos gesteuert werden einfach zeitversetzt diese angesteuert. Durch die Anpassung des Scripts sollte dies jetzt nicht mehr nötig sein.
RaspberryMatic - CuL 868mHz- CuxDemon - PioTek Tracker - Velux mit KLF200 und Somfy Anbindung- io.Broker auf Proxmox NUC6I3SYH i3-6100U RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

Antworten

Zurück zu „CUxD“