Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum + Uhrzeit umrechnen in Unix Timestamp

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

    Datum + Uhrzeit umrechnen in Unix Timestamp

    Ich hab hier einen Wechselrichter den ich per Modbus auslese.
    Dieser gibt seine Systemzeit leider in Sekunden als Unix Timestamp aus.
    Da es nur einen Master geben kann hab ich den Cloud-Dongle abgeklemmt, weil es mit der reinen Modbus-Variante stabiler läuft.
    Vorher hatte ich immer mal wieder Fehler mit/bei EVCC als ich noch Modbus-TCP nutzte, seit ich direkt auf RTU gegangen bin sind keine Fehler mehr aufgetaucht.

    Nun aber zum Problem. Ohne Internetverbindung läuft die Systemzeit leider irgendwann davon und ich würde diese gerne per KNX synchronisieren.
    Ich mach das gleiche schon mit meiner Brauchwasserwärmepumpe und da funktioniert das ganz gut, dort war es aber "leichter", da ich nur die Bits hin und her schieben musste (wegen unterschiedlicher Bit-Anzahl) um eben z.B. Stunden auf Stunden zu mappen.

    Lange Rede kurzer Sinn. Gibt es evtl. eine einfache Möglichkeit aus den beiden KO's Datum und Uhrzeit, sich die Unix Time zu berechnen?

    Ich hab schon ein bisschen gegurgelt und meistens irgendwelche Rechner gefunden, was mir nicht wirklich hilft.
    Und hab auch schon ein bisschen in Excel rumprobiert, aber ich glaub durch die Schaltjahre gibt es irgendwie keine einfache Lösung.
    Gruß Ben

    #2
    Verwendest Du das OpenKNX-Modbus-Gateway? Also eines, dass auch das OpenKNX-Logikmodul "im Bauch" hat?

    Ich bin mir zwar ziemlich sicher, dass man mit dem Logikmodul so was ausrechnen könnte, aber es bräuchte schon viele Kanäle, weil man pro Kanal nur eine Rechenoperation machen kann. Das Logikmodul ist eben nicht für komplexe Rechenoperationen gedacht.

    Eine pragmatische Lösung wäre, im Formelrechner eine UserFunction zu implementieren, das Logikmodul ist dafür vorbereitet, allerdings brauchst Du dazu die Entwicklungsumgebung und etwas C++-Kenntnisse. Der Nachteil hier ist, dass so was nicht wirklich updatefähig ist und Du jede neue Version selber compilieren müsstest.

    Natürlich könnte ich so was auch implementieren, das ist nur sehr spezifisch und ich sehe kauf Nutzen für andere. Muss ich mir nochmal durch den Kopf gehen lassen, ist ein neuer Sonderfall, den ich so noch nicht hatte. Und Du müsstest dann exakt beschreiben, was für einen Wert der Wechselrichter erwartet und bist Du sicher, dass der Wert wirklich per Modbus gesetzt werden kann und nicht nur gelesen.

    Mehr fällt mir nicht ein, vielelicht haben ja noch die anderen OpenKNX-Jungs noch Ideen...

    Gruß, Waldemar



    OpenKNX www.openknx.de

    Kommentar


      #3
      Unixtime umrechnen ist sehr komplex und die Berechnung ändert sich regelmäßig und muss erweitert werden. Da spielen Schaltjahre und Schaltsekunden noch eine rolle. Also nicht besonders statisch.
      OpenKNX www.openknx.de | OpenKNX-Wiki (Beta)

      Kommentar


        #4
        Ja, ist natürlich das OpenKNX Modbusgateway 😎.
        Da ich null C++ Kenntnisse besitze fällt die Lösung mit der UserFunction schon mal raus 😅.
        Würde auch lieber beim Standard bleiben, da es das ganze sonst unnötig aufwendig macht.

        Es handelt sich hierbei um einen Huawei WR und ich vermute die meisten lesen ihn per Modbus-TCP aus. Würde ich auch noch so machen wenn ich nicht ein paar mal Probleme damit gehabt hätte. Und damit hängt er auch über den Dongle im Internet und hat immer die richtige Zeit.
        Also ist es vermutlich schon ein ziemlicher Sonderfall bei mir 😅.

        Ja der Wert kann per Modbus gesetzt werden, war heut ein bisschen eine Fummelei bis ich die richtige Kombi von DPT und Modbusdatentyp gefunden hab. Aber es geht, setz den Wert jetzt mal Minütlich per nodeRed, was für den Moment die einfachste Lösung war.
        Falls du mal Lust hast das zu implementieren wäre ich natürlich super happy, aber wenn’s zu speziell ist, bleib ich halt bei meiner momentanen Lösung, das funktioniert ja soweit.

        Hier noch die Beschreibung aus der Huawei Modbus Anleitung. Bei Interesse kann ich mal noch die Einstellungen im Modbus-Gateway teilen (Sitz bloß grad nicht am Rechner).
        IMG_0241.jpg

        traxanos
        Das hab ich auch gemerkt als ich mal ein bisschen versucht hab damit rum zu rechnen 🤯.
        Hab mir schon fast gedacht das es keine einfache Lösung gibt, deswegen auch volles Verständnis wenn sowas nicht implementiert wird. Trotzdem vielen lieben Dank für die hilfreichen Infos ☺️.
        Gruß Ben

        Kommentar


          #5
          so esoterisch ist ein posix timestamp nun auch wieder nicht

          Wenn es mal ein OpenKNX Zeitserver-Modul gibt, wäre es durchaus auch sinnvoll neben den "normalen" DPTs einen Timestamp senden zu können...
          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

          Kommentar


            #6
            Ich seh schon, an Ideen mangelt es euch nicht 😁.
            Zeitserver-Modul hört sich interessant an.
            Da wart ich mal ab und lass mich überraschen was ihr da schönes zaubert 😁.
            Gruß Ben

            Kommentar

            Lädt...
            X