NEWS
Homematic CCU3 Direktverbindungen steuern
-
Hi,
weiß jemand, ob es möglich ist, aus ioBroker heraus die Konfiguration von Direktverbindungen zu ändern?
Mein konkreter Anwendugnsfall:
ioBroker ist mittles HM.RPC und HM.REGA Adapter mit einer PIvCCU3 verbunden. In meiner CCU3 habe ich einen HmIP-BDT (Einbaudimmer).
Bei diesem habe ich die Möglichkeit, über die CCU das StatusOn Level vorzugeben.
Dieses Level möchte ich mittels Skript (egal ob Javascript, Blocky oder sonstwas) anpassen.
Der Einsatzzweck ist ein dynamischer Nachtmodus. Dabei soll in der Nacht, das Licht im Badezimmer nur auf 20% angehen, am Tag aber auf 100%. Über die CCU wäre das zwar Zeitgesteuert möglich, aber ich möchte das gerne an meinen zentralen Nachtmodus knüpfen.
Leider fehlt mir aber der Weg, diesen Wert anzupassen.In der CCU sieht die Einstellung so aus:
Diese Direktverknüpfung aufzuheben und das Schalten komplett über ioBroker zu realisieren wäre zwar eine Möglichkeit, möchte ich aber auch vermeiden, da der Schalter sonst nicht mehr autark funktioniert. Dazu hatte ich erst die Tage einen 2-Tägigen Ausfall der PivCCU, was aufgrund dieser Funktion halb so wild war und selbst meine skeptische Frau kaum gestört hatte
Bei der Umsetzung hatte ich auf die Javascript SendTo Funktion gehofft, welche ich schon nutze um z.B. die Tastensperre zu aktivieren. Leider habe ich jedoch keine Möglichkeit gefunden, diesen Wert damit zu steuern, da es ja nicht direkt ein Kanalwert ist.
Ich hoffe, mein Anliegen ist verständlich beschrieben.
Vielen Dank vorab!Cheers!
-
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
aus ioBroker heraus die Direktverbindungen zu steuern?
das würde ja denn Sinn von DVs pervertieren!
Die Informationen für die DVs liegen in den beteiligten Geräten.
Daher funktionieren DVs auch bei ausgefallener CCU -
@homoran
Ok habe ich vielleicht falsch formuliert.... Ich meinte natürlich die Konfiguration der Direktverbindung zu ändern. -
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
Ich meinte natürlich die Konfiguration der Direktverbindung zu ändern.
Auch das geht nicht. Genauso wie die Konfiguration der Geräte selber, muss das auf der CCU passieren.
ggf. geht das mit dem Homematic Manager -
@homoran
Danke für die Antwort.
Wie schon beschrieben, habe ich mittels SendTo Funktion bereits Konfigurationen in der CCU angepasst, also muss ich deiner Antwort höflichst widersprechen. Es ist generell möglich Gerätekonfigurationen in der CCU aus ioBroker zu ändern. Nur eben nicht direkt in den Datenpunkten des HM.RPC Adapters.Dass es keine eingebaute Funktion dazu gibt ist mir natürlich auch klar. Und wenn es ein Homematic Manager schafft, scheint es ja eine Art Schnittstelle zu geben, über die das umzusetzen wäre.
-
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
Und wenn es ein Homematic Manager schafft,
und der HMM-Adapter ist inzwischen gar nicht mehr im Repo
der HMM, der dort eingesetzt wurde, sollte als Ersatz für die doch anfällige ReGa dienen.Natürlich kann man irgendwie
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:mittels SendTo Funktion bereits Konfigurationen in der CCU angepasst,
auf die Daten zugreifen.
-
@homoran said in Homematic CCU3 Direktverbindungen steuern:
Natürlich kann man irgendwie
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:mittels SendTo Funktion bereits Konfigurationen in der CCU angepasst,
auf die Daten zugreifen.
Also... genau darum geht es mir ja.
Ich dachte mit meiner Einleitung sollte klar gewesen sein, dass mir bewusst ist, dass keine einfache fertige Lösung dafür gibt und ich das auch nicht erwarte.
Aber gleich mal zu schreiben "geht nicht" ist halt auch nur die halbe Wahrheit.Ich würde mich freuen, wenn jemand nähere Informationen dazu hat, wie man abseits der Standards auf derartige Konfigurationen zugreifen kann.
-
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
Aber gleich mal zu schreiben "geht nicht" ist halt auch nur die halbe Wahrheit.
da ging es noch um den Threadtitel, diese DVs zu steuern!
Und ja, es geht nicht (mit Standardmitteln = Adapter/DPs) für Normaluser.
Für "Nerds" ist bekanntlich nichts unmöglich. Aber nicht für "ioBroker allgemein" -
@tschagga sagte: wenn es ein Homematic Manager schafft
Dann schau mal mit diesem, wie der Link-Parameter ohne dt. Übersetzung benannt ist.
-
@homoran said in Homematic CCU3 Direktverbindungen steuern:
da ging es noch um den Threadtitel, diese DVs zu steuern!
Und ja, es geht nicht (mit Standardmitteln = Adapter/DPs) für Normaluser.
Für "Nerds" ist bekanntlich nichts unmöglich. Aber nicht für "ioBroker allgemein"Da hier offensichtlich mehr Wert auf Formulierungen im Titel anstatt auf die ausführliche Beschreibung im Post gelegt wird, scheint es hier wirklich das falsche Forum zu sein.
Ich versuche mein Glück woanders... -
@tschagga Verzeihung, was ist denn jetzt?
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
Ok habe ich vielleicht falsch formuliert....
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
scheint es hier wirklich das falsche Forum zu sein.
ich kann es ja gerne in ein anderes Unterforum verschieben, wenn ich weiß worum es hier geht?
javascript?
Adapter-Entwicklung?Da würden sich dann auch die "richtigen" Ansprechpartner tummeln
-
@tschagga Ich glaube tatsächlich, dass im HM Forum eher Cracks in dem Bereich unterwegs sind, lt. der Doku würde ich sagen, dass es evtl. mit
putParamset
geht, die Parameter nebenMASTER
undVALUES
kann man wohl mitgetLinkPeers
abfragen.Falls du es hin bekommst, wäre es nen interessanter Use Case für die
sendTo
Doku. -
@foxriver76 said in Homematic CCU3 Direktverbindungen steuern:
@tschagga Ich glaube tatsächlich, dass im HM Forum eher Cracks in dem Bereich unterwegs sind, lt. der Doku würde ich sagen, dass es evtl. mit
putParamset
geht, die Parameter nebenMASTER
undVALUES
kann man wohl mitgetLinkPeers
abfragen.Falls du es hin bekommst, wäre es nen interessanter Use Case für die
sendTo
Doku.@foxriver76 DANKE! Genau das habe ich gebraucht.
Nach einer Doku wie dieser hatte ich gesucht aber warum auch immer, hatte ich diese nicht gefunden...Damit habe ich es fast hinbekommen.... Ich kann den Wert in der CCU setzen, aber an den Dimmer wird es wohl (noch) nicht automatisch übermittelt... Zumindest taucht unter "Service Messages" dann ein Eintrag mit "Configuration data ready for transmission" auf., Aus der CCU kann ich diese aber nicht anstoßen. Vielleicht hast du da direkt eine Idee? Ansonsten muss ich morgen weiter schauen....
Gerne stelle ich meine Lösung dann auch in der angesprochenen SendTo Doku bereit... wo finde ich diese denn?
-
@tschagga sagte in Homematic CCU3 Direktverbindungen steuern:
aber an den Dimmer wird es wohl (noch) nicht automatisch übermittelt... Zumindest taucht unter "Service Messages" dann ein Eintrag mit "Configuration data ready for transmission" auf.
Ich gehe mal von der manuellen Parametrierung aus.
Der Dimmer wird wohl mit 230V versorgt.
Dann sollten "eigentlich" die Parameter automatisch übertragen werden.Hast du mal das Licht geschaltet, ob dies die Übertragung anstößt?
Oder ist gar die Kommunikation der CCU zum Dimmer gestört?
-
@tschagga evtl.
restoreConfigToDevice
Mit sendTo Doku meine ich den Abschnitt hier: https://github.com/ioBroker/ioBroker.hm-rpc#custom-commands
-
Ich glaube die ausstehende Übertragung war durch meine zahlreichen Tests verursacht... Hab es auch mit restoreConfigToDevice leider nicht weg bekommen. Musste den Aktor komplett aus der CCU löschen und neu anlernen.
Seither funktioniert es aber auch soasync function SetOnLevel(varDimmerID, varButtonID, varValue) { sendTo('hm-rpc.1', 'putParamset', {ID: varDimmerID, paramType: varButtonID, params:{'SHORT_ON_LEVEL':varValue}}, res => { log(JSON.stringify(res)); }); } await SetOnLevel('0008DD89A25BA1:4', '0008DD89A25BA1:2', 0.2); //20% await SetOnLevel('0008DD89A25BA1:4', '0008DD89A25BA1:2', 1); //100%
Das ist der Javascript Code aus meinem Blocky Skript.
Obwohl das Skript seinen Zweck erfüllt, bekomme ich bei der Ausführung jedoch folgenden Fehler im ioBroker Log: {"result":"","error":null}
In die GitHub Doku musst du es dann ja ergänzen... Würde mich aber freuen, mein Beispiel dort zu finden
-
@tschagga cool, ist ja kein Fehler den du bekommst, das ist das was du im Skript loggst. Error: null ist gut, heißt quasi fehlerfrei
-
@foxriver76 said in Homematic CCU3 Direktverbindungen steuern:
@tschagga cool, ist ja kein Fehler den du bekommst, das ist das was du im Skript loggst. Error: null ist gut, heißt quasi fehlerfrei
Dachte es ist eine Error-Rückmeldung ohne "Inhalt". Aber dann ist das ja gut so
Damit es auch für das Allgemein Forum gerecht wird, hier das fertige Blocky Skript:
Ich habe den Wert für die Nachtschaltung noch in einen DP gelegt, dass ich den über das Tablet anpassen kann:<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="W{lteMI.3@7t208`tW_l">varDimmerID</variable> <variable id="m~~W5;#V@2UCTooK)6+7">varButtonID</variable> <variable id="$sZRi787RiX}),q4OH[d">varLevel</variable> </variables> <block type="procedures_defcustomnoreturn" id="$on?8]Isk#;*j?tw+$]~" x="37" y="38"> <mutation statements="false"> <arg name="varDimmerID" varid="W{lteMI.3@7t208`tW_l"></arg> <arg name="varButtonID" varid="m~~W5;#V@2UCTooK)6+7"></arg> <arg name="varLevel" varid="$sZRi787RiX}),q4OH[d"></arg> </mutation> <field name="NAME">SetOnLevel</field> <field name="SCRIPT">c2VuZFRvKCdobS1ycGMuMScsICdwdXRQYXJhbXNldCcsIHtJRDogdmFyRGltbWVySUQsIHBhcmFtVHlwZTogdmFyQnV0dG9uSUQsIHBhcmFtczp7J1NIT1JUX09OX0xFVkVMJzogdmFyTGV2ZWx9fSwgcmVzID0+IHsNCiAgICBsb2coSlNPTi5zdHJpbmdpZnkocmVzKSk7DQp9KTs=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="on" id="!tk#sJ(.Z=Gw}XP2#@:d" x="37" y="62"> <field name="OID">0_userdata.0.Central.Mode.Nachtmodus</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="r[fw;TVWdJ-*pse=~Fa~"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="OiTFf3bKhvt9uv:==rv7"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="9(t)9X|(Z^.@//(hg))("> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Central.Mode.Nachtmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="))jXag[9aV1].V+eKDY3"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="procedures_callcustomnoreturn" id="a5AcUtrxfwVu!D!m0Tw7"> <mutation name="SetOnLevel"> <arg name="varDimmerID"></arg> <arg name="varButtonID"></arg> <arg name="varLevel"></arg> </mutation> <value name="ARG0"> <block type="text" id="AIfclamMF}K]gY1l,{u9"> <field name="TEXT">0008DD89A25BA1:4</field> </block> </value> <value name="ARG1"> <block type="text" id="0g-7u52!g/:_!)7lwqJ@"> <field name="TEXT">0008DD89A25BA1:2</field> </block> </value> <value name="ARG2"> <block type="math_rndfixed" id="U|yQ~@9~ZI:A;Q)VMb5w"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="`5Zh(VCvRj04bV7}=gzH"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="U?@FfuVVrjtx%@Re1UB9"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id=":rd9%Ls0Wfb*}2cM0f|R"> <field name="NUM">1</field> </shadow> <block type="get_value" id="*zn*D-Ia)]?dqU,Bavtk"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Rooms.Badezimmer.LevelNight</field> </block> </value> <value name="B"> <shadow type="math_number" id="_uoNa|j6o0zg-os.x/j,"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> </block> </statement> <statement name="ELSE"> <block type="procedures_callcustomnoreturn" id="#g;$:7K+_aB7JQ0BZYIh"> <mutation name="SetOnLevel"> <arg name="varDimmerID"></arg> <arg name="varButtonID"></arg> <arg name="varLevel"></arg> </mutation> <value name="ARG0"> <block type="text" id="IJ3m2$BZg%cV[xXlbb4F"> <field name="TEXT">0008DD89A25BA1:4</field> </block> </value> <value name="ARG1"> <block type="text" id="diJL%Kfl642V#Lc0RBLp"> <field name="TEXT">0008DD89A25BA1:2</field> </block> </value> <value name="ARG2"> <block type="math_number" id="0dgZTvVzE0cr{?,g[_~^"> <field name="NUM">1</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
Danke an @foxriver76 für den entscheidenden Hinweis für die Umsetzung! Und bei der Gelegenheit auch generell ein großes Danke für deinen Beitrag des HM Adapters!