Forum: Mikrocontroller und Digitale Elektronik Webasto Vorwiederstand in Vorschaltuhr


von Rene S. (gigastulle)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen

Ich bin gerade dabei mir meine eigene GSM Fernsteuerung für meine
Webasto Thermotop C zu bauen.

Ich werde die Heizung erst demnächst verbauen wenn auch die
Fernsteuerung einsatzfähig ist. Um die Heizung mittels µC zu starten,
brauche ich ja nur wie auf dem Bild zu sehen, 12V auf die schwarze
Leitung zu geben. In der Uhr ist aber noch ein vorwiederstand
eingezeichnet.

Weis jemand wie groß der sein muss ???

Die 2 Dioden und der PNP Transistor nehmen ja schon gut 2V weg, so das
noch ca. 10V übrig bleiben. Laut unterlagen von Webasto soll bei
angeschlossener Uhr und aktiven  Heizvorgang, nur noch ca.7V auf der
Leitung sein. Habe leider keine Uhr oder Ähnliches da um das mal eben
raus zu testen oder gar zu messen. Deshalb meine Frage an euch ob schon
jemand Erfahrungen damit gemacht hat oder die große des benötigten
Widerstandes sogar kennt.

Gruß Rene

von MaWin (Gast)


Lesenswert?

Die Diode an der Basis ist eine Z-Diode und damit die 
Transistorschaltung eine Konstantstromquelle. Sicher nicht für 0.5A, 
sondern eher um einen Kurzschluss der schwarzen Leitung zu überleben, 
ich sag mal 10mA. Bei 5V6 Z-Diode also 470R.

Es sei denn, der Strom wird so genau geregelt, weil er eine 
Steuerfunktion hat, dann müsste man mehr wissen.

von kasul (Gast)


Lesenswert?

Hi,
warum steuerst du mit deinem Controller nicht einfach den W-Bus der 
Thermotop an? Dann kannst du alle Funktionen nutzen, die deine 
Standheizung hat ohne großen Hardwareaufwand (UART <-> K-Line mit z.B. 
mit L9637D und dann ist es nur noch Serielle Kommunikation)

Hier gibts Infos dazu:

Beitrag "Webasto W-Bus"

Bin auch gerade dabei so eine Lösung umzusetzen. Habe mir dazu ein 
SIM900 GSM shield für den Arduino geholt.

von Reiner O. (elux)


Lesenswert?

kasul schrieb:
> warum steuerst du mit deinem Controller nicht einfach den W-Bus der
> Thermotop an?

Weil nicht alle TT C einen W-Bus haben?

Und nein @MaWin, keine Steuerfunktionen.

470 Ohm gegen 12V Bordnetz sind ok, man hat dann aber keine 
Heizzeitbeschränkung, d.h. so lange 12V auf der schwarzen Leitung sind, 
heizt die Kiste (bis zur Unterspannungsabschaltung).

von kasul (Gast)


Lesenswert?

Reiner O. schrieb:
> Weil nicht alle TT C einen W-Bus haben?

Das ist mir neu. Ich dachte den Webasto-Bus haben alle. Woran kann ich 
denn erkennen ob meine Standheizung den W-Bus hat oder nicht? Habe auch 
die Thermotop C verbaut..

von Rene S. (gigastulle)


Lesenswert?

Mir ist Kein Webastomodel bekannt das über keinen W-Bus verfügt. Der 
einzige Unterschied besteht darin ob er als einzelleitung (gelb) aus dem 
Kabelbaum herausgeführt ist oder wie bei den neueren EVO Modellen im 
4poligen Stecker (ebenfalls gelb) liegt. EVO Modelle lassen sich sogar 
nur noch über Wbus starten. Habe nur keine Ahnung ob sich die einzelnen 
Protokolle zur Ansteuerung je nach Model unterscheiden. Hat da 
vielleicht schon mal jemand Erfahrungen mit gemacht ?

von Rene S. (gigastulle)


Lesenswert?

kasul schrieb:
> Hi,
> warum steuerst du mit deinem Controller nicht einfach den W-Bus der
> Thermotop an? Dann kannst du alle Funktionen nutzen, die deine
> Standheizung hat ohne großen Hardwareaufwand (UART <-> K-Line mit z.B.
> mit L9637D und dann ist es nur noch Serielle Kommunikation)
>
> Hier gibts Infos dazu:
>
> Beitrag "Webasto W-Bus"
>
> Bin auch gerade dabei so eine Lösung umzusetzen. Habe mir dazu ein
> SIM900 GSM shield für den Arduino geholt.

Wenn du schield arbeitest achte penibel auf den Stromverbrauch deiner 
Schaltung 10mA sollten absolute Obergrenze sein. Sonst ist deine 
Batterie im Auto locker in 14Tagen ohne Nutzung alle. Gerade im Winter. 
Bedenke bei 0Grad hat eine KFZ-Batterie nur noch die Hälfte ihrer 
Kapazität.

von kasul (Gast)


Lesenswert?

http://sourceforge.net/p/libwbus/libwbus/ci/master/tree/webasto_wbus.txt

Hier gibt es jede Menge Infos wie das Protokoll aufgebaut ist. Ich meine 
dort gelesen zu haben, dass es mit ziemlich jeder Webasto-Heizung 
funktioniert.


Beitrag "Re: Webasto W-Bus"

Hier schreibt jemand, dass einzelne Kommandos nicht gehen.
"Einzig bei ein paar Kommandos muss man aufpassen, die verstand meine
Heizung nicht und hat darauf nicht geantwortet... Am einfachsten ist es,
mit dem Webasto Diagnose Tool die Heizung zu starten, die Kommunikation
aufzuzeichnen und dann zusammen mit der Beschreibung oben das ganze
verstehen und nachbauen...

Fehler auslesen usw. geht überigens auch prima und kann man sich dann
schön per SMS zuschicken... ;-)"

von Olli Z. (z80freak)


Lesenswert?

Wow, interessant zu sehen das sich viele Leute mit den gleichen Dingen 
beschäftigen :-) Ich bastele auch gerade an einer Umsetzung für Atmega 
(Arduino) mit GSM für eine TTV.

Bist Du mit der schwarzen Leitung und einfachem schalten sicher? Das 
könnte auch ein Wbus sein!

Die genannten Links sind alle Top. Leider nicht direkt im Arduino zu 
implementieren.

von Rene S. (gigastulle)


Lesenswert?

Bin mir zu 100% sicher. Habe selbst schon unzählige Standheizungen 
verbaut und es war immer so. Das mit dem Schalter funktioniert. Habe es 
so derzeit bei mir im Auto verbaut bis meine Platiene mal fertig ist :)

von Klaus R. (klara)


Lesenswert?

Rene S. schrieb:
> vorwiederstand

Ein e ist zuviel. Such es Dir aus.

von Reiner O. (elux)


Lesenswert?

Rene S. schrieb:
> Mir ist Kein Webastomodel bekannt das über keinen W-Bus verfügt. Der
> einzige Unterschied besteht darin ob er als einzelleitung (gelb) aus dem
> Kabelbaum herausgeführt ist oder wie bei den neueren EVO Modellen im
> 4poligen Stecker (ebenfalls gelb) liegt.

Nein.

Wenn gelbes Kabel nur zum Sicherungsblock: Diagnose
Wenn gelbes Kabel zum 4 poligen Stecker: W-Bus

Quelle: Werkstatthandbuch TT Evo, TT Z/C/E, Schulungsunterlage Webasto

Ist ein Unterschied.

Ab irgend einem Baujahr/SW Stand verstanden auch TT C W-Bus über die 
Diagnose, aber eben nicht Alle. Am einfachsten ist es, zu versuchen, die 
TT C über WTT 2.x und Interface per W-Bus anzusprechen. Gehts, dann kann 
sie W-Bus, gehts nicht:...

>Bin mir zu 100% sicher. Habe selbst schon unzählige Standheizungen
>verbaut und es war immer so.

Ah ja.

Gruß

Elux

: Bearbeitet durch User
von Reiner O. (elux)


Angehängte Dateien:

Lesenswert?

Olli Z. schrieb:
> Bist Du mit der schwarzen Leitung und einfachem schalten sicher? Das
> könnte auch ein Wbus sein!

Nein, siehe Schaltplanausschnitt TT Evo.

von Olli Z. (z80freak)


Lesenswert?

Reiner O. schrieb:
> Wenn gelbes Kabel nur zum Sicherungsblock: Diagnose
> Wenn gelbes Kabel zum 4 poligen Stecker: W-Bus

Soll das heißen, das Diagnose (bus) und wbus nicht dasselbe sind? Davon 
bin ich bislang immer ausgegangen.
Alle mir bekannten Umsetzungen um eine SH zu steuern simuliereb letzlich 
eine Diagnosesoftware. Wo soll denn der Unterschied sein?

von Rene S. (gigastulle)


Lesenswert?

Olli Z. schrieb:
> Reiner O. schrieb:
>> Wenn gelbes Kabel nur zum Sicherungsblock: Diagnose
>> Wenn gelbes Kabel zum 4 poligen Stecker: W-Bus
>
> Soll das heißen, das Diagnose (bus) und wbus nicht dasselbe sind? Davon
> bin ich bislang immer ausgegangen.
> Alle mir bekannten Umsetzungen um eine SH zu steuern simuliereb letzlich
> eine Diagnosesoftware. Wo soll denn der Unterschied sein?

Das ist das selbe. Lediglich die Befehle unterscheiden sich ob sie von 
einer Uhr oder der Diagnosesoftware kommen. Wäre auch Verschwendung 2 
getennte Bussysteme zu verbauen. Im Bild oben sieht man ja das die Uhr 
oder Diagnosesoftware über die selbe Leitung senden. Ziehst du den 
Sicherungsstecker X8/X9 ab, lässt sich die Heizung nicht mehr über die 
Uhr Starten.

von Michael R. (mr-action)


Lesenswert?

Edit: Rene war schneller... ;-)

Das Diagnose bei den alten Heizungen ein anderen Protokoll fährt, was 
dann eben nicht W-Bus ist...

Drum kann man in der Diagnosesoftware von Webasto auch zwischen W-Bus 
und einigen anderen Einstellungen wählen... ;-)

: Bearbeitet durch User
von kasul (Gast)


Lesenswert?

Hier ein Beispiel-Code für Arduino/Atmega:
http://pastebin.com/9jEW030e
( stammt soviel ich weiß von hier: 
https://www.youtube.com/watch?v=6zZjSFef4yA )

Und hier ein weiteres Beispiel. Finde die Quelle nicht, daher bin ich 
mal so dreist, das hier komplett zu posten:
1
#include <SoftwareSerial.h>                        // Lets include the software serial library
2
char inchar;                                       // Will hold the incoming character from the GSM shield
3
SoftwareSerial SIM900(7, 8);                       // We will use pins 7 and 8 for the software serial
4
const byte phoneNumberAmount = 2;                  // How many phone numbers can control this device
5
boolean canControl = true;                         // A flag if checked phone numbers can control this device
6
boolean powerDown = false;                         // Is the GPRS shield powered down
7
int phoneNumberLength = 12;                        // Length of the phone number, international syntax without the + sign at the front
8
int relay = 5;                                     // Relay pin number
9
char phoneNumbers[] = "358401111111,358401111112"; // Phone numbers that can control this device, international format without the + sign at the front
10
String alarmPhoneNumber = "358401111111";          // The number where the alarm for the battery voltage is sent to
11
char rcvPhoneNumberArr[13];                        // Received phone number
12
float correctionValue = 1.661705f;                 // Correction value for the battery voltage
13
int batteryVoltage = 0;                            // Read the digital value of the battery voltage
14
float voltage = 0.0f;                              // The voltage value
15
float alarmVoltageLimit = 12.00f;                  // If the voltage goes under this value, an alarm text will be send to a phone number
16
float webastoMinVoltage = 12.15f;                  // The minimun voltage required to start Webasto
17
                                                   // State of charge      Sealed or flooded lead acid      Gel battery      AGM battery
18
                                                   // 100%                 12.70+                           12.85+           12.80+
19
                                                   // 75%                  12.40                            12.65            12.60
20
                                                   // 50%                  12.20                            12.35            12.30
21
                                                   // 25%                  12.00                            12.00            12.00
22
                                                   // 0%                   11.80                            11.80            11.80
23
                                                   // http://www.energymatters.com.au/components/battery-voltage-discharge/
24
25
// Set up arduino and the SIM900 shield
26
void setup() {
27
28
  Serial.begin(19200);                     // Serial with 19200 baudrate
29
  pinMode(9, OUTPUT);                      // Change pin 9 to output so we can power the SIM900 on
30
  pinMode(relay, OUTPUT);                  // Set the relay pin as output
31
  digitalWrite(relay, HIGH);               // Set the relay pin high
32
  SIM900power();                           // Wake up the GSM shield
33
  // SIM900.println("AT+CPIN=1234");       // If your sim card has pin code
34
  SIM900.begin(19200);                     // We will use the same baudrate for the SIM900 module
35
  delay(20000);                            // Will wait for 20 seconds for the SIM900 to logon to a network
36
  SIM900.print("AT+CMGF=1\r");             // Set SMS mode to text
37
  delay(100);                              // Will wait for 0.1 seconds
38
  SIM900.print("AT+CNMI=2,2,0,0,0\r");     // Blurt out contents of new SMS upon receipt to the GSM shield's serial out
39
  delay(100);                              // Will wait for 0.1 seconds
40
  Serial.println("Ready...");              // Lets print that the SIM900 module is ready for use
41
}
42
43
// Power the SIM900 module using software commands, this will only work if the JP is soldered
44
void SIM900power() {
45
46
  digitalWrite(9,LOW);
47
  delay(1000);
48
  digitalWrite(9,HIGH);
49
  delay(2000);
50
  digitalWrite(9,LOW);
51
  delay(3000);
52
}
53
54
// Main loop
55
void loop() {
56
57
  // Read the digital value for the battery voltage
58
  batteryVoltage = analogRead(A2);
59
60
  // Convert the value to 12 volts
61
  voltage = batteryVoltage * (12 / 1023.0);
62
63
  // Correct the voltage value
64
  voltage = voltage * correctionValue;
65
66
  // If voltage is under the set value of alarm
67
  if(voltage < alarmVoltageLimit && powerDown == false) {
68
69
    // Send the alarm text to car owner
70
    sendAlarmText();
71
72
    // Power the SIM900 shield down to save power
73
    SIM900power();
74
75
    // Set the flag that the SIM900 shield has been powered down to save power
76
    powerDown = true;
77
  }
78
79
  if(voltage >= alarmVoltageLimit && powerDown == true) {
80
81
    // Power the SIM900 shield up
82
    SIM900power();
83
    SIM900.begin(19200);                     // We will use the same baudrate for the SIM900 module
84
    delay(20000);                            // Will wait for 20 seconds for the SIM900 to logon to a network
85
    SIM900.print("AT+CMGF=1\r");             // Set SMS mode to text
86
    delay(100);                              // Will wait for 0.1 seconds
87
    SIM900.print("AT+CNMI=2,2,0,0,0\r");     // Blurt out contents of new SMS upon receipt to the GSM shield's serial out
88
    delay(100);                              // Will wait for 0.1 seconds
89
90
    // Set the flag that the SIM900 shield has been powered back up
91
    powerDown = false;
92
  }
93
94
  // If there is a character coming from the SIM900 shield
95
  if(SIM900.available() > 0) {
96
97
    // Read a character
98
    inchar = SIM900.read();
99
100
    // If character is ", we will read the phone number
101
    if(inchar == '"') {
102
103
      // Wait for a bit
104
      delay(20);
105
106
      // Read the next character
107
      inchar = SIM900.read();
108
109
      // If the character is +, the first symbol of the international phone number
110
      if (inchar == '+') {
111
112
        // Wait a bit
113
        delay(20);
114
115
        // Lets loop for the phone number legnth
116
        for (int i = 0; i < phoneNumberLength; i++) {
117
118
          // Lets read a character
119
          inchar = SIM900.read();
120
121
          // Wait a bit
122
          delay(20);
123
124
          // Will write the received phone number to an array
125
          rcvPhoneNumberArr[i] = inchar;
126
        }
127
128
        // Will check for all of the numbers that can control this device
129
        for(int a = 0; a < phoneNumberAmount; a++) {
130
131
          // Lets check all the numbers within the phone number
132
          for(int i = 0; i < phoneNumberLength; i++) {
133
134
            // Check if the numbers dont match
135
            if(phoneNumbers[a * phoneNumberLength + i + a] != rcvPhoneNumberArr[i]) {
136
137
              // Change the flag value
138
              canControl = false;
139
            }
140
          }
141
142
          // If the canControl flag is true, we dont need to check other numbers and we can end the loop
143
          if(canControl && (a != (phoneNumberAmount - 1))) {
144
145
            break;
146
          }
147
          else if(!canControl && (a != (phoneNumberAmount - 1))) {
148
149
            // If it was false and there is still numbers to check, change the value back to true
150
            canControl = true;
151
          }
152
        }              
153
154
        // Just a test print
155
        if(canControl) {
156
157
          Serial.println("This number can control this device");
158
        }
159
        else {
160
161
          Serial.println("This number cannot control this device");
162
        }
163
      }    
164
    }
165
166
    // If the character was #, the character that this circuit uses to send commands
167
    else if (inchar == '#' && canControl && voltage > webastoMinVoltage) {
168
169
      // Wait a bit
170
      delay(10);
171
172
      // Read the next character
173
      inchar = SIM900.read();
174
175
      // If the next character is s
176
      if (inchar == 's') {
177
178
        // Wait a bit
179
        delay(10);
180
181
        // Read the next character
182
        inchar = SIM900.read();
183
184
        // If the character was number 1, we will send high pulse for the webasto controller for a second
185
        if (inchar == '1') {
186
187
          // Will change the relay state
188
          digitalWrite(relay, LOW);
189
190
          // We will wait for one second
191
          delay(1500);
192
193
          // Change the relay state back to high
194
          digitalWrite(relay, HIGH);
195
        }
196
197
        // Wait a bit
198
        delay(10);
199
200
        // Will delete all the text messages from the sim, so it doesn't get clocked up
201
        SIM900.println("AT+CMGD=1,4");
202
      }
203
    }
204
  } 
205
}
206
207
void sendAlarmText() {
208
209
  delay(100);
210
  SIM900.print("AT+CMGS=\"+");        // recipient's mobile number, in international format
211
  delay(100);
212
  SIM900.print(alarmPhoneNumber);         //
213
  delay(100);
214
  SIM900.print("\"");
215
  delay(100);
216
  SIM900.println();
217
  delay(100);
218
  SIM900.print("Car battery charge is under 25%, remote control disabled."); // Message to send
219
  delay(100);
220
  SIM900.println((char)26);               // End AT command with a ^Z, ASCII code 26
221
  delay(100); 
222
  SIM900.println();
223
  delay(10000);                           // Give the module time to send SMS
224
}

Hoffe das ist eine Hilfe für den ein oder anderen.. Würde mich freuen, 
wenn ihr eure fertigen Codes auch zur Verfügung stellt.

von Olli Z. (z80freak)


Lesenswert?

Hi kasul,
dieser Code steuert eine SH an, die per Schaltsignal an/aus geht. Ich 
arbeite an einer Implementation für SH mit Wbus und GSM.

von kasul (Gast)


Lesenswert?

Der erste Link ( http://pastebin.com/9jEW030e ) sollte eine W-Bus 
Ansteuerung sein.
Habe die Codes bisher aber nur überflogen.. Sollte auch mehr als 
Anregung dienen.. vllt kann man ja die ein oder andere Idee abkupfern.

Werde bei mir im Wohnwagen auch eine Lösung mit W-Bus Ansteuerung und 
GSM umsetzen. Zusätzlich kommt noch eine Waage-Einheit (für Gasflasche) 
und ein Gasmelder an den µC.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.