NEWS
Homematic, CuxD und Harmony Hub
-
Ich hoffe dies ist der richtige Bereich im Forum.
Hab schon ne Zeit gesucht aber leider nichts gefunden was meinem Problem auch nur ähnelt.Ich benutze verschiedene Geräte, die ich über meine Homematic steuere. Als Schnittstelle dient mir da der iobroker.
Nun möchte ich einen Harmony Hub einbinden. In ioBroker soweit kein Problem. Für die Homematic habe ich eine CuXD Gerät angelegt, wie bisher auch. Um den Ein/Ausschaltstatus zu synchronisieren habe benutze ich folgendes Script:
var IO = 'harmony.0.Harmony_Hub.activities.test'; var HM = 'hm-rpc.3.CUX4000011.1.STATE'; on(IO, HM); on(HM, IO);
Sobald ist dann das Gerät über die Homematic einschalte bricht mir der Raspberry auf dem der iobroker läuft nach spätestens 10 Sekunden weg; das Log läuft rasend schnell voll.
Nach vielem hin und her und vielen versuchen aus dem Log etwas sinnvolles zu holen, weiß ich dass es wohl an den Werten liegt (glaube ich zumindest).
CuxD liefert 0 oder 1 bzw false oder true und das Harmony Gerät scheint wohl 0 oder 2 im Feld activity.test zu erwarten.Es gibt die Felder activity.currentActivity (PowerOff/test)und activity.currentStatus (0/2) die auf auf ein oder auschalten reagieren. Funktionieren tun die aber auch nicht.
Wie kann ich das also entsprechend synchronisieren?
Ich hoffe irgendjemand blickt durch mein Problem durch und kann mir helfen.
Jetzt schon vielen Dank.
-
hat niemand eine Idee?
-
@Christmas
wozu bzw. warum über cuxd/ccu und nicht direkt per Script oder Blockly ? -
@Christmas sagte in Homematic, CuxD und Harmony Hub:
Feld activity.test
und was ist das, heißt die activity so bei Dir ?
-
Zu deinem 1. Post:
Gute Frage. Weil ein anderes Gerät genau so schon funktioniert.
Kann ich denn per Script direkt in der Homematic ein Gerät steuern??? Wenn ja wie? Wäre ja ein sinnvollerer Weg.Es gibt leider keine Anleitung für das was ich da machen will (zumindest habe ich keine gefunden).
Zu deinem 2. Post:
so heißt es im iobroker und ist eine von mehreren activities.
die anderen heißen wie schon beschrieben: activity.currentActivity (PowerOff/test)und activity.currentStatus (0/2) -
@Christmas
Ich frage nochmal anders, warum steuerst Du das zusätzlich über die CCU ? (Nutzt Du eine bestimmte App oder VIS, oder was anderes ?)
Ich nutze z.B. iQontrol als "VIS" und zum schalten, oder auch Alexa als Sprachsteuerung. Dafür brauche ich die CCU nicht.
In iQontrol sieht das bei mir z.B. so aus, damit schalte ich mein activities vom Harmony Adapter.Wie Du die Objekte vom Harmony Adapter schaltest findest Du hier.
https://github.com/Pmant/ioBroker.harmony/blob/master/README.md
Mit Alexa über Sprachbefehle schalte ich die activities mit Routinen in der Alexa App und diesem Blockly über iot.
-
Ich sollte wohl mal erklären was ich vorhabe...
Ich habe einen Stromschalter von Homematic. Der unter bestimmten Bedingungen ein und ausgeschaltet wird (funktioniert mit der CCU prima).
Jetzt möchte ich beim Einschalten meines TV Geräts über die Harmony den Stromschalter aber auf ein stellen. Also sollt die Harmony an den Hub senden, der an den ioBroker und der über CuxD an die Homematic...Wenn die Werte nicht unterschiedlich wären würde das ja auch gehen. Allerdings ist der Wert für einschalten im iobroker 2 im CuxD aber 1. Cuxd bekommt ja die 2. Kann mit der aber nix anfangen. Umgekehrt ist es genau so.
Mit Sprachsteuerung oder Alexa hat das nix zu tun.
-
@Christmas sagte in Homematic, CuxD und Harmony Hub:
Allerdings ist der Wert für einschalten im iobroker 2
der Wert für das Einschalten in den Harmony Objekten ist 1
(der Rest, was danach in der Anzeige steht ist der Status)
Auschalten geht mit 0.
Steht auch in dem Link von oben.Edit: die Werte zum an (1) und ausschalten (0) benutze ich auch in meinem Blockly
-
ich weiß leider nicht wie blockly funktioniert.
Das mit den verschiedenen Optionen beim Status war mir so nicht klar. Das erklärt aber warum der den Log in ein paar Sekunden überflutet. Er schaltet nämlich immer hin und her zwischen denen allen. Das geht so schnell dass ich nicht sehe welcher Status gerade gültig ist.
Aber geholfen wurde mich noch nicht. Weil ich nicht weiß wie man dieses Script anpassen muss. Wie gesagt CuxD kennt nur 0 oder 1.
Und wenn ich den Wert auf 1 setze wird er durch das Script ja immer wieder auf 1 gesetzt (statt auf 2).Hat dazu eventuell jemand eine Idee? Das Script läuft soweit ich weiß bei jeder Änderung.
-
@Christmas sagte in Homematic, CuxD und Harmony Hub:
Wie gesagt CuxD kennt nur 0 oder 1.
Und wenn ich den Wert auf 1 setze wird er durch das Script ja immer wieder auf 1 gesetzt (statt auf 2).Ich weiß nicht ob wir aneinander vorbei reden ?
Was wird wo durch welches Script immer wieder auf 1 (statt auf2) gesetzt.
Der Wert muß ja auf 1 gesetzt werden (anschalten). Wenn Du den Wert auf 1 setzt wird angeschaltet.
Wenn der Wert auf 0 gestellt wird, dann wird ausgeschaltet.Deswegen kann ich Dir nicht folgen bzw. verstehe nicht was Du meinst ?
Die Werte 2 oder 3 sind nur Status, die brauchst Du nicht schalten, das macht der Adapter selbst.
Hier siehst Du das bei mir die activity Fernseher gerade läuft. Eingeschaltet habe ich die mit meinem Blockly von oben mit 1, in dem makierten Datenpunkt Fernsehen. Die 2 macht dann der Adapter selbst. -
Hi, ich denke, du benötigst folgende Blockly-Lösung:
Der Schalter Fernsehen_an kann ein selbst angelegter Datenpunkt z. B. unter Javascript sein und dieser schaltet dann (per VIS o.ä.) deine Geräte an bzw. aus. Der Befehl bewirkt am Harmony-Hub das Einschalten des TV-Gerätes (activity-Status 2 = Fernsehen) und parallel dazu eben das Schalten des 2. Gerätes - bei mir ist es die Leinwand - bei dir das CuxD- o. Homematic-Gerät. Das Bild zeigt das Einschalten, das Ausschalten wäre genau anders herum. Dabei ist es egal mit welchem Schaltbefehl (0 oder eben 1) das andere Gerät geschaltet wird - du kannst es im Script entsprechend festlegen. Hoffe, es hilft dir weiter.
LG SRo769
-
Danke für Eure Hilfe, aber ich komme leider nicht damit klar.
So wie ich das sehe ist durch das Skript völlig egal wie der Wert ist sobald er was anderes als 0 oder 1 ist fängt er an zu synchronisieren, da er sich aber dann automatisch wieder ändert endet das in einer Endlosschleife die nach 10 Sekunden zum Absturz des Systems führt.
Es geht auch viel zu schnell um irgendwas zu erkennen. ich sehe nur den wechsel zwischen 0-2. Und das Log hat innerhalb von ein paar Sekunden mehrere 1000 neue Einträge.
Ein Bekannter der programmiert meinte es reicht wenn das Skript angepasst wird, dass er die Werte die er nicht braucht (2) irgnoriert bzw so tut als ob es eine 1 ist.
Allerdings habe ich davon überhaupt keine Ahnung.
Was vis ist bzw was damit gemeint ist weiß ich auch leider nicht.
Ich könnte mal ein kleines Video drehen falls es noch irgendjemand interessieren sollte