Pushover Binding Item State mit senden

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Pushover Binding Item State mit senden

Beitrag von zinnik »

Hallo,

eigentlich wollte ich die Forensuche nutzen aber ich komm da nicht weiter.

Bei dem Suchbegriff "Pushover" oder "PushoverBinding" erhalte ich immer folgende Meldung
Information
Die folgenden Wörter deiner Suchanfrage wurden ignoriert, da sie zu häufig vorkommen: pushover.
Du musst mindestens ein Wort angeben, nach dem gesucht werden soll. Jedes Wort muss aus mindestens 3 Zeichen bestehen und darf ohne Platzhalter nicht mehr als 14 Zeichen haben.
Ok aber nun zum Thema ich habe eine Rule die mir meldet wann die Bewässerung startet nun würde gerne noch den Item State der Bodenfeuchtigkeit mit senden wenn möglich in einer Nachricht. ich habe dabei folgens versucht:

Code: Alles auswählen

rule "Push Bewässerung Topfpflanzen"
when
    Item shelly_plug_s_80_shellyplugsde4aaa192168180_Betrieb received command ON
then
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    actions.sendMessage("Bewässerung Topfpflanzen gestartet", "Die Bewässerung von Topfpflanzen ist gestartet")
    actions.sendAttachmentMessage("Bewässerung Topfpflanzen gestartet", "Die Bodenfeuchtigkeit beträgt momentan", BodenfeuchtesensorTopfpflanzen2_Bodenfeuchtigkeit.state.toFullString, null)
end
Aber leider erhalte ich nur die Nachricht, dass die Bewässerung gestartet ist aber nicht den Feuchtigkeitswert.


Lg Sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Pushover Binding Item State mit senden

Beitrag von int5749 »

Hallo Sven.

sendAttachmentMessage ist dort der falsche Befehl, denn Du möchtest ja keinen Anhang senden.

Probier mal

Code: Alles auswählen

actions.sendMessage("Die Bodenfeuchtigkeit beträgt momentan " + BodenfeuchtesensorTopfpflanzen2_Bodenfeuchtigkeit.state.toFullString, "Bewässerung Topfpflanzen gestartet")
Das geht dann an den PushOverToken in Action

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

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

Re: Pushover Binding Item State mit senden

Beitrag von udo1toni »

Ergänzend:

Es bietet sich an, den gewünschten Meldetext in einer String Variablen vorzubereiten und diesen String zu senden:

Code: Alles auswählen

rule "Push Bewässerung Topfpflanzen"
when
    Item shelly_plug_s_80_shellyplugsde4aaa192168180_Betrieb received command ON
then
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    var strMessage = "Die Bewässerung der Topfpflanzen wird gestartet. "
    strMessage = strMessage + "Die Bodenfeuchtigkeit beträgt momentan "
    strMessage = strMessage + BodenfeuchtesensorTopfpflanzen2_Bodenfeuchtigkeit.state.toFullString
    strMessage = strMessage + "."
    actions.sendMessage("Bewässerung Topfpflanzen gestartet", strMessage)
end
Alternativ:

Code: Alles auswählen

rule "Push Bewässerung Topfpflanzen"
when
    Item shelly_plug_s_80_shellyplugsde4aaa192168180_Betrieb received command ON
then
    val actions = getActions("pushover", "pushover:pushover-account:375383cc42")
    val StringBuilder strMessage = new StringBuilder

    strMessage.append("Die Bewässerung der Topfpflanzen wird gestartet. ")
    strMessage.append("Die Bodenfeuchtigkeit beträgt momentan ")
    strMessage.addend(BodenfeuchtesensorTopfpflanzen2_Bodenfeuchtigkeit.state.toFullString)
    strMessage.append(".")
    actions.sendMessage("Bewässerung Topfpflanzen gestartet", strMessage.toString)
end
Allerdings wäre meine erste Maßnahme, die Itemnamen sehr deutlich zu kürzen. :) Und wenn openHAB tausend Zeichen als Namen vorschlägt, niemand hindert Dich daran, eigene, sinnvollere Namen zu verwenden (z.B. TopfpflanzenWasser und TopfpflanzenSensorFeuchte)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

zinnik
Beiträge: 174
Registriert: 7. Sep 2021 11:28
Answers: 0

Re: Pushover Binding Item State mit senden

Beitrag von zinnik »

Allerdings wäre meine erste Maßnahme, die Itemnamen sehr deutlich zu kürzen. :) Und wenn openHAB tausend Zeichen als Namen vorschlägt, niemand hindert Dich daran, eigene, sinnvollere Namen zu verwenden (z.B. TopfpflanzenWasser und TopfpflanzenSensorFeuchte)
Ich weiss Udo du hast Recht. Die Labels der Item zu ändern ist für mich ja kein Problem. Aber die IDs zu ändern dafür müsste ich ja das Item neu anlegen und verlinken. Kann ich denn die ID irgendwie einfacher ändern?

Hätte ich damals beim anlegen wohl schon besser aufpassen müssen. Man ist halt immer schnell wenn man was neues hat dies auszuprobieren.

Lg Sven
openhab 4.1.0.M Docker (Qnap)
influxDB 1.8.2 Docker (Qnap)
Grafana v8.3.3 Docker (Qnap)
Deconz 2.19.03 Docker (Qnap)
Homematic (Raspberrymatic Pi 3B+)
Grafana, Phoscon, Shelly, Gardena, Tuya
Camera IP Binding mit ffmpeg
Solaredge PV Anlage mit 8kW Speicher (solaredgeBinding)
u.v.m.

Lg zinnik

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

Re: Pushover Binding Item State mit senden

Beitrag von udo1toni »

Ja, das ist die Kehrseite der UI Konfiguration...
In einer Textdatei änderst Du einfach den Namen ab, das ist zwar streng genommen keine Änderung, sondern das Löschen des alten Items und das Neuanlegen als neues Item, aber Du musst eben nur die ID ändern, die gesamte Konfiguration bleibt einfach bestehen.

Das geht aber auch mit UI-Items, nur eben nicht über die UI.
Einzelne Schritte:
  1. openHAB stoppen. Das ist eine Operation am offenen Herzen!
  2. ins Verzeichnis $OPENHAB_USERDATA/jsondb/ wechseln (z.B. auf dem Pi mit openHABian /var/lib/openhab/jsondb/)
  3. Es gibt hier drei relevante Dateien, org.openhab.core.items.Item.json, org.openhab.core.items.Metadata.json und org.openhab.core.thing.link.ItemChannelLink.json.
  4. Jede dieser Dateien solltest Du am besten sichern (z.B. per cp org.openhab.core.items.Item.json org.openhab.core.items.Item.json.bak)
  5. Du öffnest hintereinander die drei Dateien und änderst jedes Vorkommen der ID passend ab. Du achtest peinlich genau darauf, keine weiteren Änderungen an der Datei (insbesondere der Struktur) vorzunehmen, insbesondere entfernst Du keine Anführungszeichen oder fügst welche hinzu ;)
  6. Du wechselst ins Verzeichnis $OPENHAB_USERDATA/persistence/rrd4j/ und änderst dort die Dateinamen nach dem gleichen Schema ab. Default gibt es für jedes Item eine Datei mit der Endung .rrd.
  7. Du startest openhAB und prüfst, ob die Itemnamen geändert wurden.
Natürlich musst Du noch weitere Stellen anpassen, das sind sämtliche Sitemaps und Pages, Charts, *.persist Dateien, halt alles, wo Du die Items verwendet hast, deren Namen Du ändern möchtest. Da sind ide beidne Konfigurationsvarianten aber identisch :) schon die Änderung der *.rrd Dateinamen ist ein Schritt, der auch über die Textdateien händisch zu vollziehen ist.

Die Fülle der Möglichkeiten, wo die IDs auftauchen ist natürlich der Grund, warum openHAB hier nichts vorsieht - Das Risiko, an eine Stelle nicht zu denken ist einfach zu hoch, und das Geschrei der Anwender wäre unabwendbar...
So kann das Entwicklerteam sagen: "Pech, leg es neu an!" oder halt: "Mach es zu Fuß, auf eigene Verantwortung!"
Der eigentliche Aufwand hält sich aber in Grenzen, man muss nur an alle Stellen denken, wo das Item verwendet wird :)
Und man muss aufpassen, innerhalb der json Datei keinen Unsinn anzustellen, das sollte klar sein...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten