Somfy RTS + CUXD => Homematic (ohne Aktor)

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

Moderator: Co-Administratoren

Kaschi68
Beiträge: 12
Registriert: 18.12.2017, 12:31

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

Beitrag von Kaschi68 » 21.05.2018, 00:30

Hallo,

erstmal ein ganz großes Dankeschön für die hervorragende Anleitung. Dadurch kann ich jetzt meine Somfy RTS Rolladen und Velux Dachfensterrolladen über CuxD und HM steuern.

Ich habe nur ein Problemchen, ich kriege es nicht gebacken mehrere Rolladen als Gruppe zu steuern. Um sie alle an einen neuen Kanal anzulernen, sind es zu viele.

Habe schon über ein Programm versucht alle auf Behanghöhe 0% oder 100% zu fahren, aber das Ergebnis bleibt unbefriedigend (fährt mal auf, mal ab oder gar nicht). In der Geräteansicht kann ich ganz super Auf-Stop-Ab oder auch 100% oder 0% eingeben und wird korrekt ausgeführt. Nur im Programm nicht.

Kann man die Rolladen einzeln über einen CMD-Befehl auf bzw. ab fahren, oder hat von Euch jemand einen Skript, den ich abändern könnte zur Somfy-Gruppensteuerung ?

Vielen Dank und Gruß,
Kaschi68

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

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

Beitrag von chka » 21.05.2018, 08:26

mach mal eine Sekunde zwischen den befehlen im Programm eine pause, kleiner geht leider nicht.
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

Kaschi68
Beiträge: 12
Registriert: 18.12.2017, 12:31

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

Beitrag von Kaschi68 » 21.05.2018, 14:54

Hallo,

danke chka. Zeitverzögerung hatte ich vorher auch schon drin. Mein Problem war der virtuelle Taster von CuxD, den ich angelegt hatte. Vermutlich verträgt sich das Abarbeiten eines virtuellen CuxD-Tasters mit dem Senden der Somfy-Befehle nicht (bin Anfänger, deshalb Vermutung).

Habe jetzt virtuelle Taster der Raspberymatic Zentrale genommen. Damit funktioniert es einwandfrei.

Schönen Pfigstmontag noch,
Gruß
Kaschi68
Rolladen.JPG

Benutzeravatar
uwe111
Beiträge: 4806
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

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

Beitrag von uwe111 » 23.05.2018, 17:24

michihorn hat geschrieben:
chka hat geschrieben:Wo her weist du das da eine FW1.67 drauf ist? Ich stelle mal in den Raum das der garnicht geflasht ist und damit auch keine Firmware hat. [emoji38]
Stand so in der Artikel Beschreibung. Wie kann ich den CUL denn checken?
Das habe ich dazu in der CUxD-Doku gefunden:
Wie kann ein CUNO oder nanoCUL oder CUL-Clone per USB an z.B. ttyUSB0 angebunden werden?
Die automatische Erkennung funktioniert nicht.
Dazu sind im CUxD-Setup die folgenden Parameter zu setzen:

Code: Alles auswählen

TTYPARAM=ttyUSB0:38400:8N1
TTYASSIGN=ttyUSB0:CUX
Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

ErazorVIP
Beiträge: 10
Registriert: 07.11.2017, 19:01

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

Beitrag von ErazorVIP » 26.05.2018, 13:42

Hallo, ich habe folgendes Skript laufen:

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
Die Somfy Jalousien lassen sich alle ansteuern, leider habe ich das Problem das ich in der SOMFY_PID Variable dann ab und zu dauerhaft die 910 stehen habe.
Ich muß die Variable dann auf 0 setzen das es wieder funktiniert. Wo kann ich ansetzen zur Fehlersuche?

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

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

Beitrag von chka » 26.05.2018, 13:44

Das Problem hatte ich auch, aus demgrund habe ich es wieder rausgeworfen. nimm bitte aus dem Ursprungs post das script und lass die Geschichte mit dem pid weg.
Ich habe es nie lösen können
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

ErazorVIP
Beiträge: 10
Registriert: 07.11.2017, 19:01

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

Beitrag von ErazorVIP » 26.05.2018, 13:56

chka hat geschrieben:Das Problem hatte ich auch, aus demgrund habe ich es wieder rausgeworfen. nimm bitte aus dem Ursprungs post das script und lass die Geschichte mit dem pid weg.
Ich habe es nie lösen können

OK geht klar ;-)

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

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

Beitrag von tinamausi » 27.05.2018, 11:14

Hallo
bei mir läuft das Skript mit (SOMFY_PID) ohne Probleme, bin sehr zufrieden.

schon mal versucht (after 2000) die Zahl zu verändern)


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 » 27.05.2018, 11:23

Hier mal mein Skript

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 != ""} {
  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
siehe Zeile 13
und am Ende
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

techniks
Beiträge: 1
Registriert: 18.02.2016, 13:12

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

Beitrag von techniks » 29.05.2018, 14:32

Hallo!

Erst einmal vielen dank für die Anleitung.
Ich steuere nun erfolgreich eine Markise (Somfy RTS Funk) über die HM-Oberfläche. Hätte nicht gedacht, dass dies funktioniert :D

Meine Frage ist nun folgende. In der Nähe der Markise ist ein "Funk-Rollladenaktor für Markenschalter, 1fach" (Auf/Ab Wippe) der unbenutzt ist. Könnte ich diesen auch zur Steuerung benutzen?
Ich stelle mir vor, dass beim drücken in eine Richtung ein Funksignal an HM gegeben wird und an den Funkmotor weitergeleitet wird - komme aber auf keine Lösung.
Ich befürchte, dass ich nur den Wald vor lauter Bäumen nicht sehe... Gelesen/gefunden hab ich in dieser Richtung leider auch nichts.

Seit meinem Umzug hab ich die CCU2 in Rente geschickt. Aktuell verwende ich eine Raspberry 3 mit Raspmatic, CUL 3 (866) und CUXD (jede Software ist aktuell).
Raspberry 3 mit Raspmatic, CUL 3 (866), CUXD, 12 Aktoren

Antworten

Zurück zu „CUxD“