SCC Busware 1101 unter Buster lite nicht mehr zu öffnen

Begonnen von Sonic, 06 Dezember 2019, 22:37:07

Vorheriges Thema - Nächstes Thema

isy

Otto, ich bin die nächsten Stunden raus. Melde mich heute Abend wieder.
Bis dahin meinen Dank und Respekt für deinen Support!

Helmut (übrgens Helmut Otto genauer gesagt )
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Otto123

#61
Ja kein Problem.

Die Gruppenberechtigung hatte Klaus noch ins Spiel gebracht: usermod ...

Die Fehlermeldung mit der fehlenden Berechtigung ist mir auch unklar.

Egal kriegen wir schon irgendwie gebacken :)

Edit: Hast Du zwischen #56 und #58 neu gestartet?

Kannst Du nochmal in Folge:
sudo su
echo 17 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Ich denke es liegt an den Rechten:
ZitatUser   legt fest, unter welchem Benutzer der Service laufen soll (Standard: root)
Mit dem User=fhem Eintrag  in der fhem.service wird ja gleich der User fhem zum start genommen. Damit wird das Script EnableSCC auch unter dem User ausgeführt. Damit braucht dieser Benutzer Rechte um die gpio zu bearbeiten. Die bekommt er entweder als root oder als Gruppe gpio.
Zitatlrwxrwxrwx  1 root gpio    0 Dez 19 15:23 gpio17 -> ../../devices/platform/soc/fe200000.gpio/gpiochip0/gpio/gpio17

Mit dem usermod Befehl haben wir die Gruppe gesetzt, Kontrolle:
groups fhem
Du musst aber sicher nochmal starten, damit die Gruppenmitgliedschaft zieht. Danach sollte das Script und der Start laufen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

isy

#63
Hallo Otto,
I'll be back hi!

echo 17 > /sys/class/gpio/export
--> Keine FM oder sonst irgendwas

echo out > /sys/class/gpio/gpio17/direction
--> dito

echo 1 > /sys/class/gpio/gpio17/value
--> dito

groups fhem
fhem : dialout audio gpio


Den usermod Befehl - wo habe ich den abgesetzt?


FHEM läuft. Bluetooth ebenso, WLAN ist aus, so war der Plan.
Und der SCC läuft- FW Stand V 1.63 CSM868, Raspberry PI4 und Buster

Ehrlich: Ich habe den Faden verloren. Bin eher Anwendungsentwickler (gewesen)
Eine Anleitung könnte ich jetzt alleine nicht schreiben.  ;D
Wenn du mir hilfst, können wir ein SCC Wiki einstellen.



Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Es gibt im Syslog immer noch FM (der Bluetooth Müll ist weg):

Dec 19 20:44:04 fhem systemd[1]: Reached target Login Prompts.
Dec 19 20:44:04 fhem bash[503]: /opt/fhem/EnableSCC.sh: Zeile 2: /sys/class/gpio/gpio17/direction: Keine Berechtigung
Dec 19 20:44:04 fhem bash[503]: /opt/fhem/EnableSCC.sh: Zeile 3: /sys/class/gpio/gpio17/value: Keine Berechtigung
Dec 19 20:44:04 fhem systemd[1]: fhem.service: Control process exited, code=exited, status=1/FAILURE
Dec 19 20:44:04 fhem systemd[1]: fhem.service: Failed with result 'exit-code'.
Dec 19 20:44:04 fhem systemd[1]: Failed to start FHEM Home Automation.
Dec 19 20:44:05 fhem systemd[1]: Started OpenBSD Secure Shell server.
Dec 19 20:44:05 fhem systemd[1]: Reached target Multi-User System.
Dec 19 20:44:05 fhem systemd[1]: Reached target Graphical Interface.
Dec 19 20:44:05 fhem systemd[1]: Starting Update UTMP about System Runlevel Changes...
Dec 19 20:44:05 fhem systemd[1]: fhem.service: Service RestartSec=100ms expired, scheduling restart.
Dec 19 20:44:05 fhem systemd[1]: fhem.service: Scheduled restart job, restart counter is at 1.
Dec 19 20:44:05 fhem systemd[1]: Stopped FHEM Home Automation.
Dec 19 20:44:05 fhem systemd[1]: Starting FHEM Home Automation...
Dec 19 20:44:05 fhem systemd[1]: systemd-update-utmp-runlevel.service: Succeeded.
Dec 19 20:44:05 fhem systemd[1]: Started Update UTMP about System Runlevel Changes.
Dec 19 20:44:05 fhem systemd[1]: Started FHEM Home Automation.

Ein Weg wird erst zu einem Weg, wenn man ihn geht

Otto123

#65
Hi,

da das mit dem gpio17 ja prinzipiell unabhängig vom SCC geht (ich kann bloß die Auswirkung nicht lesen? Edit: Doch kann ich, ich habe einfach eine LED an GPIO17 gehangen ;)) habe ich jetzt nochmal folgendes durchgespielt:
#Alles als root machen
sudo su
#user fhem muss Mitglied in gpio sein!
usermod -aG gpio fhem
#Script erzeugen
cat <<EOF > /opt/fhem/EnableSCC.sh
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo 1 > /sys/class/gpio/gpio17/value
EOF
#/etc/systemd/system/fhem.service Datei ergänzen (muss schon existieren)
#sed fügt vor der Zeile ExecStart= eine Zeile ein.
#Mann kann es auch per Hand (nano) machen: ExecStartPre=/bin/bash /opt/fhem/EnableSCC.sh
sed -i '/^ExecStart=/ i \ExecStartPre=\/bin\/bash \/opt\/fhem\/EnableSCC.sh' /etc/systemd/system/fhem.service
#Test ob sed alles richtig gemacht hat
cat /etc/systemd/system/fhem.service
# Neustart um die neue Gruppe von user fhem wirksam zu machen
reboot

Der einleitende grundlegende Part der Vorbereitung der UART Schnitttstelle bleibt natürlich!
sudo su
# seriell-getty Dienst für ttyAMA0 dauerhaft deaktivieren
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service
# serielle Schnittstelle aktivieren und mit BT Schnittstelle tauschen
echo "enable_uart=1" >> /boot/config.txt
echo "dtoverlay=pi3-miniuart-bt" >> /boot/config.txt
echo "core_freq=250" >> /boot/config.txt
#Neustart
reboot

das funktioniert ohne Fehler. Kannst Du das nachvollziehen?
Dec 20 10:30:11 raspib nmbd[599]: Starting NetBIOS name server: nmbd.
Dec 20 10:30:11 raspib systemd[1]: Started LSB: start Samba NetBIOS nameserver (nmbd).
Dec 20 10:30:11 raspib systemd[1]: Starting LSB: start Samba SMB/CIFS daemon (smbd)...
Dec 20 10:30:20 raspib smbd[777]: Starting SMB/CIFS daemon: smbd.
Dec 20 10:30:20 raspib systemd[1]: Started LSB: start Samba SMB/CIFS daemon (smbd).
Dec 20 10:30:20 raspib systemd[1]: Starting Multi-User System.
Dec 20 10:30:20 raspib systemd[1]: Reached target Multi-User System.
Dec 20 10:30:20 raspib systemd[1]: Starting Graphical Interface.
Dec 20 10:30:20 raspib systemd[1]: Reached target Graphical Interface.
Dec 20 10:30:21 raspib systemd[1]: Starting Update UTMP about System Runlevel Changes...
Dec 20 10:30:21 raspib systemd[1]: Started Update UTMP about System Runlevel Changes.
Dec 20 10:30:21 raspib systemd[1]: Startup finished in 2.675s (kernel) + 44.919s (userspace) = 47.595s.


Edit: Wenn fhem nicht Mitglied der Gruppe gpio ist funktioniert es nicht und es kommt zu den schon von Dir genannten Fehlern.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Ich habe noch eine Idee:
Wenn man nicht in der fhem.service herumfummeln will, kann man das Script auch über FHEM beim Start von FHEM aufrufen. Ich weiß nicht ob der SCC damit klar kommt, aber ich denke schon.
define FHEMStart notify global:INITIALIZED "/bin/bash /opt/fhem/EnableSCC.sh"
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

isy

#67
Hallo Otto,
habe alles nochmal nachgestellt.
Geht leider nicht richtig!

Im Einzelnen:

Syslog:
/opt/fehm/EnableSCC.sh: Zeile 2: ......: Keine Berechtigung
/opt/fehm/EnableSCC.sh: Zeile 3 .......: Keine Berechtigung


groups fhem
fhem : dialout audio gpio


fhem.service meldet dann "scheduling restart", "Stopped FHEM Home Automation", "Starting FHEM Home Automation"
Fhem läuft und der SCC ebenso.

Es kommen dauernd Meldungen ins Log:
2019-12-20 18:06:01 CUL SCC UNKNOWNCODE A0CA6865A388C62000000B0DC2C::-60:SCC
Der SCC läuft mit der gleichen hmid wie mein altes System.

get SCC ccconf
SCC ccconf => freq:868.300MHz bWidth:101KHz rAmpl:33dB sens:8dB

Im Fhem Log gibt es folgende Meldung. Ich hatte mal den RFMode geändert.
2019.12.20 18:40:19 1: /dev/ttyAMA0 reappeared (SCC)
Damit hängt der SCC an der ttyAMA0 Schnittstelle

Was ich nicht geändert habe, ist in der Datei cmdline.txt die Zeile mit:
console=serial0, 115200 console tty1

Klaus hatte die Zeile geändert in:
dwc_otg.lpm_enable=0 console=tty1    usw.

Das könnte ich noch mal ändern. --> Hat nichts gebracht.

Gruß Helmut




Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

#68
Zitat von: Otto123 am 20 Dezember 2019, 12:39:53
Ich habe noch eine Idee:
Wenn man nicht in der fhem.service herumfummeln will, kann man das Script auch über FHEM beim Start von FHEM aufrufen. Ich weiß nicht ob der SCC damit klar kommt, aber ich denke schon.
define FHEMStart notify global:INITIALIZED "/bin/bash /opt/fhem/EnableSCC.sh"

Diese Version hat beim Kaltstart (sudo reboot) nicht funktioniert, aber beim "shutdown restart" aus der Fhem Kommandozeile, als Fhem wieder lief.
Die Fehlermeldungen aus dem Fhem Start Skript (fhem.service) sind natürlich weg.

Die permanenten SCC Meldungen im Log sind noch vorhanden.
Ich habe die Definition eines HM Heizungsreglers mal eben von Hand auf den neuen PI4 kopiert - der SCC funktionert gut!

Hier fehlen mit die Linux Kenntnisse:
Das Skript funktioniert tadellos, wie es scheint.

Gibt es nicht eine andere Möglichkeit, das Skript vor dem Start des Skripts fhem.service zu starten (über systemd) ?

Gruß Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

isy

Hallo Otto,
habe etwas gelesen und dein Script in die Datei /etc/rc.local eingebaut.

# EnableSCC
/opt/fhem/EnableSCC.sh

exit 0


EnableSCC.sh vorher ausführbar gemacht:
sudo chmod 777 EnableSCC.sh

So funktioniert es.
Ich denke, damit können man ein Wiki erstellen?

Gruß Helmut


Ein Weg wird erst zu einem Weg, wenn man ihn geht

Otto123

#70
Hallo Helmut,

viele Wege führen nach Rom. Der erste Satz hier gibt mir zu denken :)
https://wiki.ubuntuusers.de/rc.local/
Zitatrc.local ist seit dem Jahre 1983 obsolet.

ZitatGibt es nicht eine andere Möglichkeit, das Skript vor dem Start des Skripts fhem.service zu starten (über systemd) ?
Das die Idee mit dem notify erst beim restart klappt kann sein, dann war das ne blöde Idee. Haken dran.

Dann bleibt nur die Variante in systemd: ExecStartPre= ....
Warum die bei Dir Fehler wirft ist mir völlig unklar. Hast Du nochmal bei null begonnen?

In der cmdline.txt gibt es nichts zu ändern. Das macht die Befehlsfolge:
# seriell-getty Dienst für ttyAMA0 dauerhaft deaktivieren
systemctl stop serial-getty@ttyAMA0.service
systemctl disable serial-getty@ttyAMA0.service
systemctl mask serial-getty@ttyAMA0.service

Ich verstehe es nicht.

Gute Nacht Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

isy

Hallo Otto,

gute Nacht  auch von mir!
Und vielen Dank für das Durchhalten und den Support!

Ich werde mal sehen, wie ich eine Doku anlege.
So ein SCC für HM ist ja mehr oder weniger obsolet, so ähnlich wie local.rc   8)
Ich habe hauptsächlich einen HM-MOD-UART in Betrieb mit VCCU - das ist eine feine Sache mit zwei HM Gateways.

Ich werde mich noch ein wenig in systemd einlesen.
Wenn man für dein Script eine eigene Datei "EnableSCC.service" anlegt - könnte vielleicht klappen. Ich habe allerdings aktuell keine Ahnung, was da noch so drin stehen muss bzw. was die Einträge bedeuten. Vielleicht gibt es Vorlagen:
# /etc/systemd/system/EnableSCC.service
[Service]
Type=oneshot
RemainAfterExit=yes (oder "no"?)
ExecStart=/bin/bash /opt/fhem/EnableSCC.sh
[Install]
WantedBy=multi-user.target


Gab es 1983 schon Linux?  ;D

Ganz viele Grüße,
Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

Otto123

#72
Hallo Helmut,

naja der Urknall von der Zeitrechnung in allen Computern ist doch irgendwie 1. Januar 1970, 00:00 Uhr UTC. Seitdem gibt es wahrscheinlich auch sowas (also mit Rest DNA) wie Linux. ;)

Du denkst an einen extra Dienst mit systemd. Das ist sicher der falsche Weg, weil es dann irgendwie entkoppelt wird. Ich meine das Script in ExecStartPre in der systemd Unit fhem.service ist, wenn überhaupt, der sichere Punkt.
Klar man kann eine SCC.service Unit machen und diese aktivieren. Dann muss man im fhem.service eine Abhängigkeit einbauen, das SCC gestartet ist bevor fhem startet. Aber genau das macht ExecStartPre.

Kannst Du nochmal den Weg in #65 von null an durchgehen und testen?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Szlachta

#73
Hallo Otto,

bin grade dabei FHEM auf einen RPi 4 mit Buster umzuziehen und habe mit euren Infos 3x SCC + 1x CCD - beides vorher auf aktuellste Firmware geflasht - zum Laufen bekommen.

Ich kann bestätigen, dass dein Weg aus #65 funktioniert.

Danke & frohe Weihnachten!

PS Meine cmdline.txt sieht so aus:
dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait


Meine config.txt ist leicht anders (kein Core 250 und dtoverlay miniuart-bt):
#SCCs nutzen
dtoverlay=miniuart-bt
enable_uart=1

isy

Hallo Otto,
ja mache ich. Aktuell habe ich allerdings kaum Zeit - Vorbereitungen für's Fest mit der Familie.
Und prima Ergebnis, Szlachta.

Euch erst mal viele Grüße und Frohe Weihnachten!

Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht