Beiträge von Babelbernd

    Wenn ich mich noch richtig erinnere musst du den value als payload an den MQTT out senden. Am besten einen "Inject" mit dem mqtt out verknüpfen, dem Inject als payload den Wert {"value": 28} zuweisen und im mqtt out den richtigen topic einfügen. Schau dir dazu aber am besten einfach eine Anleitung auf YouTube an weil ich mir nicht mehr zu 100% sicher bin und ich den Broker selbst nicht mehr nutze.

    Hallo zusammen!


    Gibts eigentlich eine Möglichkeit über MQTT z.B. die Vorlauftemp. oder die Aschebox quittieren von extern zu steuern, oder ist es nur auf einen Weg möglich, also nur auslesen aus dem p4d?

    Klar, swie du ja mit deinem MQTT Broker Daten empfangen kannst, kannst du auch Daten senden. Welchen Broker benutzt du denn? Bei mosquitto schaut der Befehl so aus:

    Code
    mosquitto_pub -t "test_topic" -m "test"

    Hinter -t steht das topic und hinter -m die Message. Hoffe das hilft dir so weiter.

    0x76 ist hexadezimal. In dezimal ist das der Wert 118. Versuche Mal folgenden Befehl:


    select* from p4.samples where address="118" and type="VA" and value>"1000";

    Bitteschön. Irgendetwas passt auf jeden fall nicht :)


    Konnte die Logdatei schöner filtern als gedacht. Hier der Ausschnitt:


    Bei mir ist es wieder so weit, ich habe einen Ausreißer in der DB:



    Code
    MariaDB [p4]> select* from p4.samples where address="0" and type="VA" and value>"1000";
    +---------+------+-----------+---------------------+------------+------------+---------+------+---------+
    | address | type | aggregate | time                | inssp      | updsp      | value   | text | samples |
    +---------+------+-----------+---------------------+------------+------------+---------+------+---------+
    |       0 | VA   | S         | 2021-04-14 23:52:27 | 1618437148 | 1618437148 | 8320.50 | NULL |       1 |
    +---------+------+-----------+---------------------+------------+------------+---------+------+---------+
    1 row in set (2.070 sec)
    
    
    MariaDB [p4]>

    An der SSD, wie von mir vermutet kann es also nicht liegen. Bin aktuell noch unterwegs, schaue aber später in den Logs nach ob ich etwas Auffälliges sehe.

    Welche Größe hast du denn angegeben? Bei mir sieht alles gut aus, klar je mehr man platziert umso kleiner werden die Symbole. Je kleiner die Symbole sind, umso weniger kann man erkennen.


    Wie soll man das denn lösen? Ich habe, wenn ich dein Schema anschaue, ein etwas überschaulicheres Schema und kann die Symbole größer darstellen. Daher sind meine Symbole klar sichtbar. Wenn du ein anderes Symbol willst, welches z.B. nur ein großes Zahnrad darstellt dann kann ich das gerne machen.


    Die Symbole kommen dann glaube ich nach und nach, je nachdem welche erwünscht sind.

    So wäre ein weiteres Beispiel, wenn du (in meinem Fall) den Kesselzustand holst (getItem) und per "If" Abfrage darauf reagierst.



    var zust = getItem('VA:0x1C9');
    if (zust.value == 5)
    "Feuer aus"
    else
    if (zust.value == 3)
    "Heizen"
    else
    if (zust.value == 6)
    "Tür offen"
    else
    if (zust.value == 4)
    "Feuererhaltung"


    Statt den Texten "Feuer aus, Heizen, Tür offen und Feuererhaltung" kannst du dir Symbole anzeigen lassen indem du diese Zeile einfach durch ein z.B. "img/icon/pump-up-off.png" ersetzt.

    Denkt bitte bei der Idee mit den animierten GIFs daran, daß man die nicht steuern kann. Zumindest wüßte ich nicht, wie das gehen soll, da man nur eine URL eintragen kann.
    Also zum Beispiel kann man nicht hergehen und eine stehende Zirkulationspumpe anzeigen, wenn sie gerade nicht läuft und eine sich drehende, wenn sie läuft.

    ein kurzes Beispiel dazu:


    if (item.value != 0)
    "img/icon/pump-up-on.gif"
    else
    "img/icon/pump-up-off.png"


    Einfach als Funktion eingeben sollte entweder eine sich drehende Pumpe oder eben eine stehende Pumpe anzeigen.