Wieso gehört Notepad++ nicht dazu?
Ist dort doch auch einstellbar ob Tabs oder Leerzeichen und ob 1,2,3,4 ... Leerzeichen.
Cheers
Claudia
Wieso gehört Notepad++ nicht dazu?
Ist dort doch auch einstellbar ob Tabs oder Leerzeichen und ob 1,2,3,4 ... Leerzeichen.
Cheers
Claudia
Danke. Hat geklappt.
Hätte jetzt nicht gedacht, dass das Einrücken so wichtig ist. Kenne das zwar von PHP, aber dachte bisher immer, es dient nur zur besseren Übersicht.
Dann fummel ich mal weiter und melde mich beim nächsten Hänger.
Das ist sogar immens wichtig in Python, da darüber erkannt wird was zu einem Codeblock gehört.
In anderen Sprachen hast Du ja Klammern (wie in C/C++ ...) oder End statements wie in VB, aber
Python nutzt da das einrücken.
Cheers
Claudia
Um genau zu sein 4 Leerzeichen
das wäre natürlich schön
grob kannst Du Dir merken, wenn Du einen Doppelpunkt verwendest mußt Du die nächste Zeile einrücken.
if c_username == "":
c_url = 'http://' + c_ip + ':' + c_port + '/'
else:
c_url = 'http://' + c_username + ':' + c_password + '@' + c_ip + ':' + c_port + '/'
und darauf achten dass Du immer die gleichen Zeichen zum einrücken benutzt, sprich entweder mit Tabs oder mit Leerzeichen aber
nicht mischen -> kann zu unerwünschten Verhalten führen.
Cheers
Claudia
>Wenn es dann nicht mehr ruckelt, können wir das Netzwerk ausschließen
da warst Du gedanklich schon einen Schritt weiter , oder?
Sollte heißen: Wenn es dann noch immer ruckelt, können wir das Netzwerk ausschliessen, oder?
Wobei ich da nicht zu 100% zustimmen würde, da es ja sein könnte, das es ein lokales (RPI/Kodi/LibreELEC) UND
ein netwerktechnisches Problem gibt. Ob das wahrscheinlich ist, is wieder was anderes
Cheers
Claudia
>wann machst du dir eigentlich mal ein Avatar
War da nicht was mit Frauen und Entscheidungen treffen
Soll ich jetzt eine sexy Himmelsgöttin sein oder doch eher der schnuckeliche Hase,
vielleicht eine Drachentöterin, oder eine Assasine oder
besser dem männlichen Kopfkino überlassen?
Cheers
Claudia
hast Du netzwerkseitige Problem schon überprüft?
Sprich
ifconfig eth0
um zu sehen ob auffällig viele Pakete Schwieirigkeinten machen
und
dmesg |grep eth0
um zu sehen ob der Adapter im richtigen Duplex Mode registriert ist (Gegenseite, sprich Router ebenfalls testen)
Mit iperf den Traffic gemessen?
Cheers
Claudia
>Die Flyby-Info im Display wäre halt schon noch schick.
Ist das ein offener Punkt bei Dir, sprich implementieren und testen oder läuft mein Code nicht?
Nur um sicherzustellen das wir auf dem gleichen Stand sind, das angehängte zip
sollte schon funktionieren und auf der seriellen Konsole die Displayasugaben erzeugen.
Bin leider noch nicht dazugekommen, das Skript etwas zu vereinfachen, da ich momentan mit dem LE Buildprozeß kämpfe.
Cheers
Claudia
also bei mir hing der RPi längere Zeit per Hifiberry DAC (Klinke) an nem alten Verstärker ohne Fernbedienung. Da ist es durchaus praktisch, wenn man die Lautstärke von Kodi über die Fernbedienung des TVs regeln kann.
und der PI hat das Signal über HDMI-CEC erhalten?
Cheers
Claudia
Ja, ist so Tabs und Leerzeichen sind vermischt -> kann, muß aber nicht funktionieren.
Magst Du die Struktur sowie es momentan ist beibehalten oder darf ich das umschreiben?
Z.B wird in fast jeder do... Funktion der gleich try...except Block ausgeführt,
den könnte man ja in eine eigene Funktion packen und dann von den anderen aufrufen.
Ḿache ich gerne, habe aber ÜBERHAUPT kein Problem damit wenn Du sagst, nein, lass es wie es ist damit komme ich (besser) klar.
Hier der nicht geänderte Code (natürlich wurden die Tabs gegen Leerzeichen getauscht)
Cheers
Claudia
Eigentlich sollte da der Syntaxcheck zuschlagen, da ja nach einem if ... ein Einrücken erwartet wird.
Wahrscheinlich ist der SourceCode mit Tabs und Leerzeichen vermischt.
Ich besorge mir mal das von github und prüfe das.
Bis dann
Cheers
Claudia
Claudia: Danke, hat funktioniert, viele Tastendrücke geben Meldungen zurück! Leider hat sich aber auch hier bestätigt: Die Volume-Tasten dringen erst gar nicht bis zum RPi durch, es werden keine Meldungen erzeugt.
Wenn es Dir nur um die Volumen-Tasten geht, dann sorry, hab ich falsch verstanden, die werden
meines Wissens nie zum RPi3 durchgereicht da der HDMI Port am RPi3 kein HDMI ARC-Input kann.
Ist aber durchaus möglich, dass ich dies falsch verstanden habe. Wenn jemand mehr weiß bitte korrigieren.
Mit meinem Wissen, darf ich fragen, warum Du die Lautstärke über den RPi3, anstelle über den TV, steuern willst?
Macht für mich im ersten Moment keinen Sinn. Das würde ja heissen, der TV empfängt über die
Fernbedienung das Signal zum lauter/leiser stellen, gibt dies über die HDMI-Schnittstelle an den RPi3, welcher
dieses dann verarbeitet und wieder zurück an den TV sendet - klingt unlogisch, oder?
Cheers
Claudia
Kannst Du mir bitte noch etwas genauer beschreiben, wie ich diesen Befehl absetze? Und wenn der Befehl abgesetzt ist, drücke ich die Tasten auf der Remote, ja?
Hallo,
ja, so war das eigentlich gemeint aber hab gerade getestet und cec-client --monitor kann zwar aufgerufen werden, zeigt aber danach nichts an.
Was allerdings funktioniert, ist cec-client ohne Parameter aufzurufen, dann werden die gedruckten Tasten ausgegeben.
Hmm, seltsam, wie auch immer, dann halt so, nachdem cec-client aufgerufen wurde einen kurzen moment warten bis die Info
waiting for input
erscheint, dann kommen noch ein paar Meldungen wie
DEBUG: [ 1992] TV (0): power status changed from 'unknown' to 'on'
DEBUG: [ 1992] expected response received (90: report power status)
DEBUG: [ 1992] >> TV (0) -> Recorder 1 (1): report power status (90)
WARNING: [ 2206] unhandled response received: opcode=87 initiator=1 destination=f response=0
aber das kann bei jedem etwas anders aussehen - jedenfalls sollte dann nichts mehr kommen solangen nicht eine Taste gedrückt wird.
Ich drücke dann ein paar mal die Return-Taste damit ich eine Trennung von den vorherigen Messages habe.
Nach drücken einer Taste die auch durchgereicht wurde sieht man im Output Messages wie etwa
TRAFFIC: [ 272735] >> 01:44:45
DEBUG: [ 272735] SetCurrentButton stop (45) D:0ms cur:45
DEBUG: [ 272735] key pressed: stop (45) current(ff) duration(0)
DEBUG: [ 272735] Changed key stop (45) D:0ms cur:ff
DEBUG: [ 272736] CheckKeypressTimeout T:3162.766
DEBUG: [ 272736] Key stop: idle (duration:0) (45) timeout:1991795520ms (rel:1000,rep:0,prs:500,rel:0)
DEBUG: [ 272736] >> TV (0) -> Recorder 1 (1): user control pressed (44)
TRAFFIC: [ 273150] >> 01:8b:45
DEBUG: [ 273150] CheckKeypressTimeout T:3163.181
DEBUG: [ 273150] Key stop: idle (duration:0) (45) timeout:1991795520ms (rel:585,rep:0,prs:85,rel:0)
DEBUG: [ 273150] >> TV (0) -> Recorder 1 (1): vendor remote button up (8B)
DEBUG: [ 273735] CheckKeypressTimeout T:3163.766
DEBUG: [ 273735] Key unknown: released (duration:1000) (ff) timeout:2129675204ms (rel:1000,rep:0,prs:0,rel:0)
WARNING: [ 273840] unhandled response received: opcode=4 initiator=1 destination=0 response=0
WARNING: [ 273961] unhandled response received: opcode=82 initiator=1 destination=f response=0
WARNING: [ 274051] unhandled response received: opcode=8e initiator=1 destination=0 response=0
Damit kann eigentlich schon erkannt werden, dass der Stop Button gedrückt wurde.
Auf der Webseite http://www.cec-o-matic.com/ kann aber auch die eigentliche CEC-Message (TRAFFIC-Zeile)
wie zum Beispiel 01:8b:45 eingegeben werden und man bekommt angezeigt was dekodiert wurde.
Ein Messageblock sollte immer zwei TRAFFIC-Zeilen enthalten, die erste ist der Druck der Taste, die zweite das loslassen der Taste.
Cheers
Claudia
Edit: Achja, vergessen, ganz normal einen ssh session zum RPi aufbauen, einloggen und dann einfach den Befehl
cec-client
ausführen, das war es, dann werden die Messages am Terminal ausgegeben.
... und den LCD String bekommst Du nur wenn tr < ts ist (was immer das heissen mag)
if (ts > tr):
duration = int((ts - tr) *60*60*24)
print("Next Pass (Localtime): %s" % ephem.localtime(tr))
doLCD(ephem.localtime(tr))
if INFO:
print("UTC Rise Time : %s" % tr)
print("UTC Max Alt Time: %s" % tt)
print("UTC Set Time : %s" % ts)
print("Rise Azimuth: %s" % azr)
print("Set Azimuth : %s" % azs)
print("Max Altitude: %s" % altt)
print("Duration : %s" % duration)
Alles anzeigen
vielleicht testhalber ein doLCD... vor dem if(ts > tr)
Cheers
Claudia
// CONTROL LCD
int index = req.indexOf("/lcd/time/");
if (index != -1) {
Serial.println(req.substring(index+10));
respMsg = "OK: LCD NEW TIME SET";
}
// Read the first line of the request
String req = client.readStringUntil('\r');
printMillis();
Serial.println(req);
client.flush();
Alles anzeigen
Das funktioniert nicht aus 2 Gründen,
Du hast req.indexOf vor der Definition String req = ... aufgerufen, da existiert es noch nicht
und es würde auch nicht funtionieren, da client.readStringUntil('\r'); den String ja erstmal liest.
Heisst, den Control LCD Block vor z.B. Control LED aber auf jeden Fall hinter Read the first line of request Block.
Cheers
Claudia
habe Kodi auf einem RPi3 mit LibreELEC an einem Samsung TV im Einsatz.
Weiß nicht ob dir das bekannt ist, aber LibreELEC bringt das Tool cec-client mit, welches
einen Parameter --monitor akzeptiert. Wenn Du dies über eine ssh Verbindung aufrufst kannst Du
sehen welche Tasten zu LE druchgereicht werden und welche nicht.
Info: cec-client --monitor scheint den client nach Beendigung nicht mehr in den Listen-Mode zu setzen, heisst
RPi neu starten.
Cheers
Claudia
@no.spam - nur als update/info - bin noch am testen.
Ich gebe mir noch bis Ende nächster Woche, wenn ich bis dahin keinen Durchbruch habe werde ich es wohl nicht weiterverfolgen.
Aktuell habe ich ein Device und kann aufnehmen, aber manchmal auch nicht - - hab den Grund noch nicht gefunden wann es geht und wann nicht.
Cheers
Claudia
Sorry, weiß nicht wie diesen Post gelöscht bekomme.
@Raybuntu eine Frage, gestern habe ich LE für den RPi3 kompiliert, dauerte beim ersten Mal ~9 Stunden.
Jetzt bin ich gerade dabei LE für den Rock64 zu bauen und es dauert bereits 5 Stunden und ist immer noch am bauen.
Heisst das, dass jedes Projekt initial ~9 Stunden bei mir dauert?
Gibt es da keine Synergieeffekte? Mach ich ggf. etwas falsch?
Merci
Claudia