Monday 9 September 2019

Zabbix média móvel


22 de fevereiro de 2017 Paulus Schoutsen dois minutos de leitura Tempo Merchandise CommentsWhat tempo é Yep, t-shirt tempo. Hoje foram lançando os dois primeiros Home Assistente desenhos. Nós temos um t-shirt azul como representado acima e um projeto para em camisas blackgray como representado abaixo. Ir para a loja E porque nós amamos a internet e todas as coisas que nos trouxe, vamos começar com ter 100 do lucro das vendas ser doado para a Electronic Frontier Foundation. Se você compra uma camisa você baterá dois pássaros com uma pedra (figurativamente): você começa vestir um t-shirt do assistente Home do pontapé-burro e você ajuda a financiar defender liberdades civis no mundo digital. O FEP é uma organização sem fins lucrativos que visa proteger os direitos dos usuários de tecnologia. No entanto, você pode estar mais familiarizado com um de seus projetos: Permite criptografar. Leia mais sobre o que o FEP faz. Estamos usando o Teespring para gerenciar todas as vendas, produção e distribuição das camisas e também doar nossos lucros para o EFF. É também como nós adquirimos todos estes stockphotos surpreendentes. Algumas coisas extras a notar sobre a nossa loja teespring: Por agora estamos apenas lançando uma loja baseada nos EUA e estão trabalhando em uma loja baseada na UE. Vamos mantê-lo atualizado quando estiver pronto. Uma loja com sede na UE traria (de acordo com a Teespring) 65 transporte mais barato e 30 entrega mais rápida se você estiver na Europa em comparação com a loja dos EUA. Teespring mostra que há um número de dias restantes até o final da campanha para as camisas. Não se preocupe com isso, ele deve relançar automaticamente. Agora a camisa azul não mostra que 100 dos procedimentos vão para a caridade, mas o seu apoio confirmou-me que vai e que o emblema deve aparecer logo. Mais fotos após o clique. 14 de fevereiro de 2017 Fabian Affolter Menos de um minuto de tempo de leitura Comentários da comunidadeHá um Home Workshop Assistente no Chemnitzer Linux-Tage 2017. Primeiro vou cobrir a instalação, a configuração eo processo de configuração. A segunda parte será sobre automação. Por último, mas não menos importante, vamos falar sobre a integração de um novo platformcomponent. Verifique a visão geral da Oficina para obter os detalhes. Requalificação é necessária como os lugares no quarto são limitados. O prazo para o registo é 8 de março de 2017. Localização: Technische Universität Chemnitz, Reichenhainer Strae 90, 09126 Chemnitz, Alemanha Data: 12 de março de 2017 Hora: 10:00, Sala W2 Idioma: Alemão 11 de fevereiro de 2017 Robbie Trencheny, Fabian Affolter sete minutos de tempo de leitura Notas de lançamento NotesAnother sábado, outra versão Core atualizações Graças a pvizeli. Todos os componentes principais são agora escritos de forma assíncrona. Todos os componentes de entidade agora são migrados de modo síncrono para código assíncrono Agora, quando você reinicia o Home Assistant usando o serviço homeassistant. restart, sua configuração é verificada. Se ele parecer inválido, o reinício falhará. Frontend reescrito O frontend foi completamente reescrito, otimizando para a velocidade e recuperação de conexão perdida. Mesmo nos telefones mais lentos deve voar agora. O frontend agora também usa a nova API do WebSockets em vez da API EventStream. UI de cartão de estado personalizado Uma nova característica interessante é a possibilidade de criar cartões de estado personalizados no frontend. Vá em frente e escreva seu próprio cartão de estado para luzes. Sensores, bloqueios, etc descoberta MQTT MQTT agora tem apoio de descoberta que é diferente do nosso componente de descoberta. Semelhante ao sensor HTTP e ao sensor binário HTTP, a descoberta MQTT remove a necessidade de configuração permitindo que os dispositivos façam sua presença conhecida no Home Assistant. Componente de alerta Se você deixou a porta da frente aberta, o novo componente de alerta pode ser usado para lembrá-lo disto enviando-lhe notificações de repetição em um determinado intervalo. O componente yeelight foi portado para usar um backend mais estável e completo do python-yeelight, e suporta agora ambos os bulbos brancos e RGB. O componente também suporta transições e pode ser configurado para salvar as configurações para a lâmpada em mudanças. Os usuários atualmente usando componentes personalizados para o Yeelight são encorajados a voltar a usar a versão incluída e relatar quaisquer problemas com ele para o nosso rastreador de problemas. A Apple TV é agora um mediaplayer suportado. Ele tem suporte para praticamente todas as funções do player de mídia, incluindo uma exibição em tempo real do status de reprodução e arte. Todas as alterações Novas plataformasComponentes Melhorias Switch - Pilight: Validação já não rejeita IDs alfanuméricos (DavidLP) Rastreador de dispositivo - ASUSWrt: Correções ip regex vizinho para lidar com o possível router IPv6 flag (kylehendricks) Luz - MySensors: Fix mysensors RGB e W luz ligada EHDM: Modos de limpeza amplificador disponível, exigência de versão de colisão (rytilahti) Sensor - SMA: Manipule unidades corretamente (kellerza) MQTT eventstream: Prevenção de loop infinito em cruz configurado (rytilahti) MQTT evento fluxos (aequitas) Luz - Matiz. (Tboyce1) Wink: Wink AC e suporte de sensor adicional (w1ll1am23) Modbus: Lista de aceitação de registro de modbus (benvm) Rastreador de dispositivo - Ping: Adiciona dispositivos detectados por ping Como SOURCETYPEROUTER em vez de GPS (michaelarnauts) Clima - Ecobee: Cleanup clima e ecobee (Duoxilian) Sensor - Miflora: Permitir especificação de adaptador bluetooth (Danielhiversen) Sensor - Systemmonitor. Adicionar carga média ao sensor do systemmonitor (eagleamon) - Openweathermap. Adicionar fator de vento (fabaff) Notificar - Facebook: Permitir usar dados para mensagens aprimoradas (adrianlzt) Light - Hyperion: Alterar CONFDEFAULTCOLOR tipo de CV (Joeboyc2) Mysensors: Corrigir a validação da porta serial em janelas (MartinHjelmare) Notificar - Webostv: Adicionar ao pacote de envio (Yannic-HAW) Wink: Adicionar suporte para a posição na capa Wink (albertoarias) Luz - Fluxo: Faça o trabalho de exibição de brilho para o arquivo de configuração (pschmitt) TTS: TTS ID3 suporte (robbiet480) Dispositivos RGB. (Aequitas) Media player - Roku: Fix erro de atributo para mediaplayerroku (tchellomello) Light - modelo MQTT: Corrigir o controle deslizante de brilho para modelo MQTT luzes (ray0711) Modelo: Adicionar min e max Jinja2 filtros (sbidoul) MQTT: Verifique se há tópicos de comando ao determinar os recursos de uma luz MQTT (herm) Núcleo: Verifique as configurações antes de reiniciar (andrey-git) Luz - Hue. Fixar grupos com os mesmos nomes (tboyce1) Template: Adicionar icontemplate ao sensor de modelo (tboyce1) Gravador: Refatoração, escopo e melhor tratamento de Sessões SQLAlchemy (kellerza) Light - Flux: (Danielhiversen) Light - Demo: Adicionar propriedade disponível e dicas de digitação (rytilahti) Sensor - ARWN: Aprimoramentos para ARWN (aequitas) Media Player - AppleTV: Adicionar suporte de descoberta para Apple TV (postlund) Ventilador - ISY994: Mudança do estado médio para filtragem (Teagan42) Clima - Ecobee: Apoia o modo de afastamento como modo de espera e holdmode permanente como retenção temporária. (Duoxilian) Tellduslive: Não lance exceção se a conexão ao servidor for perdida (molobrakos) Zoneminder: Refactoring e manipulação de erro de decodificação JSON (pschmitt) Processamento de imagem: Cleanup Classe de rosto base adiciona suporte para microsoft face detect (pvizeli) Release 0.38.1 - 12 Fix correção de logbook (balloob) Fix AppleTV conflitante dependência rompendo websockets (balloob) Release 0.38.2 - 12 de fevereiro Validate config vai agora respeitar local de configuração personalizada (balloob) Fix Nuki bloqueio em Python 3.4 (pschmitt) Fix problemas de login myusps (happyleavesaoc ) Fixar hdmicec com nova personalização (andrey-git) Fix MQTT descoberta (fabaff) Fix Z-Wave termostato unidades (turbokongen) Release 0.38.3 - 15 de fevereiro Sonos: fixar perdendo fontes favoritas em desconectar (pvizeli) Google Calendar: Eventos (happyleavesaoc) Fix Wink Assinatura de PubNub (w1ll1am23) Z-Wave: getter não ignore etiqueta (andrey-git) Lua: remova a unidade de medida (fabaff) MySensors: adicione a requisição de versão n (MartinHjelmare) Lançamento 0.38.4 - 21 de fevereiro Descoberta: a descoberta fundida levou a problemas em sistemas e foi removida (bazwilliams) Dispositivos ocultos não são mais visíveis em visões (balloob) Quebrando mudanças O suporte para LG webOS Smart TVs Foi melhorada. Isso requer que você mova HOME. pylgtv para HASSCONFIGDIRwebostv. conf ou o Assistente de Início precisará ser emparelhado novamente com a TV. Os eventos de processamento de imagem foram renomeados: a identificação tornou-se imageprocessing. detectface. Foundplate se tornou imageprocessing. foundplate O sensor binário FFmpeg altera o nome da plataforma de ffmpeg para ffmpegnoise e ffmpegmotion. Além disso, todos os serviços relacionados ao FFmpeg são movidos de uma implementação de plataforma para os componentes FFmpeg e foram renomeados de binarysensor. ffmpegxy para ffmpeg. xy. As alterações de núcleo do frontend fizeram com que todos os painéis personalizados fossem interrompidos. Docs ainda não foram atualizados. A essência é que você tem que usar this. hass. entities. This. hass. callService e this. hass. callApi. Se você precisar de ajuda, não hesite em usar nossos fóruns muito ativos ou junte-se a nós para um pouco de bate-papo. As notas de lançamento têm comentários ativados, mas sua preferência se você usar os canais de comunicação anteriores. Obrigado. Relatórios de problemas Problemas apresentados por esta versão Informe-os no nosso rastreador de problemas. Certifique-se de preencher todos os campos do modelo de emissão. Fevereiro 4, 2017 Fredrik Lindqvist dois minutos que lêem o tempo Tecnologia CommentsTonight Im feliz anunciar uma liberação nova da nossa imagem da framboesa Pi, HASSbian 1.1 - a caixa do brinquedo. Por Toy-box você quer saber Porque abrange as mudanças muito bem. As mudanças da imagem anterior são grandes e pequenas, mas vamos começar com as coisas interessantes. Hassbian-scripts Um conjunto de scripts escritos para adicionar funcionalidade extra à sua instalação do Raspberry Pi. Esses scripts são executados como o usuário pi e instalam um conjunto de ferramentas ou pacotes. Atualmente inclui: Instalar o Libcec. Adiciona suporte HDMI CEC local. Instale o Mossquitto. Instala o pacote Mosquitto e as ferramentas de cliente mais recentes do repositório oficial dos projetos Mosquitto. Agora inclui suporte ao websocket. Instale o OpenZWave. Instala o OpenZWave e se prepara para usar um controlador USB ou GPIO ZWave. Instale o Samba. Instala os pacotes Samba e compartilha sua configuração com o smb para poder editá-los em qualquer computador sem a necessidade de um software de transferência de arquivos separado. Esta partilha não é segura e a sua utilização não é recomendada se a sua instalação estiver disponível publicamente. Todos esses scripts estão disponíveis no diretório homepihassbian-scripts. Este diretório é, na verdade, um clone git repositório thats clonado no primeiro arranque e pode ser atualizado para a versão mais recente com facilidade depois. Para atualizar o diretório hassbian-scripts, execute o seguinte comando como o usuário pi. Para usar qualquer um dos hassbian-scripts, execute o seguinte comando como o usuário pi. Aqui usamos o script libcec como um exemplo. Para obter mais informações sobre esses scripts, consulte o repositório hassbian-scripts. Limpeza de Primavera Com esta imagem há também bastante um pouco de limpeza do sistema de base eo script que gera a nossa imagem Raspberry Pi. Atualizar pi-gen. Nosso script de compilação foi atualizado para seguir a imagem Raspbian mais próxima. Esta imagem é basicamente uma imagem Raspbian lite com Home Assistant, dependências e um pequeno conjunto de alterações para o sistema base. Mosquitto removido. Não tão ruim quanto parece desde a sua instalação foi passar para um dos nossos novos hassbian-scripts. Adicionado rng-tools. Permite a sua instalação HASSbian usar o suporte de hardware no Pi Framboesa para geração de entropia. Adicionado pacote avahi-daemon. Seu Pi da framboesa deve agora estar disponível em hassbian. local. Adicionado htop. Monitor de processo interativo e amigável. Adicionado tmux. Um ótimo multiplexador de terminal que facilita o trabalho com a linha de comando sobre ssh. Adicionado o usuário homeassistant ao grupo de discagem. Simplifica o uso de hardware, como os controladores USB ZWave, que requerem essa permissão. No horizonte Há naturalmente mais no horizonte e há ainda mais planos e desejos de como esta imagem irá funcionar no futuro. No horizonte próximo de Landrash há alguns script mais nos trabalhos e para o telltick, emulatedhue e para o controle Home Assistant. Para acompanhar as discussões sobre o desenvolvimento da imagem HASSbian ou contribuir para participar do bate-papo HASSbian gitter. Para começar com a nova imagem, confira as instruções de instalação na seção de primeiros passos. Uma das partes mais difíceis de ser um pai é manter um olho constante sobre o bebê para se certificar de que o bebê está indo bem. Assim, não é surpreendente que os monitores do bebê são um dos mais rápido crescimento categoria do produto do bebê. No entanto, muitos dos monitores do bebê disponíveis no mercado são bastante mudo e esperar que os pais para continuar a olhar para o fluxo de vídeo ou ouvir o áudio. Este how-to irá ajudá-lo a criar um monitor bebê inteligente em um orçamento e integrá-lo com Home Assitant. Em vez de confiar nos alto-falantes de monitor de bebê de baixa qualidade, usamos nossos alto-falantes existentes (por exemplo, Sonos). Também podemos enviar notificações (com imagens) para evitar a monitoração constante do feed. Obviamente, você pode usar a instalação como um sistema de vigilância de propósito geral para monitorar o ruído em toda a casa. 28 de Janeiro de 2017 Fabian Affolter et ai. Nove minutos de tempo de leitura Release-Notes CommentsNo stats, sem números, e similares desta vez. Ok, apenas um número: 0,37. Estamos de volta à pista com o nosso ciclo de lançamento bi-semanal. Ao lado de algumas mudanças organizacionais é esta liberação liberar recursos frescos e novas integrações. Por favor, fique de olho na seção "Quebrando mudanças", porque há também grandes melhorias para algumas plataformas e componentes. Governança Conforme anunciado, a nova Governança exige que os desenvolvedores assinem o CLA. Código de conduta. Acordo de licença do Contributor. E Licenciamento apropriado para proteger todas as partes envolvidas no ecossistema do Home Assistant de usuários e membros da comunidade para contribuintes. Reconhecimento de rosto usando o Microsoft Face API pvizeli foi em um rolo com as integrações de processamento de imagem. Desta vez é a API do Microsoft Face. Isso significa que agora será possível treinar a API com as pessoas que você deseja reconhecer e enviar imagens da sua câmera para a API como outra fonte de automação. Deseja tocar uma melodia personalizada quando alguém entra na casa Agora é possível Melhorar a segurança da câmera Depois de uma auditoria de segurança por Stephen OConner, ele descobriu que a nossa fonte de tokens de acesso gerados aleatoriamente para feeds de câmera era razoavelmente previsível e poderia ser atacado em força bruta em 2.5 Semanas. Uma correção foi incluída nesta versão que usa o sistema fornecido gerador de números aleatórios para aleatoriedade máxima e gira as teclas a cada 10 minutos para reduzir a janela em que um ataque de força bruta pode acontecer. Embora o método antigo não seja inseguro, o novo método é muito mais seguro. A atualização para a versão mais recente é recomendada. Novas opções de personalização O Andrey-git adicionou algumas ótimas opções novas à funcionalidade de personalização. Agora é possível especificar personalizações como um curinga para entidades ou para um domínio específico. Major Wink e HDMI CEC melhorias w1ll1am23 fez um trabalho incrível fixação de uma tonelada de bugs e problemas com a integração Wink. Maior melhoria é que agora é capaz de atualizar automaticamente os tokens de autenticação. Isso significa que se você tiver seu endereço de e-mail e senha no arquivo configuration. yaml, não é necessário clientid e clientsecret e token que foi gerado com o gerador localizado na documentação do Wink. O novo suporte do Wink causará a renomeação de todos os sensores binários e também criará novos sensores para dispositivos que não foram detectados ou suportados anteriormente na versão anterior. Graças a konikvranik a integração HDMI CEC tem uma grande atualização com um monte de melhorias. Esta atualização deve tornar mais fácil trabalhar com HDMI CEC e dar-lhe mais controle. Primeiro Coffee Maker suportado stu-gott adicionou suporte para a primeira cafeteira em Home Assistente: Mr. Coffee Smart Optimal Brew. Happy brassing Todas as mudanças Novas plataformasComponentes Melhorias Script: Fix script release (balloob) Câmera - Amcrest: Adicionar suporte para fluxos MJPEG direto das câmeras Amcrest (colinodell) Sensor - Miflora: Removendo o regulador do acelerador (freol35241) Notificar - Lannuncer: Fix getservice method (mKeRix ) Sensor - USPS: Caminho absoluto para salvar o cookie usado pelo sensor USPS (tchellomello) Ninho: Fix o número de lançamento do python-ninho (Danielhiversen) Teclado remoto: Melhorar o suporte (MrMep) Dispositivo (Rytilahti) Remoto: Reserve uma porta de teste para a API quebrada para fixar a corrida (armills) Clima - Ecobee: Tornou a temperatura alvo sensível ao modo automático (Duoxilian) Configuração: Corrigir o erro de codificação (Danielhiversen) Emulatedhue: Adicione a opção upnpbindmulticast, tipo padrão para o Google e persistência de matiz emulada Ds (hoopty. Docker: Instale phantomjs em Docker container (jnewland) Media player - MPD: Adicione listagem e seleção de playlists MPD disponíveis (partofthething) Media player - Denon AVR: Melhorias Denon (glance-) Light - x10.py: (Martst) Sensor - DSMR: TCP, reconectando e V4 Suporte de CRC (aequitas) Media player - Yamaha. py: Fix Yamaha fazendo IO em loop de evento Rastreador de dispositivo UPC: Make upc mais robusto (pvizeli) Atualização (MrMep) Rastreador de dispositivo - Xiaomi. py: Xiaomi Mi Router atualização de token (RiRomain) Câmera - MJPEG: Imagem de suporte para thumbmail (pvizeli) Sensor - ZAMG: Lista de id de estação válida atualizada (HerrHofrat) Light - ISY994: (Rmkraus) emul-hue Luz - Zwave: Use apenas recursos suportados para dispositivos (turbokongen) Media player - Kodi: Suporte para volume pisar (armills) Media player - roku: Use isscreensaver. Atualizar IDLE estado e usar o nome do dispositivo (robbiet480. Xhostplus) Switch - HDMI CEC: Suporte para dispositivos e comandos (konikvranik) Lock - Zwave: Melhorias para Zwave plataforma de bloqueio (turbokongen) TTS: Invalidar entradas de cache de arquivo quebrado (stu-gott) Luz - Matiz: Melhorias (robbiet480) TTS - YandexTTS: velocidade e emoção adicionadas ao Yandex TTS (lupine-de-mid) Luz - telltick. py: Chave de luz Tellstick (stefan-jonasson) Switch - insteonlocal. py: (Fabaff) Fan - MQTT: Não definir uma velocidade quando o fã se acende (robbiet480) Config: Permite uma personalização mais fácil de todo o domínio, listas de entidade, globs (andrey Sensor - Homematic: Atualizar o suporte do dispositivo (danielperna84) Sensor binário - ISS: Adicionar localização aos atributos e opção para mostrar posição no mapa (fabaff) Media Player - Kodi: Adicionar opção de configuração SSL (ecksun) Sensor - WAQI: Falta de valor de partícula (fabaff) Wink: Suporte Para python-wink 1.0.0 (w1ll1am23) Sensor binário - RPi GPIO: Adicionar um sono pequeno antes de ler o sensor (snagytx) Sensor - USPS: Adicionar nome à configuração (happyleavesaoc) Sensor - Miflora: Remover o regulador decorador da plataforma miflora (freol35241 ) Rastreador de dispositivo - asuswrt. py: Adicionar suporte IPv6 ao analisar vizinhos (leppa) iOS: Descobrir notify. ios quando carregamentos de componente iOS (robbiet480) Homematic: Adicionar classe de contato de obturador MAX (jannau) Sensor - Darksky: Adicionado suporte de previsão (nordlead2005) Switch - Pilight: Implementar echo config option (janLo) Núcleo: Suporte personalizar em pacotes (kellerza) Switch - Flux: Permitir desativar a configuração do brilho (rytilahti) Media player - Sonos: Adicionar iscoordinator. (Dobox) Switch: não mais fazer IO no bus de eventos (balloob) Light - Insteon local: Melhorar a configuração do Insteon (wardcraigj) Emulados Hue: Emulados Hue host-ip não se vincular quando executado no docker sem --nethost (jeremydk) Clima - EQ3 BT inteligente: Adicionar relatórios para disponibilidade (rytilahti) Versão 0.37.1 - 2 de fevereiro Não rejeite IDs alfanuméricos para PiLight (Pvizeli) Corrigir o XML fora do loop de eventos (pvizeli) Corrigir o problema do Netatmo SSL com o URL da VPN (Jabesq) Homematic: Corrigir bug com o dispositivo UNREACH staterestore e variáveis ​​não atualizando (pvizeli) Sonos: Impedir entradas duplicadas na lista de favoritos (pvizeli) Fix Schlage Connect integração deadbolt via Z-Wave (turbokongen) (Tboyce1) Alterações de quebra Uma alteração de quebra principal no componente emulatedhue significa que, a menos que você defina o tipo: alexa antes de iniciar a versão mais nova do Home Assistant você perderá todos os dispositivos que Alexa descobriu e precisará re-adicioná-los, bem como criar novos grupos. A plataforma da integração da ISS foi a mudança para sensor binário. Verifique a documentação da plataforma. A mídia Roku usa agora um novo formato para os IDs de entidade. O OpenALPR não é mais um componente. É agora uma plataforma para processamento de imagem. Devido a enormes melhorias da integração Wink, os nomes de seus sensores binários vão mudar e novos dispositivos podem aparecer. O componente MySensors agora exige que todos os caminhos de arquivos de persistência sejam definidos se algum for definido pelo usuário. Isso é para evitar conflitos de nome para os caminhos. Se nenhum caminho estiver definido, o Home Assistant irá definir todos os caminhos para você. O Sonos serviço sonosgroupplayers foi removido. Use agora sonosjoin para esta função. O cache do TTS mudou pela última vez. Os arquivos usam agora também um hash de opção como parte do nome. Se você quiser usar o cache, ele precisa ser renomeado ou desmarcado, novo criado. Por exemplo. HASHLANGPLATFORM. xxx - gt HASHLANGOPTIONSPLATFORM. xxx. Substitua OPTIONS por - em plataformas de saída. Se você precisar de ajuda, não hesite em usar nosso Fórum ou junte-se a nós para um pequeno bate-papo. As notas de lançamento têm comentários ativados, mas sua preferência se você usar os canais de comunicação anteriores. Obrigado. Relatórios de problemas Problemas apresentados por esta versão Informe-os no nosso rastreador de problemas. Certifique-se de preencher todos os campos do modelo de emissão. January 21, 2017 Paulus Schoutsen cinco minutos que lêem o tempo Organização CommentsUPDATE 28 DE JANEIRO DE 2017 Após o gabarito da comunidade nós atualizamos o CLA e a licença que o Home Assistant é distribuído sob. Para o CLA, em vez de impor requisitos sobre as subvenções e código, agora exigimos contribuições para ser licenciado sob a licença Apache 2.0. Agradecimentos especiais a Matthew Garrett por seus comentários e conselhos. Começando com a versão 0.37, o Home Assistant irá re-licenciar o código atual sob a licença Apache 2.0. Esta é a licença que será usada para avançar para todos os projetos sob nossa organização. O projeto e a comunidade do Assistente Domiciliar tem experimentado um enorme crescimento nos últimos três anos. Muitos voluntários trabalham incansavelmente todos os dias para dar-lhe todo o awesomeness que você vê hoje. Muito mais trabalho é envolvido do que muitas pessoas percebem. Além da simples codificação do Home Assistant, os voluntários continuam mantendo projetos relacionados, atualizando documentação, publicando exemplos, autorizando posts no blog e moderando os fóruns e conversando. Isso é algo que queremos manter seguro e funcional, mesmo que nós crescemos. A partir de hoje, anunciamos algumas iniciativas para ajudar a proteger nossos usuários, contribuintes e membros da comunidade. 18 de janeiro de 2017 Fabian Affolter Menos de um minuto de tempo de leitura Comentários da comunidade Sua semana 3 de 2017 e grandes coisas já aconteceram. Esta é apenas uma pequena recapitulação. No placar OSS Metrics estamos no lugar 30. Dentro de três meses nós movemo-nos de nosso lugar começando que era 66 em setembro 2017 até o atual. Nós listado na Github Trending. Além disso, foi balloob mencionado como desenvolvedor de tendências. Balloob s falar no OpenIoT Summit 2017 foi classificado como um dos Top 5 vídeos da conferência. Nós agora navio mais de 500 componentes e plataformas. Até o momento, processamos mais de 3500 solicitações Pull no repositório principal. Você pode se perguntar por que isso é incrível. É incrível porque somos um projeto apenas para a comunidade dirigido por voluntários, não há suporte financeiro, nenhuma empresa em segundo plano e nenhum desenvolvedor pago que esteja trabalhando no Home Assistant. Aqui está outro Obrigado porque você é a força motriz por trás do Home Assistant. O que mais números Checkout a página Trivia 15 de janeiro de 2017 Fabian Affolter cinco minutos de tempo de leitura Release-Notes CommentsWelcome para 2017 e 0.36. Estamos orgulhosos de anunciar o primeiro lançamento deste ano. Enquanto ainda estamos migrando peças para async mas 0.36 está se concentrando em novos recursos e um monte de correções de bugs. Os pacotes estão fornecendo uma nova maneira de organizar diferentes componentes de configuração de componentes juntos. Com os pacotes oferecemos a opção de incluir diferentes componentes ou partes da configuração usando qualquer uma das diretivas de inclusão. InfluxDB export O componente InfluxDB estava causando problemas em uma ampla variedade de casos de uso. Titilambert melhorou nosso InfluxDB exportador recurso. Pode ser que você precise executar o script de migração para atualizar seu banco de dados InfluxDB. Estação Espacial Internacional (ISS) Não, infelizmente não estamos indo para o espaço. O sensor iss está monitorando a posição da Estação Espacial Internacional e dá-lhe alguns detalhes. Insteon local O suporte para o Insteon foi removido devido a problemas há algum tempo. Com o suporte ao componente insteonlocal para o Insteon está de volta e deixe um trabalho local com uma instalação do Insteon. Processamento de imagem O novo componente de processamento de imagem funciona atualmente com placas de número. Mas isso poderia nivelar a maneira de integrar recurso como reconhecimento facial, detecção de movimento ou controle de gestos. Todas as alterações Release 0.36.1 - 17 de janeiro Corrigir o valor padrão loadyaml (balloob) Corrigir a descoberta do fluxled (Danielhiversen) Corrigir o Python Reposição da dependência do ninho (Danielhiversen) Fazer USPS usar o caminho absoluto para salvar o cookie (tchellomello) ) Corrigir problemas de importação de Eq3bt (rytilahti) Corrigir Bluetooth e rastreadores de Volvo (pvizeli) Corrigir plataforma de notificação lannouncer (mKeRix) Alterar o serviço de APNS de mudanças foi movido para o domínio de notificação. Use notify. apnsNOTIFIERNAME em vez de apns. NOTIFIERNAME. O componente InfluxDB tem um novo esquema para armazenar valores no banco de dados InfluxDB. Pode ser necessário executar o script influxdbmigrator. Você tem que observar: Não haverá tagsfields nomeado mais tempo. Todos os campos numéricos (intfloatbool) serão armazenados como float dentro do influx db. Todos os campos de seqüência de caracteres correspondentes aos atributos de estado serão renomeados como FIELDNAMEstr, onde FIELDNAME é o atributo state, para evitar conflitos de tipos. Todos os campos de seqüência de caracteres correspondentes a um estado serão renomeados como estado (valor anterior). Os campos nomeados valor serão sempre armazenados como float. Campos nomeados estado sempre serão armazenados como seqüência de caracteres. Arquivos de cache TTS usam agora a abreviatura de idioma como parte do nome. Se você quiser usar o cache, ele precisa ser renomeado ou apagado, novo criado. Por exemplo. HASHPLATFORM. xxx - gt HASHLANGPLATFORM. xxx. Se você precisar de ajuda, não hesite em usar nosso Fórum ou junte-se a nós para um pequeno bate-papo. As notas de lançamento têm comentários ativados, mas sua preferência se você usar os canais de comunicação anteriores. Obrigado. Relatórios de problemas Problemas apresentados por esta versão Informe-os no nosso rastreador de problemas. Certifique-se de preencher todos os campos do modelo de emissão. Olá e Feliz Ano Novo Eu não sou Paulus. Meu nome é Ben. Eu sou o criador do canal BRUH Automation no YouTube. Se você já viu algum dos meus vídeos, então você vai saber que eu amo a automação residencial e Home Assistant. Eu queria compartilhar algumas estatísticas excitantes de um dos meus projetos mais recentes - Control My Christmas tree Para este projeto, eu criei uma instância Home Assistant em um Raspberry Pi 2 que foi publicamente acessível via DuckDNS. Paulus foi ótima em me ajudar a desativar vários dos serviços de desenvolvedor que poderiam ter sido explorados para desativar a instância do Home Assistant. Eu adicionei três dispositivos à instância do Home Assistant - um Wemo Insight, Sonoff Switch (executando firmware MQTT) e uma tira DIY MQTT Digital LED. Depois de adicionar algumas decorações 3D Print Star War, a árvore estava pronta para ir A árvore de Natal em ação. Sobre Home Assistant CategoriesUpdates: 1) I8217ve colocar todos os exemplos de código em codepen. iocollectionnjzYxo 2) Vou reescrever este post depois I8217m feito publicar a minha visualização com a série React, porque it8217s 4 anos de idade e há outras maneiras de fazer isso agora. Dados é o primeiro D em d3 (ou possivelmente o terceiro, mas it8217s definitivamente um destes). De qualquer forma. Colocar seus dados na forma certa é crucial para ter código conciso que é executado rapidamente e é fácil de ler (e, mais tarde, solucionar problemas). Então, que forma devem seus dados estar em Você, sem dúvida, têm muitas opções. Para acompanhar este tutorial, vamos supor que você deseja traçar a relação entre R038D despesa e crescimento do PIB para um número de países. Você tem este arquivo. Cheio de dados tabulares, que lista para cada país um nome, um continente, as despesas brutas R038D em percentagem do PIB, o crescimento do PIB, e para o contexto população e PIB per capita. Portanto, uma abordagem muito básica seria colocar cada uma dessas variáveis ​​em uma matriz independente. (Don8217t incômodo deslocamento, it8217s mais do mesmo) Então, você pode apenas criar marcas para cada item de dados e buscar cada atributo de forma independente. Let8217s fazer um gráfico de bolha, por exemplo. (Pequeno aparte: no post eu ganhei o código para configurar o contêiner svg ou as escalas, em vez de focar as estruturas de dados. Este código, que é realmente nada de especial, pode ser encontrado no código-fonte dos exemplos) . Então, para criar nossos círculos que iria escrever algo como: Veja o exemplo em sua própria guia ou janela, mas isso é o inferno para manter. Se por algum motivo há um erro em um dos valores, por exemplo, devido a um gato ou uma criança pequena na proximidade do computador, o erro será muito difícil de solucionar. Outro problema é que é muito difícil aplicar qualquer tipo de tratamento posterior aos dados. Por exemplo, você observará que há bolhas menores inteiramente dentro da bolha alaranjada grande que acontece estar em cima delas. Portanto, não é possível passar o mouse sobre as bolhas menores. Uma maneira de resolver isso seria classificar os dados em ordem de população decrescente (o tamanho das bolhas) de modo que seria impossível ter esse tipo de situação. Agora, enquanto é possível classificar 6 arrays de acordo com os valores de um, it8217s muito confuso. Ideally, you should have all the values that will be translated graphically within one, single object. You want to have an array of these objects that you will pass to the data method, and be able to write something like: Here, you have just one data source, which is much safer. So if you8217re thinking: I know, I should create a variable like this: and get this done, and furthermore if you are thinking 8220Hey, I can do this in Excel from my csv file, with one formula that I will copy across the rows8221, you need to stop right now in the name of all that is good and holy . Even though it works: This approach has a number of flaws which you can all avoid if you read on. First, the execution of your program will be stopped while your browser reads the source code that contains the 8220data8221 variable. This is negligible for 36 rows, but as objects get bigger and more complex, an equivalent variable may take seconds or even minutes to load. And now we have a problem. That8217s a problem for your users. Now to you: creating a JSON variable from tabular data is tedious and error prone. The formula editing interface in Excel doesn8217t really help you spot where you have misplaced a quote or a colon. As a result, this is very time-consuming. Don8217t do that: there is a much simpler way. Enters the d3.csv function. Here8217s how it works. You tell your d3.csv function the location of a csv file, (which we had all along) and a function that must run on the array of objects (what we always wanted) created by using the first row as keys. In other words, once inside the d3.csv function, the 8220csv8221 variable will be worth exactly what we assigned to 8220data8221 earlier, with one major difference, it8217s that we didn8217t have to manufacture this variable or do any kind of manual intervention: we are certain it corresponds to the file exactly. One nice thing with this method is that since your variable is not explicitly in the source code, your browser can read it much faster. The data is only read when the d3.csv function is called, as opposed to the previous approach where the entirety of the source code (including the data) had to be read before the first statement could be executed. Of course, it only makes a difference when the data size is significant. But using the d3.csv approach would let you display a 8220loading data8221 warning somewhere on your page, and remove it when inside d3.csv. Much better than a blank page. Three caveats with this method. This will no longer work in a local file system (ie opening a file in the browser). The resulting file can only run on a webserver, which can be local (ie the page has a url). whatever happens within the d3.csv function is no longer in the global scope of the program. This means that after the program has run its course you cannot open the javascript console and inspect the value of 8220csv8221, for instance. This makes these programs slightly more difficult to debug (there are obviously ways, though). Everything read from the file is treated as strings. Javascript does a lot of type conversion but be mindful of that or you will have surprises. This is why I wrote x(d. GERD) for instance ( before a string converts it to a number). To celebrate this superior way of aquiring data, we8217ve thrown in animated data entry: the circles are initiated at a default value and move towards their position. You may want to check the link to see the transition effect. So, at the level of the mark (ie our circles) the most comfortable form of data is an object with at least as many keys as there will be graphical properties to change dynamically. One flat array of data is fine if we have just one series of data. But what if we have several series Indeed, most visualizations have a structure and a hierarchy. So let8217s proceed with our data but now let8217s assume that we want to show values for different continents as different little scatterplots (8220small multiples8221). Intuitively: we8217ll want to add 5 8220g8221 groups to our svg container, one for each continent, and then add one dots per country in each continent to those groups. Our flat array won8217t work so well then. What to do The d3 answer to this problem is the d3.nest() set of methods. d3.nest() turns a flat array of objects, which thanks to d3.csv() is a very easily available format, in an array of arrays with the hierarchy you need. Following our intuition, wouldn8217t it be nice if our data would be: An array of 5 items, one for each continent, so we could create the 8220g8221 groups, And if each of these 5 items contained an array with the data of all the corresponding countries, still in that object format that we love This is exactly what d3.nest() does. d3.nest(), go With the. key() method, we are indicating what we will be using to create the hierarchy. We want to group those data by continent, so we use this syntax..sortKeys is used to sort the keys in alphabetical order, so our panels appear in the alphabetical order of the continents. If we omit that, the panels will show up in the order of the data (ie Oceania first as Australia is the first country). We could have avoided that by sorting the data by continent first before nesting it, but it8217s easier like this. Here, we just have one level of grouping, but we could have several by chaining several. key() methods. The last part of the statement. entries(csv), says that we want to do that operation on our csv variable. Here is what the data variable will look like: Now that we have our data in an ideal form let8217s draw those marks: (you may want to click on the link to see the transition effect and read the full source). This is all very nice but wouldn8217t it be better if we could characterize some aggregate information from the continents Let8217s try to find out the average values for R038D expenditure and GDP growth. Can it be done easily This is a job for the other main d3.nest method, rollup. rollup is the aggregating function. Here8217s an example. Remember how the combination of. key() and. entries() rearranges an array into arrays of smaller arrays, depending on these keys well, the value that is being passed to the function inside the rollup method is each of these arrays (ie an array of all the objects corresponding to countries in America, then an array of all the objects corresponding to countries in Europe, etc.) Also, if we use sortKeys in our previous nesting effort we8217d better use it here too. Here is what the variable will look like: Incredible just the values we need. Now it8217s just a matter of adding them to the sketch. Two little additions here: This is the final example 8211 again you may want to click on the link to see the transition and get the entirety of the source. At the mark level, you want to have objects with as many properties as you need graphical variables (like x, y, fill, etc.) using d3.csv() and a flat file will make this easy (d3 also provides functions like d3.json or d3.xml to process data in another format). d3.nest can help you group your entries to structure your data and create more sophisticated visualizations rollup can be used to aggregate the data grouped using d3.nest Post navigation Leave a Reply Cancel reply Excellent tutorial Jerome 8211 while CSV doesn8217t provide 8220spontaneous8221 data like a MySQL query, it does improve considerably on the manual entry approach. I suppose the CSV could be designed with enough flexibility and detail to simulate a database, using various filters in d3. Hi, thanks though d3 can completely interact with a database like mySQL with a similar approach jeromecukierblog20170102using-d3-with-a-mysql-database but if you have data in tabular format to begin with, d3.csv is very practical Very useful tutorial I8217d like to ask two questions: first :can I rename the attributes GERD and growth, say. as avgGERD or avggrowth instead of using the old name (Think of the AS keyword in SQL ) second question: Am I forced to group previously all the countries in order to average the same attributes (in this case, GERD and growth) over the array of countries in a continent I8217m supposed to work on a similarly nested structure and I8217ve some trouble since I can8217t define an accessor for the d3.mean() function. Thanks in advance would work. (or any valid key name instead of a and b). 2) technically, no. but you may want to. For any data operation in d3 or javascript in general, and this is something I could have put in the tutorial, there is the possibility to start from an empty structure (either an empty array or an empty object), loop through the source data and add something to the structure. for instance I could write: avgs csv. forEach(function (d) var cd. continent if(avgs) avgs. navgs. n1 avgs. GERDavgs. GERDd. GERD avgs. growthavgs. growthd. growth else avgs ) keys(avgs).forEach(function(c) avgs. GERDavgs. GERDavgs. n avgs. growthavgs. growthavgs. n ) this will produce the same output as before without a nesting function, it8217s a bit longer to write but possibly clearer. Less trivial operations are possible during the loop as well. Thanks a lot for the rapid answer Eventually I did the same except for the fact I used just plain javascript. I was curious if one could perform the task inside the. rollup() function. PS:kudos for your great teaching style, I8217m learning d3 and this tutorial has been incredibly useful. bunch of comments here talking about working with a real database however the nice thing about this being from csv is that you can always be pulling the data from your database and be writing csv files with it 8211 this way the data is both downloadable and works with the tutorial quite nicely. That would obv give the user more flexibility to use the data in other ways should they want to or need to. Hi Jerome. This is incredibly helpful for me. One question 8211 how do I execute your code without knowing the names of the attributes (continent, gdp, etc) I8217m very new to d3 so sorry if this is simple. Your code for reference below: d3.csv(8220data. csv8221,function(csv) we first sort the data then we create the marks, which we put in an initial position svg. selectAll(8220circle8221).data(csv).enter().append(8220circle8221).attr(8220cx8221,function(d) ).attr(8220cy8221,function(d) ).attr(8220r8221,function(d) ) now we initiate 8211 moving the marks to their position Great tutorial, this was super helpful for my entrance into d3 with csvs I8217m trying to make a line chart with date as the x-axis, sum of orders as the y-axis, and a linecolor for each of my three stores. My dataset has a row for each order, so I need to sum the order by date and store: d3.csv(file, function(error, data) data data. map( function (d) return store: d. store, date: parseDate(d. date), orders: d. orders ) I keep getting an error at this line in the code, and though the axis are drawn on the page, there is no data: Can you offer any insight Thanks in advance i can8217t be definitive without seeing your d ata file but mostly, do you define your line function somewhere well, the name of the attributes would come from your data file. so this assumes that you know your data file. that being said, for any element of the array, you can do d3.keys() which will return the list of properties of that element. ie d3.keys(csv0). Hi Jerome, I am very new to D3.js, currently i was working on a school project using d3 and json. Your tutorial was very helpful so i decide to implement it in my project since it the nested data its much more similar to mine even though mine is json file. at the moment it groups the data correctly unfortunately the individual data which is represented by the circle faille to work. i was wondering what went wrong, I really appreciate it if you can take a look at it. here is the link to the project (githubemeshIPU-Zabbix-D3 ) Thanks in advance Hey, thanks for the tutorial. I was a bit put off by the 3 caveats, but they8217re actually much more minor than you make them sound: 1. A really easy way to make something run on a webserver is using site44 8211 host the files from your dropbox. 2. Not sure I understand this one. Just define a global variable, then assign values to it in the callback. 3. Yep. Many tutorials about how to use json or csv with d3.json or d3.csv, but the simplest idea of using an array or data object is still a mystery8230 For simple applications, updating a json or csv file dynamically is a nightmare. Being able to load an object with the needed data dynamically should be simple, darn it Really helpful tutorial. Thanks

No comments:

Post a Comment