Group Details Private

Core team

  • RE: Tingbot with EmulationStation and RetroPie

    @BeauSSS Good question. It's been a while since i checked out the forum posts and hadn't picked up on the issue that @A-999 had flagged up. Might be worth trying to see if you get the same issue and, if so, then we could look into this.

    posted in Skunkworks
  • RE: alarm clock

    Hey Stefan! Sounds were added to the Tingbot libraries with a recent update. Have a look at http://docs.tingbot.com/projects/tingbot-python/en/latest/sound.html for an example.

    As for formats, mp3 might work, or you'll be better off transcoding your sound effects into WAV or OGGs.

    I've not used any I2C boards with the Pi so I don't know how easy that is.... the Tingbot sound libs were tested with a USB audio dongle, so that might be a good starting point.

    I found this Python library for checking if a date is a national holiday - check it out: https://pypi.python.org/pypi/holidays . You can list that in a requirements.txt file to include it in a Tingbot app.

    Joe

    posted in Coding help
  • RE: TingBot display lights bleeding

    Hey Qake,

    Sorry - I have just seen this. The way the screen fits on the GPIOs there may be a small tolerance for light to escape from the backlit LCD. Mainly can only be seen in dark conditions. If you email through further shots of the module via support@tingbot.com I can see if there are any other issues present :)

    • Ken
    posted in Support
  • RE: Connecting Tingbot to wifi that needs login

    Hey Samrthi. You're right that it's not going to be possible to register the Tingbot with a browser login portal. Perhaps you could connect the Tingbot to your computer directly using Ethernet instead?

    posted in Support
  • RE: tide doesnt remove files from remote

    Great point A-999. I think it's a problem with Tide, a workaround is to reboot the Tide app. Still a bug, though, I've filed it here: https://github.com/tingbot/tide-electron/issues/73

    posted in Coding help
  • RE: @every untill....

    Nice one A-999! Also, there's another way to make repeating functions that doesn't use the decorator - create_timer.

    Here's an example:

    import tingbot
    from tingbot import *
    import time
    
    def drawTime():
        currentDate = time.strftime("%d %B %Y")
        currentTime = time.strftime("%H:%M:%S")
        
        screen.fill(color='black')
        
        screen.text(currentTime, xy=(160,110), color="white", font_size=50)
        screen.text(currentDate, xy=(160, 180), color="white", font_size=24)
    
    draw_timer = create_timer(drawTime, seconds=1/30.0)
    
    @left_button.press
    def stopDrawingTime():
        draw_timer.stop()
    
    tingbot.run()
    
    posted in Coding help
  • RE: Pi-Hole app

    Hey Qake! Great to see people posting on the forums, sorry I'm just catching up with this :)

    If you're looking for something with two decimal places, you could write

    statText = '%.2f%%' % state['stats'][stats_list[i]['json']]
    

    ...which is a little confusing. I'll explain. In Python, the % operator when used in a string will substitute bits in.

    So you could write

    thing = 'Tingbot'
    print '%s is great!' % thing
    

    and the program would print to console Tingbot is great!. That's inserting a string into another string, but here you're inserting a number. And you want to print that number with only 2 decimal places. In that case, instead of writing %s, you write %.2f. The ".2" part means 'print with only 2 decimal places'. Check https://pyformat.info/ for more info on how to do this kind of thing!

    After that, you want to make the '%' sign. That requires %% because when using this style of formatting a single % has a special meaning.

    All in all, that makes '%.2f%%' % state['stats'][stats_list[i]['json']].
    Hope that's helpful!
    Joe

    posted in Apps
  • RE: Glitchy GIFs with black pixels

    Hmm. I've seen this before, it seems to happen with some GIF encoders but not others. Do you know where this GIF came from / how it was encoded?

    posted in Support
  • RE: Please help with json.

    Hi meldrew!

    A JSON file is a file containing structured data. That just means that it's designed to be read/written by humans and machines. In the case of PhotoAlbum.tingapp it means making a file inside the app with this contents:

    {
        "foldersList": ["/home/pi/Pictures/"],
        "extsList": ["jpg", "png"]
    }
    

    and saving it with the filename settings.json.


    JSON has a particular syntax, and you have to get all the ", {, [ etc in the right places! You can paste it into this website and click 'Validate JSON' to check your syntax if you're not sure when you're editing it.

    posted in Coding help
  • RE: We need security!

    Hi tader

    I think you make some good points, but first I'd like to discuss some of the design philosophies behind Tingbot.

    When we started work on Tingbot, our ambition was to create a platform that removes as much friction as possible from the joy of creating with software. We built this platform on top of Linux, which is great we can build on/ the work of the great Raspberry Pi community.

    Linux, however, has some different design goal. Being primarily a server OS, security is paramount, and it also brings a lot of stuff from the UNIX world (multiple users, permission model).

    So:

    • Yes, Tingbot is accessible to anyone on the local network, without a password. This is what we wanted, because we wanted to make a device that’s easy to use.

      Tingbot works more like a Sonos, or a Chromecast. You don’t require a password to play music on Sonos speakers, once you're on the network. Most people have secure Wifi these days, and NAT prevents traffic from the internet, so I think this is a reasonable default. (and FWIW, all Raspberry Pis ship like this, with their password as 'raspberry').

      But, all networks are different, so I'm now considering adding some other auth methods so the Tingbots can be more locked down, at the user's discretion.

    • The apps run as root.

      The Unix permission model doesn't make sense on an embedded system. It would be silly to need 'sudo' to write to a pin on Arduino. 'Permission denied' really trips up and frustrates beginners. If you own a device, you shouldn’t have to argue with it to get it to do what you want.

      The upside of 'root' is never limiting users with ‘permission denied’, the downside is the possibility that you might write a program that hoses your SD card, in which case you can reflash it and reinstall your apps, which are still on your PC. I think it's a good trade-off!

    Sorry if that got a bit rambly. I realise that security can be a hot topic, but hopefully this will give you some idea of where we're coming from!

    Joe

    posted in Support

Looks like your connection to Core team group was lost, please wait while we try to reconnect.