GSM устройство управления котлами Webasto и не только

MaksVV
Offline
Зарегистрирован: 06.08.2015

хм, интересненько. Так для интереса попробуй на будучи стоявший на охране старлайн , зацепиться дуиной на шину SL-DATA и по расшаренному методу снять с охраны. Если получится, то ..... старлайн старлайн))

Станислав Пимшин
Offline
Зарегистрирован: 18.11.2019

Открывает...

Станислав Пимшин
Offline
Зарегистрирован: 18.11.2019

В следующем поколении исправлено... Путем установки в саму сигнализацию...

MaksVV
Offline
Зарегистрирован: 06.08.2015

На А94, B94, Е90 и подобных ставились также и  выносные мессенджеры М21, М31 также вроде по sl-data

Станислав Пимшин
Offline
Зарегистрирован: 18.11.2019

Я управлял таким скетчем
 

/*
  Мутим шину SL-Data типа старлайн первого покаления и ее клонов.
*/
byte var = 0;          //переменная циклов передачи данных
byte wir = 5;          //переменная количества циклов передачи данных в одном пакете
byte slout = 12;       //назначение выхода TX SL-Data
byte slin = 11;        //Назначение входа RX SL-Data

byte state = 2;            //Назначение входа для опроса состояния сигнализации
byte start = 3;            //Назначение входа для запуска ДВС автомобиля
byte stopping = 4;         //Назначение входа для останоки ДВС автомобиля
byte secact = 5;           //Назначение входа для активации охраны
byte disarming = 6;        //Назначение входа для дезактивации охраны
 

void setup() {

  // Инициализируем цифровой вход/выход 13 в режиме выхода.
  pinMode(slout, OUTPUT);       //Активируем выход для передачи команд в сигнализацию.
  digitalWrite(slout, HIGH);    //притягиваем выход к плюсу
  pinMode(slin, INPUT);         //Инициализируем вход для приема данных из сигнализации.
  digitalWrite(slin, HIGH);     //притягиваем к плюсу
 
  
  pinMode(state, INPUT);              //Инициализируем вход/выход в режиме входа для опроса состояния сигнализации.
  digitalWrite(state, HIGH);          //притягиваем к плюсу, управление минусом.
  pinMode(start, INPUT);              //Инициализируем вход/выход в режиме входа для запуска ДВС автомобиля.
  digitalWrite(start, HIGH);          //притягиваем к плюсу, управление минусом.
  pinMode(stopping, INPUT);           //Инициализируем вход/выход в режиме входа для останоки ДВС автомобиля.
  digitalWrite(stopping, HIGH);       //притягиваем к плюсу, управление минусом.
  pinMode(secact, INPUT);             //Инициализируем вход/выход в режиме входа для активации охраны.
  digitalWrite(secact, HIGH);         //притягиваем к плюсу, управление минусом.
  pinMode(disarming, INPUT);          //Инициализируем вход/выход в режиме входа для дезактивации охраны.
  digitalWrite(disarming, HIGH);      //притягиваем к плюсу, управление минусом.
}

void loop() {
 
if (digitalRead (state) == LOW){
  while (var < wir) {             //Команда запрос состояния
    digitalWrite(slout, LOW);
    delay(10);
    digitalWrite(slout, HIGH);
    delayMicroseconds(240);
    digitalWrite(slout, LOW);
    delayMicroseconds(200);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(820);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(210);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(210);
    digitalWrite(slout, HIGH);
    delayMicroseconds(810);
    digitalWrite(slout, LOW);
    delayMicroseconds(210);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    var++;
  }
}
  if (digitalRead (stopping) == LOW){
  while (var < wir) {             //Команда заглушить ДВС
    digitalWrite(slout, LOW);
    delay(10);
    digitalWrite(slout, HIGH);
    delayMicroseconds(240);
    digitalWrite(slout, LOW);
    delayMicroseconds(1031);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(420);
    digitalWrite(slout, HIGH);
    delayMicroseconds(1025);
    digitalWrite(slout, LOW);
    delayMicroseconds(209);
    digitalWrite(slout, HIGH);
    delayMicroseconds(410);
    var++;
  }
  }
  
if (digitalRead (start) == LOW){
  while (var < wir) {             //Команда запустить ДВС
    digitalWrite(slout, LOW);
    delay(10);
    digitalWrite(slout, HIGH);
    delayMicroseconds(447);
    digitalWrite(slout, LOW);
    delayMicroseconds(826);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(625);
    digitalWrite(slout, HIGH);
    delayMicroseconds(819);
    digitalWrite(slout, LOW);
    delayMicroseconds(209);
    digitalWrite(slout, HIGH);
    delayMicroseconds(410);
    var++;
  }
  }
 
if (digitalRead (secact) == LOW){
  while (var < wir) {             //Команда постановка охраны
    digitalWrite(slout, LOW);
    delay(10);
    digitalWrite(slout, HIGH);
    delayMicroseconds(447);
    digitalWrite(slout, LOW);
    delayMicroseconds(620);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(831);
    digitalWrite(slout, HIGH);
    delayMicroseconds(610);
    digitalWrite(slout, LOW);
    delayMicroseconds(209);
    digitalWrite(slout, HIGH);
    delayMicroseconds(616);
    var++;
  }
  }

if (digitalRead (disarming) == LOW){
  while (var < wir) {             //Команда снятие охраны
    digitalWrite(slout, LOW);
    delay(10);
    digitalWrite(slout, HIGH);
    delayMicroseconds(240);
    digitalWrite(slout, LOW);
    delayMicroseconds(820);
    digitalWrite(slout, HIGH);
    delayMicroseconds(200);
    digitalWrite(slout, LOW);
    delayMicroseconds(623);
    digitalWrite(slout, HIGH);
    delayMicroseconds(817);
    digitalWrite(slout, LOW);
    delayMicroseconds(209);
    digitalWrite(slout, HIGH);
    delayMicroseconds(616);
    var++;
  }
  }
  var = 0;
  
}

 

Станислав Пимшин
Offline
Зарегистрирован: 18.11.2019

Точнее поддерживаются следующие версии!

A61/A91 Dialog A62(только версии, имеющие разъем) A92 A64/A94, А93/А63,
B6/B9 Dialog B61/B91 Dialog B62/B92 Dialog B64 B94,
E60/E90 Е61/Е91
D64/D94 и T94
Совместная работа с автосигнализациями других производителей имеющие разъем.

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

Станислав Пимшин пишет:
2. Особенности передачи данных в сигнализацию: выдержка времени (притягивание шины к земле) перед подачей "пакета" в сигнализацию 10 мс., передача идет одинаковыми пятью "пакетами" с 10 мс. выдержкой между ними, в последнем (пятый) пакете стоповый бит отсутствует, при снятии сигнализации (5 пакетов) передаются с периодичностью  300 мс. пока не придет подтверждение.

3. Особенности приема данных из сигнализации: выдержка времени (притягивание шины к земле) перед подачей "пакета" в сигнализацию 5 мс /вот тут нужно было сказать "перед принятием пакета от сигнализации" ?/, принимаем два разных "пакета" с задержкой между пакетами  1,5 мс.,  в последнем (второй) пакете стоповый бит отсутствует.

вот тут нужно уточнить. Т.е. когда мы передаем в сигнализацию, мы тянем шину к земле на 10 мс, потом передаем данные. А когда ждём данных от сигнализации, следим за состоянием шины (она в это время подтянута к плюсу).  Сигнализация перед передачей нам данных стягивает шину к земле на 5мс, потом начинает передавать данные. Я правильно понял? 

и еще.  Раз между пакетами выдержка в 10 мс (при передаче в сигнализацию), и 1,5мс (при принятии от сигнализации) и во время этой выдержки шина притянута к земле (я прав?) - могу предположить, что стоповые биты и вовсе отсутствуют. Вы думали что стоп бит есть, а на самом деле это было просто часть состояния шины "в земле" в момент выдержки между пакетами. Поэтому вы не наблюдаете стоп битов после последнего пакета, т.к. междупакетная выдержка там отсутствует и шина переходит в спокойное состояние и тянется к плюсу. 

Станислав Пимшин
Offline
Зарегистрирован: 18.11.2019

MaksVV пишет:

вот тут нужно уточнить. Т.е. когда мы передаем в сигнализацию, мы тянем шину к земле на 10 мс, потом передаем данные. А когда ждём данных от сигнализации, следим за состоянием шины (она в это время подтянута к плюсу).  Сигнализация перед передачей нам данных стягивает шину к земле на 5мс, потом начинает передавать данные. Я правильно понял? 

и еще.  Раз между пакетами выдержка в 10 мс (при передаче в сигнализацию), и 1,5мс (при принятии от сигнализации) и во время этой выдержки шина притянута к земле (я прав?) - могу предположить, что стоповые биты и вовсе отсутствуют. Вы думали что стоп бит есть, а на самом деле это было просто часть состояния шины "в земле" в момент выдержки между пакетами. Поэтому вы не наблюдаете стоп битов после последнего пакета, т.к. междупакетная выдержка там отсутствует и шина переходит в спокойное состояние и тянется к плюсу. 

Все правильно понимаете... Но если убрать стоповые будто нет их то выдержка между пакетами увеличить на 208 МКС..

Могу залить и посмотреть что получилось реально... 

 

Dmitry888
Offline
Зарегистрирован: 16.03.2019

MaksVV пишет:
попробовал это исправить в v4.074

Dmitry888 пишет:
2. те - диагнозу он отдает в этом скетче только во время работы . 4.073 - прошлая версия - работала после остановки котла . если не сохранил - у меня есть исходник.
немного исправил, возможно заработает на выключенном котле

ДД. Я тут со своими баранами ... Bus w1.5. поставил в машину девайс . Продолжаю натурные испытания. -35 по ночам. Полет нормальный. НО. Данные по котлу отдает 100 процентно и сразу только после старта котла. В ожидании спорадически . Если жать рефреш- может на 10й раз отдать может на 20й. Может не отдать вовсе. Включаешь - данные приходят сразу.

Думаю все таки какая то ещё инициализация нужна или пауза , между инициализацией и опросом параметров в режиме офф... Соберу ещё варик , чтоб тот не доставать из торпеды... Попробую ещё покопать протокол обмена...

MaksVV
Offline
Зарегистрирован: 06.08.2015

надо лог в момент когда не отвечает при выключенном котле. 

xbot
Offline
Зарегистрирован: 03.02.2021

добавил лог  с b4ws

MaksVV
Offline
Зарегистрирован: 06.08.2015

xbot пишет:

добавил лог  с b4ws

время будет попробую доковырять протокол, хорошо что логов несколько , будет что сравнить. 

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

Dmitry888 пишет:

CustomSoftwareSerial library allow to configure and custom Parity Bit and Stop Bit.

 софтсериал стучит в модем. там обычная проверка . и кастом не нужен.  в чем еще он лучше ? 

открой библиотеку, там всё описано, чем лучше

xbot
Offline
Зарегистрирован: 03.02.2021

MaksVV пишет:

время будет попробую доковырять протокол, хорошо что логов несколько , будет что сравнить. 

не занимались ещё гидроником?

wlid boukriss
Offline
Зарегистрирован: 10.11.2019

Добро пожаловать
У меня вопрос
Как GSM (sim800l)может работать
Reset Автоматика

wlid boukriss
Offline
Зарегистрирован: 10.11.2019

Сэр.
Я работал над этой программой, и она не сработала для меня.
Пожалуйста, помогите и спасибо