Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Microcontroller
    5. Hilfe:Daten von Serieller Schnittstelle+Tasmota zu ioBroker

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Hilfe:Daten von Serieller Schnittstelle+Tasmota zu ioBroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • Ralla66
      Ralla66 Most Active @fritzke316 last edited by Ralla66

      @fritzke316

      sollte wie im Beitrag vorher mit Tasmota Scripting gehen.
      Andere Möglichkeit wäre mit NodeRed den Datenpunkt von
      hex to string zu konvertieren.

      per Mqtt Adapter bekommst du die hex Daten nach IoBroker.

      hextostring.png

      NodeRed müsste so sein :

      hextoascii.jpg

      msg.payload = Buffer.from(msg.payload, 'hex').toString();
      return msg;
      

      hex in string

      hex.jpg

      F 1 Reply Last reply Reply Quote 0
      • F
        fritzke316 @Ralla66 last edited by

        @ralla66 Super vielen Dank für die ganzen Infos, ich denke ich werde es dann mal mit Tasmota Scripting versuchen.

        Ralla66 1 Reply Last reply Reply Quote 0
        • Ralla66
          Ralla66 Most Active @fritzke316 last edited by Ralla66

          @fritzke316

          dann poste deine Scripte hier, eventuell kann ich dann helfen.
          Stell mal Heiztüre noch ein SerialReceived":"0211...........................

          02 11 4D 41 ist Temp Max
          02 11 41 42 ist Abbrand zu

          Byte 1 - 2 Sync
          Byte 3 - 27 Text
          Byte 28 - 30 auf / zu
          Byte 52 - 54 Wert 18
          Byte 62 - 64 Wert
          Byte 65 ist %
          Byte 66 - 67 EOF

          F 1 Reply Last reply Reply Quote 0
          • F
            fritzke316 @Ralla66 last edited by

            @ralla66 vielen Dank nochmal, ich werde auf alle Fälle hier weiter posten, da ich vom Programmieren keine Ahnung habe und mich erst mal etwas in das Tasmota Scripting einlesen muss. Wie ich gesehen habe muss ich mir erst mal eine eigene .bin mit der script Funktion compilieren. Ich muss mal schaun wann ich wieder Zeit finde, aber dann komme ich sicherlich gerne auf dein Angebot mit der Hilfe bei den Scripten zurück 😊

            Ralla66 1 Reply Last reply Reply Quote 0
            • Ralla66
              Ralla66 Most Active @fritzke316 last edited by Ralla66

              @fritzke316

              wie besprochen, teste mal das durchleiten, das script erstellt einen Datenpunkt
              im Mqtt Adapter unter Ofen / Gesamt.

              ofen send v1.jpg

              das script aktivieren und neu booten:

              >D 128
              
              res=0
              RAL=""
              
              >B
              
              so(3 1 9600 8N1 1024)
              
              >BS
              
              +>subscribe EA, cmnd/Ofen/Gesamt
              
              >S
              
              if upsecs%10==0
              then
              =>serialsend Routine läuft alle 10 sec
              print ---- SEND nach hterm ----
              
              res=sa()
              print RES ist : %0res%
              
              ;hex 20 sind 32 Byte
              ;hex 43 sind 67 Ofen Byte 
              RAL=sr(43)
              print Text ist : %RAL%
              
              +>publish Ofen/Gesamt %RAL%
              
              #
              

              Blockly Test :

              ofen send v2.jpg

              F 1 Reply Last reply Reply Quote 0
              • F
                fritzke316 @Ralla66 last edited by

                @ralla66
                Super werde ich morgen mal testen 🙂
                MIt dem script erstelle ich also den Datenpunkt im IoBroker wo dan die Daten aus der Seriellen Schnittstelle reingeschrieben werden.
                Werden die dort dann in hex oder string angezeigt?

                Ralla66 1 Reply Last reply Reply Quote 0
                • Ralla66
                  Ralla66 Most Active @fritzke316 last edited by Ralla66

                  @fritzke316

                  ja genau, kommt als String im Datenpunkt an, brauchste dann nur zerlegen.
                  Ist einfacher im Blockly den Text zu zerlegen, bleibe am Scripting dran da ich
                  dieses auch gebrauchen kann 🙂

                  Unter Generic ist alles None da ja die Schnittstelle im Script mit

                  B
                  so(3 1 9600 8N1 1024)

                  aktiviert wird

                  script verbessert :

                  >D 128
                  
                  res=0
                  RAL=""
                  
                  >B
                  
                  so(3 1 9600 8N1 1024)
                  
                  >BS
                  
                  +>subscribe EA, cmnd/Ofen/Gesamt
                  
                  >S
                  
                  if upsecs%10==0
                  then
                  =>serialsend Routine läuft alle 10 sec
                  print ---- SEND nach hterm ----
                  
                  res=sa()
                  print RES ist : %0res%
                  
                  ;hex 20 sind 32 Byte
                  ;hex 43 sind 67 Ofen Byte 
                  
                  if res>0
                  then
                  RAL=sr(43)
                  print Text ist : %RAL%
                  +>publish Ofen/Gesamt %RAL%
                  endif
                  
                  #
                  

                  Beispiel Blockly:

                  ofen send v3.jpg

                  Nachtrag, meine selbst kompilierte .bin enthält :

                  #define USE_WEBSEND_RESPONSE
                  #define USE_SCRIPT_STATUS
                  #define USE_SCRIPT_FULL_JSON_PARSER
                  #define USE_SCRIPT_JSON_EXPORT
                  #define SUPPORT_MQTT_EVENT
                  #define USE_SML_M
                  #define USE_SCRIPT_WEB_DISPLAY
                  #define USE_SCRIPT_SERIAL
                  #define USE_DISPLAY
                  #define SCRIPT_MAXSSIZE 128

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fritzke316 @Ralla66 last edited by

                    @ralla66
                    Ich habe bis jetzt immer den Sonoff Adapter verwendet, sollte es damit auch funktionieren?
                    Kann ich was anpassen, dass es auch mit dem Sonoff funktioniert?

                    Ralla66 1 Reply Last reply Reply Quote 0
                    • Ralla66
                      Ralla66 Most Active @fritzke316 last edited by

                      @fritzke316

                      ist mir nicht bekannt ob das per Sonoff Adapter geht.

                      F 1 Reply Last reply Reply Quote 0
                      • F
                        fritzke316 @Ralla66 last edited by fritzke316

                        @ralla66
                        Ich denke schon dass es auch mit dem Sonoff Adapter irgendwie funktionieren sollte, weiß aber nicht wie :))

                        Habe mal versucht die Variable %RAL% unter >J einzugeben, dann wird mir folgende Fehlermeldung angezeigt:

                        2024-01-31 14:17:06.144	warn	Cannot parse data "SENSOR": _{"Time":"2024-01-31T14:17:05""gesamt": 18� 0% DAUER DES ABBRANDS 30' 18� 0% DAUER DES ABBRANDS 30' }_ - SyntaxError: Unexpected string in JSON at position 29
                        

                        Das Script scheint zu funktionieren, vielen Dank nochmal.
                        Dann werde ich mal den MQTT Adapter Testen.

                        Ralla66 1 Reply Last reply Reply Quote 0
                        • Ralla66
                          Ralla66 Most Active @fritzke316 last edited by

                          @fritzke316

                          zeige mal das Bild vom Blockly

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fritzke316 @Ralla66 last edited by

                            @ralla66
                            Ich habe noch kein Blockly da ich erst mal versucht habe ob ich die Daten vom Script auch in den Sonoff Adapter kriege 🙂
                            Was aber nicht funktioniert hat, also werde ich erstmal den MQTT Adapter installieren müssen.

                            Aber noch eine Andere Frage ist das so richtig, dass in der Tasmota Konsole bei Text ist: der Text 2x hintereinander und etwas durcheinander aufgelistet ist sollte doch in etwa so aussehen: ABBRAND BEENDET ZULUFT ZU 18� 0%

                            in der Konsole siehts bei mir so aus

                            15:10:15.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:10:15.421 ---- SEND nach hterm ----
                            15:10:15.424 RES ist : 1023
                            15:10:15.427 Text ist :    18�        0ABBRAND BEENDET    ZULUFT ZU                      18�        0ABBRAND BEENDET    ZULUFT ZU            
                            15:10:15.436 MQT: Ofen/Gesamt =    18�        0ABBRAND BEENDET    ZULUFT ZU                      18�        0ABBRAND BEENDET    ZULUFT ZU            
                            15:10:25.411 SCR: performs "serialsend Routine läuft alle 10 sec"
                            15:10:25.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:10:25.421 ---- SEND nach hterm ----
                            15:10:25.423 RES ist : 1029
                            15:10:25.427 Text ist :          18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN   
                            15:10:25.433 MQT: Ofen/Gesamt =          18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN   
                            15:10:35.412 SCR: performs "serialsend Routine läuft alle 10 sec"
                            15:10:35.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:10:35.421 ---- SEND nach hterm ----
                            15:10:35.424 RES ist : 1038
                            15:10:35.427 Text ist :                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN O
                            15:10:35.434 MQT: Ofen/Gesamt =                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN O
                            15:10:45.412 SCR: performs "serialsend Routine läuft alle 10 sec"
                            15:10:45.419 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:10:45.422 ---- SEND nach hterm ----
                            15:10:45.424 RES ist : 1028
                            15:10:45.428 Text ist :         18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     30'   
                            15:10:45.436 MQT: Ofen/Gesamt =         18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     30'   
                            15:10:55.411 SCR: performs "serialsend Routine läuft alle 10 sec"
                            15:10:55.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:10:55.421 ---- SEND nach hterm ----
                            15:10:55.424 RES ist : 1034
                            15:10:55.427 Text ist :               18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN 
                            15:10:55.432 MQT: Ofen/Gesamt =               18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN 
                            15:11:05.412 SCR: performs "serialsend Routine läuft alle 10 sec"
                            15:11:05.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                            15:11:05.421 ---- SEND nach hterm ----
                            15:11:05.424 RES ist : 1027
                            15:11:05.427 Text ist :        18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN        
                            15:11:05.434 MQT: Ofen/Gesamt =        18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN    
                            
                            Ralla66 1 Reply Last reply Reply Quote 0
                            • Ralla66
                              Ralla66 Most Active @fritzke316 last edited by Ralla66

                              @fritzke316

                              nein ist nicht richtig, RES ist die Anzahl der Empfangenen Bytes bei dir um 1038.
                              Sollte aber max RAL=sr(43) also 67 Byte lang sein.
                              Copy Fehler im script ?
                              Das wird wohl daran liegen das die Daten bei dir hintereinander ankommen.
                              Kann ich ja bei mir nicht testen mit hterm.
                              Mache mir mal Gedanken dazu.

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fritzke316 @Ralla66 last edited by fritzke316

                                @ralla66
                                Also soweit ich sehen kann sieht das script genau so aus wie bei dir auch RAL=sr(43) ist vorhanden.
                                Ja bei mir siehts so aus als ob die Daten alle hintereinandergereiht ankommen.

                                Ralla66 1 Reply Last reply Reply Quote 0
                                • Ralla66
                                  Ralla66 Most Active @fritzke316 last edited by

                                  @fritzke316

                                  so auf die schnelle, müßte gehen wenn die Variablen gecleant werden.

                                  +>publish Ofen/Gesamt %RAL%
                                  res=0
                                  RAL=""
                                  endif

                                  F 1 Reply Last reply Reply Quote 0
                                  • F
                                    fritzke316 @Ralla66 last edited by

                                    @ralla66

                                    Habe res=0 und RAL="" am Ende vor endif eingetragen aber leider immer noch das selbe Ergebniss:

                                    16:40:45.416 Text ist : HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�  
                                    16:40:45.423 MQT: Ofen/Gesamt = HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�        0HEIZTUERE NUR Z.FUELLEN OEFFNEN                   18�  
                                    16:40:55.412 SCR: performs "serialsend Routine läuft alle 10 sec"
                                    16:40:55.418 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                                    16:40:55.419 ---- SEND nach hterm ----
                                    16:40:55.422 RES ist : 1033
                                    16:40:55.425 Text ist :              18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     3
                                    16:40:55.430 MQT: Ofen/Gesamt =              18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     3
                                    16:41:05.412 SCR: performs "serialsend Routine läuft alle 10 sec"
                                    16:41:05.417 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                                    16:41:05.419 ---- SEND nach hterm ----
                                    16:41:05.422 RES ist : 1023
                                    16:41:05.425 Text ist :    18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     30'        
                                    16:41:05.432 MQT: Ofen/Gesamt =    18�        0DAUER DES       ABBRANDS     30'                  18�        0DAUER DES       ABBRANDS     30'        
                                    16:41:15.411 SCR: performs "serialsend Routine läuft alle 10 sec"
                                    16:41:15.417 MQT: stat/tasmota_10A5EF/RESULT = {"SerialSend":"Done"}
                                    16:41:15.419 ---- SEND nach hterm ----
                                    16:41:15.422 RES ist : 1029
                                    16:41:15.426 Text ist :          18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN      
                                    16:41:15.431 MQT: Ofen/Gesamt =          18�        0  NACHLEGEZEIT      BEACHTEN                      18�        0  NACHLEGEZEIT      BEACHTEN 
                                    
                                    Ralla66 1 Reply Last reply Reply Quote 0
                                    • Ralla66
                                      Ralla66 Most Active @fritzke316 last edited by Ralla66

                                      @fritzke316

                                      das muß ich erst in hterm nachbilden und testen.
                                      Getrennt werden muß ja zwischen 0 und Text dann 67 Byte lang.
                                      Also ab 0211 bei SerialReceived

                                      F 1 Reply Last reply Reply Quote 0
                                      • F
                                        fritzke316 @Ralla66 last edited by

                                        @ralla66
                                        Ich kenne mich da zu wenig aus, aber wenn du was rausfindest bin ich sehr dankbar. Aber kein Stress eilt nicht 🙂

                                        Ralla66 1 Reply Last reply Reply Quote 0
                                        • Ralla66
                                          Ralla66 Most Active @fritzke316 last edited by Ralla66

                                          @fritzke316

                                          das wird schon, bin auch nur Hobbybastler, weiß aber wen ich Fragen kann.
                                          Dauert einen Moment, bekommen wir aber hin.
                                          Ist ja nur noch -> if res>0 und 02 11 erscheint then ..... 🙂
                                          Vielleicht hat ja ein Forumsuser hier noch Ideen.

                                          F 1 Reply Last reply Reply Quote 0
                                          • F
                                            fritzke316 @Ralla66 last edited by

                                            @ralla66
                                            hast du vielleicht in der Zwischenzeit noch was rausgefunden wie ich die Daten irgendwie sinvoll auslesen kann?
                                            Ich habe etwas rumprobiert aber nicht hat funktioniert 😞

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            757
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            23
                                            1601
                                            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