NEWS
Kabelcodierung vom Go-e Charger in Variable schreiben
-
@homoran sagte: welchen Typ hat die Variable?
In Javascript sind Variablen nicht typgebunden.
-
@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
bei mir klappt es genau so wie du es hast
zeig doch bitte dein ganzes Blockly -
@homoran sagte: außer sie wurden vorher schon mal definiert
Auch dann nicht.
-
@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.......). -
@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 -
@homoran sagte: dann wechselt die Variable den Typ?
Ja, beliebig oft.
-
@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!
-
@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.
-
@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...32cbl uint8_t Typ2 Kabel Ampere codierung 13-32: Ampere Codierung 0: kein Kabel
Steht bei dir tatsächlich eine 20 in den Objekten?
-
@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.:
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):
-
@henrik-0 FEHLER GEFUNDEN! (hoffentlich)
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. -
@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 -
@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 lahmlegenWie 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 ? -
@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
-
@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.Wert findet man unter "Trigger".
-
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