fhempy is a FHEM binding to write modules in Python language

Overview

Download python Version LastCommit BuyCoffee

fhempy (BETA)

fhempy allows the usage of Python 3 (NOT 2!) language to write FHEM modules. Python 3.7 or higher is required, therefore I recommend using buster.

This repository includes following working modules:

Module Description
ble_presence Presence detection incl. RSSI for Bluetooth Low Energy
ble_reset Resets all Bluetooth interfaces every X hours
bt_presence Presence detection incl. RSSI for Bluetooth
discover_mdns Discover mDNS (e.g. googlecast) devices
discover_ble Discover Bluetooth LE devices
discover_upnp Discover UPnP devices
dlna_dmr Control DLNA MediaRenderer devices
eq3bt Control EQ3 Bluetooth thermostat
erelax_vaillant Control eRelax Vaillant
esphome Installs and starts the ESP Home dashboard for easy ESP Home device management
gfprobt Control GF Pro Bluetooth irrigation control
googlecast Control Cast devices and stream Spotify
helloworld Hello World example for developers to start writing their own module
meross Control Meross devices
miflora Xiaomi BLE Plant Sensor
miio Control Xiaomi WiFi devices
mitemp Xiaomi BLE Temperature/Humidity Sensor
nespresso_ble Nespresso Bluetooth coffee machine
object_detection TensorFlow Lite object detection
ring Ring doorbell/chime/cam
seatconnect Control your Seat/Cupra car
spotify Control Spotify Connect and use FHEM as Spotify Connect player
skodaconnect Control your skoda car
tuya Not recommended: Control tuya devices via local key
tuya_cloud Recommended: Control all tuya devices via cloud incl. real-time updates
warema Control Warema devices
wienerlinien Wiener Linien departure times
xiaomi_gateway3 Xiaomi Gateway V3 (only V3!)
xiaomi_tokens Retrieve all Xiaomi Tokens from Cloud

Installation

Python >=3.7 is required, Python 2 won't work!

Console

Debian 11 (Bullseye)

Copy & paste this command if you are running Debian Bullseye.

sudo apt install python3 python3-pip python3-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev git libprotocol-websocket-perl

Others

Use the following 2 commands if you run Debian 10 (Buster) or older (e.g. stretch, jessie, ...).

sudo apt install python3 python3-pip python3-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev git
sudo cpan Protocol::WebSocket

FHEM

update add https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
update
define local_pybinding BindingsIo fhempy

All further requirements are installed automatically via pip as soon as the specific module is used the first time.

Usage in FHEM (examples)

This are just a few examples for some modules, please see the modules readme linked in the table above for more details

  • define castdevice fhempy googlecast "Living Room"
  • define eq3bt fhempy eq3bt 00:11:22:33:44:66:77
  • define upnp fhempy discover_upnp

fhempy peers (e.g. extend Bluetooth range)

fhempy allows to run modules locally (same device as FHEM runs on) or on remote peers. Those remote peers only make sense if you want to extend the range of bluetooth or want to distribute the load of some modules to other more powerfull devices (e.g. video object detection).

Peer setup (short)

Only on remote peers, do not run this commands on the FHEM instance.

### WARNING: DO THIS COMMAND ONLY ON REMOTE PEER, NOT ON YOUR FHEM INSTANCE ###
pip3 install --upgrade fhempy
# systemd service installation
curl -sL https://raw.githubusercontent.com/dominikkarall/fhempy/master/install_systemd_fhempy.sh | sudo -E bash -

Peer setup (long)

The following steps are only needed if you want to install fhempy on a remote peer, you should not run them on your FHEM installation.

  • Install fhempy with user pi: pip3 install --upgrade fhempy
  • Make sure your main fhempy instance (within FHEM) is running
  • Test fhempy by just running it with user pi, type fhempy and enter. Wait a few seconds until it gets discovered and you see the incoming FHEM connection.
  • Systemd configuration for autostart
    • curl -sL https://raw.githubusercontent.com/dominikkarall/fhempy/master/install_systemd_fhempy.sh | sudo -E bash -
    • fhempy is run with user pi, you can change that in the fhempy.service file in /etc/systemd/system/
  • FHEM configuration
    • The remote peer is autodiscovered and will show up in FHEM as device e.g. fhempy_remote_192_168_1_50
    • You can move any device to the remote peer by changing the IODev of the device.
    • If autodiscovery doesn't work (it's based on zeroconf), you can define it with define fhempy_remote_IP BindingsIo IP:15733 fhempy

Log file

journalctl -u fhempy.service -f

Update

Just do set remote_pybinding update and the remote peer will install the new package via pip and restart afterwads.

Functionality

10_BindingsIo

This module is a DevIo device which builds a language neutral communicaton bridge in JSON via websockets.

10_fhempyServer

This module just starts the fhempy server instance

10_fhempy

This module is used as the bridge to BindingsIo. It calls BindingsIo with IOWrite.

fhempy

This is the Python server instance which handles JSON websocket messages from BindingsIo. Based on the message it executes the proper function and replies to BindingsIo via websocket.

Call flow

This example shows how Define function is called from the Python module.

  1. define castdevice fhempy googlecast "Living Room"
  2. fhempy sends IOWrite to BindingsIo
  3. BindingsIo sends a JSON websocket message to fhempy
  4. fhempy loads the corresponding module (e.g. googlecast), creates an instance of the object (e.g. googlecast) and calls the Define function on that instance
  5. Define function is executed within the Python context, as long as the function is executed, FHEM waits for the answer the same way as it does for Perl modules
  6. Python Define returns the result via JSON via websocket to BindingsIo

At any time within the functions FHEM functons like readingsSingleUpdate(...) can be called by using the fhem.py module (fhem.readingsSingleUpdate(...)). There are just a few functions supported at the moment.

Flow Chart

Write your own module

Check helloworld example for writing an own module. Be aware that no function which is called from FHEM is allowed to run longer than 1s. In general no blocking code should be used with asyncio. If you want to call blocking code, use run_in_executor (see googlecast code).

Comments
  • tuya local does not map readings anymore

    tuya local does not map readings anymore

    My tuya local devices defined with product id (registered in mappings.py) do not update the readings anymore. the readings stay as dp_xx and do not show the right name and is not commandable anymore (happy heating season began, so i realized now with my heating devices...)

    list of one of my devices:

    Internals: DEF tuya QgDtdkPRBJ9g360K 002009445cxxxxxxxxxx 192.168.0.66 a5bxxxxxxxxx DEVICEID 002009445xxxxxxxxx FHEMPYTYPE tuya FUUID 632b1976-f33f-8cc0-c94d-8e6eada133216fe4 FVERSION 10_fhempy.pm:0.182830/2019-01-16 IODev [fhempy_local] NAME [flKonvektor] NR 1102 PYTHONTYPE tuya STATE Istwert: 23°C Sollwert: 22°C Schalter: 0 Stufe: off Lamellen: 0 TYPE fhempy eventCount 16 READINGS: 2022-09-21 16:27:09 dp_01 0 2022-09-21 16:27:09 dp_02 22 2022-09-21 16:27:02 dp_03 23 2022-09-21 16:24:58 dp_04 off 2022-09-21 16:25:00 dp_07 0 2022-09-21 16:20:30 state online args: [flKonvektor] fhempy tuya QgDtdkPRBJ9g360K 002009445xxxxxxx 192.168.0.66 a5b48a00xxxxxxxx argsh: Attributes: DbLogExclude .* IODev [fhempy_local] alias Konvektor Flur devStateIcon on:[email protected] off:[email protected] gassistantName Konvektor genericDeviceType aircondition group Konvektor homebridgeMapping { "On": { "reading": "Power", "valueOff": "off", "cmdOn": "Power on", "cmdOff": "Power off" }, "TemperatureControlSetCelsius": { "reading": "TempSet", "cmd": "TempSet", "minCelsius": 0, "maxCelsius": 300, "stepCelsius": 10, "formatUx": "C" }, "TemperatureControlAmbientCelsius": { "reading": "TempCurrent" } } icon vent_used_air realRoom Flur Erdgeschoss room 00_Haus,20_Flur,43_FhemPy,61_Heizung,62_Lueftung,73_GoogleHome userattr PythonModuleStatus PythonModuleStatus_map structexclude webCmd Power:TempSet:Mode:Shake webCmdLabel Schalter :Sollwert :Stufe :Lamellen

    opened by jfmennedy 60
  • cryptography installation fails

    cryptography installation fails

    hey ich bins mal wieder gg nachdem das alte problem für mich gelöst war lief eigentlich alles pefekt mit FHEMPY. Allerdings hab ich seit ein paar Tagen ständig "timeout" Meldungen im log und es geht garnix mehr...... weder lassen sich meine Steckdosen schalten noch kann ich Daten auslesen. Ich hänge eine FHEM.log und eine FHEMPY.log mit frisch aufgesetztem Lokalem Device an ;-)

    Schalten per APP funktioniert allerdings fehlerfrei

    In der Fhem.txt steht nur der relevante teil drinn, sollte die vollständige datei gebraucht werden einfach melden. Die FhemPY.txt ist gekürzt, der Fehler wiederholt sich ständig und die Datei erreicht in 5 min 10MB

    fhem-2022-08.log fhempy-2022-08-18.log

    opened by kleinerDrache 57
  • miflora -

    miflora - "set (...) update" does not update

    Howdey...

    Unfortunately it looks like, that a new miflora device does just not poll any readings.

    attr miAloe poll_type interval
    

    will just not react on the interval at all (there is no difference to the "manual" setting).

    set miAloe update
    

    will just not do anything.

    Speaking of that, new devices remain in a timeout or offline state:

    Internals:
       CFGFN      
       DEF        miflora C4:7C:8D:66:AF:99
       FUUID      5fad833e-f33f-e5c5-631e-c1f4b4f280e67e95
       IODev      bndAPi
       MAC        C4:7C:8D:66:AF:99
       NAME       miPineapple
       NR         544
       PYTHONTYPE miflora
       STATE      PythonBinding offline
       TYPE       PythonModule
       READINGS:
         2020-11-12 19:47:48   state           PythonBinding offline
       args:
         miPineapple
         PythonModule
         miflora
         C4:7C:8D:66:AF:99
       argsh:
    Attributes:
       IODev      bndAPi
       poll_type  manual
       update_interval 14400
       userattr   hci_device poll_type:interval,manual update_interval
    
    Internals:
       CFGFN      
       DEF        miflora C4:7C:8D:66:B0:33
       FUUID      5fad84b4-f33f-e5c5-57e4-288f08abaceb999a
       IODev      bndAPi
       MAC        C4:7C:8D:66:B0:33
       NAME       miVenus
       NR         829
       PYTHONTYPE miflora
       STATE      PythonBinding timeout
       TYPE       PythonModule
       READINGS:
         2020-11-12 19:53:54   state           PythonBinding timeout
       args:
         miVenus
         PythonModule
         miflora
         C4:7C:8D:66:B0:33
       argsh:
    Attributes:
       IODev      bndAPi
       poll_type  manual
       update_interval 14400
       userattr   hci_device poll_type:interval,manual update_interval
    

    It looks like the first test device came only online as I (acciendently of sorts) updated the oldfashioned module "XiaomiBTLESens" and readings are frozen up, not matter if "set miAloe update" or "poll_type" is set to interval:

    Internals:
       DEF        miflora C4:7C:8D:66:B0:EF
       FUUID      5fa82801-f33f-e5c5-29e0-79a1cf54407afcba
       FVERSION   10_PythonModule.pm:0.182830/2019-01-16
       IODev      bndAPi
       MAC        C4:7C:8D:66:B0:EF
       NAME       miAloe
       NR         407
       PYTHONTYPE miflora
       STATE      online
       TYPE       PythonModule
       READINGS:
         2020-11-09 23:19:14   battery         99
         2020-11-11 03:26:55   conductivity    16
         2020-11-08 18:19:25   firmware        3.2.1
         2020-11-11 03:26:55   light           53
         2020-11-10 23:22:09   moisture        6
         2020-11-08 18:19:25   name            Flower care
         2020-11-09 23:19:14   presence        online
         2020-11-10 23:22:09   state           online
         2020-11-11 03:26:55   temperature     19.2
         2020-11-09 23:21:48   update_interval 14400
       args:
         miAloe
         PythonModule
         miflora
         C4:7C:8D:66:B0:EF
       argsh:
    Attributes:
       IODev      bndAPi
       poll_type  manual
       update_interval 14400
       userattr   hci_device poll_type:interval,manual update_interval
    

    It will merely update when I update the old module "XiaomiBTLESens".

    Connection to the peer is ok, as the other module "eq3bt" works just fine.

    no-issue-activity 
    opened by VinceMasuka 50
  • Fhempy server offline

    Fhempy server offline

    Hello,

    I have a problem with the fhempy server staying offline.

    Yesterday I updated my raspbian jessie (8) tot 9, then from 9 to 10, and finally from 10 to 11. I did this because I wanted to install Python 3 and that didn't work anymore on version 8 (this version is obsolete). So currently I'm running Rasbian 11. My FHEM is still running okay. So far so good.

    So I installed Python version 3.7 like the instruction: https://github.com/dominikkarall/fhempy/blob/master/README.md

    Then I entered the instructions in FHEM:

    1. update add https://raw.githubusercontent.com/dominikkarall/fhempy/master/controls_pythonbinding.txt
    2. update
    3. define fhempy_local BindingsIo fhempy

    So now the fhempyserver won't go online (stays red). Fhempylocal is green. See the picture: image

    This is what the fhempy log file shows: image

    What can I do to solve the problem?

    opened by maartenvullings 36
  • 'utf-8' codec can't decode byte

    'utf-8' codec can't decode byte

    Da mein Englisch praktisch NICHT existent ist schreibe ich einfach in Deutsch.

    Ich kann ein Tuya Device nicht nutzen da es nicht sauber erkannt wird.

    Log sagt: 2022-06-12 16:04:34,258 - ERROR - Spuelmaschiene_2130760170039f609c1b: Failed create_device Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.10/site-packages/fhempy/lib/tuya/tuya.py", line 403, in create_device await self._create_cloudmapping_dev() File "/opt/fhem/.local/lib/python3.10/site-packages/fhempy/lib/tuya/tuya.py", line 333, in _create_cloudmapping_dev status = await self._connected_device.status() File "/opt/fhem/.local/lib/python3.10/site-packages/fhempy/lib/tuya/pytuya/init.py", line 481, in status status = await self.exchange(STATUS) File "/opt/fhem/.local/lib/python3.10/site-packages/fhempy/lib/tuya/pytuya/init.py", line 466, in exchange payload = self._decode_payload(msg.payload) File "/opt/fhem/.local/lib/python3.10/site-packages/fhempy/lib/tuya/pytuya/init.py", line 586, in _decode_payload payload = payload.decode() UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 1: invalid continuation byte

    Genutztes Device: Gosund EP2-AR

    Per Tuya-Cloud einwandfreie Funktion mit fhempy, locale Variante bringt Fehler von oben, andere EP2-AR laufen einwandfrei.

    opened by kleinerDrache 32
  • can not connect to Device

    can not connect to Device

    Hi, I have some trouble with Tuya as well as with Tuya Cloud. Likly due to all this ID I strugle to use the right one.

    in Tuya IOT Platform I am able to link to my Tuya App, which is afterwards visible from both ends ( IOT Platform as well as inside the App) as a result I can see a UID inside IOT Platform

    However I am not able to see the Device which is visible and function with no problem inside Tuya App. I guess here is already the Error. Inside the Tuya App there is a Virtuell-ID, and IP, a MAC and the TimeZone Europe/Berlin. Inside IOT Patform the Device Management is on Western Europe ( after adding Central Europe the Device is visible inside IOT Platform)

    in fhem tuya_system shows "ready" but no device is found likly the DeviceID used is wrong, it is neither the Virtual ID inside the Tuya App, nor the UID of the linked Tuya App.

    In the individual Device setup I struggle to identify the Product-ID and I do not get the difference of DEVICE_ID and LOCAL_KEY

    Now i struggle to see what to do next.

    I hope you have a hint for me. Many Thanks.

    opened by Heiner1967 32
  • Error after first Install

    Error after first Install

    I have setup the environment in fhem and get in the logfile the follow log entry's:

    021-09-14 13:18:31,927 - ERROR - asyncio: Task exception was never retrieved future: exception=BadTypeInNameException() created at /usr/lib/python3.7/asyncio/tasks.py:325> source_traceback: Object created at (most recent call last): File "FHEM/bindings/python/bin/fhempy", line 113, in fpb.run() File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 470, in run asyncio.get_event_loop().run_forever() File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever self._run_once() File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once handle._run() File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/usr/lib/python3.7/asyncio/selector_events.py", line 962, in _read_ready self._protocol.datagram_received(data, addr) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_core.py", line 295, in datagram_received self.zc.handle_response(msg) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_core.py", line 735, in handle_response self.record_manager.async_updates_from_response(msg) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_handlers.py", line 436, in async_updates_from_response self.async_updates_complete() File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_handlers.py", line 369, in async_updates_complete listener.async_update_records_complete() File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_services/browser.py", line 412, in async_update_records_complete self._fire_service_state_changed_event(event) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_services/browser.py", line 427, in _fire_service_state_changed_event state_change=state_change, File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_services/init.py", line 55, in fire h(**kwargs) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_services/browser.py", line 178, in on_change getattr(listener, ON_CHANGE_DISPATCH[state_change])(zeroconf, service_type, name) File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/core/discover_fhempy/discover_fhempy.py", line 20, in update_service asyncio.create_task(self.foundDevice(zc, type, name)) File "/usr/lib/python3.7/asyncio/tasks.py", line 325, in create_task return loop.create_task(coro) Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/core/discover_fhempy/discover_fhempy.py", line 31, in foundDevice info = await self.zeroconf.async_get_service_info(type, name) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/asyncio.py", line 233, in async_get_service_info info = AsyncServiceInfo(type, name) File "/opt/fhem/.local/lib/python3.7/site-packages/zeroconf/_services/info.py", line 124, in init raise BadTypeInNameException zeroconf._exceptions.BadTypeInNameException

    opened by xerion3800 31
  • Event Listener Errors

    Event Listener Errors

    Hi Dominik,

    the Event Listener creates these errors without stop, which leads in shutdown of fhempy server after a certain time

    Mai 16 12:05:58 pi fhempy[2444]: 2022-05-16 12:05:58,012 - ERROR - fhempy.lib.fhem_pythonbinding: fhempy failed to handle message(id: 44592980) Mai 16 12:05:58 pi fhempy[2444]: 2022-05-16 12:05:58,013 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to handle message: {"args":[24321.9],"defargsh":null,"msgtype":"event","function":"event","FHEMPYTYPE"> Mai 16 12:05:58 pi fhempy[2444]: Traceback (most recent call last): Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 164, in _onMessage Mai 16 12:05:58 pi fhempy[2444]: await self.handle_message(msg, hash) Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 186, in handle_message Mai 16 12:05:58 pi fhempy[2444]: await self.handle_event(hash, msg) Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 209, in handle_event Mai 16 12:05:58 pi fhempy[2444]: event_arr = event.split(": ") Mai 16 12:05:58 pi fhempy[2444]: AttributeError: 'float' object has no attribute 'split' Mai 16 12:05:58 pi fhempy[2444]: During handling of the above exception, another exception occurred: Mai 16 12:05:58 pi fhempy[2444]: Traceback (most recent call last): Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 142, in onMessage Mai 16 12:05:58 pi fhempy[2444]: await self._onMessage(payload) Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 167, in _onMessage Mai 16 12:05:58 pi fhempy[2444]: await self.sendBackError(hash, "fhempy failed to handle message") Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 120, in sendBackError Mai 16 12:05:58 pi fhempy[2444]: fhem.setFunctionInactive(hash) Mai 16 12:05:58 pi fhempy[2444]: File "/home/pi/.local/lib/python3.9/site-packages/fhempy/lib/fhem.py", line 37, in setFunctionInactive Mai 16 12:05:58 pi fhempy[2444]: element = function_active.pop() Mai 16 12:05:58 pi fhempy[2444]: IndexError: pop from empty list

    opened by jfmennedy 28
  • fhempy docker container

    fhempy docker container

    Kann es sein, dass tinytuya in den Requirements fehlt?

    Hier wird es importiert: https://github.com/fhempy/fhempy/blob/6b3639e76a0eb1c99f93cc73e746acaa3730cf3a/FHEM/bindings/python/fhempy/lib/tuya/tuya.py#L7

    Hier wird von einem Problem im Container berichtet und da fehlt tinytuya: https://github.com/fhem/fhempy-docker/issues/33

    opened by sidey79 24
  • failed to install fhempy - has no attribute 'MutableMapping'

    failed to install fhempy - has no attribute 'MutableMapping'

    Hi,

    ich habe Probleme fhempy zu installieren. Im fhempy Log steht jede Minute

    2021-12-27 02:45:29,557 - ERROR    - __main__: Failed to install fhempy, exit now...
    AttributeError: module 'collections' has no attribute 'MutableMapping'
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py", line 943, in <module>
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/extern/__init__.py", line 43, in load_module
      File "<frozen importlib._bootstrap>", line 632, in _load_backward_compatible
      File "<frozen importlib._bootstrap>", line 672, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/packaging/requirements.py", line 9, in <module>
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 77, in <module>
        __import__(modulename, globals(), locals(), level=0)
      File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
        vendored("pkg_resources")
      File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 73, in <module>
        from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
      File "/usr/lib/python3/dist-packages/pip/__init__.py", line 22, in <module>
        __import__(pkg_name)
      File "/usr/lib/python3.10/runpy.py", line 110, in _get_module_details
        return _get_module_details(pkg_main_name, error)
      File "/usr/lib/python3.10/runpy.py", line 146, in _get_module_details
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "/usr/lib/python3.10/runpy.py", line 187, in _run_module_as_main
    2021-12-27 02:45:29,556 - ERROR    - __main__: Unable to install package fhempy>=0.1.12: Traceback (most recent call last):
    2021-12-27 02:45:28,062 - INFO     - __main__: Attempting install of fhempy>=0.1.12
    2021-12-27 02:45:28,062 - WARNING  - __main__: Failed to load fhempy: No module named 'fhempy'
    

    Python 3.10 habe ich installiert.

     python --version
    Python 2.7.17
    
     python3 --version
    Python 3.10.1
    

    Mit pip3 install fhempy bekomme ich das:

    Traceback (most recent call last):
      File "/usr/bin/pip3", line 9, in <module>
        from pip import main
      File "/usr/lib/python3/dist-packages/pip/__init__.py", line 22, in <module>
        from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
      File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 73, in <module>
        vendored("pkg_resources")
      File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
        __import__(modulename, globals(), locals(), level=0)
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 77, in <module>
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/packaging/requirements.py", line 9, in <module>
      File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
      File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 672, in _load_unlocked
      File "<frozen importlib._bootstrap>", line 632, in _load_backward_compatible
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/extern/__init__.py", line 43, in load_module
      File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py", line 943, in <module>
    AttributeError: module 'collections' has no attribute 'MutableMapping'
    
    opened by TWART016 20
  • python setup.py egg_info

    python setup.py egg_info" failed with error code 1

    I try to install fhempy but fail

    first i install on my Pi Python 3.7 by executing Code: [Auswählen] sudo apt install python3 python3-pip python3-dev libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libglib2.0-dev libdbus-1-dev bluez libbluetooth-dev and Code: [Auswählen] sudo cpan Protocol::WebSocket

    then i extended the updateosurces in fhem by Code: [Auswählen] update add https://raw.githubusercontent.com/dom... and executed update then i create in fhem Code: [Auswählen] define local_pybinding BindingsIo Python

    it generate as well the Pytonbinding_15733 which get to active, but my local-pybinding is only "opened"

    fhempy_log says: Unable to install package fhempy>=0.1.12: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-9ja41_su/websockets/

    What can i do to get this fixed?

    opened by Heiner1967 19
  • ERROR: empty name in readingsBeginUpdate

    ERROR: empty name in readingsBeginUpdate

    Hallo und gutes neues Jahr!

    Gestern ist mein FHEM-Log mit folgender Fehlermeldung vollgelaufen: 2023.01.04 11:10:34 1: ERROR: empty name in readingsBeginUpdate 2023.01.04 11:10:34 1: stacktrace: 2023.01.04 11:10:34 1: main::readingsBeginUpdate called by (eval 268166) (1) 2023.01.04 11:10:34 1: (eval) called by ./FHEM/10_BindingsIo.pm (561) 2023.01.04 11:10:34 1: main::BindingsIo_processMessage called by ./FHEM/10_BindingsIo.pm (676) 2023.01.04 11:10:34 1: main::BindingsIo_readWebsocketMessage called by ./FHEM/10_BindingsIo.pm (296) 2023.01.04 11:10:34 1: main::BindingsIo_Read called by fhem.pl (3976) 2023.01.04 11:10:34 1: main::CallFn called by fhem.pl (784) Use of uninitialized value $d in hash element at fhem.pl line 4691. Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 5030. 2023.01.04 11:10:34 1: readingsUpdate(,state,offline) missed to call readingsBeginUpdate first. 2023.01.04 11:10:34 1: stacktrace: 2023.01.04 11:10:34 1: main::readingsBulkUpdate called by fhem.pl (5012) 2023.01.04 11:10:34 1: main::readingsBulkUpdateIfChanged called by (eval 268166) (1) 2023.01.04 11:10:34 1: (eval) called by ./FHEM/10_BindingsIo.pm (561) 2023.01.04 11:10:34 1: main::BindingsIo_processMessage called by ./FHEM/10_BindingsIo.pm (676) 2023.01.04 11:10:34 1: main::BindingsIo_readWebsocketMessage called by ./FHEM/10_BindingsIo.pm (296) 2023.01.04 11:10:34 1: main::BindingsIo_Read called by fhem.pl (3976) 2023.01.04 11:10:34 1: main::CallFn called by fhem.pl (784) Use of uninitialized value $d in hash element at fhem.pl line 4766. Use of uninitialized value $dev in hash element at fhem.pl line 3839.

    Der Block wiederholt sich innerhalb von ein paar Sekunden 3-mal.

    Leider finde ich keinen direkten Auslöser. Gestern kam es durchgehend, wodurch das Log mal eben auf 250MB angewachsen ist, bis ich den fhempy-Server gestoppt habe.

    Ich habe dann FHEM und auch fhempy auf die aktuelle Version aktualisiert. Heute kommt der dreifach wiederholende Gesamtfehlerblock alle 5 Minuten.

    Ich habe mal alle noch vorhandenen Logs durchforstet und festgestellt, dass es immer wieder einmal Tage mit diesen Einträgen gibt. Dann liegen wieder viele Monate bis zum nächsten Vorkommen dazwischen. Solange es nur ein paar Einträge sind sehe ich kein Problem. Wenn es allerdings, so wie gestern, den Speicher komplett voll schreibt, schon.

    Irgend eine Idee?

    Viele Grüße Dieter

    opened by RockFan89 2
  • tuya_cloud_connector login fehler: request time is invalid

    tuya_cloud_connector login fehler: request time is invalid

    Erst mal noch nen gesundes Neues!

    parallel habe ich zum testen auch tuya_cloud im Einsatz. Die hatte in der Version 0.1.526 gut funktioniert. Jetzt nach dem update aud 0.1.538 bleibt der connector offline und ich bekomme folgenden fehler:

    2023-01-03 12:14:41,656 - ERROR - tuya_cloud_connector: Tuya login error response: {'code': 1013, 'msg': 'request time is invalid', 'success': False, 't': 1672746629471, 'tid': 'd1fcff608b5c11ed9155f6a8c25a9394'}

    opened by klauswitt 1
  • RGB control on RGB+CCT bulb is not working.

    RGB control on RGB+CCT bulb is not working.

    Hi,

    since version 528 local access to my RGB+CCT bulb is working now particially. Colour changing with colour_data_v2 command is not working. Set command is existing but doesnt lead to an colour change. State is still on "Initializing..." but the bulb can be switched by the "switch_led" command.

    On tuya_cloud pendant of the bulb set name on/off can be used for switching and colour_data_v2 is also working.

    Device listing (ids changed):

    Internals: CFGFN
    DEF tuya 4r27hrbrtno6k7q5 2sagtyg4ns8xxozdcukxhn 192.168.123.67 kbuxy3tw7874ya22 3.4 key secret DEVICEID 2sagtyg4ns8xxozdcukxhn FHEMPYTYPE tuya FUUID 639e4b34-f33f-d13c-162d-9d4d95c2509f7dc8 IODev fhempy_local NAME tuya_local_2sagtyg4ns8xxozdcukxhn NR 570 PYTHONTYPE tuya STATE Initializing... TYPE fhempy eventCount 39 READINGS: 2022-12-18 00:05:26 active_time 1670189824 2022-12-18 00:05:26 biz_type 18 2022-12-18 23:07:31 bright_value_v2 10.0 2022-12-18 00:05:26 category dj 2022-12-18 00:05:26 countdown_1 0.0 2022-12-18 00:05:26 create_time 1670189824 2022-12-18 00:05:32 cycle_timing AAAA 2022-12-18 00:05:26 do_not_disturb off 2022-12-18 00:05:26 icon smart/icon/ay1525830333575gYi61/d9a5f9bcc5fa2d6c047b8a56b2e691b0.png 2022-12-18 00:05:26 id 2sagtyg4ns8xxozdcukxhn 2022-12-18 00:05:26 ip 65.131.124.168 2022-12-18 00:05:26 lat 50.1365 2022-12-18 00:05:26 local_key kbuxy3tw7874ya22 2022-12-18 00:05:26 lon 8.6244 2022-12-18 00:05:26 name M-TCV1 2022-12-18 23:06:08 online 1 2022-12-18 00:05:26 owner_id 72805765 2022-12-18 00:05:32 power_memory AAEAAAAAAAABHgAA 2022-12-18 00:05:26 product_id 4r27hrbrtno6k7q5 2022-12-18 00:05:26 product_name M-TCV1 2022-12-18 00:05:32 random_timing AAAA 2022-12-18 00:05:31 rhythm_mode AAAAAAA= 2022-12-18 00:05:31 sleep_mode AAA= 2022-12-18 23:06:03 state Initializing... 2022-12-18 00:05:26 sub 0 2022-12-18 23:07:39 switch_led off 2022-12-18 00:05:26 temp_value_v2 56.0 2022-12-18 00:05:26 time_zone +01:00 2022-12-18 00:05:26 uid eu1669756723579ISkWj 2022-12-18 00:05:26 update_time 1671138004 2022-12-18 00:05:26 uuid 8243228dfa810dd7 2022-12-18 00:05:31 wakeup_mode AAA= 2022-12-18 23:07:23 work_mode white args: tuya_local_2sagtyg4ns8xxozdcukxhn fhempy tuya 4r27hrbrtno6k7q5 2sagtyg4ns8xxozdcukxhn 192.168.178.47 kbuxy3tw7874ya22 3.4 key secret argsh: Attributes: alias M-TCV1 dp_20 switch_led dp_209 cycle_timing dp_21 work_mode dp_210 random_timing dp_22 bright_value_v2 dp_23 temp_value_v2 dp_24 colour_data_v2 dp_25 scene_data_v2 dp_26 countdown_1 dp_27 music_data dp_28 control_data dp_30 rhythm_mode dp_31 sleep_mode dp_32 wakeup_mode dp_33 power_memory dp_34 do_not_disturb group tuya room fhempy tuya_spec_functions [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}, 'desc': 'switch led'}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}, 'desc': 'work mode'}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'bright value v2'}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}, 'desc': 'temp value v2'}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}, 'desc': 'colour data v2'}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, 'desc': 'scene data v2'}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}, 'desc': 'countdown 1'}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'music data'}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}, 'desc': 'control data'}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'rhythm mode'}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'sleep mode'}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': 255}, 'desc': 'wakeup mode'}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}, 'desc': 'power memory'}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}, 'desc': 'do not disturb'}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}, 'desc': 'cycle timing'}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}, 'desc': 'random timing'}] tuya_spec_status [{'code': 'switch_led', 'dp_id': 20, 'type': 'Boolean', 'values': {}}, {'code': 'work_mode', 'dp_id': 21, 'type': 'Enum', 'values': {'range': ['white', 'colour', 'scene', 'music']}}, {'code': 'bright_value_v2', 'dp_id': 22, 'type': 'Integer', 'values': {'min': 10, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'temp_value_v2', 'dp_id': 23, 'type': 'Integer', 'values': {'min': 0, 'max': 1000, 'scale': 0, 'step': 1}}, {'code': 'colour_data_v2', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}, {'code': 'scene_data_v2', 'dp_id': 25, 'type': 'Json', 'values': {'scene_num': {'min': 1, 'scale': 0, 'max': 8, 'step': 1}, 'scene_units': {'unit_change_mode': {'range': ['static', 'jump', 'gradient']}, 'unit_switch_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'unit_gradient_duration': {'min': 0, 'scale': 0, 'max': 100, 'step': 1}, 'bright': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}}, {'code': 'countdown_1', 'dp_id': 26, 'type': 'Integer', 'values': {'unit': 's', 'min': 0, 'max': 86400, 'scale': 0, 'step': 1}}, {'code': 'music_data', 'dp_id': 27, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'control_data', 'dp_id': 28, 'type': 'Json', 'values': {'change_mode': {'range': ['direct', 'gradient']}, 'bright': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'temperature': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 255, 'step': 1}}}, {'code': 'rhythm_mode', 'dp_id': 30, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'sleep_mode', 'dp_id': 31, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'wakeup_mode', 'dp_id': 32, 'type': 'Raw', 'values': {'maxlen': '255'}}, {'code': 'power_memory', 'dp_id': 33, 'type': 'Raw', 'values': {}}, {'code': 'do_not_disturb', 'dp_id': 34, 'type': 'Boolean', 'values': {}}, {'code': 'cycle_timing', 'dp_id': 209, 'type': 'Raw', 'values': {}}, {'code': 'random_timing', 'dp_id': 210, 'type': 'Raw', 'values': {}}]

    opened by klauswitt 3
  • skodaconnect: setting vor EV Cars, feedback message

    skodaconnect: setting vor EV Cars, feedback message

    added a setting for ev-Cars corrected the slider for chargelimit and current
    added some glue code to set state to "connected" and "set_..."

    opened by fbuescher 1
  • Googlecast Verbesserungsvorschläge

    Googlecast Verbesserungsvorschläge

    Hello Dominik,

    Vorab : ich finde es großartig was du hier alles ablieferst und zusatzmodule für FHEM raus bringst. Zur Zeit benutze ich den Tuya-cloud-connector und den Googlecast.

    Da ich Zuhause mehrere Nest Audios mit einander in einer Gruppe habe würde ich diese gerne mit dem Googlecast Modul speisen. Leider kann ich kein YouTube Link in den Gruppen abspielen. Einzeln klappt es. Vielleicht kann man dieses noch fixen ?

    Wie wäre es evtl auch die Gruppen mit einer YouTube Playlist zu speisen ? Und eventuell noch eine Shuffle funktion für die Playlists.

    Danke Dir und weiter so =)

    opened by saulous 2
Releases(v0.1.540)
Owner
Dominik
Dominik
Generate discord nitro codes and check them

Discord Nitro Generator and Checker A discord nitro generator and checker for all your nitro needs Explore the docs » Report Bug · Request Feature · J

509 Jan 02, 2023
A Python Script to automate searching of available vaccination centers in the city and hence booking

Cowin Vaccine Availability Notifier Cowin Vaccine Availability Notifier takes your City or PIN code as an input and automatically notifies you via ema

Jayesh Padhiar 7 Sep 05, 2021
Dodo - A graphical, hackable email client based on notmuch

Dodo Dodo is a graphical email client written in Python/PyQt5, based on the comm

Aleks Kissinger 44 Nov 12, 2022
A Telegram bot to extracting text from images. All languages supported.

OCR Bot A Telegram bot to extracting text from images. All languages supported. Deploy to Heroku Local Deploying Clone the repo git clone https://gith

6 Oct 21, 2022
tgEasy's Official Assistant Bot and Example Bot

tgEasy Assistant The assistant bot that helps people with tgEasy directly on Telegram. This repository contains the source code of @tgEasyRobot and th

Divide Projects™ 4 Dec 26, 2022
PunkScape Discord bot to lookup rarities, create diptychs and more.

PunkScape Discord Bot A Discord bot created for the Discord server of PunkScapes, a banner NFT project. It was intially created to lookup rarities of

Akuti 4 Jun 24, 2022
TwitterDataStreaming - Twitter data streaming using APIs

Twitter_Data_Streaming Twitter data streaming using APIs Use Case 1: Streaming r

Rita Kushwaha 1 Jan 21, 2022
Command-line program to download videos from YouTube.com and other video sites

youtube-dl - download videos from youtube.com or other video platforms INSTALLATION DESCRIPTION OPTIONS CONFIGURATION OUTPUT TEMPLATE FORMAT SELECTION

youtube-dl 116.4k Jan 07, 2023
Send song lyrics to iMessage users using the Genius lyrics API

pyMessage Send song lyrics to iMessage users using the Genius lyrics API. Setup 1.) Open the main.py file, and add your API key on line 7. 2.) Install

therealkingnull 1 Jan 23, 2022
Autov2new - Pro Auto Filter Bot V2

Pro Auto Filter Bot V2 Deploy You can deploy this bot anywhere. Watch Deploying

1 Jan 06, 2022
a translator bot for discord

TranslatorBOT it is a simple and powerful discord bot, it been used for translating includes more than 100 language, it has a lot of integrated comman

Mear. 2 Feb 03, 2022
Simple Telegram Bot for generating BalckPearl BBCode Templates

blackpearl-bbcode-bot Simple Telegram Bot for generating BlackPearl BBCode Templates Written in Pyrogram Features - 🎉 IMDB Info fetching from files -

D. Luffy 5 Oct 19, 2022
Video Stream: an Advanced Telegram Bot that's allow you to play Video & Music on Telegram Group Video Chat

Video Stream is an Advanced Telegram Bot that's allow you to play Video & Music on Telegram Group Video Chat 🧪 Get SESSION_NAME from below: Pyrogram

Jonathan 6 Feb 08, 2022
Python package and CLI for user-friendly integration with SAS Viya

sasctl A user-friendly Python interface for SAS Viya. Full documentation: https://sassoftware.github.io/python-sasctl Table of Contents Overview Prere

SAS Software 30 Dec 14, 2022
N3RP (the NFT Rental Protocol) allows users to trustlessly rent out their ERC721-based assets.

N3RP • N3RP - An NFT Rental Protocol (pronounced "nerp") Smart Contracts Passing Tests, Frontend Functional But Is Being Beautified. 🛠 Introduction T

Grant Stenger 56 Dec 07, 2022
Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listening to.

TGBIOFY - Telegram & Spotify integration Changes the Telegram bio, profile picture, first and last name to the song that the user is currently listeni

elpideus 26 Dec 07, 2022
This is a repository for the Duke University Cloud Computing course project on Serveless Data Engineering Pipeline. For this project, I recreated the below pipeline.

AWS Data Engineering Pipeline This is a repository for the Duke University Cloud Computing course project on Serverless Data Engineering Pipeline. For

15 Jul 28, 2021
Quickly visualize docker networks with graphviz.

Docker Network Graph Visualize the relationship between Docker networks and containers as a neat graphviz graph. Example Usage usage: docker-net-graph

Leo Verto 43 Dec 12, 2022
Irenedao-nft-generator - Original scripts used to generate IreneDAO NFTs

IreneDAO NFT Generator Scripts to generate IreneDAO NFT. Make sure you have Pill

libevm 60 Oct 27, 2022