NEWS
(Frage) per Objektinfo eine Instanz starten / stoppen?
-
Hallo
Geht das? ich möchte, wenn die Instanz Keconnect eine eingesteckte Zoe erkennt, dass die Instanz Zoe2 gestartet wird ?
Abfragen bei Renault sind pro Tag begrenzt.Alternativ die Crontab Einstellung der Instanz, wenn nicht angesteckt und ladet dann 15min Intervall, sonst 2min Intervall.
Geht das?
-
@humidor sagte in (Frage) per Objektinfo eine Instanz starten / stoppen?:
Instanz Keconnect
Was passiert in der Objektstruktur von der Instanz, wenn ein Zoe angesteckt wird? Wird ein Wert verändert? Welcher?
Zeig mal bitte die Objektstruktur.
Im Expertenmodus kann man die Instanzobjekte sehen:
Dort kann man dann die Instanz über alive=true einschalten:
Verständnisfrage: Warum möchte man das Ladeintervall umschalten? Ich denke, wenn ich das Auto zum Laden einstecke, wird es normal geladen. Wird es bei unterschiedlichen Intervallen günstiger?
-
@mcu danke, den Experten-Modus hab ich völlig vergessen
Instanz mit Crontab (kann man dann löschen):
Objekte
dann kann ich das in einem Blöckly mit Crontab lösen, muss ich nur noch wissen wie.
30min nicht angesteckt, 2min angesteckt
die Info darüber erhalte ich aus dem Kecontact
die Instanz Zoe2 beendet sich selbst (läuft ca.14s), soweit ich das verstehe
und wird durch den Crontab immer nur angestoßenNein, ich möchte kein Ladeintervall verändern. Ich möchte nur die Infos der Zoe holen, wenig oft wenn eh nix passiert, oft wenn sie lädt.
so?
var Zeit, schedule1; on({id: 'kecontact.0.plug', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("kecontact.0.plug").val == 7) { Zeit = 2; } else { Zeit = 20; } }); on({id: Zeit == 0, val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Zeit = 20; }); schedule1 = schedule(('/*' + String(Zeit)).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () { setState("system.adapter.zoe2.0.alive"/*zoe2.0 alive*/, true, true); console.log('Zoe2 gestartet'); });
-
@humidor So geht das nicht. Den Cronjob müsste man bevor man ihn ändert löschen bzw. stoppen.
Der soll die Info alle 2min holen, wenn er lädt,sonst nur alle 20min?
Falls Zeit=0 ist kein Objekt! Das geht gar nicht.
Außerdem wird die Zeit nie 0, wer setzt die auf 0?
Am Anfang im Script die Zeit auf 20 setzen.
Also solange der Zoe Stecker drin ist, wird die 7 bei plug angezeigt?
Was passiert mit dem Wert, wenn der Stecker gezogen wird?
Bitte die Objektstruktur vom Zoe (wo der Plug drin ist).Ungetestet, erst heute abend:
https://www.youtube.com/watch?v=Of2C8F_n11U (ab ca. 9:30 min)
-
@mcu Ja, 20 oder 30min, bei Ladung etwa 2min.
am Anfang ist die Variable "Zeit" undefiniert = 0, wie initialisiert man richtig?
Welche Blockly werden abgearbeitet? nur Trigger und Cron oder auch andere ?der Zoe2 ist ein Adapter, der Kecontact ein Adapter
Zoe2 liefert nur Infos vom Auto, der Kecontact ist die Wallbox zum Laden.
Die Wallbox weiß mit Plug= 7, dass der Stecker eingesteckt und verriegelt ist, damit kanns losgehen mit der Ladung (heißt noch nicht, dass was läuft). Wenn nicht, dann nicht 7.Was genau brauchst du vom Objekt?
Der Trigger sollte eigentlich p (Power) sein vom Kecontact, denn die Zoe kann auch ständig angesteckt sein, ohne zu laden. Wenn p > 1kW aktiv ist, dann erfolgt eine Ladung. -
@humidor
Die ganze Struktur, dann kann man besser diskutieren.Soll das Intervall auch durch irgendetwas abgeschaltet werden?
Wenn keiner schaut, braucht er ja auch nichts anzeigen? -
@mcu jain, über den Zoe2 bekommt man den akt. Ladestand, auf den dann die Ladung entsprechend gestoppt wird.
-
@humidor
Du musst Deine Daten entsprechend anpassen.
Muss evtl noch angepasst werden, da er bei jedem Wechsel der Power aktiviert wird. -
@mcu danke, muss ich mir noch ganz genau durch den Kopf gehen lassen was du da mit den Crontab machst, versteh ich noch nicht wirklich.
-
@MCU Morgen,
beim 1. Crontab (1.bild links), woher kommt "Wert", mir ist schon klar, dass es der Wert von p ist aber, woher kommt die einfache Möglichkeit vom Trigger den Wert zu bekommen?so schauts nachgebaut mal aus:
es stellt sich jetzt noch eine Frage, ich kann die Instanz Crontab Einstellung nicht löschen, wenn ich auf löschen gehen und OK drücke, sehe ich das Icon noch stehen und im Log wird ein Fehler eingetragen:
kann es sein, das der Adapter einen Crontab von sich aus anlegen möchte und darauf "besteht"?
-
hätte da noch jemand eine Idee warum der Crontab der Instanz nicht gelöscht werden kann?
-
@humidor ObjectID und dann auf Wert einstellen
In der Funktion müssen die Minuten genommen werden:
Mit dem Adapter-Crontab musst du vielleicht mal in der Doku zum Adapter nachschauen.
https://github.com/fungus75/ioBroker.zoe2Hier nach bekommt er nur alle 10 Minuten neue Daten?
-
@mcu danke!
der Zoe2 Adapter wird als Instanz mit Crontab 10min angelegt.
diese Crontab-Zeit möchte ich ja ändern.
dazu die Crontab der Instanz löschen und im Script mit Crontab aufrufen.
aber das löschen der Instanz Crontab fkt. nicht oder ich mache es falsch. -
@humidor Es bringt aber nichts, wenn nur alle 10 Minuten neue Daten liefert, nach 2 Minuten neu abzufragen?
Du kannst es ja versuchen. Den Crontab vom Adapter kannst du auf einen Tag stellen und dann mit dem Script probieren.
Lässt sich auch testen, indem du den alive status auf true setzt und schaust, ob neue Daten kommen. Der alive-Status geht ja nach 14 Sekunden wieder auf false. -
@mcu Nein, man kann sooft abfragen wie man will, 10min hat der Erbauer vom Zoe2 Adapter angenommen, das man über den Tagesschnitt drüber kommt, ohne dass Renault einem wegen zuvieler Abfragen blockiert.
Dh es ist eine Summe
Wenn ich nicht lade also 30min, wenn ich lade 2-5min Intervall sollte funktionieren. -
@humidor ok. dann setzt du den Adapter auf täglich und machst die Abfrage mit dem Script.
-
@humidor
Steuern nutzen nicht aktualisieren! -
@mcu OK, Crontab Instanz auf "Jeden Tag" gesetzt, Script gestartet (10/2 zum Test)
-
@mcu so schauts jetzt aus:
-
@MCU er hat jetzt jede Minute eine Abfrage gemacht?