Zitat von psilo
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Neues Plugin: Google Blockly als visueller Editor für sh.py Logiken
Einklappen
X
-
habe das ding mal in den DEV gemerged. Leider geht bei mir garnichts. Wenn sich jemand in der Muße fühlt, mich dabei zu unterstützen, das Ding funktionsfähig zu machen, gerne am Backend mitarbeiten.
Ob ich den Menüpunkt als eigenen bestehen lasse, weiss ich aktuell noch nicht, ggf macht es Sinn, bei den Logiken einen Button zu ergänzen?
Kommentar
-
So Blockly geht jetzt schonmal rudimentär, die Usability - insbes. Bearbeitung anderer Logiken - ist aber noch zu tunen.
Hier kommt jetzt auch wieder die Frage auf, ob man die CONF-Daten generieren können will und wie man das umsetzen könnte. Wobei das dann etwas für die Overview-Seite der Logiken wäre.
Im Blockly-Editor müsste ich wohl die Bestandslogik immer in das "blockly_logics.py" File temporär umkopieren und einen Button einbauen, der sie zurückkopiert und reloaded. Man will ja auch nicht, dass die Logik mitten in der Entwicklung aktiv wird.
- Likes 1
Kommentar
-
walldi ich habe mal für die normale sourcen ansicht der logiken jetzt codemirror scharf geschalten. beim speichern wird die logik automatisch reloaded. man müsste noch sehen wie man mit fehlerhaftem code beim speichern umgeht. ggf beim reloaden irgendwie exceptions abfangen und den alten code widerherstellen.
einen ähnlichen ansatz mit automatischem reload fände ich von der benutzbarkeit im blockly auch fein. evtl schaffe ich morgen mal bei blockly etwas weiter zu kommen. wir müssen an der stelle aber def. zusammen oder mit noch mehr leuten weiterarbeiten / testen. die funktionen zum reloaden, speichern etc habe ich im BackendCore Modul jetzt rausgespalten. evtl sollte das sogar noch eine ebene zentraler.
codemirror in der python-blockly ansicht würde ich aber generell ausgeschaltet lassen, da hier ja einbahnstraße von python zurück zu blockly wäre.
prettify habe ich zudem jetzt von der gemeinsamen quelle eingebinden (das gab es im backend bereits) - ich würde gerne das demos directory ganz loswerden. aktuell liegt mE aber nur noch ein CSS da drin.
Kommentar
-
Zitat von psilo Beitrag anzeigenwalldi ... beim speichern wird die logik automatisch reloaded. ...
einen ähnlichen ansatz mit automatischem reload fände ich von der benutzbarkeit im blockly auch fein. .... wir müssen an der stelle aber def. zusammen oder mit noch mehr leuten weiterarbeiten / testen. ...
man müsste noch sehen wie man mit fehlerhaftem code beim speichern umgeht. ggf beim reloaden irgendwie exceptions abfangen und den alten code widerherstellen.
prettify habe ich zudem jetzt von der gemeinsamen quelle eingebinden (das gab es im backend bereits) - ich würde gerne das demos directory ganz loswerden. aktuell liegt mE aber nur noch ein CSS da drin.
Contribute to smarthome development by creating an account on GitHub.
Kommentar
-
Ich sammele Beispiele von Anwendungsfällen, die mit Blockly umsetzbar sind. Bisher habe ich mal das aktuelle Forum durchsucht und einige Themen untereinander geschrieben.
Ziel ist, damit die Anwendbarkeit des Blockly-Editors abzusichern.Contribute to smarthome-wiki development by creating an account on GitHub.
Kommentar
-
walldi prettify war in der sourcen-impl deiner blockly anteile bereits drin, aber auf einen seperaten ordner der nicht existiert hatten wegen des js/css verwiesen worden. da prettify bereits im backend lag, habe ich den ordner dahin verändert. bitte achte drauf, den fork so nachzuziehen. gut wäre auch die reload logik und ggf das speichern einmal zentral zu haben, egal ob man blockly nimmt oder nicht. ein merge wird also spannend
Kommentar
-
Hallo,
ich wollte gerade mal Blockly im Backend testen, aber leider gibt es diese Seite nicht:
http://homeserver:8383/logics_blockly.html
Heruntergeladen habe ich:
git clone git://github.com/smarthomeNG/smarthome.git
Hätte ich einen anderen branch/tag nutzen sollen?
Edit ja: --branch develop
Jetzt funktioniert es.
Gruß,
HendrikZuletzt geändert von henfri; 19.10.2016, 22:12.
Kommentar
-
Moin,
ich habe mir gerade mal Blockly angesehen. Ich scheitere an der ersten Logik:
blockly.png
Sobald ich die 5 mit dem >= verbinden möchte, springt "WetterTemperaturWetterstation" raus und umgekehrt.
Ist das ein Bug, oder mache ich etwas falsch?
Gruß,
Hendrik
Kommentar
-
Zitat von henfri Beitrag anzeigenMoin,
ich habe mir gerade mal Blockly angesehen. Ich scheitere an der ersten Logik:
{"data-align":"none","data-size":"custom","height":"216","title":"blockly.png ","width":"824","data-attachmentid":1014854}
Sobald ich die 5 mit dem >= verbinden möchte, springt "WetterTemperaturWetterstation" raus und umgekehrt.
Ist das ein Bug, oder mache ich etwas falsch?
Gruß,
Hendrik
dies ist in der Tat ein Feature, kein Bug: "WetterTemperaturWetterstation" ist in diesem Fall das Item. Wenn du mit "5" vergleichen willst, musst du den Wert des Items verwenden. ("Wert von" Block.) [Man könnte hier mit zB Farben und Hints die Typ-Verträglichkeiten noch deutlicher machen, ok.]
Bei mir funktioniert es manchmal - manchmal nicht: das lässt sich mit der aktuellen Implementierung des Backend, insb. so wie CherryPy verwendet wird, nicht richtig hinbekommen, fürchte ich.
Gruß.Zuletzt geändert von walldi; 21.11.2016, 10:41.
Kommentar
-
walldi darf ich fragen, was da genau das problem ist? der code müsste doch rein clientseitig laufen? du kannst auch gerne vorschläge machen was zu ändern wäre...
gibt es eine aussage von dir, ob du die integration noch supportest? ich muss gestehen mir ist das zu viel und wenn sich keiner findet, müssen wir doch überlegen was wir weiter mit blockly machen.
Kommentar
-
Hallo,
für mich ist Blockly ein richtig großer Schritt. Ich bin gerne bereit mich für die Dokumentation ins Zeug zu legen. (Ich weiß nicht, wie ich euch sonst motivieren kann).
Das wäre ein richtiges Alleinstellungsmerkmal.
Bezüglich meiner Logik:
Das hatte ich schon als möglichen Grund im Verdacht. Mit der Änderung funktioniert das erstmal prinzipiell. Aber die Logik, die rauskommt ist so für mich nicht schlüssig:
blockly1.png
blockly2.png
Ich hätte da statt s == sh.Wetter.Temperatur.Wetterstation== erwartet.
Gruß,
Hendrik
Kommentar
Kommentar