Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. buggybeast71

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    B
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 10
    • Best 0
    • Groups 0

    buggybeast71

    @buggybeast71

    -1
    Reputation
    13
    Profile views
    10
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    buggybeast71 Follow

    Latest posts made by buggybeast71

    • RE: Rolladensteuerung mit Blockly (Anfänger)

      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:
      15627_bildschirmfoto_2019-02-06_um_15.59.12.png

      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.
      15627_bildschirmfoto_2019-02-06_um_16.07.25.png

      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%
      15627_bildschirmfoto_2019-02-06_um_16.16.39.png

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Rolladensteuerung mit Blockly (Anfänger)

      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 🙂

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Rolladensteuerung mit Blockly (Anfänger)

      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>

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Rolladen-Blockly läuft so nicht. Was ist falsch?

      Hi Tobi82,

      ich kämpfe eb ebenfalls mit der Steuerung der Rolladen. Siehe:

      viewtopic.php?f=21&t=20322

      Ich schätze Dir zu helfen wird schwer, weil Du kaum Informationen postest.

      Welcher Aktor kommt zum Einsatz, HmIP BROLL?

      Dann sind in Deinem Skript massenweise Variablen, die einem nichts sagen.

      Hast Du Fehlermeldung im ioBroker Log?

      Sieh mal in meinen Beitrag. Vielleicht hilft Dir das ja sogar auch weiter (glaube ich jetzt aber nicht, habe ja selber Probleme).

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Rolladensteuerung mit Blockly (Anfänger)

      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.

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: 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:
      15627_blockly_abends.png
      Und für morgens:
      15627_blockly_morgens.png

      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:
      15627_channel.png 15627_channel_status.png

      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.

      posted in Skripten / Logik
      B
      buggybeast71
    • Rolladensteuerung mit Blockly (Anfänger)

      Hallo zusammen,

      ich möchte gerne mal meine "Anfänger-Rolladen-Steuerung-nach-Jahreszeiten" vorstellen, um durch eure Anmerkungen und Kritik zu lernen 😄

      Wie schon erwähnt bin ich Anfänger beimn Smart Home, bei der CCU3 und vor allem beim Skripten (für meinen Teil mit Blockly).

      Ich wollte erreichen, dass meine Rollade Terassenfront morgens hoch fährt, wenn es nicht mehr stock dunkel ist, aber auch noch nicht richtig hell, also ja quasi so in der Dämmerung morgens. Jetzt habe ich draußen eine HmIP Wetterstation und kann die Lichtwerte messen und damit steuern.

      Man könnte nun einfach sagen, wenn der Helligkeitswert > x ist, dann fahre die Rollade hoch. Ganz einfache Lösung bzw. auch Programmierung. Ich wollte aber zusätzlich noch andere Bedingungen umsetzen.

      1. Rollade fährt hoch, wenn es schon ein bisschen hell ist (die Bedingung von oben)

      2. Die Rollade fährt aber zeitlich nicht zu früh hoch, und auch nicht zu spät. Z.B. frühestens um 7:00, spätestens um 8:30, egal ob (1) erfüllt ist oder nicht.

      3. Die Programmierung soll das ganze Jahr über funktionieren, Sommer wie Winter und dazwischen.

      Mal so als Beispiel: Wenn nur (1) erfüllt wird, dann fährt die Rollade im Sommer um 5:30 hoch und im Winter um 8:15. Das ist mir im Sommer zu früh.

      Ich hoffe es war einigermaßen verständlich beschrieben, sonst fragt bitte gerne nach.

      Meine Lösung (von der ich aktuell nicht weiß, ob sie immer funktioniert), sieht nun so aus.

      In der CCU habe ich eine Variable "Jahreszeit" angelegt als Werteliste mit den Werten Frühling, Sommer, …

      Im ioBroker habe ich folgendes Programm geschrieben / zusammen geklickt:
      15627_jahreszeiten.png

      Als JS sieht das so aus:

      schedule('{"time":{"exactTime":true,"start":"12:00"},"valid":{"from":"03.01.2019"},"period":{"months":"[3,6,9,12]","dates":"[1]"}}', function () {

      if ((new Date().getMonth() + 1) == 3) {

      setState("hm-rega.0.2648"/Jahreszeit/, 0);

      }

      if ((new Date().getMonth() + 1) == 6) {

      setState("hm-rega.0.2648"/Jahreszeit/, 1);

      }

      if ((new Date().getMonth() + 1) == 9) {

      setState("hm-rega.0.2648"/Jahreszeit/, 2);

      }

      if ((new Date().getMonth() + 1) == 12) {

      setState("hm-rega.0.2648"/Jahreszeit/, 3);

      }

      });

      Soll also am ersten Tag der Monate März, Juni, September und Dezember um 12 Uhr die Variable entsprechend setzen.

      Mit dieser Variable habe ich dann in der CCU folgendes Programm geschrieben:
      15627_ccu_rollade.png

      Das sind jetzt 2 von 4 Blöcken. Für Herbst und Winter gibt es nochmal je einen Block "Sonst-Wenn".

      Die Variable Rollade-Richtung wird dabei in Abhängigkeit der Helligkeit von draußen auf hoch (H>6 Lux) bzw. runter gesetzt.

      Ist jetzt ein bisschen lang geworden :oops:

      Aber mich würde halt mal interessieren, ob ich hier totalen Mist programmiert habe und das ganze auch in 3 Zeilen gelöst werden kann, oder ob das schon eine ganz ordentliche Lösung / Programmierung ist.

      Würde mich über Anregungen, Kritik, gerne auch positive Kritik freuen.

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Trigger mit Bedingung in Blockly

      Danke Dir paul53 😄

      So müsste es jetzt dann gehen. Ich habe den Block "value" aus den Variablen dann ersetzt durch "Wert" und hinten die Bedingung mit "vorheriger Wert" gesetzt.

      15627_unbenannt.png

      Das macht für mich mehr Sinn, wenn man die Blöckchen aus den gleichen Blockbereichen verwendet 😉

      posted in Skripten / Logik
      B
      buggybeast71
    • RE: Trigger mit Bedingung in Blockly

      Ok das ist schade.

      Aber wie komme ich denn an den oldValue?

      Die Auswahl gibt es bei mir nicht. Muss ich da mit Variablen arbeiten?

      posted in Skripten / Logik
      B
      buggybeast71
    • Trigger mit Bedingung in Blockly

      Hallo zusammen,

      ich bin noch blutiger Anfänger in Smart Home, mit der CCU3 und insb. mit ioBroker und Skripten.

      Nachdem ich mit Suchen nichts passendes gefunden habe, stelle ich meine aktuelle Frage hier direkt.

      Ein Blockly Skript fängt ja in der Regel wohl mit einem Trigger "Falls Objekt" an:
      15627_trigger01.png

      Ich möchte aber nur eine Aktion auslösen, wenn der Wert des Objektes (hier: Helligkeit) unter einem bestimmten Wert X ist. Also:
      15627_trigger03.png

      Mein Skript soll aber nur dann starten, wenn der Wert des Objektes sich geändert hat UND der Wert < X ist. Sonst, so meine Logik, läuft das Skript im Prinzip bei jeder Änderung und würde erst bei der nächsten if-Klausel wieder stoppen. Eigentlich unnötig, wie ich finde.

      Daher habe ich die Startbedingung wie folgt geändert:
      15627_trigger02.png

      Kann das so funktionieren, wie ich mir denke?

      Oder laufen beide Ansätze an sich identisch ab?

      posted in Skripten / Logik
      B
      buggybeast71
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo