Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Serielle Daten sortieren und trennen + Speichern für VIS2

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Serielle Daten sortieren und trennen + Speichern für VIS2

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by Homoran

      Hallo ihr fleißigen Bastler.

      Ich habe schon eine Weile mit Arduino zutun und besitze selber ein kleines Netzwerk wo sich Arduinos über seriell Daten austauschen das funktioniere so lang ganz gut.
      Jetzt möchte ich gerne die Daten welche seriell in einen Arduino Due gesammelt und verarbeitet werden im IObroker einbinden.

      Damit möchte ich nur erreichen, dass die werte Sortiert und weiter verarbeitbar im IObroker auftauchen um sie in VIS2 anzeigen zu lassen.

      Sende Beispiel vom Arduino:

      float WERTA =(12.3);
      int WERTB =(456);
      
      void setup() {
        Serial.begin(115200);
      }
      
      void loop() {
        delay(3000);               Test Wartezeit
        Serial.print(F("$A"));     $ = Übertragungsstart    A ist wert Zuordnung welcher wert es ist. ZB Ob Volt Oder Temperatur
        Serial.print(WERTA);	     Int oder float werte
        Serial.print("/");	     / Ist übertragungsende.
        delay(3000);		     Test Wartezeit
        Serial.print(F("$B")); 
        Serial.print(WERTB);
        Serial.print("/");
      }
      

      Der unterbau/Server ist Ubuntu und die Daten kommen über USB seriell Adapter rein.
      Ein empfangen der daten und anzeigen mit debug in Node-RED habe ich schon hinbekommen.

      12.1.2025, 12:02:33node: debug 1
      msg.payload : string[6]
      "$B456/"
      12.1.2025, 12:02:36node: debug 1
      msg.payload : string[8]
      "$A12.30/"
      

      MOD-EDIT: Code in code-tags gesetzt!

      Aber leider habe ich Keine Ahnung wie ich hier die werte Trennen und Sortieren kann oder gar wie ich sie abspeichern/Ablegen kann.

      Ich würde mich sehr über Hilfe dazu Freuen.
      Vielen lieben Dank.

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Guest last edited by

        @mr-0-durchblick sagte in Serielle Daten sortieren und trennen + Speichern für VIS2:

        mit debug in Node-RED

        sollte der Thread ursprünglich im node-red Unterforum landen?

        ? 1 Reply Last reply Reply Quote 0
        • ?
          A Former User @Homoran last edited by

          @Homoran
          Vielen dank für dein Nacharbeiten.

          Wo es genau laden sollte weis ich nicht so recht da ich mit iobroker noch keine großen schritte machen konnte.
          Und ich mir nicht sicher bin ob Node-RED das richtige ist oder ob es anderes geht.

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @Guest last edited by A Former User

            Neuen Wert anlegen.

            Objekte
            0_Userdata / 0 (Rechtsklick) Erstellen > (Anklicken) Neuer Nummern-Zustand Erstellen
            Namen eingeben ( Zb WertA)
            und auf Hinzufügen klicken.

            Dann den neu erstellen Eintrag suchen und Rechts anklicken.
            Bei Rolle von state auf value Ändern und schreiben anklicken.

            Jetzt zu Instanzen navigieren und Node-Red Öffnen (Schrauben schlüssel anklicken)

            Den Haken setzten bei "Verwende den Palettenmanager"
            Dann runter zu "OBJEKTDATEN FÜR DIALOG AKTUALISIEREN" Anklicken.
            (und immer dann, wenn man einen neuen Nummern-Zustand erstellt hat)
            jetzt unten bei speichern klicken.

            So Jetzt Nodered öffnen

            Dann Ganz Oben Rechts auf die 3 Striche Klicken.
            Dann auf Palette verwalten klicken
            jetzt auf Installation klicken.
            In die Suche Serial eingeben schon erscheint als erstes "node-red-node-serialport" Das mit einem Klick auf installieren installieren.
            Und das Fenster wieder schlissen.

            Ganz Links ziemlich in der Mitte taucht jetzt serial in auf das ins Fenster ziehen.

            Doppelt anklicken und bei Namen einen belieben Namen eintragen "zb USB Com1"
            Jetzt hier bei Serial den Com port bei Windows oder den USB-Port bei Linux auswählen.

            Gute Baudraten vorschläge sind:
            für 1 Mhz Controler 4800
            Für 4 MHz Controler (9600 ist meist der Standart) Oder 19200
            Für 8 MHz Controler 9600 / 19200 / 38400
            Für 16 MHZ Ardoinos 9600 / 19200 / 38400 / 76800
            Für Due(84 MHz) ist bei 76,800 schluss(115200 Geht OFT auch noch grade so trotz der -0,9% Fehler.
            Beim ESP8266 mit sein 160MHz ist wohl bei 230000 Baut schluss.

            Nehmt am besten 9600 Oder 19200 Baut und den Rest so lassen.

            Bei Empfang $ herein Schreiben.
            Bei Aufteilung "Anhand Zeichen" Auswählen.
            Im Feld danach kommt ein / Rein OHNE irgendwas.
            Bei Ausgabe "ASCII-Strings" Wählen und dann oben auf das rote Aktualisieren klicken und dann auf Fertig.

            Dann Müsste unter dem Feld vom Serialport ein Grüner Punkt mit dem Hinweis verbunden zu sehen sein.

            Als Nächstes die Funktion "Change" einziehen (Wird dann zu "Setzte MSG.Payload") und verbinden zum Serial Port (Strich ziehen).

            Dann auf "Setze MSG.Payload" Doppelt klicken bei Regeln den Reiter "Setze" zu "Ändere" wechseln.
            Bei Suche nach jetzt ein Startzeichen zb $ (Dollarzeichen) einsetzte OHNE irgendwas anderes.
            Und bei Ersetzte durch Freilassen. Danach unten auf Hinzufügen klicken.
            Auch hier das Setze wieder durch Ändere wechseln und anstelle von $ jetzt ein / (Groß 7) Eingeben und auf Fertig klicken.

            Wozu das ganze?
            Na ja das $ ist das Startzeichen (Übertragung begingt damit) und mit / wird übertragen, dass der wert vollständig ist (Ende erreicht.
            Sollte Eins, der beiden fehlen ist die Übertragung fehlerhaft und es kann kein Anfang / Ende zugeordnet werden.

            Als Nächstes erfolgt die Auswertung um welchen wert es genau geht
            da die Übertragungen in meinem Beispiel $A123.45/ (Wert 1) Und $B67/ (Wert 2) Sind müssen die werte auch passend zugeordnet werden und das kommt jetzt.
            Mit der Switch Funktion besagte Funktion wieder ins Fenster hereinziehen und doppelt anklicken.
            Einen Namen Vergeben "Zb WertA"
            Bei Regeln muss jetzt aber von == (Entspricht) zu "Enthält" Gewechselt werden.
            Im Nächsten Feld muss jetzt das A wieder ohne alles gesetzt werden. Damit wird ab jetzt sortiert das hier nur werte mit Axxx durch Kommen.
            Und für B halt B oder C oder andere Buchstaben einsetzten (Sonderzeichen sind ungetestet) aber Groß 26 + Klein 26 sind schon 52 Unterscheidungen (52 werte) für den Anfang sollte das reichen.
            Als Nächstes Muss der Zuordnungsbuchstabe A verschwinden das geht wieder mit der Funktion change.

            Also ein letztes Mal die Change Funktion hereinziehen und doppelt klicken.
            Den Reiter Setze wieder auf enthält, setzten und im Feld danach das A (Wird jetzt gelöscht) setzten und auf fertig klicken.
            Um den Anfangs-Erstellten zustand (wertA) jetzt auch im IObroker zu speichern muss die Funktion ioBroker Out noch hereingezogen werden.
            Hier muss man jetzt nur noch das ziel aussuchen.
            Also bei Topic auf die 3 kleinen punkte klicken.
            Dann bei 0_Userdata.0 den Anfangs-Erstellten wert "WertA" anklicken und mit select übernehmen.
            Auch hier wieder einen Namen eingeben (ist nur zur Zuordnung bei vielen werten)
            bei Type noch auf value ändern und auf Fertig klicken.

            Dann noch oben rechts auf Übername (Deploy) klicken und die werte sollten hereinkommen.

            Wie jetzt allerdings die werte in Vis 2 Als werte und nicht als NaN anzeigbar sind, muss ich noch herausfinden Aber das ist ein anderes Problem.

            Und wie immer wer Fehler findet, darf sie behalten 🙂

            Die Anleitung ist wohl eher was für totale Anfänger (Wie mich) und sollte ich auch nur einen andern damit geholfen haben, war es das Schreiben/Beschreiben und die 2 Stunden schon wert.werte Speichern.png Werte Übertragen in NODE.png Unbenannt.png

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

            Support us

            ioBroker
            Community Adapters
            Donate
            FAQ Cloud / IOT
            HowTo: Node.js-Update
            HowTo: Backup/Restore
            Downloads
            BLOG

            785
            Online

            31.9k
            Users

            80.3k
            Topics

            1.3m
            Posts

            2
            4
            114
            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