[gelöst] RPI_1wire und DS2408

Begonnen von dan1180, 19 November 2023, 11:06:05

Vorheriges Thema - Nächstes Thema

dan1180

Hallo zusammen,

ich habe gestern mein FHEM auf einem RPI4B neu aufgesetzt. Dabei bin ich über das neue Modul RPI_1wire gestolpert.

Set-up bisher:
  • 5xDS18B20 über 1wire und Modul GPIO4
  • DS2408 über USBBUS und OWSERVER/OWSWITCH

Nun möchte ich das gerne alles über das neue Modul anschließen auch wenn ich gelesen habe, dass der DS2408 noch nicht getestet ist.

Folgende Fragen dazu:
  • Der Zustand der "Schalter" wird mir verkehrt herum angezeigt. "off"=LED am Relais an, "on"=LED am Relais aus. Schalten kann ich zwar trotzdem aber ich finde das etwas verwirrend. Gibt es dafür einen Grund? Kann man das ändern?
  • Leider bietet das Modul nur die Zustände "on" und "off". Ist es möglich (ohne tiefreichende Programmierkenntnisse) hier noch ein "on-for-timer" zu nutzen? Kann ich das (in der Zwischenzeit) irgendwie über einen Dummy lösen?
  • Können die Namen der einzelnen Relais (pio0-7) irgendwie geändert werden?

Ich bin wirklich begeistert von dem Modul an sich, da es mir ermöglicht alle 1wire Geräte über 1 Modul zu steuern.

Vielen Dank für jede Hilfe,
Dan
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

#1
Hi Eisman,

Der Grund dafür, dass die Schalter invertiert sind ist genau der: konnte ich mangels HW nie testen.
Müsste sich hoffentlich mit der angehängten Version beheben lassen, wenn das das einzige Problem ist.

Edit: Also nur die Anzeige war falsch, oder? "set ... on" schaltet korrekt ein? Ich habe jetzt nämlich nur die Anzeige "umgedreht"

Kannst du deinen "on-for-timer" use case etwas beschreiben - was möchtest du genau erreichen?

Die Readingnamen sind fest, du könntest dir aber über userReadings eine "sprechende" Kopie anlegen - hilft dir allerdings nur zum Lesen
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Hi Adimarantis,
die Anfrage war von mir  ;D

Ja genau. Die pio's lassen sich problemlos und zuverlässig schalten, nachdem ich auf die Datei ,,output" im Verzeichnis des Device mit chmod die Berechtigung 775 gegeben habe. Nur ,,on" und ,,off" (bzw. 0 und 1) sind vertauscht.

Mit on-for-timer meine ich die Funktion, die die meisten schaltbaren Devices haben. Ich möchte meinen Mischer für die Fußbodenheizung steuern und muss dazu einen Ausgang für x Sekunden schalten.

Die Umbenennung ist das am wenigsten wichtige Thema für mich. Hätte halt der Übersicht gut getan. OWSWITCH hat dafür Attribute, falls du's mal anschauen magst.

Vielen Dank für die schnelle Reaktion. Bin gerade mit meinem Sohn beim Fußballturnier, werde es aber heute Abend auf jeden Fall noch testen!

Grüße,
Dan

PS: Ich stehe auch für weitere DS2408 Tests bereit, wenn du die Geduld aufbringst mir jeweils zu erklären was ich testen soll 😁

FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

OK, hab mir das mal bei RPI_GPIO angeschaut. Das ist eine standard Erweiterung für Devices in FHEM, die sich aber leider darauf stützt das es eine "set on" und "set off" Funktion geben muss - d.h. nur geht wenn das Device genau einen Wert schaltet. Beim DS2408 sind es ja 8 on/off Funktionen. Dafür ist es nicht ausgelegt.
Die Liste würde auch übelst lang werden: (8 Schalter)*(2 Zustände)*(4 Funktionen) plus (8 Schalter)*(3 allgemeine Funktionen) -> 88 Befehle
In so einem set-pulldown findet sich keiner mehr zurecht.
Selbst wenn man jetzt nur on/off-for-timer nimmt, sind es schon 16 Einträge (wobei man da zweistufige Befehle mit zwei Pulldowns machen könnte, wie ich es schon in Signalbot implementiert habe - machbar ist alles, müsste ich aber eben ausprogrammieren, da ich die setExtensions nicht nutzen kann.
Die unmittelbar einfachste Variante ist ein DOIF:
defmod DI_Warmwasser DOIF ([Warmwasser] eq "on") (set Warmwasser off)
attr DI_Warmwasser do always
attr DI_Warmwasser wait 300
So schalte ich meine Umwälzpumpe nach 5 Min wieder aus nachdem sie per Google Sprachbefehl eingeschaltet wurde.

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Hallo Adimarantis,

sorry, ich hatte dich wohl falsch verstanden. Es war nicht nur die Anzeige. Die Schaltung war falsch herum.
set...on schält das Relais (die LED) aus, set...off schält es ein. Die Anzeige hat zum falschen Schaltzustand gepasst (on=1, off=0).
Das neue Modul hat irgend einen anderen Fehler. Die Schaltung war auf einmal ganz wirr. Ich konnte einzelne pio's nur noch umschalten (z.B. 5 auf 6 auf 5 ...), andere haben nicht mehr zur Nummer gepasst (z.B. 2 war 3). Welche Nummern das genau waren; bitte nicht festnageln.

Ich habe nun erst mal wieder das "alte" installiert.

Zu deiner zweiten Nachricht: Ich habe nicht von RPI_GPIO gesprochen sondern von OWSWITCH. Dort funktioniert sowohl der Befehl "on-for-timer", als auch die Umbenennung der Kanäle.
Deine DOIF-Variante könnte funktionieren, wenn ich für jedes Delta-T ein eigenes DOIF schreibe. Mit on-for-timer konnte ich bei "viel zu heiß" 5 Sekunden lang schließen, bei "etwas zu heiß" 1 Sekunde, ...

@eisman:
Danke für die Hilfe mit dem Schalter. Da ich das dann aber für den Ölbrenner, die Fußbodenpumpe, die Heizkörperpumpe und für die Umwälzpumpe brauchen würde weiß ich nicht, ob es nicht einfacher wäre, wieder auf OWSWITCH zu wechseln?!

FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Hi Dan,

ok, wahrscheinlich kommt das jetzt durcheinander weil durchs "umdrehen" dann beim Setzen die Bitmaske nicht mehr stimmt.
Wenn ich weiss, dass es vorher - eben invertiert - ging kann ich mir das nochmal in Ruhe anschauen und muss ein paar Testfälle durchspielen, damit es wirklich geht. Vielleicht reicht es schon das Setzen einfach auch zu invertieren.
Ist halt ohne HW immer etwas umständlicher - als ich den DS2413 mit jemandem "aus der Ferne" implementiert habe, hat das auch einige Iterationen gebraucht.

Mit dem on-for-timer geht OWSWITCH auch einen Sonderweg (nimmt nicht die Standardfunktion von FHEM). Eigentlich auch kein Hexenwerk. Wie schaut dann das "set" Menü dort aus?

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Mal ein Schuss ins Blaue. Angehängte Version sollte einfach die Bits auch beim Schreiben invertieren.

Wenn das nicht klappt, bräuchte ich ein paar Experimente mit der "output" Datei in "/sys/bus/w1/devices/29-xxxxxxxxxxxx/" (was auch immer das xxx ist, dein 2408 müsste vorne eine 29- haben.

Die Datei einfach in verschiedenen Schaltzuständen wegkopieren (und einen Namen geben, womit man den Zustand erkennen kann, z.B. 1-0-1-0-0-0-0-0 für Port 0 und Port 3 sind an - der Rest ist aus.) und dann probieren ob man durch "cat datei >output" den entsprechenden Schaltzustand herstellen kann.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#7
Hi Adimarantis,

hat leider nicht funktioniert. Es lässt sich nichts mehr schalten. Weder über die Auswahl, noch über die Befehlszeile. Im Anhang findest du die output Datei jedes Kanals (00000000 - 00000001).

Ich mach das schon richtig? 58...pm Datei in /opt/fhem/FHEM kopieren, alte Datei überschreiben. Besitzer, Gruppe und Rechte anpassen und "shutdown restart"?

Noch ein weiteres Finding: Ich muss nach jedem Neustart die Rechte der Output-Datei neu setzen (775, kleiner habe ich noch nicht versucht).

Grüße,
Dan
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Hi Dan,

Danke,
schaut schonmal wie erwartet aus. Nur zur Sicherheit für den Schreibmodus:
Wenn du jetzt cat "output-00000000 >output" machst dann schalten alle Kanäle auf aus?
Und ebenso bei cat "output-00000001 >output" schaltet nur Kanal 7 ein (und alle anderen bleiben aus bzw werden ausgeschaltet)
bei "output-10000000 >output" schaltet Kanal 0 ein und Kanal 7 geht aus?

Dann kann ich das jetzt schön simulieren. Irgendwo hab ich wahrscheinlich noch einen Denkfehler beim Bitgefrickel drin.

Das mit den Rechten hatte ich mir schon gedacht. Für die Temperatursensoren hab ich da einen Test drin und stelle ein udev Script zur Verfügung. Das mache ich dann für die Schalter auch noch. Das udev wird dann beim Booten ausgeführt und setzt die Rechte entsprechend - dann ist Ruhe.

Du machst das schon richtig. Wenn du die Datei als "fhem" User drüberkopierst sollten alle Rechte eigentlich automatisch passen.
Ein "shutdown restart" ist nicht zwangsläufig notwendig, da reicht auch ein "reload 58_RPI_1Wire"

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#9
Servus,

das mit cat bekomme ich leider nicht hin. Ich habe folgendes versucht:
pi@raspberrypi:/sys/bus/w1/devices/29-000000191172 $ cat >output
01111000
cat: Schreibfehler: Die Datei ist zu gro?
pi@raspberrypi:/sys/bus/w1/devices/29-000000191172 $ cat >output
01000000
cat: Schreibfehler: Die Datei ist zu gro?
pi@raspberrypi:/sys/bus/w1/devices/29-000000191172 $

pi@raspberrypi:/sys/bus/w1/devices/29-000000191172 $ cat "output-00000001 >output"
cat: 'output-00000001 >output': Datei oder Verzeichnis nicht gefunden

Mache ich da etwas falsch?

Grüße,
Dan
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Also eigentlich war der zweite Ansatz fast richtig:
cat output-00000001 >outputohne Anführungszeichen. Sorry mein Fehler - ich wollte wahrscheinlich den ganzen Befehl "cat yy >xx" quoten und hab das erste Anführungszeichen falsch gesetzt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Adimarantis

Hab jetzt mal eine kleine Simulation gemacht und einen Fehler gefunden.
Schau mal ob das jetzt besser geht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#12
Yippie - es funktioniert!
Konnte alle ports mit on/off richtig schalten.

Der "cat"-Befehl hat aber immer noch nicht funktioniert. Im Anhang ein Screenshot meiner Versuche.

Mein Problem mit on-for-timer versuche ich aktuell über das "wait"-Attribut in meinem DOIF zu lösen. Klappt auch in den meisten Fällen.  ;D
Solltest du daran noch arbeiten (wollen), oder auch andere Befehle eines Schalters implementieren, teste ich gerne weiter. Auch gerne später mal melden, wenn ich dir mit dem DS2408 was testen soll.

Auf jeden Fall Viiieeelen Dank für das Modul und deine Unterstützung!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Super. Ok das mit dem "cat" ist jetzt ja nicht mehr wichtig, scheint ja so zu passen.

Probier mal die angehängte Version. Da hab ich jetzt on-for-timer und off-for-timer implementiert. Ich hoffe dabei hab ich nichts kaputt gemacht, also bitte auch das normale on/off nochmal testen.

Eine Frage wäre, ob man das jetzt so lässt (set dev pio1 on-for-timer 60) oder vereinfacht, indem set .. on einfach ein optionales Argument bekommt (was es jetzt zwangläufig auch hat, aber immer ignoriert wird).
Dann wäre der Syntax: "set dev pio1 on 60" - und ohne "60" halt permanent.

Ich hab jetzt auch mal einen Check darauf eingebaut ob "output" schreibbar ist. Wenn nicht, sollte eine Meldung im Device kommen und es wird mit "get udev" ein Script und eine Kurzanleitung angeboten, wie das zu konfigurieren ist.
Hier ist wichtig zu erwähnen, dass die Schreibrechte der Gruppe "gpio" gewährt werden - der "fhem" User also unbedingt dieser Gruppe angehören muss.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Hi,

also 50% funktionieren schon  ;D

Wenn ich on-for-timer direkt im Device auswähle, macht es was es soll: Einschalten, 10 Sekunden warten, Ausschalten.
Auch andersherum habe ich es getestet. Mit off-for-timer: Ausschalten, 10 Sekunden warten, Einschalten.

In einem DOIF eingebaut hat es dann aber nicht funktioniert. Der Port wurde ein-, aber nicht wieder ausgeschaltet. Wenn ich dann den Befehl in der Befehlszeile eingebe
set relais pio2 on-for-timer 10bekomme ich "Invalid duration -" zurück.

Manuelles (oder programmiertes) Ein-/Ausschalten (on/off) der Ports funktioniert nach wie vor.

Grüße!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Da war doch was  :)
Beim Programmieren dacht ich mir noch - auf den Fall musst du aufpassen, weil das Device die Parameter mit "," trennt. Und dann doch vergessen.

Ich hoffe das ist jetzt kein Schnellschuss, aber ich habs zumindest grob probiert. Sollte eigentlich jetzt gehen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Sieht gut aus!

on/off/on-for-timer/off-for-timer hat funktioniert:
  • Direkt im Device
  • Über die Befehlszeile
  • Aus einem DOIF heraus

Ich werde jetzt meine DOIFs umschreiben und mal alles laufen lassen. Kann übers Wochenende regelmäßig schauen, ob meine Heizung, und vor allem der Mischer für die Fußbodenheizung, läuft. Ich werde berichten...

Vielen lieben Dank soweit.
Gruß,
Dan
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Alles klar. Hab die inline Doku noch bisschen poliert und die Version eingecheckt.
Danke fürs Testen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Super. Ich habe dir zu danken. Das Testen war wohl der geringere Aufwand.

Vielleicht noch ein Hinweis zu den Schreibrechten auf "output". Ich hatte damit weiter manchmal Probleme und setze nun einfach über cron einen Befehl ab, der die Rechte der Datei bei jedem Neustart setzt.

Nochmal vielen Dank!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Für die Rechte ist eigentlich udev als standard Linux Weg gedacht.
Kannst du dazu nochmal die angehängte Version probieren?

Version einspielen, dann mal testweise die Schreibrechte von "output" wieder wegnehmen und diesmal auch ein "shutdown restart" weil der Test nur im "init" des Device durchgeführt wird.

Er sollte dann ein Hinweis zu den Rechten im Device erfolgen und ein "get udev" Befehl freigeschaltet werden.
Dieser erklärt genau was zu tun ist.
Wenn das so eingerichtet ist, sollte er bei einem Reboot die Rechte automatisch korrigieren.

In der vorherigen Version hat der Test noch nicht für alle switch Typen gegriffen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

Sieht erst mal gut aus!

Als ich die Schreibrechte runter genommen habe kam der udev-Kommentar. Nach dem Einrichten und einem Reboot hat es dann auf Anhieb wieder funktioniert (Schreibrechte waren da).

Ich hatte das schon bei den Temperatursensoren eingerichtet aber als es dann nicht getan hat, habe ich die cron-Variante gewählt. Nun habe ich gesehen, dass da noch keine Zeile für "output" mit drin war.

Jetzt lass ich das jetzt mal so laufen: Zeile in cron deaktiviert (#), udev eingerichtet.

Nochmal vielen Dank!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

#21
Hallo Adimarantis,

leider habe ich aktuell massiv Probleme mit dem Modul. Die Kanäle lassen sich nicht zuverlässig schalten und gehen immer wieder ohne erkennbaren Grund aus.

Ich habe bereits Folgendes versucht:
  • DS2408 ausgetauscht
  • GPIO gewechselt
  • FHEM auf Stand vom 28.11. zurückgesetzt
  • Alle DOIFs deaktiviert

Beim "Spielen" mit den Schaltern habe ich folgende Aufzeichnung aus dem LOG bekommen nachdem ich:
  • pio4 eingeschaltet
  • pio4 ausgeschaltet
  • pio5 eingeschaltet
  • pio2 eingeschaltet
  • pio2 ausgeschaltet
habe. pio4 und pio5 sind dann mit ausgegangen.

2023-12-03_20:56:23 Logfile clear
2023.12.03 20:56:27 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.03 20:56:27 2: tmpfvl: No data found in /sys/bus/w1/devices/28-0000055f5782/w1_slave
2023.12.03 20:56:53 3: relais set pio 4 on -

2023.12.03 20:56:53 3: relais: Switching 29-0000001acee4 to 239 (pio4 on) for (-)
2023.12.03 20:56:53 4: relais: Poll for 8p-switch took 0.018966 s
2023.12.03 20:56:58 3: relais set pio 4 off -

2023.12.03 20:56:58 3: relais: Switching 29-0000001acee4 to 255 (pio4 off) for (-)
2023.12.03 20:56:58 4: relais: Poll for 8p-switch took 0.017029 s
2023.12.03 20:56:59 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.03 20:56:59 4: relais: Poll for 8p-switch took 0.021933 s
2023.12.03 20:57:02 3: relais set pio 4 on -

2023.12.03 20:57:02 3: relais: Switching 29-0000001acee4 to 239 (pio4 on) for (-)
2023.12.03 20:57:02 4: relais: Poll for 8p-switch took 0.042973 s
2023.12.03 20:57:10 3: relais set pio 4 on -

2023.12.03 20:57:10 3: relais: Switching 29-0000001acee4 to 239 (pio4 on) for (-)
2023.12.03 20:57:10 4: relais: Poll for 8p-switch took 0.017042 s
2023.12.03 20:57:22 3: relais set pio 5 on -

2023.12.03 20:57:22 3: relais: Switching 29-0000001acee4 to 207 (pio5 on) for (-)
2023.12.03 20:57:22 4: relais: Poll for 8p-switch took 0.017072 s
2023.12.03 20:57:35 3: relais set pio 2 on -

2023.12.03 20:57:35 3: relais: Switching 29-0000001acee4 to 203 (pio2 on) for (-)
2023.12.03 20:57:35 4: relais: Poll for 8p-switch took 0.01702 s
2023.12.03 20:57:39 3: relais set pio 2 off -

2023.12.03 20:57:39 3: relais: Switching 29-0000001acee4 to 207 (pio2 off) for (-)
2023.12.03 20:57:39 4: relais: Poll for 8p-switch took 0.018958 s

Ich habe absolut keine Ahnung warum das jetzt passiert. Bisher lief das Modul...

Kurze Ergänzung nach einer Nachtschicht mit FHEM ;-)
Ich habe die Vermutung, dass die Rechte für "output" nicht ausreichen. Wenn ich diese mittels "chmod 777" änder, scheint alles wieder zu funktionieren. Allerdings haben sich diese Rechte bis heute Morgen wieder geändert. Ist das aus dem udev eine regelmäßige Routine, die die Rechte regelmäßig wieder überschreibt?
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Hi Dan,

Das udev Script ergänzt nur die Schreibrechte - da ich davon ausgehe (was beim Temperatursensor auch zu stimmen scheint) dass Leserechte schon bestehen.
Der Effekt den zu beschreibst könnte schon mit den Rechten zusammenhängen. Er muss ja immer alle 8 Schalter lesen und dann den verändern den er schalten will und alle 8 wieder setzen. Wenn er falsch liest, dann setzt er auch falsch.
Ändere mal das udev Script so, dass es chmod g+rw macht.
Dein fhem user muss ausserdem in der gpio Gruppe sein.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#23
Es scheint jetzt tatsächlich besser zu sein. Leider noch nicht wieder gut  :'(

Das Relais schält, für mich nicht nachvollziehbar, immer wieder aus und ein. Davon ist im LOG nichts zu sehen (trotz Verbose 4) aber ich sehen das in meinem SVG. Woran könnte das liegen?

Hier mein LOG:
2023.12.04 14:26:11 3: relais set pio 4 on -

2023.12.04 14:26:11 3: relais: Switching 29-0000001acee4 to 207 (pio4 on) for (-)
2023.12.04 14:26:11 4: relais: Poll for 8p-switch took 0.017054 s
2023.12.04 14:26:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:26:53 4: relais: Poll for 8p-switch took 0.023062 s
2023.12.04 14:27:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:27:53 4: relais: Poll for 8p-switch took 0.023845 s
2023.12.04 14:28:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:28:53 4: relais: Poll for 8p-switch took 0.022107 s
2023.12.04 14:29:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:29:53 4: relais: Poll for 8p-switch took 0.023172 s
2023.12.04 14:30:03 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:30:04 2: tmpfvl: No data found in /sys/bus/w1/devices/28-0000055f5782/w1_slave
2023.12.04 14:30:05 2: tmphzg: No data found in /sys/bus/w1/devices/28-0000055ed911/w1_slave
2023.12.04 14:30:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:30:53 4: relais: Poll for 8p-switch took 0.020122 s
2023.12.04 14:31:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:31:53 4: relais: Poll for 8p-switch took 0.021577 s
2023.12.04 14:32:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:32:53 4: relais: Poll for 8p-switch took 0.022119 s
2023.12.04 14:33:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:33:53 4: relais: Poll for 8p-switch took 0.022903 s
2023.12.04 14:34:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:34:53 4: relais: Poll for 8p-switch took 0.020183 s
2023.12.04 14:35:03 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:35:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:35:53 4: relais: Poll for 8p-switch took 0.022279 s
2023.12.04 14:36:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:36:53 4: relais: Poll for 8p-switch took 0.0238 s
2023.12.04 14:37:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:37:53 4: relais: Poll for 8p-switch took 0.039727 s
2023.12.04 14:38:01 2: tmpbrw: No data found in /sys/bus/w1/devices/28-0000055ee86d/w1_slave
2023.12.04 14:38:03 2: tmpfvl: No data found in /sys/bus/w1/devices/28-0000055f5782/w1_slave
2023.12.04 14:38:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:38:53 4: relais: Poll for 8p-switch took 0.022725 s
2023.12.04 14:39:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:39:53 4: relais: Poll for 8p-switch took 0.020308 s
2023.12.04 14:40:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:40:53 4: relais: Poll for 8p-switch took 0.023432 s
2023.12.04 14:41:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:41:53 4: relais: Poll for 8p-switch took 0.023124 s
2023.12.04 14:42:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:42:53 4: relais: Poll for 8p-switch took 0.019284 s
2023.12.04 14:43:00 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:43:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:43:53 4: relais: Poll for 8p-switch took 0.022212 s
2023.12.04 14:44:03 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:44:04 2: tmpfvl: No data found in /sys/bus/w1/devices/28-0000055f5782/w1_slave
2023.12.04 14:44:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:44:53 4: relais: Poll for 8p-switch took 0.022977 s
2023.12.04 14:45:04 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:45:05 2: tmpbrw: No data found in /sys/bus/w1/devices/28-0000055ee86d/w1_slave
2023.12.04 14:45:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:45:53 4: relais: Poll for 8p-switch took 0.025196 s
2023.12.04 14:46:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:46:53 4: relais: Poll for 8p-switch took 0.023136 s
2023.12.04 14:47:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:47:53 4: relais: Poll for 8p-switch took 0.02256 s
2023.12.04 14:48:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:48:53 4: relais: Poll for 8p-switch took 0.020651 s
2023.12.04 14:49:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:49:53 4: relais: Poll for 8p-switch took 0.023826 s
2023.12.04 14:50:04 2: tmpfvl: No data found in /sys/bus/w1/devices/28-0000055f5782/w1_slave
2023.12.04 14:50:05 2: tmphzg: No data found in /sys/bus/w1/devices/28-0000055ed911/w1_slave
2023.12.04 14:50:53 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:50:54 4: relais: Poll for 8p-switch took 0.0230399999999999 s
2023.12.04 14:51:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:51:54 4: relais: Poll for 8p-switch took 0.021327 s
2023.12.04 14:52:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:52:54 4: relais: Poll for 8p-switch took 0.022323 s
2023.12.04 14:53:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:53:54 4: relais: Poll for 8p-switch took 0.023458 s
2023.12.04 14:54:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:54:54 4: relais: Poll for 8p-switch took 0.019667 s
2023.12.04 14:55:01 2: tmpfrl: No data found in /sys/bus/w1/devices/28-00000b1b3da9/w1_slave
2023.12.04 14:55:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:55:54 4: relais: Poll for 8p-switch took 0.020644 s
2023.12.04 14:56:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:56:54 4: relais: Poll for 8p-switch took 0.024131 s
2023.12.04 14:57:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:57:54 4: relais: Poll for 8p-switch took 0.033462 s
2023.12.04 14:58:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:58:54 4: relais: Poll for 8p-switch took 0.022701 s
2023.12.04 14:59:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 14:59:54 4: relais: Poll for 8p-switch took 0.019898 s
2023.12.04 15:00:02 2: tmpauh: No data found in /sys/bus/w1/devices/28-0000055ecfd0/w1_slave
2023.12.04 15:00:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:00:54 4: relais: Poll for 8p-switch took 0.023211 s
2023.12.04 15:01:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:01:54 4: relais: Poll for 8p-switch took 0.01985 s
2023.12.04 15:02:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:02:54 4: relais: Poll for 8p-switch took 0.022634 s
2023.12.04 15:03:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:03:54 4: relais: Poll for 8p-switch took 0.020392 s
2023.12.04 15:04:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:04:54 4: relais: Poll for 8p-switch took 0.023593 s
2023.12.04 15:05:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:05:54 4: relais: Poll for 8p-switch took 0.018838 s
2023.12.04 15:06:54 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.04 15:06:54 4: relais: Poll for 8p-switch took 0.022319 s
2023.12.04 15:07:01 2: tmpkof: No data found in /sys/bus/w1/devices/28-0114328c83a7/w1_slave

pio4 wird zu keiner Zeit aus- oder wieder eingeschaltet.

Mein SVG zeigt aber diverse Unterbrechungen, die ich auch im Status des Device (pio4 steht auf 0) zu sehen sind. Hier das zugehörige LOG:

2023-12-04_14:24:59 tmpbrw temperature: 71.062
2023-12-04_14:25:53 relais pio4: 0
2023-12-04_14:25:53 relais pio5: 1
2023-12-04_14:25:59 tmpbrw temperature: 71.062
2023-12-04_14:26:00 tmpfvl temperature: 31.250
2023-12-04_14:26:01 tmphzg temperature: 57.437
2023-12-04_14:26:11 relais pio4: 1
2023-12-04_14:26:11 relais pio5: 1
2023-12-04_14:26:53 relais pio4: 1
2023-12-04_14:26:53 relais pio5: 1
2023-12-04_14:27:00 tmpbrw temperature: 71.062
2023-12-04_14:27:01 tmpfvl temperature: 48.000
2023-12-04_14:27:02 tmphzg temperature: 57.437
2023-12-04_14:27:53 relais pio4: 1
2023-12-04_14:27:53 relais pio5: 1
2023-12-04_14:27:59 tmpbrw temperature: 71.062
2023-12-04_14:28:00 tmpfvl temperature: 48.312
2023-12-04_14:28:01 tmphzg temperature: 57.437
2023-12-04_14:28:53 relais pio4: 1
2023-12-04_14:28:53 relais pio5: 1
2023-12-04_14:29:00 tmpbrw temperature: 71.000
2023-12-04_14:29:01 tmpfvl temperature: 44.500
2023-12-04_14:29:02 tmphzg temperature: 57.437
2023-12-04_14:29:53 relais pio4: 1
2023-12-04_14:29:53 relais pio5: 1
2023-12-04_14:30:00 tmpbrw temperature: 71.000
2023-12-04_14:30:53 relais pio4: 1
2023-12-04_14:30:53 relais pio5: 1
2023-12-04_14:30:59 tmpbrw temperature: 71.000
2023-12-04_14:31:00 tmpfvl temperature: 44.500
2023-12-04_14:31:01 tmphzg temperature: 57.437
2023-12-04_14:31:53 relais pio4: 1
2023-12-04_14:31:53 relais pio5: 1
2023-12-04_14:31:59 tmpbrw temperature: 71.000
2023-12-04_14:32:00 tmpfvl temperature: 45.000
2023-12-04_14:32:01 tmphzg temperature: 57.437
2023-12-04_14:32:53 relais pio4: 1
2023-12-04_14:32:53 relais pio5: 1
2023-12-04_14:33:00 tmpbrw temperature: 71.000
2023-12-04_14:33:01 tmpfvl temperature: 41.937
2023-12-04_14:33:02 tmphzg temperature: 57.375
2023-12-04_14:33:53 relais pio4: 1
2023-12-04_14:33:53 relais pio5: 1
2023-12-04_14:34:01 tmpfvl temperature: 39.875
2023-12-04_14:34:02 tmphzg temperature: 57.375
2023-12-04_14:34:02 tmpbrw temperature: 71.000
2023-12-04_14:34:53 relais pio4: 1
2023-12-04_14:34:53 relais pio5: 1
2023-12-04_14:35:00 tmpbrw temperature: 71.000
2023-12-04_14:35:01 tmpfvl temperature: 39.750
2023-12-04_14:35:02 tmphzg temperature: 57.375
2023-12-04_14:35:53 relais pio4: 1
2023-12-04_14:35:53 relais pio5: 1
2023-12-04_14:35:59 tmpbrw temperature: 71.000
2023-12-04_14:36:01 tmphzg temperature: 57.375
2023-12-04_14:36:01 tmpfvl temperature: 40.000
2023-12-04_14:36:53 relais pio4: 1
2023-12-04_14:36:53 relais pio5: 1
2023-12-04_14:37:00 tmpbrw temperature: 71.000
2023-12-04_14:37:02 tmpfvl temperature: 40.437
2023-12-04_14:37:02 tmphzg temperature: 57.375
2023-12-04_14:37:53 relais pio4: 0
2023-12-04_14:37:53 relais pio5: 0
2023-12-04_14:37:58 tmphzg temperature: 57.375
2023-12-04_14:38:53 relais pio4: 0
2023-12-04_14:38:53 relais pio5: 0
2023-12-04_14:38:55 tmpbrw temperature: 71.000
2023-12-04_14:38:56 tmpfvl temperature: 40.937
2023-12-04_14:38:57 tmphzg temperature: 57.312
2023-12-04_14:39:53 relais pio4: 0
2023-12-04_14:39:53 relais pio5: 0
2023-12-04_14:39:57 tmphzg temperature: 57.312
2023-12-04_14:39:58 tmpbrw temperature: 71.000
2023-12-04_14:40:00 tmpfvl temperature: 40.937
2023-12-04_14:40:53 relais pio4: 1
2023-12-04_14:40:53 relais pio5: 1
2023-12-04_14:40:59 tmpbrw temperature: 71.000
2023-12-04_14:41:01 tmpfvl temperature: 40.937
2023-12-04_14:41:02 tmphzg temperature: 57.187
2023-12-04_14:41:53 relais pio4: 0
2023-12-04_14:41:53 relais pio5: 0
2023-12-04_14:41:55 tmpbrw temperature: 70.937
2023-12-04_14:41:56 tmpfvl temperature: 42.062
2023-12-04_14:41:58 tmphzg temperature: 57.062
2023-12-04_14:42:53 relais pio4: 0
2023-12-04_14:42:53 relais pio5: 0
2023-12-04_14:42:57 tmpfvl temperature: 42.062
2023-12-04_14:42:57 tmphzg temperature: 56.812
2023-12-04_14:42:58 tmpbrw temperature: 70.937
2023-12-04_14:43:53 relais pio4: 1
2023-12-04_14:43:53 relais pio5: 1
2023-12-04_14:43:59 tmpbrw temperature: 70.937
2023-12-04_14:44:05 tmphzg temperature: 56.812
2023-12-04_14:44:53 relais pio4: 1
2023-12-04_14:44:53 relais pio5: 1
2023-12-04_14:45:00 tmpfvl temperature: 42.062
2023-12-04_14:45:01 tmphzg temperature: 56.125
2023-12-04_14:45:53 relais pio4: 1
2023-12-04_14:45:53 relais pio5: 1
2023-12-04_14:45:59 tmpbrw temperature: 70.937
2023-12-04_14:46:01 tmpfvl temperature: 45.437
2023-12-04_14:46:02 tmphzg temperature: 55.750
2023-12-04_14:46:53 relais pio4: 1
2023-12-04_14:46:53 relais pio5: 1
2023-12-04_14:46:59 tmpbrw temperature: 70.937
2023-12-04_14:47:01 tmpfvl temperature: 46.750
2023-12-04_14:47:02 tmphzg temperature: 55.375
2023-12-04_14:47:53 relais pio4: 1
2023-12-04_14:47:53 relais pio5: 1
2023-12-04_14:47:59 tmpbrw temperature: 70.937
2023-12-04_14:48:01 tmpfvl temperature: 44.312
2023-12-04_14:48:02 tmphzg temperature: 55.375
2023-12-04_14:48:53 relais pio4: 1
2023-12-04_14:48:53 relais pio5: 1
2023-12-04_14:49:00 tmpbrw temperature: 70.937
2023-12-04_14:49:01 tmpfvl temperature: 44.312
2023-12-04_14:49:02 tmphzg temperature: 54.625
2023-12-04_14:49:54 relais pio4: 1
2023-12-04_14:49:54 relais pio5: 1
2023-12-04_14:50:00 tmpbrw temperature: 70.937
2023-12-04_14:50:54 relais pio4: 1
2023-12-04_14:50:54 relais pio5: 1
2023-12-04_14:51:00 tmpbrw temperature: 70.937
2023-12-04_14:51:02 tmpfvl temperature: 42.687
2023-12-04_14:51:03 tmphzg temperature: 53.937
2023-12-04_14:51:54 relais pio4: 1
2023-12-04_14:51:54 relais pio5: 1
2023-12-04_14:52:00 tmpbrw temperature: 70.875
2023-12-04_14:52:02 tmpfvl temperature: 42.687
2023-12-04_14:52:03 tmphzg temperature: 53.625
2023-12-04_14:52:54 relais pio4: 1
2023-12-04_14:52:54 relais pio5: 1
2023-12-04_14:53:01 tmpbrw temperature: 70.937
2023-12-04_14:53:02 tmpfvl temperature: 42.687
2023-12-04_14:53:03 tmphzg temperature: 53.375
2023-12-04_14:53:54 relais pio4: 1
2023-12-04_14:53:54 relais pio5: 1
2023-12-04_14:53:55 tmpbrw temperature: 70.875
2023-12-04_14:53:57 tmpfvl temperature: 42.750
2023-12-04_14:53:58 tmphzg temperature: 53.250
2023-12-04_14:54:54 relais pio4: 0
2023-12-04_14:54:54 relais pio5: 0
2023-12-04_14:54:57 tmpfvl temperature: 42.750
2023-12-04_14:54:58 tmphzg temperature: 53.125
2023-12-04_14:54:59 tmpbrw temperature: 70.875
2023-12-04_14:55:54 relais pio4: 1
2023-12-04_14:55:54 relais pio5: 1
2023-12-04_14:56:01 tmpbrw temperature: 70.875
2023-12-04_14:56:02 tmpfvl temperature: 43.062
2023-12-04_14:56:03 tmphzg temperature: 53.000
2023-12-04_14:56:54 relais pio4: 1
2023-12-04_14:56:54 relais pio5: 1
2023-12-04_14:57:01 tmpbrw temperature: 70.875
2023-12-04_14:57:01 tmpfvl temperature: 43.000
2023-12-04_14:57:02 tmphzg temperature: 53.000
2023-12-04_14:57:54 relais pio4: 0
2023-12-04_14:57:54 relais pio5: 0
2023-12-04_14:58:01 tmpbrw temperature: 70.875
2023-12-04_14:58:02 tmpfvl temperature: 43.000
2023-12-04_14:58:02 tmphzg temperature: 52.937
2023-12-04_14:58:54 relais pio4: 1
2023-12-04_14:58:54 relais pio5: 1
2023-12-04_14:58:55 tmpbrw temperature: 70.875
2023-12-04_14:58:57 tmpfvl temperature: 43.062
2023-12-04_14:58:58 tmphzg temperature: 52.875
2023-12-04_14:59:54 relais pio4: 0
2023-12-04_14:59:54 relais pio5: 0
2023-12-04_14:59:57 tmpfvl temperature: 42.937
2023-12-04_14:59:58 tmphzg temperature: 52.812
2023-12-04_15:00:04 tmpbrw temperature: 70.875
2023-12-04_15:00:54 relais pio4: 0
2023-12-04_15:00:54 relais pio5: 0
2023-12-04_15:01:01 tmpbrw temperature: 70.875
2023-12-04_15:01:02 tmpfvl temperature: 44.187
2023-12-04_15:01:02 tmphzg temperature: 52.812
2023-12-04_15:01:54 relais pio4: 1
2023-12-04_15:01:54 relais pio5: 1
2023-12-04_15:02:00 tmpbrw temperature: 70.875
2023-12-04_15:02:02 tmpfvl temperature: 45.812
2023-12-04_15:02:02 tmphzg temperature: 52.750
2023-12-04_15:02:54 relais pio4: 1
2023-12-04_15:02:54 relais pio5: 1
2023-12-04_15:03:00 tmpbrw temperature: 70.875
2023-12-04_15:03:02 tmpfvl temperature: 45.812
2023-12-04_15:03:02 tmphzg temperature: 52.625
2023-12-04_15:03:54 relais pio4: 1
2023-12-04_15:03:54 relais pio5: 1
2023-12-04_15:04:01 tmpbrw temperature: 70.812
2023-12-04_15:04:02 tmpfvl temperature: 42.187
2023-12-04_15:04:02 tmphzg temperature: 52.562
2023-12-04_15:04:54 relais pio4: 1
2023-12-04_15:04:54 relais pio5: 1
2023-12-04_15:04:56 tmpbrw temperature: 70.812
2023-12-04_15:04:57 tmpfvl temperature: 42.187
2023-12-04_15:04:58 tmphzg temperature: 52.500
2023-12-04_15:05:54 relais pio4: 0
2023-12-04_15:05:54 relais pio5: 0
2023-12-04_15:05:57 tmpfvl temperature: 42.187
2023-12-04_15:05:58 tmphzg temperature: 52.437
2023-12-04_15:05:59 tmpbrw temperature: 70.812
2023-12-04_15:06:54 relais pio4: 1
2023-12-04_15:06:54 relais pio5: 1
2023-12-04_15:06:58 tmphzg temperature: 52.375
2023-12-04_15:06:59 tmpbrw temperature: 70.812
2023-12-04_15:06:59 tmpfvl temperature: 41.000
2023-12-04_15:07:54 relais pio4: 1
2023-12-04_15:07:54 relais pio5: 1
2023-12-04_15:08:00 tmpbrw temperature: 70.812
2023-12-04_15:08:02 tmpfvl temperature: 41.000
2023-12-04_15:08:03 tmphzg temperature: 52.250
2023-12-04_15:08:54 relais pio4: 1
2023-12-04_15:08:54 relais pio5: 1
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Schaltet das Relais tatsächlich aus und ein, oder zeigt er nur an, dass es ausgeschaltet wäre?
Was mich nämlich ebenfalls irritiert, ist die Anzahl an Fehlermeldungen ("no data") die du von deinen Temperatursensoren bekommst.
Da frage ich mich ob du nicht Störungen auf deinem 1Wire Bus hast und die Meldung "aus" tatsächlich einfach ein fehlerhaftes Auslesen des Status ist.
Wenn dann einfach "0" kommt, dürfte das als "alle PIOs an" intepretiert werden - da es aber nur 8 Bit sind, weiss ich nicht wie man erkennen kann, das es Fehler gibt. Bei den 2-Fach Schaltern sind die Bits im oberen Bereich nochmal invertiert - damit kann man Fehler erkennen.

Wenn ich auf meinen Raspi mit 10 Temperatursensoren schaue, dann geht der "failure" count auch hoch - da gibt es immer wieder Aussetzer. Ist z.B. die Frage ob die alle genug Strom bekommen.
Welche Dateien gibt es noch parallel zu "output" - kann man da evtl. irgendwo einen Fehler abfragen?

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#25
Ich habe keine Ahnung mehr, was mein System macht und was mein Beitrag dazu ist/war  :'(

Ich bekomme weder mein DS2408, noch auch nur einen meiner Temperatursensoren mehr angezeigt. Nicht in FHEM und nicht unter /sys/bus/w1/devices.
pi@raspberrypi:/sys/bus/w1/devices $ ls  -la
insgesamt 0
drwxr-xr-x 2 root root 0  5. Dez 22:40 .
drwxr-xr-x 4 root root 0  5. Dez 22:40 ..
lrwxrwxrwx 1 root root 0  5. Dez 23:02 00-180000000000 -> ../../../devices/w1_bus_master1/00-180000000000
lrwxrwxrwx 1 root root 0  5. Dez 23:02 00-580000000000 -> ../../../devices/w1_bus_master1/00-580000000000
lrwxrwxrwx 1 root root 0  5. Dez 23:02 00-980000000000 -> ../../../devices/w1_bus_master1/00-980000000000
lrwxrwxrwx 1 root root 0  5. Dez 22:40 w1_bus_master1 -> ../../../devices/w1_bus_master1

Ich habe dann nochmal jeden Schritt zum Anschließen der 1wire-Sensoren nachvollzogen und dabei gesehen, dass bei lsmod | grep w1 die Ausgabe w1_therm               28672  0 fehlt. Daher habe ich

# /etc/modules
w1-gpio pullup=1
w1-therm
nachgepflegt...w1-therm wird jetzt angezeigt aber es wird noch immer NICHTS erkannt.

Wie kann das sein? Es ist doch mal alles gelaufen? Kann mir ein defekter Sensor meinen Pi zerschossen haben?

Ich weiß noch nicht einmal mehr, wo ich mit der Fehlersuche weitermachen soll... :-\

EDIT:
Ist es möglich, dass ich mit meinen 5V an den Sensoren, mit denen ich am Pi3 bald 2 Jahre kein Problem hatte, mein GPIO am Pi4B zerschossen habe?
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

#26
So, ich habe mein 1wire jetzt mal auf GPIO17 gelegt und starte erst einmal mit dem DS2408 und nur zwei DS18B20. Das System läuft im Moment. Gibt es außer trial-and-error noch eine Möglichkeit einen defekten Temperatursensor zu finden?

Update:
Grundsätzlich läuft oben stehendes Setup. Zwei Phänomene sind aber aufgetreten:
  • Bei einem "set pio0 on-for-timer wurden pio4 und pio5 einfach auf 0 gesetzt (Relais hat auch tatsächlich ausgeschaltet).
  • Ca. eine halbe Stunde nach 1. wurden pio4 und pio5 wieder auf 0 gesetzt (Relais hat auch tatsächlich ausgeschaltet).

Beides Mal war im LOG nichts davon zu sehen?!
2023-12-06_11:43:21 Logfile clear
2023.12.06 11:53:38 3: relais set pio 6 on-for-timer 1

2023.12.06 11:53:38 3: relais: Switching 29-0000001acee4 to 143 (pio6 on-for-timer) for (1)
2023.12.06 11:53:39 3: relais set pio 6 off -

2023.12.06 11:53:39 3: relais: Switching 29-0000001acee4 to 207 (pio6 off) for (-)
2023.12.06 11:59:37 3: relais set pio 0 on-for-timer -

2023.12.06 11:59:37 3: relais: Switching 29-0000001acee4 to 206 (pio0 on-for-timer) for (-)
2023.12.06 11:59:38 3: relais set pio 6 on-for-timer 1

2023.12.06 11:59:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 11:59:39 3: relais set pio 6 off -

2023.12.06 11:59:39 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:01:38 3: relais set pio 6 on-for-timer 1

2023.12.06 12:01:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 12:01:39 3: relais set pio 6 off -

2023.12.06 12:01:39 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:03:38 3: relais set pio 6 on-for-timer 1

2023.12.06 12:03:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 12:03:39 3: relais set pio 6 off -

2023.12.06 12:03:39 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:05:38 3: relais set pio 6 on-for-timer 1

2023.12.06 12:05:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 12:05:39 3: relais set pio 6 off -

2023.12.06 12:05:39 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:07:38 3: relais set pio 6 on-for-timer 1

2023.12.06 12:07:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 12:07:39 3: relais set pio 6 off -

2023.12.06 12:07:39 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:09:38 3: relais set pio 6 on-for-timer 1

2023.12.06 12:09:38 3: relais: Switching 29-0000001acee4 to 142 (pio6 on-for-timer) for (1)
2023.12.06 12:09:40 3: relais set pio 6 off -

2023.12.06 12:09:40 3: relais: Switching 29-0000001acee4 to 206 (pio6 off) for (-)
2023.12.06 12:16:08 3: relais set pio 0 off -

2023.12.06 12:16:08 3: relais: Switching 29-0000001acee4 to 207 (pio0 off) for (-)
2023.12.06 12:16:20 3: relais set pio 0 on-for-timer 600

2023.12.06 12:16:20 3: relais: Switching 29-0000001acee4 to 206 (pio0 on-for-timer) for (600)
2023.12.06 12:26:20 3: relais set pio 0 off -

2023.12.06 12:26:20 3: relais: Switching 29-0000001acee4 to 207 (pio0 off) for (-)
2023.12.06 12:50:40 3: relais set pio 6 on-for-timer 1

2023.12.06 12:50:40 3: relais: Switching 29-0000001acee4 to 143 (pio6 on-for-timer) for (1)
2023.12.06 12:50:41 3: relais set pio 6 off -

2023.12.06 12:50:41 3: relais: Switching 29-0000001acee4 to 207 (pio6 off) for (-)
2023.12.06 12:52:40 3: relais set pio 6 on-for-timer 1

2023.12.06 12:52:40 3: relais: Switching 29-0000001acee4 to 143 (pio6 on-for-timer) for (1)
2023.12.06 12:52:41 3: relais set pio 6 off -

2023.12.06 12:52:41 3: relais: Switching 29-0000001acee4 to 255 (pio6 off) for (-)
2023.12.06 12:53:42 3: relais set pio 0 on-for-timer -

2023.12.06 12:53:42 3: relais: Switching 29-0000001acee4 to 254 (pio0 on-for-timer) for (-)
2023.12.06 12:53:50 3: relais set pio 0 on-for-timer 1200

2023.12.06 12:53:50 3: relais: Switching 29-0000001acee4 to 254 (pio0 on-for-timer) for (1200)
2023.12.06 12:55:03 3: relais set pio 4 on -

2023.12.06 12:55:03 3: relais: Switching 29-0000001acee4 to 238 (pio4 on) for (-)
2023.12.06 12:55:03 3: relais set pio 6 on-for-timer 1

2023.12.06 12:55:03 3: relais: Switching 29-0000001acee4 to 174 (pio6 on-for-timer) for (1)
2023.12.06 12:55:04 3: relais set pio 6 off -

2023.12.06 12:55:04 3: relais: Switching 29-0000001acee4 to 238 (pio6 off) for (-)
2023.12.06 12:55:08 3: relais set pio 5 on -

2023.12.06 12:55:08 3: relais: Switching 29-0000001acee4 to 206 (pio5 on) for (-)
2023.12.06 13:13:50 3: relais set pio 0 off -

2023.12.06 13:13:50 3: relais: Switching 29-0000001acee4 to 207 (pio0 off) for (-)
2023.12.06 13:28:42 3: relais set pio 7 on-for-timer 1

2023.12.06 13:28:42 3: relais: Switching 29-0000001acee4 to 79 (pio7 on-for-timer) for (1)
2023.12.06 13:28:43 3: relais set pio 7 off -

2023.12.06 13:28:43 3: relais: Switching 29-0000001acee4 to 207 (pio7 off) for (-)
2023.12.06 13:44:43 3: relais set pio 6 on-for-timer 1

2023.12.06 13:44:43 3: relais: Switching 29-0000001acee4 to 143 (pio6 on-for-timer) for (1)
2023.12.06 13:44:44 3: relais set pio 6 off -

2023.12.06 13:44:44 3: relais: Switching 29-0000001acee4 to 255 (pio6 off) for (-)

Was mir in dem Zusammenhang auch aufgefallen ist; ich zeichne pio0, pio4 und pio5 in einem LOG auf und lasse es in einem SVG anzeigen. Im LOG steht pio0=0, das SVG zeigt aber "1" an (siehe Anhang).
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

Sorry, hatte noch vergessen deine Fragen zu beantworten:

ZitatWenn ich auf meinen Raspi mit 10 Temperatursensoren schaue, dann geht der "failure" count auch hoch - da gibt es immer wieder Aussetzer. Ist z.B. die Frage ob die alle genug Strom bekommen.
Die Sensoren waren, wie vorher erwähnt, an 5V angeschlossen. Ich habe das nun auf 3,3V umgebaut. Außerdem habe ich kontrolliert, dass die Spannung auch an jedem Sensor (zumindest am Stecker) ankommt. Momentan lass ich das System nur mit zwei Sensoren laufen. Nach jeweils 1-2 Tagen werde ich die anderen wieder dazu nehmen um hoffentlich den Fehler zu finden.


ZitatWelche Dateien gibt es noch parallel zu "output" - kann man da evtl. irgendwo einen Fehler abfragen?
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ ls -la
insgesamt 0
drwxr-xr-x 3 root gpio    0  6. Dez 10:23 .
drwxr-xr-x 6 root gpio    0  6. Dez 10:29 ..
-rw-r--r-- 1 root gpio    1  6. Dez 10:23 activity
-r--r--r-- 1 root gpio    1  6. Dez 10:23 cond_search_mask
-r--r--r-- 1 root gpio    1  6. Dez 10:23 cond_search_polarity
lrwxrwxrwx 1 root gpio    0  6. Dez 10:23 driver -> ../../../bus/w1/drivers/w1_slave_driver
-r--r--r-- 1 root gpio 4096  6. Dez 10:23 id
-r--r--r-- 1 root gpio 4096  6. Dez 10:23 name
-rw-rw-r-- 1 root gpio    1  6. Dez 18:43 output
drwxr-xr-x 2 root gpio    0  6. Dez 10:23 power
-r--r--r-- 1 root gpio    1  6. Dez 10:23 state
-rw-r--r-- 1 root gpio    1  6. Dez 10:23 status_control
lrwxrwxrwx 1 root gpio    0  6. Dez 10:23 subsystem -> ../../../bus/w1
-rw-r--r-- 1 root gpio 4096  6. Dez 10:23 uevent
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Hi Dan,

da hast du ja inzwischen die meisten Dinge die ich angemerkt hätte schon selbst probiert (wie alternative GPIO).
Bei mir laufen alle Temperatursensoren auf 3.3V, aber ich habe mal ein Diagramm gesehen, wo der Anschluss mit 5V durchaus empfohlen wurde. Da müsste man mal weiter forschen ob das jetzt ein Problem ist oder nicht. Wenn die 5V tatsächlich auch auf der Datenleitung ankommen, dann brät es die GPIO auf Dauer sicherlich durch.

SVG: ich sehe jetzt deine Funktion nicht vollständig, aber steht da nicht sowas wie "wenn 0, dann 1"? Vielleicht ein Überbleibsel aus der Zeit als es noch verdreht war?

Ich habe mal eine Version mit mehr loginfo generiert. Diese gibt den Status erstens binär aus (dann ist es leichter zu lesen), ausserdem wird vor dem Setzen der PIO nochmal der aktuelle Status angefragt und verglichen ob das dem in FHEM gespeicherten entspricht.
Mal sehen ob das meine Theorie mit dem Lesefehler stützt. Eine andere Möglichkeit wäre noch eine Race condition, wenn man den Status unmittelbar nach dem Setzen abfragt, aber soweit ich verstanden habe passiert das Problem ja erst später, nachdem er schon wieder mehrmals abgefragt hatte.

Bezüglich der anderen Dateien im sysfs - kannst du den Inhalt von allen diesen 1 Byte Dateien mal ausgeben?
Wenn es binär ist mit "od -h" - also z.B.
od -h state
Durchaus mal in verschiedenen Schaltzuständen und sehen ob sich die Werte dann ändern.





Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#29
Hi Adimarantis,

ich hatte auf meinem Pi3 jetzt auch zwei Jahre die Temperatursensoren mit 5V versorgt. Habe jetzt bei der Fehlersuche aber gelesen, dass das keine so gute Idee sei...hm...bin jetzt mal auf 3,3V gegangen. Ob es mir einen GPIO gebraten hat, weiß ich noch nicht. Auf gpio4 und gpio26 hat nichts mehr funktioniert. Ich bleibe jetzt auf 17 bis alles wieder funktioniert. Dann kann ich die anderen ja nochmal testen.

Die SVG Funktion sieht vollständig so aus:
$fld[3]=~"1"?0.95:-1Funktioniert mit pio4 und pio5 (auf den Werten 0.05 und 1.05) wunderbar.

Die neue Version habe ich jetzt mal eingespielt und werde berichten. Was mir (aber schon vorher mal) aufgefallen ist: Bei der Auswahl der Regexp gibt es bei pio0 zwei Auswahlmöglichkeiten, bei den anderen Beiden nur eine. Keine Ahnung ob das was zu bedeuten hat?! Hab einen Screenshot im Anhang.

Und hier noch die Ausgaben von od -h für den Schaltzustand:

00000000
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h activity
0000000 00f7
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_mask
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_polarity
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h output
0000000 00ff
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h state
0000000 00ff
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h status_control
0000000 0088
0000001

00110000
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h activity
0000000 00ff
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_mask
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_polarity
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h output
0000000 00f3
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h state
0000000 00f3
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h status_control
0000000 0088
0000001

00001100
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h activity
0000000 00f7
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_mask
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h cond_search_polarity
0000000 0000
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h output             
0000000 00cf
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h state
0000000 00cf
0000001
pi@raspberrypi:/sys/bus/w1/devices/29-0000001acee4 $ od -h status_control
0000000 0088
0000001

FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

Mit dem neuen Modul konnte ich im LOG den Moment finden, an dem fhem selbstständig meine pio4 und pio5 ausschaltet.
Zur Erklärung: Mit pio6 und pio7 steuere ich den Mischer meiner Fußbodenheizung. Daher die häufigen "on-for-timer".

2023.12.08 15:06:15 3: relais set pio 6 on-for-timer 1

2023.12.08 15:06:15 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:06:15 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (1)
2023.12.08 15:06:17 3: relais set pio 6 off -

2023.12.08 15:06:17 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:06:17 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:08:16 3: relais set pio 6 on-for-timer 3

2023.12.08 15:08:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:08:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (3)
2023.12.08 15:08:19 3: relais set pio 6 off -

2023.12.08 15:08:19 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:08:19 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:09:16 3: relais set pio 6 on-for-timer 3

2023.12.08 15:09:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:09:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (3)
2023.12.08 15:09:19 3: relais set pio 6 off -

2023.12.08 15:09:19 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:09:19 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:10:16 3: relais set pio 6 on-for-timer 3

2023.12.08 15:10:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:10:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (3)
2023.12.08 15:10:19 3: relais set pio 6 off -

2023.12.08 15:10:19 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:10:19 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:11:16 3: relais set pio 6 on-for-timer 3

2023.12.08 15:11:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:11:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (3)
2023.12.08 15:11:19 3: relais set pio 6 off -

2023.12.08 15:11:19 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:11:19 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:13:16 3: relais set pio 6 on-for-timer 1

2023.12.08 15:13:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:13:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (1)
2023.12.08 15:13:17 3: relais set pio 6 off -

2023.12.08 15:13:17 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:13:17 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:15:16 3: relais set pio 6 on-for-timer 1

2023.12.08 15:15:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:15:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (1)
2023.12.08 15:15:17 3: relais set pio 6 off -

2023.12.08 15:15:17 3: relais PIO state before set: 00001110/00001110
2023.12.08 15:15:17 3: relais: Switching 29-0000001acee4 to 11001111 (pio6 off) for (-)
2023.12.08 15:17:16 3: relais set pio 6 on-for-timer 1

2023.12.08 15:17:16 3: relais PIO state before set: 00001100/00001100
2023.12.08 15:17:16 3: relais: Switching 29-0000001acee4 to 10001111 (pio6 on-for-timer) for (1)
2023.12.08 15:17:17 3: relais set pio 6 off -

2023.12.08 15:17:17 3: relais PIO state before set: 00000000/00000000
2023.12.08 15:17:17 3: relais: Switching 29-0000001acee4 to 11111111 (pio6 off) for (-)

In der vorletzten Zeile steht 2023.12.08 15:17:17 3: relais PIO state before set: 00000000/00000000Ab dem Moment sind meine Pumpen (Fußboden- und Heizkörperkreis) dann aus.
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Möglicherweise legen die Temperatursensoren weniger Spannung auf die Datenleitung als der Switch - und der hat dann deine GPIO gebraten.

Der SVG builder wird wohl durch die Zeile verwirrt die alle pios listet (welche vom Setzen von "state" kommen dürfte).
Ich kenne mich jetzt mit Filelog SVGs nicht so aus - bei mir läuft alles über Dblog.
Vielleicht solltest du sowas wie
event-on-change-reading = pio.* (oder event-on-update-reading damit dein Graph keine schrägen Linien macht) setzen, dann sollte es eigentlich nicht mehr ins log gehen - nur um sicher zu gehen.

Interessant ist das "activity" - das sollte (wenn ich datasheet und kernel code richtig verstehe) den echten Zustand der Schalter zeigen (der auch als input verwendet werden kann) - seltsam das dies von output/state abweicht

Was mich etwas verwundert ist, dass du für 1 Sekunde schaltest. Reagiert deine Fussbodenheizung so schnell?
Ich kenne nur so Stellventile die dann schon mal eine Weile beschäftigt sind, bis die umgeschaltet haben.
Hast du das vorher auch schon so schnell geschaltet? Wäre interessant ob das Problem bei längeren Zeiträumen weiter besteht.

Nach Lesefehler schauts eigentlich nicht aus, da die Werte vorher/nachher gleich sind - aber vielleicht wurde gar kein neuer Wert gelesen, weil der Abstand so kurz war.








Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#32
Das Problem mit dem SVG habe ich aber nur bei pio0. Die anderen funktionieren. Und nur bei pio0 habe ich das zweite Regexp. Hängt das nicht zusammen? Hat das nichts mit dem Modul und den erzeugten Readings zu tun?

Die kurze Schaltzeit ist dazu da, den Mischer fein zu regeln. Der Befehl wird mittels "cmdpause" für 120 Sek. pausiert, bevor er bei Eintreten der Bedingung wieder ausgeführt wird. Diese Schaltzeiten hatte ich auch schon bei OWX. Hier mein ganzer Code, falls interessiert.
##cmd1: schnell öffnen
([relais:pio4] == 1 && [tmpfvl:temperature] < 37)(set relais pio6 on-for-timer 5)

DOELSEIF    ##cmd2: langsam öffnen
([relais:pio4] == 1 && [tmpfvl:temperature] < 40)(set relais pio6 on-for-timer 3)

DOELSEIF    ##cmd3: noch etwas öffnen
([relais:pio4] == 1 && [tmpfvl:temperature] < 43)(set relais pio6 on-for-timer 1)

DOELSEIF    ##cmd4: Notaus
([tmpfvl:temperature] > 60)(set relais pio4 off-for-timer 60)

DOELSEIF    ##cmd5: schnell schließen
([relais:pio4] == 1 && [tmpfvl:temperature] > 53)(set relais pio7 on-for-timer 5)

DOELSEIF    ##cmd6: langsam schließen
([relais:pio4] == 1 && [tmpfvl:temperature] > 50)(set relais pio7 on-for-timer 3)

DOELSEIF    ##cmd7: noch etwas schließen
([relais:pio4] == 1 && [tmpfvl:temperature] > 47)(set relais pio7 on-for-timer 1)

DOELSEIF    ##cmd8: Calibrieren fuer Tagprogramm
([04:00] && [relais:pio4] == 0)(set relais pio7 on-for-timer 100)(set relais pio6 on-for-timer 32)

Und die zugehörigen Attribute
Attributes:
   cmdpause   30:60:120:30:0:160:120:0
   do         always
   room       Heizung
   wait       0:0:0:0:0:0:0:0,105

Eben habe ich manuell pio5 deaktiviert. Eigentlich hätte das per DOIF passieren sollen. Das DOIF hat den Status auch gewechselt, angekommen ist aber leider nichts. Wie dem auch sei: Nach "set relais pio5 off" wurde laut state auch pio4 ausgeschaltet. Wenige Minuten später war dann pio4 wieder an als wäre nichts gewesen. Das LOG zeigt davon nichts.
2023-12-08_19:49:42 Logfile clear
2023.12.08 19:50:02 3: relais set pio 5 off -

2023.12.08 19:50:02 3: relais PIO state before set: 00001100/00001100
2023.12.08 19:50:02 3: relais: Switching 29-0000001acee4 to 11101111 (pio5 off) for (-)
2023.12.08 19:52:19 3: relais set pio 7 on-for-timer 1

2023.12.08 19:52:20 3: relais PIO state before set: 00001000/00001000
2023.12.08 19:52:20 3: relais: Switching 29-0000001acee4 to  1101111 (pio7 on-for-timer) for (1)
2023.12.08 19:52:21 3: relais set pio 7 off -

2023.12.08 19:52:21 3: relais PIO state before set: 00001001/00001001
2023.12.08 19:52:21 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.08 19:55:19 3: relais set pio 7 on-for-timer 3

2023.12.08 19:55:20 3: relais PIO state before set: 00001000/00001000
2023.12.08 19:55:20 3: relais: Switching 29-0000001acee4 to  1101111 (pio7 on-for-timer) for (3)
2023.12.08 19:55:23 3: relais set pio 7 off -

2023.12.08 19:55:23 3: relais PIO state before set: 00001001/00001001
2023.12.08 19:55:23 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.08 19:58:19 3: relais set pio 7 on-for-timer 1

2023.12.08 19:58:20 3: relais PIO state before set: 00001000/00001000
2023.12.08 19:58:20 3: relais: Switching 29-0000001acee4 to  1101111 (pio7 on-for-timer) for (1)
2023.12.08 19:58:21 3: relais set pio 7 off -

2023.12.08 19:58:21 3: relais PIO state before set: 00001001/00001001
2023.12.08 19:58:21 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.08 20:01:19 3: relais set pio 7 on-for-timer 3

2023.12.08 20:01:20 3: relais PIO state before set: 00001000/00001000
2023.12.08 20:01:20 3: relais: Switching 29-0000001acee4 to  1101111 (pio7 on-for-timer) for (3)
2023.12.08 20:01:23 3: relais set pio 7 off -

2023.12.08 20:01:23 3: relais PIO state before set: 00001001/00001001
2023.12.08 20:01:23 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.08 20:04:19 3: relais set pio 7 on-for-timer 3

2023.12.08 20:04:20 3: relais PIO state before set: 00001000/00001000
2023.12.08 20:04:20 3: relais: Switching 29-0000001acee4 to  1101111 (pio7 on-for-timer) for (3)
2023.12.08 20:04:23 3: relais set pio 7 off -

2023.12.08 20:04:23 3: relais PIO state before set: 00001001/00001001
2023.12.08 20:04:23 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)

Macht es Sinn, wenn ich das Relais auf verbose 4 oder sogar 5 logge?
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Also verstehe ich das richtig - du siehst in FHEM die pio4 aus und angehen - aber eben im Logfile nicht?
Dann solltest du schon mal auf verbose 5 gehen, dann müsste das zumindest protokolliert werden.

Eine ganz andere Idee:
Wir lesen den Zustand aus "output", aber das ist ja eigentlich zum schreiben gedacht - der Zustand steht ja eigentlich in "state" (und so ist das auch bei den anderen 1Wire Switches implementiert). Vielleicht führt der Lesezugriff auf output manchmal zu Nebeneffekten? Unwahrscheinlich, aber mir fällt langsam nix mehr ein.

Probier dafür jetzt mal die angehängte Datei.
Damit sollte übrigens hoffentlich auch dein SVG Problem verschwinden.

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

ZitatAlso verstehe ich das richtig - du siehst in FHEM die pio4 aus und angehen - aber eben im Logfile nicht?
Ja genau. Ich habe jetzt Verbose 5 für das Relais eingestellt.

ZitatProbier dafür jetzt mal die angehängte Datei.
Modul ist ausgetauscht und läuft aktuell gut. Ich werde weiter berichten.

ZitatDamit sollte übrigens hoffentlich auch dein SVG Problem verschwinden.
Sieht erst mal gut aus.

Ich glaube tatsächlich, dass der DS2408 auf dem Datenkanal Spannungsspitzen abgibt. Ich habe mir auf meinem neuen Pi4B :'(  wohl mittlerweile 5 GPIOs zerschossen :'( . Ich habe nun mal, wie bei parasitärem Anschluss von Sensoren, einen 4,7kO-Widerstand eingebaut. Ich hab keine Ahnung, ob das was bringt aber ich bin langsam auch am Ende meiner Ideen...
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Ich hätte da noch ein Dokument gefunden, welches Anschlussbeispiele (auch mit 5V) für 1Wire Sensoren enthält.
Leider weiss ich nicht mehr woher es stammt - im Dokument ist kein verwertbare Hinweis auf den Autor oder die Quelle.

Vielleicht ist das ja hilfreich.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)


Adimarantis

Danke! Hatte mit der SuFu und Google nach dem Filenamen gesucht, aber nix gefunden.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#38
Danke für die Anschlussdarstellung. Sollte mein GPIO wieder brauchen, werde ich nach dieser Anleitung mal komplett Umkabeln. Ich habe gestern auch noch in der /boot/config.txt den Zusatz "pullup=on" hinzugefügt. Ich hoffe hier schlagen jetzt nicht alle die Hände über dem Kopf zusammen... O:-)
Was bewirkt dieser Zusatz eigentlich. Ich habe nur in verschiedenen Anleitungen gesehen, dass dieser Zusatz nur bei parasitärem Anschluss erforderlich ist. Aber warum?

Eben hat pio4 wieder ohne Grund abgeschalten. Im LOG kann man nur sehen, dass der Kanal an war und dann aus. Aber kein set...off.
2023.12.09 21:39:58 5: relais: Read �
2023.12.09 21:39:58 5: relais: Switch state:1,1,1,1,0,1,1,1
2023.12.09 21:39:58 4: relais: Poll for 8p-switch took 0.016848 s
2023.12.09 21:39:58 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=1 pio5=0 pio6=0 pio7=0 duration=0.016848
2023.12.09 21:39:58 3: relais set pio 7 on-for-timer 3
2023.12.09 21:39:58 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:39:58 5: relais: Read �
2023.12.09 21:39:58 5: relais: Switch state:1,1,1,1,0,1,1,1
2023.12.09 21:39:58 4: relais: Poll for 8p-switch took 0.016954 s
2023.12.09 21:39:58 3: relais PIO state before set: 00001000/00001000
2023.12.09 21:39:58 3: relais: Switching 29-0000001acee4 to 01101111 (pio7 on-for-timer) for (3)
2023.12.09 21:39:58 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:39:58 5: relais: Read o
2023.12.09 21:39:58 5: relais: Switch state:1,1,1,1,0,1,1,0
2023.12.09 21:39:58 4: relais: Poll for 8p-switch took 0.016838 s
2023.12.09 21:39:58 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=1 pio5=0 pio6=0 pio7=1 duration=0.016838
2023.12.09 21:39:58 4: relais: Setting time for switching 29-0000001acee4 pio7 to off in 3 s
2023.12.09 21:39:59 3: relais set pio 7 off -
2023.12.09 21:39:59 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:00 5: relais: Read o
2023.12.09 21:40:00 5: relais: Switch state:1,1,1,1,0,1,1,0
2023.12.09 21:40:00 4: relais: Poll for 8p-switch took 0.02144 s
2023.12.09 21:40:00 3: relais PIO state before set: 00001001/00001001
2023.12.09 21:40:00 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.09 21:40:00 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:00 5: relais: Read �
2023.12.09 21:40:00 5: relais: Switch state:1,1,1,1,0,1,1,1
2023.12.09 21:40:00 4: relais: Poll for 8p-switch took 0.017273 s
2023.12.09 21:40:00 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=1 pio5=0 pio6=0 pio7=0 duration=0.017273
2023.12.09 21:40:00 3: relais set pio 7 on-for-timer 3
2023.12.09 21:40:00 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:00 5: relais: Read �
2023.12.09 21:40:00 5: relais: Switch state:1,1,1,1,0,1,1,1
2023.12.09 21:40:00 4: relais: Poll for 8p-switch took 0.018468 s
2023.12.09 21:40:00 3: relais PIO state before set: 00001000/00001000
2023.12.09 21:40:00 3: relais: Switching 29-0000001acee4 to 01101111 (pio7 on-for-timer) for (3)
2023.12.09 21:40:00 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:00 5: relais: Read o
2023.12.09 21:40:00 5: relais: Switch state:1,1,1,1,0,1,1,0
2023.12.09 21:40:00 4: relais: Poll for 8p-switch took 0.017142 s
2023.12.09 21:40:00 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=1 pio5=0 pio6=0 pio7=1 duration=0.017142
2023.12.09 21:40:00 4: relais: Setting time for switching 29-0000001acee4 pio7 to off in 3 s
2023.12.09 21:40:01 3: relais set pio 7 off -
2023.12.09 21:40:01 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:01 5: relais: Read o
2023.12.09 21:40:01 5: relais: Switch state:1,1,1,1,0,1,1,0
2023.12.09 21:40:01 4: relais: Poll for 8p-switch took 0.018221 s
2023.12.09 21:40:01 3: relais PIO state before set: 00001001/00001001
2023.12.09 21:40:01 3: relais: Switching 29-0000001acee4 to 11101111 (pio7 off) for (-)
2023.12.09 21:40:01 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:01 5: relais: Read �
2023.12.09 21:40:01 5: relais: Switch state:1,1,1,1,1,1,1,1
2023.12.09 21:40:01 4: relais: Poll for 8p-switch took 0.022439 s
2023.12.09 21:40:01 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=0 pio5=0 pio6=0 pio7=0 duration=0.022439
2023.12.09 21:40:03 3: relais set pio 7 off -
2023.12.09 21:40:03 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:03 5: relais: Read �
2023.12.09 21:40:03 5: relais: Switch state:1,1,1,1,0,1,1,1
2023.12.09 21:40:03 4: relais: Poll for 8p-switch took 0.019917 s
2023.12.09 21:40:03 3: relais PIO state before set: 00000000/00000000
2023.12.09 21:40:03 3: relais: Switching 29-0000001acee4 to 11111111 (pio7 off) for (-)
2023.12.09 21:40:03 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:03 5: relais: Read �
2023.12.09 21:40:03 5: relais: Switch state:1,1,1,1,1,1,1,1
2023.12.09 21:40:03 4: relais: Poll for 8p-switch took 0.016858 s
2023.12.09 21:40:03 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=0 pio5=0 pio6=0 pio7=0 duration=0.016858
2023.12.09 21:40:22 4: relais: DeviceUpdate(relais), pollingInterval:60
2023.12.09 21:40:22 5: relais: BlockingCall for relais
2023.12.09 21:40:22 5: relais: Open /sys/bus/w1/devices/29-0000001acee4/state
2023.12.09 21:40:22 5: relais: Read �
2023.12.09 21:40:22 5: relais: Switch state:1,1,1,1,1,1,1,1
2023.12.09 21:40:22 4: relais: Poll for 8p-switch took 0.025876 s
2023.12.09 21:40:22 5: relais: Finish: relais pio0=0 pio1=0 pio2=0 pio3=0 pio4=0 pio5=0 pio6=0 pio7=0 duration=0.025876

Habe auch nochmal einen Fehler gefunden. "State" wird nicht mehr aktualisiert. Das heißt, es werden keine aktiven Kanäle angezeigt (siehe Screenshot).
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Was mich jetzt in deinem Logfile ein wenig verwundert ist folgender Ablauf:
2023.12.09 21:40:00 3: relais set pio 7 on-for-timer 3
2023.12.09 21:40:01 3: relais set pio 7 off -
2023.12.09 21:40:03 3: relais set pio 7 off -
Pio 7 wird eigentlich für 3s eingeschaltet - aber nach 1s wieder aus - und nach 3s nochmal.
Das erste Auschalten ist doch falsch, oder? Ich kann das bei mir aber nicht nachvollziehen - bei mir schaltet er nur nach 3s - schaltest du da irgendwo nochmal extra? Und genau bei diesem Schaltvorgang passiert es, dass Pio 4 plötzlich aus ist.
Sollte zwar keinen Einfluss auf Pio 4 haben, aber trotzdem seltsam.
Es gibt definitiv keine Stelle im Modul, die "heimlich" (also ohne Logeintrag) auf "output" zugreift. Die Änderung an Pio4 scheint HW-seitig zu erfolgen.
Der einzige Workaround der mir noch einfallen würde, wäre, dass das Modul einen Modus bekommt, in dem der HW-Status einfach ignoriert wird und immer entsprechend der Readings setzt. Das "state" file würde dann nur einmal zum Initialisieren gelesen werden, und danach nie wieder.
Wär aber schon ein arger Hack und würde immer noch nicht verhindern, dass eine Pio "von selbst" schaltet - aber den Zustand beim nächsten Schaltvorgang wieder korrigieren.

Dass "state" nicht mehr geupdated wird, ist der "fix" für SVG. Das reading wird nicht mehr benötigt und kann mit "deletereading" gelöscht werden. Das interne reading "STATE" wird dagegen weiter aktualisiert und ändert auch die Kopfzeile im Device.



Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

#40
Nein, das "off" nach einer Sekunde macht überhaupt keinen Sinn. Mein DOIF zur Regelung hatte ich ja geteilt. Da finde ich erst mal keinen Fehler. Ich habe sonst nur noch ein DOIF für pio4 (Fussbodenpumpe) und eins für pio5 (Heizkörperpumpe). Beide waren aber im Fall des "pio7 off" nicht beteiligt.

ZitatDass "state" nicht mehr geupdated wird, ist der "fix" für SVG. Das reading wird nicht mehr benötigt und kann mit "deletereading" gelöscht werden. Das interne reading "STATE" wird dagegen weiter aktualisiert und ändert auch die Kopfzeile im Device.
Alles klar. Das hatte ich so nicht verstanden, macht aber Sinn  ;D

Mir gehen jetzt nur langsam die GPIOs aus...heute Nacht ist der Nächste abgeraucht. Suche aktuell nach einem, der noch funktioniert... :-\
Ich bin Hardwareseitig echt etwas verzweifelt. Finde im Datenblatt des DS2408 aber leider überhaupt nichts, nach welchem Schema dort 1wire angeschlossen ist. Ich vermute standard-parasitär aber dann sollten die 3,3V ja nicht überschritten werden?! Warum brät es mir dann einen GPIO nach dem anderen?

EDIT:
Ich habe mir heute nochmal meine Verdrahtung genauer angesehen. Vielleicht waren es die vielen Bäume, die die Sicht auf den Wald versperrt haben :-\
Ich will es jetzt aber erst einmal laufen lassen und beobachten. Werde dann detailliert berichten.

Danke und Grüße!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

Adimarantis

Anbei zur Fehlersuche noch eine kleine Änderung:
Jetzt steht im Logfile
set pio 0 off fromTimerwenn der Aufruf durch "on-for-timer" getriggert wurde
Dagegen steht bei einem normalen "set" wie gehabt
set pio 0 off -Sonst keine funktionalen Änderungen.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

dan1180

ZitatSonst keine funktionalen Änderungen.
Ich werde das System erst einmal so laufen lassen um alles, außer meiner Verdrahtung, ausschließen zu können. Dann spiele ich es natürlich gerne ein.

Danke!
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte

dan1180

So...das System läuft jetzt seit 14 Tagen ohne Probleme durch. Ich hatte 1x eine pio0-Aktivierung, die ich mir nicht erklären konnte, kann aber auch nicht ausschließen, dass ich das selber irgendwie war.

Bezüglich meiner zerschossenen GPIOs habe ich den Grund wohl auch gefunden. Ich hatte aus der Zeit, als ich den DS2408 über einen USB-Bus laufen hatte, für die Temperatursensoren einen 4,8K-Widerstand verbaut. Dieser war aber, nachdem ich nun den DS2408 "zwischengeschaltet" habe, erst hinter diesem. Der DS2408 war also mit den beiden Leitungen 1W und GND direkt am GPIO. Seit ich das geändert habe gibt es keine Probleme mehr. Jaja, ich hör die vielen Hände auf die Stirn aufschlagen aber manchmal stehen da einfach zu viele Bäume vor dem Wald...

Vielen Dank, vor allem Adimarantis, für die Unterstützung.
Allen frohe Weihnachten und alles Guten für 2024!
Grüße,
Dan
FHEM 6.2 auf RPi4B
Raspberrymatic 3.X auf RPI3B

1xDS2408 und 6xDS18B20 an GPIO über Modul RPI_1Wire
>50 Homematic-Geräte