Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Neues Plugin: Google Blockly als visueller Editor für sh.py Logiken

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    Zitat von psilo Beitrag anzeigen
    walldi machst Du einen PR gegen SmartHomeNG DEV?
    Habe ich (mit meinen begrenzten git-Kenntnissen) gemacht:
    Zuletzt geändert von walldi; 06.09.2016, 23:07. Grund: nochmal sauber...

    Kommentar


      #32
      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


        #33
        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.

        Kommentar


          #34
          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


            #35
            Zitat von psilo Beitrag anzeigen
            walldi ... 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. ...
            Reload beim speichern habe ich (zusammen mit einigen weiteren Änderungen) im Fork (https://github.com/walldi/smarthome/...ics-editor-001) bereits drin. Aber du hast rechts: das sollte man reviewen.


            man müsste noch sehen wie man mit fehlerhaftem code beim speichern umgeht. ggf beim reloaden irgendwie exceptions abfangen und den alten code widerherstellen.
            Ich könnte mir vorstellen, das eine online-Syntax (und ggf PEP8) Prüfung, wie [hier](http://infoheap.com/python-lint-online/) oder [hier](http://pep8online.com/checkresult) sinnvoll wäre. Es wäre schwierig, ungültigen Code ohne entsprechende Fehlermeldung zu behandeln.

            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.
            Prettify hatte ich auch im Fork bereits nachgerüstet. Ich werde mal vergleichen.
            Contribute to smarthome development by creating an account on GitHub.

            Kommentar


              #36
              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


                #37
                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


                  #38
                  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ß,
                  Hendrik
                  Zuletzt geändert von henfri; 19.10.2016, 22:12.

                  Kommentar


                    #39
                    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


                      #40
                      henfri Das Ding geht bei mir noch garnicht, und ich habe zu viele Baustellen um mich dem zu widmen. Eigentlich wollte walldi doch weitermachen?

                      Ich hadere daher aktuell damit, das wieder rauszuwerfen oder nur im DEV Mode sichtbar zu machen oder ähnliches...

                      Kommentar


                        #41
                        Moin,

                        ich denke, ein Hinweis würde reichen.
                        "Geht nicht" kann ich bestätigen (s.o.). Aber ich hatte gedacht, dass es bereit ist, um Bugs zu suchen (momentan scheitert man ja schon sehr früh).

                        Wäre echt schade drum.

                        Gruß,
                        Hendrik

                        Kommentar


                          #42
                          henfri mind im nächsten release will ich nichts haben, was nicht geht und wie schon geschrieben: jeder ist eingeladen mitzuwirken

                          Kommentar


                            #43
                            Zitat von henfri Beitrag anzeigen
                            Moin,

                            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
                            Hallo 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


                              #44
                              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


                                #45
                                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

                                Lädt...
                                X