Coole Uhr für Symcon - Ulanzi / La Metric Clone

Frage an die Besitzer, wie lange hat es gedauert, bis ihr das Teil erhalten habt? Kommt das aus China oder Italien?

Hallo, bei mir hat es 11 Tage gedauert-. Lieferung aus China.

Habe das Teil auch seit ca. einem Monat und bisher „nur“ einen AXTRIX Server laufen. Symcon Daten per MQTT wären natürlich nice. Hab die Funktion mal in AXTRIX aktiviert und konnte im LOG schon erfolgreich die connection zum Symcon Broker sehen.

14:09:42 Trying to connect to MQTT Broker at 192.168.2.2
14:09:42 Successfully connected to the MQTT Broker!

gut zwei Wochen bei mir.

Puhh MQTT ist für mich noch ein rotes Tuch ^^

MQTT Server Device Manuell angelegt

image

Fehler im Script: Variable existiert nicht. Hä ?

Im MQTT Server Configurator finde ich auch nur das topic „activeApp“
image

Jemand ein „Schubs“ für mich wie ich hier weiter komme ?

Hallo,
unter awtrix/notify sollte bei dir die Variable liegen die er sucht.

1 „Gefällt mir“

Danke :slight_smile: Cool. funktoniert

So ein Teil für außen ans Gartenhaus zu hängen für die Anzeige Temperatur Pool wäre schon Nice. Aber wohl nicht geeignet für den Außenbereich.

Das würde ich definitiv auch sein lassen.

Wenn das gut geht, dann kommt eines auf die Terrasse unter dem Balkon. Das sollte passen.

Regnen würde es bei mir auch nicht drauf, aber allein schon wegen der Feuchtigkeit.

Meines ist heute auch gekommen und wurde gleich mal geflasht. Hat alles bestens funktioniert.
Und schon mal was ausprobiert :wink:

Der Hintergrund wechselt je nach Anteil von der PV Leistung die Farbe. Grün = 100 bis runter zu Rot. Wenn Nichts produziert wird, wird die Anzeige deaktiviert.

Meine Anzeige ist gestern auch gekommen.
Mit Regen sehe ich auch eher kritisch bei dem Gerät, aber mit Feuchtigkeit denke ich, ist das wohl kein Problem, das Gerät ist innen so warm, das sich da kaum Kondensat niederschlagen wird, man wird sehen.

Habe gestern Abend auch gleich mal eine Poolanzeige damit realisiert, sieht eigentlich ganz schick aus damit und hab’s mal angehängt, falls jemand etwas zum basteln braucht …

Danke nochmal für den Hinweis auf dieses kleine Gerätchen und die veröffentlichten Codeschnipsel.

Viele Grüße,
Doc

$ID_Zaehler = 24658;
$ID_MQTT_Server_Device_Variable = 52487;                                    
$Abwesend = GetValue(45453);                                                // Status Abwesend abfragen

$AT = str_replace(",",".",strval(round(GetValue(14398),1)));                // Außentemperatur gerundet und Komma durch Punkt ersetzt
$PT = str_replace(",",".",strval(round(GetValue(19533),1)));                // Pooltemperatur gerundet und Komma durch Punkt ersetzt
$Pool_Power = GetValue(20002);                                              // aktelle Poolleistung (Pumpe & WP)

if (((IPS_GetVariable(39079)['VariableUpdated']) + 60) < time()) {return;}  // nix senden/ausführen, wenn keine Verbindung > 1 Minute (Abfrage Status Batterievariable)

// ----------------------------------------------------------------------------------------------------------------

$Zaehler = GetValue($ID_Zaehler);

if (IPS_SemaphoreEnter("AWTrixPool", 1000)) {                                // Ausführung sperren wenn noch aktiv

switch ($Zaehler) {
           
        case 0    : $Icon = "2092";                                         // aktuelle Zeit
                    $Text = date("H:i");
                    SetValue($ID_Zaehler, ($Zaehler + 1));
                    break;

        case 1    : $Icon = "43804";                                        // aktuelles Datum
                    $Text = date("d.m.");
                    SetValue($ID_Zaehler, ($Zaehler + 1));
                    break;

        case 2    : $Icon = "350";                                          // Außentemperatur
                    $Text = $AT."°C";
                    SetValue($ID_Zaehler, ($Zaehler + 1));
                    break;

        case 3    : $Icon = "46208";                                         // Pooltemperatur
                    $Text = $PT."°C";
                    SetValue($ID_Zaehler, ($Zaehler + 1));
                    break;

        case 4    : $Icon = "32930";                                         // Poolleistung
                    $Text = $Pool_Power."W";
                    SetValue($ID_Zaehler, 0);
                    break;              
}

if($Abwesend == true) {                                                     // Display aus wenn keiner da ...
    $Icon = "";
    $Text = "";
}

$MeldungAWTRIX='{"text": "'.$Text.'","rainbow": false,"duration": 20,"icon":"'.$Icon.'"}';
RequestAction($ID_MQTT_Server_Device_Variable, $MeldungAWTRIX);

IPS_SemaphoreLeave("AWTrixPool");                                            // Ausführung wieder freigeben
}

Wie sieht das aus? Zwei Fragen hätte ich. Erstens, was hat es mit der Semaphore auf sich und zweitens an welches Topic sendest du es?

Edit: Habs gesehen, auf das Notify Topic.

Das Semaphore habe ich, wenn der Thread aus irgend welchen Gründen mal klemmt, das er nicht weiter zyklisch aufgerufen wird. Hatte ich mir bei solchen Scripten mal angewöhnt.

Ja genau, an das Notify Topic.

Kannst du auch mal deine Ideen veröffentlichen, gerade mit farben und Background usw. …?

Alles klar, danke.
Natürlich, wollt ich eben machen.
Ich verwende das Skript aus diesem Beitrag

<?php
include(IPS_GetScriptFile(56774)); //MQTT Skript

$leistungpvID=30807; //Watt von PV
$leistungsmID=30776; //Watt vom Smartmeter
function rgb2hex($r, $g=-1, $b=-1) 
{
	if (is_array($r) && sizeof($r) == 3) list($r, $g, $b) = $r;
 	$r = intval($r);
 	$g = intval($g);
 	$b = intval($b);
 	$r = dechex($r<0?0:($r>255?255:$r));
 	$g = dechex($g<0?0:($g>255?255:$g));
 	$b = dechex($b<0?0:($b>255?255:$b));
 	$color = (strlen($r) < 2?'0':'').$r;
 	$color .= (strlen($g) < 2?'0':'').$g;
 	$color .= (strlen($b) < 2?'0':'').$b;
 	return $color;
}

$gesamt=getvalue($leistungpvID)+getvalue($leistungsmID);
$prozent=round(getvalue($leistungpvID)/$gesamt*100,0);
$rot=255*(1-$prozent/100);
$gruen=255*$prozent/100;
$blau=0;
$hex=rgb2hex($rot,$gruen,$blau);
if ($prozent>0) $power="true"; else $power="false";
MQTT_Publish(39818,"pixel_wz/power",'{"power":'.$power.'}');
MQTT_Publish(39818,"pixel_wz/notify",'{
  "text": "'.getvalue(20790).'%",
  "hold": true,
  "background": "#'.$hex.'",
  "color": "#000000",
  "icon": "15124"
}');
ips_sleep(5000);
MQTT_Publish(39818,"pixel_wz/notify",'{
  "text": "'.getvalue(19434).'W",
  "hold": true,
  "background": "#'.$hex.'",
  "color": "#000000",
  "icon": "1338"
}');
ips_sleep(5000);
MQTT_Publish(39818,"pixel_wz/notify",'{
  "text": "'.getvalue(30776).'W",
  "hold": true,
  "background": "#'.$hex.'",
  "color": "#000000",
  "icon": "47154"
}');

Die Funktion für die Hex-Berechnung der Farbe hab ich auch aus dem Forum und verwende ich für eine andere Anzeige auch noch.
Die Icons hab ich mir hier geholt: LaMetric: Web
Die können ganz einfach über die Weboberfläche der Anzeige hochgeladen werden. Dann im Json-String einfach die Nummer eintragen.
Ich verwende noch „hold:true“ weil ich den automatischen Wechsel nicht mag. Das Skript selbst wird alle 15 Sekunden aufgerufen. Somit schaut der Wechsel ganz gut aus.

Die Funktion hatte ich schon gesehen, wollte aber noch abwarten, ob von seitens IPS-Team da noch etwas brauchbares kommt.
Die Icons habe ich ja schon drin, teilweise von AWTrix und LaMetric.
Einen automatischen Wechsel im Gerät habe ich eh nicht drin, habe einfach alle vorinstallaierten Apps auf off gestellt.

Das geht? Wie? Hab ich wohl übersehen.

Ja, werde es wohl demnächst auch mal testen, kannst ja mal berichten wie das klappt mit der Feuchtigkeit nach einer gewissen Zeit. Kannst mal noch Bitte ein Foto einstellen wie das aussieht bei dir mit der Poolanzeige?

LG
Stefan

Ja lange auf den mittleren Button fürs Menu und dann unter Apps einfach alles ausschalten.
Habe aber die Uhrzeit noch drin gelassen, wenn IPS mal nicht sendet, wird noch die aktuelle Uhrzeit aus dem Netz angezeigt.

Das sind aber viele Bilder, das läuft bei mir immer alles durch.
Schau mal ins Script, da siehst du die angezeigten Werte und Icons.