Spielzeug :)
- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Spielzeug :)
Du musst einfach die App "leeren", also ein "" als Payload schicken.
Alternativ kannst Du auch über die Reihenfolge der Apps tricksen, aber das ist eher umständlich, Du musst ja ohnehin bei Aktualisierungen des Wertes das vollständige JSON senden, dann kannst Du es bei einem 0-Wert auch löschen.
Den "Beep" gibt es so nicht, Du kannst aber eine (beliebige) Tonfolge abspielen lassen, und zwar wahlweise als direkte Sequenz übergeben, oder Du speicherst die Melodie auf der Uhr und lässt die Datei "abspielen".
Schau Dir dazu am besten die offizielle Doku zu Awtrix3 an, die kannst Du direkt von Deiner Uhr aus aufrufen (WebUI -> Docs -> Getting started -> Features/Sounds bzw. Features/Apps. bzw. API/Mqtt/HTTP - jeweils linke Seite)
Alternativ kannst Du auch über die Reihenfolge der Apps tricksen, aber das ist eher umständlich, Du musst ja ohnehin bei Aktualisierungen des Wertes das vollständige JSON senden, dann kannst Du es bei einem 0-Wert auch löschen.
Den "Beep" gibt es so nicht, Du kannst aber eine (beliebige) Tonfolge abspielen lassen, und zwar wahlweise als direkte Sequenz übergeben, oder Du speicherst die Melodie auf der Uhr und lässt die Datei "abspielen".
Schau Dir dazu am besten die offizielle Doku zu Awtrix3 an, die kannst Du direkt von Deiner Uhr aus aufrufen (WebUI -> Docs -> Getting started -> Features/Sounds bzw. Features/Apps. bzw. API/Mqtt/HTTP - jeweils linke Seite)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 295
- Registriert: 22. Sep 2018 10:38
Re: Spielzeug :)
Wie machst Du das denn?

openHAB 4.3.3 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX
-
- Beiträge: 488
- Registriert: 6. Jan 2021 18:05
Re: Spielzeug :)
Das habe ich mit dem Mail Binding realisiert.Wie machst Du das denn?
IMAP fragt alle 30 minuten den account ab.
Der Ordnername heisst:
Code: Alles auswählen
Inbox
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 488
- Registriert: 6. Jan 2021 18:05
Re: Spielzeug :)
Perfekt, DankeDu musst einfach die App "leeren", also ein "" als Payload schicken.
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

-
- Beiträge: 488
- Registriert: 6. Jan 2021 18:05
Re: Spielzeug :)
Wie kann man denn 2 werte berechnen, welche in der "IF" stehen?
folgende Ausgangs situation:
in zeile 16 steht
und in zeile 17 steht
Ich möchte das in abhängigkeit von SOC (akku ladezustand) und SOC_set (Akku minimum einstellung) abhängig machen.
Grund: in der Aktuellen zeit steht der Akku minimum auf etwa 50 %, je länger die Sonnen tage werden, wird der Wert langsam von 50% auf 10 % sinken um einen größeren Akku nutzen zu erhalten.
Sicherlich ist es nur ein optischer Punkt auf einer Anzeige der Uhr, aber eventuell kann man das ja so realisieren das man diesen IF werte prozentual verschiebt.
Gruss
folgende Ausgangs situation:
Code: Alles auswählen
rule "awtrix soc"
when
Item SOC changed
then
if(!(newState instanceof Number))
return;
var Number nSOC = (newState as Number).floatValue
val nSOC_set = (SOC_set.state as Number).intValue
logInfo("awtrix","SOC liefert = ({})", SOC.state)
logInfo("awtrix","SOC_SET liefert = ({})", SOC_set.state)
var strIcon = "8481" // Bat grün
if(nSOC < 90) strIcon = "8480" // Bat gelb
if(nSOC < 60) strIcon = "8479" // Bat rot
val strZahl = String.format("%.0f",nSOC)
var json='{"pos" : 3,"text" : "' + strZahl + '%","icon" : ' + strIcon + ',"color" : "' + "#00FF00" + '"}'
if(nSOC <= nSOC_set) json='{"pos" : 3,"text" : " off ","icon" : 52463 ,"color" : "' + "#00FF00" + '"}'
AwTrixSOC.sendCommand(json)
end
Code: Alles auswählen
<90
Code: Alles auswählen
<60
Grund: in der Aktuellen zeit steht der Akku minimum auf etwa 50 %, je länger die Sonnen tage werden, wird der Wert langsam von 50% auf 10 % sinken um einen größeren Akku nutzen zu erhalten.
Sicherlich ist es nur ein optischer Punkt auf einer Anzeige der Uhr, aber eventuell kann man das ja so realisieren das man diesen IF werte prozentual verschiebt.

Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Spielzeug :)
Ich bin mir nicht sicher, ob ich die Aufgabenstellung korrekt erfasst habe, aber hier ein dynamisches "Angebot":
Ungetestet...
Das erhoffte
Verhalten:
Sollte einer der Eingabewerte SOC bzw. SOC_set ungültig sein, zeigt die App "Fehler" an (das Icon 2493 ist ein rotes Ausrufezeichen).
Sind beide Werte gültig, kommt es auf das Verhältnis von SOC zu SOC_set an.
(100 - SOC_set)/4 ist 1/4 der erlaubten Entnahmekapazität.
Die Untergrenze wird durch SOC_set gebildet, ab Unterschreiten dieses Grenzwertes springt die Anzeige auf off mit dem Icon 52463.
Wurden mehr als 3/4 der erlaubten Kapazität entnommen, springt das Icon auf rot.
Wurden mehr als 1/4 der erlaubten Kapazität entnommen, springt das Icon auf gelb.
Falls keine der oberen Bedingungen Zutrifft, wurde bisher weniger als 1/4 entnommen und die Anzeige kann grün sein
Das Zusammensetzen des JSON Objekts ist leider etwas unübersichtlich, alternativ müsste man je Entscheidungsblock zwei Variablen setzen, womit jeder Entscheidungsblock separat geklammert werden müsste - auch nicht schön...
Code: Alles auswählen
rule "awtrix soc"
when
Item SOC changed
then
var nSOC = -1 // default: Fehler
if(newState instanceof Number) // falls gültiger Wert
nSOC = (newState as Number).intValue // Wert übernehmen
var nSOC_set = -1 // default: Fehler
if(SOC_set.state instanceof Number)
nSOC_set = (SOC_set.state as Number).intValue
logInfo("awtrix","SOC = {}, SOC_set = {}", nSOC, nSOC_set)
var json='{"pos": 3, "text": "'
val strZahl = String.format("%d",nSOC) + " %"
if(nSOC < 0 || nSOC_set < 0) json = json + 'Fehler!", "icon": 2493' // Fehler
else {
val nBereich = (100 - nSOC_set)/4 // 1/4 der erlaubten Entnahme
if(nSOC < nSOC_set) json = json + ' off ", "icon": 52463' // off ab Grenzwert erreicht
else if(nSOC < 100 - nBereich*3) json = json + strZahl + '", "icon": 8479' // Bat rot ab 3/4 des Grenzwertes
else if(nSOC < 100 - nBereich) json = json + strZahl + '", "icon": 8480' // Bat gelb ab 1/4 des Grenzwertes
else json = json + strZahl + '", "icon": 8481' // Bat grün bis 1/4 des Grenzwertes
}
json = json + ', "color": "#00FF00"}'
AwTrixSOC.sendCommand(json)
end
Das erhoffte

Sollte einer der Eingabewerte SOC bzw. SOC_set ungültig sein, zeigt die App "Fehler" an (das Icon 2493 ist ein rotes Ausrufezeichen).
Sind beide Werte gültig, kommt es auf das Verhältnis von SOC zu SOC_set an.
(100 - SOC_set)/4 ist 1/4 der erlaubten Entnahmekapazität.
Die Untergrenze wird durch SOC_set gebildet, ab Unterschreiten dieses Grenzwertes springt die Anzeige auf off mit dem Icon 52463.
Wurden mehr als 3/4 der erlaubten Kapazität entnommen, springt das Icon auf rot.
Wurden mehr als 1/4 der erlaubten Kapazität entnommen, springt das Icon auf gelb.
Falls keine der oberen Bedingungen Zutrifft, wurde bisher weniger als 1/4 entnommen und die Anzeige kann grün sein

Das Zusammensetzen des JSON Objekts ist leider etwas unübersichtlich, alternativ müsste man je Entscheidungsblock zwei Variablen setzen, womit jeder Entscheidungsblock separat geklammert werden müsste - auch nicht schön...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 488
- Registriert: 6. Jan 2021 18:05
Re: Spielzeug :)
Funktioniert perfekt.
Habe zum testen einfach mal ein
abgesetzt.
Ging auch gleich der Wechselrichter in Standby
.
Auch mit dem Verstellen des untern SOC bereiches wird das icon dynamisch gewählt. Exakt so stelle ich mir das vor.
Danke dafür.
Aber was komisches:
Das icon 2493 wird falsch dargestellt. Im Web ist das korrekte zu sehen, unter awtrix nicht. ich habe mich für 9823 entschieden...
Edit:
Zeile 21 musste ich noch ein "=" einfügen...

Habe zum testen einfach mal ein
Code: Alles auswählen
SOC.postUpdate(-1)
Ging auch gleich der Wechselrichter in Standby


Auch mit dem Verstellen des untern SOC bereiches wird das icon dynamisch gewählt. Exakt so stelle ich mir das vor.

Danke dafür.
Aber was komisches:
Das icon 2493 wird falsch dargestellt. Im Web ist das korrekte zu sehen, unter awtrix nicht. ich habe mich für 9823 entschieden...
Edit:
Zeile 21 musste ich noch ein "=" einfügen...
Code: Alles auswählen
if(nSOC <= nSOC_set) json = json + ' off ", "icon": 52463' // off ab Grenzwert erreicht
Gruss mad-mike
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB)

- udo1toni
- Beiträge: 15240
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Spielzeug :)
Ja, stimmt, ich hab natürlich auf Unterschreiten des Grenzwertes getestet, nicht auf erreichen...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet