Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS: SML-Reader

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

    Leider hat mir der Baustein nur an einem Tag die Werte ausgegeben. Muss ich den Baustein noch anders Triggern?

    Kommentar


      Seltsam, seltsam... Es sieht fast so aus, als wäre die Schnittstelle wieder nicht in Ordnung.
      Was gibt der folgende Befehl jetzt aus?
      Code:
      cat /dev/ttyUSBx | od -tx1
      Und was gibt dieser Befehl aus, nachdem man den stty Befehl (siehe oben) für die gleiche Schnittstelle ausführt?

      Der LBS muss nicht getriggert werden. Er interpretiert die Daten, sobald sie ankommen und der enable-Eingang auf ungleich 0 gesetzt ist. Wenn der trace-Eingang auf ungleich 0 gesetzt ist, müsste man nach jedem Neustart ein paar Logs auch ohne ankommende Daten sehen. Wenn das nicht der Fall ist, dann bin ich ratlos...

      Kommentar



        cat /dev/ttyUSB0 | od -tx1 Unbenannt.JPG nach dem stty Befehl gibt er gar nichts mehr aus Unbenannt1.JPG Eine Log-Datei bekomem ich auch nicht Unbenannt3.JPG Unbenannt4.JPG

        Kommentar


          MIr ist gerade eben aufgefallen, dass in der Titelzeile der Box "SmlReader" steht. Liegt es an der Darstellung deiner Edomi-Version oder daran, dass du eine uralte Version des Bausteins benutzst? Die letzte hochgeladen Version ist 1.3 und wird in der Titelzeile mit "SmlReader v1.3" dargestellt.

          Kommentar


            Du hast Recht. Ich benutze, warum auch immer, einen uralte Version des Bausteins.
            Versuche es mal mit der Neuen.

            Kommentar


              Ich hab mal ne Frage.. ich das merkwürdige Verhalten, dass sich bei den empfangenen Daten ein Delay von bis zu mehreren Minuten aufbaut. Also Änderungen zeigen sich erst Minuten später im Datenarchiv. Ich hab viel umprobiert und die Verbindung zwischen HOst und edomi Gast verdächtigt, aber da ich das gleiche Verhalten auch mit deinem angepassten php code, ausgeführt also cli direkt auf der Host maschine habe, hab ich im Code geforscht.

              Nochmal zur Verdeutlichung: Ich ziehe den Lesekopf ab und sehe noch 4minuten lang daten ankommen, bis nichts mehr kommt. Irgendwo baut sich da eine Queue auf.
              Irgendwann läuft die über, daher ist beim delay ein maximum von wenigen minuten.

              Du hast an mehreren Stellen usleep (1000000) oder sleep(1). Beides wartet 1sek. Dazu kommt aber die Skriptlafzeit, somit ruft der LBS nur alle 1,0...01 sekunden ein sml paket ab.

              Das könnte doch der Grund sein, oder?

              Und kann noch jemand diese Beobachtung teilen? Dass die Daten verzögert kommen?

              Ich hab jetzt mal die sleeps und retries so angepasst, dass viel öfter gepollt wird. Mal sehen was passiert.
              OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

              Kommentar


                Und endlich ist das Rätsel gelöst. Seit WOchen schlage ich mich immer wieder damit rum.
                https://knx-user-forum.de/forum/proj...schobene-kurve

                Eine modifizierte Version des LBS mit kürzeren sleeps löst das Problem.
                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                Kommentar


                  Zwei Sleeps in Fehlerpfaden mit 1 Sekunde sind OK. In der Hauptschleife ist Wartezeit von 1 Sekunde zu lang, wenn der Zähler jede Sekunde sendet. Wenn ich mich nicht täusche, sendet mein Zähler alle 2 Sekunden.

                  Kommentar


                    Zitat von toggle Beitrag anzeigen
                    Zwei Sleeps in Fehlerpfaden mit 1 Sekunde sind OK. In der Hauptschleife ist Wartezeit von 1 Sekunde zu lang, wenn der Zähler jede Sekunde sendet. Wenn ich mich nicht täusche, sendet mein Zähler alle 2 Sekunden.
                    so ist es. Eine moderne Messeinrichtung / ehZ gem. FNN Lastenheft sendet jede Sekunde +- 100ms. Siehe https://www.vde.com/resource/blob/95...01-13-data.pdf
                    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                    Kommentar


                      Ich bekomme leider immernoch keine Daten angezeigt. Es könnte jedoch jetzt auch an meinem Diagramm liegen da ich sehe, dass am Baustein die Daten ankommen. Kann mir jemand sagen wo diese Datenarchiv-Datei liegt? Ich würde mal gerne mit Filezilla schauen ob Daten in das Archiv geschrieben werden oder nicht.

                      Kommentar


                        Es gibt nicht DIE Datei. Datenarchive werden in einer MySQL-Datenbank abgelegt.

                        Im Kommandozeilen-Tool "mysql" (Linux-Konsole, z.B. über ssh) können die Daten mit entsprechenden SQL-Ausdrücken abgefragt werden.
                        Um die Liste aller Datenarchive anzuzeigen:
                        Code:
                        mysql> select * from [COLOR=#0000FF]edomiLive.archivKo[/COLOR];
                        +-----+----------+----------------------------------------------------+------+-------+---------+
                        | id  | folderid | name                                               | keep | delay | outgaid |
                        +-----+----------+----------------------------------------------------+------+-------+---------+
                        |   1 |     1050 | Masterbad Temperatur                               |    0 |     0 |       0 |
                        |   2 |       50 | Gästebad Temperatur                               |    0 |     0 |       0 |
                        ...
                        | 100 |     1059 | Stromverbrauch (kWh) (3d)                          |    3 |     0 |     531 |
                        | 101 |     1059 | Leistung (W) (3d)                                  |    3 |     0 |     532 |
                        | [COLOR=#FF0000]102[/COLOR] |     1059 | [COLOR=#FF0000]Stromverbrauch Tag (kWh) (3d)[/COLOR]                      |    3 |     0 |       0 |
                        | 103 |     1059 | Stromverbrauch WP Tag (kWh) (3d)                   |    3 |     0 |       0 |
                        
                        
                        ....
                        Aus dieser Liste bekommt man zu dem gewünschten Archivnamen die ID, die im nächsten Befehl zum Anzeigen der Daten im Archiv benötigt. Z.B. für das Datenarchiv "Stromverbrauch Tag (kWh) (3d)" ist die ID 102. Für die ID 102 bekommt man folgende Werte:
                        Code:
                        mysql> select * from [COLOR=#0000FF]edomiLive.archivKoData[/COLOR] where targetid=[COLOR=#FF0000]102[/COLOR];
                        +---------------------+--------+----------+-----------------+
                        | datetime            | ms     | targetid | gavalue         |
                        +---------------------+--------+----------+-----------------+
                        | 2019-11-16 23:59:59 | 999999 |      102 | 6.7963          |
                        | 2019-11-17 23:59:59 | 999999 |      102 | 6.1142999999993 |
                        | 2019-11-18 23:59:59 | 999999 |      102 | 5.6355999999996 |
                        +---------------------+--------+----------+-----------------+
                        3 rows in set (0.00 sec)
                        Aber Vorsicht - Fehler in MySQL-Befehlen können zu Datenverlust führen!

                        Kommentar


                          Also ich habe das mal versucht, bin mir aber leider nicht sicher ob ich es richtig ausgeführt habe.
                          Kann ich die Befehle beispielsweise in Putty direkt so eingeben?

                          Kommentar


                            Nach dem Einloggen mysql aufrufen. Dann bekommst du den Prompt mysql>, wo die eigentlichen Abfragen gemacht werden können. Strichpunkt am Ende des SQL-Befehls ist wichtig.

                            Falls Fehler gemeldet werden, wäre es sinnvoll diese zusammen mit den gemachten Eingaben zu posten, sonst können wir nur raten, was passiert ist.

                            Kommentar


                              Habs geschafft:
                              Unbenannt.JPG
                              Sieht so aus als würden Daten ankommen.

                              Dann liegt es wohl an meinem Diagramm.

                              Kommentar


                                Ich hab grad was extrem merkwürdiges.
                                Ich schreibe die Daten aus dem LBS direkt in einer Ausgangsbox in ein Datenarchiv.
                                Letztes hatten ich diese komischen "Knick", der so nie aufgetreten sein kann, da sich der Zähler ja nicht rückwärts bewegen kann...
                                2019-12-29 21_03_32-EDOMI · Visualisierung.png

                                Für ca 2h kommen die Daten einfach mit einem negativen Offset an. Verschwindet einfach wieder. Unerklärlich. Vielleicht ein Fehler beim parsen der nur bei ganz speziellen Konstellationen auftritt?
                                Angehängte Dateien
                                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                                Kommentar

                                Lädt...
                                X