Einer ist zu doof! BASCOM 2.0.8.2 oder Ich :-)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • mit diesen Zeilen hätt ich ein Problem:
      If Status =4 then
      Status=1
      Return
      End if
      ich hab jetzt nicht überprüft, ob das jetzt noch im Programm vorkommt.
      Aber das return wird ja nur bei wahrer if-Kondition ausgeführt. Ist if false, dann wird der Rücksprung ignoriert und es passiert was ganz anderes, als erwartet. Was, weiß ich jetzt nicht, weil ich mir das Programm nicht angeschaut hab und nicht weiß, was für code danach kommt.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo
      tschoeatsch
      und genau das ist das Problem im Forum.

      Keiner liest das Problem und jeder kritisiert den Programmstiel.

      Mein Problem war das nach Neustart/Spannungs wiederherstellung grundsätzlich in die Subroutine Taster_auf gesprungen wird.
      Und das konnte mir bis jetzt keiner erklären warum.
      Das ich schlecht Programmiere wurde mir hingegen des öfteren erklärt und das mein Programm so nicht funktioniert auch.
      Nur -ich schäme mich ja das zu sagen- das das Programm ohne die Temperatur erweiterung schon seit einem Jahr ohne Probleme
      richtig funktioniert interresier keinen :)

      ...Ich weiß ich kann nicht progrmmieren....

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Michael () aus folgendem Grund: Schlimmes Wort entschärft

    • so, gelesen und ich halte die stackwerte für zuklein. Du verwendest einen interrupt, der braucht 32 bytes vom stack, also ist der für andere, zusätzliche Werte zu klein. Hast doch genug Speicher, geiz nicht an sowas.

      Ach ja, wo ist jetzt dein obiger Problemlösungscode eingebaut?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • darkman100 schrieb:

      Mein Problem war das nach Neustart/Spannungs wiederherstellung grundsätzlich in die Subroutine Taster_auf gesprungen wird.
      da wäre der Programmcode auch mal ganz interessant :huh:
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • darkman100 schrieb:

      Keiner liest das Problem und jeder kritisiert den Programmstiel.
      Sorry, aber auch erfahrene Programmierer erkennen in einem schlecht und unübersichtlichen geschriebenen Sourcecode nicht gleich den Fehler.
      Daher wendet der Programmierer man das Ausschlussverfahren an, um den Fehler einzukreisen.
      Jeder hier hat einen Tip gegeben, was mit dem Fehler zu tun haben kann.
      Solche Tips solltest du dann auch beherzigen und gegenprüfen, ob das die Ursache war.

      Ich hatte von Anfang an die Tasterabfragen mit den PullUps angemerkt.
      So wie du das gemacht hast ist das definitiv falsch. Abfragen immer mit PinX.n und Ausgeben immer mit PortX.n
      Und zum PullUp einschalten muss man auf den Portpin schreiben, also PortX.n=1 (du schreibst PinX.1=1)

      Wenn du Tips nicht annehmen willst oder kannst, können wir dir nicht helfen.
      Dann musst du selber schauen ob du es hinbekommst.

      Auch mit deinem Status=4 (Neustart), den du vor der Hauptschleife setzt, wird im Programm nirgens abgefragt.
      Also macht es Defakto wenig Sinn, den Status auf 4 zu setzen.

      Nochmal.
      Es geht nicht ums kritisieren.
      Es geht darum, dass du dein Programm zum laufen bringst. Tips solltest du annehmen, damit zu auch was lernst und deine Programme
      schließlich auch leserlicher werden. Das Spart den Schreibern wiederum Zeit, deinen Code zu verstehen und präziser auf Probleme zu antworten.

      Du hast recht, dass keiner direkt den Fehler angegeben hat.
      Das war auch nicht möglich aufgrund des undurchsichtigen geschriebenen Codes.
    • darkman100 schrieb:

      Hallo Michael,

      ganz einfach!
      Spannungsausfall und wo bitte befindet sich jetzt der Rollo? Oben unten in der Mitte?
      Also Status4 ist spannungsausfall und Neustartvariable.
      So zu sagen ganz einfach.
      Eben nicht.
      Da du nirgends im Programm den Status auf Wert 4 abfragst, ist es sinnlos, den Wert auf 4 zu setzen.
      Und deswegen frage ich mich, worin jetzt die Lösung besteht, wenn du einen Wert erst auf 4 setzt und dann wieder auf 1.


      darkman100 schrieb:

      Mein Problem war das nach Neustart/Spannungs wiederherstellung grundsätzlich in die Subroutine Taster_auf gesprungen wird.
      Und das konnte mir bis jetzt keiner erklären warum.
      doch, es wurde dir mehrfach erklärt, aber du liest es scheinbar nicht richtig

      darkman100 schrieb:

      das das Programm ohne die Temperatur erweiterung schon seit einem Jahr ohne Probleme
      richtig funktioniert interresier keinen
      Wenn du erst jetzt davon anfängst, weiß es vorher keiner und hinterher zu behaupten, dass es keinen interessiert hat, finde ich nicht fein.

      Ich erlaube mir mal, deinen Beitrag zu editieren, um das Fäkalwort zu entschärfen.
      Nimm es bitte als Hinweis, dass wir das nicht mögen.
    • darkman100 schrieb:

      Und das konnte mir bis jetzt keiner erklären warum.
      Ist auch etwas schwierig ohne den vollständigen Code. Und ohne Rückmeldung was die Vorschläge gebracht haben. Es kann durchaus funktioniert haben mit den Pin beschreiben. Das toggelt. Davon ausgehend das er beim Neustart Low ist wird er beim Toggeln eingeschaltet. Sicherer bleibt es dennoch den Port zu beschreiben. Wenn es jetzt nicht mehr funktioniert muß etwas geändert worden sein. Die meißten hier sind recht pfiffig jedoch ohne Infos kann nur geraten werden.
    • Ich habe mal das original Programm von @darkman100 getestet mit ein paar kleinen Änderungen und bei mir springt es nicht in die Taster_auf Routine.
      Also kann es nur an der Hardware liegen.

      BASCOM-Quellcode

      1. ' BASCOM-Programm
      2. '
      3. ' Rollosteuerung
      4. ' - Alle Rollos koennen zentral gefahren werden .
      5. ' - Das fahren der Rollos kann jederzeit unterbrochen werden.
      6. ' - Über eine Zeitschaltuhr können alle Rollos zu/auf gefahren werden.
      7. '
      8. '
      9. 'ACHTUNG!!!!!
      10. 'Programierung und Daten auslesen über USB-Schnittstelle möglich.
      11. 'Programmer: ARDUINO
      12. 'Serial 57600 oder NEU 115200
      13. 'COM-Schnittstelle in Windows CH340 auf COM5 (z.B)
      14. '
      15. '
      16. $regfile = "m328pdef.dat"
      17. $crystal = 16000000
      18. $hwstack = 64 'größe HW-Stack
      19. $swstack = 64 'größe SW-Stack
      20. $framesize = 64 'größe Framesize
      21. $baud = 9600 'Baudrate zur Datenübertragung Terminal z.B. mit Befehl Print Licht
      22. 'Baud = 9600
      23. On Timer1 Timer0serv
      24. Config Timer1 = Timer , Prescale = 1024
      25. Enable Timer1
      26. Enable Interrupts
      27. Config Portb.5 = Output 'LED OnBoard
      28. Life Alias Portb.5
      29. Config Portc.5 = Output 'Test-LED 1
      30. Testled1 Alias Portc.5
      31. Config Portc.4 = Output 'Test-LED 2
      32. Testled2 Alias Portc.4
      33. Config Portc.3 = Output 'Test-LED 3
      34. Testled3 Alias Portc.3
      35. Config Portc.2 = Output 'Test-LED 4
      36. Testled4 Alias Portc.2
      37. Config Portb.1 = Output
      38. Relaiauf Alias Portb.1
      39. Config Portb.2 = Output
      40. Relaiab Alias Portb.2
      41. Config Portb.3 = Input
      42. Tasterauf Alias Pinb.3
      43. Portb.3 = 1
      44. 'Tasterauf = 1
      45. Config Portb.4 = Input
      46. Tasterab Alias Pinb.4
      47. Portb.4 = 1
      48. 'Tasterab = 1
      49. Config Portd.6 = Input
      50. Fernab Alias Pind.6
      51. Portd.6 = 1
      52. 'Fernab = 1
      53. Config Portd.5 = Input
      54. Fernauf Alias Pind.5
      55. Portd.5 = 1
      56. 'Fernauf = 1
      57. Config Portd.4 = Input
      58. Zeitschalt Alias Pind.4
      59. Portd.4 = 1
      60. 'Zeitschalt = 1
      61. Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Analog Input für Licht und Temperatur
      62. Start Adc 'ADC(0) LICHT (Lustige IDEE -> Fernsteuerung des Rollo über eine Extremhelle LED-Taschenlampe????)
      63. 'ADC(1) Temperatur
      64. Dim Laufzeitauf As Long ' <<<<<<<<<<<<<<<<<<<
      65. Laufzeitauf = 60 '<<<<<<<<<<<<<<<<<<< Hier unbedingt die Zeiten ändern für die ROLLO-LAUFZEITEN
      66. ' <<<<<<<<<<<<<<<<<<<< ACHTUNG!!! 1/2sec. aufgrund der Timer konfiguration!!!!
      67. Dim Laufzeitab As Long
      68. Laufzeitab = 55
      69. Dim Halbzuzeit As Long
      70. Halbzuzeit = 30
      71. Dim Run As Long
      72. Dim Autolitag As Bit
      73. Dim Autolinacht As Bit
      74. Dim Licht As Word
      75. Dim Temp As Word
      76. Dim Verz As Long
      77. Dim Vprint As Byte
      78. Dim Status As Byte ' 1=Oben, 2=Unten, 3=Mitte, 4=Nach Stromausfall/Neustart"
      79. Relaiauf = 1
      80. Relaiab = 1
      81. Autolinacht = 1
      82. Autolitag = 0
      83. Verz = 30
      84. Vprint = 1
      85. Run = 0
      86. Status = 4
      87. Do
      88. If Run = 0 Then
      89. Relaiab = 1
      90. Relaiauf = 1
      91. Testled1 = 0
      92. Testled2 = 0
      93. Testled3 = 0
      94. Testled4 = 0
      95. End If
      96. Temp = 1024 - Getadc(1)
      97. Licht = Getadc(0)
      98. Debounce Tasterauf , 0 , Taster_auf , Sub
      99. Debounce Tasterab , 0 , Taster_ab , Sub
      100. Debounce Fernauf , 0 , Taster_auf , Sub
      101. Debounce Fernab , 0 , Taster_ab , Sub
      102. '######################### Lichtsteuerung Anfang
      103. If Autolinacht = 1 And Licht > 900 And Verz = 0 And Status = 1 Then 'Rollo Zu Bei Dunkelheit, Verzögerung von xx Std bis wieder zugefahren werden kann
      104. Gosub Autoab
      105. Verz = 120
      106. Autolinacht = 0
      107. Autolitag = 1
      108. End If
      109. 'Option: Rollo fährt teilweise zu Blende beim TV Schauen oder am Frühstückstisch
      110. If Autolitag = 1 And Licht < 525 And Verz = 0 And Status = 2 Then 'Eventuell mit einer zusätzlichen Variable nur einmal am Tag, gelöscht in der Tasterauf SUB
      111. Gosub Autoauf
      112. Verz = 120
      113. Autolinacht = 1
      114. Autolitag = 0
      115. End If
      116. '########################## Lichtsteuerung Ende
      117. '########################## Temperatursteuerung Anfang
      118. If Temp > 550 And Licht < 2 And Status = 1 And Verz = 0 Then
      119. Status = 3
      120. If Relaiab = 1 Then
      121. Run = Halbzuzeit
      122. Verz = 120
      123. Relaiab = 0
      124. End If
      125. End If
      126. '(
      127. If Temp > 500 And Licht > 600 And Status = 3 Then
      128. Status = 1
      129. Verz = 43200
      130. If Relaiauf = 1 Then
      131. Run = Halbzuzeit
      132. Relaiauf = 0
      133. End If
      134. End If
      135. ')
      136. '########################## Temperatursteuerung Ende
      137. '########################### Kommunikation Anfang
      138. If Vprint = 10 Then
      139. Print "Licht : " ; Licht
      140. Print "Temp: " ; Temp
      141. Print "AutoliNacht / Tag : " ; Autolinacht ; " " ; Autolitag
      142. Print "Status 1=Oben/2=Unten/3=Mitte :" ; Status
      143. Print "Verz: " ; Verz ; " 1/2 sec."
      144. Print "Run : " ; Run
      145. Print "Laufzeiten auf, ab: " ; Laufzeitauf ; " " ; Laufzeitab
      146. Print " "
      147. Print "----------------------"
      148. Print " "
      149. Vprint = 0
      150. End If
      151. '############################# Kommunikation Ende
      152. Loop
      153. End
      154. Taster_auf:
      155. Testled1 = 1
      156. Verz = 28800 ' ACHTUNG!!! 1/2sec. aufgrund der Timer konfiguration!!!!
      157. Gosub Autoauf
      158. Return
      159. Autoauf:
      160. Testled3 = 1
      161. Relaiab = 1
      162. Status = 1
      163. If Relaiauf = 0 And Run > 0 Then
      164. Relaiauf = 1
      165. Run = 0
      166. End If
      167. If Relaiauf = 1 Then
      168. Run = Laufzeitauf
      169. Relaiauf = 0
      170. End If
      171. Return
      172. Taster_ab:
      173. Testled2 = 1
      174. Verz = 28800 ' ACHTUNG!!! 1/2sec. aufgrund der Timer konfiguration!!!!
      175. Gosub Autoab
      176. Return
      177. Autoab:
      178. Testled4 = 1
      179. Relaiauf = 1
      180. Status = 2
      181. If Relaiab = 0 And Run > 0 Then
      182. Relaiab = 1
      183. Run = 0
      184. End If
      185. If Relaiab = 1 Then
      186. Run = Laufzeitab
      187. Relaiab = 0
      188. End If
      189. Return
      190. Timer0serv:
      191. 'Timer1 = 49911 'Timer1 Zeitausgleich für 1sec.
      192. Timer1 = 57724 'Timer1 Zeitausgleich für 1/2 sec.
      193. If Verz > 0 Then
      194. Decr Verz
      195. End If
      196. Incr Vprint
      197. If Run > 0 Then
      198. Decr Run
      199. End If
      200. Return
      Alles anzeigen
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von djmsc ()

    • Bei mir läuft der originale Code im Simulator ohne in die Routine Taster_AUF oder Taster_Ab zu laufen.
      Ich vermute auch, dass da Hardware-seitig die Taster-Pins nicht HIGH sind.

      Aber 2 Fragen hätte ich da noch zum Code, falls sich @darkman100 noch ins Forum traut.

      1. Wozu dient der Ausgang Life, was soll das Signal anzeigen?
      2. Wozu dient der Eingang Zeitschalt. Klingt nach Zeitschaltung. Kommt da ein pos. Puls / neg. Puls von einer anderen Steuerung (SPS?) oder liegt da ein Statischen Signal an und was sollte das Signal in der Steuerung bewirken?
      Beide Pins sind im Code nicht verwendet. Daher die Frage für was die geplant sind (in ferner/naher) Zukunft.
    • Hallo Mitch64,

      Ich trau mich schon noch ins forum und kann Dir die Fragen Beantworten.

      zu 1. Ich verwende einen Nano V3 fertig aufgebaut und der hat eine SMD-LED verbaut. Die nutze ich um zu sehen ob meine DO Loop Schleife funktioniert und om das Programm noch läuft.

      zu 2. Ja das ist ein eingang mit 0/+5V der mir Zeitgesteuert alle Rollos auf oder zufährt. Ist aber noch gar nicht angeschlossen weil alles zu seiner Zeit ;)

      Die Taster sind im normalfall offen und somit (Da ich ja die Pull up Wiederstände aktiviert habe nur mit GND verbunden. Also Tastendruck =GND kein Tastendruck +5V vom Kontroller.
      Die Leitungslänge vom Kontroller zum Taster sind kleiner 2cm weil das ganze ja in eine Unterputzdose verbaut wird. Deswegen sind auch die restlichen Kabellängen unter 5cm.

      Zwischenzeitlich habe ich das ganz gelöst mit

      Taster_auf:

      If Status = 4 Then
      Return
      End If

      Verz = 28800

      Also springt er zwar immer noch in die Taster_auf: Subroutine bekommt aber gleich einen Return solange der Status auf 4 ist.

      Dieser wird ja dann automatisch "richtig" gesetzt nach dem ersten Schleifen durchgang.

      Letzte Anmerkung.
      Das ganze Programm lief bereits seit einem halben Jahr im Testbetrieb allerdings ohne die Temperaturabfrage und das Störungsfrei.
      Und nur durch die Erweiterung begann er an zu spinnen, bzw nicht vorhersehbar zu reagieren und das nach vollziebar.
      Und ich kann mir immer noch nicht erklären warum er beim einschalten der Spannung in die Taster_auf Routine springt und zwar nur dahin.
      Ich habe dann schon wein Wait 2 vor der Do-Schleife gesetzt und dann auch ein waitms 1 bis waitms 100 in die Do-Schleife.
      Habe auch die Taster Harwaretechnisch getauscht also zu wird auf und umgekehrt ohne effekt.

      .. ich weiß ich kann immer noch nicht sauber programmieren :) aber es funktioniert.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von darkman100 ()

    • darkman100 schrieb:

      aber es funktioniert.
      Na ja - fast
      Die Relais sind Low aktiv. So werden sie beim Einschalten kurz angetickt. Nicht tragisch aber das verursacht möglicherweise genug Störung das die ersten Adc Werte voll daneben liegen könnten. Besser die Reihenfolge:
      Relaisauf alias Portb.5
      Relaisauf = 1
      Config Portb.5 = Output

      Schade das sich der Fehler nicht im Simulator zeigt. Geht es ohne Debounce?
      if Tasterauf = 0 then gosub Taster_auf

      Die Long und Bit belasten die if stark, besser Word und Byte
      Weniger Flash, schnellere Bearbeitung

      darkman100 schrieb:

      Dieser wird ja dann automatisch "richtig" gesetzt nach dem ersten Schleifen durchgang.
      :?: Bei mir nicht. An der Automatik muß noch nachgebessert werden sie funktioniert nicht/bzw nur einmal
      Solange der Staus nicht 1 oder 2 ist reagiert es nur auf Tasten.
      Da ist der Fehler sogar nötig zur "Autokalibrierung" :D
      Nach Stromausfall fährt er sie hoch und hat damit einen definierten Zustand (Status) um von da aus das richtige zu tun (zu, halbzu oder erstmal nichts mehr)
    • Ich programmiere viel seit den frühen 80gern und kann daher auf eine gewisse Erfahrung zurück greifen.
      Und eines habe ich gelernt.
      Ein Prozessor, dazu zähle ich jetzt auch Controller wie AVR oder Pic, die tun ganz exact das, was in den Anweisungen im Speicher steht (Maschinencode).
      Um logische Zusammenhänge, also ob die Anweisungen in der Reihenfolge Sinn machen, kümmert er sich nicht. Er sieht nur die Anweisungen und nicht den Zusammenhang der Anweisungen.
      Daher führt er nur die Anweisungen nacheinander aus. So gesehen ist so ein Controller völlig dumm.

      Den großen Zusammenhang (Intelligenz des Programms und den Ablauf) sieht nur der Programmierer. Und wenn sich das Programm dann anders verhält, als wie gewünscht, oder eben Effekte auftreten wie bei dir mit der Routine Taster_Auf beim Einschalten, dann gibt es dafür immer eine rationale Erklärung.
      Entweder im Programm ist ein logischer (Programmier-)Fehler oder der Pegel an dem Anschlusspin für Taster_Auf stimmt z.B. nicht (ist Low ohne Tasterdruck).
      Das kann aus meiner Sicht genau so einen Effekt bringen. Denn im Simulator läuft das Programm bei korrektem Eingangspegel an den Tastern (HIGH) nicht in die Routine Taster_Auf.

      Vielleicht willst du das nochmal prüfen.
      Schließlich hast du ja auch die Taster getauscht an den Anschlüssen und plötzlich lief das Programm ja in die Routine Taster_Ab.
      Prüf doch mal den Pegel an den Pins Taster_Auf Taster_Ab, Fern_Auf und Fern_Ab und berichte welche Spannung da anstehen.
      Theoretisch 5V wenn Taster nicht gedrückt ist, sonst nahezu 0V. In der Praxis muss das ja auch so sein. Ist es nicht so, hast du die Erklärung.

      Aus Programmsicht wird die Routine Taster_Auf ja nur dann aufgerufen, wenn entweder der Pegel an den Eingängen Taster_Auf oder Fern_Auf den Pegel von High nach Low wechselt.
      Die Maßnahme mit dem If Status=4 then Return in der Taster_Auf-Routine ist da lediglich Symptombehandlung.

      Du schreibst, dass das Problem erst nach den Änderungen auftrat.
      Daraus könnte man schließen, dass die Pegel an den Tastern vielleicht doch in Ordnung sind. Welche Änderungen das aber waren, die hinzu kamen, wissen wir im Forum nicht.
      Aber du rufst ja die Routinen über ein anderes Label auch auf (Goto AutoAuf/AutoAb). Und diese sind an die Sensorwerte gekoppelt.

      Jedenfalls muss ja irgend eine Bedingung erfüllt sein, damit das Programm in die Routine springt.

      Du kannst ja mal versuchen, die Routinen auszukommentieren, die die Sprünge bei Licht und Temperatur veranlassen. Damit sollte das Programm nur auf die Taster und Fern_Ab/Fern_Auf reagieren.
      Springt das Programm nun beim Einschalten nicht mehr in Taster_Auf, liegt es an einer der auskommentierten Routine.

      So kannst du den Fehler eingrenzen, bis du ihn hast.

      Ich habe auch schon oft an Programmen gesessen und stundenlang Fehler gesucht, war nah an der Verzweiflung und habe auch schon an meinem Verstand gezweifelt. Aber ich habe die Fehler immer gefunden. Und erst dann kam der Aha-Effekt, wo ich dann sagte, jetzt ist mir alles klar und der Fehler war im nach-hinein logisch nachvollziehbar. Aber manchmal sieht man es einfach nicht.
      Erst durch Ausschlussverfahren kommt man der fehlerhaften Programmstelle näher bis man schließlich auf den Fehler trifft.

      Vielleicht hilft dir das erst mal weiter. Das setzen von dem State auf 4 ist wie gesagt Symptombehandlung weil du ja versuchst einen bestehenden Fehler durch Code zu kompensieren. So werden Fehler verschleppt und vielleicht kommen so immer mehr Symptom-Behandlungs und Kompensierungs-Routinen dazu.

      Also wenn du nicht weiter kommst, sind hier alle im Forum bestimmt gerne bereit zu helfen.

      Vielleicht magst du es ja nochmal versuchen und stellst den jetzt funktionierenden Code rein. Ein Schaltbild wäre vielleicht auch hilfreich.
      Der Fehler muss ja auffindbar sein. Dazu benötigen hier aber alle ein gewisses Feedback von dir mit dem geänderten Code, ab dem man dann weiter sicht.

      Du verstehst?

      Mitch64
    • Hallo nochmal und danke fuer die hilfen.

      Nachdem ich das Update auf 2.0.8.3 durchgefuehrt habe laueft alles wie es soll.
      Ich kann zwar imm noch nicht nachvollziehen warum die alte version so spinnt oder warum das Problem jetzt ploetzlich verschwunden ist
      aber mann muss ja auch mit kleinen Dingen zufrieden sein.
      Ich habe jetzt seit einigen Tagen die Hardware verbaut und das Rollo verhaelt sich genau so wie es soll.
      Also warten wir die naechsten Tage ab und dann schliessen wir das Projekt als Final ab.

      Danke Heinz