NEWS
Rolladensteuerung mit Blockly (Anfänger)
-
Ich hab mir eure Ratschläge zu Herzen genommen und probiere nun schon seit ein paar Tagen rum. So richtig funktioniert es irgendwie nicht.
Habe nun alles in ioBroker mit Blockly realisiert. So ähnlich wie myol. Sieht bei mir so aus für abends:
Und für morgens:
Die Var statusRollade sagt nur aus, ob Rollade oben=1, unten=0 ist oder gerade beschattet=3 wird. Wenn sie schon oben ist, soll das Programm halt erst gar nicht mehr abfahren.
Nun ist die Rollade abends wie gewünscht runter gefahren, aber morgens nicht hoch. Obwohl beide Programme doch quasi identisch sind??? Ist mir ein Rätsel. Man kann das Programm sicher noch schöner machen (siehe Bsp. von myol), aber Hauptsache erstmal es funktioniert.
Ich steuere ja den Kanal 4 des HmIP Broll Rolladenaktor. Ist das erstmal korrekt? Es gibt auch Kanal 3. Wozu ist der dann da?
Bei einem Blick in der Werte habe ich folgendes gesehen:
Der Wert LEVEL von Kanal 4 steht auf 0.5%. Eigentlich ist das 0%, nicht dran stören. Die Rollade ist aber oben. Der Wert müsste dann doch auf 100% stehen. Warum hat die CCU den Wert nicht aktualisiert??? (in der CCU steht übrigens der gleiche Wert)
Der Wert in Kanal 3 ist dann 99.5% (was eigentlich 100% ist). Der ist richtig.
Irgendwas mache ich doch noch falsch.
-
Sorry, aber ich brauche hier immer noch Hilfe.
Ich bin vielleicht ein bisschen weiter gekommen.
Wenn ich in Blockly wie beschrieben die HmIP BROLL Rollade mit 100 steuere, bekomme ich in der Regel einen Fehler.
hm-rpc.0 2019-01-30 08:55:20.022 error Error: XML-RPC fault: Generic error
hm-rpc.0 2019-01-30 08:55:20.022 error xmlrpc -> setValue ["4","LEVEL",0.995] FLOAT
Ich steuere mit 100 und im Log steht was von 0.995. Daher habe ich mir die Objekte nochmal etwas genauer angesehen. Woanders im Forum habe ich gelesen, dass der LEVEL eine INTEGER Zahl ist. Die Fehlermeldung wäre damit zumindest nachvollziehbar.
Im Objekt HmIP-BROLL 001118A995071C:4.LEVEL steht unter Allgemein ein Min Wert von 0 und ein Max Wert von 100.44449.
Im Objekt HmIP-BROLL 001118A995071C:4.LEVEL steht unter Nativ ein Min Wert von 0 und ein Max Wert von 1.005. Der Typ unter Nativ ist übrigens auch FLOAT. Vielleicht ist auch das falsch.
Ich habe leider keinen blassen Schimmer, was diese Werte zu bedeuten haben bzw. was für Auswirkungen sie haben. Aber wenn man mal 1:1.005 oder auch 100:100.4449 teilt, dann kommt genau dieser Wert raus, der im Log steht, 0.995.
Ich habe diese Werte nun in ioBroker einfach mal angepasst zu jeweils dem INTEGER Wert, also 100 und 1. Ich frage mich nur, woher hat ioBroker diese krummen Werte überhaupt. Testen kann ich erst heute Abend.
Aber in Summe verstehe ich einfach nicht, was hier abgeht.
-
Was ist jetzt das aktuelle Problem? Der Levelwert oder dass das Rollo morgens nicht hoch geht?
Bei ersterem kann ich dir leider nicht helfen. Bei dem zweiten würde ich es mal versuchen, wenn du mir erklärst, was du da programmiert hast.
-
Ich habe jetzt nicht alles gelesen.
Aber:
@buggybeast71:Ich steuere mit 100 und im Log steht was von 0.995. Daher habe ich mir die Objekte nochmal etwas genauer angesehen. Woanders im Forum habe ich gelesen, dass der LEVEL eine INTEGER Zahl ist. Die Fehlermeldung wäre damit zumindest nachvollziehbar. `
Meines Wissens ist 1 (also 0.995) der Maximalwert.0.5 ist halb runter (Zeit) und 1 ist ganz hoch
Gruß
Rainer
-
Hi zusammen,
Hi Hiltex, was ich programmiert habe steht doch 2 Beiträge weiter oben. Mein vorletzter und letzter Beitrag geben den aktuellen Stand bei mir wieder.
Hi Homoran, das ist bei mir definitiv nicht so. Ich habe es mit Werten zwischen 0 und 1 probiert. Dann bewegt sich die Rollade ca. 1mm
Ich steuere den Kanal 4 der HmIP BROLL. Kanal 4 sieht fast identisch aus wie Kanal 3. Allerdings ist in dem Wert LEVEL zu sehen, dass dieser NICHT schreibbar ist. Daher nehme ich Kanal 4. Der ist schreibbar. Außerdem nimmt die CCU selbst, wenn man da mit einem Programm die BROLL steuert, auch den Kanal 4.
Ich verstehe auch einfach nicht die Fehlermeldung. Was soll <error xmlrpc/-="">setValue ["4","LEVEL",0.995] FLOAT> bedeuten?
Wie muss man das lesen? "Fehler in der RPC Schnittstelle beim Setzen eines Wertes als FLOAT Typ"???
Und was ist dann der Fehler? Das versucht wird, den Typ FLOAT zu nehmen? Oder was anderes?</error>
-
Hallo buggybeast71,
vielleicht mache ich es mir zu einfach oder du dir zu kompliziert… Ich habe keine HM-Rollladenaktoren, weil ich für mich entscheiden habe, dass die schlicht zu teuer sind. Das ist jetzt aber mal für Dein Problem egal.
Mach doch mal Screenshots von den Inhalten der Datenpunkte wenn das Rollo
-
ganz offen
-
ganz geschlossen
-
und vielleicht etwa 20% geschlossen ist.
Dann würde ich versuchen, die schreibbaren DPs mit Werten von Hand über die Objekte-Ansicht des ioBroker zu füllen und zu schauen, was passiert. Das Rollo müsste ja dann entsprechend reagieren. Ich regele meine Rollos über Prozentwerte und Fahrzeit über Sonoff-Schalter. Offen ist 0%, geschlossen 100% bzw. in Abhängigkeit von der Länge z.B. beim längsten Rollo 44sec. Fahrzeit. Jede Stellung dazwischen wird über Dreisatz berechnet. Funktioniert tadellos.
Grüße
-
-
Hi Hiltex, was ich programmiert habe steht doch 2 Beiträge weiter oben. Mein vorletzter und letzter Beitrag geben den aktuellen Stand bei mir wieder. `
Hab ich gesehen. Aber beschreibe doch mal bitte mit deinen eigenen Worten, was da eigentlich passieren soll.
-
Ok ich mache das alles ab morgen / Wochenende. Vorher schaffe ich das leider nicht.
Ich werde mal Screenshots von verschiedenen Stellungen posten und auch beschreiben, was ich vorhabe.
Ich melde mich wieder
Danke für eure Antworten
-
Hallo zusammen,
seit ein paar Tagen funktioniert die Steuerung per Blockly Skript nun bei mir.
Ich möchte das gern nochmal posten, wie meine Lösung aktuell aussieht, denn vielleicht hilft es ja dem ein oder anderen auch mit ähnlichen Problemen.
Zunächst einmal mein aktuelles Skript:
Die Variablen:
-
MorgenDaemmerung ist der aktuelle Zeitpunkt der Morgen Dämmerung, ebenfalls per Skript als Variable gespeichert und jeden Tag aktualisiert.
-
statusRollade ist entweder 0=unten oder 1=oben. Das Programm soll halt nur einmal laufen. Da der Zeitplan alle 10 Minuten das Programm startet, wäre das blöd, wenn immer wieder die Steuerung der Rollade getriggert wird.
Soweit war das ja nix Neues.
Nach diesen komischen Werten und Fehlermeldungen habe ich mir den Parameter "LEVEL" der Kanäle 3 und 4 (des HmIP-BROLL Gerätes) etwas genauer angesehen.
Im Reiter "Allgemein" gibt es einen Min und einen Max Wert. Wie schonmal beschrieben, stand Min immer auf 0, Max aber auf 100.4449. Hier ist die Maßeinheit übrigens % und der Datentyp INTEGER.
Im Reiter "Nativ" war das ähnlich. Dort war in Min ebenfalls 0 eingetragen und in Max 1.005. Hier gibt es ein Attribut Unit=100% und der Datentyp ist FLOAT.
Desweiteren ist der Kanal 3 der BROLL NICHT SCHREIBBAR!!! Kanal 4 ist das aber.
Also meines Erachtens muss zum Steuern der Rollade der Kanal 4 zu verwenden und eine INTEGER Zahl zu übergeben.
Das einzige, was ich nun einfach probiert habe, ist in beiden Kanälen (3 und 4) die jeweiligen Max-Werte im Reiter "Allgemein" auf 100 und im Reiter "Nativ" auf 1.00 zu stellen. Das wurde im ioBroker auch anstandslos akzeptiert.
Ab da lief meine Steuerung. Und im Feld Wert stehen dann nach dem Hochfahren auch die Werte=100%
-
-
@buggybeast71
Guten Morgen, darf ich frage wie du das mit der Morgendämmerung gelöst hast im Script. Ich bin auch noch Anfänger. Danke einen schönen Tag