Ankündigung

Einklappen
Keine Ankündigung bisher.

Ein paar Prinzipfragen zur eigenen Softwareentwicklung

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

    #16
    Die Probleme die du beschreibst sind aber alles keine Java Probleme sondern Probleme der Software.
    Du kannst auch mit C++ bescheuerte Programme schreiben, die genau eine Version irgendeiner DLL benötigen (und die gibt es leider auch zur Genüge).
    Das fällt dann unter richtig schlechtes Software-Engineering, dafür kann aber die Sprache nichts.

    Kommentar


      #17
      Hallo Yves,

      Zur pro/kontra-Java-Diskussion werde ich mich mal nicht weiter äußern.
      Da Du ja in Programmierung fit zu sein scheinst, ist Deine Überlegung durchaus realistisch, die Software für Deine eigenen Anforderungen selbst zu erstellen. Dadurch fehlen Dir natürlich eine Menge Features, welche auch in OpenSource projekten bereits umgesetzt sind.

      Ich würde Dir empfehlen, Dir einmal das KNX@Home-Projekt anzuschauen. Dort wurde ebenfalls eine Client-Server(Calimero)-Architektur(Java) mit DB-Haltung und KNX-Anbindung über eibd realisiert.
      Calimero selbst hat den Nachteil, dass dort nicht alle, von der KNXA spezifizierten Datenpunkttypen implementiert sind, für die gängigsten Zwecke sollte es jedoch ausreichen.

      KNX@Home - Main Page

      Kommentar


        #18
        Hallo,

        es gibt ja schon diverse OS-Software-Projekte rund um KNX:
        • Misterhouse
        • Linknx
        • Smarthome.py
        • Comet-Visu
        • KNX@Home

        Ich würde mir wünschen, wenn die Aktivitäten -so wie bei der Comet-Visu- gebündelt werden, d.h. dass sich eine schlagkräftige Truppe zusammen tut und gemeinsam an einem Projekt arbeitet.

        Ich sehe die Comet-Visu als eine Lösung für die Problemstellung "Visu". Aber für die Logiken kenne ich noch keine OS Lösung, die ich nutzen werde/würde.

        Deshalb: Wenn ich könnte, würde ich mich engagieren eine zur Comet-Visu passende*) Logik-Engine zu bauen -und zwar im Team mit den Machern der anderen Lösungen -so die denn dazu bereit sind.

        Gruß,
        Hendrik

        *) Logik Engine und Visu sind unabhängig. Aber es gibt sicher Synergien.

        Kommentar


          #19
          Hallo zusammen,

          vielen Dank für die vielen Kommentare, gut zu hören dass meine erste Idee (also mit Calimero direkt auf mein IP-Gateway) möglich ist. Komme wahrscheinlich noch mit Fragen zurück.

          Ich wollte keine Diskussion über Programmier- sprachen und Umgebungen antreten. Bin halt von Java überzeugt (und damit wohl auch nicht allein, siehe TIOBE Software: The Coding Standards Company :-)

          Es gibt sicher schlechte Java-Software (Zudem Java-Software oft langsamer war als andere, dies hat sich aber durch die aktuelleren JREs und aktuelleren Rechner soweit erledigt)

          Es gibt aber auch viel Java-Software wo der Nutzer sich gar nicht bewusst ist dass es Java ist... Gmail, Google+, Twitter...

          Sowie offensichtliche wie z.B. Eclipse, das sogar super für PHP geeignet ist.

          p.s.
          Wenn jemand eine Google+ Einladung will, einfach PN mit Email-Adresse an mich
          .

          Kommentar


            #20
            Zitat von Frost Beitrag anzeigen
            Ja das funktioniert so wie gedacht.
            Verwende selbst die Calimero NG API zusammen mit einer Siemens IP Schnittstelle N148/22
            Vorher hatte ich die N148/21 eingesetzt, diese konnte aber nur einen
            aktiven Tunnel erstellen.
            Mit der 22er kann man maximal vier parallele Tunnel zum Bus aufbauen.
            Hallo, danke für die Antwort! Hier kommen noch ein paar Fragen
            • Tunnel, ist das synonym für eine Verbindung zu einem Busteilnehmer ?
            • Kann man mit Calimero einen Listener erstellen welche alle Events auf dem Bus (z.B. Schalteraktionen, Status (Rolladen oben/unten), Temperatur) mitbekommt?

            Danke nochmals für die Hilfe.

            Kommentar


              #21
              Zitat von henfri Beitrag anzeigen
              Ich sehe die Comet-Visu als eine Lösung für die Problemstellung "Visu".

              *) Logik Engine und Visu sind unabhängig. Aber es gibt sicher Synergien.
              Richtig, die CometVisu ist exklusiv eine Visu, keine Logik-Engine.
              Zitat von henfri Beitrag anzeigen
              Aber für die Logiken kenne ich noch keine OS Lösung, die ich nutzen werde/würde.
              Das passende Projekt dazu nennt sich PyWireGate, vgl. SourceForge.net: LogicEngine - Open Automation
              Zitat von yglodt Beitrag anzeigen
              (Zudem Java-Software oft langsamer war als andere, dies hat sich aber durch die aktuelleren JREs und aktuelleren Rechner soweit erledigt)
              Vorsicht, Java-Performance über "aktuellere Rechner" zu lösen ist genau das Problem, das einige mit Java haben und hier nicht zielführend.

              Wir reden bei der Logik-Engine über eine Lösung, die auf einer 500 MHz x86 Kiste mit Volllast kleiner 5 Watt absolut performant läuft. Oh, hatte ich die 256 MB RAM vergessen zu erwähnen?
              Performant heißt Reaktionszeiten im (Sub-)Millisekunden-Bereich.

              Die aktuelle Lösung (s.o.) ist in Python implementiert ohne jeglicher Optimierung (außer guter Algorithmen-Wahl) und kommt meinem Ziel schon sehr nahe.

              Zum Programmiersprachen-Flamewar werde ich mich nicht weiter beteiligen, außer diesem Satz:
              Java verbindet für mich die Nachteile von interpretierten und compilierten Programmiersprachen.
              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

              Kommentar


                #22
                Da muss ich Chris recht geben, für ne Logik Engine würde ich Java auch nicht einsetzen, wenn dann rein für die Visu... höchstens einen Logikeditor der die Logiken so compilieren kann, das sie performant verarbeitet werden können (aber nicht in Java selber)

                Just my 2 cents
                Mit freundlichen Grüßen
                Niko Will

                Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                Kommentar


                  #23
                  Zitat von 2ndsky Beitrag anzeigen
                  Da muss ich Chris recht geben, für ne Logik Engine würde ich Java auch nicht einsetzen, wenn dann rein für die Visu...
                  Gerade die Visu braucht's am wenigsten. Die CometVisu kann (könnte) auch auf einer Firtz!Box laufen und die würde sich weiter langweilen. Und der Client im Broweser wäre weiter rotze schnell, denn der merkt nicht mal welche Gurke ihn mit Daten in Echtzeit füttert.
                  Zitat von 2ndsky Beitrag anzeigen
                  höchstens einen Logikeditor der die Logiken so compilieren kann, das sie performant verarbeitet werden können (aber nicht in Java selber)
                  Das macht das Python per compile() jetzt schon. Wer PyWireGate am laufen hat und die Erweiterung mit dem grafischen Logik Editor testet, kann sehen, wie genau ein Signalflussdiagramm in Python-Code überführt wird, der in Python-Bytecode und nur noch dieser alle paar Millisekunden zyklisch läuft.

                  Ursprünglich hatte mir da auch eine C++ Implementierung vorgeschwebt - aber da hätte ich erst mit einem JIT Compiler anfangen müssen um an die Geschwindigkeit zu kommen. Mit den paar Zeilen Code wäre das sicher nicht gegangen wie in der GLE Erweiterung des PyWireGate.
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #24
                    Logisch, da hast du vollkommen recht. Ich würde mir den stress einer weiteren Visu Implementierung auch nicht machen, eben weil es bereits gute und durchdachte Systeme gibt und die CometVisu steckt ja auch in den Startlöchern. Nur wenn der TE das unbedingt selber machen möchte, dann würde ich es so machen. Nur darf man, außer einem Lernerfolg davon nicht so arg viel erwarten... verkaufen wird man das fast nicht können, da es, wenn Java eingesetzt wird, für andere eher uninteressant sein wird (wegen benötigten Hardware Ressourcen).

                    Fazit: wenns dich einfach nur reizt das selber zu machen dann Visu über Java EE, GWT usw., Logik Engine grafisch noch.in Java aber muss in irgendwas kompiliert werden damits schnell läuft... aber bis du damit auf dem Niveau eines HS3, Wiregate, EibPC etc. bist, hast du soviele wertvolle Stunden verbraten, die du mit deiner Familie oder sonst was verbringen hättest können, das du dir dafür locker zwei HS3 redundant plus einige Touchpanels aufhängen kannst.

                    Da würde ich an deiner Stelle lieber dem Comet Visu Dev Team mal ne PN (z.B. an Chris) schreiben, ob du dort an der Entwicklung mitarbeiten kannst. Ist zwar kein Java, aber als Softwareentwickler sollte die Sprache eigentlich egal sein. Zumindest werd ich mich versuchen dort einzubringen, sobald es die Zeit zulässt und wie gesagt, bin eigentlich auch Java und .NET Entwickler.
                    Mit freundlichen Grüßen
                    Niko Will

                    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
                    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

                    Kommentar


                      #25
                      Full ACK

                      Kommentar


                        #26
                        Zitat von yglodt Beitrag anzeigen
                        > Tunnel, ist das synonym für eine Verbindung zu einem Busteilnehmer ?
                        Nicht zu einem Busteilnehmer sondern zum Bus.
                        Das "Problem" mit der Tunnelanzahl liegt in der anderen Richtung,
                        also zwischen Anwendung und IP Schnittstelle.

                        Ist von einer Anwendung ein Kanal zum Bus ueber die IP Schnittstelle geoeffnet,
                        konnte diese nicht noch von einer weiteren Anwendung verwendet werden.
                        Wird also ein Tunnel laenger benoetigt, um z.B. Nachrichten auf
                        dem Bus mitzulesen, kann keine weitere Anwendung diesen nutzen.
                        Die neuen IP Schnittstellen unterstuetzen mehere parallele Tunnel
                        zum Bus, man muss daher nicht mehr seine Anwendung beenden
                        wenn man z.B. zwecks Einrichtung eines Busteilnehmers mit einer
                        zweiten Software einen Buszugriff benoetigt.

                        Zitat von yglodt Beitrag anzeigen
                        Kann man mit Calimero einen Listener erstellen welche alle Events
                        auf dem Bus (z.B. Schalteraktionen, Status (Rolladen oben/unten),
                        Temperatur) mitbekommt?
                        Ja das geht, schau dir mal im Calimero Paket die calimero-tools_-_src.zip an,
                        dort gibt es eine Beispielanwendung NetworkMonitor.java
                        damit sollte man einen ersten Eindruck bekommen koennen,
                        wie man es mit Calimero umsetzt.

                        Kommentar


                          #27
                          Zitat von Chris M. Beitrag anzeigen
                          Wir reden bei der Logik-Engine über eine Lösung, die auf einer 500 MHz x86 Kiste mit Volllast kleiner 5 Watt absolut performant läuft. Oh, hatte ich die 256 MB RAM vergessen zu erwähnen?
                          Performant heißt Reaktionszeiten im (Sub-)Millisekunden-Bereich.

                          Die aktuelle Lösung (s.o.) ist in Python implementiert ohne jeglicher Optimierung (außer guter Algorithmen-Wahl) und kommt meinem Ziel schon sehr nahe.
                          Da hast du natürlich Recht. Gut dass ich schon einige Sachen in Python in ähnlich dimensionierten Rechnern gemacht habe.

                          Gibt es denn eine Python-Bibliothek mit der man sich auf Events oder Telegramme auf dem Bus abonnieren kann, und auch selbst Telegramme abschicken kann ?

                          p.s.
                          Perl jedoch will ich mir wirklich nicht antun. Man sagt ja es wäre write-only ;-)

                          Kommentar

                          Lädt...
                          X