Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI-Releases/Updates | Aktuell: Version 2.03

Einklappen
Dieses Thema ist geschlossen.
X
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Um derartige "Mythen" wie "in Version xxx ging's noch" mal aus der Welt zu schaffen: Signifikante Änderungen werden IMMER im Changelog protokolliert. Wenn da also nix steht, wurde auch nix verändert
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      Ach übrigens... Import/Export ist in Arbeit - allerdings dauert das noch "ein wenig", ist nämlich ziemlich kompliziert im Detail. Den Anfang machen natürlich die Visuelemente - das Problem sind hier z.B. die KOs, denn diese müssen ja ggf. ebenfalls exportiert/importiert werden. Technisch nicht die große Hürde, aber von der "Logik" her etwas sonderbar - Beispiel:

      Ein Visuelement setzt per Befehl die GA 0/0/1 auf einen Wert. Dieses KO wird nun exportiert und (optional) auch importiert. Nur dürften die GAs wohl kaum zwischen den einzelnen Nutzern übereinstimmen... Daher ist deren Export eigentlich Blödsinn, andererseits sind u.U. gerade die KO-Befehle interessant im Kontext eines (komplexeren) Visuelements.

      Meine Lösung sieht bislang in Etwa so aus: Die KOs werden quasi referenziert (z.B. "@1") und im Abschnitt "comobjects" (provisorisch) dann deklariert. Beim Import wird man dann wahrscheinlich wählen können, ob man die KOs 1:1 übernehmen möchte oder entsprechend anpassen muss (grob gesagt).

      Das Format wird wahrscheinlich JSON sein - ich denke dies ist mit entsprechenden Editoren gut zu verarbeiten (schließlich kann man auf diese Weise auch eigene Import-Dateien kreieren, also ohne die EDOMI-GUI). XML ist m.E. irgendwie.... naja... Aber das ist erstmal sekundär.

      Das Ganze wird dann wohl in ein TAR-Archiv verpackt werden, damit auch Bilddateien etc. exportiert werden können.

      Hier mal ein (unvollständiges) Beispiel - nicht gerade selbsterklärend, aber damit könnte die Richtung klar werden:

      Code:
      {
      
          "visuelements": [
      
              {
      
                  "db_id": "9",
      
                  "type": "27",
      
                  "name": "",
      
                  "group": "@0",
      
                  "caption": "{#} kW",
      
                  "x": "352",
      
                  "y": "452",
      
                  "width": "96",
      
                  "height": "96",
      
                  "zindex": "0",
      
                  "option1": "7",
      
                  "option2": "0",
      
                  "option3": "0",
      
                  "option4": "9.6",
      
                  "option5": "4",
      
                  "option6": "1",
      
                  "option7": "0",
      
                  "option8": "30",
      
                  "option9": "10",
      
                  "option10": "350",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                  ],
      
                  "comobjects": {
      
                      "1": "@0",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "59",
      
                  "type": "27",
      
                  "name": "",
      
                  "group": "@0",
      
                  "caption": "",
      
                  "x": "356",
      
                  "y": "456",
      
                  "width": "88",
      
                  "height": "88",
      
                  "zindex": "0",
      
                  "option1": "7",
      
                  "option2": "0",
      
                  "option3": "0",
      
                  "option4": "3.6",
      
                  "option5": "4",
      
                  "option6": "1",
      
                  "option7": "0",
      
                  "option8": "30",
      
                  "option9": "10",
      
                  "option10": "350",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                  ],
      
                  "comobjects": {
      
                      "1": "@1",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "60",
      
                  "type": "27",
      
                  "name": "",
      
                  "group": "@0",
      
                  "caption": "",
      
                  "x": "360",
      
                  "y": "460",
      
                  "width": "80",
      
                  "height": "80",
      
                  "zindex": "0",
      
                  "option1": "7",
      
                  "option2": "0",
      
                  "option3": "0",
      
                  "option4": "3.6",
      
                  "option5": "4",
      
                  "option6": "1",
      
                  "option7": "0",
      
                  "option8": "30",
      
                  "option9": "10",
      
                  "option10": "350",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                  ],
      
                  "comobjects": {
      
                      "1": "@2",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "61",
      
                  "type": "27",
      
                  "name": "",
      
                  "group": "@0",
      
                  "caption": "",
      
                  "x": "364",
      
                  "y": "464",
      
                  "width": "72",
      
                  "height": "72",
      
                  "zindex": "0",
      
                  "option1": "7",
      
                  "option2": "0",
      
                  "option3": "0",
      
                  "option4": "3.6",
      
                  "option5": "4",
      
                  "option6": "1",
      
                  "option7": "0",
      
                  "option8": "30",
      
                  "option9": "10",
      
                  "option10": "350",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                      {
      
                          "db_id": "13",
      
                          "type": "20",
      
                          "option1": "2",
      
                          "option2": ""
      
                      }
      
                  ],
      
                  "comobjects": {
      
                      "1": "@3",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "110",
      
                  "type": "1",
      
                  "name": "",
      
                  "group": "@1",
      
                  "caption": "Poolpumpe\n\"@'&deg;<nix>",
      
                  "x": "252",
      
                  "y": "452",
      
                  "width": "96",
      
                  "height": "48",
      
                  "zindex": "0",
      
                  "option1": "0",
      
                  "option2": "0",
      
                  "option3": "",
      
                  "option4": "",
      
                  "option5": "",
      
                  "option6": "",
      
                  "option7": "",
      
                  "option8": "",
      
                  "option9": "",
      
                  "option10": "",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                      {
      
                          "db_id": "16",
      
                          "type": "2",
      
                          "option1": "@4",
      
                          "option2": "1"
      
                      }
      
                  ],
      
                  "comobjects": {
      
                      "1": "",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "111",
      
                  "type": "1",
      
                  "name": "",
      
                  "group": "@1",
      
                  "caption": "0",
      
                  "x": "252",
      
                  "y": "500",
      
                  "width": "96",
      
                  "height": "48",
      
                  "zindex": "0",
      
                  "option1": "0",
      
                  "option2": "0",
      
                  "option3": "",
      
                  "option4": "",
      
                  "option5": "",
      
                  "option6": "",
      
                  "option7": "",
      
                  "option8": "",
      
                  "option9": "",
      
                  "option10": "",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                      {
      
                          "db_id": "17",
      
                          "type": "2",
      
                          "option1": "@4",
      
                          "option2": "0"
      
                      }
      
                  ],
      
                  "comobjects": {
      
                      "1": "",
      
                      "2": ""
      
                  }
      
              },
      
              {
      
                  "db_id": "112",
      
                  "type": "1",
      
                  "name": "Leuchtring",
      
                  "group": "@1",
      
                  "caption": "",
      
                  "x": "252",
      
                  "y": "452",
      
                  "width": "96",
      
                  "height": "96",
      
                  "zindex": "0",
      
                  "option1": "0",
      
                  "option2": "0",
      
                  "option3": "",
      
                  "option4": "",
      
                  "option5": "",
      
                  "option6": "",
      
                  "option7": "",
      
                  "option8": "",
      
                  "option9": "",
      
                  "option10": "",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                  ],
      
                  "comobjects": {
      
                      "1": "@5",
      
                      "2": ""
      
                  }
      
              }
      
          ],
      
          "visuelements.groups": [
      
              {
      
                  "db_id": "62",
      
                  "id": "@0",
      
                  "name": "Energie"
      
              },
      
              {
      
                  "db_id": "109",
      
                  "id": "@1",
      
                  "name": "Poolpumpe"
      
              }
      
          ],
      
          "comobjects": [
      
              {
      
                  "db_id": "551",
      
                  "id": "@0",
      
                  "name": "Gesamtleistung",
      
                  "gatyp": "2",
      
                  "ga": "551",
      
                  "dpt": "0",
      
                  "defaultvalue": ""
      
              },
      
              {
      
                  "db_id": "398",
      
                  "id": "@1",
      
                  "name": "Leistung (kW) FI1",
      
                  "gatyp": "1",
      
                  "ga": "9/2/3",
      
                  "dpt": "9",
      
                  "defaultvalue": ""
      
              },
      
              {
      
                  "db_id": "399",
      
                  "id": "@2",
      
                  "name": "Leistung (kW) FI2",
      
                  "gatyp": "1",
      
                  "ga": "9/2/4",
      
                  "dpt": "9",
      
                  "defaultvalue": ""
      
              },
      
              {
      
                  "db_id": "400",
      
                  "id": "@3",
      
                  "name": "Leistung (kW) FI3",
      
                  "gatyp": "1",
      
                  "ga": "9/2/5",
      
                  "dpt": "9",
      
                  "defaultvalue": ""
      
              },
      
              {
      
                  "db_id": "441",
      
                  "id": "@4",
      
                  "name": "Poolpumpe",
      
                  "gatyp": "2",
      
                  "ga": "441",
      
                  "dpt": "0",
      
                  "defaultvalue": ""
      
              },
      
              {
      
                  "db_id": "201",
      
                  "id": "@5",
      
                  "name": "GG: Poolpumpe",
      
                  "gatyp": "1",
      
                  "ga": "0/1/113",
      
                  "dpt": "1",
      
                  "defaultvalue": ""
      
              }
      
          ]
      
      }
      Und noch ein kürzeres Beispiel:

      Code:
      {
      
          "visuelements": [
      
              {
      
                  "db_id": "110",
      
                  "type": "1",
      
                  "name": "",
      
                  "group": "@0",
      
                  "caption": "Poolpumpe\n\"@'&deg;<nix>",
      
                  "x": "252",
      
                  "y": "452",
      
                  "width": "96",
      
                  "height": "48",
      
                  "zindex": "0",
      
                  "option1": "0",
      
                  "option2": "0",
      
                  "option3": "",
      
                  "option4": "",
      
                  "option5": "",
      
                  "option6": "",
      
                  "option7": "",
      
                  "option8": "",
      
                  "option9": "",
      
                  "option10": "",
      
                  "pagelink": "",
      
                  "popupclose": "0",
      
                  "design": {
      
                      "###": 1,
      
                      "dy": 2
      
                  },
      
                  "initonly": "0",
      
                  "dyndesigns": [
      
                      {
      
                          "###": 1,
      
                          "dy": 2
      
                      },
      
                      {
      
                          "dx": 1,
      
                          "dy": 2
      
                      }
      
                  ],
      
                  "commands": [
      
                      {
      
                          "db_id": "16",
      
                          "type": "2",
      
                          "option1": "@0",
      
                          "option2": "1"
      
                      }
      
                  ],
      
                  "comobjects": {
      
                      "1": "",
      
                      "2": ""
      
                  }
      
              }
      
          ],
      
          "visuelements.groups": [
      
              {
      
                  "db_id": "109",
      
                  "id": "@0",
      
                  "name": "Poolpumpe"
      
              }
      
          ],
      
          "comobjects": [
      
              {
      
                  "db_id": "441",
      
                  "id": "@0",
      
                  "folderid": "31",
      
                  "name": "Poolpumpe",
      
                  "description": "",
      
                  "gatyp": "2",
      
                  "ga": "441",
      
                  "dpt": "0",
      
                  "defaultvalue": "",
      
                  "initscan": "0",
      
                  "initsend": "0",
      
                  "requesttype": "0",
      
                  "remanent": "0",
      
                  "min": "",
      
                  "max": "",
      
                  "step": "",
      
                  "digits": "",
      
                  "csvlist": ""
      
              }
      
          ]
      
      }
      Zuletzt geändert von gaert; 23.10.2016, 22:45.
      EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

      Kommentar




        Das nenne ich mal eine Ansage !!!!

        Kommentar


          Zitat von gaert Beitrag anzeigen
          Ach übrigens... Import/Export ist in Arbeit - allerdings dauert das noch "ein wenig", ist nämlich ziemlich kompliziert im Detail. Den Anfang machen natürlich die Visuelemente - das Problem sind hier z.B. die KOs, denn diese müssen ja ggf. ebenfalls exportiert/importiert werden. Technisch nicht die große Hürde, aber von der "Logik" her etwas sonderbar - Beispiel:

          Ein Visuelement setzt per Befehl die GA 0/0/1 auf einen Wert. Dieses KO wird nun exportiert und (optional) auch importiert. Nur dürften die GAs wohl kaum zwischen den einzelnen Nutzern übereinstimmen... Daher ist deren Export eigentlich Blödsinn, andererseits sind u.U. gerade die KO-Befehle interessant im Kontext eines (komplexeren) Visuelements.

          Meine Lösung sieht bislang in Etwa so aus: Die KOs werden quasi referenziert (z.B. "@1") und im Abschnitt "comobjects" (provisorisch) dann deklariert. Beim Import wird man dann wahrscheinlich wählen können, ob man die KOs 1:1 übernehmen möchte oder entsprechend anpassen muss (grob gesagt).
          Wow, das gefällt mir Darauf warte ich jetzt noch, dann lege ich auch mit der Visu los. Super Arbeit!

          Vielleicht noch eine Idee mit den GAs. Vielleicht könnte man so eine Art virtuellen GA Namen verwenden, der auch in der Visu benutzt werden muss. Und in einer Art GA Editor, wo man sich das ganze von der ETS auch importieren kann, wird das ganze verknüpft

          Kommentar


            Klingt sehr gut
            Weil wir gerade beim Import von GA sind.

            Mir ist aufgefallen, dass bestehende GA scheinbar bei einem neuen OPC Import nicht mehr angetastet werden.
            Ich änderte Datentypen - wäre es möglich beim Import einen 1:1 Vergleich zu machen und sofern etwas anders ist, dem User eine Interaktion zu bieten, wo er selektieren kann was er machen möchte (GA überschreiben, löschen,...).

            Beim Visu import denke ich, wenn hier vorrangig interne KO verwendet warden, könnte man diese ja beliebig benamsen.
            Nur bei KNX GA wird es problematisch - wenn ich das richtig verstehe.

            Kommentar


              Richtig, beim ESF-Import werden nur die Namen "synchronisiert" - steht ja auch in der Hilfe. Und das ist auch besser so, weil das ESF-File nicht wirklich den DPT enthält: Meistens muss man den DPT von Hand anpassen nach dem Import - und das wäre dann bei jeder Aktualisierung (Import) fällig...

              EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

              Kommentar


                Habe heute erst gesehen, dass es in der Liste der Logikseiten beim Rechtsklick auf eine Logik die Optionen "Element merken" und "Element hierher verschieben" gibt. Sollte es damit möglich sein die Anordnung der Einträge in der Liste zu verändern? Wäre super, habe ein paar Logiken die zusammengehören, würde sie daher gerne untereinander aufgelistet haben. Allerdings funktioniert das Verschieben bei mir mit 1.47 nicht. Die Reihenfolge ändert sich nicht.

                Kommentar


                  Du kannst die Einträge damit in einen anderen Ordner verschieben.
                  Sortieren innerhalb eines Ordners ist (noch) nicht möglich. Es wird immer nach ID sortiert.

                  Kommentar


                    Zitat von gaert Beitrag anzeigen
                    Das hat nichts mit EDOMI zu tun - SVGs werden von den mir bekannten Browsern nicht gepuffert (beim Rendern).
                    Bei mir (Chromium, OSX) flackert auch ein Grossteil der SVGs, nicht alle, aber doch einige. Weil mir das dann irgendwann doch irgendwie auf den Keks gegangen ist:
                    -in der Datei /etc/httpd/conf/httpd.conf nach "ExpiresDefault" suchen, in der Zeile drueber folgendes reinschreiben
                    Code:
                    ExpiresByType image/svg+xml "access plus 1 months"
                    (kann man auch irgendwo anders in die Datei schreiben, aber da passt es so huebsch hin )
                    -Webserver neu starten
                    Code:
                    /etc/init.d/httpd restart
                    Wie gesagt, im Chromium funktionierts, zu anderen Browsern kann ich grad nix sagen

                    HTH :: Michael

                    Kommentar


                      Darum habe ich gestern wieder auf png's umgestellt. Zumindest auf iOS um einiges flüssiger und performanter als mit den svg's.

                      Kommentar


                        wintermute Besten Dank für den Workaround, Michael.
                        timberland Das hört sich so schnell an - hast Du eine schnellere Lösung (direkt in der DB?), als alle Bilder einzeln zu ersetzen? Ich hatte anfänglich alle PNGs durch SVGs ersetzt, was schon recht lang gedauert hat. Jetzt habe ich weitaus mehr SVGs in Nutzung.

                        Sorry, bisl am Thema vorbei.

                        Kommentar


                          wintermute

                          Nach meinen Informationen liegt das "Flackern" bei einem SVG-Hintergrund (je nach Browser) nicht am Cache, sondern an der Art und Weise wie die SVGs gerendert werden. Offenbar werden diese per Default nicht wie Bitmaps quasi im Hintergrund gerendert und dann erst ins DOM eingefügt, sondern "on the fly" nach(!) dem DOM-Aufbau gerendert (ähnlich wie Canvas). Mag sein, dass Chrome dies inzwischen besser handhabt - isch nix wissen...
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            Isch auch nisch
                            Jedenfalls hatte ich immer die selber Flacker-Kandidaten, ich glaube vornehmlich dann, wenn sich Elemente ueberlagert haben, jetzt ist alles ruhig. Aber wie geschrieben: kann sein, dass es nur im Chromium passt...

                            Kommentar


                              @Stonx

                              ich habe nur die SVG's gegen PNG's getauscht und nicht zusätzlich neu geladen. Somit wenn ein SVG getauscht ist, ändern sich alle wo es in der Visu angezeigt wird.
                              Und was mir noch aufgefallen ist - ich verwende ja Frameless am iPhone - hier bleibt jetzt die Verbindung auch bestehen wenn ich raus gehe und die app wieder starte. Vorher mit den SVG's musste die Visu immer erst geladen werden.
                              Denke es wird schon einen Grund haben, warum bei iOS keine SVG's zu finden sind.

                              Kommentar


                                Okay, danke für die Info und den Tipp mit dem alternativen Browser. Genau, bei mir muss auch alles immer neu geladen werden und es dauert verhältnismäßig lange, vor allem über VPN.

                                Ich erstelle jetzt einige Designvorlagen mit PNGs für wiederkehrende Elemente (stand schon lange auf meiner Liste) und vergleiche mal die Ladezeiten.

                                Kommentar

                                Lädt...
                                X