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

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.

Ah Ok, kein Problem.

Meine Interpretation für eine Anzeige Außen

Hi,
schön aber das eine Symbol könnte man als Stinkefinger ansehen :joy:

Ralf

Hehe. Das soll ein Temperatursymbol sein. Sind halt nur 8x8 Pixel. Ich find das Teil süss. Und es wurde auch schon von meiner Mitbewohnerin akzeptiert. Ich durfte es schon im Wohnzimmer aufstellen. Was will man mehr.
Ich denke ich bestell mir da noch zwei, dann fallen die Versandkosten weg. ich bin mir sicher, mir fällt noch was ein.

Welches Symbol ist das mit dem Pool und Thermometer?
Hast du da mal die Nummer für mich?

VG,
Doc

Pooltemperatur: 7097 (Temperatur und Badewanne)
PH und Redox: 28103 (soll Wasser darstellen)
Außentemperatur: 2056 (Temperatur)
Windgeschwindigkeit: 3363 (Windsack)
alle von Lametric

Achso, das war eine Badewanne, hatte ich übersehen … :wink:

Hab keinen Pool gefunden und ob Badewanne oder Pool… egal :smiley: Passt gut finde ich.

Gibt es eigentlich keine Effekte, wie man den Text einblenden lassen kann?
Von oben nach unten reingescrollt fände ich toll …

Hab hier AWTRIX LIGHT diesbezüglich nichts gefunden. Man kann lediglich Textteile oder auch Buchstaben unterschiedlich einfärben.