Ankündigung

Einklappen
Keine Ankündigung bisher.

Alternative Firmware für das Raum-Sensormodul von Masifi

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mumpf
    antwortet
    Hi,

    Du hast offensichtlich noch ein Encoding-Problem: Ich bin mir recht sicher, dass ich alles in UTF8 gespeiechert habe, das scheint aber so nicht bei Dir anzukommen - was ich verwunderlich finde. Weißt Du, um welche Datei es geht? Dann würde ich nochmal schauen, ob ich da vielleicht nicht versehentlich doch die Windows-Codepage eingestellt habe.

    Ansonsten habe ich das binary gefunden, ich werde es heute Abend auf github bereitstellen, gleich mit allen bisher angefallenen Korrekturen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • fsl
    antwortet
    Zitat von mumpf Beitrag anzeigen
    Du kannst unter Windows auch einfach das Verzeichnis knx-sensor auf dem Desktop öffnen und dann einen doppelclick auf Sensormodul.code-workspace machen.
    Aber wie das dann weiter läuft oder nicht kann ich nicht so einfach sagen.
    Das hat funktioniert. Leider hängt der Build dann mit:
    Code:
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 185: character maps to <undefined>
    Vielleicht könntest Du auf GitHub die Binaries zur Verfügung stellen und dann schaue ich mal, wie ich es drauf bekomme.

    Wegen der knxprod schauen wir dann mal weiter. Das ist ja ein anderes Prozedere.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    ich habe das extra auf einer frischen Win10-Instanz getestet... allerdings nur mit den Standard-Pfaden. Und die fangen unter Windows nunmal mit "C:\Users\<username>" an.

    Du kannst unter Windows auch einfach das Verzeichnis knx-sensor auf dem Desktop öffnen und dann einen doppelclick auf Sensormodul.code-workspace machen.
    Aber wie das dann weiter läuft oder nicht kann ich nicht so einfach sagen.

    Ich kann Dir eine Firmware bauen, aber ich hab bisher immer direkt den Upload auf das Device verwendet. Ich hab ehrlich gesagt keine Ahnung, wie man das getrennt macht (also bei mir bauen und dann bei Dir ein Upload). Da bräuchte ich also Tipps von der Community, wie man das macht. Ich hätte auch kein Problem, eine fertige Firmware zu veröffentlichen, bei der knxprod sieht das aber anders aus - deswegen hab ich mir ja die mühe gemacht, eine Bauanleitung zu machen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • fsl
    antwortet
    Ich benutze Windows 10 unter VMWare Fusion auf aktuellem MacOS und habe die Anleitung hier befolgt. Bis zum Kommando
    Code:
    code Sensormodul.code-workspace
    hat auch alles funktioniert. Auf dieses Kommando hin, habe ich folgende Ausgabe in der Konsole erhalten:

    Code:
    PS Microsoft.PowerShell.Core\FileSystem::\\vmware-host\Shared Folders\Dokumente\PlatformIO\Projects\knx-sensor> code Sensormodul.code-workspace
    "\\vmware-host\Shared Folders\Dokumente\PlatformIO\Projects\knx-sensor"
    CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
    UNC-Pfade werden nicht unterstützt.
    Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
    Passiert ist dann lediglich, dass ein neues Tab "Sensormodul.code-workspace" geöffnet wurde, das aber vollkommen leer war. Eine neue Instanz (neues Fenster?) habe ich nicht gesehen.

    Hat jemand eine Idee, wie ich hier weiterkomme? Ich bestehe im Übrigen nicht darauf, selbst zu kompilieren.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi, wie gesagt, die Hardwareseite musst Du mit Masifi klären. Und natürlich kann ich Dir helfen, dass wir eine Firmware stricken, die genau Deinen Bedürfnissen genügt, das ist häufig wesentlich weniger Aufwand als ein generischer (und normalerweise zeitkritischer) Input in einer Firmware.

    Sprich mich einfach darauf an, wenn es soweit ist.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Techi
    antwortet
    Danke für dein schnelles Feedback.

    Zitat von mumpf Beitrag anzeigen
    ...erfordern IO - zumindest die Inputs - aber Optokoppler, und für die ist wohl kein Platz mehr auf der Platine.
    Die Hardware wäre kein Problem da ich zumindest in meinem Fall eh eine eigene Hardware verwenden muss.

    Warum ich nicht so sehr für IO bin: Es gibt sehr günstige Tasterschnittstellen, die können prima IO, warum nicht die nehmen? ...
    Wenn das so einfach wäre, in meinem Fall muss ich über KNX ein fertiges Modul mit 5V und 22mA versorgen, ich habe da nun schon einige "fertige" binär Eingänge zerlegt aber noch keines gefunden welches dieser Anforderung gerecht wird, entweder stehen da auf der Platine nur 3.3V zur Verfügung wo dann der Strom selbst für einen sehr effizienten Boost Converter nicht reicht, oder es gibt 5V aber dann auch nur mit ein paar mA.

    Ich hätte jetzt einfach ein SAMD Board und ein KNX Interface Board von Eugen genommen und dann mit deiner Lösung da was gebastelt.

    Aber nicht tragisch, ich dachte nur, ich kommen jetzt schnell und ohne viel Aufwand an eine Lösung.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hallo Walter,

    ist aus mehrfacher Hinsicht schwierig:
    • Output wäre aus Firmwaresicht noch relativ einfach zu realisieren, ich würde pro Logikkanal eine Ausgabe auf einen Outputkanal machen, ähnlich wie beim Buzzer.
    • Input ist aber timing-kritisch und bisher hab ich schlechte Erfahrungen mit Interrupts gemacht. Außerdem kommen dann sofort die Forderungen nach Zählern etc.
    • Von der Hardware her (hier muss Masifi sich aber qualifiziert äußern) erfordern IO - zumindest die Inputs - aber Optokoppler, und für die ist wohl kein Platz mehr auf der Platine.
    Ist zumindest nichts kurzfristiges, meine derzeitige Liste sagt: 1-Wire (Sensoren), Zeitschaltuhren, Zustandsautomaten. Jedes davon ist Arbeit für 3-6 Monate, IO käme dahinter...

    Warum ich nicht so sehr für IO bin: Es gibt sehr günstige Tasterschnittstellen, die können prima IO, warum nicht die nehmen? Und es macht auch keinen Sinn, alle Funktionen in ein Gerät zu packen.

    Mal sehen, was Matthias dazu sagt,
    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Techi
    antwortet
    Erst mal Hut ab, was da an Arbeit geleistet wurde. Ich habe im Entwicklungs Thread auch immer mal mitgelesen und mir das für später vorgemerkt wenn mal der Bau soweit fertig ist und ich mehr Zeit habe.
    Aber jetzt mit dieser Lösung ist da ja fast alles schon fertig.

    Also sorry für die nun fast schon unverschämte Frage.
    Wäre es möglich zusätzlich noch ein paar ganz primitive (in meinem Fall ) 1 digitale I/O (bzw. ich bräuchte nur Input) zu bekommen.
    Also keine zusätzlichen speziellen Sensoren, sondern nur das Einlesen/Ausgeben/Konfigurieren von IO Pins ?

    Gruß, Walter


    Zuletzt geändert von Techi; 20.01.2021, 02:53.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hallo Michael,

    Zitat von Sisamiwe Beitrag anzeigen
    Ich habe keine Eile.
    ich wollte Dir nur einen kurzen Status geben: Ich habe die Korrektur schon seit Samstag Abend fertig, aber am Wochenende konnte ich wegen meinem 1-Wire-Aufbau nicht richtig testen. Und ganz ungetestet möchte ich das nicht freigeben. Ich hoffe, Du kannst Dich noch bis Mittwoch Abend gedulden, denn morgen wird das wegen meiner Arbeit nichts mit testen.

    Gruß, Waldemar

    P.S.: Aber bei größeren Werten für "absolute Abweichung" funktioniert das schon bei Dir, oder? Wenn man von der Abweichung +-1 wegen Rundungsfehlern absieht...

    Einen Kommentar schreiben:


  • Steph
    antwortet
    Zitat von mumpf Beitrag anzeigen
    Code:
    In knx-sensor, edit the file platformio.ini:
    - change the line -DBOARD_MASIFI_V3 to -DBOARD_MASIFI_V1
    - change the line -DCRYSTALLESS to ;-DCRYSTALLESS
    Das passt.

    Die Debugausgabe in "readBytesUart" hatte ich schon einkommentiert, allerdings kommt er da nicht rein. Jetzt habe ich die Ausgabe in "readUart" einkommentiert https://github.com/mumpf/knx/blob/78...tform.cpp#L120 und den Mitschnitt oben ausgetauscht. Da sind jetzt natürlich auch Daten von anderen Busteilnehmern rein gerutscht.

    mumpf Ich möchte dich bitten, nicht zu viel Zeit dafür aufzuwenden. Solange es nicht weitere betrifft, gehe ich von einem Fehler auf meiner Seite aus

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Steph: Ich werde leider erst heute Abend dazu kommen, ich bin heute mit "um die Kinder kümmern" dran. Aber kann es sein, dass Du nicht beide Stellen, die Thomas meinte, einkommentiert hast? Ich hätte bei Deinem Mitschnitt eigentlich auch noch
    Code:
    >p
    erwartet, ich meine an dieser Stelle: https://github.com/mumpf/knx/blob/78...tform.cpp#L136. Ist aber noch nicht kritisch, ich werde erstmal vergleichen, wie das bei mir aussieht und dann sehen wir weiter.

    Wenn sonst noch jemand Ideen hat, sind diese gerne willkommen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Steph: Danke erstmal, ich schaue heute im Laufe des Tages nach.

    Nur zur Sicherheit - und weil mir das noch eingefallen ist: Hast Du auch den Teil der Anleitung befolgt:
    Code:
    In knx-sensor, edit the file platformio.ini:
      - change the line -DBOARD_MASIFI_V3 to -DBOARD_MASIFI_V1
      - change the line -DCRYSTALLESS to ;-DCRYSTALLESS
    Vor allem das -DCRYSTALLESS muss auskommentiert (oder ganz gelöscht) sein.

    Sorry, dass ich nachfrage, aber ich suche immer noch nach einem Grund für das Verhalten...

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Sisamiwe
    antwortet
    Zitat von mumpf Beitrag anzeigen
    Also als Workaround: Bei Luftdruck immer bei der Abweichung 1 mehr angeben als die gewünschte Abweichung. Ich denke, ich schaffe die Korrektur am Wochenende. Das Problem ist, dass die Absolute Abweichung für alle Messwerte über die gleiche Routine berechnet wird und es bei kleinen Zahlen prima klappt... jetzt muss ich das wieder "auftrennen".
    Ich habe keine Eile. Es ist momentan nur Testbetrieb.

    Einen Kommentar schreiben:


  • Steph
    antwortet
    Zusammenfassend:
    - Programmierung über knxd
    - ETS 5.7
    - Kein Linienkoppler
    - Senden und Empfangen geht mit beiden Platinen mit konnekting firmware
    - Hänge ich an die gleiche Stelle ein Gerät von BJ, kann ich die PA überschreiben oder über den Programmiermodus eine PA zuweisen.
    - Busspannung ca 30V

    Daher gehe ich davon aus, dass die Hardware OK ist und ich kein grundsätzliches Problem mit dem Bus habe.

    Hier die Terminalausgabe (Programmiertaste gedrückt, programmierung der PA über ETS) :
    Code:
    Startup called...
    <p01
    p>03
    ownaddr 0
    p>BC
    p>11
    p>32
    p>43
    p>01
    p>E3
    <p10
    p>80
    p>41
    p>BC
    p>11
    p>4B
    p>43
    p>05
    p>E3
    <p10
    p>80
    p>3C
    p>BC
    p>11
    p>4A
    p>43
    p>04
    p>E3
    <p10
    p>80
    p>3C
    p>BC
    p>11
    p>45
    p>43
    p>06
    p>E3
    <p10
    p>80
    p>31
    p>BC
    p>11
    p>33
    p>43
    p>E3
    <p10
    p>80
    p>41
    p>BC
    p>11
    p>4E
    p>43
    p>08
    p>E3
    <p10
    p>80
    p>34
    p>BC
    p>11
    p>44
    p>43
    p>07
    p>E3
    <p10
    p>80
    p>31
    p>BC
    p>11
    p>41
    p>43
    p>03
    p>E3
    <p10
    p>80
    p>30
    p>B0
    p>05
    p>11
    p>53
    p>50
    <p10
    p>80
    p>D8
    p>90
    p>05
    p>11
    p>53
    p>50
    <p10
    p>80
    p>F8
    p>90
    p>05
    p>11
    p>53
    p>50
    <p10
    p>80
    p>F8
    p>90
    p>05
    p>11
    p>53
    p>50
    <p10
    p>80
    p>F8
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    p>B0
    p>05
    p>11
    p>53
    p>51
    <p10
    p>43
    p>1A
    p>90
    p>05
    p>11
    p>53
    p>51
    <p10
    p>43
    p>3A
    p>90
    p>05
    p>11
    p>53
    p>51
    <p10
    p>43
    p>3A
    p>90
    p>05
    p>11
    p>53
    p>51
    <p10
    p>43
    p>3A
    p>BC
    p>11
    p>4B
    p>43
    p>05
    p>E3
    <p10
    p>80
    p>3C
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    progmode on
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>BC
    p>11
    p>4A
    p>43
    p>04
    p>E3
    <p10
    p>80
    p>3C
    p>BC
    p>11
    p>3D
    p>43
    p>02
    p>E3
    <p10
    p>80
    p>4D
    p>BC
    p>11
    p>45
    p>43
    p>06
    p>E3
    <p10
    p>80
    p>31
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>BC
    p>11
    p>4E
    p>43
    p>08
    p>E3
    <p10
    p>80
    p>34
    p>B0
    p>05
    p>D1
    <p11
    p>01
    p>9A
    <p80 B0
    <p81 00
    <p82 00
    <p83 00
    <p84 00
    <p85 E1
    <p86 01
    <p87 40
    <p48 EF
    p>B0
    p>E1
    p>01
    p>40
    p>EF
    p>8B
    p>BC
    p>11
    p>41
    p>43
    p>03
    p>E3
    <p10
    p>80
    p>30
    p>BC
    p>11
    p>32
    p>43
    p>01
    p>E3
    <p10
    p>80
    p>41
    p>BC
    p>11
    p>4B
    Über zusätzliche Debugausgaben habe ich festgestellt, dass er eine Botschaft "IndividualAddressRead" empfängt und dann auch eine Botschaft "IndividualAddressResponse" zusammenstellt. Ob diese allerdings vollständig auf den Bus gesendet wird, kann ich nicht sagen. Im Busmonitor der ETS ist nur der "IndividualAddressRead" der ETS zu sehen.





    Zuletzt geändert von Steph; 21.03.2020, 19:51.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    erste Analyse: Rundungsproblem, allerdings über mehrere Stufen...
    1. Ich rechne intern mit double, das ist eine recht genaue Kommazahl
    2. Der Sensor liefert auch double (technisch), der aber aus irgendeinem binären Wert entsteht. Damit hat der eine Minimalauflösung, die ich aber gerade nicht weiß
    3. Pa-Werte sind recht groß,
    4. In KNX hat die Fließkommazahl nur die halbe Genauigkeit.
    Das Ganze führt jetzt dazu, dass durch 2) der Sensor stark schwankende Kommazahlen liefert, die immer wieder >1 als Delta ergeben. Durch 3) leidet die Genauigkeit auf dem KNX und durch 4) wird bei der Umwandlung/Rundung scheinbar immer die gleiche Zahl gesendet.

    Ich werde für Pa die interne Rechnung wohl auf Ganzzahl umstellen (wer braucht schon bei den Zahlen noch eine Kommazahl), bis die Korrektur kommt, sollte schon eine 2 bei der Abweichung eine Besserung bringen, wobei Du trotz 2 auch immer wieder ein Delta von 1 bei den Messwerten sehen wirst.

    Also als Workaround: Bei Luftdruck immer bei der Abweichung 1 mehr angeben als die gewünschte Abweichung. Ich denke, ich schaffe die Korrektur am Wochenende. Das Problem ist, dass die Absolute Abweichung für alle Messwerte über die gleiche Routine berechnet wird und es bei kleinen Zahlen prima klappt... jetzt muss ich das wieder "auftrennen".

    Gruß, Waldemar

    Einen Kommentar schreiben:

Lädt...
X