Mähroboter pausieren und restore

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Mähroboter pausieren und restore

Beitrag von PeterA »

Fast:

Ich habe das ITEM DenonCommand als String das mit dem {channel="denonmarantz:avr:0005cd3a0e8e:general#command"} verbunden ist.
Und in der Sitemap ein SWITCH Widget welches einen Butten hat der als "ENTER" zu sehen ist und dahinter ist der Befehl "MNENT" gemapped.
Wenn ich nun den "ENTER" Button in der Sitemap betätige wird der Befehl "MNENT" OpenHab intern an das String Item DenonCommand übergeben und an den Channel geschickt.
- OpenHab 2.4
#PWRUP

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

Ja, genau so habe ich das auch verstanden.

Aber ich möchte um bei Deinem Beispiel zu bleiben

MNENT ist selber ein Item und enthält den Wert -30
Wenn also nun ENTER drückt, soll -30 übergeben werden
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Mähroboter pausieren und restore

Beitrag von PeterA »

Na dann Mappe doch -30 auf einen Button
- OpenHab 2.4
#PWRUP

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

PeterA hat geschrieben: 1. Mai 2020 23:06 Na dann Mappe doch -30 auf einen Button
Na genau das geht nicht :-/ da dieser Wert variieren kann.

Es handelt sich dabei quasi um den vorherigen Wert von LandroidScheduleTimeExtension, welchen ich in LandroidRestoreTime zwischenspeichere.
Eine andere Möglichkeit - da LandroidScheduleTimeExtension persistiert ist - wäre es den vorherigen Wert aus der MapDB zu lesen, aber sicher auch nicht direkt aus der Sitemap möglich?
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Mähroboter pausieren und restore

Beitrag von PeterA »

Ah ok, dann geht das wohl so nicht.
- OpenHab 2.4
#PWRUP

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

PeterA hat geschrieben: 1. Mai 2020 23:14 Ah ok, dann geht das wohl so nicht.
Bisher mache ich dies über eine Rule, dachte bzw. hoffte, dies vereinfachen zu können :-/

Dennoch besten Dank für Geduld und Tipp ;-)
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

Ein weitere Ansatz dazu, um ein Dummy Item zu sparen.

Eigentlich sollte ja genau dafür auch Persistance nutzbar sein? Ich persistiere die Werte in der MapDB

Code: Alles auswählen

Strategies {
	everyHour 	: "0 0 * * * ?"
	everyDay 	: "0 0 0 * * ?"
        default = everyChange
}

Items {
	LandroidRestoreTime : strategy = everyChange,restoreOnStartup
	LandroidRainDelay : strategy = everyChange,restoreOnStartup
	LandroidStandBy : strategy = everyChange,restoreOnStartup
	LandroidScheduleTimeExtension : strategy = everyChange,restoreOnStartup
	gLandroidScheduleDay* : strategy = everyChange,restoreOnStartup
	gLandroidScheduleDuration* : strategy = everyChange,restoreOnStartup
}
Derzeit versuche ich mir die beiden Stati (Aktuell und Vorher) erst einmal anzeigen zu lassen

Code: Alles auswählen

pushNotification("Shaun Landroid aktuell", LandroidScheduleTimeExtension.state.toString)
pushNotification("Shaun Landroid vorher", LandroidScheduleTimeExtension.previousState(false, "mapdb").state.toString)
pushNotification("Shaun Landroid vorher", LandroidScheduleTimeExtension.previousState(false, "mapdb").toString)
Der aktuelle Status entspricht natürlich dem aktuellen Wert => alles gut

Bei der vorherigen Wert gibt es "nur" eine DB Meldung => org.openhab.core.persistence.internal.QueryablePersistenceServiceDelegate$1@15d2612

Da sich das hinter dem @ Zeichen verändert könnte dies die Datensatzbezeichnug sein? Aber wie komme ich an den Wert??

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

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Mähroboter pausieren und restore

Beitrag von udo1toni »

Du nutzt mapDB, welche entgegen der landläufigen Meinung keinen previousState liefern kann. mapBD liefert exakt den letzten Wert, das ist aber nicht der vorherige, sondern der aktuelle Wert. Du musst also auf eine andere Persistence umsteigen, z.B. rrd4j.

.previousState liefert ein historicState zurück, mitsamt des Zeitstempels, wann der Status gesetzt wurde. Entsprechend musst Du .previousState().state abfragen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

udo1toni hat geschrieben: 2. Mai 2020 16:08 Du nutzt mapDB, welche entgegen der landläufigen Meinung keinen previousState liefern kann. mapBD liefert exakt den letzten Wert, das ist aber nicht der vorherige, sondern der aktuelle Wert. Du musst also auf eine andere Persistence umsteigen, z.B. rrd4j.
OK, geändert. rrd4j ist auch als default persistence eingetragen
udo1toni hat geschrieben: 2. Mai 2020 16:08 .previousState liefert ein historicState zurück, mitsamt des Zeitstempels, wann der Status gesetzt wurde. Entsprechend musst Du .previousState().state abfragen.

Code: Alles auswählen

pushNotification("Shaun Landroid aktuell", LandroidScheduleTimeExtension.state.toString)
pushNotification("Shaun Landroid vorher", LandroidScheduleTimeExtension.previousState().state.toString)
Liefert jedoch noch den gleichen Wert zurück :-/ wenn auch mit unterschiedlicher Nachkommastelle
aktuell: 50
vorher: 50.0
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Mähroboter pausieren und restore

Beitrag von int5749 »

Anbei noch kurz die Konfig
Strategies {
// for rrd, we need a cron strategy
everyMinute : "0 * * * * ?"
default = everyChange
}

Items {
LandroidRestoreTime : strategy = everyChange
LandroidRainDelay : strategy = everyChange
LandroidScheduleTimeExtension : strategy = everyChange
gLandroidScheduleDuration* : strategy = everyChange
}
Mit der RestAPI sehe ich derzeit, trotz mehrmailiger Änderung des Werte, bisher 0 datapoint :-(
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Antworten