Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Eingangsmultiplexer?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.0k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Eingangsmultiplexer?

Geplant Angeheftet Gesperrt Verschoben Node-Red
29 Beiträge 3 Kommentatoren 2.4k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M MyioBroker

    @mickym Mit unseren Vorstellungen zur Erweiterung liegen wir ja gar nicht so weit auseinader :-) Da die Anzeigeparameter für diesen Fall ja wahrscheinlich recht beschränkt sind, macht es Sinn diese in einer "Matrix" gewissermaßen "Vorzubereiten" Soviel habe ich aus deinen Erklärungen schon gelernt :-)
    Den Parameter Power-Total kann man auch aus dem speziellen SmartPi Inject-Node ermitteln, die anderen Werte die offenbar noch zur Verfügung stehen sind (Netz-) Frequenz(x) und Phasenwinkel(x), allerdings eben nicht aus einem Inject-Node. Denke aber das diese Parameter für meine Anwendung im "(ersten-) Schaltschtank (Überblick)" auch nicht notwendig sind.
    Power-Total kann man natürlich auch berechnen aber das würde ich dann auch eher aus einer "Datenbank" für weitere Auswertungen benutzen, für den "(ersten-) Schaltschtank (Überblick)" aber so übernehmen, wenn er schon da ist und vorher natürlich auch prüfen wie plausiebel das ganze ist, wenn man mehrere Ergebnise hat!
    Ich denke ich komme so erst mal auf etwa 12 bis 16 "Anzeigen(Seiten)") (3 x Spannung, Strom, Power je Phase, 3 x Spannung(x), 3x Strom(x), 3x Power(x), Power Total Heizung, Power-Total Zähler und Berechnung daraus, sowie ggf., auch noch Power-BalkonSolar (exteren Quelle) und ggf. noch ein paar stastische Werte zur Info die ich zyklisch aus einen "Touchup" und "Toch down" Sensorswitch ermitteln kann.
    Ein "Drehgeber/switch" mit Taster wäre hier naheliegend (gibt auch einen Node dazu!) aber ich habe bewußt auf "kontaktlose"Touchsensoren gesetzt. Diese funktionieren auch hinter "dünnen" Plastikabdeckungen und gerade wenn es um hohe Spannungen im Schaltschrank geht möchte man ein gewisses "Sicherheitsgefühl" haben wenn man so was bedient. Natürlich setzt das auch vorraus, dass das ganze Modul "Sicher" ist aber denke schon, dass ich Schaltungstechnisch alles getan habe (z.B. Mindestabstand zwischen den Leitern, immerhin >400V!) um diese Anforderungen zu erfüllen. Beim SmartPi muss ich mich allerdings darauf verlassen das es dort auch so ist, aber nach meiner Ansicht sind auch hier die diversen Vorgaben erfüllt (Abstand zwischen den Leitern und natürlich spannungsfeste Bauelemente, das ganze in SMD macht natürlich erst mal wenig Vertrauen ;-) aber ich habe auf jeden Fall in einem ExtraModul wie empfohlen Sicherungen vorgesehen)
    Deine Lauftextanzeige hat mich natürlich neugierig gemacht! Sie funktioniert auch aber ich denke für mein Projekt bring es nichts. Spannung, Strom und Power mit mehr als drei Ziffern (Komma oder nicht) anzugeben ist eigentlich sinnfrei weil das unter 1% Messgenauigkeit läge die ich ohnmehin anzweifel, die restlichen Stellen hinter dem Komma könnte man auch würfeln ;-) und das sollte in eine Zeile mit 16 Stellen incl. Maßeinheit für drei Parameter passen. Könnte mir aber Vorstellen gewisse Statusmeldungen in meinem Smarthome damit zu posten ("Keine Internetverbindung", "eine Netz-Phase ausgefallen", "Sensor xyz meldet sich nicht seit drei Stunden" etc.) Alles Dinge die die Welt nicht verändert oder gar besser macht, aber man wissen sollte ;-) und wer schaut schon ständig auf sein Smartphone wenn man eine Anzeige im Schaltschrank hat (meiner ist nicht im Keller!) ;-)
    Wenn wir schon so schön im Dialog sind;
    1: Wie bekomme ich in NodeRed die einzelen Flow mit speziellen Punkten zusammen (also z.B. Ausgabe Ringzähler in Flow2 als Eingabe in Flow 4).
    2: Speicher ich mit Export alle Flowebenen ab oder nur die akuelle?
    Das Thema Sonoff-Adapter passt vielleicht nicht hierher bzw. gibt es schon(?) aber im Moment scheint es für mich der beste Adaper zu sein um all die "Tasmotafähigen" Sensoren relativ problemlos einzubinden und somit (denke ich) ca. 80% aller Sernsorprobleme im "Smarthome" abzudecken(?)
    Fazit: Werde erst mal "alle!" interresanten Messwerte vom SmartPi auf die einzelen Anzeigeebenen bringen (bis jetzt funktioniert dein Konzept so wie ich es mir vorstelle :-) ) Werde dann prüfen wie ich die Daten in den ioBroker bringe (NodeRed MQTT) und dann lass uns weiterdiskutieren :-)
    Es war für mich auf jeden Fall eine große Hilfe und hat ich habe viel dazu gelernt , Danke! :-)

    M Offline
    M Offline
    MyioBroker
    schrieb am zuletzt editiert von MyioBroker
    #16

    doppelt, gelöscht

    M 1 Antwort Letzte Antwort
    0
    • M MyioBroker

      doppelt, gelöscht

      M Offline
      M Offline
      MyioBroker
      schrieb am zuletzt editiert von MyioBroker
      #17

      mehrfach, gelöscht

      1 Antwort Letzte Antwort
      0
      • mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #18

        @myiobroker sagte in Eingangsmultiplexer?:
        Noch was weil ich Deine Frage sehe, dass Du verschiedene Flows verlinken willst. Das Objekt das ich im Flow Kontext gespeichert habe, lässt sich natürlich auch im globalen Kontext speichern und steht damit allen Flows zur Verfügung. Das mal nut zur Vorabinformation.

        1: Wie bekomme ich in NodeRed die einzelen Flow mit speziellen Punkten zusammen (also z.B. Ausgabe Ringzähler in Flow2 als Eingabe in Flow 4).

        Da zu gibt es entsprechende Link-In und Link-Out Nodes. ;)

        aa8887a4-eced-4b01-9921-6a8165c757d9-image.png

        Also Ausgabe Ringzähler an link-out und link-in Node in Flow 4. ;)

        2: Speicher ich mit Export alle Flowebenen ab oder nur die akuelle?

        Das liegt bei Dir - es stehen Dir alle Möglichkeiten offen. ;)

        84d2cb99-91e7-480f-8d90-9625c2d7c4b4-image.png

        Entweder alle Flows, nur den aktuellen Flow oder nur markierte Nodes. ;)

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • M MyioBroker

          @mickym Mit unseren Vorstellungen zur Erweiterung liegen wir ja gar nicht so weit auseinader :-) Da die Anzeigeparameter für diesen Fall ja wahrscheinlich recht beschränkt sind, macht es Sinn diese in einer "Matrix" gewissermaßen "Vorzubereiten" Soviel habe ich aus deinen Erklärungen schon gelernt :-)
          Den Parameter Power-Total kann man auch aus dem speziellen SmartPi Inject-Node ermitteln, die anderen Werte die offenbar noch zur Verfügung stehen sind (Netz-) Frequenz(x) und Phasenwinkel(x), allerdings eben nicht aus einem Inject-Node. Denke aber das diese Parameter für meine Anwendung im "(ersten-) Schaltschtank (Überblick)" auch nicht notwendig sind.
          Power-Total kann man natürlich auch berechnen aber das würde ich dann auch eher aus einer "Datenbank" für weitere Auswertungen benutzen, für den "(ersten-) Schaltschtank (Überblick)" aber so übernehmen, wenn er schon da ist und vorher natürlich auch prüfen wie plausiebel das ganze ist, wenn man mehrere Ergebnise hat!
          Ich denke ich komme so erst mal auf etwa 12 bis 16 "Anzeigen(Seiten)") (3 x Spannung, Strom, Power je Phase, 3 x Spannung(x), 3x Strom(x), 3x Power(x), Power Total Heizung, Power-Total Zähler und Berechnung daraus, sowie ggf., auch noch Power-BalkonSolar (exteren Quelle) und ggf. noch ein paar stastische Werte zur Info die ich zyklisch aus einen "Touchup" und "Toch down" Sensorswitch ermitteln kann.
          Ein "Drehgeber/switch" mit Taster wäre hier naheliegend (gibt auch einen Node dazu!) aber ich habe bewußt auf "kontaktlose"Touchsensoren gesetzt. Diese funktionieren auch hinter "dünnen" Plastikabdeckungen und gerade wenn es um hohe Spannungen im Schaltschrank geht möchte man ein gewisses "Sicherheitsgefühl" haben wenn man so was bedient. Natürlich setzt das auch vorraus, dass das ganze Modul "Sicher" ist aber denke schon, dass ich Schaltungstechnisch alles getan habe (z.B. Mindestabstand zwischen den Leitern, immerhin >400V!) um diese Anforderungen zu erfüllen. Beim SmartPi muss ich mich allerdings darauf verlassen das es dort auch so ist, aber nach meiner Ansicht sind auch hier die diversen Vorgaben erfüllt (Abstand zwischen den Leitern und natürlich spannungsfeste Bauelemente, das ganze in SMD macht natürlich erst mal wenig Vertrauen ;-) aber ich habe auf jeden Fall in einem ExtraModul wie empfohlen Sicherungen vorgesehen)
          Deine Lauftextanzeige hat mich natürlich neugierig gemacht! Sie funktioniert auch aber ich denke für mein Projekt bring es nichts. Spannung, Strom und Power mit mehr als drei Ziffern (Komma oder nicht) anzugeben ist eigentlich sinnfrei weil das unter 1% Messgenauigkeit läge die ich ohnmehin anzweifel, die restlichen Stellen hinter dem Komma könnte man auch würfeln ;-) und das sollte in eine Zeile mit 16 Stellen incl. Maßeinheit für drei Parameter passen. Könnte mir aber Vorstellen gewisse Statusmeldungen in meinem Smarthome damit zu posten ("Keine Internetverbindung", "eine Netz-Phase ausgefallen", "Sensor xyz meldet sich nicht seit drei Stunden" etc.) Alles Dinge die die Welt nicht verändert oder gar besser macht, aber man wissen sollte ;-) und wer schaut schon ständig auf sein Smartphone wenn man eine Anzeige im Schaltschrank hat (meiner ist nicht im Keller!) ;-)
          Wenn wir schon so schön im Dialog sind;
          1: Wie bekomme ich in NodeRed die einzelen Flow mit speziellen Punkten zusammen (also z.B. Ausgabe Ringzähler in Flow2 als Eingabe in Flow 4).
          2: Speicher ich mit Export alle Flowebenen ab oder nur die akuelle?
          Das Thema Sonoff-Adapter passt vielleicht nicht hierher bzw. gibt es schon(?) aber im Moment scheint es für mich der beste Adaper zu sein um all die "Tasmotafähigen" Sensoren relativ problemlos einzubinden und somit (denke ich) ca. 80% aller Sernsorprobleme im "Smarthome" abzudecken(?)
          Fazit: Werde erst mal "alle!" interresanten Messwerte vom SmartPi auf die einzelen Anzeigeebenen bringen (bis jetzt funktioniert dein Konzept so wie ich es mir vorstelle :-) ) Werde dann prüfen wie ich die Daten in den ioBroker bringe (NodeRed MQTT) und dann lass uns weiterdiskutieren :-)
          Es war für mich auf jeden Fall eine große Hilfe und hat ich habe viel dazu gelernt , Danke! :-)

          M Offline
          M Offline
          MyioBroker
          schrieb am zuletzt editiert von MyioBroker
          #19

          doppelt, gelöscht

          mickymM 1 Antwort Letzte Antwort
          0
          • M MyioBroker

            doppelt, gelöscht

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #20

            @myiobroker ???

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            M 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @myiobroker ???

              M Offline
              M Offline
              MyioBroker
              schrieb am zuletzt editiert von MyioBroker
              #21

              @mickym Hallo, die letzten Aktionen mit meinen mehrfachen Antworten habe ich nicht ganz verstanden? :-( sind aber gelöscht
              Habe mich mit den unterschiedlichen Variablen und deren Gültigkeit beschäftigt aber bei einer "Einfachen(?)" if Abfrage scheitert es wieder :-( Der Ringzähler ist recht kompliziert geworden, also besser einfach, eine Taste erhöht den Wert von flow.switch und die andere bewirkt ein decremet. Soweit so gut aber if (x >5 ) {....} z.B. wird schon als Fehler deklariert. Das ganze soll sich ja in einem definierten Bereich abspielen. Kann mir nicht vorstellen, das es diese Abfrage so kompliziert ist? Syntax- oder Denkfehler? Inzwischen geht es aber auch ohne Funktion-Node :-)

              M mickymM 2 Antworten Letzte Antwort
              0
              • M MyioBroker

                @mickym Hallo, die letzten Aktionen mit meinen mehrfachen Antworten habe ich nicht ganz verstanden? :-( sind aber gelöscht
                Habe mich mit den unterschiedlichen Variablen und deren Gültigkeit beschäftigt aber bei einer "Einfachen(?)" if Abfrage scheitert es wieder :-( Der Ringzähler ist recht kompliziert geworden, also besser einfach, eine Taste erhöht den Wert von flow.switch und die andere bewirkt ein decremet. Soweit so gut aber if (x >5 ) {....} z.B. wird schon als Fehler deklariert. Das ganze soll sich ja in einem definierten Bereich abspielen. Kann mir nicht vorstellen, das es diese Abfrage so kompliziert ist? Syntax- oder Denkfehler? Inzwischen geht es aber auch ohne Funktion-Node :-)

                M Offline
                M Offline
                MyioBroker
                schrieb am zuletzt editiert von
                #22

                @myiobroker Das mit den "link-Nodes" funktioniert auch, aber in Bezug auf die Anzeige gibt es da immer irgendwelche "(Laufzeit-?) Effekte" so das ich das ganze schon auf einen Flow begrenzen möchte. Auch mit diversen delay Anweisungen spinnt die Anzeige hin und wieder-

                1 Antwort Letzte Antwort
                0
                • M MyioBroker

                  @mickym Hallo, die letzten Aktionen mit meinen mehrfachen Antworten habe ich nicht ganz verstanden? :-( sind aber gelöscht
                  Habe mich mit den unterschiedlichen Variablen und deren Gültigkeit beschäftigt aber bei einer "Einfachen(?)" if Abfrage scheitert es wieder :-( Der Ringzähler ist recht kompliziert geworden, also besser einfach, eine Taste erhöht den Wert von flow.switch und die andere bewirkt ein decremet. Soweit so gut aber if (x >5 ) {....} z.B. wird schon als Fehler deklariert. Das ganze soll sich ja in einem definierten Bereich abspielen. Kann mir nicht vorstellen, das es diese Abfrage so kompliziert ist? Syntax- oder Denkfehler? Inzwischen geht es aber auch ohne Funktion-Node :-)

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von
                  #23

                  @myiobroker sagte in Eingangsmultiplexer?:

                  Habe mich mit den unterschiedlichen Variablen und deren Gültigkeit beschäftigt aber bei einer "Einfachen(?)" if Abfrage scheitert es wieder Der Ringzähler ist recht kompliziert geworden, also besser einfach, eine Taste erhöht den Wert von flow.switch und die andere bewirkt ein decremet. Soweit so gut aber if (x >5 ) {....} z.B. wird schon als Fehler deklariert. Das ganze soll sich ja in einem definierten Bereich abspielen. Kann mir nicht vorstellen, das es diese Abfrage so kompliziert ist? Syntax- oder Denkfehler? Inzwischen geht es aber auch ohne Funktion-Node

                  Das sehe ich nicht was Du machst - bitte Screenshot oder Flow - keine Ahnung - ansonsten If Abfragen - wenn Du nicht programmieren willst - dafür gibts switch Nodes.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  M 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @myiobroker sagte in Eingangsmultiplexer?:

                    Habe mich mit den unterschiedlichen Variablen und deren Gültigkeit beschäftigt aber bei einer "Einfachen(?)" if Abfrage scheitert es wieder Der Ringzähler ist recht kompliziert geworden, also besser einfach, eine Taste erhöht den Wert von flow.switch und die andere bewirkt ein decremet. Soweit so gut aber if (x >5 ) {....} z.B. wird schon als Fehler deklariert. Das ganze soll sich ja in einem definierten Bereich abspielen. Kann mir nicht vorstellen, das es diese Abfrage so kompliziert ist? Syntax- oder Denkfehler? Inzwischen geht es aber auch ohne Funktion-Node

                    Das sehe ich nicht was Du machst - bitte Screenshot oder Flow - keine Ahnung - ansonsten If Abfragen - wenn Du nicht programmieren willst - dafür gibts switch Nodes.

                    M Offline
                    M Offline
                    MyioBroker
                    schrieb am zuletzt editiert von
                    #24

                    @mickym Hallo :-) konnte mich mit meinem Projekt nicht wirklich weiter beschäftigen, aber es sieht schon ganz gut aus. Nun scheiter ich an einem wahrscheinlich (?) trivialen Problem. Ich möchte in einem Change Node alle Payloadwerte der "Entertaste" >0 auf 0 setzen. Die negativen Werte (es sind bis jetzt nur Zwei) aber entsprechend ändern (z.B -1 auf -3 und -2 auf -4, das sind bei mir die "Steuerdialoge" für Reset und ShutDown). Klappt prima mit dem Change-Dialog im Change-Node und bei zwei bis drei "Werten" wohl auch so "sauber" machbar ;-)
                    Die positiven Werte stehen für jeweils eine "Seite" in einer 2 x 16 Matrix mit diversen Informationen (Spannung, Strom, Leistung etc.) Hier will ich mit der "Entertaste" erstmal einfach nur auf die Seite "0" zurückspringen. Da bietet sich offenbar die RegEx Funktion im Change-Dialog des ChangeNode an aber es funktioniert einfach nicht (z.B. /^([1-9][0-9]*)$/) oder
                    oder es gibt eine Fehlermeldung mit "$if(payload > 0, 0, payload)" im Set-Mode und jsonata"-Modus.
                    Für >10 positive Payloadwerte wäre es doch nicht Sinnvoll für jede Zahl die gleiche Abfrage mit "Set" zu machen :-(
                    Ist es nur eine Syntaxfrage oder liege ich hier mal wieder in einer "Denkschleife"?
                    Die Codevorschläge habe ich übrigens aus Chat GPT, da sieht es meistens sehr plausibel aus :thinking_face:

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • M MyioBroker

                      @mickym Hallo :-) konnte mich mit meinem Projekt nicht wirklich weiter beschäftigen, aber es sieht schon ganz gut aus. Nun scheiter ich an einem wahrscheinlich (?) trivialen Problem. Ich möchte in einem Change Node alle Payloadwerte der "Entertaste" >0 auf 0 setzen. Die negativen Werte (es sind bis jetzt nur Zwei) aber entsprechend ändern (z.B -1 auf -3 und -2 auf -4, das sind bei mir die "Steuerdialoge" für Reset und ShutDown). Klappt prima mit dem Change-Dialog im Change-Node und bei zwei bis drei "Werten" wohl auch so "sauber" machbar ;-)
                      Die positiven Werte stehen für jeweils eine "Seite" in einer 2 x 16 Matrix mit diversen Informationen (Spannung, Strom, Leistung etc.) Hier will ich mit der "Entertaste" erstmal einfach nur auf die Seite "0" zurückspringen. Da bietet sich offenbar die RegEx Funktion im Change-Dialog des ChangeNode an aber es funktioniert einfach nicht (z.B. /^([1-9][0-9]*)$/) oder
                      oder es gibt eine Fehlermeldung mit "$if(payload > 0, 0, payload)" im Set-Mode und jsonata"-Modus.
                      Für >10 positive Payloadwerte wäre es doch nicht Sinnvoll für jede Zahl die gleiche Abfrage mit "Set" zu machen :-(
                      Ist es nur eine Syntaxfrage oder liege ich hier mal wieder in einer "Denkschleife"?
                      Die Codevorschläge habe ich übrigens aus Chat GPT, da sieht es meistens sehr plausibel aus :thinking_face:

                      mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #25

                      @myiobroker In der Regel machst Du das nicht mit einer Change Node alleine, sondern mit einer Switch Node und mehreren Change Nodes. Das entlastet Dich auf jeden Fall und reduziert die Komplexität in den Change Nodes - da bereits Nachrichten im Vorfeld aussortiert wurden. Sprich Du setzt die payload aller Nachrichten deren payload >= 0 ist auf 0 und bei negativen payload verringerst Du diese um -2. ;)

                      1. Empfohlenes Vorgehen:

                      e00db72d-b0c9-4fa3-8a78-c067859e47c5-image.png

                      Durch das Setzen nach der ersten Regelübereinstimmung stoppen kann man das noch feiner granulieren und spezifische Fälle weiter vorne abarbeiten. So kannst Du in der Switch Node bei einer positiven Zahl eine andere Vorgehensweise wählen und trotzdem falls es eine andere positive Zahl ist noch auf 0 setzen.

                      Anhand des Screenshots siehst Du nun - dass alle positiven Werten an den Ausgang 1 gesendet werden, alle negativen Werte an den Ausgang 2. Nun können wir also mit 2 Change Nodes einfach die payload auf 0 bzw. auf payload - 2 setzen.

                      Ob Du das Ergebnis dann wieder zusammenfasst, wie in meinem Beispielflow - das ist eine andere Geschichte,

                      a19dc814-224e-406a-a7f3-c63b837f56c1-image.png

                      Ein weiterer Vorteil der Switch Node für Bedinungen sind auch dass man für Zahlen Bereiche definieren kann:

                      2382c89d-f419-4cc8-bf85-b0ba99fe596e-image.png

                      Also hier .- schicke alle Nachrichten zwischen 0 und 5 an den Ausgang 1 usw.

                      1. RegEx - mit Change Node

                      Das ist schon vom Ansatz aus 2 Gründen falsch:

                      • RegEx funktioniert nur, wenn man das Ganze als Strings behandelt, man müsste also erst in Strings, dann wieder in Zahlen umwandeln.
                      • Ein RegEx matched oder matched nicht und dann kannst Du nur ein fixen Wert setzen, du willst aber bei negativen Werten 2 abziehen.

                      Wenn Du aber mit RegEx arbeiten willst (also in String umwandelst), weil Du dann zum Beispiel bestimmte Steuercodes anders behandelt willst, dann kannst Du das wieder in Kombination mit einer Switch Node machen. Der Vorteil hier ist, dass man die payload nur zur Analyse in einen String umwandelt.

                      b1204685-e11a-477a-8167-4610b69b4157-image.png

                      1. JSONATA funktioniert - weiß aber nicht woher Du diese Syntax hast - hier musst Du aber aufpassen, dass Du nicht wieder ins codieren kommst und bei mehrfachen Bedingungen wird das sehr unübersichtlich. Eine $if Funktion kenne ich in JSONATA nicht. Die einzige Möglichkeite Bedingungen zu formulieren ist den Bedingungsoperator ? zu nutzen.

                      b7c2f883-022d-40ab-bb1f-98a50893969c-image.png

                      Also:

                      payload >= 0 ? 0 : payload - 2
                      

                      4e21c37b-99ee-42b1-9959-0d761adc7c6c-image.png

                      Hier mal alle Beispiele zum Probieren:

                      [
                         {
                             "id": "1d32bc03fdc515dc",
                             "type": "switch",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "property": "payload",
                             "propertyType": "msg",
                             "rules": [
                                 {
                                     "t": "gte",
                                     "v": "0",
                                     "vt": "num"
                                 },
                                 {
                                     "t": "lt",
                                     "v": "0",
                                     "vt": "num"
                                 }
                             ],
                             "checkall": "false",
                             "repair": false,
                             "outputs": 2,
                             "x": 390,
                             "y": 2600,
                             "wires": [
                                 [
                                     "e85b8517c1cbf042"
                                 ],
                                 [
                                     "c6a1e0b43e566934"
                                 ]
                             ]
                         },
                         {
                             "id": "e85b8517c1cbf042",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "setze 0",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "0",
                                     "tot": "num"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 580,
                             "y": 2580,
                             "wires": [
                                 [
                                     "d764781a1ee41e39"
                                 ]
                             ]
                         },
                         {
                             "id": "c6a1e0b43e566934",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "verringere um 2",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "payload - 2",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 580,
                             "y": 2620,
                             "wires": [
                                 [
                                     "d764781a1ee41e39"
                                 ]
                             ]
                         },
                         {
                             "id": "d764781a1ee41e39",
                             "type": "debug",
                             "z": "7e6af0015415146d",
                             "name": "Ergebnis",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 780,
                             "y": 2600,
                             "wires": []
                         },
                         {
                             "id": "0649d4923f8fba46",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "3",
                             "payloadType": "num",
                             "x": 210,
                             "y": 2560,
                             "wires": [
                                 [
                                     "1d32bc03fdc515dc"
                                 ]
                             ]
                         },
                         {
                             "id": "2366a9adf3e62193",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "-1",
                             "payloadType": "num",
                             "x": 210,
                             "y": 2620,
                             "wires": [
                                 [
                                     "1d32bc03fdc515dc"
                                 ]
                             ]
                         },
                         {
                             "id": "2a509c433806b76b",
                             "type": "debug",
                             "z": "7e6af0015415146d",
                             "name": "Ergebnis JSONATA",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 710,
                             "y": 3020,
                             "wires": []
                         },
                         {
                             "id": "2e584db564fb7252",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "3",
                             "payloadType": "num",
                             "x": 210,
                             "y": 3000,
                             "wires": [
                                 [
                                     "f09adfda10e76f11"
                                 ]
                             ]
                         },
                         {
                             "id": "92cdf991baaf6d7b",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "-1",
                             "payloadType": "num",
                             "x": 210,
                             "y": 3060,
                             "wires": [
                                 [
                                     "f09adfda10e76f11"
                                 ]
                             ]
                         },
                         {
                             "id": "9aa12ab2cd5ee494",
                             "type": "comment",
                             "z": "7e6af0015415146d",
                             "name": "Normale Vorgehensweise",
                             "info": "",
                             "x": 210,
                             "y": 2480,
                             "wires": []
                         },
                         {
                             "id": "f09adfda10e76f11",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "Change Node mit JSONATA",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "payload >= 0 ? 0 : payload - 2",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 460,
                             "y": 3020,
                             "wires": [
                                 [
                                     "2a509c433806b76b"
                                 ]
                             ]
                         },
                         {
                             "id": "8fdd6e49709fa68c",
                             "type": "comment",
                             "z": "7e6af0015415146d",
                             "name": "JSONATA",
                             "info": "",
                             "x": 180,
                             "y": 2940,
                             "wires": []
                         },
                         {
                             "id": "235b4dbf57c0ac2e",
                             "type": "comment",
                             "z": "7e6af0015415146d",
                             "name": "RegEx",
                             "info": "",
                             "x": 170,
                             "y": 2720,
                             "wires": []
                         },
                         {
                             "id": "b055685e0374d29b",
                             "type": "switch",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "property": "$string(payload)",
                             "propertyType": "jsonata",
                             "rules": [
                                 {
                                     "t": "regex",
                                     "v": "^\\d+$",
                                     "vt": "str",
                                     "case": false
                                 },
                                 {
                                     "t": "regex",
                                     "v": "^-\\d+$",
                                     "vt": "str",
                                     "case": false
                                 }
                             ],
                             "checkall": "false",
                             "repair": false,
                             "outputs": 2,
                             "x": 370,
                             "y": 2820,
                             "wires": [
                                 [
                                     "a8dbb487697dff7a"
                                 ],
                                 [
                                     "958483cb434427fa"
                                 ]
                             ]
                         },
                         {
                             "id": "a8dbb487697dff7a",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "setze 0",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "0",
                                     "tot": "num"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 560,
                             "y": 2800,
                             "wires": [
                                 [
                                     "043f4b6a0b3a5766"
                                 ]
                             ]
                         },
                         {
                             "id": "958483cb434427fa",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "verringere um 2",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "payload - 2",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 560,
                             "y": 2840,
                             "wires": [
                                 [
                                     "043f4b6a0b3a5766"
                                 ]
                             ]
                         },
                         {
                             "id": "043f4b6a0b3a5766",
                             "type": "debug",
                             "z": "7e6af0015415146d",
                             "name": "Ergebnis mit RegEx",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 800,
                             "y": 2820,
                             "wires": []
                         },
                         {
                             "id": "731e10c3a246ea84",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "3",
                             "payloadType": "num",
                             "x": 190,
                             "y": 2780,
                             "wires": [
                                 [
                                     "b055685e0374d29b"
                                 ]
                             ]
                         },
                         {
                             "id": "06edab9528cf2379",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "-1",
                             "payloadType": "num",
                             "x": 190,
                             "y": 2840,
                             "wires": [
                                 [
                                     "b055685e0374d29b"
                                 ]
                             ]
                         }
                      ]
                      

                      Ein letzte Möglichkeit mit JSONATA und fixen Werten kann man mit Übersetzungsobjekten erreichen.

                      0d344e57-9335-442d-b001-c0816a28c6d4-image.png

                      In diesem Fall definiere ich also jede Zahl als Schlüssel eines Objektes (ich hab es hier mal translate genannt)- 1.Regel. Die payload wird nun über einen Konvertierung zum String und durchsucht das Objekt nachdem entsprechenden Key. -2.Regel
                      Die 3.Regel kann man verwenden, um einen Defaultwert zu setzen, wenn ein Wert nicht in der Tabelle enthalten ist.

                      [
                         {
                             "id": "d72c33c5f9a3ae48",
                             "type": "change",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "translate",
                                     "pt": "msg",
                                     "to": "{\"3\":0,\"-1\":-3,\"-2\":-4}",
                                     "tot": "json"
                                 },
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$lookup(translate, $string(payload))\t",
                                     "tot": "jsonata"
                                 },
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$not($exists(payload))? 0 : payload\t",
                                     "tot": "jsonata"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 390,
                             "y": 3200,
                             "wires": [
                                 [
                                     "078c75417a994742"
                                 ]
                             ]
                         },
                         {
                             "id": "a78a7970d2b7e564",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "3",
                             "payloadType": "num",
                             "x": 190,
                             "y": 3160,
                             "wires": [
                                 [
                                     "d72c33c5f9a3ae48"
                                 ]
                             ]
                         },
                         {
                             "id": "253464a6e7f4d63c",
                             "type": "inject",
                             "z": "7e6af0015415146d",
                             "name": "",
                             "props": [
                                 {
                                     "p": "payload"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "payload": "-1",
                             "payloadType": "num",
                             "x": 190,
                             "y": 3220,
                             "wires": [
                                 [
                                     "d72c33c5f9a3ae48"
                                 ]
                             ]
                         },
                         {
                             "id": "078c75417a994742",
                             "type": "debug",
                             "z": "7e6af0015415146d",
                             "name": "Übersetzungstabelle",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 620,
                             "y": 3200,
                             "wires": []
                         }
                      ]
                      

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      M 2 Antworten Letzte Antwort
                      0
                      • mickymM mickym

                        @myiobroker In der Regel machst Du das nicht mit einer Change Node alleine, sondern mit einer Switch Node und mehreren Change Nodes. Das entlastet Dich auf jeden Fall und reduziert die Komplexität in den Change Nodes - da bereits Nachrichten im Vorfeld aussortiert wurden. Sprich Du setzt die payload aller Nachrichten deren payload >= 0 ist auf 0 und bei negativen payload verringerst Du diese um -2. ;)

                        1. Empfohlenes Vorgehen:

                        e00db72d-b0c9-4fa3-8a78-c067859e47c5-image.png

                        Durch das Setzen nach der ersten Regelübereinstimmung stoppen kann man das noch feiner granulieren und spezifische Fälle weiter vorne abarbeiten. So kannst Du in der Switch Node bei einer positiven Zahl eine andere Vorgehensweise wählen und trotzdem falls es eine andere positive Zahl ist noch auf 0 setzen.

                        Anhand des Screenshots siehst Du nun - dass alle positiven Werten an den Ausgang 1 gesendet werden, alle negativen Werte an den Ausgang 2. Nun können wir also mit 2 Change Nodes einfach die payload auf 0 bzw. auf payload - 2 setzen.

                        Ob Du das Ergebnis dann wieder zusammenfasst, wie in meinem Beispielflow - das ist eine andere Geschichte,

                        a19dc814-224e-406a-a7f3-c63b837f56c1-image.png

                        Ein weiterer Vorteil der Switch Node für Bedinungen sind auch dass man für Zahlen Bereiche definieren kann:

                        2382c89d-f419-4cc8-bf85-b0ba99fe596e-image.png

                        Also hier .- schicke alle Nachrichten zwischen 0 und 5 an den Ausgang 1 usw.

                        1. RegEx - mit Change Node

                        Das ist schon vom Ansatz aus 2 Gründen falsch:

                        • RegEx funktioniert nur, wenn man das Ganze als Strings behandelt, man müsste also erst in Strings, dann wieder in Zahlen umwandeln.
                        • Ein RegEx matched oder matched nicht und dann kannst Du nur ein fixen Wert setzen, du willst aber bei negativen Werten 2 abziehen.

                        Wenn Du aber mit RegEx arbeiten willst (also in String umwandelst), weil Du dann zum Beispiel bestimmte Steuercodes anders behandelt willst, dann kannst Du das wieder in Kombination mit einer Switch Node machen. Der Vorteil hier ist, dass man die payload nur zur Analyse in einen String umwandelt.

                        b1204685-e11a-477a-8167-4610b69b4157-image.png

                        1. JSONATA funktioniert - weiß aber nicht woher Du diese Syntax hast - hier musst Du aber aufpassen, dass Du nicht wieder ins codieren kommst und bei mehrfachen Bedingungen wird das sehr unübersichtlich. Eine $if Funktion kenne ich in JSONATA nicht. Die einzige Möglichkeite Bedingungen zu formulieren ist den Bedingungsoperator ? zu nutzen.

                        b7c2f883-022d-40ab-bb1f-98a50893969c-image.png

                        Also:

                        payload >= 0 ? 0 : payload - 2
                        

                        4e21c37b-99ee-42b1-9959-0d761adc7c6c-image.png

                        Hier mal alle Beispiele zum Probieren:

                        [
                           {
                               "id": "1d32bc03fdc515dc",
                               "type": "switch",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "property": "payload",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "gte",
                                       "v": "0",
                                       "vt": "num"
                                   },
                                   {
                                       "t": "lt",
                                       "v": "0",
                                       "vt": "num"
                                   }
                               ],
                               "checkall": "false",
                               "repair": false,
                               "outputs": 2,
                               "x": 390,
                               "y": 2600,
                               "wires": [
                                   [
                                       "e85b8517c1cbf042"
                                   ],
                                   [
                                       "c6a1e0b43e566934"
                                   ]
                               ]
                           },
                           {
                               "id": "e85b8517c1cbf042",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "setze 0",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "0",
                                       "tot": "num"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 580,
                               "y": 2580,
                               "wires": [
                                   [
                                       "d764781a1ee41e39"
                                   ]
                               ]
                           },
                           {
                               "id": "c6a1e0b43e566934",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "verringere um 2",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload - 2",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 580,
                               "y": 2620,
                               "wires": [
                                   [
                                       "d764781a1ee41e39"
                                   ]
                               ]
                           },
                           {
                               "id": "d764781a1ee41e39",
                               "type": "debug",
                               "z": "7e6af0015415146d",
                               "name": "Ergebnis",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 780,
                               "y": 2600,
                               "wires": []
                           },
                           {
                               "id": "0649d4923f8fba46",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "3",
                               "payloadType": "num",
                               "x": 210,
                               "y": 2560,
                               "wires": [
                                   [
                                       "1d32bc03fdc515dc"
                                   ]
                               ]
                           },
                           {
                               "id": "2366a9adf3e62193",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "-1",
                               "payloadType": "num",
                               "x": 210,
                               "y": 2620,
                               "wires": [
                                   [
                                       "1d32bc03fdc515dc"
                                   ]
                               ]
                           },
                           {
                               "id": "2a509c433806b76b",
                               "type": "debug",
                               "z": "7e6af0015415146d",
                               "name": "Ergebnis JSONATA",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 710,
                               "y": 3020,
                               "wires": []
                           },
                           {
                               "id": "2e584db564fb7252",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "3",
                               "payloadType": "num",
                               "x": 210,
                               "y": 3000,
                               "wires": [
                                   [
                                       "f09adfda10e76f11"
                                   ]
                               ]
                           },
                           {
                               "id": "92cdf991baaf6d7b",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "-1",
                               "payloadType": "num",
                               "x": 210,
                               "y": 3060,
                               "wires": [
                                   [
                                       "f09adfda10e76f11"
                                   ]
                               ]
                           },
                           {
                               "id": "9aa12ab2cd5ee494",
                               "type": "comment",
                               "z": "7e6af0015415146d",
                               "name": "Normale Vorgehensweise",
                               "info": "",
                               "x": 210,
                               "y": 2480,
                               "wires": []
                           },
                           {
                               "id": "f09adfda10e76f11",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "Change Node mit JSONATA",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload >= 0 ? 0 : payload - 2",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 460,
                               "y": 3020,
                               "wires": [
                                   [
                                       "2a509c433806b76b"
                                   ]
                               ]
                           },
                           {
                               "id": "8fdd6e49709fa68c",
                               "type": "comment",
                               "z": "7e6af0015415146d",
                               "name": "JSONATA",
                               "info": "",
                               "x": 180,
                               "y": 2940,
                               "wires": []
                           },
                           {
                               "id": "235b4dbf57c0ac2e",
                               "type": "comment",
                               "z": "7e6af0015415146d",
                               "name": "RegEx",
                               "info": "",
                               "x": 170,
                               "y": 2720,
                               "wires": []
                           },
                           {
                               "id": "b055685e0374d29b",
                               "type": "switch",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "property": "$string(payload)",
                               "propertyType": "jsonata",
                               "rules": [
                                   {
                                       "t": "regex",
                                       "v": "^\\d+$",
                                       "vt": "str",
                                       "case": false
                                   },
                                   {
                                       "t": "regex",
                                       "v": "^-\\d+$",
                                       "vt": "str",
                                       "case": false
                                   }
                               ],
                               "checkall": "false",
                               "repair": false,
                               "outputs": 2,
                               "x": 370,
                               "y": 2820,
                               "wires": [
                                   [
                                       "a8dbb487697dff7a"
                                   ],
                                   [
                                       "958483cb434427fa"
                                   ]
                               ]
                           },
                           {
                               "id": "a8dbb487697dff7a",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "setze 0",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "0",
                                       "tot": "num"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 560,
                               "y": 2800,
                               "wires": [
                                   [
                                       "043f4b6a0b3a5766"
                                   ]
                               ]
                           },
                           {
                               "id": "958483cb434427fa",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "verringere um 2",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload - 2",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 560,
                               "y": 2840,
                               "wires": [
                                   [
                                       "043f4b6a0b3a5766"
                                   ]
                               ]
                           },
                           {
                               "id": "043f4b6a0b3a5766",
                               "type": "debug",
                               "z": "7e6af0015415146d",
                               "name": "Ergebnis mit RegEx",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 800,
                               "y": 2820,
                               "wires": []
                           },
                           {
                               "id": "731e10c3a246ea84",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "3",
                               "payloadType": "num",
                               "x": 190,
                               "y": 2780,
                               "wires": [
                                   [
                                       "b055685e0374d29b"
                                   ]
                               ]
                           },
                           {
                               "id": "06edab9528cf2379",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "-1",
                               "payloadType": "num",
                               "x": 190,
                               "y": 2840,
                               "wires": [
                                   [
                                       "b055685e0374d29b"
                                   ]
                               ]
                           }
                        ]
                        

                        Ein letzte Möglichkeit mit JSONATA und fixen Werten kann man mit Übersetzungsobjekten erreichen.

                        0d344e57-9335-442d-b001-c0816a28c6d4-image.png

                        In diesem Fall definiere ich also jede Zahl als Schlüssel eines Objektes (ich hab es hier mal translate genannt)- 1.Regel. Die payload wird nun über einen Konvertierung zum String und durchsucht das Objekt nachdem entsprechenden Key. -2.Regel
                        Die 3.Regel kann man verwenden, um einen Defaultwert zu setzen, wenn ein Wert nicht in der Tabelle enthalten ist.

                        [
                           {
                               "id": "d72c33c5f9a3ae48",
                               "type": "change",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "translate",
                                       "pt": "msg",
                                       "to": "{\"3\":0,\"-1\":-3,\"-2\":-4}",
                                       "tot": "json"
                                   },
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "$lookup(translate, $string(payload))\t",
                                       "tot": "jsonata"
                                   },
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "$not($exists(payload))? 0 : payload\t",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 390,
                               "y": 3200,
                               "wires": [
                                   [
                                       "078c75417a994742"
                                   ]
                               ]
                           },
                           {
                               "id": "a78a7970d2b7e564",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "3",
                               "payloadType": "num",
                               "x": 190,
                               "y": 3160,
                               "wires": [
                                   [
                                       "d72c33c5f9a3ae48"
                                   ]
                               ]
                           },
                           {
                               "id": "253464a6e7f4d63c",
                               "type": "inject",
                               "z": "7e6af0015415146d",
                               "name": "",
                               "props": [
                                   {
                                       "p": "payload"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "payload": "-1",
                               "payloadType": "num",
                               "x": 190,
                               "y": 3220,
                               "wires": [
                                   [
                                       "d72c33c5f9a3ae48"
                                   ]
                               ]
                           },
                           {
                               "id": "078c75417a994742",
                               "type": "debug",
                               "z": "7e6af0015415146d",
                               "name": "Übersetzungstabelle",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 620,
                               "y": 3200,
                               "wires": []
                           }
                        ]
                        

                        M Offline
                        M Offline
                        MyioBroker
                        schrieb am zuletzt editiert von MyioBroker
                        #26

                        @mickym Hallo :+1: auch diesmal vielen Dank für die schnelle Antwort :-) Das begrenzen der Payload auf Werte <=0 erscheint erst mal ein triviales "Problem" zu sein und ist es offenbar auch, wenn man den Lösungsweg weis ;-) Der Change-Node bietet ja einige Wege an, so dass ich das mit dem Switch-Node gar nicht erst in Erwägung gezogen habe und das man die Ausgänge dann auch wieder einfach vereinen kann sollte man natürlich auch nicht vergessen! Wieder was gelernt um es sich nicht unnötig schwer zu machen :-)
                        Das mit den RegEx hat mich schon in anderen Anwendungen fasziniert, wie man mit scheinbar kryptischen Zeichenfolgen komplexe Abfragen machen kann, aber das es eben auch Strings sein müssen muss man halt berücksichtigen, nun weiß ich es erst mal wieder ;-)
                        Als Lösung ist aber erst mal die JSONATA Variante (payload >=0 ? 0 : payload-2) genau das geworden was ich gesucht habe :-) Ein Change-Node mit nur einer Regel :-) Es sind allerdings zwei, ich übernehme zuerst natürlich den aktuellen Stand aus dem Wert von flow.switch (Variable für jeweils aktuelle Seite) für msg.payload.
                        Solange ich bei den "positiven" Seiten keine "richtige" Anwendung für "Enter" habe (Es soll ja "nur" eine Anzeige der verschiedenen Messwerte sein) reicht es mir auf Seite 0 zu springen um ggf. einen definierten Anzeigezustand zu haben.
                        Bei den "negativen" Seiten will ich gezielt "Runterfahren" bzw. "Neustarten" da der RasbPi das ja nicht wirklich hardwaremäßig kann und die SD-Karte nicht unbedingt im falschen Moment "gestreßt" werden sollte, muss man ja nicht im Experimentierstadium noch forcieren!
                        Seite -1 und -2 fragen ab ob ich es wirklich möchte (?) und mit "Enter" springe ich zwei Seiten runter wo diese Funktionen an den Ausgängen eines Switch-Node entsprechend verankert sind. Denke das es eine nützliche Funktion ist so wie auch das "Rücksetzen" des Nodes "Pi-LCD" bei "jeder" (?) Gelegenheit (msg.payload => clr:). Es gibt offenbar "Probleme" mit der Anzeige wenn die Syntax bei der Ansteuerung nicht eingehalten wird, was beim "Experimentieren" ja allemal vorkommen kann!
                        Deine anderen Tipps werde ich mir noch mal anschauen und sicher auch in das Projekt einfließen lassen :-)

                        1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          @myiobroker In der Regel machst Du das nicht mit einer Change Node alleine, sondern mit einer Switch Node und mehreren Change Nodes. Das entlastet Dich auf jeden Fall und reduziert die Komplexität in den Change Nodes - da bereits Nachrichten im Vorfeld aussortiert wurden. Sprich Du setzt die payload aller Nachrichten deren payload >= 0 ist auf 0 und bei negativen payload verringerst Du diese um -2. ;)

                          1. Empfohlenes Vorgehen:

                          e00db72d-b0c9-4fa3-8a78-c067859e47c5-image.png

                          Durch das Setzen nach der ersten Regelübereinstimmung stoppen kann man das noch feiner granulieren und spezifische Fälle weiter vorne abarbeiten. So kannst Du in der Switch Node bei einer positiven Zahl eine andere Vorgehensweise wählen und trotzdem falls es eine andere positive Zahl ist noch auf 0 setzen.

                          Anhand des Screenshots siehst Du nun - dass alle positiven Werten an den Ausgang 1 gesendet werden, alle negativen Werte an den Ausgang 2. Nun können wir also mit 2 Change Nodes einfach die payload auf 0 bzw. auf payload - 2 setzen.

                          Ob Du das Ergebnis dann wieder zusammenfasst, wie in meinem Beispielflow - das ist eine andere Geschichte,

                          a19dc814-224e-406a-a7f3-c63b837f56c1-image.png

                          Ein weiterer Vorteil der Switch Node für Bedinungen sind auch dass man für Zahlen Bereiche definieren kann:

                          2382c89d-f419-4cc8-bf85-b0ba99fe596e-image.png

                          Also hier .- schicke alle Nachrichten zwischen 0 und 5 an den Ausgang 1 usw.

                          1. RegEx - mit Change Node

                          Das ist schon vom Ansatz aus 2 Gründen falsch:

                          • RegEx funktioniert nur, wenn man das Ganze als Strings behandelt, man müsste also erst in Strings, dann wieder in Zahlen umwandeln.
                          • Ein RegEx matched oder matched nicht und dann kannst Du nur ein fixen Wert setzen, du willst aber bei negativen Werten 2 abziehen.

                          Wenn Du aber mit RegEx arbeiten willst (also in String umwandelst), weil Du dann zum Beispiel bestimmte Steuercodes anders behandelt willst, dann kannst Du das wieder in Kombination mit einer Switch Node machen. Der Vorteil hier ist, dass man die payload nur zur Analyse in einen String umwandelt.

                          b1204685-e11a-477a-8167-4610b69b4157-image.png

                          1. JSONATA funktioniert - weiß aber nicht woher Du diese Syntax hast - hier musst Du aber aufpassen, dass Du nicht wieder ins codieren kommst und bei mehrfachen Bedingungen wird das sehr unübersichtlich. Eine $if Funktion kenne ich in JSONATA nicht. Die einzige Möglichkeite Bedingungen zu formulieren ist den Bedingungsoperator ? zu nutzen.

                          b7c2f883-022d-40ab-bb1f-98a50893969c-image.png

                          Also:

                          payload >= 0 ? 0 : payload - 2
                          

                          4e21c37b-99ee-42b1-9959-0d761adc7c6c-image.png

                          Hier mal alle Beispiele zum Probieren:

                          [
                             {
                                 "id": "1d32bc03fdc515dc",
                                 "type": "switch",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "property": "payload",
                                 "propertyType": "msg",
                                 "rules": [
                                     {
                                         "t": "gte",
                                         "v": "0",
                                         "vt": "num"
                                     },
                                     {
                                         "t": "lt",
                                         "v": "0",
                                         "vt": "num"
                                     }
                                 ],
                                 "checkall": "false",
                                 "repair": false,
                                 "outputs": 2,
                                 "x": 390,
                                 "y": 2600,
                                 "wires": [
                                     [
                                         "e85b8517c1cbf042"
                                     ],
                                     [
                                         "c6a1e0b43e566934"
                                     ]
                                 ]
                             },
                             {
                                 "id": "e85b8517c1cbf042",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "setze 0",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "0",
                                         "tot": "num"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 580,
                                 "y": 2580,
                                 "wires": [
                                     [
                                         "d764781a1ee41e39"
                                     ]
                                 ]
                             },
                             {
                                 "id": "c6a1e0b43e566934",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "verringere um 2",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload - 2",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 580,
                                 "y": 2620,
                                 "wires": [
                                     [
                                         "d764781a1ee41e39"
                                     ]
                                 ]
                             },
                             {
                                 "id": "d764781a1ee41e39",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "Ergebnis",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 780,
                                 "y": 2600,
                                 "wires": []
                             },
                             {
                                 "id": "0649d4923f8fba46",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "3",
                                 "payloadType": "num",
                                 "x": 210,
                                 "y": 2560,
                                 "wires": [
                                     [
                                         "1d32bc03fdc515dc"
                                     ]
                                 ]
                             },
                             {
                                 "id": "2366a9adf3e62193",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "-1",
                                 "payloadType": "num",
                                 "x": 210,
                                 "y": 2620,
                                 "wires": [
                                     [
                                         "1d32bc03fdc515dc"
                                     ]
                                 ]
                             },
                             {
                                 "id": "2a509c433806b76b",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "Ergebnis JSONATA",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 710,
                                 "y": 3020,
                                 "wires": []
                             },
                             {
                                 "id": "2e584db564fb7252",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "3",
                                 "payloadType": "num",
                                 "x": 210,
                                 "y": 3000,
                                 "wires": [
                                     [
                                         "f09adfda10e76f11"
                                     ]
                                 ]
                             },
                             {
                                 "id": "92cdf991baaf6d7b",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "-1",
                                 "payloadType": "num",
                                 "x": 210,
                                 "y": 3060,
                                 "wires": [
                                     [
                                         "f09adfda10e76f11"
                                     ]
                                 ]
                             },
                             {
                                 "id": "9aa12ab2cd5ee494",
                                 "type": "comment",
                                 "z": "7e6af0015415146d",
                                 "name": "Normale Vorgehensweise",
                                 "info": "",
                                 "x": 210,
                                 "y": 2480,
                                 "wires": []
                             },
                             {
                                 "id": "f09adfda10e76f11",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "Change Node mit JSONATA",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload >= 0 ? 0 : payload - 2",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 460,
                                 "y": 3020,
                                 "wires": [
                                     [
                                         "2a509c433806b76b"
                                     ]
                                 ]
                             },
                             {
                                 "id": "8fdd6e49709fa68c",
                                 "type": "comment",
                                 "z": "7e6af0015415146d",
                                 "name": "JSONATA",
                                 "info": "",
                                 "x": 180,
                                 "y": 2940,
                                 "wires": []
                             },
                             {
                                 "id": "235b4dbf57c0ac2e",
                                 "type": "comment",
                                 "z": "7e6af0015415146d",
                                 "name": "RegEx",
                                 "info": "",
                                 "x": 170,
                                 "y": 2720,
                                 "wires": []
                             },
                             {
                                 "id": "b055685e0374d29b",
                                 "type": "switch",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "property": "$string(payload)",
                                 "propertyType": "jsonata",
                                 "rules": [
                                     {
                                         "t": "regex",
                                         "v": "^\\d+$",
                                         "vt": "str",
                                         "case": false
                                     },
                                     {
                                         "t": "regex",
                                         "v": "^-\\d+$",
                                         "vt": "str",
                                         "case": false
                                     }
                                 ],
                                 "checkall": "false",
                                 "repair": false,
                                 "outputs": 2,
                                 "x": 370,
                                 "y": 2820,
                                 "wires": [
                                     [
                                         "a8dbb487697dff7a"
                                     ],
                                     [
                                         "958483cb434427fa"
                                     ]
                                 ]
                             },
                             {
                                 "id": "a8dbb487697dff7a",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "setze 0",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "0",
                                         "tot": "num"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 560,
                                 "y": 2800,
                                 "wires": [
                                     [
                                         "043f4b6a0b3a5766"
                                     ]
                                 ]
                             },
                             {
                                 "id": "958483cb434427fa",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "verringere um 2",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "payload - 2",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 560,
                                 "y": 2840,
                                 "wires": [
                                     [
                                         "043f4b6a0b3a5766"
                                     ]
                                 ]
                             },
                             {
                                 "id": "043f4b6a0b3a5766",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "Ergebnis mit RegEx",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 800,
                                 "y": 2820,
                                 "wires": []
                             },
                             {
                                 "id": "731e10c3a246ea84",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "3",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 2780,
                                 "wires": [
                                     [
                                         "b055685e0374d29b"
                                     ]
                                 ]
                             },
                             {
                                 "id": "06edab9528cf2379",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "-1",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 2840,
                                 "wires": [
                                     [
                                         "b055685e0374d29b"
                                     ]
                                 ]
                             }
                          ]
                          

                          Ein letzte Möglichkeit mit JSONATA und fixen Werten kann man mit Übersetzungsobjekten erreichen.

                          0d344e57-9335-442d-b001-c0816a28c6d4-image.png

                          In diesem Fall definiere ich also jede Zahl als Schlüssel eines Objektes (ich hab es hier mal translate genannt)- 1.Regel. Die payload wird nun über einen Konvertierung zum String und durchsucht das Objekt nachdem entsprechenden Key. -2.Regel
                          Die 3.Regel kann man verwenden, um einen Defaultwert zu setzen, wenn ein Wert nicht in der Tabelle enthalten ist.

                          [
                             {
                                 "id": "d72c33c5f9a3ae48",
                                 "type": "change",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "rules": [
                                     {
                                         "t": "set",
                                         "p": "translate",
                                         "pt": "msg",
                                         "to": "{\"3\":0,\"-1\":-3,\"-2\":-4}",
                                         "tot": "json"
                                     },
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "$lookup(translate, $string(payload))\t",
                                         "tot": "jsonata"
                                     },
                                     {
                                         "t": "set",
                                         "p": "payload",
                                         "pt": "msg",
                                         "to": "$not($exists(payload))? 0 : payload\t",
                                         "tot": "jsonata"
                                     }
                                 ],
                                 "action": "",
                                 "property": "",
                                 "from": "",
                                 "to": "",
                                 "reg": false,
                                 "x": 390,
                                 "y": 3200,
                                 "wires": [
                                     [
                                         "078c75417a994742"
                                     ]
                                 ]
                             },
                             {
                                 "id": "a78a7970d2b7e564",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "3",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 3160,
                                 "wires": [
                                     [
                                         "d72c33c5f9a3ae48"
                                     ]
                                 ]
                             },
                             {
                                 "id": "253464a6e7f4d63c",
                                 "type": "inject",
                                 "z": "7e6af0015415146d",
                                 "name": "",
                                 "props": [
                                     {
                                         "p": "payload"
                                     }
                                 ],
                                 "repeat": "",
                                 "crontab": "",
                                 "once": false,
                                 "onceDelay": 0.1,
                                 "topic": "",
                                 "payload": "-1",
                                 "payloadType": "num",
                                 "x": 190,
                                 "y": 3220,
                                 "wires": [
                                     [
                                         "d72c33c5f9a3ae48"
                                     ]
                                 ]
                             },
                             {
                                 "id": "078c75417a994742",
                                 "type": "debug",
                                 "z": "7e6af0015415146d",
                                 "name": "Übersetzungstabelle",
                                 "active": true,
                                 "tosidebar": true,
                                 "console": false,
                                 "tostatus": false,
                                 "complete": "payload",
                                 "targetType": "msg",
                                 "statusVal": "",
                                 "statusType": "auto",
                                 "x": 620,
                                 "y": 3200,
                                 "wires": []
                             }
                          ]
                          

                          M Offline
                          M Offline
                          MyioBroker
                          schrieb am zuletzt editiert von MyioBroker
                          #27

                          @mickym Um hier im Forum nicht unnötig Fragen zu stellen die vielleicht schon gestellt wurden habe ich mit Chat GPT versucht einiges einfach mal so zu erfragen ohne stundenlanges Studium der Unterlagen. Zum Teil bekommt man recht detailierte Antworten wenn man die Frage entsprechend konkret stellt aber eben auch Antworten die scheinbar nicht viel mit der Frage zu tun haben ???
                          Eine Anfrage zu den RegEx z.B. war auch schnell parat aber das es ein String sein sollte eben nicht und auch zu einigen anderen Codeschnipseln fehlte manchmal der Hintergrund, so dass ich im Grunde nicht wirklich weitergekommen bin :thinking_face:
                          Man sollte also immer noch ein entsprechendes Grundwissen haben um die Ergebnisse zu interpretieren! Aber das war auch schon früher so, als manche meinten mit einem Taschenrechner alles lösen zu könne ohne die Grundregeln der Mathematik zu verstehen ;-)

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • M MyioBroker

                            @mickym Um hier im Forum nicht unnötig Fragen zu stellen die vielleicht schon gestellt wurden habe ich mit Chat GPT versucht einiges einfach mal so zu erfragen ohne stundenlanges Studium der Unterlagen. Zum Teil bekommt man recht detailierte Antworten wenn man die Frage entsprechend konkret stellt aber eben auch Antworten die scheinbar nicht viel mit der Frage zu tun haben ???
                            Eine Anfrage zu den RegEx z.B. war auch schnell parat aber das es ein String sein sollte eben nicht und auch zu einigen anderen Codeschnipseln fehlte manchmal der Hintergrund, so dass ich im Grunde nicht wirklich weitergekommen bin :thinking_face:
                            Man sollte also immer noch ein entsprechendes Grundwissen haben um die Ergebnisse zu interpretieren! Aber das war auch schon früher so, als manche meinten mit einem Taschenrechner alles lösen zu könne ohne die Grundregeln der Mathematik zu verstehen ;-)

                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #28

                            @myiobroker Wie gesagt wenn Du RegEx mal akzeptiert, dass hier Strings analysiert werden - kann ich Dir diese Seite empfehlen, mit der man testen kann und auch eine Erklärung findet.

                            Jedenfalls ist das unter meinen Lesezeichen: https://regex101.com/

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            M 1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @myiobroker Wie gesagt wenn Du RegEx mal akzeptiert, dass hier Strings analysiert werden - kann ich Dir diese Seite empfehlen, mit der man testen kann und auch eine Erklärung findet.

                              Jedenfalls ist das unter meinen Lesezeichen: https://regex101.com/

                              M Offline
                              M Offline
                              MyioBroker
                              schrieb am zuletzt editiert von
                              #29

                              @mickym Das ist ein guter Tipp :-) aber ich befürchte das ähnlich ist wie seinerzeit beim Studium. Das "Taschenbuch der Mathematik" von Bronstein -Semendjajew war das Standardwerk für alle unsere "Probleme" mit Integralen usw. aber wenn man es nicht "täglich" benutzt findet man gar nichts (?) zumindest muss man lange suchen ;-)
                              Fürchte auch fast das dieses /mein Projekt (SmartPi als Energiezähler) auch in den Herbst verrschoben werden wird/muss, der Rasenmähroboter will auch wissen wo er gerade mäht, mähen soll und das mit dem GPS ist genauso spannend wie der aktuelle Stromverbrauch. Zum Glück scheint der Rasenmäher ja nicht zu den "Stromfressern" zu gehöhren... aber weiß man das??? Also doch erst mal das SmartPi-PowerProjekt verwirklichen? ein paar Wochen bis zur Saison bleiben ja noch ;-)

                              1 Antwort Letzte Antwort
                              0
                              Antworten
                              • In einem neuen Thema antworten
                              Anmelden zum Antworten
                              • Älteste zuerst
                              • Neuste zuerst
                              • Meiste Stimmen


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              758

                              Online

                              32.5k

                              Benutzer

                              81.6k

                              Themen

                              1.3m

                              Beiträge
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Anmelden

                              • Du hast noch kein Konto? Registrieren

                              • Anmelden oder registrieren, um zu suchen
                              • Erster Beitrag
                                Letzter Beitrag
                              0
                              • Home
                              • Aktuell
                              • Tags
                              • Ungelesen 0
                              • Kategorien
                              • Unreplied
                              • Beliebt
                              • GitHub
                              • Docu
                              • Hilfe