Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Kabelcodierung vom Go-e Charger in Variable schreiben

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Kabelcodierung vom Go-e Charger in Variable schreiben

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

      @homoran sagte: welchen Typ hat die Variable?

      In Javascript sind Variablen nicht typgebunden.

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

        @paul53 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

        In Javascript sind Variablen nicht typgebunden.

        außer sie wurden vorher schon mal definiert

        @Henrik-0

        kabelkabel.png

        bei mir klappt es genau so wie du es hast
        zeig doch bitte dein ganzes Blockly

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @Homoran last edited by

          @homoran sagte: außer sie wurden vorher schon mal definiert

          Auch dann nicht.

          Homoran 1 Reply Last reply Reply Quote 0
          • H
            Henrik 0 @Homoran last edited by

            @homoran wie kann ich denn den Typ einer Variablen bestimmen/auswählen?
            Wenn ich eine neue Variabel in Blockly erstelle, kann ich ja nicht auswählen, welchen Typs sie sein soll. oder doch? ich bin erst seit ein paar tagen mit Blockly unterwegs. Ich kannte es von Java, dass man immer angeben musste, welchen Typ die Variable haben soll. (Int, string, boolean, float.......).

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

              @paul53 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

              Auch dann nicht.

              dann wechselt die Variable den Typ?
              ich dachte sie behält den Typ der ersten Zuweisung.

              Hab ich das falsch verstanden?

              @Henrik-0
              Das diskutieren wir gerade - mag sein, dass ich das falsch verstanden hatte

              paul53 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @Homoran last edited by

                @homoran sagte: dann wechselt die Variable den Typ?

                Ja, beliebig oft.

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

                  @paul53 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                  @homoran sagte: dann wechselt die Variable den Typ?

                  Ja, beliebig oft.

                  Danke - wieder was gelernt!

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Homoran last edited by

                    @homoran sagte: ich dachte sie behält den Typ der ersten Zuweisung.

                    Nicht durch den JS-Editor verunsichern lassen: Dessen Prüfungen basieren auf Typescript - nicht auf Javascript.

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

                      @henrik-0 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                      @homoran wie kann ich denn den Typ einer Variablen bestimmen/auswählen?
                      Wenn ich eine neue Variabel in Blockly erstelle, kann ich ja nicht auswählen, welchen Typs sie sein soll. oder doch? ich bin erst seit ein paar tagen mit Blockly unterwegs. Ich kannte es von Java, dass man immer angeben musste, welchen Typ die Variable haben soll. (Int, string, boolean, float.......).

                      So, das ist jetzt geklärt.
                      Wenn du der Variablen eine Zahl zuweist, hat die Variable den Typ number.
                      Da liegt das Problem also schon mal nicht.

                      Wie ich dir gezeigt habe scheint es auch daran nicht zu liegen, weil es bei mir funktioniert.

                      Ich habe noch ein wenig weiter recherchiert und den RAW des Datenpunktes angesehen:

                      {
                        "_id": "go-e.0.cable_ampere_code",
                        "type": "state",
                        "common": {
                          "name": "Kabel Ampere codierung (cbl)",
                          "type": "number",
                          "role": "level.volume",
                          "read": true,
                          "write": false,
                          "states": {
                            "0": "no cable",
                            "16": "16 Ampere",
                            "32": "32 Ampere"
                          }
                        },
                        "from": "system.host.ioBroker01.cli",
                        "ts": 1613758204602,
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "native": {}
                      }
                      

                      anscheinend gibt es nur 0, 16 und 32 als mögliche Zahl.
                      in der API steht jedoch 0,13...32

                      cbl	uint8_t	Typ2 ​Kabel Ampere codierung
                      13-32: Ampere Codierung
                      0: kein Kabel
                      

                      Steht bei dir tatsächlich eine 20 in den Objekten?

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        Henrik 0 @Homoran last edited by

                        @homoran also in meinen Objekten stehen auch nur die Zahlen "0","16" und "32" drin:

                        {
                          "from": "system.adapter.go-e.0",
                          "ts": 1620734504293,
                          "user": "system.user.admin",
                          "common": {
                            "name": "Kabel Ampere codierung (cbl)",
                            "type": "mixed",
                            "role": "level.volume",
                            "read": true,
                            "write": false,
                            "states": {
                              "0": "no cable",
                              "16": "16 Ampere",
                              "32": "32 Ampere"
                            }
                          },
                          "native": {},
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          },
                          "_id": "go-e.0.cable_ampere_code",
                          "type": "state"
                        }
                        

                        ich habe mal ein neues Skript geschrieben wo ich nur den Wert des Objektes auf die Variable des Objektes legen und dann ausgebe. Das funktioniert wunderbar.:

                        1.png

                        2.png

                        Das heißt, irgendwo in meinem Skript "PVÜberschussladen" läuft irgendwas verkehrt.

                        Hier ein Ausschnitt aus dem Blocky (ja, ich weiß, dass man einiges sicherlich einfacher und sauberer schreiben kann):

                        3.png

                        H Homoran paul53 3 Replies Last reply Reply Quote 0
                        • H
                          Henrik 0 @Henrik 0 last edited by

                          @henrik-0 FEHLER GEFUNDEN! (hoffentlich)

                          4.png

                          ich habe mal nach dem Lesen des Wertes eine Pause eingefügt. Dann klappt es. Kann es sein, dass das Skript "zu schnell" ist und das Auslesen vom Go-e noch nicht abgeschlossen ist?
                          Warum auch immer, mit der Pause zwischen Lesen und Schreiben läuft es.

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

                            @henrik-0 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                            Das heißt, irgendwo in meinem Skript "PVÜberschussladen" läuft irgendwas verkehrt.

                            Das hatte ich ja geschriebn.
                            Deswegen wollte ich ja das ganze Blockly sehen

                            @henrik-0 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                            ich habe mal nach dem Lesen des Wertes eine Pause eingefügt. Dann klappt es. Kann es sein, dass das Skript "zu schnell" ist und das Auslesen vom Go-e noch nicht abgeschlossen ist?

                            eher nicht.
                            umgekehrt ergäbe sich da ein Sinn, weil das Schreiben in einen Datenpunkt immer eine Gewisse zeit dauert.
                            Eine Variable sollte sofort gefüllt sein.

                            Wie lange ist denn da das Kabel schon am Auto?

                            EDIT:
                            sehe gerade dein "Wiederhole solange",
                            Das feuert im Millisekundentakt Wiederholungen und kann deinen js-Adapter lahmlegen

                            H 1 Reply Last reply Reply Quote 0
                            • H
                              Henrik 0 @Homoran last edited by

                              @homoran said in Kabelcodierung vom Go-e Charger in Variable schreiben:

                              sehe gerade dein "Wiederhole solange",
                              Das feuert im Millisekundentakt Wiederholungen und kann deinen js-Adapter lahmlegen

                              Wie kann ich das denn verbessern? Gibts eine bessere Möglichkeit den Skriptteil zu wiederholen?
                              Ich habe vor dem Ende des "Wiederhole solange" eine 60 Sekunden Pause drin. Dürfte daher doch unproblematisch sein oder ?

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

                                @henrik-0 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                                Wie kann ich das denn verbessern?

                                solange 1=1 halte ich sowieso für sinnfrei!

                                @henrik-0 sagte in Kabelcodierung vom Go-e Charger in Variable schreiben:

                                Ich habe vor dem Ende des "Wiederhole solange" eine 60 Sekunden Pause drin. Dürfte daher doch unproblematisch sein oder ?

                                Oder!

                                gefeuert wird sofort und vor der Ausführung dann tausend mal die Pause gemacht - also eher noch schlimmer.

                                Nutze einen Intervall-Baustein

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Henrik 0 last edited by paul53

                                  @henrik-0 sagte: Hier ein Ausschnitt aus dem Blocky

                                  "wiederhole solange" erzeugt regelmäßig eine Endlosschleife!
                                  Setze die Variable StatusKabel beim Skript-Start und durch einen Trigger auf "Kabel Ampere codierung", dann ist ein Polling überflüssig.

                                  Bild_2021-05-15_163547.png

                                  Wert findet man unter "Trigger".

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    Henrik 0 @paul53 last edited by

                                    Danke für die ganzen Tipps. Ihr habt mir sehr geholfen!!

                                    Es läuft jetzt so wie ich es mir vorstelle. Mal sehen wie lange ...

                                    Jetzt brauch ich nur noch Sonne 😳

                                    ein schönes WE noch

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    775
                                    Online

                                    32.0k
                                    Users

                                    80.5k
                                    Topics

                                    1.3m
                                    Posts

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