Neues Binding => Worx Landroid

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Neues Binding => Worx Landroid

Beitrag von violine21 »

Hi,
mich interessiert schon länger, woher der Robbi die Klingen-Standzeit bezieht.
In der App habe ich noch keine Rückstellmöglichkeit gefunden.
Ohne es jetzt zu testen und etwas durcheinander zu bringen, kann ich den Wert per Binding verändern?

VG André

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Neues Binding => Worx Landroid

Beitrag von int5749 »

violine21 hat geschrieben: 18. Apr 2020 10:12 Hi,
mich interessiert schon länger, woher der Robbi die Klingen-Standzeit bezieht.
In der App habe ich noch keine Rückstellmöglichkeit gefunden.
Ohne es jetzt zu testen und etwas durcheinander zu bringen, kann ich den Wert per Binding verändern?

VG André
Hi,
bisher ist mir dieser Wert nur als lesend bekannt. Nun, wo Du es ansprichst, wäre dies sicher für einen Klingenwechsel interessant 8-)

Aber, da es auch in der originalen Positec App des Herstellers keinen Hinweis darauf gibt, könnte dies nicht vorgesehen sein.
Ggfs könnte man mit Delta's arbeiten. Also einen Wert per Button persistieren und dann das Delta zu dem tatsächlichen Wert ist dann die Laufzeit der aktuellen Blades. In einer DB hätte man dann die Werte "Timestamp" und "Blade-time". Shaun meldet dies ja im Rahmen der regelmäßigen Updates.

Die Frage dazu wäre: Wie kann ich einen Wert per Button persistieren :?:

VG Jörg

Nachtrag:

neue Items

Code: Alles auswählen

Switch LandroidBladesChanged
Number LandroidBladeChangedTime			"Blades changed [%s min]"			<time>
Rule

Code: Alles auswählen

rule "Blade Change Intervall"
when
	Item LandroidBladesChanged received command
then
	if (receivedCommand==ON) {
		LandroidBladeChangedTime.postUpdate(LandroidTotalBladeTime.state)
	}
end
Persist (MapDB)

Code: Alles auswählen

LandroidBladeChangedTime : strategy = everyChange,restoreOnStartup
Nun müsste "nur" noch bei einer Änderung der "LandroidTotalBladeTime" dies mit dem letzten Wert in der MapDB verglichen werden und der Zeitstempel des Wertes in ein weiteres neues Item "Blades gewechselt am xx um yy" geschrieben werden. Da bräuchte ich aber einen Griff unter die Arme, wie man den aktuellsten Wert eines Items aus der MapDB liest und den Zeitstempel verwendet :?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Neues Binding => Worx Landroid

Beitrag von violine21 »

Hallo Jörg,
ich habe folgendes Szenario im Sinn.
Zwei Proxy-Items vom Typ Number, da das Item "DatStTotalBladeTime" auch vom Typ Number ist.
Das Proxy-Item "Messerwechsel" per RRD4J persistieren.

Code: Alles auswählen

Number  Messerwechsel                   "letzter Messerwechsel[%,.0f min]"
Number  Standzeit_Messer                "Standzeit Messer[%,.0f min]"

Code: Alles auswählen

Messerwechsel: strategy = everyChange, restoreOnStartup
Dann in einer Rule wie Du es bereits geschrieben hast, bei Messerwechsel den aktuellen Wert vom Robbi in das Proxy-Item "Messerwechsel"
übertragen. In einer anderen Rule, die auf das Change-Ereignis vom Item "DatStTotalBladeTime" triggert,
die Differenz zwischen Item "DatStTotalBladeTime" und Item "Messerwechsel" berechnen und in das Item "Standzeit_Messer" schreiben.
Das kann dann auf der Sitemap mit angezeigt werden.
Evtl. könnte man auch noch einen Zeitstempel abspeichern, das ist Geschmackssache.

Code: Alles auswählen

rule "Blade Change Intervall"
when
	Item LandroidBladesChanged received command
then
	if (receivedCommand==ON) {
		Messerwechsel.postUpdate(DatStTotalBladeTime.state as Number)
	}
end

Code: Alles auswählen

rule "Standzeit Messer"
when
	Item DatStTotalBladeTime changed
then
	Standzeit_Messer.postUpdate((DatStTotalBladeTime.state as Number) - (Messerwechsel.state as Number))	
end
VG André

PS: Merkwürdiger Weise hat bei mir die gefahrene Zeit einen anderen Wert als die Messer-Standzeit (30.142 Min : 29.141 Min). Da muss
irgendwann mal was vorgefallen sein.

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Neues Binding => Worx Landroid

Beitrag von violine21 »

int5749 hat geschrieben: 16. Apr 2020 21:38 Löschen und neu anlegen klingt sehr umständlich und ich würde eher die "LandroidScheduleTimeExtension" auf -100 setzen. Dies ist ein Befehl und Du bist fertig. Wenn er dann wieder zur eingestellten Zeit losfahren soll, den Wert entweder wieder auf 0 setzen.

-100 => Er fährt nicht los
0 => eingestellte Zeit laut Planung
100 => doppelte Zeit
Oder eben jeder Wert dazwischen, wie in der App selber auch zu regeln ;-)
Hallo Jörg,
das hat in den letzten Tagen super funktioniert. Besten Dank noch mal für den Tip!
Dachte schon, meine Rule kommt bei der Trockenheit nicht zum Einsatz :shock:

Ich habe auch den anderen Thread verfolgt (Mähroboter pausieren und restore).
Etwas ähnliches hatte ich in die Rule gleich mit eingebaut.

Toller Robi und tolles Binding!

Viele Grüße
André
violine21 hat geschrieben: 18. Apr 2020 23:51 PS: Merkwürdiger Weise hat bei mir die gefahrene Zeit einen anderen Wert als die Messer-Standzeit (30.142 Min : 29.141 Min). Da muss
irgendwann mal was vorgefallen sein.
Der Unterschied ist mir klar geworden, als ich mal wieder meinen "Kollegen" bei der Arbeit beobachtet habe.
Es gibt Situationen, wo er mit abgeschalteten Mähwerk fährt, z.B. Heimfahrt, wenn die Batterie leer wird.

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Neues Binding => Worx Landroid

Beitrag von int5749 »

violine21 hat geschrieben: 2. Mai 2020 08:47 Ich habe auch den anderen Thread verfolgt (Mähroboter pausieren und restore).
Etwas ähnliches hatte ich in die Rule gleich mit eingebaut.
Guten Morgen André

evtl. postest Du Deine Lösung einmal? Evtl. hilft mir dies ja weiter ;-) Oder gerne auch als PN?

Viele Grüße
Jörg
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

violine21
Beiträge: 589
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Neues Binding => Worx Landroid

Beitrag von violine21 »

Hallo Jörg,
hier mal meine Rule (Seppi heisst mein treuer Freund ;) ):

Code: Alles auswählen

rule "Seppi Regenpause"
when
    Item Wetterstation1RAINING received update ON or
    Item Seppi_Pause received update or
    Item SeppiDatCommonStatusDescription received update or
    Time cron "0 0 0 * * ?"// um 00:00:00 Uhr
then
    if(Wetterstation1RAINING.state == ON && SeppiDatCommonStatusDescription == "HOME") {
        SeppiDatScScheduleTimeExtension.postUpdate(-100)
    }
    if(Wetterstation1RAINING.state == OFF && now.getHourOfDay == 0) {
        SeppiDatScScheduleTimeExtension.postUpdate(0)
    }
    if(Seppi_Pause.state == ON) {
        if(SeppiDatCommonStatusDescription.state == "MOVING") {
            SeppiCommonAction.postUpdate("HOME")
            }
        if(SeppiDatCommonStatusDescription.state == "HOME") {
            SeppiDatScScheduleTimeExtension_old.postUpdate(SeppiDatScScheduleTimeExtension.state as Number)
            SeppiDatScScheduleTimeExtension.postUpdate(-100)
            }
    }    
    if(Seppi_Pause.state == OFF) {
        SeppiDatScScheduleTimeExtension.postUpdate(SeppiDatScScheduleTimeExtension_old.state as Number)
        SeppiCommonAction.postUpdate("START")
    }

end
Einiges kann man noch vereinfachen aber so ist es für mich klarer verständlich.
Allerdings habe ich bemerkt, das ich SeppiDatScScheduleTimeExtension nur entweder mit 0 oder mit -100 nutze. Dazwischen habe ich noch nichts
genutzt. Darum müsste ich mir den alten Wert garnicht merken. Naja, vielleicht tritt der Fall mal ein.

VG André

bastier
Beiträge: 26
Registriert: 21. Dez 2018 22:55

Re: Neues Binding => Worx Landroid

Beitrag von bastier »

Hallo zusammen,

muss mich hier mal zu dem Binding einklinken....

Ich habe alles soweit installiert und es lief auch schon mal =D

Jedoch bekam ich auf einmal folgende Meldung im Log:

Code: Alles auswählen

2020-07-06 17:27:31.683 [hingStatusInfoChangedEvent] - 'worxlandroid:worxlandroidBridge:MyWorxBridge' changed from UNINITIALIZED to INITIALIZING

==> /var/log/openhab2/openhab.log <==

2020-07-06 17:27:32.409 [WARN ] [ernal.webapi.response.WebApiResponse] - Cannot get response as JosnObject

2020-07-06 17:27:32.415 [WARN ] [ernal.webapi.response.WebApiResponse] - Cannot get response as JosnObject

2020-07-06 17:27:32.493 [WARN ] [ernal.webapi.response.WebApiResponse] - Cannot get response as JosnObject

2020-07-06 17:27:32.496 [WARN ] [ernal.webapi.response.WebApiResponse] - Cannot get response as JosnObject

==> /var/log/openhab2/events.log <==

2020-07-06 17:27:32.507 [me.event.ThingUpdatedEvent] - Thing 'worxlandroid:worxlandroidBridge:MyWorxBridge' has been updated.

==> /var/log/openhab2/openhab.log <==

2020-07-06 17:27:32.660 [WARN ] [ernal.webapi.response.WebApiResponse] - Cannot get response as JosnObject

2020-07-06 17:27:32.663 [ERROR] [d.internal.WorxLandroidBridgeHandler] - Connection blocked from Worx, please try again in 24h

==> /var/log/openhab2/events.log <==

2020-07-06 17:27:32.669 [hingStatusInfoChangedEvent] - 'worxlandroid:worxlandroidBridge:MyWorxBridge' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): Connection blocked from Worx, please try again in 24h!

2020-07-06 17:27:32.840 [hingStatusInfoChangedEvent] - 'worxlandroid:mower:MyWorxBridge:20193019930100780402' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
Ich habe die Things darauf hin disabled und 24h gewartet -> enabled -> selber Fehler...
Dann auf einen Freitag Mittag wieder -> disabled -> bis Sonntag Nachmittag gewartet -> enabled -> selber Fehler
Sonntag Nachmittag dann Things gelöscht -> bis Montag Nachmittag gewartet (>24h) -> selber Fehler....

WTF?!?! Wie bekomme ich das Binding wieder zum Laufen?! Hat das schon mal jemand gehabt?

Zu Testzwecken hatte ich den Refreshintervall sehr kurz eingestellt. Das mochten die AWS Server wohl nicht. Ärgerlich, jetzt dümpel ich hier rum...

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Neues Binding => Worx Landroid

Beitrag von sihui »

bastier hat geschrieben: 6. Jul 2020 18:13 Zu Testzwecken hatte ich den Refreshintervall sehr kurz eingestellt. Das mochten die AWS Server wohl nicht. Ärgerlich, jetzt dümpel ich hier rum...
Falls du die Vermutung hast dein Account ist gelocked und nach dieser Anweisung vorgegangen bist

https://community.openhab.org/t/worx-la ... /95246/127

fehlt der Schritt das Binding zu deinstallieren während der Wartephase ...
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

bastier
Beiträge: 26
Registriert: 21. Dez 2018 22:55

Re: Neues Binding => Worx Landroid

Beitrag von bastier »

sihui hat geschrieben: 6. Jul 2020 19:03
bastier hat geschrieben: 6. Jul 2020 18:13 Zu Testzwecken hatte ich den Refreshintervall sehr kurz eingestellt. Das mochten die AWS Server wohl nicht. Ärgerlich, jetzt dümpel ich hier rum...
Falls du die Vermutung hast dein Account ist gelocked und nach dieser Anweisung vorgegangen bist

https://community.openhab.org/t/worx-la ... /95246/127

fehlt der Schritt das Binding zu deinstallieren während der Wartephase ...
Binding deinstallieren heisst einfach die .jar aus dem addons Ordner herauslöschen?

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Neues Binding => Worx Landroid

Beitrag von sihui »

bastier hat geschrieben: 7. Jul 2020 07:20 Binding deinstallieren heisst einfach die .jar aus dem addons Ordner herauslöschen?
Binding deinstallieren heisst deinstallieren auf dem Wege wie du auch installiert hast. Also entweder PaperUI, Karaf Konsole, addons.cfg oder addons Ordner um die gängigsten vier Installationsmethoden zu nennen.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Antworten