Ankündigung

Einklappen
Keine Ankündigung bisher.

Logikengine, java powered

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

    Der nächste Schritt ist in Arbeit:

    Das DatabasePlugin um Daten aufzuzeichnen macht gerade seine ersten Schritte...
    Daneben bau ich KAD gerade so um, dass intern mit GA Adressen gearbeitet wird, wenn konfiguriert, nach außen hin (also in der Logikengine und alles womit der User in Kontakt kommt) mit den GA Namen. So ist die interne Verarbeitung einfacher (nur ein Typ und kein Mischmasch aus Name und/oder Adresse) und wenn man keinen Wert auf eindeutige GA Namen in der ETS gelegt hat, kann man KAD dann auch rein mit den GA-Adressen nutzen.

    Kommentar


      Das klingt gut
      Ich habe keine eindeutigen Name...

      Kommentar


        Ja, der eine mag es halt so, der andere anders. Bei mir sind die Namen eindeutig. Ich hab zwar auch ein gewisses Muster bei den Adressen selbst, aber mit den Namen komm ich auswendig besser klar. Die Adressen muss ich jedesmal nachschauen.

        Kommentar


          Hallo
          Das DatabasePlugin um Daten aufzuzeichnen macht gerade seine ersten Schritte
          Für welche Datenbank ist den das Plugin geplant.
          Schau dir mal InfluxDB an, ist für solche Zwecke sehr gut geeignet.
          Da braucht man nur die DB anlegen und kann dann ohne Tabellen oder Spalten anlegen direkt in die DB schreiben.
          Per SQL über HTTP oder UDP.
          Zum Anzeigen der Kurven benutze ich Grafana, ist spitze.
          Gruß NetFritz
          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

          Kommentar


            Hab ich mir angeschaut. Ist mir aber zu mächtig und zu groß. Und die ganzen Features die es bietet brauch ich gar nicht. Ob ich Grafana einsetze wird sich noch zeigen. Sieht mir aber auch zu mächtig aus. Die visualisierung wie es die SmartVisu macht reicht mir eigentlich. Und dafür brauch ich eben ein einfaches Backend.

            Kommentar


              SQLite? Lässt sich bei Bedarf wohl dann auch ohne größeren Aufwand auf etwas Größeres (MySQL o.ä.) portieren.

              Kommentar


                Bleib mir bloß weg mit sqlite ... ;-)

                Ich verwende H2, was für diese belange 1) ausreichend ist, 2) schneller ist als MySQL und 3) so klein ist (und in Java implementiert ist), dass man das direkt fertig konfiguriert mitliefern kann, ohne dass etliche Megabytes dazu kommen (soll ja auch auf schwachbrüstigen Systemen laufen).

                Und falls H2 doch mal "schwächeln" sollte: Dank JDBC kann man ohne allzuviel Aufwand auf jede beliebige andere Datenbank dran hängen.

                Kommentar


                  Hallo
                  Habe nun kad auf einen Raspberry Pi 2 wheezy installiert, läuft einwandfrei innerhalb 15 Minuten.
                  Wie bekomme ich den eine Gruppenadresse ausgelesen ?
                  Es wird ja nur mit Ga-Name gearbeitet.
                  Gruß NetFritz
                  Ich suche die GA wie "1/2/3".
                  Zuletzt geändert von NetFritz; 17.01.2017, 21:06.
                  KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                  WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                  PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                  Kommentar


                    Du hast doch schon die neuere Version die eine "knxproject.xml" generiert, richtig?

                    Da kannst du deine "1/2/3" GA drin anlegen (im unteren Abschnitt) und ihr einen Namen geben. Im weiteren Verlauf arbeitest du dann mit diesem Namen.

                    Code:
                        <UserDefined>
                            <GroupAddresses>
                                <GroupAddress Address="1/2/3" Name="Meine.Super.Tolle.GA" DPT="1.001"/>
                            </GroupAddresses>
                        </UserDefined>
                    Erst in der nächsten Version wird man wählen können ob man mit GAs oder Namen arbeiten will.

                    Kommentar


                      Hallo
                      Das ich in der "knxpoject.xml" unter <UserDefined> eigene GA anlegen kann ist mir bekannt.
                      Ich möchte aber in einer Logicxxxxxxx.java die GA als Ergebnis abfragen wie z.B. "1/2/3"
                      und sie über Netzwerk an ein anderes Programm senden.
                      Nur Beispielcode
                      Code:
                      public void onDataWrite(String ga, String value) throws KnxServiceException {
                               String GruppenAdress = getGA(ga);
                               // GruppenAdress und value per Netzwerk versenden
                      Wenn das nicht geht dann muss ich den Weg über die "knxpoject.xml" wählen.
                      Gruß NetFritz
                      KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                      WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                      PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                      Kommentar


                        Das geht noch nicht... Ist aber ein interessanter Anwendungsfall den ich mal auf meine ToDo Liste setze.

                        --> https://github.com/tuxedo0801/KnxAut...aemon/issues/2
                        Zuletzt geändert von tuxedo; 19.01.2017, 12:55.

                        Kommentar


                          Hallo
                          Vielen Dank.
                          Dann wähle ich den Weg über die "knxpoject.xml".
                          Gruß NetFritz
                          KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                          WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                          PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                          Kommentar


                            Kleiner Hack: Du kannst in der XML den Namen ja so wie die GA selbst definieren... Dann ist Name und Adresse identisch und im LogicScript kommt das richtige an.

                            Kommentar


                              Hallo
                              Hatte ich eben schon gemacht.
                              Danke
                              Gruß NetFritz
                              KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                              WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                              PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                              Kommentar


                                Hallo
                                Ich habe dein Plugin "offLogicVOC.java" als Logic umgebaut um vom aufgerufenem c-Prog den stdout Stream zu empfangen.
                                Da ich das nicht Periodisch aufrufen wollte habe ich "br.readLine()" in eine While Schleife gepackt.
                                Es lief solange ich den Task Aufruf drinnen hatte richtig gut.
                                Ich habe dann alles vom Timer Task entfernt.
                                Nur wird aber "public void run()" umbenannt in "public void main(String[] args)" nicht mehr aufgerufen.
                                Wie muss ich "public void run()" denn nennen das sie auch aufgerufen wird.
                                " public void onDataWrite(String ga, String value) throws KnxServiceException" ja nicht, wird ja nur aufgerufen wenn eine entsprechende Ga empfangen wird.
                                Hier mal meine "LogicReadSHM.java"
                                Code:
                                package samplescripts;
                                
                                import de.root1.kad.knxservice.KnxServiceException;
                                import de.root1.kad.logicplugin.Logic;
                                import java.io.BufferedReader;
                                import java.io.IOException;
                                import java.io.InputStream;
                                import java.io.InputStreamReader;
                                import java.util.Timer;
                                import java.util.TimerTask;
                                import java.util.logging.Level;
                                import java.util.logging.Logger;
                                
                                public class LogicReadSHM extends Logic {
                                
                                   String Ga;
                                   String line;
                                   String[] GaValue;
                                
                                   @Override
                                   public void init() {
                                     setPA("1.0.202");
                                     log.info("ReadSHM is running.");
                                   }
                                   // @Override
                                   // public void run()
                                   public void main(String[] args)
                                   {
                                       String[] cmd = new String[]{"/home/readshm", "-v", "-o"};
                                       try {
                                           Process exec = Runtime.getRuntime().exec(cmd);                
                                           InputStream inputStream = exec.getInputStream();
                                           BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                                           // stdout vom exec(cmd) holen Stream wird nicht abgebrochen
                                           // vom Stream kommt Ga un value "0 1 3 55555"
                                           while ((line = br.readLine()) != null) {
                                               //System.out.println(line);
                                               GaValue = line.split("\\s+");
                                               Ga = GaValue[0] + "/" + GaValue[1] + "/" + GaValue[2];
                                               log.info(Ga + " " + GaValue[3]);
                                               // write(Ga,"1000");
                                               //  write(Ga, String.valueOf(999));
                                           }  
                                           br.close();    
                                       } catch (IOException ex) {
                                           ex.printStackTrace();
                                           log.info("catch");
                                       }
                                    }
                                }
                                Gruß NetFritz
                                KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
                                WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
                                PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

                                Kommentar

                                Lädt...
                                X