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. Blockly
  5. (Gelöst) Zeichenkette in Zahl umwandeln (Aqara/Deconz/Vibrationssensor/Winkel)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    473

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

(Gelöst) Zeichenkette in Zahl umwandeln (Aqara/Deconz/Vibrationssensor/Winkel)

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
32 Beiträge 5 Kommentatoren 3.7k 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.
  • OliverIOO OliverIO

    parseInt("5,-80,3".split(",")[1])

    split nacht aus dem string ein array indem es das , als trennkennzeichen interpretiert.
    Ergebnis sind 3 Elemente mit index 0,1 und 2
    Das 2.Element hat also den index 1
    das zur sicherheit nochmal als Zahl interpretiert.
    Falls hier auch Fließkommazahlen kommen können dann ersetzen mit parseFloat

    M Offline
    M Offline
    muckel
    schrieb am zuletzt editiert von
    #3

    @OliverW
    Danke für den Input.
    Leider ist das Ergebnis nicht so wie gewünscht. Ich mache sicher etwas falsch.

    Blockly generiert folgenden Code:

    /**

    • Beschreibe diese Funktion …
      */
      function etwas_tun() {
      parseInt("deconz.0.Sensors.34.orientation".split(",")[1])
      return 1;
      }

    on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
    var value = obj.state.val;
    var oldValue = obj.oldState.val;
    if (etwas_tun() < -20) {
    console.log((etwas_tun()));
    setState("javascript.0.Garage"/Garage/, 'Geschlossen', true);
    } else if (etwas_tun() > 0) {
    console.log((etwas_tun()));
    setState("javascript.0.Garage"/Garage/, 'Offen', true);
    }
    });

    Hast du eine Idee in Blockly?

    paul53P OliverIOO T 3 Antworten Letzte Antwort
    0
    • M muckel

      @OliverW
      Danke für den Input.
      Leider ist das Ergebnis nicht so wie gewünscht. Ich mache sicher etwas falsch.

      Blockly generiert folgenden Code:

      /**

      • Beschreibe diese Funktion …
        */
        function etwas_tun() {
        parseInt("deconz.0.Sensors.34.orientation".split(",")[1])
        return 1;
        }

      on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      if (etwas_tun() < -20) {
      console.log((etwas_tun()));
      setState("javascript.0.Garage"/Garage/, 'Geschlossen', true);
      } else if (etwas_tun() > 0) {
      console.log((etwas_tun()));
      setState("javascript.0.Garage"/Garage/, 'Offen', true);
      }
      });

      Hast du eine Idee in Blockly?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #4

      @muckel sagte:

      Idee in Blockly?

      Blockly_Text3Werte_nach_Zahl.JPG

      Wert ist eine Eigenschaft des Triggerdatenpunktes (unter Blöcke Trigger).

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      M 1 Antwort Letzte Antwort
      0
      • M muckel

        @OliverW
        Danke für den Input.
        Leider ist das Ergebnis nicht so wie gewünscht. Ich mache sicher etwas falsch.

        Blockly generiert folgenden Code:

        /**

        • Beschreibe diese Funktion …
          */
          function etwas_tun() {
          parseInt("deconz.0.Sensors.34.orientation".split(",")[1])
          return 1;
          }

        on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (etwas_tun() < -20) {
        console.log((etwas_tun()));
        setState("javascript.0.Garage"/Garage/, 'Geschlossen', true);
        } else if (etwas_tun() > 0) {
        console.log((etwas_tun()));
        setState("javascript.0.Garage"/Garage/, 'Offen', true);
        }
        });

        Hast du eine Idee in Blockly?

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #5

        @muckel Blockly ist nicht so meins.
        Aber @paul53 hat glaub ich das in blockly umgesetzt

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        M 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @muckel sagte:

          Idee in Blockly?

          Blockly_Text3Werte_nach_Zahl.JPG

          Wert ist eine Eigenschaft des Triggerdatenpunktes (unter Blöcke Trigger).

          M Offline
          M Offline
          muckel
          schrieb am zuletzt editiert von
          #6

          @paul53

          Hallo Paul! Danke für deine Unterstützung. Ich habe dein Blockly nachgebaut.
          Leider bekomme ich bei Bewegung des Sensors immer folgenden Fehler:

          23:35:24.428 error javascript.0 at Object.<anonymous> (script.js.Garage_Offen_Zu:7:57)

          paul53P 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @muckel Blockly ist nicht so meins.
            Aber @paul53 hat glaub ich das in blockly umgesetzt

            M Offline
            M Offline
            muckel
            schrieb am zuletzt editiert von
            #7

            @OliverW
            Danke trotzdem. :-)

            1 Antwort Letzte Antwort
            0
            • M muckel

              @OliverW
              Danke für den Input.
              Leider ist das Ergebnis nicht so wie gewünscht. Ich mache sicher etwas falsch.

              Blockly generiert folgenden Code:

              /**

              • Beschreibe diese Funktion …
                */
                function etwas_tun() {
                parseInt("deconz.0.Sensors.34.orientation".split(",")[1])
                return 1;
                }

              on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              if (etwas_tun() < -20) {
              console.log((etwas_tun()));
              setState("javascript.0.Garage"/Garage/, 'Geschlossen', true);
              } else if (etwas_tun() > 0) {
              console.log((etwas_tun()));
              setState("javascript.0.Garage"/Garage/, 'Offen', true);
              }
              });

              Hast du eine Idee in Blockly?

              T Offline
              T Offline
              tim3trick
              schrieb am zuletzt editiert von
              #8

              @muckel Deine Funktion "etwas_tun" erzeugt den Wert und returned dann 1.
              Soll das so?

              M 1 Antwort Letzte Antwort
              0
              • M muckel

                @paul53

                Hallo Paul! Danke für deine Unterstützung. Ich habe dein Blockly nachgebaut.
                Leider bekomme ich bei Bewegung des Sensors immer folgenden Fehler:

                23:35:24.428 error javascript.0 at Object.<anonymous> (script.js.Garage_Offen_Zu:7:57)

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #9

                @muckel sagte:

                script.js.Garage_Offen_Zu:7:57

                Poste bitte den Javascript-Code ohne die letzte Zeile in Code tags.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                M 1 Antwort Letzte Antwort
                0
                • T tim3trick

                  @muckel Deine Funktion "etwas_tun" erzeugt den Wert und returned dann 1.
                  Soll das so?

                  M Offline
                  M Offline
                  muckel
                  schrieb am zuletzt editiert von
                  #10

                  @tim3trick
                  Nein, das soll es natürlich nicht.
                  Paul hat glaube ich den richtigen Ansatz, aber etwas funktioniert noch nicht so richtig.
                  Oder ich habe im Blockly Mist gebaut.

                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @muckel sagte:

                    script.js.Garage_Offen_Zu:7:57

                    Poste bitte den Javascript-Code ohne die letzte Zeile in Code tags.

                    M Offline
                    M Offline
                    muckel
                    schrieb am zuletzt editiert von muckel
                    #11

                    @paul53

                    var Winkel;
                    
                    
                    on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Winkel = parseFloat(((obj.state ? obj.state.val : "").split(',')[1]));
                      if (Winkel < -20) {
                        console.log(Winkel);
                        setState("javascript.0.Garage"/*Garage*/, 'Geschlossen', true);
                      } else if (Winkel > 0) {
                        console.log(Winkel);
                        setState("javascript.0.Garage"/*Garage*/, 'Offen', true);
                      }
                    });
                    

                    edit: sorry, finger waren schneller als das hirn.

                    T paul53P 2 Antworten Letzte Antwort
                    0
                    • M muckel

                      @paul53

                      var Winkel;
                      
                      
                      on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        Winkel = parseFloat(((obj.state ? obj.state.val : "").split(',')[1]));
                        if (Winkel < -20) {
                          console.log(Winkel);
                          setState("javascript.0.Garage"/*Garage*/, 'Geschlossen', true);
                        } else if (Winkel > 0) {
                          console.log(Winkel);
                          setState("javascript.0.Garage"/*Garage*/, 'Offen', true);
                        }
                      });
                      

                      edit: sorry, finger waren schneller als das hirn.

                      T Offline
                      T Offline
                      tim3trick
                      schrieb am zuletzt editiert von
                      #12

                      @muckel sollte obj.state nicht gesetzt sein, nimmt er den Leerstring, splitted ihn nach Komma und nimmt das zweite Element des Arrays, um das nach Float zu Parsen. Es gibt aber kein zweites Element, entweder ist das schon der Fehler, oder zumindest ein potentieller Bug.

                      Alternative: als "Else" nimmst du "0,0,0"

                      1 Antwort Letzte Antwort
                      0
                      • M muckel

                        @paul53

                        var Winkel;
                        
                        
                        on({id: 'deconz.0.Sensors.34.orientation', change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          Winkel = parseFloat(((obj.state ? obj.state.val : "").split(',')[1]));
                          if (Winkel < -20) {
                            console.log(Winkel);
                            setState("javascript.0.Garage"/*Garage*/, 'Geschlossen', true);
                          } else if (Winkel > 0) {
                            console.log(Winkel);
                            setState("javascript.0.Garage"/*Garage*/, 'Offen', true);
                          }
                        });
                        

                        edit: sorry, finger waren schneller als das hirn.

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #13

                        @muckel .split(',') kann nicht auf den Wert des Datenpunktes angewendet werden. Füge mal vor setze Winkel einen debug output Wert ein. Was erscheint dann im Log ?

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        M T 2 Antworten Letzte Antwort
                        0
                        • paul53P paul53

                          @muckel .split(',') kann nicht auf den Wert des Datenpunktes angewendet werden. Füge mal vor setze Winkel einen debug output Wert ein. Was erscheint dann im Log ?

                          M Offline
                          M Offline
                          muckel
                          schrieb am zuletzt editiert von
                          #14

                          @paul53

                          undefined :-(

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • M muckel

                            @paul53

                            undefined :-(

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #15

                            @muckel sagte:

                            undefined

                            Du hast an debug output eine Variable Wert übergeben ? Es muss die Eigenschaft Wert des Triggerdatenpunktes sein.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            M 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @muckel sagte:

                              undefined

                              Du hast an debug output eine Variable Wert übergeben ? Es muss die Eigenschaft Wert des Triggerdatenpunktes sein.

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

                              @paul53
                              wie recht du hast:

                              23:58:27.903 info javascript.0 script.js.Garage_Offen_Zu: 7,-80,7

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @muckel .split(',') kann nicht auf den Wert des Datenpunktes angewendet werden. Füge mal vor setze Winkel einen debug output Wert ein. Was erscheint dann im Log ?

                                T Offline
                                T Offline
                                tim3trick
                                schrieb am zuletzt editiert von
                                #17

                                @paul53 interessehalber, wieso nicht?

                                1 Antwort Letzte Antwort
                                0
                                • M muckel

                                  @paul53
                                  wie recht du hast:

                                  23:58:27.903 info javascript.0 script.js.Garage_Offen_Zu: 7,-80,7

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #18

                                  @muckel sagte:

                                  7,-80,7

                                  Das sieht eigentlich gut aus, garantiert aber nicht, dass der Datenpunkt tatsächlich einen String enthält. Logge mal den Typ von Wert (unter Konvertierung).

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @muckel sagte:

                                    7,-80,7

                                    Das sieht eigentlich gut aus, garantiert aber nicht, dass der Datenpunkt tatsächlich einen String enthält. Logge mal den Typ von Wert (unter Konvertierung).

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

                                    @paul53
                                    00:04:59.382 info javascript.0 script.js.Garage_Offen_Zu: object

                                    {
                                    "from": "system.adapter.deconz.0",
                                    "user": "system.user.admin",
                                    "ts": 1556892868113,
                                    "common": {
                                    "name": "Garagentor orientation",
                                    "type": "string",
                                    "read": true,
                                    "write": false
                                    },
                                    "native": {},
                                    "acl": {
                                    "object": 1636,
                                    "owner": "system.user.admin",
                                    "ownerGroup": "system.group.administrator",
                                    "state": 1636
                                    },
                                    "_id": "deconz.0.Sensors.34.orientation",
                                    "type": "state"
                                    }

                                    paul53P 2 Antworten Letzte Antwort
                                    0
                                    • T Offline
                                      T Offline
                                      tim3trick
                                      schrieb am zuletzt editiert von
                                      #20

                                      Oder wir schummeln und casten den Wert implizit mit (""+obj.state.val) der implizite Cast bei console scheint ja zu klappen

                                      1 Antwort Letzte Antwort
                                      0
                                      • M muckel

                                        @paul53
                                        00:04:59.382 info javascript.0 script.js.Garage_Offen_Zu: object

                                        {
                                        "from": "system.adapter.deconz.0",
                                        "user": "system.user.admin",
                                        "ts": 1556892868113,
                                        "common": {
                                        "name": "Garagentor orientation",
                                        "type": "string",
                                        "read": true,
                                        "write": false
                                        },
                                        "native": {},
                                        "acl": {
                                        "object": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator",
                                        "state": 1636
                                        },
                                        "_id": "deconz.0.Sensors.34.orientation",
                                        "type": "state"
                                        }

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von
                                        #21

                                        @muckel sagte:

                                        object

                                        Dann enthält er schon ein Array und muss nicht mehr gesplittet werden. Damit vereinfacht sich die Umwandlung:
                                        setze Winkel auf nach Zahl in der Liste Wert nimm das 2. Element.

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @muckel sagte:

                                          object

                                          Dann enthält er schon ein Array und muss nicht mehr gesplittet werden. Damit vereinfacht sich die Umwandlung:
                                          setze Winkel auf nach Zahl in der Liste Wert nimm das 2. Element.

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

                                          @paul53

                                          Perfekt! Das wars! :relaxed:
                                          Auf das wäre ich im Leben nicht gekommen. Danke schön.
                                          Ich stelle es auf gelöst.

                                          CU and good night!

                                          paul53P 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

                                          742

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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