NEWS
Test Adapter canbus v1.1.x Latest
-
Bist auch der Peter im mikrocontroller.net Forum zum Thema Junkers Gastherme?
Nein, bin ich nicht.
Am Bus wird eine 2 Byte Nachricht versendet die in HEX die Aussentemperatur in 100tel Grad ausgibt.
z.B : 024B -> 5.78°C oder FF76 -> -1.18°C
Wie könnt ich die Umwandlung direkt mit dem Parser machen?Das sollte mit einem Custom Parser recht einfach machbar sein. Die Werte sehen mir nach einem Int16 im Big Endian Format aus. Das Skript zum Lesen wäre dann wie folgt:
value = buffer.readInt16BE() / 100;
Wobei ich bei deinen angegebenen Beispielen leichte Abweichungen habe. 024B ist 5,87 und FF76 ist -1,38.
Ich gehe mal davon aus, dass du die Werte nur lesen und nicht schreiben möchtest? Dann kannst du als Skript zum Schreiben einfach einen Kommentar einfügen, damit der Adapter beim Starten keine Warnung wegen eines leeren Skripts ins Log schreibt:
// kein schreiben
-
@crycode
Danke!
Das hilft mir sehr weiter.Schöne Grüße
Martin -
Was mir gerade aufgefallen ist :
ich habe z.B. eine Nachricht mit ID 201, bei dieser ID habe ich eine Custom Parser eingestellt.
Die Nachricht kommt regelmässig, nach dem Neustart des Adapters wird auch der richtige (zum Parser passende) Datenpunkt erzeugt. Nur dieser Datenpunkt verschwindet irgendwann wieder?
Starte ich den Adapter neu ist er wieder da ?Hast du eine Idee warum? Kann ich ein deguber mitlaufen lassen um dem Problem auf die Spur zu kommen?
-
@zmaier :
Was mir auch aufgefallen ist, die Datenpunkte kommen auch nach einer Zeit wieder - aber dann sind alle Einstellung zu diesem Datenpunkt weg (z.B. speichern in InfluxDB).
-
@zmaier Das ist seltsam
Sind das Nachrichten- oder die Parser-Datenpunkte, die verschwinden?
Der Adapter löscht eigentlich nur beim Start die Objekte, wenn sie nicht konfiguriert sind. Nicht konfigurierte Nachrichten werden zudem nur gelöscht, wenn der entsprechende Haken auf der "Allgemein" Seite gesetzt ist.Kannst du für den Adapter mal das Log auf
debug
stellen?
Wenn der Adapter ein Objekt löscht sollte dort zusammen mit ein paar anderen Meldungendelete unconfigured parser <id>
oderdelete unconfigured message <id>
geloggt werden. -
@crycode :
Die Parser-Datenpunkte veschwinden und kommen aber nach einiger Zeit wieder.
Aufgefallen ist mir das, weil ich gestern Abend einige IDs mit einem Custom Parser konfiguriert habe und diese neuen Datenpunkte dann in der Datenbank speichern wollte.
Gestern Abend sind einige Punkte verschwunden und nach Neustart des Adapters wieder erzeugt worden.
Heute früh war bei einigen Datenpunkten die Einstellung zur InfluxDB nicht mehr vorhanden.
Wie wenn die Punkte verschwinden, dann wieder kommen und das Häcken bei "InfluxDB aktivieren" nicht gesetzt wird.Auf der "Allgemein" Seite hab ich "nicht konfigurierte NAchrichten löschen" nicht gesetzt.
Ich werde das weiter beobachten.
Blöde Frage, wie setze ich das LOG auf debug ?
-
@zmaier Bei den Instanzen den Expertenmodus aktivieren, dann in der Spalte "Log-Stufe" auf "info" klicken und "debug" auswählen.
Wenn der Haken für die InfluxDB verschwindet, dann deutet das darauf hin, dass das Objekt neu erzeugt wurde, was ja auch zu deinem beschriebenen Verhalten passt.
Was mir spontan noch einfällt: Hast du vlt. die Nachrichten-ID doppelt angelegt? Aktuell prüft der Adapter nicht auf doppelt angelegte IDs, aber diese könnten zu einem unerwarteten Verhalten führen.
-
@zmaier Hast du irgendwelche aktuellen Infos dazu oder hast du das Problem inzwischen gefunden?
-
@crycode : Sorry für die späte Rückmeldung - ich hab in den letzten Tagen den Innenputz bekommen - leider hab ich grad keine Zeit für mein Heizungsspielerein
Ich werde mich aber, wenn die Zeit hoffentlich bald mal wieder da ist, melden und mir das Thema genauer anschauen.DANKE
Martin -
Im Latest-Repo ist jetzt die v1.0.0-beta.6 verfügbar.
In dieser Version wurde ein Fehler bei der Erstellung der Objekte behoben und eine Prüfung auf doppelt konfigurierte Nachrichten hinzugefügt.
-
Hallo ich würde gerne meine Rotex Wärmepumpe darüber einbinden.Diese unterstützt can.Zur Zeit verwende ich ein fhem Modul HPSU und bringe dieses nach IO.Würde es aber gerne mit diesem Adapter direkt ohne fhem abfragen und auch schreiben können.Ist das mit diesem Möglich und kann mir da geholfen werden?
-
@cb187 Generell musst du dafür wissen welche Datenpakete (Nachrichten) auf dem Bus gesendet werden und in welcher Form die Daten dabei kodiert sind.
Als fiktives Beispiel:
Nachricht mit der ID0x042
ist die aktuelle Temperatur mit 4 Datenbytes als Float Zahl.Wenn du diese Informationen für alle benötigten Nachrichten hast, dann kannst du die Nachrichten entsprechend im Adapter anlegen und Parser konfigurieren, die dann die eigentlichen Daten lesen und schreiben können.
-
@crycode ok ich hab nen usb to can interface ist dieses auch möglich?
-
@cb187 Solange dir das ein "echtes" CAN Interface im System erzeugt (z.B. can0) sollte das funktionieren.
Das kannst du recht einfach mit der Eingabe von
ip a
in einem Terminal prüfen. Die Ausgabe sollte u.a. etwas ähnlich folgendem beinhalten:3: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 10 link/can
-
@crycode leider zeigt er mir can0 nicht an.Ist ein USBtocan interface vom auto.Hab auch die utils installiert.In fhem wird er gefunden
-
@cb187 Diese Interfaces nutzen meistens den ELM327 Chip, der leider kein echtes CAN-Interface für den Kernel bereitstellt, sondern eigene AT-Befehle zur Kommunikation nutzt. Zudem reicht er (soweit ich weiß) die CAN-Nachrichten nicht einfach durch, sondern ist eher für Diagnoseabfragen bei Autos gedacht. Die Performance soll auch nicht so das wahre sein.
Was du brauchst wäre z.B. ein CAN Hat für den Raspberry Pi mit einem MCP2515 CAN-Controller.
Das lässt sich sogar relativ einfach selbst bauen: https://crycode.de/can-bus-am-raspberry-pi
-
@crycode ich weiss das meine Rotex WP Can benutzt, über fhem und dem elm interface funzt es.Naja da muss ich das erstmal über fhem weiternutzen.
-
@cb187 Ich nehme an, du meinst dieses FHEM Modul? Das ist extra für die Nutzung zusammen mit dem ELM327 gebaut.
Der ioBroker.canbus Adapter hingegen basiert auf SocketCAN und greift somit direkt auf Funktionen des Kernels zu.
Ich habe noch einen Linux SocketCAN driver for ELM327 auf GitHub gefunden. Vielleicht hilft dir der schon weiter?Generell kann ich mir vorstellen, auch eine Funktion mit ELM327 in den Adapter einzubauen, jedoch fehlt mir dafür aktuell die entsprechende Hardware.
-
@crycode genau ich nutze dieses Fhem modul.dachte das basiert auf socketcan.Meine ich habe das gelesen.
Mit deinem Adapter hast natürlich jetzt soviel möglichkeitenneue unterstütze Hardware einzubauen.würde dir da gerne irgendwie helfen wollen -
@cb187 Das FHEM Modul Kommuniziert mit dem ELM327 direkt über AT-Befehle und nutzt nicht SocketCAN.
Ich werde mir das bei Gelegenheit mal anschauen und versuchen eine Unterstützung für den ELM327 einzubauen. Ich denke das könnte klappen, dass man dann zwischen SocketCAN und ELM327 auswählen kann.
Da aktuell andere Projekte Vorrang haben und ich mir erst einen passenden Adapter besorgen muss, kann ich im Moment leider aber noch nicht sagen, wann das sein wird.
Ab heute ist jetzt erst mal die v1.0.0 (ohne Beta) von ioBroker.canbus im Latest-Repo zum Testen verfügbar.
Einzige Änderung ist, dass die Nachrichten im Admin nun beim Laden der Seite sortiert werden. (Und aktualisierte Übersetzungen auf Russisch.)
Sollten hier keine Probleme mehr auftreten, dann kommt diese Version in das Stable-Repo und wird damit für alle Nutzer verfügbar.