NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
ach
sommer / winterzeit erkennen … im fhz / Homematic forum hat klassisch in seinen WEMOS - Programmen das thema gelöst ...
im groben so :
int checkSummerTime()
{
if(month>3 && month<10) return 1;
if(month==3 && day>=31-(((5*year/4)+4)%7) ) return 1;
if(month==10 && day<31-(((5*year/4)+1)%7) ) return 1;
return 0;
}
-
erstmal danke
ich hab schon so eine ähnliche formel gefunden - die sollte schon funktionieren, da sie im orginal schon vorhanden war (ist wohl auch die, die du gefunden hast)- diese kümmert sich im orginalscript aber nur um die zeit. ich habe aber tag und monat hinzugefügt und bin mir nicht sicher, ob das funktionieren wird. falls du lust hast, schau doch mal über den code. die funktionen summertime und calctime gab es schon - ich hab nur die calcdate geschrieben. ich werd mir auf jeden fall morgen deine links mal ansehen. heut abend muss ich erst mal sehen, ob det tag richtig umschaltet (um 00:00).
eigentlich nehme ich nur now() (standard linux time) und addiere je nach sommerzeit eine oder 2 stunden dazu.anschliessend wird von dieser zeit der tag und das monat bestimmt.
String calcDate(time_t t) { String datum; if (!summertime(t, 0)) { t=t+3600; } else { t=t+7200; } int tag = day(t); if (tag < 10) { datum = "0" + String(tag) +" "; } else { datum = String(tag) +" "; } // "0" addieren zwischen 0 und 9 uhr AM datum = String(monthStr(month(t))).substring(0, 3) + " " + datum ; // nur 3 buchstaben von monat datum.toUpperCase(); return datum ; } String calcTime(time_t t) { byte Stunde = hour(t) + 1; Stunde = (summertime(t, 0)) ? Stunde + 1 : Stunde; if (Stunde > 23) Stunde = Stunde - 24; return String((Stunde < 10) ? "0" : "" ) + String(Stunde) + " : " + String((minute(t) < 10) ? "0" : "" ) + String(minute(t)); // + " Uhr"; } boolean summertime(time_t t, byte tzHours) { if (month(t) < 3 || month(t) > 10) return false; // keine Sommerzeit in Jan, Feb, Nov, Dez if (month(t) > 3 && month(t) < 10) return true; // Sommerzeit in Apr, Mai, Jun, Jul, Aug, Sep if (month(t) == 3 && (hour(t) + 24 * day(t)) >= (1 + tzHours + 24 * (31 - (5 * year(t) / 4 + 4) % 7)) || month(t) == 10 && (hour(t) + 24 * day(t)) < (1 + tzHours + 24 * (31 - (5 * year(t) / 4 + 1) % 7))) return true; else return false; }
-
pfeile sind integriert - siehe ersten post !
-
pfeile sind integriert - siehe ersten post ! `
Super, lieben Dank!Bin in einer Woche wieder zu Hause und kann endlich wieder weiterbasteln wo ich vor 2 Wochen aufhören mußte
Dein Video habe ich schon vor paar Tagen studiert
@liv-in-sky:Danke für das Zurverfügung stellen deiner Erfahrungen!
LG, mxa
-
sicherlich ausbaufähig …
-
ja - das sieht nicht schlecht aus. für iobroker bräuchte man aber noch mindestens 2- 4er module mehr.
mittlerweile ist mein früher erwähnter wunsch nach doppelter höhe schon geringer geworden. ich hätte lieber mehr platz für info! das video arbeitet mit zonen - diese habe ich mir noch nicht näher angesehen. in einer woche solte ich noch weitere displays bekommen, danch könnte ich 8*4er module in zwei zeilen anzeigen - dann brauch ich wohl die zonen. außerdem muss ich mir mal die stromzufuhr ansehen, wenn viele module dranhängen. eines wäre noh zu beachten: je komplexer das ganze wird, umso schwieriger wird es, das ganze günstg und schnell aufzubauen. noch kann ich in der software einfach auf die anzahl der module reagieren. bei 6- oder 8-4er modulen gibt es soviele möglichkeiten der anzeige, welche letztlich nur mit aufwendigen iobroker -scripts zu steuern wären. wenn ich zeit und lust habe, mache ich vielleicht ein neues project daraus - die momentane programmstruktur gibt das nicht her.
zur zeit arbeite ich noch am fine-tuning - z.b. wird die zeit teilweise viel zu oft geholt (ntp sever).
die idee mit z.b 3 zonen ist echt ganz interessant. - links oben uhrzeit - rechts oben alarme und darunter eine zeile für einen standard string mit allgemeinen daten.
-
… die "arbeit" nimmt also kein ende ..
auch hier sind die displays da aber leider noch 2-3 projekte davor
-
ja - aber der lohn ! ich freu mich jedesmal wie ein kleines kind, wenn pacman über die matrix läuft! falls ich das größere project mache, bekommt pacman eine eigene zone - nur für sich
-
- daumen hoch !!!
-
Hallo,
das hat mir gleich so gut gefallen, das ich versucht habe, es nach zu bauen.
Leider tue ich mir schwer mit der Datenübertragung von IOBroker zur Anzeige :?:
Egal, was ich den den Datenpunkten eingebe, es wird nicht auf der Anzeige angezeigt.
Es läuft nur ständig die Uhrzeit durch die Anzeige.
SimpleAPI ist einrichtet und funktioniert auch.
Im Serial-Monitor wird Folgendes immer wieder holt:
Zeitholen RESET --------------------------------------
Mein Objekt-Baum in IOBroker sieht wie folgt aus:
- control-own.0 -- ESPMatrix --- Matrix --- MatrixSetting
Datenpunkte sind als Zeichenkette definiert.
Beispiel-Inhalte der Datenpunkte:
Matrix --> Hallo MatrixSetting --> 5;1;60;5;20
Bei der Serveradresse ist meine IOBroker-Adresse mit dem Port 8087 eingetragen und dann folgt wie im Beisepiel /getPlainValue, also so
http://xxx.xxx.xxx.xxx:8087/getPlainValue
Hat jemand eine Idee, was ich falsch gemacht haben könnte ?
Gruß,
Legoracer
-
schon an die MAX_DEVICES gedacht
ich denke ich habe auf github 16 eingestellt
hast du weniger wie 4 *4er module
müssen im sketch - im MatrixDisplayESP8266.ino file eingetragen werden
und noch wichtiger: hole dir die neusten github dateien - ich habe in den letzten tagen viel updates gemacht
-
Ja, die MAX_DEVICES habe ich wie folgt eingestellt:
MAX_DEVICES = 8
, da ich 2 x 4 Module habe
Der Stand von Github ist von gestern.
Laut Github sind die letzten Änderungen vor 3 Tagen gewesen.
-
also immerhin kommt schon was - 2 module 8 ist richtig !
probier mal 21;1;20;2;18
oder 2;1;20;2;18 - nur uhrzeit stehend
was kommt dann
-
die adresse stimmt nicht ganz
folgendes während config-mode eintragen:
http://xxx.xxx.xxx.xxx:8087/getPlainValue/control-own.0.ESPMatrix.Matrix
-
Ich würde behaupten, dass die Anzeige auf die Eingaben nicht reagiert.
Zur Zeit läuft die Uhrzeit von rechts bis in die Mitte. Bleibt dort kurz stehen und läuft dann links aus der Anzeige.
Egal, was ich dort eingebe.
Wenn ich im Explorer folgende Zeile eingebe:
http://xxx.xxx.xxx.xxx:8087/getPlainValue/control-own.0.ESPMatrix.MatrixSetting
erhalte ich folgendes Ergebnis:
"2;1;20;2;18"
-
du musst es während der ersten config eingeben nach dem flash - wemos an den strom hängen und gleichzeitig einen der taster auf null legen - auf github - unten erklärt . ist eh komisch, da falls er nix findet ein fehler ausgegeben werden sollte - also findet er etwas
der mode, den du angibst wäre nur uhrzeit ! stillstehend 2; …... also kann er den mode nicht lesen - ändere mal die settings im iobroker und sehe mit dem explorer nach , ob du die änderungen auch siehst.
der explorer zeigt es richtig an - der wemos findet es nicht - du kannst übrigens auch das wemos log ansehen - schalte den seriellen monitor in der arduino ide ein - dann siehst du auch mehr
-
Hallo,
Folgendes habe ich nun ausprobiert:
-
Alles zurück auf "Factory"-Einstellung
-
im Config-Mode den Pfad wie folgt angepasst:````
http://xxx.xxx.xxx.xxx:8087/getPlainValue/control-own.0.ESPMatrix.Matrix
Im Monitor weiterhin fortlaufend:
Zeitholen RESET --------------------------------------
Und leider keine Annahme der Werte aus IOBroker :( Die Zeit läuft immer noch von rechts nach links durch die Anzeige. Mit kurzem Stop in der Mitte
-
-
wenn das alles ist im log vom wemos - dann kommt danach die datumsabholung oder datenabholung.
bei mir:
16:35:07.820 -> ZeitholenStandard RESET------------------------------------------ 16:35:22.803 -> Zeit wird geholt !!! 16:35:22.803 -> ZeitholenStandard RESET------------------------------------------ 16:35:27.558 -> ------------------Fetching data from URL...------------------------------------ 16:35:27.558 -> Setting bekommen : 2;1;20;2;18 16:35:27.558 -> Modus von IOBROKER ist : 2 16:35:27.558 -> Abfrage Refresh Time : 20 16:35:27.558 -> Abfrage ScrollPause : 2 16:35:27.558 -> Abfrage scroll Speed URL : 18 16:35:27.558 -> Intensity von IOBROKER ist : 1 16:35:27.558 -> ntpSave :0 zeitHelp : 0 16:35:27.593 -> getState url: http://192.168.178.59:8087/getPlainValue/controll-own.0.MATRIX.Matrix 16:35:27.593 -> getState payload = OUTSIDE -1 °C CLOUDS;JOURNEY;WHEEL IN THE SKY;1-DAY 10:00 ERSTE RECHNUNG 16:35:27.593 -> 32368 16:35:27.593 -> Anzahl Werte : 4
hast du die richtige TimeHandling.ino ?
-
kannst du noch folgendes testen
schliesse den wemos nicht am computer an - sondern direct - der wemos kann nicht neustarten, wenn der serielle port benutzt wird (bei mir ist das so)
mich würde interessieren, ob er neustartet, weil das log nicht weitergeht ?!?
das ding muss doch zum laufen gebracht werden !
-
was ich auch noch nicht gemacht habe:
lasse bei der config die angaben der settings ( scroolspeed, sc-pause und refreshtime ) weg !!!!
nur: ssid, wlanschlüssel, datenbezug (url)
das würde erklären, warum er ein setting hat obwohl er es nicht vom iobroker holt - danach sollten wir mehr info bekommen