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

jemu75

Wie sieht es mit der Aktualisierung der Werte direkt in FHEMWEB aus? Werden die Werte hier unmittelbar aktualisiert oder auch erst nach Browserrelooad?

draddy

nein fhem web aktualisiert sie sofort.

wiegesagt, ist kein Weltuntergang, aber ich wusste irgendwo ist mir das massiv aufgefallen das es eben nicht klappt. ;)

oder müsste da  was geändert werden?

        "mid1": ["myLabel::%s"],
        "right2": ["currentTitle::%s"]

das ist aus der Template Info sektion.
dabei ist myLabel ein Userreading und currentTitel default reading vom Kodi Modul beides wird erst nach Reload 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

jemu75

#17
Kannst du bitte mal http://[meine FHEM-IP]:[mein FHEM Port]/fhem/fhemapp/index.html#/syslog aufrufen und beobachten, ob beim Aktualisieren der betreffenden readings irgendwas merkwürdiges auftaucht.

Edit: Wenn dort sowas wie "No Handling for this FHEM data." auftaucht, wäre das interessant zu wissen. Du kannst in dem syslog auch nach "no handling" suchen, da je nach Traffic die Logeinträge recht schnell durchlaufen ;)

draddy

#18
da kommt gar nix an xD

oder muss ich irgendwie debug / loglevel ändern? hab aktuell  debugLevel 0 in der Config?

____________________________________________________________________________

also mit debuglevel 5 kommt da wohl alles

aber nix von no handling oder so, kann auch die 2 Readings "myLabel" und "currentTitel" sehen (mit dem jeweiligen Wert)

im kodi Template kommt nix ohne reload.
habe auch mal noch ne main ebene gemacht, wo ich die 2 readings als text und text2 rein genommen habe - da passiert auch nix ohne reload.

wenn ich noch was testen soll, melden ;)

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

Für die Fehlersuche ist das debuglevel 5 sinnvoll. Merkwürdig ist, wenn du die Aktualisierung der readings in dem Logging sehen kannst, sie aber nicht im Template ankommen.
Kannst du den debugModus bitte mal aktivieren und dir dann im kodi template das jsonObject (Symbol {} oben rechts im Template) mal beobachten, ob dort die Änderung zu sehen ist?
Wenn möglich bitte mal das komplette json Objekt als "Schnappschuss" hier posten.

draddy

#20
ist auch leer wie es aussieht ...


{
"Name":
"Kodi_Jens",
"Internals":
{
"DEF":
"192.168.177.14 tcp kodi xxx",
"DeviceName":
"192.168.177.14:9090",
"FD":
"12",
"FUUID":
"6236ef01-f33f-0d8f-a257-2104439a08e9bb7e",
"FVERSION":
"70_KODI.pm:0.255760/2022-01-28",
"Host":
"192.168.177.14",
"LAST_RECV":
"1648921852",
"NAME":
"Kodi_Jens",
"NR":
"104",
"NextID":
"39586",
"PARTIAL":
"",
"Port":
"9090",
"Protocol":
"tcp",
"STATE":
"0:opened 1:opened 2:playing 3:playing 4:opened 5:opened
ntv: Deluxe Alles was Spass macht",
"TYPE":
"KODI"
}
"Readings":
{
"3dfile":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"channel_002":
{
"Value":
"KiKA",
"Time":
"2022-04-02 09:18:50"
}
"channel_003":
{
"Value":
"ntv",
"Time":
"2022-04-02 09:18:50"
}
"channel_004":
{
"Value":
"Anixe",
"Time":
"2022-04-02 09:18:50"
}
"channel_005":
{
"Value":
"bw family",
"Time":
"2022-04-02 09:18:49"
}
"channel_006":
{
"Value":
"rbb Berlin",
"Time":
"2022-04-02 09:18:50"
}
"channel_007":
{
"Value":
"DMAX",
"Time":
"2022-04-02 09:18:50"
}
"channel_008":
{
"Value":
"ZDF",
"Time":
"2022-04-02 09:18:50"
}
"channel_009":
{
"Value":
"ZEE.ONE",
"Time":
"2022-04-02 09:18:50"
}
"channel_010":
{
"Value":
"Nitro",
"Time":
"2022-04-02 09:18:50"
}
"channel_011":
{
"Value":
"kabel eins",
"Time":
"2022-04-02 09:18:50"
}
"channel_012":
{
"Value":
"RTLZWEI",
"Time":
"2022-04-02 09:18:50"
}
"channel_013":
{
"Value":
"WDR Köln HD",
"Time":
"2022-04-02 09:18:49"
}
"channel_014":
{
"Value":
"ZDFinfo",
"Time":
"2022-04-02 09:18:50"
}
"channel_015":
{
"Value":
"3sat",
"Time":
"2022-04-02 09:18:50"
}
"channel_016":
{
"Value":
"Das Erste HD",
"Time":
"2022-04-02 09:18:50"
}
"channel_017":
{
"Value":
"ProSieben",
"Time":
"2022-04-02 09:18:50"
}
"channel_018":
{
"Value":
"Bloomberg",
"Time":
"2022-04-02 09:18:50"
}
"channel_019":
{
"Value":
"MDR Thüringen",
"Time":
"2022-04-02 09:18:50"
}
"channel_020":
{
"Value":
"SIXX",
"Time":
"2022-04-02 09:18:50"
}
"channel_021":
{
"Value":
"L-TV",
"Time":
"2022-04-02 09:18:50"
}
"channel_022":
{
"Value":
"ServusTV",
"Time":
"2022-04-02 09:18:49"
}
"channel_023":
{
"Value":
"CNBC",
"Time":
"2022-04-02 09:18:50"
}
"channel_024":
{
"Value":
"MTV",
"Time":
"2022-04-02 09:18:50"
}
"channel_025":
{
"Value":
"arte",
"Time":
"2022-04-02 09:18:50"
}
"channel_026":
{
"Value":
"DELUXE MUSIC",
"Time":
"2022-04-02 09:18:50"
}
"channel_027":
{
"Value":
"SWR BW",
"Time":
"2022-04-02 09:18:50"
}
"channel_028":
{
"Value":
"CNN",
"Time":
"2022-04-02 09:18:50"
}
"channel_029":
{
"Value":
"SAT.1 GOLD",
"Time":
"2022-04-02 09:18:50"
}
"channel_030":
{
"Value":
"Radio Bremen TV",
"Time":
"2022-04-02 09:18:50"
}
"channel_031":
{
"Value":
"kabel eins Doku",
"Time":
"2022-04-02 09:18:50"
}
"channel_032":
{
"Value":
"NDR Niedersachsen",
"Time":
"2022-04-02 09:18:50"
}
"channel_033":
{
"Value":
"TLC",
"Time":
"2022-04-02 09:18:50"
}
"channel_034":
{
"Value":
"VOX",
"Time":
"2022-04-02 09:18:50"
}
"channel_035":
{
"Value":
"BR Fernsehen Süd",
"Time":
"2022-04-02 09:18:50"
}
"channel_036":
{
"Value":
"Super RTL",
"Time":
"2022-04-02 09:18:50"
}
"channel_037":
{
"Value":
"ProSieben MAXX",
"Time":
"2022-04-02 09:18:50"
}
"channel_038":
{
"Value":
"hr-fernsehen",
"Time":
"2022-04-02 09:18:50"
}
"channel_039":
{
"Value":
"tagesschau24",
"Time":
"2022-04-02 09:18:50"
}
"channel_040":
{
"Value":
"ONE",
"Time":
"2022-04-02 09:18:50"
}
"channel_041":
{
"Value":
"ARD-alpha",
"Time":
"2022-04-02 09:18:50"
}
"channel_042":
{
"Value":
"TOGGO plus",
"Time":
"2022-04-02 09:18:50"
}
"channel_043":
{
"Value":
"RTL",
"Time":
"2022-04-02 09:18:50"
}
"channel_044":
{
"Value":
"SR Fernsehen",
"Time":
"2022-04-02 09:18:50"
}
"channel_045":
{
"Value":
"phoenix",
"Time":
"2022-04-02 09:18:50"
}
"channel_046":
{
"Value":
"SAT.1",
"Time":
"2022-04-02 09:18:50"
}
"channel_047":
{
"Value":
"COMEDY CENTRAL",
"Time":
"2022-04-02 09:18:50"
}
"channel_048":
{
"Value":
"Radio Sunshine Live",
"Time":
"2022-04-02 09:18:50"
}
"channel_049":
{
"Value":
"ANTENNE BAYERN",
"Time":
"2022-04-02 09:18:50"
}
"channel_050":
{
"Value":
"FM4",
"Time":
"2022-04-02 09:18:50"
}
"channel_051":
{
"Value":
"SWR3",
"Time":
"2022-04-02 09:18:50"
}
"channel_052":
{
"Value":
"Die Maus",
"Time":
"2022-04-02 09:18:50"
}
"channel_053":
{
"Value":
"1LIVE",
"Time":
"2022-04-02 09:18:50"
}
"channel_054":
{
"Value":
"ZDF_neo HD",
"Time":
"2022-04-02 09:18:50"
}
"channel_055":
{
"Value":
"VOXup",
"Time":
"2022-04-02 09:18:50"
}
"channel_056":
{
"Value":
"WELT",
"Time":
"2022-04-02 09:18:50"
}
"channel_057":
{
"Value":
"N24 Doku",
"Time":
"2022-04-02 09:18:50"
}
"channel_058":
{
"Value":
"ZDF",
"Time":
"2022-04-02 09:18:50"
}
"channel_059":
{
"Value":
"Das Erste",
"Time":
"2022-04-02 09:18:50"
}
"channel_060":
{
"Value":
"Bloomberg",
"Time":
"2022-04-02 09:18:50"
}
"channel_061":
{
"Value":
"hr-iNFO",
"Time":
"2022-04-02 09:18:50"
}
"channel_062":
{
"Value":
"YOU FM",
"Time":
"2022-04-02 09:18:50"
}
"channel_063":
{
"Value":
"hr4",
"Time":
"2022-04-02 09:18:50"
}
"channel_064":
{
"Value":
"hr3",
"Time":
"2022-04-02 09:18:50"
}
"channel_065":
{
"Value":
"hr1",
"Time":
"2022-04-02 09:18:50"
}
"channel_066":
{
"Value":
"hr2",
"Time":
"2022-04-02 09:18:50"
}
"channel_067":
{
"Value":
"WDR Event",
"Time":
"2022-04-02 09:18:50"
}
"channel_068":
{
"Value":
"1LIVE diGGi",
"Time":
"2022-04-02 09:18:50"
}
"channel_069":
{
"Value":
"COSMO",
"Time":
"2022-04-02 09:18:50"
}
"channel_070":
{
"Value":
"WDR 5",
"Time":
"2022-04-02 09:18:50"
}
"channel_071":
{
"Value":
"WDR 4",
"Time":
"2022-04-02 09:18:50"
}
"channel_072":
{
"Value":
"WDR 2 Rheinland",
"Time":
"2022-04-02 09:18:50"
}
"channel_073":
{
"Value":
"WDR 3",
"Time":
"2022-04-02 09:18:50"
}
"channel_074":
{
"Value":
"SR 3 Saarlandwelle",
"Time":
"2022-04-02 09:18:50"
}
"channel_075":
{
"Value":
"SR 2 KulturRadio",
"Time":
"2022-04-02 09:18:50"
}
"channel_076":
{
"Value":
"BR-Heimat",
"Time":
"2022-04-02 09:18:50"
}
"channel_077":
{
"Value":
"SR 1 Europawelle",
"Time":
"2022-04-02 09:18:50"
}
"channel_078":
{
"Value":
"PULS",
"Time":
"2022-04-02 09:18:50"
}
"channel_079":
{
"Value":
"BR Schlager",
"Time":
"2022-04-02 09:18:50"
}
"channel_080":
{
"Value":
"BR24live",
"Time":
"2022-04-02 09:18:50"
}
"channel_081":
{
"Value":
"BR24",
"Time":
"2022-04-02 09:18:50"
}
"channel_082":
{
"Value":
"BR-KLASSIK",
"Time":
"2022-04-02 09:18:50"
}
"channel_083":
{
"Value":
"BAYERN 3",
"Time":
"2022-04-02 09:18:50"
}
"channel_084":
{
"Value":
"Bayern 1",
"Time":
"2022-04-02 09:18:50"
}
"channel_085":
{
"Value":
"Bayern 2",
"Time":
"2022-04-02 09:18:50"
}
"channel_086":
{
"Value":
"Tele 5",
"Time":
"2022-04-02 09:18:50"
}
"channel_087":
{
"Value":
"SPORT1",
"Time":
"2022-04-02 09:18:49"
}
"channel_088":
{
"Value":
"EUROSPORT 1",
"Time":
"2022-04-02 09:18:50"
}
"channelgroup_001_label":
{
"Value":
"Alle Kanäle",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_001_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_002_label":
{
"Value":
"Alle Kanäle",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_002_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_003_label":
{
"Value":
"ARD",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_003_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_004_label":
{
"Value":
"SDTV",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_004_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_005_label":
{
"Value":
"HDTV",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_005_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_006_label":
{
"Value":
"Unitymedia",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_006_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_007_label":
{
"Value":
"TV channels",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_007_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_008_label":
{
"Value":
"ZDFvision",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_008_type":
{
"Value":
"tv",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_009_label":
{
"Value":
"Unitymedia",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_009_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_010_label":
{
"Value":
"Radio channels",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_010_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_011_label":
{
"Value":
"ARD SWR",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_011_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_012_label":
{
"Value":
"ARD WDR",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_012_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_013_label":
{
"Value":
"ARD HR",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_013_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_014_label":
{
"Value":
"ARD SR",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_014_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_015_label":
{
"Value":
"ARD BR",
"Time":
"2022-04-02 09:18:49"
}
"channelgroup_015_type":
{
"Value":
"radio",
"Time":
"2022-04-02 09:18:49"
}
"currentAlbum":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentArtist":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentAudioStream_bitrate":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_channels":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_codec":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_index":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_isdefault":
{
"Value":
"0",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_isimpaired":
{
"Value":
"0",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_isoriginal":
{
"Value":
"0",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_language":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_name":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentAudioStream_samplerate":
{
"Value":
"0",
"Time":
"2022-04-02 19:56:52"
}
"currentMedia":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentOriginaltitle":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentShowtitle":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentTitle":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"currentTrack":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"currentaudiostream":
{
"Value":
"HASH(0x5593ece37e30)",
"Time":
"2022-04-02 19:56:52"
}
"episode":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"episodeid":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"fullscreen":
{
"Value":
"on",
"Time":
"2022-04-02 19:56:52"
}
"id":
{
"Value":
"3",
"Time":
"2022-04-02 19:56:52"
}
"label":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"movieid":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"mute":
{
"Value":
"off",
"Time":
"2022-04-02 19:56:52"
}
"myLabel":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"myPlayTimePCT":
{
"Value":
"93.7",
"Time":
"2022-04-02 19:56:52"
}
"name":
{
"Value":
"Kodi",
"Time":
"2022-04-02 19:56:52"
}
"openchannel":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"partymode":
{
"Value":
"off",
"Time":
"2022-04-02 19:56:52"
}
"playItem":
{
"Value":
"ntv: Deluxe Alles was Spass macht",
"Time":
"2022-04-02 19:56:52"
}
"playStatus":
{
"Value":
"playing",
"Time":
"2022-04-02 19:56:52"
}
"playlist":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"repeat":
{
"Value":
"off",
"Time":
"2022-04-02 19:56:52"
}
"season":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"shuffle":
{
"Value":
"off",
"Time":
"2022-04-02 19:56:52"
}
"skin":
{
"Value":
"Aeon Nox: SiLVO(skin.aeon.nox.silvo)",
"Time":
"2022-04-02 19:56:52"
}
"songid":
{
"Value":
"",
"Time":
"2022-04-02 19:51:15"
}
"speed":
{
"Value":
"1",
"Time":
"2022-04-02 19:56:52"
}
"state":
{
"Value":
"opened",
"Time":
"2022-04-02 09:11:03"
}
"stereoscopicmode":
{
"Value":
"off",
"Time":
"2022-04-02 19:56:52"
}
"system":
{
"Value":
"wake",
"Time":
"2022-04-02 09:11:03"
}
"tState":
{
"Value":
"channel",
"Time":
"2022-03-31 10:09:54"
}
"thumbnail":
{
"Value":
"image://http%3a%2f%2f192.168.177.233%3a9981%2fimagecache%2f1127/",
"Time":
"2022-04-02 19:56:52"
}
"time":
{
"Value":
"00:46:51.000",
"Time":
"2022-04-02 19:56:52"
}
"totaltime":
{
"Value":
"00:50:00.000",
"Time":
"2022-04-02 19:56:52"
}
"tvshowid":
{
"Value":
"-1",
"Time":
"2022-03-27 13:38:07"
}
"type":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
"version":
{
"Value":
"19.2-20211006-52c19a0728 stable",
"Time":
"2022-04-02 19:56:52"
}
"videolibrary":
{
"Value":
"update",
"Time":
"2022-03-26 16:28:12"
}
"volume":
{
"Value":
"83",
"Time":
"2022-04-02 19:56:52"
}
"year":
{
"Value":
"",
"Time":
"2022-04-02 19:56:52"
}
}
"Attributes":
{
"appOptions":
"{ "template": "kodiremote1", "name": "Kodi Jens", "home": true, "room": "Jens", "sortby": "004", "setup":{ "show": ["system:quit:false", "state:disconnected:false"], "expanded": true, "size": ["col-12 col-md-4 col-lg-4"], "status": { "bar": ["myPlayTimePCT::%n"] } } }",
"compatibilityMode":
"kodi",
"devStateIcon":
"0.opened:rc_UP:up 1.opened:rc_PREVIOUS:prev+all 2.playing:rc_PAUSE:playpause+all 2.paused:rc_PLAY:play+all 2.stopped:rc_PLAY:select 3.playing:rc_STOP:stop+all 3.paused:rc_STOP:stop+all 3.stopped:rc_PLAY:select 3.playing:rc_STOP:stop+all 4.opened:rc_NEXT:next+all 5.opened:rc_DOWN:down ",
"icon":
"kodi_icon@#31AFE1",
"pvrEnabled":
"1",
"room":
"Jens",
"stateFormat":
"0:state 1:state 2:playStatus 3:playStatus 4:state 5:state
currentArtist playItem",
"updateInterval":
"60",
"userReadings":
"myLabel { ReadingsVal($name,"type","") eq "channel" ? (ReadingsVal($name,"label","")) : (ReadingsVal($name,"type","") eq "song" ? (ReadingsVal($name,"currentAlbum","")) : "")}, playItem { ReadingsVal($name,"playStatus","") eq "playing" ? ("".ReadingsVal($name,"myLabel","").": ".ReadingsVal($name,"currentTitle","")) : ""}, myPlayTimePCT {myPlayedPCT(hms2secs(ReadingsVal($name,"totaltime","1")),hms2secs(ReadingsVal($name,"time","1")))}, openchannel { ReadingsVal($name,"type","") eq "channel" ? (ReadingsVal($name,"label","")) : ""}",
"webCmd":
"volume"
}
"Options":
{
"template":
"kodiremote1",
"name":
"Kodi Jens",
"home":
true,
"room":
"Jens",
"sortby":
"004",
"setup":
{
"status":
{
"bar":
[
"myPlayTimePCT::%n"
]
}
"main":
[
{
"show":
[
"tState:channel:false"
]
"leftBtn":
[
"state::mdi-skip-previous"
]
"leftClick":
[
"state::prev"
]
"midBtn":
[
"playStatus:playing:mdi-pause",
"playStatus:stopped:mdi-stop",
"playStatus::mdi-play"
]
"midClick":
[
"playStatus:playing:pause",
"playStatus::play"
]
"midLong":
[
"playStatus:playing:stop",
"state::select"
]
"rightBtn":
[
"state::mdi-skip-next"
]
"rightClick":
[
"state::next"
]
}
{
"text":
[
"myLabel::%s"
]
"text2":
[
"currentTitle::%s"
]
}
{
"show":
[
"tState:other:false"
]
"leftBtn":
[
"tState:channel:mdi-arrow-down-drop-circle-outline"
]
"leftClick":
[
"tState:channel:down"
]
"midBtn":
[
"tState:channel:mdi-remote-tv"
]
"midMenu":
[
"ARD:openchannel Das Erste HD",
"ZDF:openchannel ZDF",
"DMAX:openchannel DMAX",
"ntv:openchannel ntv",
"ZDF neo:openchannel ZDF_neo HD"
]
"rightBtn":
[
"tState:channel:mdi-arrow-up-drop-circle-outline"
]
"rightClick":
[
"tState:channel:up"
]
}
{
"leftBtn":
[
"state::mdi-home"
]
"leftClick":
[
"state::home"
]
"midBtn":
[
"state::mdi-menu-up::#31AFE1"
]
"midClick":
[
"state::up"
]
"rightBtn":
[
"state::mdi-information-variant"
]
"rightClick":
[
"state::showosd"
]
}
{
"leftBtn":
[
"state::mdi-menu-left::#31AFE1"
]
"leftClick":
[
"state::left"
]
"midBtn":
[
"state::mdi-kodi::#31AFE1"
]
"midClick":
[
"state::select"
]
"midLong":
[
"state::contextmenu"
]
"rightBtn":
[
"state::mdi-menu-right::#31AFE1"
]
"rightClick":
[
"state::right"
]
}
{
"leftBtn":
[
"state::mdi-arrow-u-left-top"
]
"leftClick":
[
"state::back"
]
"midBtn":
[
"state::mdi-menu-down::#31AFE1"
]
"midClick":
[
"state::down"
]
"rightBtn":
[
"state::mdi-menu"
]
"rightMenu":
[
"contex:contextmenu",
"off:off",
"----------------:",
"ARD:openchannel Das Erste HD",
"ZDF:openchannel ZDF",
"DMAX:openchannel DMAX",
"ntv:openchannel ntv",
"ZDF neo:openchannel ZDF_neo HD",
"----------------:",
"Mode TV:setreading %d tState channel",
"Mode Media:setreading %d tState other"
]
}
{
"leftBtn":
[
"state::mdi-volume-minus"
]
"leftClick":
[
"state::volumeDown"
]
"midBtn":
[
"mute:off:mdi-volume-high",
"mute::mdi-volume-off"
]
"midClick":
[
"mute:off:mute",
"mute::mute"
]
"rightBtn":
[
"state::mdi-volume-plus"
]
"rightClick":
[
"state::volumeUp"
]
}
]
"info":
{
"left1":
[
"mute:on::mdi-volume-off",
"playStatus:playing::mdi-play",
"playStatus:stopped::mdi-stop",
"playStatus:::mdi-pause"
]
"left2":
[
"state::%d",
"currentArtist:$:%s"
]
"mid1":
[
"myLabel::%s"
]
"right2":
[
"currentTitle::%s"
]
}
"size":
[
"col-12 col-md-4 col-lg-4"
]
"expand":
true,
"expanded":
true,
"show":
[
"system:quit:false",
"state:disconnected:false"
]
}
"device":
"Kodi_Jens",
"show":
true,
"status":
{
"level":
94,
"color":
"success",
"isActive":
true,
"error":
null
}
"info":
{
"left1Icon":
"mdi-play",
"left1IconColor":
"",
"left1Text":
"",
"left2Icon":
"",
"left2IconColor":
"",
"left2Text":
"%d",
"mid1Icon":
"",
"mid1IconColor":
"",
"mid1Text":
"",
"mid2Icon":
"",
"mid2IconColor":
"",
"mid2Text":
"",
"right1Icon":
"",
"right1IconColor":
"",
"right1Text":
"",
"right2Icon":
"",
"right2IconColor":
"",
"right2Text":
""
}
"component":
"templ_default"
}
}


nach reload dann z.B.

"currentTitle":
{
"Value":
"Deluxe Alles was Spass macht",
"Time":
"2022-04-02 19:57:52"
}


also spiegelt das verhalten wieder ... die frage ist eben warum ... man achte auf "myPlayTimePCT": ein userreading welches % wert der aktuellen sendung errechnet aus gesamtzeit und elapsed time - dieses funktioniert IMMER (habe ich für die statusbar drin)

hoffe das ist der auszug wie du willst, sonst melden  ^^

€dit:
wird immer mysteriöser ^^
es gibt ein weiteres Userreading, dieses verwende ich eigentlich nur in FhemWeb

playItem { ReadingsVal($name,"playStatus","") eq "playing" ? ("".ReadingsVal($name,"myLabel","")."   ".ReadingsVal($name,"currentTitle","")) : ""}

DIESES wird auch sofort in FhemAPP gezeigt wenn ich es setze, und aktualisiert wenn ich sender wechsel?!
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

heiliges blechle ....


myPlayTimePCT { ReadingsVal($name,"playStatus","") eq "playing" ? (myPlayedPCT(hms2secs(ReadingsVal($name,"totaltime","1")),hms2secs(ReadingsVal($name,"time","1")))) : 0},
myLabel { ReadingsVal($name,"playStatus","") eq "playing" ? (ReadingsVal($name,"type"," ") eq "channel" ? (ReadingsVal($name,"label"," ")) : (ReadingsVal($name,"type"," ") eq "song" ? (ReadingsVal($name,"currentAlbum"," ")) : " ")): " "},
myTitle { ReadingsVal($name,"playStatus","") eq "playing" ? (" ".ReadingsVal($name,"currentTitle"," ")) : " "},
playItem { ReadingsVal($name,"playStatus","") eq "playing" ? (ReadingsVal($name,"myLabel"," ")."   ".ReadingsVal($name,"myTitle"," ")) : " "},
openchannel { ReadingsVal($name,"type"," ") eq "channel" ? (ReadingsVal($name,"myLabel"," ")) : " "}


also nach viel rumprobieren und trixen ... bekomme ich mit diesen userreadings jetzt wohl zuverlässig meine Anzeige in FhemAPP
playItem kann ignoriert werden, das ist für den Status in Fhem WEB ...

myTitle hat erst funktioniert, nachdem ich " ". vor das ReadingsVal gesetzt habe, bei myLable hatte es gereicht überall statt "" die version mit " " zu machen ... die zusätzliche Abhängigkeit von playStatus habe ich nur gemacht, damit bei stop das Reading leer ist ...

Warum klappt es jetzt mit diesen Readings, aber nicht mit den default readings? gaukel ich durch " " FhemAPP wirklich was vor, was dann aktualisiert wird, wenn aber das Original Reading aktuell  leer ist, wirds nicht aktualisiert?

nach stop kann es in seltenen fällen ein Intervall dauern bis die Readings da sind und auch in FhemAPP angezeigt werden aber das kommt schon vom Modul aber wenn "myPlayTimePCT", "myLabel", "myTitle" in FhemWEB erscheinen, erscheinen sie nun auch in FhemAPP. Auch die Senderlisten Anzeige (welcher grüner Haken) klappt jetzt durch "openchannel" zuverlässig ...



@australien sorry fürs crashen, aber, ist damit vermutlich auch die Lösung für dich, ich vermute hier die gleichen Probleme wie bei mir, also versuche mit den Userreadings zu spielen, bis es passt, bei mir war es mit Ausnahme von "myTitle" oft ein Leerzeichen in den "empty readings"

eventuell kann uns hierzu auch noch jemand  mehr erklären, der tiefer in FHEM drin ist ;)


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

Möglicher Weise verschluckt sich FHEMApp bei leeren Readings. (also bei "")
Das würde erklären, weshalb es nach einfügen der Leerzeichen funktioniert.
Ich habe bei mir keine Redings im Einsatz, die nichts (i.s.v "") liefern. Muss mal schauen, ob ich das irgendwie nachstellen kann, damit ich sehe, wie FHEMApp auf leere Readings reagiert.

draddy

ja, das ist ja auch mein  verdacht, wobei es den Sonderfall

myTitle { ReadingsVal($name,"playStatus","") eq "playing" ? (" ".ReadingsVal($name,"currentTitle"," ")) : " "},

auch nicht erklärt, - wiegesagt, DAS hat erst geklappt nachdem ich " ". vor das ReadingsVal gesetzt habe ...

dazu ist auch noch

myArtist { ReadingsVal($name,"playStatus","") eq "playing" ? (ReadingsVal($name,"type", " ") eq "song" ? ReadingsVal($name,"currentArtist"," ") : " " ) : " " },

gekommen, da es mit Artist, wunder OH wunder, das gleiche Readingproblem gab ...
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Wolle02

Zitat von: jemu75 am 04 April 2022, 15:34:17
Möglicher Weise verschluckt sich FHEMApp bei leeren Readings. (also bei "")
Das würde erklären, weshalb es nach einfügen der Leerzeichen funktioniert.
Ich habe bei mir keine Redings im Einsatz, die nichts (i.s.v "") liefern. Muss mal schauen, ob ich das irgendwie nachstellen kann, damit ich sehe, wie FHEMApp auf leere Readings reagiert.

In dem Zusammenhang wäre es auch toll, wenn du mit nachstellen könntest wie sich FhemApp verhält, wenn es ein bestimmtes Reading überhaupt nicht gibt. Ich will mal ein Abfall-Template basteln, das auf dem Fhem-Modul Abfall aufbaut. In diesem Modul gibt es das Reading "now" z.B. nur, wenn heute auch Müll abgeholt wird. Ansonsten gibt es das Reading schlicht überhaupt nicht. Ich hab bislang keine Ahnung, ob sowas überhaupt funktioniert, wenn im Tempalte ein Reading abgefragt wird, das es gar nicht gibt.

draddy

also, ich würde sagen ein reading das es nicht gibt macht einfach nichts.

sprich, wenn du z.b. einen Text setzt der auf das reading geht, wird er eben nicht angezeigt. wenn es das reading dann gibt (Tageswechsel um 0:00) wird vermutlich ein Browser Reload nötig sein, damit er angezeigt wird.

das würde ich aus dem Verhalten besonders aus dem Kodi Template ableiten.
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

Zitat von: draddy am 04 April 2022, 16:50:36
also, ich würde sagen ein reading das es nicht gibt macht einfach nichts.

sprich, wenn du z.b. einen Text setzt der auf das reading geht, wird er eben nicht angezeigt. wenn es das reading dann gibt (Tageswechsel um 0:00) wird vermutlich ein Browser Reload nötig sein, damit er angezeigt wird.

das würde ich aus dem Verhalten besonders aus dem Kodi Template ableiten.

Die für FHEMApp benötigte Struktur eines FHEM-Device wird beim Laden der Seite erzeugt. D.h. wenn neue readings dazu kommen (wer macht eigentlich sowas?  8)) dann werden diese nicht automatisch übernommen.

Wolle02

Zitat von: jemu75 am 04 April 2022, 17:01:26
Die für FHEMApp benötigte Struktur eines FHEM-Device wird beim Laden der Seite erzeugt. D.h. wenn neue readings dazu kommen (wer macht eigentlich sowas?  8)) dann werden diese nicht automatisch übernommen.

Tja, den Modulautor gibt es leider nicht mehr, deswegen ist das wohl nicht so leicht zu ändern. Ansich funktioniert das Modul soweit gut, bis auf diese kleinen Schönheitsfehler. Dann muss ich wohl mal schauen, ob ich ein 'at' machen kann, das mir den Browser reloadet.

australien

Zitat von: draddy am 03 April 2022, 02:20:16

@australien sorry fürs crashen, aber, ist damit vermutlich auch die Lösung für dich, ich vermute hier die gleichen Probleme wie bei mir, also versuche mit den Userreadings zu spielen, bis es passt, bei mir war es mit Ausnahme von "myTitle" oft ein Leerzeichen in den "empty readings"

eventuell kann uns hierzu auch noch jemand  mehr erklären, der tiefer in FHEM drin ist ;)

Kein Thema!
Dieses Problem, Bug, trifft doch alle.
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

draddy

hast du es denn jetzt hinbekommen? ;)
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

ja, läuft mit " " ohne Probleme!

Danke dir und jemu75
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

jemu75

Zitat von: jemu75 am 04 April 2022, 15:34:17
Möglicher Weise verschluckt sich FHEMApp bei leeren Readings. (also bei "")
Das würde erklären, weshalb es nach einfügen der Leerzeichen funktioniert.
Ich habe bei mir keine Redings im Einsatz, die nichts (i.s.v "") liefern. Muss mal schauen, ob ich das irgendwie nachstellen kann, damit ich sehe, wie FHEMApp auf leere Readings reagiert.

Ich konnte das Problem jetzt nachstellen. In der Tat hat(te) FHEMApp ein Problem, wenn das Reading einen leeren Wert (NULL) geliefert hat. Ich habe ein Hotfix erstellt, mit dem das Problem gelöst ist.
@draddy: Damit kannst du dir das Erzeugen von " " (Leerzeichen) in den userreadings sparen.
Dennoch bin ich der Meinung, dass ein gut konfiguriertes reading in FHEM keine "undefinierten" (sprich NULL-Werte) Zustände haben sollte.  ;)

draddy

Zitat von: jemu75 am 08 April 2022, 15:49:05
@draddy: Damit kannst du dir das Erzeugen von " " (Leerzeichen) in den userreadings sparen.
Dennoch bin ich der Meinung, dass ein gut konfiguriertes reading in FHEM keine "undefinierten" (sprich NULL-Werte) Zustände haben sollte.  ;)
ja - jain ^^

also, ja, es sollte schon  etwas sein "nA" - "nix" - "keine daten" ... was auch immer.
aber grundlegend MUSS es null Readings  geben, die einfach sagen "da ist aktuell nix zum anzeigen"
ganz grundlegend ist da ein sauberer Umgang des Frontends mit "null" mMn sogar die bessere Möglichkeit - warum?
sagen wir - das Reading lautet, wenn nichts läuft z.b." "nA" dann muss ich doppelt im Frontend arbeiten, alla

"text1": ["reading:nA::", "reading::%s"]

wenn das Frontend sauber mit null umgehen kann, reicht einfach

"text": ["reading::%s"]


weil dann einfach nix angezeigt wird, wenn nix da ist;
bei einem "nix" wert wie "nA" muss ich dem Frontend sagen "wenn 'nA' schreibe nichts hin"

wiegesagt, man kann, wenn man es weiss, mit beidem umgehen, ist nur meine Meinung ;)

mal wieder DANKE für deine Arbeit! :)

Gruss
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V