Hauptmenü

Text eines reading ausgeben

Begonnen von australien, 31 März 2022, 10:54:00

Vorheriges Thema - Nächstes Thema

australien

Hallo zusammen,

ich will einen Text ausgeben. Soweit kein Problem, nur soll dieser in einer Art IF aus einem anderen reading kommen.

"text": ["Input:Playlist:nextTrack_Artist %s"],
also, wenn reading Input auf Playlist steht, soll das reading nextTrack_Artist ausgegeben werden.

Entweder es funktioniert so gar nicht, oder ich habe einen Konten im Kopf!?!

Danke für Eure Inputs!
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

jemu75


australien

dacht ich mir, gibt es da einen Lösungsansatz?
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

draddy

#3
warum nicht das reading sofort auf nextTrack_Artist ?

den wird es doch vermutlich eh nur geben wenn es eine Playlist gibt, oder? (hab kein Sonos)

und wenn es keinen nextTrack gib (weil eben keine Playlist) ist die Ausgabe eben leer

beispiel aus dem Infobereich vom Shellyswitch:

"left2": ["power:0.1:%n.2w"],


wenn eingeschaltet, ist das reading Power grösser 0.1 wird also angezeigt, sonst (ist aus) wird nichts angezeigt
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

australien

Zitat von: draddy am 31 März 2022, 11:54:54
warum nicht das reading sofort auf nextTrack_Artist ?

den wird es doch vermutlich eh nur geben wenn es eine Playlist gibt, oder? (hab kein Sonos)


prinzipiell, ja, nur steht in dem reading auch etwas, wenn der Radio spiel, nämlich der alte Wert aus der Playlist.
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

draddy

hmhm

ok, dann würde mir noch ein userreading im fhem device einfallen

also sowas wie

mynext {Readingsval($name, "Input","") eq "Playlist" ? ReadingsVal($name, "nextTrack_Artist","") : ""}


d.h. wenn Input Playlist ist, wird mynext auf den nextTrack_Artist gesetzt, sonst ist das reading leer

dieses mynext nutzt in deinem Text
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Ich unterstütze den Ansatz von draddy mit dem userreading. Es ist generell besser, die logischen Funktionen in FHEM zu belassen und nicht zu viel ins Frontend zu verlagern. Zudem bietet FHEM selbst auch sehr komplexe Möglichkeiten zur Definition von userreadings, die ich ich FHEMApp garnicht nochmal nachbauen muss.  ;)
Ich bin inzwischen auch eher dabei, mir userreading zu erstellen und diese dann einfach in FHEMApp abzugreifen.

draddy

da wo es funktioniert auf jedenfall,

habe ich in meinem Kodi addon ja auch gemacht für sowas wie myLabel z.b.

myLabel { ReadingsVal($name,"type","") eq "channel" ? (ReadingsVal($name,"label","")) : (ReadingsVal($name,"type","") eq "song" ? (ReadingsVal($name,"currentAlbum","")) : "")}

wenn type auf channel steht ist myLable der aktuelle Sender, wenn es song ist, ist myLable das aktuelle Album, und sonst ist es leer. fisch geputzt. wer das nicht nutzen will, lässt es einfach weg, und es wird garnix angezeigt, weil das Readings von fhemAPP einfach ins leere läuft, tut auch keinem weh ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

australien

Danke für Eure Hilfe!

Hab es nun mit dem userreading gelöst und ich finde die Lösung in fhem sehr gut zu realisieren.
Einen Bug hat das alles noch, und zwar wenn ich von Playlist auf Radio und zurück schalte, kommt das reading nicht in der fhemapp an . Sobald die Seite neu aufgerufen wird ist wieder alles ok, aber wie gesagt, dass ist das geringste Problem.

Danke nocheinmal!
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

draddy

das kann leider passieren, gibt noch mehr so fälle, wo das nicht automatisch funktioniert.

F5 ist dein Freund, oder eventuell kann der Browser auch ein autoreload für die Seite machen (kA ob es das noch gibt, bei Opera gab es sowas vor 20 Jahren mal :D)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Zum Thema Aktualisierung von Werten, kann ich folgendes sagen:
1) alles was in FHEM automatisch aktualisiert wird, wird auch in FHEMApp automatisch aktualisiert.
2) wenn Werte nicht automatisch aktualisiert werden, dann liegt es oft an der Verwendung des FHEM Attributes "event-on-change-reading".
3) das readings in FHEM bzw. FHEMApp erst nach Browserreload aktualisiert werden, ist bei Beachtung von 2) eher untypisch.

draddy

#11
ok?!
also mir fällt das z.B. bei shellys auf wo ich eben Power anzeigen lasse, hier kann es passieren, dass das fhem device vom shelly erst beim nächsten reading nach dem einschalten den Powerwert bekommt (vorher 0) in diesem Fall z.b. erscheint es NICHT in FHEMAPP ohne manuellen Reload.

aber, ich beobachte mal genauer, war für mich bis jetzt nicht so tragisch ;)

€dit, hmm beim kurz test klappt es natürlich wie es sein soll ... xD
egal, ich achte einfach mal drauf vll. war das dann wirklich irgendwo wo auch event-on-change oder so drin war ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Bei den Shelly's habe ich einen Unterschied festgestellt, wenn ich die "normal" bzw. per MQTT einbinde. Bei MQTT werden die Änderung direkt an FHEM übermittelt und readings auch direkt aktualisiert. Das macht sich insbesondere dann bemerkbar, wenn man einen konvertionellen Schalter am Shelly hat und den Shelly dann über der Schalter schaltet. Hier sind Änderung erst stark verzögert in FHEM angekommen. Bei MQTT läuft es hingegen ohne Verzögerung.

draddy

ja, ist soweit ja auch klar, bei MQTT sendet der Client (Shelly) bei Änderung an den Server (FHEM).
beim Modul fragt dieses alle XX Sekunden beim Shelly nach Änderungen. Ohne Anpassung glaub alle 60 Sekunden ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

hier ... mein kodi Template - wenn ich nen Sender umschalte wird im Info kein Text angezeigt (EPG Titel und Sender Name) erst wenn ich Browser Reload mache steht es drin)
Genau so habe ich für das command "openchannel" ein passendes userreading "openchannel" gemacht (damit in der Menü liste der aktuelle Sender den haken bekommt ;)) auch dieser wird erst nach reload aktualisiert.

wusste doch, irgendwo war mir das massiv aufgefallen
event-on-change oder  event-on-update sind nicht gesetzt, aber auch wenn ich event-on-update auf .* setze, bekommt fhemAPP das nicht live mit ^^
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V