NEWS
[gelöst]: Stunde aus Zeitobjekt auslesen
-
Ich möchte gerne die Stunde aus dem Objekt auslesen, dass Datum und Zeit beinhaltet.
Offensichtlich stimmt der Befehl so nicht, weil er immer 0 ausliest. Eventuell muss man einen String anders auslesen?Stunde2 = new Date(getState('0_userdata.0.tibberdata.cheapestNext2Start'/*Start [Text] der nächsten günstigen x Stunden*/).val); Speicherladestartstunde = Stunde2.getHours(); setState('0_userdata.0.Ladescript.Startuhrzeit_2h'/*Startuhrzeit 2h*/,Speicherladestartstunde);
Es wäre supernett, wenn mir jemand helfen könnte.
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
Offensichtlich stimmt der Befehl so nicht, weil er immer 0 ausliest
ist das wirklich ein Datumsobjekt?
-
@homoran ich denke ein String-Objekt?
Ich würde gerne in dem Beispiel die "3" als Zahl auslesen -
@pingo sagte in Stunde aus Zeitobjekt auslesen:
ich denke ein String-Objekt?
dann kannst du keine Datumsbefehle verwenden.
Dann musst du Zeichenkettenmanipulationen durchführen -
@pingo sagte: die Stunde aus dem Objekt auslesen, dass Datum und Zeit beinhaltet.
Das Datumsformat "DD.MM.YYYY hh:mm:ss" lässt sich nicht in ein date-Objekt wandeln.
Versuche es mal so:const time = getState('0_userdata.0.tibberdata.cheapestNext2Start'/*Start [Text] der nächsten günstigen x Stunden*/).val; setState('0_userdata.0.Ladescript.Startuhrzeit_2h'/*Startuhrzeit 2h*/, parseInt(time.split(' ')[1]), true);
-
@paul53 DANKE!
Das funktioniert super.
In der Console kommt eine Warnung wegen der 2.Zeile mit dem "parseInt". Kann ich die ignorieren?
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
wegen der 2.Zeile
wie kommst du darauf?
7:6 ist siebte Zeile, 6. Zeichen -
@homoran Bei mir ist es die 7.Zeile, weil ich vorher noch die Berechnung der billigsten Startzeit starte...Das hat aber keinen Einfluß auf den Fehler.
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
Das hat aber keinen Einfluß auf den Fehler.
dann zeig doch das ganze script
-
sendTo('telegram.0', {text:"Neue Startzeiten berechnet"}, function (res) {}); setState('0_userdata.0.tibberdata.numHours'/*Anzahl der zusammenhängenden Stunde [h]*/,2); setState('0_userdata.0.tibberdata.startCalc'/*Berechnung starten*/, true); const time = getState('0_userdata.0.tibberdata.cheapestNext2Start'/*Start [Text] der nächsten günstigen x Stunden*/).val; setState('0_userdata.0.Ladescript.Startuhrzeit_2h'/*Startuhrzeit 2h*/, parseInt(time.split(' ')[1]), true); Speicherladestartstunde = getState('0_userdata.0.Ladescript.Startuhrzeit_2h'/*Startuhrzeit 2h*/).val; console.log("Start 2h um " + Speicherladestartstunde);
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
setState('0_userdata.0.Ladescript.Startuhrzeit_2h'/Startuhrzeit 2h/, parseInt(time.split(' ')[1]), true);
existiert der DP ?
- Zeile 6. Zeichen passt gar nicht!
hast du globale Skripte?
- Zeile 6. Zeichen passt gar nicht!
-
@homoran Der DP existiert und ich denke, dass die Script global sind (woran sehe ich das?)
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
dass die Script global sind
hoffentlich nicht!
@pingo sagte in Stunde aus Zeitobjekt auslesen:
woran sehe ich das?
liegen sie im skripte Explorer im Verzeichnis global?
das ist nicht ohne Grund nur im Expertenmodus sichtbar -
@homoran Nein den Expertenmodus habe ich nicht an. Die Script sind im Hauptscriptordner.
-
@pingo sagte in Stunde aus Zeitobjekt auslesen:
@homoran Nein den Expertenmodus habe ich nicht an. Die Script sind im Hauptscriptordner.
das passt nicht zu meiner Frage!
mach den Expertenmodus an und sieh nach ob da irgendetwas im Verzeichnis global drin ist.
-
@homoran Global ist leer
-
@pingo sehr gut.
nur dann verstehe ich 7:6 nicht -
@pingo sagte: Warnung wegen der 2.Zeile
Vermutung: Der Datenpunkt ist nicht vom Typ "Zahl"? Im Tab "Protokolle" finden sich mehr Informationen.
-
@paul53 Du bist genial
Das ist der Datenpunkt. Wie ändere ich ihn bitte auf Typ Zahl?:
{ "common": { "name": "Startuhrzeit 2h", "desc": "Manuell erzeugt", "role": "state", "type": "array", "read": true, "write": true }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1707581291812, "_id": "0_userdata.0.Ladescript.Startuhrzeit_2h", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
Ich glaube, ich habe es herausgefunden: type "number" statt "array". Fehlermeldung ist weg! Top