def display_name(self): draw = ImageDraw.Draw(self.dispimage) tstr = "" if self.headline == 0: tstr = str(Settings.Settings["Name"]) self.headline = 1 else: try: wdev = Settings.NetMan.getfirstwirelessdev() except: wdev = False if wdev: tstr = str(Network.get_ssid(wdev)) self.headline = 0 cx1 = 29 cx2 = 106 if self.width != 128: # correct x coords cx1 = int(cx1 * (self.width / 128)) cx2 = int(cx2 * (self.width / 128)) cy = 12 if self.height != 64: # correct y coords cy = int(cy * (self.height / 64)) draw.rectangle(((cx1, 0), (cx2, cy)), fill="black") tpos = int( (self.device.width - (draw.textsize(tstr, self.hfont)[0])) / 2) - 2 if tpos < 0: tpos = 0 draw.text((tpos, 0), tstr, fill="white", font=self.hfont)
def display_name(self): draw = ImageDraw.Draw(self.dispimage) tstr = "" if self.headline == 0: tstr = str(Settings.Settings["Name"]) self.headline = 1 else: try: wdev = Settings.NetMan.getfirstwirelessdev() except: wdev = False if wdev: tstr = str(Network.get_ssid(wdev)) self.headline = 0 draw.rectangle(((29, 0), (106, 12)), fill="black") tpos = int( (self.device.width - (draw.textsize(tstr, self.hfont)[0])) / 2) - 2 if tpos < 0: tpos = 0 draw.text((tpos, 0), tstr, fill="white", font=self.hfont)
def getglobalvar(varname): global SysVars svname = varname.strip().lower() res = "" if svname in SysVars: if svname == SysVars[0]: #%systime% 01:23:54 return datetime.now().strftime('%H:%M:%S') elif svname == SysVars[1]: #%systm_hm% 01:23 return datetime.now().strftime('%H:%M') elif svname == SysVars[2]: #%lcltime% 2018-03-16 01:23:54 return datetime.now().strftime('%Y-%m-%d %H:%M:%S') elif svname == SysVars[3]: #%syshour% 11 Current hour (hh) return datetime.now().strftime('%H') elif svname == SysVars[4]: #%sysmin% 22 Current minute (mm) return datetime.now().strftime('%M') elif svname == SysVars[5]: #%syssec% 33 Current second (ss) return datetime.now().strftime('%S') elif svname == SysVars[6]: #%sysday% 16 Current day of month (DD) return datetime.now().strftime('%d') elif svname == SysVars[7]: #%sysmonth% 3 Current month (MM) return datetime.now().strftime('%m') elif svname == SysVars[8]: #%sysyear% 2018 4 digits (YYYY) return datetime.now().strftime('%Y') elif svname == SysVars[9]: #%sysyears% 18 2 digits (YY) return datetime.now().strftime('%y') elif svname == SysVars[ 10]: #%sysweekday% 5 Weekday (integer) - 1, 2, 3... (1=Sunday, 2=Monday etc.) return str(int(datetime.now().strftime('%w')) + 1) elif svname == SysVars[ 11]: #%sysweekday_s% Fri Weekday (verbose) - Sun, Mon, Tue return datetime.now().strftime('%a') elif svname == SysVars[ 12]: #%unixtime% 1521731277 Unix time (seconds since epoch, 1970-01-01 00:00:00) return str(int(time.time())) elif svname == SysVars[13]: #%uptime% 3244 Uptime in minutes return str(rpieTime.getuptime(2)) elif svname == SysVars[14]: #%rssi% -45 WiFi signal strength (dBm) return str(OS.get_rssi()) elif svname == SysVars[15]: #%ip% 192.168.0.123 Current IP address return str(OS.get_ip()) elif svname == SysVars[16]: #%ip4% ipcim 4.byte res2 = str(OS.get_ip()) resarr = res2.split(".") if len(resarr) > 3: return resarr[3] elif svname == SysVars[17]: #%sysname% name return Settings.Settings["Name"] elif svname == SysVars[18]: #%unit% 32 Unit number return Settings.Settings["Unit"] elif svname == SysVars[19]: #%ssid% H4XX0R njietwork! wdev = False try: wdev = Settings.NetMan.getfirstwirelessdev() except: wdev = False if wdev: res = str(Network.get_ssid(wdev)) elif svname == SysVars[20]: #%mac% 00:14:22:01:23:45 MAC address pd = -1 try: pd = Settings.NetMan.getprimarydevice() except: pd = -1 if pd < 0 and len(Settings.NetworkDevices) > 0: pd = 0 if pd != "" and pd >= 0: return Settings.NetworkDevices[pd].mac elif svname == SysVars[ 21]: #%mac_int% 2212667 MAC address in integer to be used in rules (only the last 24 bit) pd = -1 try: pd = Settings.NetMan.getprimarydevice() except: pd = -1 if pd < 0 and len(Settings.NetworkDevices) > 0: pd = 0 if pd >= 0: try: res2 = Settings.NetworkDevices[pd].mac resarr = res2.split(":") if len(resarr) > 5: res = str( int("0x" + resarr[3] + resarr[4] + resarr[5], 16)) except: res = "" return res
def getglobalvar(varname): global SysVars, suntimesupported svname = varname.strip().lower() par = "" if ("-" in svname): resarr = svname.split("-") svname = resarr[0] par = "-" + resarr[1] if ("+" in svname): resarr = svname.split("+") svname = resarr[0] par = "+" + resarr[1] res = "" if svname in SysVars: if svname == SysVars[0]: #%systime% 01:23:54 return datetime.now().strftime('%H:%M:%S') elif svname == SysVars[1]: #%systm_hm% 01:23 return datetime.now().strftime('%H:%M') elif svname == SysVars[2]: #%lcltime% 2018-03-16 01:23:54 return datetime.now().strftime('%Y-%m-%d %H:%M:%S') elif svname == SysVars[3]: #%syshour% 11 Current hour (hh) return int(datetime.now().strftime('%H')) elif svname == SysVars[4]: #%sysmin% 22 Current minute (mm) return int(datetime.now().strftime('%M')) elif svname == SysVars[5]: #%syssec% 33 Current second (ss) return int(datetime.now().strftime('%S')) elif svname == SysVars[6]: #%sysday% 16 Current day of month (DD) return int(datetime.now().strftime('%d')) elif svname == SysVars[7]: #%sysmonth% 3 Current month (MM) return int(datetime.now().strftime('%m')) elif svname == SysVars[8]: #%sysyear% 2018 4 digits (YYYY) return datetime.now().strftime('%Y') elif svname == SysVars[9]: #%sysyears% 18 2 digits (YY) return datetime.now().strftime('%y') elif svname == SysVars[ 10]: #%sysweekday% 5 Weekday (integer) - 1, 2, 3... (1=Sunday, 2=Monday etc.) return str(int(datetime.now().strftime('%w')) + 1) elif svname == SysVars[ 11]: #%sysweekday_s% Fri Weekday (verbose) - Sun, Mon, Tue return datetime.now().strftime('%a') elif svname == SysVars[ 12]: #%unixtime% 1521731277 Unix time (seconds since epoch, 1970-01-01 00:00:00) return str(int(time.time())) elif svname == SysVars[13]: #%uptime% 3244 Uptime in minutes return str(rpieTime.getuptime(2)) elif svname == SysVars[14]: #%rssi% -45 WiFi signal strength (dBm) return str(OS.get_rssi()) elif svname == SysVars[15]: #%ip% 192.168.0.123 Current IP address return str(OS.get_ip()) elif svname == SysVars[16]: #%ip4% ipcim 4.byte res2 = str(OS.get_ip()) resarr = res2.split(".") if len(resarr) > 3: return resarr[3] elif svname == SysVars[17]: #%sysname% name return Settings.Settings["Name"] elif svname == SysVars[18]: #%unit% 32 Unit number return Settings.Settings["Unit"] elif svname == SysVars[19]: #%ssid% H4XX0R njietwork! wdev = False try: wdev = Settings.NetMan.getfirstwirelessdev() except: wdev = False if wdev: res = str(Network.get_ssid(wdev)) elif svname == SysVars[20]: #%mac% 00:14:22:01:23:45 MAC address pd = -1 try: pd = Settings.NetMan.getprimarydevice() except: pd = -1 if pd < 0 and len(Settings.NetworkDevices) > 0: pd = 0 if pd != "" and pd >= 0: return Settings.NetworkDevices[pd].mac elif svname == SysVars[ 21]: #%mac_int% 2212667 MAC address in integer to be used in rules (only the last 24 bit) pd = -1 try: pd = Settings.NetMan.getprimarydevice() except: pd = -1 if pd < 0 and len(Settings.NetworkDevices) > 0: pd = 0 if pd >= 0: try: res2 = Settings.NetworkDevices[pd].mac resarr = res2.split(":") if len(resarr) > 5: res = str( int("0x" + resarr[3] + resarr[4] + resarr[5], 16)) except: res = "" return res elif svname == SysVars[22]: #%build% bstr = str(rpieGlobals.BUILD) return bstr elif svname == SysVars[23]: #sunrise try: from suntime import Sun suntimesupported = 1 except: suntimesupported = 0 if suntimesupported == 1: try: sun = Sun(Settings.AdvSettings["Latitude"], Settings.AdvSettings["Longitude"]) abd_sr = sun.get_local_sunrise_time(datetime.now()) if par != "": abd_sr = addtoTime(abd_sr, par) res = abd_sr.strftime('%H:%M') except Exception as e: res = "00:00" return res elif svname == SysVars[24]: #sunset try: from suntime import Sun suntimesupported = 1 except: suntimesupported = 0 if suntimesupported == 1: try: sun = Sun(Settings.AdvSettings["Latitude"], Settings.AdvSettings["Longitude"]) abd_ss = sun.get_local_sunset_time(datetime.now()) if par != "": abd_ss = addtoTime(abd_ss, par) res = abd_ss.strftime('%H:%M') except Exception as e: res = "00:00" return res elif svname == SysVars[25]: #sun altitude try: from pytz import reference from pysolar.solar import get_altitude pysolarsupported = 1 except: pysolarsupported = 0 res = "0" if pysolarsupported == 1: try: localtime = reference.LocalTimezone() today = datetime.now(localtime) res = get_altitude(Settings.AdvSettings["Latitude"], Settings.AdvSettings["Longitude"], today) except Exception as e: print(e) res = "0" return res elif svname == SysVars[26]: #sun azimuth try: from pytz import reference from pysolar.solar import get_azimuth pysolarsupported = 1 except: pysolarsupported = 0 res = "0" if pysolarsupported == 1: try: localtime = reference.LocalTimezone() today = datetime.now(localtime) res = get_azimuth(Settings.AdvSettings["Latitude"], Settings.AdvSettings["Longitude"], today) except Exception as e: print(e) res = "0" return res elif svname == SysVars[27]: #sun radiation try: from pytz import reference from pysolar.solar import get_altitude from pysolar.radiation import get_radiation_direct pysolarsupported = 1 except: pysolarsupported = 0 res = "-1" if pysolarsupported == 1: try: localtime = reference.LocalTimezone() today = datetime.now(localtime) altitude_deg = get_altitude( Settings.AdvSettings["Latitude"], Settings.AdvSettings["Longitude"], today) res = get_radiation_direct(today, altitude_deg) except Exception as e: print(e) return res return res