IO-Homecontrol Devices über Tahoma Box einbinden

Begonnen von mike3436, 17 Oktober 2014, 22:07:36

Vorheriges Thema - Nächstes Thema

Tom82

Hallo Leute!

Ich bin Anfänger auf Fhem. Ich bin leider in die Somfy-Falle getappt, aber auf diesem Wege bin ich auf Fhem gestoßen. Da es die einzige Möglichkeit scheint Somfy IO Produkt
extern zu steuern.

Ich habe mir jetzt Fhem installiert (Windows 10 Rechner, zum testen). Jetzt hänge ich leider bei der Installation von Json. Mir ist leider nicht klar wie das genau funktionieren soll.
Json ist aber wie ich gelesen habe notwendig für das Tahoma Modul. Vielleicht könnt ihr mir weiter helfen.

Danke Tom!

mike3436

Hallo Tom,
unter Windows sollte das unproblematisch sein, da die mir bekannten Perl-Installationen normalerweise die JSON-Bibliothek schon beinhalten!
Falls das bei dir nicht der Fall sein sollte, dann würde ich Perl neu herunterladen und installieren.
Ich habe unter Windows z.B. ActivePerl 5.18.2 installiert, und da habe ich bisher keine Bibliothek nachinstallieren müssen
Es gibt zwar Möglichkeiten zur Nachinstallation von Modulen/Bibliotheken unter Windows, aber da  musst du dich im Netz schlau machen ...
Gruß Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo,

ich habe Somfy Rollladen vom Typ RS 100 io über die Tahoma-Box in FHEM eingebunden. Diese können mit unterschiedlichen Geschwindigkeiten gefahren werden (normal und langsam). Wie mache ich das in FHEM?
Vielversprechend erscheint mir unter den angebotenen COMMANDS: setClosureAndLinearSpeed, aber mit welchen Argumenten?
Wer kann helfen?
Vielen Dank

mike3436

Hallo,
ich kenne den neuen Motor noch nicht, und somit auch nicht die Parameterierung.
Ggf. kann man aus dem Setup etwas herausinterpretieren, wenn du mir das schickst:
Loglevel von tahoma ACCOUNT auf verbose 4 und neu Verbinden (z.B. mit auf ACCOUNT get reset)
log, oder nur die zeile mit tahoma1: tahoma_dispatch data={"setup" ... posten (ggf. per PM)
Wenn du dich mit json auskennst, dann reicht auch der Auszug des speziellen RS 100 devices.
Gruß Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo Rolf,

hier der Auszug des RS 100 devices:
{"creationTime":1480696466000,"lastUpdateTime":1480696466000,"label":"WohnzimmerFenster RL","deviceURL":"io://XXXX-XXXX-XXXX/12345678","shortcut":false,"controllableName":"io:RollerShutterWithLowSpeedManagementIOComponent",
"definition":{"commands":[
{"commandName":"close","nparams":0},
{"commandName":"delayedStopIdentify","nparams":1},
{"commandName":"down","nparams":0},
{"commandName":"getName","nparams":0},
{"commandName":"identify","nparams":0},
{"commandName":"my","nparams":0},
{"commandName":"open","nparams":0},
{"commandName":"refreshMemorized1Position","nparams":0},
{"commandName":"setClosureAndLinearSpeed","nparams":2},
{"commandName":"setClosure","nparams":1},
{"commandName":"setDeployment","nparams":1},
{"commandName":"setMemorized1Position","nparams":1},
{"commandName":"setName","nparams":1},
{"commandName":"setPosition","nparams":1},
{"commandName":"setSecuredPosition","nparams":1},
{"commandName":"startIdentify","nparams":0},
{"commandName":"stopIdentify","nparams":0},
{"commandName":"up","nparams":0},
{"commandName":"wink","nparams":1}]
,"states":[
{"type":"ContinuousState","qualifiedName":"core:ClosureState"},
{"type":"ContinuousState","qualifiedName":"core:Memorized1PositionState"},
{"type":"DataState","qualifiedName":"core:NameState"},{"values":["closed","open"],"type":"DiscreteState","qualifiedName":"core:OpenClosedState"},
{"type":"ContinuousState","qualifiedName":"core:PriorityLockTimerState"},
{"type":"ContinuousState","qualifiedName":"core:RSSILevelState"},
{"type":"ContinuousState","qualifiedName":"core:SecuredPositionState"},
{"values":["available","unavailable"],"type":"DiscreteState","qualifiedName":"core:StatusState"},
{"values":["comfortLevel1","comfortLevel2","comfortLevel3","comfortLevel4","environmentProtection","humanProtection","userLevel1","userLevel2"],"type":"DiscreteState","qualifiedName":"io:PriorityLockLevelState"},
{"values":["LSC","SAAC","SFC","UPS","externalGateway","localUser","myself","rain","security","timer","user","wind"],"type":"DiscreteState","qualifiedName":"io:PriorityLockOriginatorState"}],"dataProperties":[{"value":"500","qualifiedName":"core:identifyInterval"}],
"widgetName":"PositionableRollerShutterWithLowSpeedManagement","uiClass":"RollerShutter","qualifiedName":"io:RollerShutterWithLowSpeedManagementIOComponent","type":"ACTUATOR"},
"states":[
{"name":"core:NameState","type":3,"value":"WohnzimmerFenste"},
{"name":"core:PriorityLockTimerState","type":1,"value":0},
{"name":"core:StatusState","type":3,"value":"unavailable"},
{"name":"core:RSSILevelState","type":2,"value":78.0},
{"name":"core:ClosureState","type":1,"value":0},
{"name":"core:OpenClosedState","type":3,"value":"open"}],
"attributes":[],"available":false,"enabled":true,"placeOID":"xxxx-xxxx-xxxx-xx-xxxxx","widget":"PositionableRollerShutterWithLowSpeedManagement","type":1,"oid":"xxx-xxxx-xxxx-xxx-xxxxxx","uiClass":"RollerShutter"},


Ich hoffe die Info reicht.
Gruß Axel

mike3436

bei "setClosureAndLinearSpeed" steht "nparams":2, ich hatte mir schon so etwas gedacht, und ein Befehl mit 2 durch Komma getrennte Zahlen sollte mit dem Modul sogar korrekt versendet werden.
Ich kenne den Wertebereich für Speed nicht, könnte aber ebenfalls 0..100% sein, aber das wirst du schon rausfinden  :)
Wenn du den Befehl "setClosureAndLinearSpeed" mit Parameter 50,10 abschickst, sollte sich die Rollade langsam auf 50% bewegen.
Ansonsten nochmal den Befehl mit Antwort über verbose 5 loggen.
Gruß Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo Rolf,

die gute Nachricht: bei "set setClosureAndLinearSpeed 30,10" bewegt sich der Rollladen auf 30%.
Die schlechte Nachricht: der zweite Parameter hat keinen Einfluss auf die Geschwindigkeit (ich habe Werte von 0-500 getestet - also auch 0 und 1), er fährt immer mit der normalen (schnellen) Geschwindigkeit. Das gleiche Verhalten auch bei "set setClosureAndLinearSpeed 30" (komplett ohne zweiten Parameter).

Gibt man z.B. als Parameter "30,slow" oder "30,"slow"" oder "30,normal" ein passiert nichts, auch keine Meldung im log.
Hier noch mal der Befehl mit Antworten

2017.05.02 08:50:32 3: Rollladen_Arbeitszimmer: tahoma_applyRequest data={"label":"Arbeitszimmer RL - setClosureAndLinearSpeed 30,10 - iPhone","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234567","commands":[{"name":"setClosureAndLinearSpeed","parameters":[30,10]}]}]}
2017.05.02 08:50:32 5: tahoma1: tahoma_UserAgent_NonblockingGet page=apply
2017.05.02 08:50:32 5: tahoma1: tahoma_parseGetEvent
2017.05.02 08:50:33 4: tahoma1: refreshing event
2017.05.02 08:50:33 4: tahoma1: tahoma_getEvents
2017.05.02 08:50:33 5: tahoma1: tahoma_UserAgent_NonblockingGet page=getEvents
2017.05.02 08:50:33 4: tahoma1: tahoma_dispatch data=[ { "name": "ExecutionStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "execId": "c7ecbe4b-ac10-0c01-338f-964d1b2faaed", "newState": "1", "ownerKey": "xxx-xxxx-xxx-xxxx", "type": "1", "subType": "1", "oldState": "0", "timeToNextState": "0" }, { "name": "ExecutionStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "execId": "c7ecbe4b-ac10-0c01-338f-964d1b2faaed", "newState": "2", "ownerKey": "xxx-xxxx-xxx-xxxx", "type": "1", "subType": "1", "oldState": "1", "timeToNextState": "0" }]
2017.05.02 08:50:33 5: tahoma1: tahoma_parseGetEvent
2017.05.02 08:50:35 4: tahoma1: refreshing event
2017.05.02 08:50:35 4: tahoma1: tahoma_getEvents
2017.05.02 08:50:35 5: tahoma1: tahoma_UserAgent_NonblockingGet page=getEvents
2017.05.02 08:50:35 4: tahoma1: tahoma_dispatch data=[ { "name": "DeviceStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "deviceURL": "io://xxxx-xxxx-xxxx/1234567", "deviceStates": [ { "name": "core:RSSILevelState", "value": "64.0" }] }, { "name": "ExecutionStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "execId": "c7ecbe4b-ac10-0c01-338f-964d1b2faaed", "newState": "3", "ownerKey": "xxx-xxxx-xxx-xxxx", "type": "1", "subType": "1", "oldState": "2", "timeToNextState": "0" }]
2017.05.02 08:50:35 5: tahoma1: tahoma_parseGetEvent
2017.05.02 08:50:37 4: tahoma1: refreshing event
.
.
.
.
.
2017.05.02 08:50:55 4: tahoma1: tahoma_getEvents
2017.05.02 08:50:55 5: tahoma1: tahoma_UserAgent_NonblockingGet page=getEvents
2017.05.02 08:50:55 4: tahoma1: tahoma_dispatch data=[ { "name": "DeviceStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "deviceURL": "io://xxxx-xxxx-xxxx/1234567", "deviceStates": [ { "name": "core:RSSILevelState", "value": "70.0" }, { "name": "core:ClosureState", "value": "30" }, { "name": "core:OpenClosedState", "value": "open" } ] }, { "name": "ExecutionStateChangedEvent", "setupOID": "xxx-xxxx-xxx-xxxx", "execId": "c7ecbe4b-ac10-0c01-338f-964d1b2faaed", "newState": "4", "ownerKey": "xxx-xxxx-xxx-xxxx", "type": "1", "subType": "1", "oldState": "3" }]
2017.05.02 08:50:55 5: tahoma1: tahoma_parseGetEvent
2017.05.02 08:50:57 4: tahoma1: refreshing event
2017.05.02 08:50:57 4: tahoma1: tahoma_getEvents


Gruß Axel

mike3436

Hallo Axel,
Das json Array wird wie erwartet gesendet, dann habe ich auch keine Idee mehr.
Ich gehe mal davon aus, das sich über die Phone-App die Geschwindigkeit steuern läßt.
Wenn dir das steuern der Geschwindigkeit wichtig ist, dann muss man sich tiefer reinhängen.
Gruß Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo Rolf,

erstmal vielen Dank für deine Bemühungen.
Bevor ich meine Versuche einstelle ist mir noch folgendes in den tahoma setup Daten nach dem reset aufgefallen. Es handelt es sich dabei um die Szenarien, die ich letztens übersehen habe (bei allen Szenarien ist langsame Fahrt eingestellt):

{"creationTime":1480709197000,"lastUpdateTime":1480709197000,"label":"Kl. Zimmer runter","shortcut":false,"notificationTypeMask":0,"notificationCondition":"NEVER","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234567",
"commands":[{"type":1,"name":"setClosureAndLinearSpeed","parameters":[100,"lowspeed"]}]}],"oid":"2f75afdd-8bce-108f-921d-11feb70f219f"},
{"creationTime":1480709093000,"lastUpdateTime":1480709093000,"label":"Kl. Zimmer hoch","shortcut":false,"notificationTypeMask":0,"notificationCondition":"NEVER","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234567",
"commands":[{"type":1,"name":"setClosureAndLinearSpeed","parameters":[0,"lowspeed"]}]}],"oid":"361a9628-a8fb-46db-90b5-b046c6731f3f"},


Meine eingegebenen Befehle

ohne " "
2017.05.03 10:42:04 3: Rollladen_Arbeitszimmer: tahoma_applyRequest data={"label":"Arbeitszimmer RL - setClosureAndLinearSpeed 0,lowspeed - iPhone","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234567",
"commands":[{"name":"setClosureAndLinearSpeed","parameters":[0,lowspeed]}]}]}

und mit " "
2017.05.03 10:42:49 3: Rollladen_Arbeitszimmer: tahoma_applyRequest data={"label":"Arbeitszimmer RL - setClosureAndLinearSpeed 0,"lowspeed" - iPhone","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234567",
"commands":[{"name":"setClosureAndLinearSpeed","parameters":[0,"lowspeed"]}]}]}


brachten keine Reaktion beim Rollladen. Ich habe dann mal bei den Szenarien die langsame Geschwindigkeit herausgenommen. Daraufhin ändern sich die setup Daten nach reset von setClosureAndLinearSpeed auf setClosure:

{"creationTime":1480708947000,"lastUpdateTime":1493798505000,"label":"Arbeitszimmer hoch","shortcut":false,"notificationTypeMask":0,"notificationCondition":"NEVER","actions":[{"deviceURL":"io://xxxx-xxxx-xxxx/1234568",
"commands":[{"type":1,"name":"setClosure","parameters":[0]}]}],"oid":"cd6106b6-a584-40b1-885f-750cf6a241d9"},


Ist das vielleicht nochmal ein letzter Anhaltspunkt für eine Lösung?

Gruß Axel

mike3436

Hallo Axel, du schreibst
ZitatMeine eingegebenen Befehle mit " " brachten keine Reaktion beim Rollladen
Meinst du damit gar keine Bewegung, oder keine langsame Bewegung, sondern schnelle, wie bei setClosure?

Auf jeden Fall kennen wir ja jetzt wahrscheinlich die Syntax der Parameter:
"commands":[{"name":"setClosureAndLinearSpeed","parameters":[0,"lowspeed"]}]}]
Eventuell fehlt das type, das sonst nicht wichtig ist:
"commands":[{"type":1,"name":"setClosureAndLinearSpeed","parameters":[0,"lowspeed"]}]}]

Ich glaube aber das der Fehler wo anders liegt:
Der Befehl mit Parameter wird als Label hinzugefügt, und das enthält dann Anführungszeichen, und damit ist die Syntax hin, und dann ist auch klar, dass nichts ausgeführt wird.
data={"label":"Arbeitszimmer RL - setClosureAndLinearSpeed 0,"lowspeed" - iPhone", ...

Die nachfolgenden 2 zusätzlichen Zeilen in sub tahoma_applyRequest sollten das Problem lösen:

  } elsif ($commandChecked eq 'open') {
    $dataHead .= ' - Oeffnen - iPhone","actions":[';
  } elsif ($commandChecked eq 'setClosureAndLinearSpeed') { #neu fuer setClosureAndLinearSpeed
    $dataHead .= ' - Positionieren auf '.split(',',$valueChecked)[0].' % - iPhone","actions":['; #neu fuer setClosureAndLinearSpeed
  } else {
    $dataHead .= " - $commandChecked $valueChecked".' - iPhone","actions":[';


Probier's mal aus, Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo Rolf,

mit keine Reaktion meinte ich gar keine Bewegung.
Ich habe jetzt das Modul 26_tahoma.pm auf meinem Raspi entsprechend geändert. Nach restart kommen aber folgende Fehlermeldungen:

2017.05.03 18:19:33 1: reload: Error:Modul 26_tahoma deactivated:
syntax error at ./FHEM/26_tahoma.pm line 687, near ")["

2017.05.03 18:19:33 0: syntax error at ./FHEM/26_tahoma.pm line 687, near ")["

2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_Initialize redefined at ./FHEM/26_tahoma.pm line 67, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_Define redefined at ./FHEM/26_tahoma.pm line 93, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_Notify redefined at ./FHEM/26_tahoma.pm line 190, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_Undefine redefined at ./FHEM/26_tahoma.pm line 203, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_login redefined at ./FHEM/26_tahoma.pm line 214, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_startup redefined at ./FHEM/26_tahoma.pm line 268, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_refreshAllStates redefined at ./FHEM/26_tahoma.pm line 308, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_getEvents redefined at ./FHEM/26_tahoma.pm line 324, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_readStatusTimer redefined at ./FHEM/26_tahoma.pm line 342, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_connect redefined at ./FHEM/26_tahoma.pm line 403, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_initDevice redefined at ./FHEM/26_tahoma.pm line 417, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_updateDevices redefined at ./FHEM/26_tahoma.pm line 470, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_getDevices redefined at ./FHEM/26_tahoma.pm line 520, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_getDeviceDetail redefined at ./FHEM/26_tahoma.pm line 538, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_getStates redefined at ./FHEM/26_tahoma.pm line 556, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_getDeviceList redefined at ./FHEM/26_tahoma.pm line 594, <$fh> line 280.
2017.05.03 18:19:33 1: PERL WARNING: Subroutine tahoma_checkCommand redefined at ./FHEM/26_tahoma.pm line 618, <$fh> line 280.
2017.05.03 18:19:33 1: reload: Error:Modul 26_tahoma deactivated:
syntax error at ./FHEM/26_tahoma.pm line 687, near ")["

Die entsprechenden Zeilen im geänderten Modul sehen folgendermaßen aus (line 687 gekennzeichnet):

        } elsif ($commandChecked eq 'open') {
       $dataHead .= ' - Oeffnen - iPhone","actions":[';
  } elsif ($commandChecked eq 'setClosureAndLinearSpeed') { #neu fuer setClosureAndLinearSpeed
687     $dataHead .= ' - Positionieren auf '.split(',',$valueChecked)[0].' % - iPhone","actions":['; #neu fuer setClosureAndLinearSpeed
  } else {
      $dataHead .= " - $commandChecked $valueChecked".' - iPhone","actions":[';


Da ich kein Perl kann, muss ich dich nochmal belästigen.
Gruß Axel

mike3436

Hi Axel, ja man sollte den code doch rudimentär testen  ::) es fehlte noch eine Klammer:

    $dataHead .= ' - Positionieren auf '.(split(',',$valueChecked))[0].' % - iPhone","actions":[';  #neu fuer setClosureAndLinearSpeed
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

Tradestation

Hallo Rolf,

es ist geschafft !

Mit dem Befehl  setClosureAndLinearSpeed (nnn,"lowspeed") kann man den RS100 io Antrieb nun positionieren und mit langsamer Geschwindigkeit fahren.

Vielen Dank noch mal für deine Unterstützung. Ich nehme an, das Feature kommt ins nächste Release und ist bei einem update dann verfügbar.

Gruß Axel

mike3436

Das Modul mit der Änderung für die korrekte Abarbeitung des Kommandos 'setClosureAndLinearSpeed' wurde eingechecked.

zusätzliches neues Attribut für ACCOUNT:
cryptLoginData=0 verhindert das Speichern von Username/Passwort im crypt-Format.

Gruß Rolf
KNX Hausautomatisierung, RPi mit FHEM, Jeelink + LaCrosse, HM_LAN + KeyMatic, Somfy IO Rollladen mit Tahoma und KLF200, Buderus WPS mit USBTin und KM200

tpoetschan

Hallo zusammen,

nach erfolgloser Recherche freunde ich mich nun langsam mit dem Gedanken an eine Tahoma Box an.
Ich bin in die Velux-Falle getappt... ich habe im Neubau statt Roto Dachfenstern nun Velux erhalten (nicht mitgedacht) und die sind nur per Funk steuerbar.

Bei 3 Dachfenstern (elektrisch) mit jeweils 3 Rolläden (elektrisch), habe ich also sechs zu steuernde IO-Homecontrol Komponenten.
Sämtliche anderen Lösungen sind preislich sehr intensiv, weshalb die Tahoma-Box nun in den Mittelpunkt rückt.

Eine wichtige Frage konnte ich bisher nicht klären: Funktioniert das öffnen und schließen der Fenster/Rolläden auch offline?
Oder ist die Tahoma-Box ohne Internet dann quasi "wertlos"?

Hat sich schonmal jemand das KLF200 (offenbar neu) angesehen?

Viele Grüße

Thomas