Externe Integration: Stock Pellets

Ich heize mit einem Pelletsofen und hatte genug davon, die Säcke in der Garage zu zählen, um zu wissen, ob ich nachbestellen muss. Daher habe ich eine externe Integration für Gladys entwickelt: Pelletbestand.

Sie verfolgt Ihren Pelletvorrat: Lieferungen, Verbrauch, durchschnittlicher Tagesverbrauch, verbleibende Reichweite und, wenn Sie den Preis einer Palette angeben, den Wert des Vorrats und die monatlichen Kosten. Es ist kein Material zu installieren und kein Online-Konto zu erstellen. Die Integration führt einfach ein Register der Sackbewegungen und berechnet den Rest daraus.

Alles geschieht in einem Widget auf dem Dashboard. Dort sehen Sie Ihren Vorrat (grün, dann orange unter der Mindestbestandsgrenze, rot bei null), Ihre Reichweite in Tagen, das Datum, an dem Sie bestellen müssen, und ein Diagramm der Entwicklung des Vorrats oder der pro Tag verwendeten Säcke. Im Alltag reicht es aus, auf „−1 Sack“ bei jedem Ofenfüllvorgang und auf „Palette geliefert“ bei jeder Lieferung zu drücken.

Die Integration wird auch in Szenen verwendet. Zum Beispiel kann ein neben dem Ofen platzierter Zigbee-Knopf bei jedem Druck einen Sack abziehen, und Gladys kann Ihnen eine Nachricht schicken, wenn der Vorrat niedrig wird. Wenn Sie ein Zweitwohnsitz haben, können Sie mehrere Vorräte separat verfolgen.

Szenenaktionen

  • Pelletsäcke verwenden: entfernt Säcke aus dem Vorrat. Zum Beispiel entfernt ein Zigbee-Knopf neben dem Ofen bei jedem Druck einen Sack.
  • Pelletsäcke hinzufügen: fügt Säcke hinzu, für eine Lieferung oder einzeln gekaufte Säcke.
  • Pelletvorrat korrigieren: ersetzt den Vorrat durch die Anzahl der Säcke, die Sie gezählt haben.
  • Pelletvorrat lesen: ändert nichts und überträgt die Zahlen an die nächste Szene, zum Beispiel für eine wöchentliche Nachricht.

Jede Aktion überträgt die verbleibenden Säcke, die Reichweite, die Säcke pro Tag, die Tage bis zur Bestellung und das verbleibende Gewicht an die nächsten Aktionen.

Auslöser

  • Geringer Pelletvorrat: Der Vorrat erreicht die Mindestbestandsgrenze. Er löst sich nur einmal aus, wenn der Vorrat die Grenze erreicht, und nicht bei jedem Sack darunter.
  • Pelletvorrat aufgebraucht: Der letzte Sack wurde verwendet.
  • Palette Pellets geliefert: Eine Lieferung mehrerer Säcke wurde aufgezeichnet.

Zögern Sie nicht, Feedback oder Ideen zu geben!

Super @Will_71, genau das habe ich gesucht :star_struck:
Und ich habe es sogar schon installiert, bevor du es erwähnt hast, als ich es in den Neuheiten gesehen habe :wink:
Frage zur Kostenfrage: Wenn du einen Preis festlegst, gilt dieser dann für deinen gesamten Bestand?
Wenn du eine weitere Palette mit einem anderen Preis hinzufügst, wie wird das gehandhabt: Gilt der Preis nur für diese neue Ergänzung oder für den gesamten Bestand? (Anschluss + neu?)

Was ich wissen möchte, ist, ob, wenn eine Palette mit Preis A aufgebraucht ist, automatisch auf die zweite Palette mit Preis B umgestellt wird.
:face_with_raised_eyebrow: Ich bin mir nicht sicher, ob ich sehr klar bin, sag mir Bescheid, wenn du eine Reformulierung brauchst.

Ja, ich hatte etwas selbst gebastelt, also als die Widgets kamen, war es Zeit, umzusteigen und die Integration durchzuführen.

Was die Kosten angeht, im Moment, wenn du den Preis änderst, wird das auf den gesamten Bestand angewendet. Das war nicht meine Priorität, also habe ich mich nicht zu sehr damit beschäftigt, aber es ist ein Punkt, der verbessert werden muss. Ich wollte auch einen Preis pro Sack festlegen, aber ich habe Probleme mit den Dezimalstellen im Formular.

Jetzt beende ich den Pull-Request zum Thermostat und werde Änderungen vornehmen, um die Kostenverwaltung zu verbessern.

@mutmut, ich habe darüber nachgedacht, den Preis der Palette zu aktualisieren, und bisher habe ich keine Lösung gefunden, die mir gefällt. Falls du eine Idee hast.

Die Berechnung durchzuführen, ist kein Problem, aber es geht darum, den Preis der Palette anzugeben. Für den Preis pro Sack müssen wir die Formulare ändern, da ich keine Dezimalzahlen eingeben kann.

Was mich aktuell stört, ist, dass ich kein Formular in das Widget einfügen kann, um den neuen Preis anzugeben, und in die Einstellungen gehen muss, um den Preis zu ändern, bevor ich auf den vorgesehenen Button im Widget klicke. Das finde ich eher nervig.

Falls du Ideen hast, bin ich dankbar.

Ich denke diese Woche darüber nach, hatte am Wochenende keine Zeit.

Hallo @Will_71,

ich habe gesehen, dass du mit dem Button « form » weitergekommen bist, den PG auf dem Dev eingerichtet hat. Das gefällt mir sehr und entspricht in etwa dem, was ich mir vorgestellt habe.

Ich habe den Wert des verbleibenden Bestands und Gewichts gesehen, das ist gut.
Man könnte auch die Anzahl der verbleibenden Säcke anzeigen.
Allerdings bräuchte man eine zusätzliche Variable, die das Gewicht eines Sackes bei einer Lieferung ist:

  • Anzahl der Säcke (oder Schüttgut pro LKW für diejenigen, die kontinuierlich befeuerte Holzheizungen haben)
  • Gewicht eines Sackes (15 kg, 8 kg, anderes…) oder der Lieferung (Schüttgut mit z. B. 3 Tonnen)
  • Lieferkosten
    → Das würde es ermöglichen, die Kosten pro kg oder pro Sack zu berechnen

Könnte man dann eine Kostenanalyse über einen Zeitraum durchführen?
Mein Bedarf: vom 1.10.26 bis 1.06.27 möchte ich die Kosten meiner Heizung kennen, wobei ich 40 Säcke zu einem Preis X im Jahr 2025 verwendet und zusätzlich 60 Säcke zu einem Tarif Y eingesetzt habe.
Glaubst du, dass das möglich ist?
In meinem Kopf bedeutet das, jedem Sack einen Preis zuzuordnen, aber die Lösung ist vielleicht viel einfacher (Claude, Claude, bist du da? :joy: ).

Ja, deine Anmerkungen sind zutreffend. Beim Gewicht des Beutels ist das vorgesehen, aber da es einen Fehler mit den Dezimalstellen gab, habe ich deshalb vorerst das Gewicht der Palette angegeben. Aber ich werde es nachträglich hinzufügen, das ist Pflicht.

Bei der Preisverwaltung weiß ich noch nicht genau, wie ich das handhaben werde.

Ich werde Claude fragen, wie man das am besten macht. Ich halte dich auf dem Laufenden.

Danke Will für diese Integration, genau das wollte ich mir in Excel zusammenbasteln :wink:

Die Version 1.3.0 der Pellets-Lager-Integration ist verfügbar. Sie berücksichtigt viele eure Rückmeldungen, insbesondere die von @mutmut zu den Preisen und dem Gewicht der Säcke.

Was sich ändert

  • Lieferung mit Preis: „Palette geliefert“ öffnet ein Formular mit der Anzahl der Säcke, dem bezahlten Preis und dem Gewicht eines Sackes. „Sack(e) hinzufügen“ fragt nach dem Preis pro Sack.
  • Kosten nach dem Prinzip „First In, First Out“: Jeder verwendete Sack kostet den Preis, zu dem er gekauft wurde. Das Widget zeigt die Kosten der Saison an, und die Aktion „Kosten analysieren“ gibt die Säcke, die kg und die Kosten für einen Zeitraum (z. B. vom 01/10/2026 bis 01/06/2027) an.
  • Ein Lager pro Haus: „Lager hinzufügen“ bietet die Häuser von Gladys an, und „Lager einrichten“ gibt einem Lager seine eigenen Einstellungen (z. B. 10 kg Säcke in der Hütte).
  • Pellet-Silo in Schüttgut, gezählt in kg, mit seinem Widget (Lieferung, Füllstand in kg oder %) und seinem Gerät.
  • Deutsch und Spanisch, zusätzlich zu Französisch und Englisch, und eine Einstellung „Sprache der Gerätenamen“ für die vorgeschlagenen Namen im Entdeckungs-Tab.
  • Die beiden Widgets aktualisieren sich, sobald ein Lager oder ein Gerät hinzugefügt wird.

Erforderliche Aktionen

  • Gladys 5.2.0 mindestens (statt 5.1.0): Die Formulare der Widget-Buttons und die Liste der Häuser benötigen dies. Auf Gladys 5.1 bleibt die Integration bei 1.2.0 und das Update wird nicht angeboten.
  • Keine Geräte neu erstellen: Geräte, Verlauf, Szenen und bestehende Widgets bleiben unverändert.
  • Wenn ihr ein Lager mit einem Namen hinzugefügt habt, könnt ihr es mit „Lager einem Haus zuordnen“ einem Haus zuordnen. Es behält sein Gerät und seinen Verlauf.
  • Die vorgeschlagenen Gerätenamen im Entdeckungs-Tab bleiben auf Englisch, bis ihr eine andere Sprache in den Einstellungen auswählt.

Die neue Version wird im Laufe des Tages im Store erscheinen, sobald die Indexierung abgeschlossen ist.

Für Feedback oder Fehler

Ein Issue auf GitHub (Issues · William-De71/gladys-pellet-stock · GitHub) oder eine Antwort hier, mit:

  • der Version von Gladys und der Version der Integration;
  • den Logs des Integrationscontainers, idealerweise mit der Umgebungsvariable DEBUG=gladys-integration-sdk.

Die Version 1.4.0 der Pellets-Bestandsintegration ist verfügbar.

Was sich ändert

  • Neues Widget „Pellets-Preis“, für einen Sack- oder Silo-Bestand (in € pro Tonne):
    • der zuletzt gezahlte Preis und seine Entwicklung über ein Jahr (orange, wenn er steigt, grün, wenn er fällt);
    • die Kurve des Preises pro Sack von einer Lieferung zur nächsten, über 1, 3 oder 5 Jahre;
    • eine Zeile pro Heizsaison, bis zu fünf Saisons, zum Vergleich von Jahr zu Jahr: was die verwendeten Säcke gekostet haben (First-In-First-Out), ihre Anzahl und der durchschnittliche Preis pro Sack. Die Saison beginnt standardmäßig im Oktober, dies ist im Widget einstellbar.
  • Gerätenamen in Ihrer Sprache: Gladys gibt die Sprache des Benutzers an eine Integration nur weiter, wenn er ein Widget anzeigt. Standardmäßig folgen die in der Entdeckungskategorie vorgeschlagenen Namen daher der Sprache des letzten Benutzers, der ein Widget der Integration angezeigt hat. Die Einstellung „Sprache der Gerätenamen“ ermöglicht es immer noch, eine Sprache zu erzwingen.
  • Die Dokumentation zeigt jetzt die Widgets in vier Sprachen (Illustrationen, die aus dem Code der Integration generiert werden).

Erforderliche Aktionen

  • Keine: Nichts neu erstellen, Geräte, Verlauf, Szenen und bestehende Widgets bleiben unverändert.
  • Das Widget „Pellets-Preis“ wird wie die anderen hinzugefügt (Dashboard bearbeiten → Box hinzufügen). Es zeigt Zahlen erst, sobald mindestens eine Lieferung mit ihrem Preis erfasst wurde.
  • Wenn Sie die Konfiguration in 1.3.0 gespeichert hatten, bleibt die Spracheinstellung auf „Englisch“: Wählen Sie „Sprache des Benutzers“, um sie zu nutzen.

Gladys 5.2.0 mindestens, wie für die 1.3.0. Die neue Version wird im Laufe des Tages im Store erscheinen, sobald die Indizierung abgeschlossen ist.

Für Feedback oder Fehler

Ein Issue auf GitHub (Issues · William-De71/gladys-pellet-stock · GitHub) oder eine Antwort hier, mit:

  • der Version von Gladys und der Integration;
  • den Logs des Integrationscontainers, idealerweise mit der Umgebungsvariable DEBUG=gladys-integration-sdk.

Hallo @Will_71, die kalte Jahreszeit hat begonnen und ich habe auch mit deiner Integration angefangen :smiling_face::cold_face:

Ich weiß nicht, ob es ein Rundungsproblem ist, aber die Kosten der Saison von 11€ entsprechen nicht 2x5,45€, was 10,90€ ergibt

Ich glaube, das ist ein Rundungsproblem. Ich schaue mir das so schnell wie möglich an.

Gut erkannt, danke! Die Berechnung war korrekt, nur die Anzeige rundete auf den Euro.

In der nächsten Version werden die Beträge auf den Cent (10,90 €) angezeigt. Gleiches gilt für den Gesamtbestandswert.

Ich habe die Zeile „Bestandswert“ gekürzt, die abgeschnitten wurde: Sie zeigt nun nur noch den Wert und den Preis pro Sack an.

Danke @Will_71 :ok_hand:

Kleiner Hinweis zum Begriff „Sack“: Bei mir sind das nur 15 kg pro Sack, vielleicht machen andere eine Mischung aus 8 und 15 kg.
Mal sehen, ob es Anfragen gibt, um eine zusätzliche Information hinzuzufügen.
Auf jeden Fall bin ich damit einverstanden :slight_smile:

Ja, das ist nicht dumm, aber schwerer zu verwalten. Ich merke mir die Idee.