HomeAssistant/MQTT voraussichtliche gesamte Druckzeit

Hallo.

Ich wollte mal fragen ob es möglich wäre eine Entity hinzuzufügen welche die voraussichtliche gesamte Druckzeit anzeigt? Also nicht ETE/ETA, ETE wird ja immer kürzer mit voranschreitendem Druck und ETA zeigt das voraussichtliche Datum und die Uhrzeit der Fertigstellung an. Wäre super wenn es da eine Möglichkeit gäbe.

LG, Gurry.

Comments

  • Du kannst die Entity leicht selber einfügen. Nur die wichtigsten sind über discover vordefiniert, aber es werden viel mehr Infos angeboten. Wenn du mit MQTTexplorer zum Beispiel die Daten testest siehst du das unter state/<slug>/basics im json ein Feld printTime beim Druck vorhanden ist, das die berechnete Druckzeit in Sekunden enthält. 
  • Danke für die schnelle Antwort. Könntest du mir bitte noch eine kleine Starthilfe geben? Ich bin anscheinend zu doof MQTTexplorer zu konfigurieren, bekomme keine Verbindung zum Repetierserver zusammen.
  • Du must dich mit dem MQTT Server verbinden nicht mit Repetier-Server. Im Grund die gleichen Daten wie im Server zum Verbinden mit dem HomeAssistant MQTT Server eingeben.
  • edited July 3
    Ah super danke, konnte mich nun verbinden und hab auch gleich das nötige gefunden... nur wie bekomme ich das printTime nun als entity gespeichert? :-D

    Sorry, bin leider ein totaler Anfänger auf dem Gebiet.
  • Im MQTT Explorer siehst du die definitionen die existieren in Homeassistant/sensor zum beispiel.

    Beispiel für ete:
    {
        "device": {
            "name": "Felix",
            "sw": "Repetier-Server 1.4.11",
            "manufacturer": "Hot-World GmbH & Co. KG",
            "identifiers": [
                "ce48c7eb-781c-46c9-9672-3a4e128444e3-Felix"
            ]
        },
        "unique_id": "ce48c7eb-781c-46c9-9672-3a4e128444e3-Felix-ete",
        "object_id": "ce48c7eb_felix_ete",
        "name": "Felix  ETE",
        "state_topic": "RepetierServer-ce48c7eb-781c-46c9-9672-3a4e128444e3/state/Felix/basics",
        "value_template": "{% set sec = ((value_json.printTime - value_json.printedTimeComp) | round(0,'floor')) %}{% set rsec = sec % 60 %}{% set min = (sec - rsec)/60 %}{% set rmin = min % 60 %}{% set hour = (min - rmin)/60 %}{{'%1d' % hour}}:{{'%02d' % rmin}}:{{'%02d' % rsec}}",
        "icon": "mdi:clock-check-outline"
    }
    Eine ähnliche entity must du selbst in configuration.yaml hinzufügen
    https://www.home-assistant.io/integrations/fan.mqtt/

    Dann kannst du sie später verwenden. Die vorhandenen werden über autodiscovery von alleine importiert was natürlich etwas einfacher geht,
  • Ok, ich hab das schon versucht, aber irgendwie will es nicht hinhauen... 

    Das habe ich in meiner configuration.yaml stehen:

    mqtt:
     identifiers: ********-****-****-****-************-Prusa,
     unique_id: ********-****-****-****-************-Prusa-print_time,
     object_id: ********_prusa_print_time,
     name: Prusa  Print Time,
     state_topic: Prusa-********-****-****-****-************/state/Prusa/basics,
     value_template: '{% set sec = (((value_json.time/1000)) | round(0,floor)) %}{% set rsec = sec % 60 %}{% set min = (sec - rsec)/60 %}{% set rmin = min % 60 %}{% set hour = (min - rmin)/60 %}{{%1d % hour}}:{{%02d % rmin}}:{{%02d % rsec}}',
     icon: mdi:clock

    möglicherweise stimmt an der value_template formel etwas nicht...
  • Möglich, du schreibst value_json.time/1000 aber wie ich geschrieben habe ist die gesamte Druckzeit value_json. printTime und die ist dann schon in sekunden. Bedenke auch das der Wert nur definiert ist wenn ein Druck aktiv ist.
  • edited July 5
    Gut, wenn ich sie dann in Minuten haben möchte müsste ich es dann /60 machen... und das ganze noch auf printTime ändern, aber der Rest der danach kommt sollte passen oder?

    Edit: gerade getestet, dass bekomme ich als Fehlermeldung:

    missed comma between flow collection entries (47:19)

     44 |  object_id: 2058d1d5_prusa_print_time,
     45 |  name: Prusa  Print Time,
     46 |  state_topic: Prusa-2058d1d5-2fe9-4d61-8123-3930d ...
     47 |  value_template: {% set sec = (((value_json.primt ...
    ------------------------^
     48 |  icon: mdi:clock
  • primt ... sollte das nicht print mit n sein?
    Sicher das da kommas am ende stehen sollen? Ist das nicht die yml Datei? Mein beispiel war ja json format. Bin aber auch nicht mehr ganz firm mit HomeAssistant was Syntax angeht. War froh es damals rausbekommen zu haben:-)
Sign In or Register to comment.