NEWS
[neuer Adapter] Gardena Smart System API
-
So, ich habe jetzt Stunden damit zugebracht die richtige Zeit angezeigt zu bekommen.
Für jemand der keine Ahnung von Java hat und neu ist in IOBroker ist das wohl nicht zu schaffen.
Ich gebe mich geschlagen und belasse es dabei die Batterieanzeige darzustellen. -
@exmerci Um welchen Datenpunkt geht es genau und mit welchem Widget zeigst Du die in VIS an?
Ich habe auch diesen Adapter und ein Sileno 500 smart und habe nicht diese Probleme.
![Mower-DP]
().![Mein VIS])
Noch nicht ganz fertig. -
@klausiob sagte in [neuer Adapter] Gardena Smart System API:
@exmerci Um welchen Datenpunkt geht es genau und mit welchem Widget zeigst Du die in VIS an?
Ich habe auch diesen Adapter und ein Sileno 500 smart und habe nicht diese Probleme.
![Mower-DP]
().![Mein VIS])
Noch nicht ganz fertig.Würdest du mir die Vis für dein Mähroboter zur Verfügung stellen? Die schaut sehr schick aus.
Gruß Markus
-
Hallo,
es geht um den Datenpunkt timestamp_next_start. Der stimmt auch bei dir nicht mir dem Widget überein.
timestamp_next_start ist bei dir 14:00 Uhr und in dem Widget steht 16:00 Uhr. Ich weiß ja nicht welche Zeit bei dir wirklich die Richtige ist, aber sie stimmen nicht überein.
Bei mir ist es nur umgekehrt. In der Objekttabelle steht bei mir z.B. 8:00 Uhr und im Widget steht 6:00 Uhr.Es ist allerdings so, das in der Objekttabelle wenn ich sie über Admin aufmache die richtige Zeit steht und wenn ich die Tabelle dann im Widget öffne steht die falsche Zeit drin.
-
@exmerci Also in den Datenpunkte werden die Zeitangaben als string und wegen dem "Z" am Ende mit Zeitzone UTC (+00:00) angezeigt Beispiele mit Zeitzonenangaben. Da sind die 14:00 bei mir richtig (Greenwich-Zeit). Ich habe aber MEZ also + 2h. Das kriege ich hin in einem Basic-HTML-Widget, wie oben bereits gezeigt mit einem Binding.
{gardena.0.datapoints.xxxx.timestamp_next_start;date(DD.MM.YY hh:mm)}
Die date-Fkt. berücksichtigt dann die konfigurierte Zeitzone.
Hast Du in raspi-config die richtige Zeitzone "Europa" eingestellt?
Die 16:00 Uhr sind dann die richtige Zeit bei mir, wie sie auch als Startzeit in dem Zeitplan steht.VG klausiob
PS: Deine Anzeige "Wed Dec 31 1969 23:00:00 GMT+0100 (Mitteleuropäische Normalzeit)" ist eine Angabe die einem Initialwert einer internen Datumsfunktion entspricht.
The cdate utility converts a date and time to the number of seconds since midnight on January 1, 1970 UTC (Coordinated Universal Time, also known as Greenwich Mean Time or GMT). The valid range of dates and times that can be specified is from January 1, 1970 00:00 UTC to December 31, 2190 23:59 UTC. Because the specified date and time are assumed to be in the local time zone, the actual valid dates range may differ depending on the offset from UTC. For example, EST (Eastern Standard Time) is 5 hours earlier than UTC, so the valid date and time range for that zone is December 31, 1969 19:00 EST to December 31, 2190 18:59 EST. Similarly, the earliest valid date and time for time zones east of UTC, will be January 1, 1970 00+offset:00 where offset is the offset from UTC. The error Bad date conversion is given for dates and times out of the valid range.
Die Zeitangabe in dem Datenpunkt ist nur sinnvoll in Verbindung mit anderen Stati, z.B. source_for_next_start
-
@klausiob sagte in [neuer Adapter] Gardena Smart System API:
{gardena.0.datapoints.xxxx.timestamp_next_start;date(DD.MM.YY hh:mm)}
Hallo, mein Problem liegt eher darin, das ich nicht weiß, welches Widget ich nehmen muss.
In einem normalen HTML Wiget kann ich keine Datenpunkte auswählen.
In einem HTML Widget wo ich Datenpunkte auswählen kann, bekomme ich es nicht hin, das Widget so zu füllen mit dem String den du mir geschickt hast, das auch etwas angezeigt wird.
Ich habe z.B. folgende Widgets probiert:(
Wenn du magst könntest du mir ja mal deine VIS schicken, vielleicht würde ich es dann verstehen. Ich verstehe aber auch wenn die das nicht möchtest.
Meine Raspi zeigt mir mit dem Befehl date die korrekte aktuelle deutsche Sommerzeit an.PS. Wofür steht das xxxx in dem String den du oben abgebildet hast? Meine Annahme ist das dies die ID des Datenpunktes ist. Stimmt das?
Würde das dann bei mir bedeuten:{gardena.0.datapoints.20a8c4b8-403e-4760-8bd7-732dff94ac12.b0b2fb36-ea5f-481f-b632-0d1057ffe837.abilities.9257633e-b876-36f0-ab67-86a9c6fd3631.ef36fb79-742e-3972-b408-1b0c672f312c.timestamp_next_start;date(DD.MM.YY hh:mm)}
Wenn ich das in einem HTML Widget eintrage bekomme ich keine Ausgabe. Aber vll. nehme ich ja die falschen Widgets.
-
@exmerci das rechte Widget HTML ist richtig und rechts unter Allgemein und HTML-Feld den String eintragen. Im Editor zeigt er den Wert nicht an.
xxx steht für meine IDs (aus Sicherheitsgründen nicht dass mein Mäher zu Deinem Garten fährt ). Du muß da Deine aus der Objekttabelle komplett kopieren und einsetzen.
-
Das habe ich jetzt genau so gemacht.
Hier mal ein Bild von meinem Datapoint.Du kannst hier leider nicht den ganzen String sehen. Aber oben habe ich die ja den ganzen String eingetragen.
Genau so wie oben in dem schwarzen Feld habe ich den String in deas HTML Feld eingetragen. Das ergebnis ist, das ich nichts angezeigt bekomme.
So sieht es im Editor aus:
Und im ausgeführten VIS sehe ich dann gar nichts davon.
Was mache ich falsch? -
Wenn Du die Maus über die ID von dem Datenpunkt hälst, wird ein Kopiersymbol angezeigt. Wenn Du da drauf drückst, hast Du die Adresse von dem Datenpunkt im Zwischenspeicher. Diesen kannst Du dann ins HTML einfügen. Nach den abilities müssen noch 2 IDs mit Punkt getrennt stehen. Der String timestamp_next_start muß weg, war nur ein Hinweis auf den Datenpunkt. Dafür der ID-Teil der mit f312c endet. Aber wenn Du wie oben Copy/Paste machst haste alles. Dann im HTML ;date(DD.MM.YY hh:mm) dranhängen und alles in geschweifte Klammern setzen {...}.
-
@klausiob sagte in [neuer Adapter] Gardena Smart System API:
Der String timestamp_next_start muß weg,
Du bist mein Held. Das war es. Super.Vielen Dank, das WE ist gerettet
-
@klausiob sagte in [neuer Adapter] Gardena Smart System API:
PS: Deine Anzeige "Wed Dec 31 1969 23:00:00 GMT+0100 (Mitteleuropäische Normalzeit)" ist eine Angabe die einem Initialwert einer internen Datumsfunktion entspricht.
The cdate utility converts a date and time to the number of .......
Die Zeitangabe in dem Datenpunkt ist nur sinnvoll in Verbindung mit anderen Stati, z.B. source_for_next_start
Ich habe jetzt dazu dann doch noch mal eine Frage. Das die Zeitangabe nicht Sinvoll ist, sehe ich auch so. Aber die Frage ist, wie bekomme ich sie weg, da sie ja automatisch, statt der Zeit zum nächsten geplanten Start, angezeigt wird, wenn der Robo unterwegs ist, ohne das ich etwa dazu eingestellt habe.
Was steht bei dir bei "nächster Start", wenn der Rasenmäher gerade mäht? -
@exmerci Mich hat das bisher nicht gestört. Ich bin da auch gerade noch am experimentieren. Das sind ja eigentlich auch nur interne Daten. Also wann macht das Sinn oder kein Sinn die nächste Startzeit anzuzeigen. Wenn man nach Zeitplan geparkt hat, zeigt es die programmierte Startzeit vom Zeitplan an, also eigentlich doppelt. Wann zeigt er diese Initialzeit an, wenn man z.B. bis auf Widerruf geparkt hat. Dann ist die source_for_next-start="no_source". Dann habe ich erstmal per Binding bei nächster Start "manuell" reingeschrieben. Muß dann mal gucken, wie das bei einer längeren Mähzeit mit Zwischenaufladung aussieht. Ich mähe immer nur eine Std. und da braucht er keine Zwischenaufladung. Ich vermute, dass da source_for_next-start="charging" steht.
VG klausiob -
Bei der Zwischenladung steht das die Zeit wann er wieder anfängt, also z.B. 10:42 Uhr. Das passt gut.
Den kompletten Zeitplan kann man anscheinend nicht anzeigen.
Ich muss dann mal sehen, wie ich es hinbekomme, das er während des Mähens einfach nichts anzeigt. -
@exmerci
So habe ich es gemacht.
Wieder die komplette Datenpunkt-ID einsetzen.{srcns:gardena.0.datapoints.source_for_next_start;tsns=gardena.0.datapoints.timestamp_next_start;(srcns=='no_source')?'manuell':'tsns.date(DD.MM.YY hh:mm)'} Folgende Werte kann source_for_next_start annehmen: "states": { "0": "uninitialised", "1": "no_source", "2": "completed_cutting_daily_limit", "3": "week_timer", "4": "countdown_time", "5": "mower_charging", "6": "completed_cutting_autotimer", "7": "undefined" }
-
Danke. Werde mal mit "rumspielen"
-
Hallo,
ich habe es jetzt so gemacht, das ich das Feld einfach ausblende wenn der Mäher arbeitet. Dann ist es egal was in dem Feld steht.
Darf ich nochmal fragen wie du es gemacht hast, wenn der Mäher außerhalb des Zeitplanes gestartet wird?
Bei dir heißt das ja Manuelles Mähen und dahinter kann man die Zeit auswählen.
Ich nehme an du nimmst dazu den Datenpunkt start_overwrite_timer mit den Parametern duration und trigger, oder?
Aber wie verknüpft man die Felder miteinander? -
@exmerci Sorry, die Datumsformatierung oben in dem Binding funktioniert leider noch nicht. Konnte ich erst gestern ausprobieren. Das manuelle Mähen habe ich per Javascript so gemacht, wie Du vermutest.
-
Hallo,
ich habe es im VIS jetzt soweit hinbekommen, das ich den Mäher mit:
Stoppe
gardena.0.datapoints.xxx.abilities.mower.command.park_until_next_timer.triggerStarte
gardena.0.datapoints.xxx.abilities.mower.command.start_override_timer.triggerAber wie kann ich angeben, wie lange er dann starten soll ? Bekomme ich das im VIS mit übergeben
oder setzt ihr im IOBROKER Objekte den Wert Duration einmalig manuel auf 7200 für 2 Std. Mähen ?gardena.0.datapoints.xxxx.abilities.mower.command.start_override_timer.parameters.duration
-
@novregen Ich benutze zum Beenden gardena.0.datapoints.xxx.abilities.mower.command.park_until_further_notice.trigger
was ja bedeutet Geparkt bis auf Widerruf.Das manuelle Starten mache ich mit einer Selektbox oder Radiobuttons über JS-Routine.
gardena.0.datapoints.xxx.abilities.mower.command.start_override_timer.parameters.duration und starten mit
gardena.0.datapoints.xxx.abilities.mower.command.start_override_timer.trigger
Die Dauer ist jetzt in sek, war mal Minuten. -
@klausiob said in [neuer Adapter] Gardena Smart System API:
gardena.0.datapoints.xxx.abilities.mower.command.start_override_timer.parameters.duration
Also nichts bei Objekt ID ?
Und JS ? Trägst du das unter Scripte ein ?
Wie muss das dann genau heißen ?
Gibst du die Laufzeit dann ein oder wird die Festgelegt ?
Vielen Dank.