Hallo, ich empfange seriell Daten einer BMA und sende diese weiter über Telegram.
Das funktioniert auch sehr gut bist Umlaute ins Spiel kommen.
Da diese als z.B. gespiegeltes Fragezeichen in der Konsole ausgefürt werden weigert sich Telegram diese zu schicken.
Kann mir jemand sagen was ich da machen kann?
leider kann ich den kompletten Code nicht einfügen, daher hier nur die wie ich vermute die entscheidende Stelle.
Da haben wir schon ein bisschen was mit replace versucht aber leider ohne Erfolg.
if (swSer.available()) {
// Serial.println(Serial1.readString());
// String text = Serial.readStringUntil("\r\n");
// text = swSer.readString();
text = swSer.readString();
// Serial.println(text);
// if ((strstr(text.c_str(), "Datenpunkt")) || (strstr(text.c_str(), "Brandalarm")) != NULL)
{
Serial.println(text);
String substring1 = "'129'"; // \u00dc /342 \ü
String substring2 = "ue";
text.replace("84", "xxx");
text.replace("94", "yyy");
text.replace("81", "zzz");
text.replace("148", "ccc");
// String substring1 = "1";
// String substring2 = "xx";
// text.replace(substring1, substring2);
Serial.println(text); // string after
char charBuf[text.length()+1];
// text.toCharArray(charBuf,2);
text.toCharArray(charBuf,text.length() +1);
Serial.print("charBuf");
Serial.print("---> ");
Serial.println(charBuf);
// msg.sender.id = 827060854 ;
Serial.println("Telegramm gesendet...");
myBot.sendMessage(msg.sender.id, charBuf);
myBot.sendMessage(msg.sender.id, tester);
}
delay(100);
}
Das was von der BMA kommt sieht so aus mit HTherm..
-21<\r><\n> System MGR Loop Status <\r><\n>St”rg. Ext.Alarmrg Mgr 000 R002 SupO 21:33:26 12-M„r-21<\r><\n> System MGR A <\r><\n>St”rung Element Mgr 000 R006 D.SupI 21:33:26 12-M„r-21<\r><\n> System MGR šE-S šberwachung <\r><\n>St”rg. Ext.Alarmrg Mgr 000 R001 SupO 21:33:26 12-M„r-21<\r><\n> System MGR Alarmierung 1 <\r><\n>