HC3 - Integration von Somfy Rollos

Hallo ihr Lieben,
Ich hatte vor kurzer Zeit mal mit diesem Therad schon gefragt, wie es ist eine Somfy Umgebung in Fibaro zu integrieren.
Jetzt stellt sich die Frage in einem anderen Kontext nochmal:
1.) Diesmal ist es eine HC3
2.) Diesmal sind es 12 -15 Stück Außenrollos bei meinem Stiefsohn, die in die HC3 integriert werden sollen.

Meine Lösung aus dem eigenen Haus mit dem Anlöten eines RGBW Modules an eine Fernbedienung lässt sich hier nicht mehr sinnvoll verwenden, da die Fernbedienungen mehrkanal fähig und daher ca. 3 x so teuer sind!

Im Netz habe ich ein Somfy RTS to Zwave Umsetzmodul gefunden, allerdings bin ich nicht sicher ob das funktionieren würde??
Oder auf der Fibaro Seite gibt es auch ein Modul, allerdings nur für USA ?

Hat jemande bereis Erfahrungen?
Oder weiß jemand einen Kontakt zu einem gut informierten Somfy Vertreter?
Oder macht es Sinn zu warten, bis vielleicht ein AdOn für die HC3 kommt?

Ich hatte das gleiche „Problem“ und bin der Meinung das eine direkte Ansteuerung von Somfy aus der HC nicht wirklich möglich ist. Meine Lösung war der Einsatz eines RaspPI mit FHEM. Dort gibt es die Module für Somfy_RTS und auch für Somfy IO-Homecontrol. Beide funktionieren gut und ich habe das per HTTP Request mit der HC „verbunden“ und steuere die Rollladen über ein virtuelles Device.
Gruß
Hubertus

@hubertus, Das wäre wahrscheindlich die Beste Lösung.
Ich habe allerdings KEINE Erfahrung mit Raspi und FEHM.

Ich fürchte ich würde jemand brauchen, der mir das gegen Kostenersatz zusammenbaut :wink:

Hi pblacky,

man kann sich da reinfummeln :wink: habe ich auch so gemacht. Kenne mich mit FHEM nicht wirklich aus. Könnte höchstens die Config und das Virtuelle Device zur Verfügung stellen - der Rest scheitert an meiner verfügbaren Zeit. Sorry.

Guten Morgen
Ich habe mir das beides mal angesehen.
Alle Beide Module funktionieren hier in der EU nicht weil beides für das US-Z-Wave ausgelegt sind.
Die US Frequenz sind andere als die hier in der EU und somit nicht zu gebrauchen.
Da aber auch die Motoren auf anderen Frequenzen laufen und andere Protokolle haben sehe ich da noch schwarz.
Bei so vielen Antrieben ist ein Austausch gegen andere Antriebe ja auch Kostenmäßig ein Problem.
Frage mal bei Intuitec nach (https://intuitech.de/) möglicherweise können die zum somfy System einen Treiber schreiben.
Das währe nicht so ein gebastel wie das mit dem Raspi und FEM.
Aber auch nicht Preiswert. Lasse dir mal ein Angebot machen dann bist du schlauer was die Kosten betrifft.
Gruß Frank

Danke @hubertus!
Wenn du das Virtuelle Device mit mir teilen möchtest, freue ich mich!
Dann könnte ich mir mal grundlegend ansehen wie man sowas in der HC3 umsetzen kann.

Mit Intuitech hatte ich gestern zu diesem Thema ein ausführliches Gespräch.
Die haben sich mit Somfy auch schon intensiv auseinander gesetzt und vieles ausprobiert.
Eine professionelle Lösung, haben sie bis jetzt acuh nicht gefunden…
Das mit der Treiber Programmierung ist allerdings interessante Idee, werde ich nochmal hinterfragen.

Fürchte nur, dass es nicht so einfach ist, da in meinem langen Gespräch mit einem Techniker von Somfy Österreich stark herausgeklungen ist, dass sie an sowas nicht interessiert sind!
Schließlich wollen sie ja TaHoma® Premium verkaufen :wink:

1 „Gefällt mir“

wäre aber für die HC2 - da ich die HC3 nicht besitze, aber weiß das es da Änderungen gab musst Du schauen wie man das anpassen kann. Da ich einen HTTP Aufruf zu FHEM im VD nicht hinbekommen habe - ruft das VD eine Scene auf die das übernimmt.

  1. So „sieht“ das VD aus:

    in IP-Adresse steht der Name des Rollladens der auf Seiten FHEM angesteuert werden soll.
    in Port die Scene die das VD starten soll - in dem Fall die Scene Nummer 80
  2. Das VD:
    {"name":"WoZi Rollladen Terr","type":"virtual_device","properties":{"deviceIcon":1,"currentIcon":"1","log":"","logTemp":"","mainLoop":"","ui.Label1.value":"Rollladen geöffnet","ui.Slider1.value":0,"visible":"true","rows":[{"type":"label","elements":[{"id":1,"lua":false,"waitForResponse":false,"caption":"Status:","name":"Label1","favourite":true,"main":true}]},{"type":"button","elements":[{"id":2,"lua":true,"waitForResponse":false,"caption":"🔺Auf","name":"Button31","empty":false,"msg":"-- Command welches übertragen werden soll\nlocal command = 205\n-- text der angezeigt werden soll\nlocal text = \"Rollladen öffnen\"\n-- ab hier keine Änderungen\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1024,"favourite":false,"main":false},{"id":3,"lua":true,"waitForResponse":false,"caption":"📌My","name":"Button32","empty":false,"msg":"-- Command welches übertragen werden soll\nlocal command = 203\n-- text der angezeigt werden soll\nlocal text = \"Rollladen auf Position 'My' setzen\"\n-- ab hier keine Änderungen\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1023,"favourite":false,"main":false},{"id":4,"lua":true,"waitForResponse":false,"caption":"Stop","name":"Button33","empty":false,"msg":"-- Command welches übertragen werden soll\nlocal command = 200\n-- text der angezeigt werden soll\nlocal text = \"letzte Aktion abbrechen ...\"\n-- ab hier keine Änderungen\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1009,"favourite":false,"main":true},{"id":5,"lua":true,"waitForResponse":false,"caption":"🔻Zu","name":"Button34","empty":false,"msg":"-- Command welches übertragen werden soll\nlocal command = 202\n-- text der angezeigt werden soll\nlocal text = \"Rollladen schließen\"\n-- ab hier keine Änderungen\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1034,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":6,"lua":true,"waitForResponse":false,"caption":"☀️Sonne","name":"Button21","empty":false,"msg":"-- ab hier keine Änderungen\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n-- Command welches übertragen werden soll\nlocal command = fibaro:getGlobal(name..\"_RL_Sonne_Set\")\n-- wert konvertieren wegen Tahoma\ncommand = 100 - command\n-- text der angezeigt werden soll\nlocal text = \"Rollladen auf Sonne (\"..command..\"%) stellen\"\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1029,"favourite":false,"main":false},{"id":7,"lua":true,"waitForResponse":false,"caption":"🌙Nachtruhe","name":"Button22","empty":false,"msg":"-- ab hier keine Änderungen\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n-- Command welches übertragen werden soll\nlocal command = fibaro:getGlobal(name..\"_RL_Nacht_Set\")\n-- wert konvertieren wegen Tahoma\ncommand = 100 - command\n-- text der angezeigt werden soll\nlocal text = \"Rollladen auf Nachtruhe (\"..command..\"%) stellen\"\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nfibaro:setGlobal(name..\"_Rollladen\", command)\nfibaro:startScene(scene)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)\n","buttonIcon":1032,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":8,"lua":true,"waitForResponse":false,"caption":"☀️Set 💾","name":"Button41","empty":false,"msg":"-- Setze aktuellen Wert des Sliders als\n-- vorgabe Sonnenwert in globle Variable\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n-- wert des sliders holen ...\nlocal wert = tonumber(fibaro:getValue(vd, \"ui.Slider1.value\"))\n\n-- text der angezeigt werden soll\nlocal text = \"Vorgabe Sonne (\"..wert..\"%) gespeichert\"\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\nfibaro:setGlobal(name..\"_RL_Sonne_Set\", wert)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)","buttonIcon":1029,"favourite":false,"main":false},{"id":9,"lua":true,"waitForResponse":false,"caption":"🌙Set 💾","name":"Button42","empty":false,"msg":"-- Setze aktuellen Wert des Sliders als\n-- vorgabe Nachtruhenwert in globle Variable\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n-- wert des sliders holen ...\nlocal wert = tonumber(fibaro:getValue(vd, \"ui.Slider1.value\"))\n\n-- text der angezeigt werden soll\nlocal text = \"Vorgabe Nachtruhe (\"..wert..\"%) gespeichert\"\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\nfibaro:setGlobal(name..\"_RL_Nacht_Set\", wert)\nfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", text)\n","buttonIcon":1032,"favourite":false,"main":false}]},{"type":"slider","elements":[{"id":10,"lua":true,"waitForResponse":false,"caption":"Öffnen (%)","name":"Slider1","msg":"-- einstellen der Icons - je nach Rückmeldung von MyFHEM\n-- der Öffnungswert ist umgekehrt zu demv von Fibaro\n-- das muss noch angepasst werden\n\n-- eigene DeviceID\nlocal vd = fibaro:getSelfId()\n\n-- Name des Rollladens wird in IPADresse gespeichert, in einem\n-- Raum können ja mehrere Rollladen sein z.B. Wohnzimmer = 3\nlocal name = fibaro:get(vd, \"IPAddress\")\n\n-- Scene die gestartet werden soll steht in der Portnummer\nlocal scene = fibaro:get(vd, \"TCPPort\")\n\nlocal wert = tonumber(fibaro:getValue(vd, \"ui.Slider1.value\"))\nfibaro:debug(\"Wert erhalten: \"..wert)\nlocal source = \"local\"\n\n-- wenn von FHEM dann ist der Wert negativ\n-- und mit einem Offest von 100 damit auch\n-- die \"0\" unterschieden werden kann\nif wert < 0 then\n\tsource = \"somfy\"\n \twert = wert + 100\n\twert = wert * -1\n\tfibaro:debug(\"Source Somfy - Wert korrigiert: \"..wert) \n\twert = 100 - wert\n\tfibaro:debug(\"Source Somfy - Wert umgekehrt: \"..wert) \nend\n\n-- kam der wert von somfy/fhem\n-- dann slider neu einstellen und icon zuweisen\nif source == \"somfy\" then\n\t-- Update Slider\n\tfibaro:call(vd, \"setProperty\", \"ui.Slider1.value\", wert) \n\n\t-- fibaro:debug(\"Sonne: \"..room..\"_RL_Sonne_Set\")\n\t-- fibaro:debug(\"Sonne Wert: \"..fibaro:getGlobal(room..\"_RL_Sonne_Set\"))\n\n\tif wert == fibaro:getGlobal(name..\"_RL_Sonne_Set\") then\n\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf Sonne\")\n \t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1011)\n\telseif\n \t\twert == fibaro:getGlobal(name..\"_RL_Nacht_Set\") then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf Nachtruhe\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1012)\n\telseif \n \t(wert <= 5) then\n\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen geschlossen\")\n\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1034)\n\telseif\n\t\t(wert > 5) and (wert <=15) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1033)\n\telseif\n\t\t(wert > 15) and (wert <=25) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1032)\n\telseif\n\t\t(wert > 25) and (wert <=35) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1031)\n\telseif\n\t\t(wert > 35) and (wert <=45) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1030)\n\telseif\n\t\t(wert > 45) and (wert <=55) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1029)\n\telseif\n\t\t(wert > 55) and (wert <=65) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1028)\n\telseif\n\t\t(wert > 65) and (wert <=75) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1027)\n\telseif\n\t\t(wert > 75) and (wert <=85) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1026)\n\telseif\n\t\t(wert > 85) and (wert <=95) then\n\t\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf \"..wert..\"%\")\n \t\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1025)\n\telse\n\t\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen geöffnet\")\n\t\tfibaro:call(vd, \"setProperty\", \"currentIcon\", 1024)\n\tend\nelse\n \t-- wert wurde hier manuell eingestellt\n\twert = tonumber(fibaro:getValue(vd, \"ui.Slider1.value\"))\n\tfibaro:debug(\"Wert local gesetzt: \"..wert)\n \twert = 100 - wert\n\tfibaro:debug(\"Wert für Somfy korrigiert: \"..wert)\n \tfibaro:setGlobal(name..\"_Rollladen\", wert)\n\tfibaro:startScene(scene)\n\tfibaro:debug(\"An FHEM übermittelt ...\")\n\tfibaro:call(vd, \"setProperty\", \"ui.Label1.value\", \"Rollladen auf Position \"..wert..\"% setzen\")\nend \n ","buttonIcon":1013,"value":0,"favourite":false,"main":false}]}]},"actions":{"pressButton":1,"setSlider":2,"setProperty":2}}

und 3. sie Scene:

--[[
%% properties
%% weather
%% events
%% globals
Bad_Rollladen
--]]

--
-- Scene muss **MANUELL** bleiben - wird vom VD Bad_Rollladen 
-- bei Bedarf gestartet!!
--

local targetUrl = ''
local room = 'WoZiT'
local myfhem = '10.67.77.47'
local rl = 'tahoma_1199131'

-- Http-Request für AutoRemode mittels GCM (Google Cloud Messaging)
-- ***** funzt in Szenen *****
local function sendPushover(requestUrl)
local http = net.HTTPClient()
	fibaro:debug('enter sendPushover')
	fibaro:debug(requestUrl)
	http:request(requestUrl, {
       success = function(resp)
        if resp.status == 200 then
          fibaro:debug(resp.status)
		  fibaro:debug('Verbindung erfolgreich, status: ' .. resp.status)
        else
			fibaro:debug('Verbindung fehlgeschlagen, error: ' .. resp)
        end
      end
	})
end

local function SetShutter(wert)
	fibaro:debug('SetShutter gestartet mit: '..wert)

	if ((tonumber(wert) >= 0) and (tonumber(wert) <= 100)) then
		targetUrl = 'http://'..myfhem..':8083/fhem?cmd=set%20'..rl..'%20dim%20'..wert..'&XHR=1'
    elseif
    	tonumber(wert) == 200 then
			targetUrl = 'http://'..myfhem..':8083/fhem?cmd=set%20'..rl..'%20cancel&XHR=1'
    elseif
    	tonumber(wert) == 202 then
			targetUrl = 'http://'..myfhem..':8083/fhem?cmd=set%20'..rl..'%20down&XHR=1'
    elseif
    	tonumber(wert) == 203 then
			targetUrl = 'http://'..myfhem..':8083/fhem?cmd=set%20'..rl..'%20my&XHR=1'
    elseif
    	tonumber(wert) == 205 then
			targetUrl = 'http://'..myfhem..':8083/fhem?cmd=set%20'..rl..'%20up&XHR=1'
  	end
	fibaro:debug(targetUrl)
	sendPushover(targetUrl)
	fibaro:debug('SetShutter verlassen')
end


local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getGlobalValue(room.."_Rollladen")) >= tonumber("0") )
or
startSource["type"] == "other"
)
then
	fibaro:debug("Variable "..room.."_Rollladen neuer Wert: "..tonumber(fibaro:getGlobalValue(room.."_Rollladen")))
 	SetShutter(tonumber(fibaro:getGlobalValue(room.."_Rollladen")))
end


Die Werte 200 bis 205 werden dann im FHEM ausgewertet um den Rollladen in Position zu bringen.
myfhem ist der DNS des RaspBerry mit dem FHEM drauf. Die Positionen für Nachtruhe etc. lassen sich in einer Variablen speichern (SET) damit man diese dann als Preset aufrufen kann.

Viel „gebastel“ aber es funktioniert und hat außer Zeit nix gekostet.

Gruß
Hubertus

Danke @hubertus fürs Teilen!!
Hab mir die Szene und das VD mal in meine alte HC2 eingespielt.
Im Prinzip hängt alles an den HTTP Requests im Skript, die du dem FEHM aus der VD übergibst, soweit klar!

Ich habe das Somfy Problem vor Jahren bei einem HomeCenter2 mit einem HomeWizard Starterset gelöst. Funktioniert problemlos seither.



http://wiki.td-er.nl/index.php?title=Homewizard

Gäbe noch eine „einfachere“ Möglichkeit als das über FHEM zu machen. Node-Red hat eine recht gute Anbindung zu Fibaro HC und kann auch direkt Somfy ansteuern. Mann könnte Node-Red s.z.s. als „Bridge“ einsetzen. Läßt sich halt durch den grafischen Editor und ein wenig Java-Script leicht umsetzen.

Habe das bei mir mal getestet = geht!

Danke @mib für deinen Hinweis!
Hatte gerade Kontakt mit Homewizard. Die Lösung klappt nur mit dem Somfy RTS Systen (433,42 MHz) und nicht mit dem neuen Somfy IO ( 868,95 MHz). Außerdem ist das Produkt HomeWizard angeblich inzwischen ausgelaufen und wird nicht mehr weiterentwickelt…

Danke @hubertus,
Hab mir die Seite von Node-Red angesehen. Das sieht wie „nur Software“ aus, wo soll das laufen. Auch auch einem Raspy? Der Text „und ein wenig Java-Script“ hat mich etwas abgeschreckt, da hab in NULL Erfahrungen… Aber ich werd mir das mal genauer ansehen…

Ja node-red ist ein Stück Software - läuft auf dem Raspi aber auch unter Windows.

Was ich jetzt nicht ganz verstehe - wie sprichst du mit einem Programm die Somfy Hardware an?

Über die API die Somfy zur Verfügung stellt. Eine TahomaBox muss man schon haben und einen Account bei Somfy. Mit diesem Account dann auf der Developer Seite anmelden https://developer.somfy.com/ In Node-Red werden dann in der somfy-node die ensprechenden Daten abgefragt und die Verbindung hergestellt (Beschreibung der Node: https://flows.nodered.org/node/node-red-contrib-tahoma und der Fibaro-Node: https://flows.nodered.org/search?term=fibaro ). Bei Fibaro gibt es mehrere zur auswahl. Die „HC2“ und „HC2-Bridge“ funktionieren mit der HC2 - ob auch mit der neuen HC3 müsste man mal testen.

Ich habe eine ähnliche Herausforderung. Bei mir Zuhause gibt es 8 Veluxfenster mit Solarrrolladen. Bisher hatte ich zwei Gruppen gebildet und diese mittels KLI310 und angelöteten Relais-Switches in mein HC2 integriert.
Das ist mir auf Dauer nicht smart genug und ich überlege, wie ich eine individuelle Steuerung der Fenster anders realisieren kann.
Variante 2 wäre ein KLF200 mit 5 Relais-Switches, womit ich mich schon mal verbessern würde.
Allerdings bevorzuge ich die Variante mit einer zusätzlichen Tahoma oder Connexoon-Box, was sowohl günstiger wäre, als auch ermöglichen würde alle Fenster anzusteuern.
Müsste eine Verbindung über IFTTT, ausgelöst durch eine Szene auf der HC2 nicht ein Steuersignal auf der Tahoma Box mit relativ wenig Aufwand auslösen können?
Mein HC2 läuft jetzt seit 1 1/2 Jahren ohne Fehler, weswegen ich lange nicht mehr basteln musste und vielleicht gerade was Grundlegendes vergesse… Vielleicht hat ja schon jemand Erfahrungen mit dem Weg.

Viele Grüße
Jo

Ich habe jetzt mal eine vielleicht blöde Frage:
Die Tahoma von Somfy kann man doch über API Calls steuern, oder?
Wieso kann man dann nicht die HC3 direkt mit der Tahoma kommunizieren lassen (ohne zusätzliche Software) ???

Das geht natürlich auch … die API Calls sind einigermaßen gut dokumentiert. Einzig die ersten Schritte zur Erlangung der Tokens habe ich über den Browser gemacht. Dann muss man sich auf Seiten der HC3 „nur“ um den Refresh der Access- und Refreshtoken kümmern und kann auch damit die Tahoma steuern. Ob man die Tokens in den globalen Variablen speichern kann weiß ich nicht - wäre aber m.M.n. Voraussetzung. Ist etwas mehr programmierarbeit als die o.a. Node-Red Lösung (habe die halt auch wegen meiner enocean Fenstergriffe etc.). :slight_smile:

Da der Access-Token nur eine begrenzte Gültigkeit hat muss man regelmäßig über den Refreshtoken sich einen gültigen Accesstoken besorgen.

Beispiel für einen dort notwendigen Token (keine Panik - ist nicht mehr gültig):

T4F3M6iCe7WxMSCkG8X1q9v14jKGGnnmxGuLX_yS8HKPDBIl4YWIcIACT2Y3p85ooYF0SORM4XE66M5JE1T36RKW

Alles klar, vielen Dank!
Klingt als müsste ich hier mit der HC3 noch etwas forschen …
Ich werd jetzt mal klären ob eine Tahoma überhaupt in Frage kommt, ist ja nicht gerade billig :wink:

Viel Erfolg! Ohne TahomaBox geht wohl nicht da sie die API Aufrufe lokal in die entsprechenden Funksignale „übersetzen“ muss. An der Stelle ist mir keine Alternative bekannt.