Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Tasmota Script, Serielle Daten einlese und Verarbeiten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Tasmota Script, Serielle Daten einlese und Verarbeiten

    This topic has been deleted. Only users with topic management privileges can see it.
    • rudikx
      rudikx last edited by

      Hi zusammen,

      hat jemand Erfahrung mit Tasmota, Script, serielle daten auswerten?
      Habe mir schon einiges durchgelesen und komme nicht weiter.

      Ich verfolge das Ziel ein BMS System (Batterymanagement) per Serieller Schnittstelle über Tasmota auszulesen.
      Mit den Command befehlen klappt das auch super (sende Hex 0A 18 02) und ich bekomme die Antwort in der Konsole angezeigt.
      Konsole.png

      Die Daten die ich bekomme sind 3 Byte in hex, wobei mich nur das 2te. interessiert.
      Also die "35" dies muss ich in Dec. umwandeln um mein SOC der Batterie zu bekommen 🙂

      Da ich das ganze gern schon auf dem ESP erledigen würde, dachte ich da an die Tasmota Script Funktion.
      habe mir die Doku reingelesen und auch erste erfolge gehabt.

      ich konnte mittels script den Befehl zum anfragen des SOC senden und habe auch den Buffer auslesen können... (jedenfalls irgendwas daraus 😂 )

      Ich komme mit der Verarbeitung der Daten nicht weiter.

      Hat jemand einen Tipp für mich?

      mein Script sieht aktuell wie folgt Aus:

      >D
      res=0
      rnum=0
      
      >B
      so(3 1 9600 8N1 1024)
      
      >S
      ;print Running
      
      
      ; logisch verpakt Alle 10 sekunden ausführen:
      if upsecs%10==0 {
          => Serialsend5 0A1802
      }
      
      res=sa()
      print %res% bytes in buffer
      
      if res>2 {
       ; read result
       print einlesen
       rnum=srb()
      
      ;byte 1 & 3 wegschneiden
      rnum=(rnum 1 sl(rnum)-1)
      print rnum=%rnum%
      
      
      >W
      BytesInBuffer {m} %res% 
      Content {m} %rnum%```
      
      

      Und hier mal ein Bick wie die Daten mit direkter HTERM Kommunikation aussieht:
      Hterm.png

      Vielleicht habe ich ja Glück und jemand hat damit schon Erfahrung und kann mir helfen.
      Sonnst muss ich das über Blockly machen😬

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      968
      Online

      31.7k
      Users

      79.7k
      Topics

      1.3m
      Posts

      1
      1
      266
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo