NEWS
Wunschliste Blockly-Elemente
-
@paul53 Okay danke für die Info mit den Subscriptions. Dachte geht nur der *.
Heißt das müsste ja aber auch so schon funktionieren:
Zu 2. Dass das so geht weiß ich, aber mit Blockly kann man das nicht realisieren, da es kein Blockly für "getObject" gibt. Richtig?
-
@thewhobox sagte:
Heißt das müsste ja aber auch so schon funktionieren:
Nein, das ist noch kein Regex, sondern ein String mit "*".
@thewhobox sagte:
da es kein Blockly für "getObject" gibt. Richtig?
Richtig.
Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !
-
ich versuche mich gerade am Fensterskript in Blockly. Beim öffnen eines Fensters bekomme ich schon mal alle Fenster mit Ihrem Status (0,1,2) im Log. Allerdings nicht die Namen sondern die ID.
Kann ich das auch anders machen um die Namen zu bekommen ? -
@dslraser Da getObject() nicht in Blockly vorhanden ist, geht dies nur mit einer eigenen Javascript-Funktion.
-
Danke für den "ID from Selector" Block, den kannte ich noch nicht. Werde ich mal testen.
@paul53 sagte in Wunschliste Blockly-Elemente:
@thewhobox sagte:
Heißt das müsste ja aber auch so schon funktionieren:
Nein, das ist noch kein Regex, sondern ein String mit "*".
@thewhobox sagte:
da es kein Blockly für "getObject" gibt. Richtig?
Richtig.
Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !
Im stimme da schon zu.
Da jedoch ein Device in ioBroker in der Ordnerstruktur fast immer als "Ordner" dargestellt wird, und die Attribute zu dem Device oft direkt darunter liegen (die alle einen eigenen Namen haben wie bspw. "Temperatur"), halte ich den Wert "Namen des übergeordneten Datenpunktes/Ordners" weiterhin für so nützlich, dass ich eine Nutzung in Blockly nicht als zu komplex einstufen würde. Ich will damit sagen, dass ich nicht den kompletten Funktionsumfang von getObject brauche, aber diese eine Funktion fände ich schon sehr hilfreich. -
@siggi85 sagte:
aber diese eine Funktion fände ich schon sehr hilfreich.
Dann verwende eine eigene Funktion. Export:
-
@paul53 sagte in Wunschliste Blockly-Elemente:
@siggi85 sagte:
aber diese eine Funktion fände ich schon sehr hilfreich.
Dann verwende eine eigene Funktion. Export:
Nach ein bisschen Testen hat es funktioniert. Danke!
-
@siggi85
zeig mal bitte wie Du es anwendest -
@thewhobox sagte in Wunschliste Blockly-Elemente:
@iomountain Selector Blockly ist fertig (Gibt alle IDs als Array zurück)
Wie kann ich den nun nutzen? Scriptadapter aus "latest" installieren?
-
@dslraser sagte in Wunschliste Blockly-Elemente:
siggi85
zeig mal bitte wie Du es anwendestKein Problem.
-
@siggi85 Die Wandlung nach String ist unnötig, denn der Name ist immer ein String.
-
@paul53 Stimmt, funktioniert auch ohne.
-
@siggi85 bisher kannst du ihn nur nutzen, wenn die ihn von meinem github installierst. https://github.com/thewhobox/ioBroker.javascript
-
@paul53 sagte in Wunschliste Blockly-Elemente:
Anmerkung: Blockly ist für Nicht-Programmier gedacht und ist deshalb im Umfang beschränkt. Ich halte es nicht für sinnvoll, so komplexe Funktionen in Blockly zu integrieren. Wer so etwas benötigt, sollte Javascript lernen und die Funktions-Dokumentation zum JS-Adapter lesen !
Ich kenne mich in JavaScript nicht wirklich aus, denke aber ich würde meine einfachen Blocky Sachen auch in Java Script hinbekommen. Aber dann läuft das und wenn ich dann in einem Jahr reinschaue um was anzupassen hab ich wieder alles vergessen und muss mich neu einarbeiten.
Bei meinen einfachen Blockly Scripten erkenne ich auf Anhieb was sie machen ohne mich wieder groß einzuarbeiten.
Deswegen: Danke für die Blöcke die es gibt. -
noch mal eine Frage zum Selctor Baustein.
Mit diesem "Befehl" bekomme ich nun alle Zustände meiner Fenster im Log angezeigt.
0 = geschlossen
1 = kipp
2 = offen
(HMIP Drehgriffe)Wie kann ich nun mit Blockly z.B. zählen lassen wie viele Fenster es insgesamt gibt, oder wie viele Fenster offen oder gekippt sind ?
Ich probiere schon eine ganze Weile mit den verfügbaren Bausteinen rum, aber ohne Erfolg. Braucht es dazu auch eine Funktion, oder wie stelle ich das mit Blockly an ?(ein anderes Problem ist das ich zwei Sorten Fensterkontakte habe, also normale optische HMIP
0 = geschlossen
1 = offen
Drehgriffe
0 = geschlossen
1 = gekippt
2 = offen
das könnte man ja vielleicht über zwei Gewerke lösen ? z.B Fenster und Fenstergriff)
-
@dslraser In Blockly kannst du variablen einfach um 1 erhöhen.
Das machst du einmal für jede ID vom Selector (Anzahl gesamter Fenster) und einmal wenn der Wert = true/1/oder sonst was ist (Anzahl offener/gekippter Fenster).Ja das könntest du über zwei Gewerke lösen (dann auch zwei Selectoren). Ein anderer Weg fällt mir gerade auch nicht ein.
-
Guten Morgen - schöne Sache das hier aktiv an Blockly weitergemacht wird.
Noch ein Vorschlag:
Rechte Maustaste auf ein Steuerungs/Aktualisierungs-Blockly --> Neuer Eintrag: Erzeuge Wert von Objekt, ggf. das selbe auch beim Erstellen DP-Erstellungs-Blockly. -
Und gerade noch eine Idee bekommen:
- Per Doppelklick auf ein Blockly: entfalten/zusammenfalten
- Doppelklick mit gedrücker STRG: aktivieren/deaktivieren
-
Dank Eurer Hilfe habe ich nun mal für mich das bekannte Fensterskript aus dem Forum nachgebaut. Fensterkontakte sind HMIP. Aktuell aber ohne den Status kipp.
Bei mir id=STATE (Großschreibung) und für das "Gewerk" functions="Fenster". Ich habe bei mir Telegram mit eingebaut.
Den Blockly Export stelle ich unten mit rein, vielleicht möchte es Jemand benutzen.Anzeige in Telegram
Und hier der Blockly Export
-
@dslraser Hey,
das mit dem Import/Export liegt am Forum/Blocky Code. Das Forum wandelt das was in den Eckigen Klammern steht [state.id=.STATE] mit darauf folgender Klammer (functions="Fenster") auch gerne als Link um: mit dem text "state.id=.STATE" und der URL "functions='Fenster'"
Deswegen sollte man das immer in den Code[state.id=*.STATE](functions="Fenster")
packen, damit das Forum das nicht weiter verarbeitet.