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

      @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

                          824
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          3
                          21
                          970
                          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